Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Piramidki
10-02-2010, 12:48,
#1
Piramidki
Potrzebuję utworzyć piramidy dla kilkudziesięciu plików, które będą wczytane do QGISa. Czy jest to możliwe do zrobienia hurtowo w jakimś zewnętrznym programie?
Czy piramidki w GISie określone są jakimś standardem, czy każdy program tworzy je po swojemu?
10-02-2010, 14:16,
#2
RE: Piramidki
Dobre pytanie...Smile
10-02-2010, 14:20, (Ten post był ostatnio modyfikowany: 10-02-2010, 14:52 {2} przez Rayo.)
#3
RE: Piramidki
(10-02-2010, 14:16)Odoakr napisał(a): Dobre pytanie...Smile

Ja potrzebuję odpowiedzi, nie potwierdzenia Wink

W GDALU jest polecenie GDAL_RETILE, które teoretycznie powinno tworzyć piramidy, ale nie udało mi się jeszcze poprawnie go uruchomić.
No i nie wiem, czy te piramidy zobaczy QGIS.
Może ktoś jest bardziej obeznany w GDALu i będzie wiedział gdzie tkwi błąd. Wpisuję polecenie

CTonguerogram FilesFWTools2.4.7>gdal_retile -pyramidonly -levels 1 -targetdir d:mapypiramidy d:mapypiramidym-34-74-ab.tif

Piramidy mają być zapisane w katalogu 'Piramidy', a utworzone z pliku m-34-74-ab.tif
I katalog, i plik są na dysku we właściwym miejscu.
Piramidy jednak się nie tworzą. Wyświetla się komunikat

File "CTongueROGRA~1FWTOOL~1.7ingdal_retile.py", line 273
print("Building internal Index for %d tile(s) ..." % len(inputTiles), end='')
^
SyntaxError: invalid syntax
10-02-2010, 22:07, (Ten post był ostatnio modyfikowany: 10-02-2010, 22:57 {2} przez m_k.)
#4
RE: Piramidki
Wygląda na to, że ważna jest wielkość liter w nazwach parametrów (ma być tak samo jak na stronie GDAL) - u mnie zadziałała taka komenda:
CTonguerogram FilesFWTools>gdal_retile -pyramidOnly -levels 1 -targetDir tmp tmppolska_ars.png
Aha, 'piramidy' mogą mieć tu podwójne znaczenie. Piramidy w gdal_retile polegają na podziale jednego dużego pliku na wiele mniejszych (tiles, kafelki, cegiełki), natomiast w QGIS pod tym pojęciem ukrywa się dodanie do pliku kolejnych poziomów o zmniejszonej rozdzielczości, czyli coś co w GDAL nazywa się 'overviews', a do ich tworzenia służy komenda gdaladdo...

Przykładowo gdal_retile z pliku źródłowego 2560x2560px utworzy 100 (10x10) oddzielnych plików po 256px na poziomie 1, 25 plików na poziomie 2 itd. (każdy plik to mały wycinek całości)
gdaladdo utworzy poziomy 1280x1280px, 640x640 itd. (poziomy obejmują cały obraz)

Zatem o które piramidy Ci chodziło? Smile

A żeby jeszcze bardziej zaciemnić Wink to geotify obsługują tzw. internal tiling - plik może być wewnętrznie podzielony na kwadratowe fragmenty, co przyspiesza odczyt danych z dysku. W GDAL robi się to przy pomocy gdal_translate z opcją -co TILED=YES
11-02-2010, 09:14,
#5
RE: Piramidki
(10-02-2010, 22:07)m_k napisał(a): Zatem o które piramidy Ci chodziło? Smile

W takim razie chodziło mi te tworzone za pomocą GDALADDO Smile

Sprawdziłem przed chwilą i tak utworzne piramidy w GDALU są widoczne w QGIS. Więc chyba jest to jakiś standard (przynajmniej pomiędzy tymi dwoma programami). Widoczne są zarówno te utworzone wewnętrznie jak i zewnętrznie w plikach .ovr.

Cytat:A żeby jeszcze bardziej zaciemnić Wink to geotify obsługują tzw. internal tiling - plik może być wewnętrznie podzielony na kwadratowe fragmenty, co przyspiesza odczyt danych z dysku.[/i]

W takim razie co polecasz, aby maksymalnie przyspieszyć pracę z rastrami? Myślałem o plikach .ecw ale to na razie odpada (ograniczenie do 500MB).

Ja na razie próbuję wszystkie rastry 'spiramidyzować' przez GDALADDO. Zastanawiam się tylko, czy lepiej tworzyć piramidy dla każdego rastra oddzielnie i tak je wczytać do QGIS, czy najpierw połączyć wszystkie rastry w jeden duuuży i na nim utworzyć piramidy. Co będzie wydajniejsze przy wczytywaniu?
Czy na to wszystko stosować jeszcze internal tiling o którym wspomniałeś?


Skocz do: