2014-10-28 5 views
1

다른 익스텐트와 해상도를 가진 두 개의 netCDF 파일이 있습니다. 동일한 범위와 해상도를 가진 두 파일에서 래스터를 만들고 싶습니다. 한 파일에서 해상도를, 다른 파일에서 크기를 원합니다. 여기 R 불규칙하게 동작하는 래스터 리 샘플

내가 사용하고 코드입니다 :

require(raster); 

#Get information 
iceMaxNineK <- raster("~/Desktop/TRACE-21k_Data/NineK.ICEFRAC.max.avg.nc") 

saltNineK <- brick("~/Desktop/TRACE-21k_Data/NineK.SALT.nc", lvar = 4) 

#Making everything nice and uniform and useable 
#============================================== 
#set up an initial "sampling raster" 
e <- extent(0, 360, -90, 90) #xmin,xmax,ymin,ymax 
e <- raster(e,nrows=1,ncols=1,[email protected]) 
res(e) <- res(saltNineK) 
values(e) <- 0 

#Resample ice 
iceMaxNineK <- resample(iceMaxNineK, e, method="ngb") 
plot(iceMaxNineK) 

#Resample salt 
saltNineK <- resample(saltNineK, e, method="ngb") 
plot(saltNineK) 

리샘플링 iceMaxNineK가 작동하지만 사진에서와 같이, 범위의 정의 된 영역의 한 구석으로가 걸린지도에서 리샘플링 saltNineK 결과 이하.

먼저 iceMaxNineK : iceMaxNineK plot

둘째 saltNineK : saltNineK plot

iceMaxNineK 치수 리샘플링 전 :

class  : RasterLayer 
dimensions : 48, 96, 4608 (nrow, ncol, ncell) 
resolution : 3.75, 3.708898 (x, y) 
extent  : -1.875, 358.125, -89.01354, 89.01354 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : /Users/Hannah/Desktop/TRACE-21k_Data/NineK.ICEFRAC.max.avg.nc 
names  : Fraction.of.sfc.area.covered.by.sea.ice 
z-value  : -8.99945876078469 
zvar  : ICEFRAC 

iceMaxNineK 치수 리샘플링 이후 :

class  : RasterLayer 
dimensions : 180, 360, 64800 (nrow, ncol, ncell) 
resolution : 1, 1 (x, y) 
extent  : 0, 360, -90, 90 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory 
names  : Fraction.of.sfc.area.covered.by.sea.ice 
values  : 0, 0.9997393 (min, max) 
리샘플링 이전saltNineK의

치수 :

saltNineK의
class  : RasterBrick 
dimensions : 116, 100, 11600, 25 (nrow, ncol, ncell, nlayers) 
resolution : 1, 1 (x, y) 
extent  : 0.5, 100.5, 0.5, 116.5 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : /Users/Hannah/Desktop/TRACE-21k_Data/NineK.SALT.nc 
names  : X400, X1222.02453613281, X2108.88061523438, X3100.537109375, X4239.19677734375, X5577.873046875, X7187.42822265625, X9166.115234375, X11653.9140625, X14854.84765625, X19072.095703125, X24762.70703125, X32618.9296875, X43673.65625, X59384.83984375, ... 
centimeters : 400, 475128.78125 (min, max) 
varname  : SALT 
level  : 1 

치수를 재 샘플링 후 :

class  : RasterBrick 
dimensions : 180, 360, 64800, 25 (nrow, ncol, ncell, nlayers) 
resolution : 1, 1 (x, y) 
extent  : 0, 360, -90, 90 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory 
names  :  X400, X1222.02453613281, X2108.88061523438, X3100.537109375, X4239.19677734375, X5577.873046875, X7187.42822265625, X9166.115234375, X11653.9140625, X14854.84765625, X19072.095703125, X24762.70703125, X32618.9296875, X43673.65625, X59384.83984375, ... 
min values : 6.842899,   6.850603,   6.853004,  6.853779,   6.853567,  23.148109,   23.148115,  23.148115,  23.148119,  23.148121,  23.148121,  23.148121,  23.148121, 23.148121,  23.148121, ... 
max values : 39.60786,   39.60786,   39.60783,  39.60777,   39.60769,  39.60766,   39.60765,  39.60757,  39.60755,  39.60742,   39.60739,  39.60732,  39.60730,  39.60730,  39.60730, ... 

샘플 파일은 다음 링크를 통해 액세스 할 수 있습니다 https://www.dropbox.com/s/x8oqem317vmr7yq/DataForRResample.zip?dl=0

이 시간 내 주셔서 감사합니다.

+0

왜 래스터 대신에 소금에 나이키 벽돌을 부르시겠습니까? – Stedy

+0

saltNineK의 소스 인 netCDF가 25 레이어 스택이기 때문에 brick을 호출하고 있는데, 데이터 처리의 다음 단계에서 모든 레이어가 필요합니다. 각 레이어는 바다의 깊이 슬라이스입니다. 그래서 표면은 40m, 40m에서 120m입니다. 각 그리드 셀에서 최하위 측정 값의 모자이크를 만들어 단일 그리드를 만듭니다. –

+0

나는 이것을 복제하려고하는 비슷한 데이터 세트를 찾기가 정말로 힘들다. 비슷한 공개 netcdf에 대한 데이터 또는 링크를 게시 할 수 있습니까? – Stedy

답변

0

이제이 질문을 해결했습니다. 문제는 입력 파일로, T31_gx3v5 해상도 (http://www.cgd.ucar.edu/ccr/TraCE/, Yeager 외. 2006, Otto-Bliesner 외., 2006)였습니다. R은이 문제를 해결하지 않습니다. 레이어를 R로 가져 오기 전에 ncl 언어를 사용하여 1X1 도로 다시 그릴 필요가있었습니다. ncl의 regridding에 대한 자세한 내용은 https://www.ncl.ucar.edu/Document/Functions/Pop_remap/PopLatLon.shtml 링크를 참조하십시오.