def _initialize_grid(self, mmf):
self.nr, self.nlat, self.nlon\
= struct.unpack("3i", mmf.read(12))
self.dr, self.dlat, self.dlon\
= struct.unpack("3f", mmf.read(12))
self.r0, self.lat0, self.lon0\
= struct.unpack("3f", mmf.read(12))
self.mr = self.r0 + (self.nr - 1) * self.dr
self.mlat = self.lat0 + (self.nlat - 1) * self.dlat
self.mlon = self.lon0 + (self.nlon - 1) * self.dlon
self.dtheta = radians(self.dlat)
self.dphi = radians(self.dlon)
self.ntheta, self.nphi = self.nlat, self.nlon
self.theta0 = radians(90 - self.lat0)
self.phi0 = radians(self.lon0)
r = [self.r0 + self.dr * ir for ir in range(self.nr)]
theta = [radians(90. - self.lat0 - self.dlat * ilat)
for ilat in range(self.nlat)]
phi = [radians((self.lon0 + self.dlon * ilon) % 360.)
for ilon in range(self.nlon)]
R, T, P = np.meshgrid(r, theta, phi, indexing='ij')
self.nodes = {'r': R, 'theta': T, 'phi': P}
评论列表
文章目录