def latlon_to_ij(self, lat, lon):
"""
Convert latitude and longitude into grid coordinates.
If this is a child domain, it asks it's parent to do the projectiona and then
remaps it into its own coordinate system via parent_start and cell size ratio.
:param lat: latitude
:param lon: longitude
:return: the i, j position in grid coordinates
"""
if self.top_level:
proj_j, proj_i = pyproj.transform(self.latlon_sphere, self.lambert_grid,
lon, lat)
return ((proj_i - self.offset_i) / self.cell_size[0],
(proj_j - self.offset_j) / self.cell_size[1])
else:
pi, pj = self.parent.latlon_to_ij(lat, lon)
pcsr, ps = self.parent_cell_size_ratio, self.parent_start
delta = (pcsr - 1) / 2
return ((pi - ps[0] + 1.) * pcsr + delta,
(pj - ps[1] + 1.) * pcsr + delta)
评论列表
文章目录