Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
automatyzacja funkcji
24-09-2010, 14:19,
#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
25-09-2010, 10:51,
#2
RE: automatyzacja funkcji
(24-09-2010, 14:19)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
27-09-2010, 10:28, (Ten post był ostatnio modyfikowany: 27-09-2010, 11:03 {2} przez wojsa.)
#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"
27-09-2010, 11:43,
#4
RE: automatyzacja funkcji
(27-09-2010, 10:28)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
28-09-2010, 10:09, (Ten post był ostatnio modyfikowany: 28-09-2010, 10:16 {2} przez wojsa.)
#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
28-09-2010, 18:56,
#6
RE: automatyzacja funkcji
(28-09-2010, 10:09)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


Skocz do: