Czy istnieją jakieś bezpłatne lub niedrogie bazy danych dla USA, które można przeszukiwać i zwracają informacje o szerokości i długości geograficznej?
geocoding
large-datasets
Chris Muench
źródło
źródło
Odpowiedzi:
Przy tak wielu rekordach nawet nie rozważaj usługi internetowej. Przepchną cię lub odetną, zanim skończysz swoje zadanie.
Zatem twoja opcja staje się lokalna, a do tego masz kilka opcji komercyjnych lub bezpłatnych.
Darmowe opcje wykorzystają zestaw danych TIGER ze spisu ludności, który trzeba załadować do przestrzennej bazy danych. Możesz znaleźć biblioteki, które geokodują przeciwko TIGER dla PostGIS, a nawet sqlite . Heck, możesz nawet użyć ArcGIS do geokodowania przeciwko TIGER. Oczywiście ArcGIS nie jest darmowy, co prowadzi mnie do następnych opcji komercyjnych. Jeśli masz licencję ArcGIS, masz DVD StreetMap z TeleAtlas ( mam na myśli Tom Tom ) lub zestawem danych Navteq. To zależy, czy masz pakiet StreetMap Premium . Każdy z tych dwóch zestawów danych prawdopodobnie zapewni bardziej spójne wyniki niż TIGER.
Zrób sobie przysługę i zrób kilka kopii ulicznej bazy danych po załadowaniu danych i uruchom proces geokodowania na kilku komputerach z podzbiorem danych wejściowych. Nie próbuj uruchamiać go tylko na jednej maszynie, inaczej będziesz czekał kilka dni, aż zakończy się, nie wspominając, że najprawdopodobniej cokolwiek uruchomisz, prawdopodobnie wyciek pamięci i kilka razy ulegnie awarii, zanim zakończy się. Oznacza to, że chcesz mieć różne punkty kontrolne dla swojego procesu.
źródło
Pracuję w SmartyStreets (firmie weryfikującej adresy). Nasza usługa jest bezpłatna dla wszystkich (do poziomu podstawowego). Startupy mogą również poprosić o korzystanie z naszej usługi całkowicie bezpłatnie przez pierwszy rok. Jeśli więc spełniasz tę klasyfikację, nie ponosimy opłaty za naszą nieograniczoną usługę przez rok ..
Ragi odradza korzystanie z usługi internetowej, jednak nasz interfejs API może łatwo wyczyścić, ustandaryzować i geokodować 20 milionów adresów w ciągu około 5 godzin (około 1000 na sekundę). Część tego czasu będzie zależeć od szybkości twojego komputera (ile posiadasz rdzeni) i twojego połączenia sieciowego (nie próbuj przez 3G, ale standardowe połączenie szerokopasmowe będzie w porządku).
Chciałem tylko zaznaczyć, że z pewnością jest to możliwe dzięki usłudze internetowej.
Aktualizacja: od 1 sierpnia 2017 r. Zdalnie przetestowałem naszą usługę internetową i uzyskałem ciągłe 70 000 wyszukiwań na sekundę przy użyciu tylko jednego MacBooka Pro 2015 w sieci bezprzewodowej. Tak, jest dość szybki. Oznacza to, że mała lista, taka jak 20 milionów adresów, zajmie tylko około 5 minut.
źródło
Skorzystałem z tego przewodnika, opisując, jak zbudować geokoder Postgis przy użyciu danych TigerLine z 2010 roku. Teraz go uruchamiam - nie jest szybki, ponieważ geokodowanie 2 milionów adresów zajmie 3 tygodnie.
Jest jednak darmowy, niezakłócony i zajął kogoś z minimalnymi umiejętnościami kodowania i postgres mniej niż 2 dni, aby skonfigurować i załadować dane jednego (dużego) stanu, aby rozpocząć geokodowanie. Nie zrobiłem też absolutnie żadnego strojenia postgres dla systemu i działa on z mocowaniami NFS, więc podejrzewam, że wzrost wydajności może być o jeden lub dwa rzędy wielkości, gdybym tego potrzebował.
Zamiast korzystać z usług internetowych, załadowałem wszystkie moje adresy do bazy danych Postgres, a następnie uruchamiam szybki i brudny skrypt perla, aby geokodować je wszystkie po jednym:
(łamanie wiersza wyłącznie dla czytelności)
Tak więc generuje „geokoduj adres o tej wartości identyfikatora i użyj instrukcji dopasowania najlepiej dopasowanej” i przesyła go do psql, aby to zrobić. Próbuje tylko geokodować adres bez oceny - tzn. Takich, które nie są jeszcze geokodowane. Można go więc uruchomić ponownie i każdy z nich jest wykonywany niezależnie.
źródło
Zgaduję, że chcesz Geokodować, ale nie płacisz za to? Istnieje wiele usług, na których można geokodować 20 milionów rekordów, ale będzie to kosztować. Esri, Pitney Bowes i inne oferują te usługi w ramach subskrypcji lub na podstawie X geokodów. 20 milionów nie jest trywialne, ale zakładam, że jest na to uzasadnienie biznesowe.
źródło
Lokalizacja twoich danych jest bardzo ważna, ponieważ zmienia się jakość usług internetowych (precyzja, skala itp.) Geokoduję swój adres z Google API, Facebook API i ex-simpleegeo z moją geobazą.
http://blog.programmableweb.com/2012/06/21/7-free-geocoding-apis-google-bing-yahoo-and-mapquest/
źródło
Ten post jest prawdopodobnie za późno, aby pomóc oryginalnemu plakatowi. Jednak dla innych, którzy szukają georeferencji za darmo, możesz sprawdzić moje oprogramowanie o nazwie „Easy Georeferencer”, które jest tworzone niezależnie, łatwe w użyciu, a jednocześnie wydajne (patrz zrzut ekranu na dole postu).
Program jest prosty i łatwy w użyciu i jest uruchamiany bezpośrednio z pliku exe nie wymagającego instalacji. Możesz wybrać geokodowanie między źródłem danych GNS lub GeoNames, i możesz robić to, czego nie potrafi żaden inny geokoder, prowincje geokodowane na podstawie bazy danych jednostek administracyjnych GADM, a także geokodować historyczne granice kraju z zestawu danych CShapes. Jedynym zastrzeżeniem jest to, że nie geokoduje danych adresowych. Wszystkie dane wyjściowe są w postaci plików kształtów gotowych do natychmiastowej wizualizacji / analizy w GIS.
Jeśli chodzi o wydajność i obsługę dużych danych, program został przetestowany pod kątem geokodowania 100 000 rekordów w zaledwie 3 godziny. W przypadku większych zestawów danych oczekiwany wzrost czasu przetwarzania powinien skrócić się krzywoliniowo, ponieważ znaczna część czasu przetwarzania trafia tylko do początkowej fazy, gdy zestawy danych referencyjnych kraju są ładowane, ale potem wzrasta. Ponadto, geokodowanie dużych zestawów danych nie wymaga obaw o wąskie gardła w Internecie lub problemy z łącznością, ponieważ oprogramowanie, zestawy danych referencyjnych i przetwarzanie są oparte na komputerze lokalnym. Wskaźniki dopasowania mogą wzrosnąć nawet do 80–90 procent, ponieważ są oparte na dopasowaniu nazw rozmytych do różnic w pisowni.
Więcej informacji, w tym dokument wprowadzający i przewodnik dla początkujących, znajduje się w pakiecie do pobrania. Nie musisz się wahać, ponieważ jest to prosty plik, który możesz umieścić i uruchomić na pulpicie bez żadnych zobowiązań lub bałaganu na komputerze.
Oprogramowanie można pobrać ze strony: http://geocodeanything.wordpress.com/
Mam nadzieję, że to pomaga.
źródło
Ponieważ będziesz geokodował adresy w USA, myślę, że narzędzie Ulica adres do współrzędnych z zestawu narzędzi do nauki danych powinno działać dobrze.
Możesz jednak pobrać maszynę wirtualną i uruchomić ją z własnego sprzętu. W ten sposób nie musisz się martwić limitami API i też je kontrolujesz. Aha, czy powiedziałem, że to nic nie kosztuje? ;-)
źródło
Nie widziałem żadnego odniesienia do wymaganego poziomu precyzji, ale zakładam, że chcesz mieć dach długi lub długi. Jakość adresu wejściowego również może być czynnikiem. Dobrze wyczyszczona lista adresów będzie kodować lepiej i szybciej niż lista niekompletnych lub złych adresów. Czy akceptowalny jest także współczynnik trafień wynoszący 90%, czy potrzebujesz wszystkich 20 milionów zakodowanych adresów? Nie mam darmowego rozwiązania, ale jest to stosunkowo niedrogie, które znam i z którego korzystam. ZP4 z Semaphore Corp, http://www.semaphorecorp.com/oferuje skruber adresów / geokoder i dodatki, które będą przetwarzać adresy i zwracać oczyszczony adres, flagę wskazującą, czy adres jest dostarczalny USPS, oraz długi lat dla ZIP + 4. Dokładność ZIP + 4 jest zasadniczo zbliżona do precyzji na dachu w obszarach zabudowanych (po prawej stronie ulicy i na właściwym bloku) i nie jest bliska na obszarach wiejskich. Koszt 30-dniowej licencji wynosi 120 USD. Po tym czasie skruber adresu będzie nadal działał, ale sprawdzanie poprawności punktu dostawy (DPV) i zwroty geograficzne nie będą działać. Dzięki stosunkowo szybkiemu komputerowi, zbudowanemu w ciągu ostatnich dwóch lat, a wszystkie dane przechowywane i dostępne lokalnie, 20 milionów rekordów powinno zostać zrobionych w ciągu około 10 dni. Adresy geokoduję od 15 lat i przez większość tego czasu używałem ZP4. Zanim zaoferowali Long-Lat lub DPV,
źródło
Geokoduję teraz 18 milionów adresów, więc chcę udostępnić moją konfigurację.
Zasadniczo użyłem odpowiedniego podręcznika, aby skonfigurować instancję Amazon EC2 jako serwer Geocodera PostGIS Tiger, a następnie użyć skryptu do grupowania adresów geokodów, mapowania ich na blok spisu.
Koszt Amazon EC2: minimalny wymóg 180G SSD kosztuje około 18 USD / miesiąc. Moja instancja t2.large kosztuje łącznie około 90 USD / miesiąc.
Jeśli masz Linux-a z dyskiem SSD> 180G, możesz go również używać w zasadzie za darmo.
Moja średnia wydajność wynosi około 170 ~ 300 ms / adres dobrej jakości, 400 ~ 600 ms / adres złej jakości. Przez złą jakość mam na myśli, że wiele z nich ma zaginione miasto, kod pocztowy lub po prostu zły adres. Ten rodzaj adresu zajmuje dużo więcej czasu na geokodowanie, więc wydajność zależy od jakości danych wejściowych. Użyta przeze mnie instancja Amazon EC2 może geokodować około 4 milionów naprawdę źle sformatowanych adresów w ciągu jednego miesiąca.
Aby uzyskać więcej informacji, zobacz mój blog na temat konfiguracji systemu i skryptów
źródło
AWS ma teraz do dyspozycji wiele serwerów do geokodowania. Zdobądź własny serwer i zrzuć tam swoje dane. https://aws.amazon.com/marketplace/search/results/ref=dtl_navgno_search_box?page=1&searchTerms=geocode
https://aws.amazon.com/marketplace/pp/B013CW6HOA
https://aws.amazon.com/marketplace/pp/B0112MQ63Y
źródło
Jeśli Twój przepływ pracy odbywa się w języku Python, geopy to świetne rozwiązanie. Możesz napisać swoją abstrakcyjną logikę geokodowania w sposób abstrakcyjny, a następnie wybrać jednego z wielu dostawców (ArcGIS, Baidu, Bing, DataBC, GeocodeFarm, GoecoderDotUS, GeoNames, Google, IGN France, LiveAddress, NaviData, Nominatim (OSM), OpenCage, OpenMapQuest, Yahoo! BOSS Place Finder, What3Words, Yandex ... uff). Możesz nawet użyć ich wszystkich i ostatecznie wybrać punkt, który ma największą pewność, że jest poprawny dzięki weryfikacji przez wiele usług geokodowania. Wiele z tych usług wymaga rejestracji (ale nie wszystkich). Mogą nie być równie odpowiednie do użycia w USA, ale zaletą robienia tego przy pomocy czystej funkcji Pythona jest to, że powinieneś być w stanie to kontrolować.
Oto krótki przykład:
https://geopy.readthedocs.org/en/1.10.0/
Naprawdę jedyną trudną częścią jest upewnienie się, że adresy nie są źle sformułowane. Geokodowanie 20 milionów lokalizacji prawdopodobnie potrwa jednak dużo czasu ... i taki ładunek prawdopodobnie naruszy czyjeś warunki świadczenia usług. Mam nadzieję, że to komuś pomaga.
źródło
jeśli twoje żądanie geokodu nie przekracza 2500 dziennie, możesz użyć interfejsu API Google Geocoding . powinieneś rzucić okiem na interfejs API, może powrócić do wyników jako json lub xml.
Limit użytkowania:
Przykład:
http://maps.google.com/maps/geo?key=yourkeyhere&output=json&q=520+3rd+Street+San+Francisco+CA
Przykład wyniku:
i możesz sprawdzić przykładowy link do geokodowania z Google:
1. Jeden kod
2. Odwróć kodowanie geograficzne
3. Począwszy od Google GeoCoding
mam nadzieję, że to ci pomoże
źródło