Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Zmiana typu atrybutów
09-06-2011, 14:15,
#1
Zmiana typu atrybutów
Jestem bardzo początkującym użytkownikiem programu, dlatego proszę o wyrozumiałość. Po połączeniu atrybutów pochodzących z pliku CSV MS-DOS, nazwy polskie pojawiają się w formie krzaczków w tabeli atrybutów, ponadto wartości liczbowe, które chciałabym wykorzystać do tworzenia kartogramów występują w tabeli atrybutów jako STRING, a nie REAL. Nie posiadam wtyczki Table menager, niestety nie potrafię jej również zainstalować. Pracuję na wersji 1.6.0.
Proszę o pomoc i wskazówki.
09-06-2011, 16:30, (Ten post był ostatnio modyfikowany: 09-06-2011, 16:36 {2} przez borys.)
#2
RE: Zmiana typu atrybutów
Table Manager tu akurat nie pomoże, ale na przyszłość zainstalujesz go przez menu Wtyczki -> Pobierz więcej wtyczek -> na trzeciej zakładce wciskasz klawisz "Dodaj niezależne repozytoria" -> wracasz na pierwszą zakładkę i szukasz na liście.

Polskie znaki wymagają niestety nudnego akapitu teorii Wink Kodowane mogą być w jednym z czterech systemów: UTF 8, ISO 8859-2, CP 1250 i rzadko już spotykanym, ale jednak, CP 852. W okienku dodawania warstwy masz listę wyboru kodowania. "System" to domyślne dla Twojego systemu operacyjnego, reszta jest skonkretyzowana. Jeśli nie wiesz, w jakim kodowaniu zapisane są znaki w danej warstwie, to musisz próbować na ślepo i po wczytaniu warstwy sprawdzić w tabeli atrybutów, czy wszystko jest ok. Uwaga, ISO 8859-2 oraz CP 1250 są bardzo podobne, więc trzeba się dokładnie przyjrzeć, bo część ogonków (ć ę ł ń ó ż) będzie się zgadzać, ale inne (ą ś ź) nie. QGIS obsługuje trzy pierwsze kodowania, więc jeśli żadne nie zadziała, to albo warstwa jest kodowana w CP 852, albo kiedyś została otwarta w niewłaściwym kodowaniu i tak zapisana, przez co literki się całkiem pomieszały. W tym ostatnim przypadku najlepiej zacząć wszystko od początku. Na marginesie, jak już masz otwartą poprawnie warstwę, to zapisując ją do nowego pliku również możesz wybrać docelowe kodowanie. Możesz tego użyć, aby zmienić kodowanie w posiadanych danych.

Piszesz o dołączaniu atrybutów z pliku CSV. Jeśli polskie znaki występują zarówno w dotychczasowej tabeli, jak i tej dołączanej, to oczywiście obie muszą być tak samo kodowane. Ergo, jedno z dwojga trzeba wcześniej przekonwertować.

Jeśli Twoje dane są w Shapefile'u, to tabela atrybutów tkwi w dołączonym do niego pliku .dbf. Ten plik możesz otworzyć w większości arkuszy kalkulacyjnych (poniższy opis dotyczy OpenOffice/LibreOffice Calc, uprzedzam że nie znam MS Excela), wybrać przy otwieraniu kodowanie, edytować do woli i zapisać w tym samym lub innym kodowaniu. Możesz tu również zmienić typ pola. Pierwszy wiersz zawiera nagłówki pól w postaci trzech członów oddzielonych przecinkami: NAZWA,TYP,DŁUGOŚĆ[,PRECYZJA]. Typ C to character, N to numeric. Jeśli pole ma nagłówek mojepole,C,10 , to powinnaś zmienić ten nagłówek na np. mojepole,N,5,2 (szerokość pięć cyfr, dwa miejsca po przecinku) ORAZ przekonwertować wartości w całej kolumnie na liczbowe. Po zapisaniu pliku, otwierasz całego szejpa jeszcze raz w Quantumie i powinno być ok. Uwaga: przy zapisie ważniejsza jest zawartość komórek, niż deklaracja w nagłówku. Jeśli w nagłówku zamienisz na N, a w komórkach pozostawisz teksty, to i tak zapisze się jako C.

Mam nadzieję, że da się coś z tego zrozumieć Smile
09-06-2011, 17:08,
#3
RE: Zmiana typu atrybutów
(09-06-2011, 16:30)borys napisał(a): Table Manager tu akurat nie pomoże, ale na przyszłość zainstalujesz go przez menu Wtyczki -> Pobierz więcej wtyczek -> na trzeciej zakładce wciskasz klawisz "Dodaj niezależne repozytoria" -> wracasz na pierwszą zakładkę i szukasz na liście.

Polskie znaki wymagają niestety nudnego akapitu teorii Wink Kodowane mogą być w jednym z czterech systemów: UTF 8, ISO 8859-2, CP 1250 i rzadko już spotykanym, ale jednak, CP 852. W okienku dodawania warstwy masz listę wyboru kodowania. "System" to domyślne dla Twojego systemu operacyjnego, reszta jest skonkretyzowana. Jeśli nie wiesz, w jakim kodowaniu zapisane są znaki w danej warstwie, to musisz próbować na ślepo i po wczytaniu warstwy sprawdzić w tabeli atrybutów, czy wszystko jest ok. Uwaga, ISO 8859-2 oraz CP 1250 są bardzo podobne, więc trzeba się dokładnie przyjrzeć, bo część ogonków (ć ę ł ń ó ż) będzie się zgadzać, ale inne (ą ś ź) nie. QGIS obsługuje trzy pierwsze kodowania, więc jeśli żadne nie zadziała, to albo warstwa jest kodowana w CP 852, albo kiedyś została otwarta w niewłaściwym kodowaniu i tak zapisana, przez co literki się całkiem pomieszały. W tym ostatnim przypadku najlepiej zacząć wszystko od początku. Na marginesie, jak już masz otwartą poprawnie warstwę, to zapisując ją do nowego pliku również możesz wybrać docelowe kodowanie. Możesz tego użyć, aby zmienić kodowanie w posiadanych danych.

Piszesz o dołączaniu atrybutów z pliku CSV. Jeśli polskie znaki występują zarówno w dotychczasowej tabeli, jak i tej dołączanej, to oczywiście obie muszą być tak samo kodowane. Ergo, jedno z dwojga trzeba wcześniej przekonwertować.

Jeśli Twoje dane są w Shapefile'u, to tabela atrybutów tkwi w dołączonym do niego pliku .dbf. Ten plik możesz otworzyć w większości arkuszy kalkulacyjnych (poniższy opis dotyczy OpenOffice/LibreOffice Calc, uprzedzam że nie znam MS Excela), wybrać przy otwieraniu kodowanie, edytować do woli i zapisać w tym samym lub innym kodowaniu. Możesz tu również zmienić typ pola. Pierwszy wiersz zawiera nagłówki pól w postaci trzech członów oddzielonych przecinkami: NAZWA,TYP,DŁUGOŚĆ[,PRECYZJA]. Typ C to character, N to numeric. Jeśli pole ma nagłówek mojepole,C,10 , to powinnaś zmienić ten nagłówek na np. mojepole,N,5,2 (szerokość pięć cyfr, dwa miejsca po przecinku) ORAZ przekonwertować wartości w całej kolumnie na liczbowe. Po zapisaniu pliku, otwierasz całego szejpa jeszcze raz w Quantumie i powinno być ok. Uwaga: przy zapisie ważniejsza jest zawartość komórek, niż deklaracja w nagłówku. Jeśli w nagłówku zamienisz na N, a w komórkach pozostawisz teksty, to i tak zapisze się jako C.

Mam nadzieję, że da się coś z tego zrozumieć Smile

Dziękuję bardzo za odpowiedź!Problem z polskimi znakami udało mi się rozwiązać, wprawdzie troszkę łopatologicznieWink

Nadal mam jednak problem dołączając atrybuty do istniejącej warstwy z pliku CSV. Wartości mają charakter liczbowy, niestety próbując zrobić kartogram możliwe jest wykorzystanie wartości unikalnej,nie np. stopniowej czy ciągłej.
Mam plik dbf.,ale nie mogę go otworzyć.

Przepraszam za chaos,który wkradł się do zapytania.
09-06-2011, 17:28,
#4
RE: Zmiana typu atrybutów
Bo charakter danych jest liczbowy, ale typ pola nie. To zrobimy jeszcze prościej ;-) Utworzymy pole numeryczne i przepiszemy wartości z tego tekstowego.

1. Otwórz tabelę atrybutów
2. Klawiszem na dole włącz tryb edycji
3. Ostatnim klawiszem w tym rządku włącz kalkulator atrybutów
4. Czekboksy na górze powinny pozostać puste, poniżej podaj nazwę dla nowego pola i ustaw typ pola na całkowity lub dziesiętny wedle potrzeb. Cała reszta okienka służy do wprowadzenia wyrażenia. Możesz wypisać ręcznie lub wyklikać funkcję konwertującą tekst na liczby całkowite lub rzeczywiste, odpowiednio:

to int ( nazwa_pola_tekstowego )
to real ( nazwa_pola_tekstowego )

5. OK Smile

Poszło?
09-06-2011, 20:02,
#5
RE: Zmiana typu atrybutów
DziękujęSmile
Wszystko pięknie, tylko wpisując wyrażenie, pojawia się komunikat:

Invalid expression syntax. The error message of the parser is: 'syntax error, unexpected COMPARISON'

Przepraszam, że takim banałem zawracam głowę. No i proszę o pomocSmile
09-06-2011, 20:18, (Ten post był ostatnio modyfikowany: 09-06-2011, 20:21 {2} przez borys.)
#6
RE: Zmiana typu atrybutów
A masz te dwa klawisze, co w załączniku? Jeśli tak, to spróbuj nie wpisywać, tylko wyklikać - tym klawiszem i potem pole z listy. Może wpisując gdzieś się kopiesz, albo ja się kopnąłem.

A jeśli ich nie ma, to by znaczyło, że pojawiły się dopiero w wersji 1.7 (przepraszam, tego się nie da spamiętać, zwłaszcza jak człowiek jest myślami zawsze przy przyszłej wersji) i kalkulator w 1.6 tych funkcji jeszcze nie zna. Jedynym wyjściem byłaby aktualizacja do 1.7 (jest już dostępna na stronie).

Trzymam kciuki Smile


Załączone pliki Miniatury
   
09-06-2011, 20:53,
#7
RE: Zmiana typu atrybutów
Uff...
Kalkulator rzeczywiście wygląda inaczej, wyklikałam, zgodnie z instrukcją. Nadal error.
PozdrawiamSmile

Załączam zrzut ekranu.
.docx   QGISatrybuty.docx (Rozmiar: 225,13 / Pobrań: 9)
09-06-2011, 21:03, (Ten post był ostatnio modyfikowany: 09-06-2011, 21:03 {2} przez borys.)
#8
RE: Zmiana typu atrybutów
Zaraz, ale to wyrażenie nie ma ani sensu, ani nie jest poprawne matematycznie Smile Tworzysz pole Jakość (polskich liter w nazwach pól bym stanowczo unikał) i próbujesz wpisać do niego wynik dwóch zlepionych funkcji: konwersji WJRPP na liczbę całkowitą oraz tego nieistniejącego jeszcze pola na liczbę rzeczywistą.

Jeśli chcesz przekonwertować WJRPP na liczby całkowite, to stwórz pole Jakosc typu całkowitego i wpisz formułę to int(WJRPP), zaś jeśli na rzeczywiste, to stwórz pole typu rzeczywistego i wpisz to real(WJRPP).
09-06-2011, 21:16,
#9
RE: Zmiana typu atrybutów
Udało sięSmile Dziękuję bardzo za pomoc i za szybkie odpowiedzi!

Przesyłam duży uśmiechSmile

Pozdrawiam,

Natalia
09-06-2011, 23:58,
#10
RE: Zmiana typu atrybutów
Mimo sukcesu, pojawił się kolejny problem. Otóż po zastosowaniu funkcji obiekty, którym nie były przypisane atrybuty mają wartość O(NULL), wartość taką mają też obiekty dla których wartość równa jest zeru.
Dlatego pojawiła się kolejna zagwostka dla mnie, jak rozróżnić jedne obiekty od drugich na kartogramie, pierwsze, które nie są przedmiotem analizy, a chcę by ich kontur był na mapie, oraz drugie które są przedmiotem analizy dla których wartość atrybutu jest równa zeru.
Proszę o wskazówki i pomoc.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  zmiana kolejności i nazwy atrybutów w tabeli atrybutów phacops 5 19 911 07-12-2021, 12:22
Ostatni post: mradecka
  Graficzne utworzenie geometrii typu MULTILINESTRING/MULTIPOINT frankie 2 8 085 03-07-2018, 13:50
Ostatni post: frankie
  QGIS 2.6 Pole typu data kamilwydra 1 9 534 25-11-2014, 19:39
Ostatni post: sebaq
  Zmiana czcionki w tabeli atrybutów tomalos 1 13 023 03-01-2014, 19:49
Ostatni post: borys
  Budowa piramid nie jest wspierana dla tego typu rastra? sebaq 1 10 470 30-08-2013, 07:07
Ostatni post: sebaq
  tabela atrybutow - zmiana wartosci pitt 2 14 986 14-12-2011, 17:42
Ostatni post: pitt
  Zmiana nazwy (typu) kolumny w tabeli w QGIS Arnebius 1 20 512 11-03-2011, 12:11
Ostatni post: robert
  Zmiana nazw atrybutów warstw SHP Rayo 2 14 650 14-01-2010, 12:44
Ostatni post: Rayo

Skocz do: