Mam tabelę atrybutów z dwoma pustymi polami w QGIS.
Chcę zaimportować bazę danych programu Excel, aby wypełnić moje puste pola w QGIS. Mój plik programu Excel pasuje do kolumn w mojej tabeli atrybutów QGIS.
Jestem w stanie poprawnie dołączyć mój program Excel (.CSV) do mojego pliku kształtu. Jednak proces, zamiast wypełniać puste pola, jak chciałbym, stworzył duplikaty. Za pomocą «Table Managera» jestem w stanie poprawić sytuację, ale wymaga to dużo czasu. Szukam bardziej efektywnego sposobu dołączenia do moich danych programu Excel.
Jak mogę dołączyć mój plik Excel do mojej tabeli atrybutów bez tworzenia duplikatów?
qgis
attribute-table
attribute-joins
excel
Laurent Robitaille-Lainesse
źródło
źródło
Odpowiedzi:
Zrobiłbym następujące rzeczy, aby ułatwić życie:
Zanim to zrobisz, wykonaj kopię zapasową pliku kształtu.
jest to zakładka Pole, o której mowa
Nie zapomnij przełączać edycji przed i po usunięciu niepotrzebnego pola
źródło
Będziesz chciał dołączyć plik programu Excel do pliku kształtu. Połączysz je wspólnym atrybutem, a wynikiem będzie połączona warstwa, w której każdy rekord będzie zawierał atrybuty pliku shapefile i pliku excel.
Ok, najpierw ładujesz plik Excel, a później wektor do warstw. Użyłem niektórych danych testowych, które wykonałem, ale twoja konfiguracja powinna wyglądać podobnie do poniższej.
Teraz kliknij prawym przyciskiem myszy warstwę (w panelu warstw) i wybierz właściwości, a następnie wybierz dołącz. Najpierw naciśnij zielony + znak w lewym dolnym rogu (duża czerwona strzałka na obrazku poniżej), a wyświetli się nowe menu Dodaj wektor dołączania (jak poniżej) Tutaj twoja warstwa łączenia będzie plikiem programu Excel (więc wybierz odpowiedni plik programu Excel i arkusz) pole łączenia to pole w pliku programu Excel, które zawiera wspólny atrybut pliku kształtu. Pole docelowe to pasujące pole w pliku kształtu. (w moim przypadku oba wspólne pola zostały nazwane jednostkami, ale jeśli pole to nazywało się UNIT_, użyłbym tego zamiast UNIT dla mojego pola docelowego)
Istnieje kilka innych opcji, z którymi możesz zepsuć się podczas łączenia, na przykład jeśli chcesz zobaczyć tylko niektóre pola itp., Tak czy inaczej, teraz są one połączone, a jeśli wrócisz i spojrzysz na atrybuty pliku kształtu, zobaczysz ma teraz odpowiednie atrybuty pliku programu Excel, jak poniżej.
Oto kilka przydatnych poradników, które krok po kroku pokażą Ci, jak to zrobić:
https://www.mapbox.com/tilemill/docs/guides/joining-data/
http://maps.cga.harvard.edu/qgis/wkshop/join_csv.php
http://qgis.spatialthoughts.com/2012/03/using-tabular-data-in-qgis.html
Jak dołączyć tabele zewnętrzne za pomocą tabeli atrybutów shapefile w QGIS?
http://www.digital-geography.com/qgis-tutorial-ii-how-to-join-data-with-shapefiles/#.Vs9vpmHXKUk
oraz samouczek ArMoraer wspomniany w komentarzach.
źródło
Aby dodać inną metodę, możesz skonfigurować makro projektu, które po załadowaniu:
IP1
iIP2
Najpierw utwórz projekt, jeśli jeszcze tego nie zrobiłeś, a następnie przejdź do paska narzędzi:
Projekt> Właściwości projektu ...> Makra
Następnie użyj następującego kodu w
def openProject():
funkcji i wprowadź nazwy warstw oraz pola, które chcesz połączyć. Użyłem „Przykład” i „arkusz kalkulacyjny” odpowiednio dla mojego pliku shapefile i pliku csv z polemID
:Upewnij się, że warstwy nie są połączone, zapisz projekt i włącz makra , przechodząc do paska narzędzi:
Ustawienia> Ogólne> Włącz makra
Teraz, kiedy zamykasz projekt i edytujesz plik csv, przy następnym ładowaniu projektu pola powinny zostać automatycznie zaktualizowane:
źródło
Moja sugestia to użycie otwartego źródła LibreOffice / Open Office do edycji pliku Excel i utworzenia pliku .dbf. Przygotowałem dla ciebie skoroszyt testowy. Skoroszyt testowy - link
Tabela wyników bez duplikatów w QGIS:
źródło
Dlaczego zaczynają się puste pola? Czy możesz zacząć bez pustych pól i po prostu użyć dwóch kolumn utworzonych w złączeniu? Myślę, że to najprostsze podejście. Albo to, albo znajdź narzędzie podobne do narzędzia „Załaduj” w ArcGIS.
https://desktop.arcgis.com/en/arcmap/latest/extensions/production-mapping/loading-data-into-a-geodatabase.htm
Jeśli nie korzystasz z geobazy, bardzo to polecam.
źródło
Nie wiem, czy istnieje bezpośredni sposób dołączenia bez zduplikowania, ponieważ obsługa tego pliku .shp poprzez atrybut .DBF (plik bazy danych). Ten DBF ma deklarację typu kolumny, taką jak liczba całkowita, liczba rzeczywista, łańcuch itp. Ze szczegółami dotyczącymi jego długości i precyzji. Plik CSV ma tylko normalną kolumnę bez zadeklarowanego typu. Nie wiem, jak duży jest twój plik. Dla mnie zachowam zduplikowane pola, a następnie użyję kalkulatora pola o ogólnej formule:
Następnie usuń wszystkie zduplikowane pola (przez QGIS lub program bazy danych)
źródło
Uważam, że najprostszym sposobem na rozwiązanie tego problemu jest po prostu usunięcie dwóch kolumn w tabeli QGIS przed dołączeniem. Następnie, po dołączeniu do pliku kształtu, dwie kolumny, które chcesz, nie będą duplikatami i zachowają oryginalne nazwy kolumn.
źródło