Mam ortophotos obszaru, który powinien służyć jako mapa tła dla moich wektorów. Mam go w postaci 2500 plików (71,5 MB każdy) w nieprzetworzonym formacie TIFF z odpowiednim plikiem słownym TFW - 180 GB danych. Układ współrzędnych jest lokalny i pasuje do moich wektorów (nie ma dla niego kodu EPSG, ale nazwałem go „32805” i podałem poprawną definicję).
Do użytku stacjonarnego w MapInfo przekonwertowałem je na ECW (za pomocą jakiegoś narzędzia, które jest dostarczane z MapInfo) i przeskoczyłem o wiele większy, aby mieć tylko 71 plików, ponieważ otwarcie 2500 plików tiff jest przesadą. Właśnie połączyłem 49 TIFF (7x7) w jeden ECW - 35000x35000 pikseli - największy to około 200 MB) Działa świetnie i jest bardzo szybki w MapInfo.
Teraz jestem dość zdezorientowany - JAK obsługiwać ich w GeoServer?
Dla porównania opublikowałem jeden TIFF i jeden ECW. ECW działa znacznie szybciej w podglądzie przeglądarki (zdaję sobie sprawę z problemu licencjonowania serwera ECW, ale nie powinno to stanowić problemu). Znalazłem prezentację „GeoServer na sterydach” i czytałem o ImageMosaic, ImagePyramid, retilingu, dodawaniu przeglądu itp. Było to dość pouczające, ale wciąż nie wiem, co robić.
Moje pytanie brzmi: jak mam to zrobić? Mozaika lub piramida, a jeśli jedna z odpowiedzi jest pozytywna, potrzebuję twojej porady lub wskazówek. Naprawdę chciałbym być ECW z powodu miejsca na dysku, więc nie będzie potrzeby przechowywania 180 GB tiff na serwerze.
Dane będą podawane przez sieć LAN z maksymalnie 20 użytkownikami podłączonymi w godzinach szczytu. Serwer SQL nie ma tak dużej ilości danych. Przepraszam, jeśli przegapię jakieś inne informacje, ale wyślę je w razie potrzeby.
Geoserver 2.1.4, Windows 7 32bit, 2 GB pamięci systemowej, (1.7.0_09 (VM HotSpot (TM) Server VM), Native JAI + Native JAI ImageIO = true
Original TIFF
gdalinfo D:\75720-47970.tif
Driver: GTiff/GeoTIFF
Files: D:\75720-47970.tif
D:\75720-47970.tfw
Size is 5000, 5000
Coordinate System is `'
Origin = (7572000.000000000000000,4797500.000000000000000)
Pixel Size = (0.100000000000000,-0.100000000000000)
Metadata:
TIFFTAG_SOFTWARE=Adobe Photoshop 7.0
TIFFTAG_DATETIME=2006:10:09 13:02:57
TIFFTAG_XRESOLUTION=72
TIFFTAG_YRESOLUTION=72
TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 7572000.000, 4797500.000)
Lower Left ( 7572000.000, 4797000.000)
Upper Right ( 7572500.000, 4797500.000)
Lower Right ( 7572500.000, 4797000.000)
Center ( 7572250.000, 4797250.000)
Band 1 Block=5000x1 Type=Byte, ColorInterp=Red
Band 2 Block=5000x1 Type=Byte, ColorInterp=Green
Band 3 Block=5000x1 Type=Byte, ColorInterp=Blue
-------------
ECW file which is retiled from 7x7 original tiffs
gdalinfo D:\OF-45.ecw
Driver: ECW/ERDAS Compressed Wavelets (SDK 3.x)
Files: D:\OF-45.ecw
Size is 35000, 35000
Coordinate System is:
LOCAL_CS["LOCAL - (unsupported)",
UNIT["Meter",1]]
Origin = (7571500.000000000000000,4798500.000000000000000)
Pixel Size = (0.100000000000000,-0.100000000000000)
Corner Coordinates:
Upper Left ( 7571500.000, 4798500.000)
Lower Left ( 7571500.000, 4795000.000)
Upper Right ( 7575000.000, 4798500.000)
Lower Right ( 7575000.000, 4795000.000)
Center ( 7573250.000, 4796750.000)
Band 1 Block=35000x1 Type=Byte, ColorInterp=Red
Overviews: 17500x17500, 8750x8750, 4375x4375, 2187x2187, 1093x1093, 546x546, 273x273, 136x136
Band 2 Block=35000x1 Type=Byte, ColorInterp=Green
Overviews: 17500x17500, 8750x8750, 4375x4375, 2187x2187, 1093x1093, 546x546, 273x273, 136x136
Band 3 Block=35000x1 Type=Byte, ColorInterp=Blue
Overviews: 17500x17500, 8750x8750, 4375x4375, 2187x2187, 1093x1093, 546x546, 273x273, 136x136
źródło
Odpowiedzi:
Przeprowadziłem eksperyment z plikiem TIFF i ECW. Zaczęło się od ECW o pojemności 1,2 GB i przekonwertowało go do formatu TIFF z kompresją i piramidami, było to około 1,5 GB. Myślę więc, że TIFF może mieć podobny rozmiar jak ECW.
Mozaikowałbym obraz za pomocą GDAL, upewniając się, że kompresja jest włączona. Następnie buduj piramidy, a jeśli wynikowy plik jest rozsądny (chyba mniej niż 10 GB), pozwolę GeoServerowi zrobić resztę.
Rozumiem, że wydajność między PostGIS i TIFF sprzyja tiff.
Bibliografia:
źródło
Miałem podobny problem kilka tygodni temu. Rozwiązałem to w ten sposób:
W ten sposób otrzymujesz MRDB (baza danych o wielu rozdzielczościach), która jest najbardziej efektywnym sposobem obsługi dużej ilości danych.
Po powyższym możesz po prostu podłączyć GeoServer do PostGIS i podawać swoje dane. Na podstawie własnego przykładu musiałem użyć 82 ortophotomap (40 GB danych) w swojej aplikacji, więc zrobiłem to, co następuje i działa świetnie! Wadą tej sytuacji jest to, że płytki rastrowe są znacznie większe niż płytki źródłowe. W moim przypadku dane wzrosły z 40 GB do ~ 96 GB.
EDYCJA I powinieneś monitorować parametry swojego serwera, ponieważ 2 GB pamięci RAM i win7 + geoserver + postgres mogą czasem zadławić się. Być może dobrym sposobem na zwiększenie wydajności byłoby przeniesienie DB na inną maszynę lub zmiana Win7 na Linux (lub na oba z nich), ponieważ system * nix jest tańszy niż MS.
źródło