Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
automatyzacja funkcji
24-09-2010, 02:19 PM
Post: #1
automatyzacja funkcji
mamy taką prostą funkcje
r.in.gdal input=sciezka output=nazwa
Powiedzmy że mamy katalog zawierający 50 plików do zaimportowania do Grass
jak by wyglądał skrypt który wykonuje to polecenie dla całego katalogu
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
25-09-2010, 10:51 AM
Post: #2
RE: automatyzacja funkcji
(24-09-2010 02:19 PM)wojsa napisał(a):  mamy taką prostą funkcje
r.in.gdal input=sciezka output=nazwa
Powiedzmy że mamy katalog zawierający 50 plików do zaimportowania do Grass
jak by wyglądał skrypt który wykonuje to polecenie dla całego katalogu

Zakładając, że importujesz pliki o rozszerzeniu "tif":

Kod:
for i in /katalog/z/danymi/*.tif; do r.in.gdal in=$i out=`basename $i .tif`; done

Maciej Sieczka
http://www.sieczka.org
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
27-09-2010, 10:28 AM (Ten post był ostatnio modyfikowany: 27-09-2010 11:03 AM przez wojsa.)
Post: #3
RE: automatyzacja funkcji
ok udało się. Ale powstało kolejne pytanie. Chciałbym teraz hurtem przerobić to co mam zaimportowane do grassa. jak teraz napisać polecenie? powiedzmy że chcemy użyć funkcji r.out.gdal dla wszystkich plików zaczynających się od "M"
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
27-09-2010, 11:43 AM
Post: #4
RE: automatyzacja funkcji
(27-09-2010 10:28 AM)wojsa napisał(a):  ok udało się. Ale powstało kolejne pytanie. Chciałbym teraz hurtem przerobić to co mam zaimportowane do grassa. jak teraz napisać polecenie? powiedzmy że chcemy użyć funkcji r.out.gdal dla wszystkich plików zaczynających się od "M"

Zakładając, że eksportujesz do GeoTIFFa (domyślny format wyjściowy r.out.gdal):

Kod:
g.mlist type=rast pat=M* | while read i; do r.out.gdal in=$i out=${i}.tif; done

Maciej Sieczka
http://www.sieczka.org
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
28-09-2010, 10:09 AM (Ten post był ostatnio modyfikowany: 28-09-2010 10:16 AM przez wojsa.)
Post: #5
RE: automatyzacja funkcji
No to jeszcze jeden problem. Zasilamy raster RGB który rozbija się na poszczególne kanały i chcemy automatycznie połączyć go z powrotem w jeden plik przy pomocy funkcji r.composite. Nie mogę sobie poradzić z przekierowaniem wyniku zasilenia na wejście do następnego procesu - r.composite. Oczywiście jak w poprzednich przykładach interesuje mnie wykonanie tego procesu na katalogu zawierającym kilka plików
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
28-09-2010, 06:56 PM
Post: #6
RE: automatyzacja funkcji
(28-09-2010 10:09 AM)wojsa napisał(a):  No to jeszcze jeden problem. Zasilamy raster RGB który rozbija się na poszczególne kanały i chcemy automatycznie połączyć go z powrotem w jeden plik przy pomocy funkcji r.composite. Nie mogę sobie poradzić z przekierowaniem wyniku zasilenia na wejście do następnego procesu - r.composite. Oczywiście jak w poprzednich przykładach interesuje mnie wykonanie tego procesu na katalogu zawierającym kilka plików

Staram się domyślić co kombinujesz. Chesz zaimportować raster RGB i wyeksportować z powrotem do rastra RGB? r.composite zadziała w sensownym tempie tylko dla max levels=32, co zredukuje paletę do 32768 kolorów. Do tego zrobi raster 16bit, którego nie da się ugryźć wieloma programami. A redukcja do zjadliwego dla GIMPów i innych zasięgu 8bit/warstwa (levels= max 6) zrujnuje tabele kolorów kompletnie.

Lepiej zrób w GRASSie grupy (i.group) z każdego tripletu R, G, B i exportuj te grupy r.out.gdal. To pozwoli zachować paletę 24bit i łatwy do ugryzienia format dla innego softu (np. TIFF z 3 warstwami 8bit - "raster RGB").

Przeczytaj "Raster Format" w http://grass.osgeo.org/grass64/manuals/h...intro.html i http://grass.osgeo.org/grass64/manuals/h....gdal.html od "NOTES" w dół.

Maciej Sieczka
http://www.sieczka.org
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
Odpowiedz 


Skocz do: