-3.4e + 38 nodata 값으로 어떻게해야합니까?


17

http://www.worldclim.org/current (bioclim set) 에서 다운로드 할 수있는 것과 같은 일부 생물 기후 래스터 파일을 처리하려고합니다 . -3.4e+38QGIS에 따라 nodata 값이 설정되어있는 것 같습니다 (gdalinfo의 출력을 보면 -3.39999999999999996e+38).

gdal 도구는이 nodata 값을 처리 할 수없고 qgis도 인식 할 수없는 것 같습니다. 레이어 스타일에는 -3.4e + 38에 대한 항목이 100 % 투명하게 설정되어 있지만 "기능 식별"선택 도구에 -3.4e + 38 값이있는 것으로 표시되어 있어도 해당 값이 계속 표시됩니다.

대신 nodata 값을 -9999로 변환하기 위해 vrt를 만들려고했지만 작동하지 않았습니다.

사용 가능한 nodata 값을 갖도록 이러한 파일을 처리하려면 어떻게해야합니까?

파일에서 수집 된 nodata 값 투명도 설정은 효과가 없습니다.


새 버전에서 qgis는 더 나은 nodata 지원 기능을 가지고 있다고 가정합니다. 1.8과 관련하여 많은 "nodata"문제가있었습니다 (특히 지역 내에서 히스토그램이나 수단을 계산할 때).
nickves

답변:


4

GDAL 이러한 값을 처리 할 수 있습니다. 실제로 GDAL의 기본 NoData 값은 사용자의 값과 거의 같습니다. QGIS의 문제는 부동 소수점 오류라고 생각합니다. 부동 소수점 NoData 값과 동일한 문제가 있습니다.

GDAL을 사용하여 NoData 값을 변경하려면 gdalwarp 또는 gdal_translate 를 사용하고 nodata 값을 정수 (각각 -dstnodata 및 -a_nodata)로 설정할 수 있습니다. 무심코, 과거 64 비트 플로트 래스터에서 NoData Value를 -999로 설정하는 데 성공했습니다. 그러나 우리가 이와 관련하여 부동 소수점 문제가 있음을 확인 했으므로 모든 경우에 이것이 작동한다는 것을 보장하고 싶지는 않습니다.


답변 주셔서 감사합니다, 실베스터. 트릭 을 수행 gdal_translate -a_nodata -9999 input.tif output.tif했지만 gdal_translate를 사용하여 작동시킬 수 없었습니다 gdalwarp -dstnodata -9999 input.tif output.tif. 9MB 입력 파일에서 필자의 접근 방식은 26MB 파일 이었지만 gdalwarp는 52MB 출력 파일이되었습니다. 그러나 래스터에 부동 값이 포함되어 있으면이 방법으로 작동하지 않습니다.
rudivonstaden

QGIS 버그 추적기에 공개 티켓이 있는지 확인 했습니까?
underdark

1
데이터 팽창은 더 큰 픽셀 깊이 (63 비트 vs. 16 비트)를 사용하거나 원본이 JPEG이고 새로운 결과가 TIFF 일 수 있습니다. @underdark-죄송합니다! 아니요, 공개 티켓이 있는지 확인하지 않았습니다.
MappaGnosis

@underdark이 티켓과 일치하는 티켓을 찾을 수 없으므로 버그 보고서 ( hub.qgis.org/issues/6786 )를 추가했습니다 .
rudivonstaden

1
파일 크기가 작 으면을 추가하면 -co COMPRESS=LZW됩니다.
j08lue 2016 년

11

Float32에서 데이터 형식을 Int16으로 변환 하여이 문제에 대한 해결 방법을 찾았습니다. 최소값은 -32768이며 nodata 값으로 처리 될 수 있습니다. 다음 명령으로 트릭을 수행했습니다.

gdal_translate -ot Int16 -a_nodata -32768 input.tif output.tif

아마도 더 나은 해결책이있을 수 있지만 이것은 적어도 내 즉각적인 문제를 해결합니다.

데이터가 올바르게 선택되지 않음



0

gdal_calc.py input.tif --outfile = output.tif --calc = "A * (A> 0)"시도 --NoDataValue = 0

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.