WRF | bash > ncdump로 XLAT와 XLONG을 텍스트로 출력 | Matplotlib로 표시
8162 단어 BashNetCDFWRFmatplotlibdebug
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)
NCAR Command Language Version 6.3.0
for WRF3.7.1, WPS3.7.1
openmpi-1.8.x86_64 とその-devel
mpich.x86_64 3.1-5.el6とその-devel
gcc version 4.4.7 (とgfortran)
for WRF3.9, WPS3.9
Open MPI v2.1.1
gcc version 4.9.2 (とgfortran; devtoolset-3使用)
NetCDF v4.4.1.1, NetCDF (Fortran API) v4.4.4
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
Python 3.6.0 on virtualenv
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
date (GNU coreutils) 8.4
tmux 1.6-3.el6
WRF(Weather Research and Forecasting Model)와 그 전처리인 WPS, 및 WRF의 후속 처리의 F***T 관련.
WRF 실행 후의 wrfout*** 파일로부터 위도 경도 정보를 취득한다.
code
CODE_171116/extract_XLAT_XLONG_180228_exec
#!/usr/bin/env bash
set -eu # just in case
# 5625 = 75 x 75 (west_east * south_north)
WRF_D02=$1
ncdump -v XLAT $WRF_D02 | grep -A 2000 "XLAT =" | tr ", " "\n" | grep "\." | head -n 5625 > dat.XLAT
ncdump -v XLONG $WRF_D02 | grep -A 2000 "XLONG =" | tr ", " "\n" | grep "\." | head -n 5625 > dat.XLONG
$ bash CODE_171116/extract_XLAT_XLONG_180228_exec wrfout_d02_2017-11-01_00\:00\:00
[dat.XLAT] is created
[dat.XLONG] is created
출력 파일
다음과 같은 5625행의 파일이 출력된다.
$ head dat.XLAT
30.58262
30.58724
30.59171
30.59607
30.60028
30.60435
30.6083
30.61209
30.61576
30.61929
Matplotlib에서의 표시
위의 파일을 Jupyter + Matplotlib가 설정된 Ubuntu에 복사했습니다.
운영 환경
Ubuntu 16.04.3 LTS desktop amd64
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
tmux 2.1-3build1
Python 2.7.12
Python 3.5.2
관련 : Jupyter | Matplotlib > 2차원 데이터 시각화 > imshow() | scatter()
코드 v0.1
mapLatitudeLongitude_WRF_180228.ipynb
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
lat = np.genfromtxt('dat.XLAT')
lon = np.genfromtxt('dat.XLONG')
print(lat)
print(lon)
plt.scatter(lon, lat)
code v0.2 > 참조 지점 추가
mapLatitudeLongitude_WRF_180228.ipynb
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
#import matplotlib.cm as cm
lat = np.genfromtxt('dat.XLAT')
lon = np.genfromtxt('dat.XLONG')
print(lat)
print(lon)
plt.scatter(lon, lat, color='blue')
regx = np.array([135.0, 135.0, 135.0, 135.0])
regy = np.array([30.0, 31.0, 32.0, 33.0])
plt.scatter(regx, regy, color='red')
코드 v0.3
코드는 미게재로 하지만, 이하의 처리를 추가했다.
F***T
의 네 모퉁이의 위도 경도를 계산하고 tuple로 반환합니다.이 처리에서
F***T
의 범위가 WRF의 데이터 범위에 맞지 않는 것을 시각화할 수 있게 되었다.Lambert에서의 projection에 의해 위도 경도의 범위가 맞지 않게 되었을지도 모른다.
시각화는 중요
데이터가 범위 내에 있는지 여부는 수치만 봐도 파악하기 어렵다.
장래에 같은 처리를 실시하는 경우, 단시간에 실패를 알 수 있는 구조를 만들어 두는 것이 좋다고 생각한다.
관련
Reference
이 문제에 관하여(WRF | bash > ncdump로 XLAT와 XLONG을 텍스트로 출력 | Matplotlib로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/1caf04cf259d69a03a2c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)