2017-01-04 16 views
0

두 개의 netcdf 파일 : 하향 조사선은 rsds.nc이고 제한된 방사선은 rsns.nc입니다. rsds.nc에는 rsds라는 변수가 있고 rsns.nc에는 rsns라는 변수가 있습니다. 이제 나는 각각 rsds.ncrsns.nc 내의 변수를 빼서 용승 복사열 rsus.nc을 얻고 싶습니다.두 개의 다른 netcdf 파일에서 변수를 뺍니다.

ncdiff rsds.nc rsns.nc rsus.nc 
ncbo op_typ=diff rsds.nc rsns.nc rsus.nc 

이 파일이없는 내에서의 모든하는 rsus.nc하지만 변수 rsus 제작 :

나는 다음과 같은 방법을 시도했다. 왜 그렇게 생각하는거야?

답변

2

을 @ RichSignell의 대답에, 당신은 하나의 파일로 변수를 결합하고 변수의 이름을 변경하지 않고 뺄셈을 수행 할 ncap2 사용할 수 있습니다.

ncks -A rsns.nc rsds.nc 
ncap2 -s 'rsus=(rsds-rsns)' rsds.nc rsus.nc 
+0

니스, 고마워요! –

2

ncdiff 두 개의 파일이있을 때 동일한 이름의 변수 만 작동합니다. 한 가지 해결책은 파일 중 하나에서 변수의 이름을 간단히 변경하여 동일하게하는 것입니다. 예를 들어,이 시도 : 대안으로

ncrename -v rsds,rsns rsds.nc 
ncdiff rsds.nc rsns.nc rsus.nc 
+0

예, 이에 동의합니다. 그러나 누군가 변수 이름을 변경하지 않고이 작업을 수행하는 방법에 대한 아이디어가 있었기를 바랍니다. 감사합니다. –

2

대체 CDO 솔루션.

CDO 하위 명령은 한 줄에이 작업을 수행 할 수 있습니다

cdo sub rsds.nc rsns.nc rsus.nc 

당신은 경고

CDO 하위 (경고)를 얻을 것이다 : 입력 스트림이 서로 다른 매개 변수가 있습니다!

하지만 무시해도됩니다. 변수 이름을 좀 더 적절하게 변경하면 다음과 같이 한 행에서이 작업을 수행 할 수 있습니다.

cdo setname,rsus -sub rsds.nc rsns.nc rsus.nc