CDO(Climate Data Operator) "remapnn" 명령을 적용하여 "coords.txt" 파일에 저장된 포인트 세트의 시계열을 추출하고 싶습니다. coords.txt 파일의 구조는 다음과 같습니다.
station , lat , lon
ABTR2100 ,39.13,34.52
GRMR0100 ,20.18,49.00
DDDD0100 ,23.22,46.81
SLPT0100 ,26.91,32.23
NDRT0100 ,29.55,48.97
이러한 이유로 나는 루프의 모든 스테이션에 대해 remapnn 명령을 실행할 수 있는 다음 bash 쉘을 작성해 보았습니다.
#!/bin/bash
while read p; do
echo $p
cdo remapnn,lon=$lon_lat=$lat, temperature.nc $output.nc
done <coords.txt
보다 구체적으로 말하면, "lon"에는 관측소의 경도가 할당되어야 하고, "lat"에는 관측소의 위도가 할당되어야 합니다. "temp.nc" 파일은 시계열을 추출하려는 NetCDF 파일이고 "out.nc"는 출력입니다. 이 명령은 다음과 같은 단일 위치에 적합합니다.
cdo remapnn,lon=34.52_lat=39.13, temperature.nc output.nc
그러나 불행히도 루프에서는 작동하지 않습니다. 내가 받은 오류 메시지는 다음과 같습니다.
cdo remapnn (Abort): Open failed on lon==!
답변1
cdo
이 명령이 무엇을 하는지, 어떻게 작동하는지 모르기 때문에 이것은 추측입니다 .
#!/bin/bash
# arrange the input to come from a fixed place
exec < coords.txt
# Copy the header line, which looks like "station , lat, lon"
read -r header
echo -- "$header"
while IFS=", " read -r st la lo
do
cdo "remapnn,lon=${lo}_lat=${la}," temperature.nc "${st}_out.nc"
done
cdo가 output.nc 파일에 추가되었는지는 알 수 없습니다. 그렇지 않으면 마지막 스테이션의 결과만 얻게 됩니다.