🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

7 total messages Started by Mateuszzz Thu, 07 Apr 2011 01:18
przeskalowanie rastra
#12310
Author: Mateuszzz
Date: Thu, 07 Apr 2011 01:18
14 lines
490 bytes
Witam,

skoro z modułu GDAL używa większość programów GISowych, to może ktoś
zetknął się z następującym problemem.

Z nieznanej mi przyczyny nie mogę wykonać przeskalowania
rastra w formacie ASCII (próbowałem przed konwersją zapisać go w postaci
GeoTiff - to również nie pomaga):

gdal_translate -outsize 5% 5% -of AAIGrid /home/costam.asc /home/costam2.asc

Za każdym razem widzę błąd dotyczący nieprawidłowych wymiarów
(0x0 TIFF). Co może być przyczyną?

Re: przeskalowanie rastra
#12311
Author: mt
Date: Thu, 07 Apr 2011 02:03
22 lines
695 bytes
Mateuszzz pisze:
> Witam,
>
> skoro z modułu GDAL używa większość programów GISowych, to może ktoś
> zetknął się z następującym problemem.
>
> Z nieznanej mi przyczyny nie mogę wykonać przeskalowania
> rastra w formacie ASCII (próbowałem przed konwersją zapisać go w postaci
> GeoTiff - to również nie pomaga):
>
> gdal_translate -outsize 5% 5% -of AAIGrid /home/costam.asc
> /home/costam2.asc
>
> Za każdym razem widzę błąd dotyczący nieprawidłowych wymiarów
> (0x0 TIFF). Co może być przyczyną?

A podejrzałeś tego grida w jakimś edytorze tekstowym? Wygląda na to, że
  grid nie ma podanej wartości ncols i nrows (dwa pierwsze wpisy).

--
marcin

Re: przeskalowanie rastra
#12312
Author: Mateuszzz
Date: Thu, 07 Apr 2011 07:55
26 lines
1000 bytes
> A podejrzałeś tego grida w jakimś edytorze tekstowym? Wygląda na to, że
> grid nie ma podanej wartości ncols i nrows (dwa pierwsze wpisy).
>

GRID stworzyłem "samodzielnie" (napisałem skrypt, który wypisuje
odpowiednie wartości do pliku tekstowego).
Jego (pliku .asc) zawartość to:

ncols 9
nrows 5
xllcorner 19.875
yllcorner 51.875
DX 0.25
DY 0.25
NODATA_value  -9999
1.9922307E-5, 1.894646E-5, 1.8956462E-5, 1.9361845E-5, 1.9511384E-5,
1.9329693E-5, 1.9673384E-5, 1.8383538E-5, 1.8088462E-5
1.7483077E-5, 2.0421385E-5, 1.9258154E-5, 1.9281846E-5, 1.8062461E-5,
1.7116461E-5, 1.5586462E-5, 1.8733692E-5, 1.9904E-5
1.781323E-5, 1.8908308E-5, 2.055877E-5, 1.998077E-5, 1.9613231E-5,
1.8095077E-5, 1.7196462E-5, 1.5384308E-5, 1.757877E-5
1.9018922E-5, 1.895046E-5, 1.830677E-5, 2.0832154E-5, 2.051923E-5,
2.0070462E-5, 1.8988E-5, 1.7819077E-5, 1.753277E-5
1.7792923E-5, 1.8765691E-5, 1.9184923E-5, 1.8667384E-5, 2.1397693E-5,
2.1273538E-5, 2.0916308E-5, 1.9450616E-5, 1.8722461E-5

Re: przeskalowanie rastra
#12313
Author: mt
Date: Thu, 07 Apr 2011 09:00
18 lines
688 bytes
Mateuszzz pisze:
>> A podejrzałeś tego grida w jakimś edytorze tekstowym? Wygląda na to, że
>> grid nie ma podanej wartości ncols i nrows (dwa pierwsze wpisy).
>>
>
> GRID stworzyłem "samodzielnie" (napisałem skrypt, który wypisuje
> odpowiednie wartości do pliku tekstowego).
> Jego (pliku .asc) zawartość to:

Wygląda na ok, jedyne co może być problematyczne, to DX i DY (po
skalowaniu przyjmują różne wartości), część programów tego nie
obsługuje, bezpieczniej zastąpić jednym parametrem cellsize. A jakiej
implementacji i wersji GDAL-a używasz? U mnie wtyczka do QGIS oparta na
GDAL 1.7.3 wykonała bez problemu skalowanie Twojego pliku.

--
marcin

Re: przeskalowanie rastra
#12314
Author: mt
Date: Thu, 07 Apr 2011 09:13
17 lines
446 bytes
Mateuszzz pisze:

> GRID stworzyłem "samodzielnie" (napisałem skrypt, który wypisuje
> odpowiednie wartości do pliku tekstowego).
> Jego (pliku .asc) zawartość to:
>
> ncols 9
> nrows 5

Ok, już wiem, gdzie leży błąd. Jeżeli próbujesz przeskalować grida o
wymiarach 9x5 o 5% to wynikowy będzie mieć rozmiary poniżej 1x1, a tak
się nie da stąd zwraca Ci błąd. Albo większy grid albo mniejsze
przeskalowanie.

--
marcin

Re: przeskalowanie rastra
#12316
Author: Mateuszzz
Date: Thu, 07 Apr 2011 20:21
34 lines
1614 bytes
> Ok, już wiem, gdzie leży błąd. Jeżeli próbujesz przeskalować grida o
> wymiarach 9x5 o 5% to wynikowy będzie mieć rozmiary poniżej 1x1, a tak
> się nie da stąd zwraca Ci błąd. Albo większy grid albo mniejsze
> przeskalowanie.
>

Hmmm...czyli najwidoczniej wpisuję złą wartość...
może opiszę całą sytuację....

chcę wykonać wykresy rozrzutu (oraz analizę statystyczną) danych
znajdujących się w dwóch rastrach. Jeśli dobrze rozumuję, oba muszą mieć
identyczne wymiary (myślę o współrzędnych rogów) i identyczną rozdzielczość.

W jaki sposób wykonać taką operację w QGISie?
Samo obcięcie nie jest kłopotliwe (Raster-->Kadruj, po czym można wpisać
współrzędne rogów uzyskane przy pomocy narzędzia gdalinfo.

Nie wiem za bardzo jak "zmniejszyć" boki rastra (czy należy to
zrealizować przez przeskalowanie?)
Kiedy wykonać taką operację - wydaje mi się, że logiczne byłoby
zrobienie tego przed "kadrowaniem", jednak nawet w tej sytuacji może
okazać się, że po obcięciu komórki jednego nie pokrywają się idealnie z
bokami drugiego.

Wpadło mi do głowy użycie narzędzia gdal2xyz - zapisanie danych z rastra
do pliku ze współrzędnymi oraz wartościami.
Następnym krokiem byłoby dodanie dodatkowych punktów (np. w 1/4
odległości od środka rastra) z przepisaną wartością.

Tak dużą ilość punktów można byłoby "obciąć" do rozmiarów pierwszego z
rastrów, po czym wykonać interpolację metodą najbliższego sąsiada.
Czy jest to dobry pomysł?
W jaki sposób szybko "zwielokrotnić" ilość punktów w rastrze?

Re: przeskalowanie rastra
#12318
Author: Mateuszzz
Date: Sat, 09 Apr 2011 17:43
12 lines
426 bytes
> Ok, już wiem, gdzie leży błąd. Jeżeli próbujesz przeskalować grida o
> wymiarach 9x5 o 5% to wynikowy będzie mieć rozmiary poniżej 1x1, a tak
> się nie da stąd zwraca Ci błąd. Albo większy grid albo mniejsze
> przeskalowanie.
>
Dlaczego jest to niemożliwe?
Chciałbym uzyskać rastry o jeszcze mniejszym "oczku"
(teraz mam 0,25 piksela - chcę mieć mniejsze).

Czy możliwe jest wykonanie tej czynności?

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads