Jacek
S.
Dharma Initiative
Gardener
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Mam kilkanaście mapek topograficznych, z których chce wyciągnąć lasy i zabudowę. Niestety, nie mam pojęcia jak się do tego zabrać - mapy są w formacie 24bit PNG - próbowałem jakoś je reklasyfikować w ArcMap, ale problem w tym że nie mogę znaleźć sposobu na ominięcie zapisu RGB (3 wartości), a przy konwersji niestety zmieniają się indeksy kolorów.Wie ktoś może, jak przerobić te pliki tak, by każdy po reklasyfikacji miał takie same kolory i można było je bez problemu zwektoryzować?Jacek S. edytował(a) ten post dnia 07.02.12 o godzinie 12:48
Marcin Szwagrzyk GISowiec
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Za pomocą skryptu można wyciągnąć jedno pasmo (na raz dla wszystkich map), dla ArcGIS 10 będzie to wyglądać tak:import arcpy, os
from arcpy import env
# parametry wejściowe, tu trzeba wpisac folder, w ktorym sa rastry oraz folder, do ktorego zapiszemy wynik
arcpy.env.workspace = "C:/..."
outworkspace = "C:/..."
# numer pasma rgb - edit: trzeba było podać w nawiasach
bandno = "1"
rasterList = arcpy.ListRasters("*", "")
for raster in rasterList:
inraster = raster + "/Band_" + bandno
outraster = outworkspace + "/" + raster + "_b" + bandno + ".tif"arcpy.CopyRaster_management(inraster,outraster,"DEFAULTS","0","9","","","8_BIT_UNSIGNED")
Jeżeli już będzie się mieć rastry zapisane w formacie 8 bitowym, to można je również za pomocą skryptu zreklasyfikować - ale sadzę, że to nie wyjdzie dobrze. Odcienie szarości będą zapewne różne dla kolejnych map.
rasterList = arcpy.ListRasters("*", "")
for raster in rasterList:
reclassField = "Value"
#przykladowa reklasyfikacja 0 na 1 i 255 na 0
remap = RemapValue([[0, 1], [255, 0],])
arcpy.CheckOutExtension("Spatial")
outReclassify = Reclassify(raster, reclassField, remap, "NODATA")
outraster = outworkspace + "/" + raster + "_reklas" + ".tif"
outReclassify.save(outraster)
Jeżeli jest jakiś prostszy sposób, to chętnie go poznam.
[edit] był mały błąd - numer pasma trzeba podać w nawiasie, teraz działa (u mnie)Marcin Szwagrzyk edytował(a) ten post dnia 07.02.12 o godzinie 20:11
Jacek
S.
Dharma Initiative
Gardener
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Właśnie chyba nie ma ;|Wszystko rozbija się o to, że to są pliki 24 bitowe i nijak nie da się tego do Map Algebra podpiąć. Przy konwersji do 8bit każda barwa dostaje inny Color Index. Widocznie, muszę się zainteresować Pythonem, bo ArcGis przestał spełniać moje oczekiwania przez zwykły interfejs :)
Skrypt sprawdzę i zobaczę co z tego wyjdzie, próbowałem przez Model Builder wyciągnąć kanały RGB no i dupa. Iteratory nie uwzgledniają kanałów w rastrze :|
--
[EDIT] Ten skrypt co mi dałeś nie chciał działać - niestety mam nikłe pojęcie o Pythonie. Znalazłem po necie inny, który po zaadaptowaniu zadziałał. Tylko jak przy arcpy.CopyRaster_management zmusić go, by nie generował piramid? Mi są zupełnie niepotrzebnie, a przedłuża to cały proces :|Jacek S. edytował(a) ten post dnia 07.02.12 o godzinie 16:02
Marcin
K.
Specjalista GIS,
Państwowy Instytut
Geologiczny
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Jacek S.:...
Mam kilkanaście mapek topograficznych, z których chce wyciągnąć lasy i zabudowę.
można było je bez problemu zwektoryzować?
A może ja podejdę do problemu od innej strony?
Skoro masz ochotę zwektoryzować automatycznie zabudowę i lasy z map topograficznych, to może lepiej zakupić diapozytywy wydawnicze odpowiednich arkuszy? Płaci się za udostępnienie godła, dla 10k to 20pln, bez względu na to czy kupujesz geotiffa z mapą, czy geotiffa i diapozytywy. Jedyny problem to że będziesz je musiał sobie przyciąć, wyczyścić i skalibrować, ale masz od razu 1-bitowy raster gotowy do automatycznej wektoryzacji. Dla różnych map są różne diapozytywy - zerknij na stronę CODGiKu.
Marcin Szwagrzyk GISowiec
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Jak wyglądają takie diapozytywy? Są rozdzielone na warstwy? Na czym polega przewaga takiego diapozytywu (jeśli chodzi o automatyczną wektoryzaję) w stosunku do zwykłego rastra mapy topograficznej?Kiedyś tam wyciągliśmy z kolegą zabudowę z mapy topo (10k) i -pomijając dziury wycięte przez napisy i inne obiekty nachodzące na budynki- wyszła trochę koślawa, ale całkiem przyzwoita warstwa wektorowa.
Pomysł z tymi diapozytywami ciekawy, chętnie dowiem się więcej.
[EDIT]
Na rastrze w skali szarości (wyciągnięte jedno pasmo) budynki mają taką samą wartość piksela, jak poziomice i coś tam jeszcze, więc się ich w ten sposób nie wyodrębni z reszty. Trzeba by pewnie stworzyć raster 8 bitowy, z wykorzystaniem wszystkich pasm, i z tego wyselekcjonować zabudowę...Marcin Szwagrzyk edytował(a) ten post dnia 07.02.12 o godzinie 20:37
Dominik
Mikiewicz
maps made easy,
www.cartomatic.pl ||
cartoninjas.net
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
To może ja z innej beczki - klasyfikacja nadzorowana...Fakt, że jeżeli poszczególne arkusze są nie wyrównane kolorystycznie, to będzie trzeba każdy oddzielnie, ale... ;-)
Multispec lubi duuużo kanałów, jak nazwa wskazuje. Głowy sobie nie dam uciąć, ale z tego co pamiętam ILWIS również ma narzędzia do klasyfikacji nadzorowanej.
Łukasz
Beluch
Szukam pracy
związanej z GIS
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Dominik Mikiewicz:ILWIS również ma
narzędzia do klasyfikacji nadzorowanej.
Tak ma i działa całkiem, całkiem. Robiłem porównanie z Erdasem i co prawda wyniki wyszły w granicach błędy pomiaru, ale klasyfikacja z ILWISa była lepsza.
Weryfikacja względem map lotniczych, a klasyfikacja na Landsacie.
Uważam więc, że ten pomysł co do mapy rastrowej jest całkiem sensowny.
Mateusz K. prawieGISownik
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
W Multispec, dla klasyfikacji nadzorowanej, można wyznaczyć poligony o dowolnym kształcie, a w ILWIS tylko prostokąty z ograniczoną ilością pixeli (przynajmniej mnie nie udało się wyznaczyć nieprostokątów). Lepsze wyniki osiągałem w Multispec
Krzysztof Lemańczyk GIS & ArcGIS
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
[EDIT] Ten skrypt co mi dałeś nie chciał działać - niestety mam nikłe pojęcie o Pythonie. Znalazłem po necie inny, który po zaadaptowaniu zadziałał. Tylko jak przy arcpy.CopyRaster_management zmusić go, by nie generował piramid? Mi są zupełnie niepotrzebnie, a przedłuża to cały proces :|
arcpy.env.pyramid = "None"
Łukasz
Beluch
Szukam pracy
związanej z GIS
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Mateusz K.:
W Multispec, dla klasyfikacji nadzorowanej, można wyznaczyć poligony o dowolnym kształcie, a w ILWIS tylko prostokąty z ograniczoną ilością pixeli (przynajmniej mnie nie udało się wyznaczyć nieprostokątów). Lepsze wyniki osiągałem w Multispec
hmmm dzięki za info, nie znałem tego programu.
Jacek
S.
Dharma Initiative
Gardener
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Tak, zakupić najłatwiej :) Tylko, że u mnie to nie wchodzi raczej w grę :(Pomijając to co teraz robię, identyczny - 24 bitowy problem - miałem z mapami ściągniętymi z serwera WMS GDOŚ. Niby każdy obrazek taki sam, a jednak za każdym razem się dziwiłem, że Index Color inny.
W ogóle to dziwne, że w ArcGiSie nie ma większego wsparcia jeżeli chodzi o 24 bitowe pliki - chocby w konwersji na bardziej "zjadliwe" formaty. I trzeba robić na około ...
Btw. Co do klasyfikacji nadzorowanej - w sumie, robiłem kiedyś takową w ENVI dla map satelitarnych, nie pomyślałem żeby to tutaj zastosować. Problem wydawał mi się zbyt błahy :)Jacek S. edytował(a) ten post dnia 08.02.12 o godzinie 00:58
Marcin
K.
Specjalista GIS,
Państwowy Instytut
Geologiczny
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Marcin Szwagrzyk:
Jak wyglądają takie diapozytywy? Są rozdzielone na warstwy? Na czym polega przewaga takiego diapozytywu (jeśli chodzi o automatyczną wektoryzaję) w stosunku do zwykłego rastra mapy topograficznej?
Marcin, na stronie CODGiKu, której link wrzuciłem masz przykłady jak wygląda taki raster diapozytywu. Przewaga jest taka, że jest on 1-bitowym tiffem (na stronie są chyba jpg), więc piksel ma wartość tylko biały albo czarny. Co pozwala zaprząc wektoryzację automatyczną (moduł ArcScan).
Marcin
K.
Specjalista GIS,
Państwowy Instytut
Geologiczny
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Jacek S.:
Tak, zakupić najłatwiej :) Tylko, że u mnie to nie wchodzi raczej w grę :(
Jeśli masz jakiś projekt badawczy, to może jakieś współczynniki obniżające cenę wchodzę w grę?
Możesz też spróbować uderzyć do konkretnego WODGiKu - przepisy niby te same, ale czasem łatwiej przekonać kogoś, że jednak się kwalifikujesz pod konkretny współczynnik ;-)
Marcin Szwagrzyk GISowiec
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Zależy, do czego ta warstwa jest potrzebna. Jak np do jakiejś wizualizacji w skali 10k, to wyciągnięcie kolorów z rastra, zamiana na wektor (wywalenie śmieci z automatu - np obiektów za małych na budynki czy też obiektów o absurdalnych wskaźnikach obwód/powierzchnia), w zupełności wystarczy.Nadzorowana klasyfikacja i tak nie da jakiś super rezultatów - problemem będą pewnie napisy zachodzące na budynki (w miastach jest ich sporo) i inne obiekty przecinające budynki - np linie energetyczne. Chyba, że potraficie sobie z tym poradzić.
Krzysztof Lemańczyk GIS & ArcGIS
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Skoro są to kolorowe 10k to w WODGiK albo CODGiK można dostać za relatywnie niewielkie pieniądze ich wersję wektorową. Może warto?
Marcin Szwagrzyk GISowiec
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
W każdym razie, żeby pokazać, że się da (czy jest to opłacalne i sensowne, to inna sprawa).Pierwszy obrazek - po wyciągnięciu pikseli o wartości odpowiadającej zabudowie mieszkaniowej (z mapy w skali szarości).
Drugi obrazek - po obróbce - usunięciu obiektów mniejszych niż 20 m2, zbuforowaniu o 2 m (bo obcięło trochę z brzegów) i zastosowaniu narzędzia simplify buildings
http://imageshack.us/f/195/zabudowag.jpg/Marcin Szwagrzyk edytował(a) ten post dnia 08.02.12 o godzinie 14:41
Jacek
S.
Dharma Initiative
Gardener
Temat: Reklasyfikacja kilku rastrów wg jednego schematu
Projekt badawczy to niestety nie jest. Co prawda do pracy magisterskiej takie BDO próbowałem kiedyś pozyskac, ale jak mi zaśpiewali cenę (pomimo zniżek, obszar leżał niestety na styku akurat 4-rech kwadratów) stwierdziłem że dam sobię spokój i że aż tak to mi potrzebne nie jest.A wracając do wektoryzacji: jeśli chodzi o zabudowę, to przecinanie przez linie nie jest akurat problemem u mnie - chodzi mi po prostu o lokalizację zabudowy do dalszych analiz (odległość). Ten pixel z obrysu (czyli 1,56 m) też sobie buforem można zrekompensować, a jakieś kawałki napisów i takie tam - usunąć automatycznie. Ostatecznie zrobiłem tak, że w ArcMapie porobiłem modele automatycznie wyciągające te 3 kanały, reklasyfikujące raster po danych wartościach pixeli R, G lub B(na razie wystarcza mi jeden kanał) i wektoryzujące go do poligonów. Dzięki wszystkim za pomoc :)Jacek S. edytował(a) ten post dnia 08.02.12 o godzinie 21:53
