2012-10-16 6 views
0

이 세 선 : I는 추출 된 데이터에서 보았을 때왜 gdal이 R에서 변수의 최대 값과 최소값을 다르게 했습니까? netCDF의 파일 열고 하나 개의 변수를 읽어

f=open.ncdf("C:\\BR_Ji1.nc") 
A = get.var.ncdf(nc=f,varid="date",verbose=TRUE) 
B = get.var.ncdf(nc=f,varid="GPP",verbose=TRUE) 
[1] "get.var.ncdf: entering. Here is varid:" 
[1] "GPP"     
[1] "checking to see if passed varid is actually a dimvar" 
[1] "entering vobjtodimname with varid= GPP" 
[1] "vobjtodimname: is a character type varid. This file has 6 dims" 
[1] "vobjtodimname: no cases found, returning FALSE" 
[1] "get.var.ncdf: isdimvar: FALSE" 
[1] "vobjtovarid: entering with varid=GPP" 
[1] "Variable named GPP found in file with varid= 17" 
[1] "vobjtovarid: returning with varid deduced from name; varid= 17" 
[1] "get.var.ncdf: ending up using varid= 17" 
[1] "ndims: 2"    
[1] "get.var.ncdf: varsize:" 
[1]  1 17520   
[1] "get.var.ncdf: start:" 
[1] 1 1      
[1] "get.var.ncdf: count:" 
[1]  1 17520    
[1] "get.var.ncdf: totvarsize: 17520" 
[1] "Getting var of type 3 (1=short, 2=int, 3=float, 4=double, 5=char, 6=byte)" 
[1] "get.var.ncdf: C call returned 0" 
[1] "count.nodegen: 17520 Length of data: 17520" 
[1] "get.var.ncdf: final dims of returned array:" 
[1] 17520  
[1] "varid: 17" 
[1] "nc$varid2Rindex: 1" "nc$varid2Rindex: 2" "nc$varid2Rindex: 0" "nc$varid2Rindex: 0" "nc$varid2Rindex: 3" 
[6] "nc$varid2Rindex: 0" "nc$varid2Rindex: 4" "nc$varid2Rindex: 5" "nc$varid2Rindex: 6" "nc$varid2Rindex: 7" 
[11] "nc$varid2Rindex: 8" "nc$varid2Rindex: 9" "nc$varid2Rindex: 10" "nc$varid2Rindex: 11" "nc$varid2Rindex: 12" 
[16] "nc$varid2Rindex: 13" "nc$varid2Rindex: 14" "nc$varid2Rindex: 15" "nc$varid2Rindex: 16" "nc$varid2Rindex: 17" 
[21] "nc$varid2Rindex: 18" "nc$varid2Rindex: 19" "nc$varid2Rindex: 20" 
[1] "nc$varid2Rindex[varid]: 14" 
[1] "get.var.ncdf: setting missing values to NA" 
[1] "missval: -9999 tol: 0.09999" 
[1] "get.var.ncdf: implementing add_offset (FALSE) and scale_factor (FALSE)" 
[1] "var has NEITHER add_offset nor scale_factor" 
**K = get.var.ncdf(nc=f,varid="Qle",verbose=TRUE) 
write.table(t(rbind(A,B,K)),"C:\\Ji1-gpp-lat.txt")** 

나는 매우 작은 음의 값을 갖는 것으로 나타났다. 그런 다음 gdalinfo를 사용하여 최대 값이 400이고 최소값이 0임을 알았습니다 (이는 정상이며이 값은 어떻게 보일 것입니다). 왜 내가 잘못해서 번호를 얻고 있는거야?

+1

디스플레이 문제가 아닙니까? 'gdalinfo'가 숫자를 정수로 형식화하는 경우, 예를 들어, 음수의 작은 크기가 '0'으로 표시됩니다. –

+0

'-stats'를 사용하여'gdalinfo'를 다시 실행하여 통계를 강제 재생성합니다. 'R'은 무엇을보고 했습니까? Python/NumPy를 알고 있다면 사용할 수있는 또 다른 유용한 도구는 [netcdf4-python] (http://code.google.com/p/netcdf4-python/)입니다. –

답변

0

이 질문보기 : Does ComputeBandStats take nodata into account?. 파일의 메타 데이터에 포함 된 통계가 최신 상태이거나 정확하게 계산되지 않을 수 있습니다. 정확한 통계를 원하면 직접 계산하거나 근사값을 사용하여 계산하는 플래그가 거짓으로 설정되어 있는지 확인하십시오.