Forum QGIS
Podczas zapisywania warstwy z csv do shp przycina dług. nagłówków w liście atrybutów - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: GIS dla początkujących (http://forum.quantum-gis.pl/forum-16.html)
+--- Wątek: Podczas zapisywania warstwy z csv do shp przycina dług. nagłówków w liście atrybutów (/thread-1296.html)



Podczas zapisywania warstwy z csv do shp przycina dług. nagłówków w liście atrybutów - embas - 20-03-2016

Jak w temacie.
Mam plik Excel w formacie csv, który zawiera punkty ze współrzędnymi i dodatkowymi atrybutami tych punktów.
Niektóre nagłówki poszczególnych kolumn z atrybutami mają długość przekraczającą 10 znaków.
Po zaimportowaniu tego pliku csv do QGIS-a na mapie wyświetlają mi się punkty oznaczone różnymi symbolami, w zależności od wartości określonego atrybutu (wykorzystałem styl oparty na regułach).
Co jakiś czas otrzymuję zaktualizowaną wersję pliku, więc podmieniając jedynie plik csv mogę uaktualnić w QGIS-ie warstwę.
W tabeli atrybutów wszystkie kolumny i wartości wyświetlają się prawidłowo - tak jak w pliku csv. Czasami do dalszej obróbki muszę zapisać warstwę csv do postaci shp. Niestety po zapisaniu takiej warstwy w formacie shp tytuły nagłówków kolumn w liście atrybutów ulegają skróceniu do 10-ciu znaków np.: z "NAZWA_MIEJSCOWSCI" na "NAZWA_MIEJ". W rezultacie tego na warstwie shp nie działa prawidłowo skopiowany z warstwy csv styl oparty na regułach tzn., tam gdzie nagłówek w pliku csv miał mniej niż 10 znaków reguła działa i punkt oznaczany jest innym symbolem, a tam gdzie nagłówek miał 15 znaków już nie bo reguła nie może znaleźć atrybutu o takiej nazwie.

Ma ktoś jakiś pomysł jak temu zaradzić, żeby mi nie obcinało długości nagłówków podczas zapisywania warstwy zaimportowanej z pliku csv jako shp?


RE: Podczas zapisywania warstwy z csv do shp przycina dług - Binko - 21-03-2016

Można to zrobić do celów roboczych na zasadzie połączenia.

1. Masz plik CSV, w którym zapewne masz ponumerowane wiersze - każdy rekord ma swój unikalny numer ID.
2. Masz shp, gdzie masz tylko kolumnę z tymi numerami (możesz użyć stworzonej już warstwy, jedynie usuń zbędne kolumny).

Teraz wchodzisz we właściwości warstwy SHP w QGIS, klikasz kartę "Złączenia" i łączysz tabele po polu "ID" czy jaki tam masz unikalny numer. Upewnij się jeszcze, że masz zaznaczony ptaszek przy prefiksie dołączanych pól a w miejscu na wpisanie tego prefiksu nie masz nic wpisane (przykład dołączam na zrzucie). Możesz dołączyć wszystkie pola, albo tylko wybrane.

Teraz plik shp w Twoim projekcie QGISa będzie miał rozbudowaną tabelę o kolumny z pliku CSV.
Teraz możesz zastosować symbolizację, jakiej używałeś, a osobno w Excelu edytować plik CSV, bądź podmieniać istniejący na nowszą wersję.

Jeśli teraz zapiszesz tego SHP z dołączoną tabelą, to wtedy dołączone pola zostaną w tabeli, jednak długie nazwy zostaną ucięte.
Żeby nie zostały ucięte, możesz zapisać warstwę w bazie SpatiaLite - tam są dozwolone długie nazwy pól (ale wielkość liter automatycznie zmieniają się na małe...).


RE: Podczas zapisywania warstwy z csv do shp przycina dług - embas - 22-03-2016

(21-03-2016, 13:47)Binko napisał(a): ...............
Teraz plik shp w Twoim projekcie QGISa będzie miał rozbudowaną tabelę o kolumny z pliku CSV.
Teraz możesz zastosować symbolizację, jakiej używałeś, a osobno w Excelu edytować plik CSV, bądź podmieniać istniejący na nowszą wersję.
.............

SUPER!!! Działa.
Dziękuję za pomoc, a w szczególności za jasne i klarowne wyjaśnienia sposobu rozwiązania problemu.