Próbuję zmapować plik CSV z ponad milionem punktów Lat / Lon w USA bez metadanych. Nigdy nie próbowałem mapować tylu danych i chcę wiedzieć, jakie kroki powinienem podjąć. Wiem, że to za dużo danych dla QGIS, więc spróbowałem podzielić je na 100 000 linii CSV, ale potem dostałem wiele plików, z którymi nie wiedziałem, co zrobić. Myślę, że najlepiej byłoby agregować punkty według bloku spisu, ale nie wiem, jak to zrobić za pomocą Javascript (nigdy nie korzystałem z Pythona) lub narzędzi wiersza poleceń? Jakieś sugestie?
9
Odpowiedzi:
Polecam korzystanie z PostgreSQL / PostGIS, ponieważ jest on natywnie obsługiwany przez QGIS, ma kilka przydatnych wbudowanych funkcji do łączenia z innymi danymi przestrzennymi (np. Traktami spisowymi), a użycie bazy danych powinno ograniczyć problemy z pamięcią przy dużych zestawach danych. Mój zalecany zestaw kroków znajduje się poniżej. Aby wykonać polecenia SQL, możesz użyć PGAdmin lub QGIS, ten pierwszy dostarczy więcej informacji o błędach w zapytaniach, drugi pozwoli załadować wyniki zapytań jako warstwy na mapie. Aby uzyskać dostęp do tego ostatniego, przejdź do
Database > DB Manager > DB Manager
i kliknij drugi przycisk.CREATE TABLE
polecenia ( przykład ) w oknie SQL QGIS lub w oknie SQL PGAdminImport...
(to ostatnie może być delikatne, więc zaleciłbym COPY dla większych zestawów danych).Dodaj kolumnę geometrii do tabeli, wykonując następujący kod SQL w oknie PGAdmin lub QGIS SQL.
Utwórz geometrie punktów za pomocą czegoś podobnego
Wyświetl podzbiór danych, używając
SELECT
instrukcji z czymś podobnymLIMIT 50000
Lub dołącz do danych spisu z czymś takim
WYBIERZ c.gid, c.geom
Z spisu c
WEWNĘTRZNE DOŁĄCZ yourdata ON ST_Within (yourdata.geom, c.geom)
Odnośniki funkcji:
ST_Within
ST_MakePoint
ST_SetSRID
źródło
Import...
aby uzyskać dostęp do kreatora importu, lub użyj polecenia COPY postgresql.org/docs/current/static/sql-copy.html Zaktualizuję odpowiedźOstatnio pracowałem z zestawem danych 1,4 miliona punktów zaimportowanym z pliku CSV. Upewniłem się, że usunąłem niepotrzebne pola w pliku csv. Działa to dla mnie dobrze, chociaż niektóre procesy zajmowały trochę czasu. (QGIS 2.12, 64-bitowy Windows 7, 8 Gb RAM)
źródło
Fwiw kandydata R, w pseudokodzie:
Otrzymasz plik filepoints.tab w katalogu roboczym, który możesz czytać za pomocą QGIS. Lub wybierz „ESRI Shapefile”, aby utworzyć filepoints.shp lub inny potrzebny Ci format. QGIS używa GDAL podobnie jak rgdal, więc nakłada się wiele. Istnieją analogiczne mechanizmy Pythona.
Ponieważ nie masz żadnych metadanych, możesz mieć zestaw po przypisaniu współrzędnych (x), aby ustawić proj4string (x) <- CRS („+ proj = coś + itd.”), Ale możemy tylko zgadywać dla twoich danych.
źródło