주제 2 : 다음은 JP2에 대한 더 긴 조사입니다. 더 효율적인 압축을 사용하는 데 관심이 있었기 때문입니다. 그리고 결과 IMO는 다음과 같습니다. GDAL / QGIS (QgsRastrerDataProvider) 내에서 올바른 jpeg2000 압축과 타일 세트 및 블록 구조와 같은 빠른 캐싱 옵션을 간단한 방법으로 결합 할 수 없습니다.
일반적으로 GeoTiff는 Raster-DB에 적합합니다 .GDAL은 오랫동안 지원해 왔으며 삶을 더 쉽게 만들 수있는 많은 기능을 가지고 있습니다.
gdal 페이지에서 데이터 드라이버 JP2의 기능을 찾을 수 있습니다. : 당신의 요구 (종속 libjasper)에 JPEG2000을 jp2k이 페이지에 나열되어 http://www.gdal.org/frmt_jpeg2000.html . http://www.gdal.org/formats_list.html에 나열된 "드라이버"는 읽기, 쓰기를 지원하며 2GiB로 제한되며 GDAL 버전 1.9부터 빌드되며 일부 블록 옵션이 있습니다 ...
JP2로 가능한 것을 확실하게하기 위해 테스트 세트를 만들었습니다.
나는 큰 arial 사진을 사용하여 발트해에서 ca. 12000 x 10000 픽셀 (RGB) 및 2cm의지면 해상도 (충분히 크기를 바랍니다). 현재 QGIS-Project에서 약 130GiB의 용량을 가진 270 개의 파일이 있습니다. 또한 8GB 및 4xAMD Opteron 코어가 장착 된 64 비트 Debian 7.0 Linux OS에서 유창하고 원활하게 작동합니다. ...하지만 GeoTiff와 함께.
GIS 도구에서 빠르게 액세스하려면 다음 단계와 옵션을 사용하여 이미지를 참조하고 GDAL로 다시 샘플링합니다 (bash 스크립트 스타일의 경우 .. 죄송합니다).
gps-log의 데이터 세트를 사용하여 이미지 참조 :
gdal_translate \
-of GTiff \
-gcp 0 0 $ulx $uly \
-gcp 0 $hg $llx $lly \
-gcp $cwd $chg $cpx $cpy \
-gcp $wd 0 $urx $ury \
-gcp $wd $hg $lrx $lry \
-a_srs epsg:32632 \
$raw_tif $ref_tif
변수 $ [u | o] [l | r] [x | y]는 사진 문법 미적분에 의해 주어진 이미지의 모서리이고 변수 $ wd는 이미지 너비, $ hg 이미지 높이 및 $ cwd $ chg 중심점.
타일 세트 옵션을 사용하여 이미지를 실제 세계로 변형합니다.
gdalwarp \
--config GDAL_CACHEMAX 2000 -wm 2000 -wo NUM_THREADS=4 \
-r bilinear -dstnodata '0 0 0' \
-of GTiff \
-t_srs epsg:32632 \
-tr 0.02 0.02 \
-co COMPRESS=LZW \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
$ref_tif $geo_tif
매개 변수 : --config GDAL_CACHEMAX 2000 -wm 2000 -wo NUM_THREADS = 4는 물건을 계산하기 위해 많은 캐시와 4 개의 프로세서 스레드를 사용하도록 아이언에 지시합니다. 리샘플링은 이중 선형 방식으로 수행되며 조정 시스템은 UTM-32입니다.하지만 512x512 블록 타일을 사용하여 탐색 작업 (줌, 팬, 포인트)을 빠르고 유연하게 만들고 싶습니다. 이는 -co TILED = YES -co BLOCKXSIZE = 512 -co BLOCKYSIZE = 512 옵션으로 수행됩니다.
줌 레벨 2,4,8 및 16에서 피라미드를 GeoTiff에 씁니다.
gdaladdo -r gauss $geo_tif 2 4 8 16
gdalinfo로 표시되는 결과 GeoTiff는 다음과 같습니다.
Driver: GTiff/GeoTIFF
Files: CF006135.TIF
Size is 12419, 9900
Coordinate System is:
PROJCS["WGS 84 / UTM zone 32N",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",9],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AUTHORITY["EPSG","32632"]]
Origin = (656099.007276594405994,5998980.139660121873021)
Pixel Size = (0.020000000000000,-0.020000000000000)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 656099.007, 5998980.140) ( 11d23'17.54"E, 54d 6'54.87"N)
Lower Left ( 656099.007, 5998782.140) ( 11d23'17.17"E, 54d 6'48.47"N)
Upper Right ( 656347.387, 5998980.140) ( 11d23'31.21"E, 54d 6'54.60"N)
Lower Right ( 656347.387, 5998782.140) ( 11d23'30.84"E, 54d 6'48.20"N)
Center ( 656223.197, 5998881.140) ( 11d23'24.19"E, 54d 6'51.54"N)
Band 1 Block=512x512 Type=Byte, ColorInterp=Red
NoData Value=0
Overviews: 6210x4950, 3105x2475, 1553x1238, 777x619
Band 2 Block=512x512 Type=Byte, ColorInterp=Green
NoData Value=0
Overviews: 6210x4950, 3105x2475, 1553x1238, 777x619
Band 3 Block=512x512 Type=Byte, ColorInterp=Blue
NoData Value=0
Overviews: 6210x4950, 3105x2475, 1553x1238, 777x619
GeoTiff에서는 모든 것이 정상입니다! 직접 대화 단계를 사용하여 JP2를 작성하려고하면 :
gdalwarp -of jpeg2000 -co TILED=YES -co BLOCKSIZEX=512 -co BLOCKSIZEY=512 CF006135.TIF CF006135.jp2
Output driver `jpeg2000' not recognised or does not support
direct output file creation. The following format drivers are configured
and support direct output:
VRT: Virtual Raster
GTiff: GeoTIFF
NITF: National Imagery Transmission Format
HFA: Erdas Imagine Images (.img)
ELAS: ELAS
MEM: In Memory Raster
BMP: MS Windows Device Independent Bitmap
PCIDSK: PCIDSK Database File
ILWIS: ILWIS Raster Map
SGI: SGI Image File Format 1.0
Leveller: Leveller heightfield
Terragen: Terragen heightfield
netCDF: Network Common Data Format
HDF4Image: HDF4 Dataset
ISIS2: USGS Astrogeology ISIS cube (Version 2)
ERS: ERMapper .ers Labelled
RMF: Raster Matrix Format
RST: Idrisi Raster A.1
INGR: Intergraph Raster
GSBG: Golden Software Binary Grid (.grd)
PNM: Portable Pixmap Format (netpbm)
ENVI: ENVI .hdr Labelled
EHdr: ESRI .hdr Labelled
PAux: PCI .aux Labelled
MFF: Vexcel MFF Raster
MFF2: Vexcel MFF2 (HKV) Raster
BT: VTP .bt (Binary Terrain) 1.3 Format
LAN: Erdas .LAN/.GIS
IDA: Image Data and Analysis
GTX: NOAA Vertical Datum .GTX
NTv2: NTv2 Datum Grid Shift
ADRG: ARC Digitized Raster Graphics
SAGA: SAGA GIS Binary Grid (.sdat)
실패합니다. 오류 메시지에 실마리 나 다른 형식을 사용할 수 있습니다.
gdal_translate 도구를 사용하면 적절한 JP2000을 얻을 수 있습니다.
gdal_translate -of jpeg2000\
-co TILED=YES -co BLOCKSIZEX=512 -co BLOCKSIZEY=512\
CF006135.TIF CF006135.jp2
ls -l
-rw-r--r-- 1 huckfinn huckfinn 63538529 Jan 28 23:55 CF006135.jp2
-rw-r--r-- 1 huckfinn huckfinn 388 Jan 28 23:04 CF006135.jp2.aux.xml
-rw-r--r-- 1 huckfinn huckfinn 519882980 Sep 30 21:01 CF006135.TIF
압축률은 1 : 8이지만 gdalinfo로 표시된대로 블록 및 타일 세트 속성을 느슨하게합니다.
gdalinfo CF006135.jp2
Driver: JPEG2000/JPEG-2000 part 1 (ISO/IEC 15444-1)
Files: CF006135.jp2
CF006135.jp2.aux.xml
Size is 12419, 9900
Coordinate System is:
PROJCS["WGS 84 / UTM zone 32N",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",9],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AUTHORITY["EPSG","32632"]]
Origin = (656099.007276594405994,5998980.139660121873021)
Pixel Size = (0.020000000000000,-0.020000000000000)
Metadata:
AREA_OR_POINT=Area
Corner Coordinates:
Upper Left ( 656099.007, 5998980.140) ( 11d23'17.54"E, 54d 6'54.87"N)
Lower Left ( 656099.007, 5998782.140) ( 11d23'17.17"E, 54d 6'48.47"N)
Upper Right ( 656347.387, 5998980.140) ( 11d23'31.21"E, 54d 6'54.60"N)
Lower Right ( 656347.387, 5998782.140) ( 11d23'30.84"E, 54d 6'48.20"N)
Center ( 656223.197, 5998881.140) ( 11d23'24.19"E, 54d 6'51.54"N)
마지막 테스트는 GeoTiff를 내부 JPEG 압축과 함께 사용하는 것이었지만 다음과 같은 결과를 얻었습니다.
gdalwarp -of GTiff \
-co COMPRESS=JPEG \
-co TILED=YES -co BLOCKSIZEX=512 -co BLOCKSIZEY=512\
CF006135.TIF CF006135_IJPG.TIF
Creating output file that is 12419P x 9900L.
Warning 6: Driver GTiff does not support BLOCKSIZEX creation option
Warning 6: Driver GTiff does not support BLOCKSIZEY creation option
Processing input file CF006135.TIF.
....
여기서 어디로 가야합니까? GDAL의 JP2000 Jasper driver lib 페이지에는 블록 옵션을 사용하여 jp2000 이미지를 작성하기위한 일부 매개 변수가 나열되어 있습니다.
Encoding parameters, directly delivered to the JasPer library described in the JasPer documentation. Quoted from the docs:
``The following options are supported by the encoder:
imgareatlx=x Set the x-coordinate of the top-left corner of the image area to x.
imgareatly=y Set the y-coordinate of the top-left corner of the image area to y.
tilegrdtlx=x Set the x-coordinate of the top-left corner of the tiling grid to x.
tilegrdtly=y Set the y-coordinate of the top-left corner of the tiling grid to y.
tilewidth=w Set the nominal tile width to w.
tileheight=h Set the nominal tile height to h.
prcwidth=w Set the precinct width to w. The argument w must be an integer power of two. The default value is 32768.
prcheight=h Set the precinct height to h. The argument h must be an integer power of two. The default value is 32768.
cblkwidth=w Set the nominal code block width to w. The argument w must be an integer power of two. The default value is 64.
cblkheight=h Set the nominal code block height to h. The argument h must be an integer power of two. The default value is 64.
그러나 질문은 어떤 것이 qgis를 사용할 것인가입니다.