def test_latlon2pix_edges(pix_size_single, origin_point, is_flipped,
num_chunks, chunk_position):
img = make_image(pix_size_single, origin_point, is_flipped,
num_chunks, chunk_position)
chunk_idx = img.chunk_idx
res_x = img._full_res[0]
res_y = img._full_res[1]
pix_size = (img.pixsize_x, img.pixsize_y)
origin = (img._start_lon, img._start_lat)
# compute chunks
lons = np.arange(res_x + 1) * pix_size[0] + origin[0] # right edge +1
all_lats = np.arange(res_y) * pix_size[1] + origin[1]
lats_chunks = np.array_split(all_lats, num_chunks)[chunk_idx]
pix_x = np.concatenate((np.arange(res_x), [res_x - 1]))
pix_y_chunks = range(lats_chunks.shape[0])
if chunk_position == 'end':
pix_y = np.concatenate((pix_y_chunks, [pix_y_chunks[-1]]))
lats = np.concatenate((lats_chunks, [res_y * pix_size[1] + origin[1]]))
else:
pix_y = pix_y_chunks
lats = lats_chunks
d = np.array([[a, b] for a in lons for b in lats])
xy = img.lonlat2pix(d)
true_xy = np.array([[a, b] for a in pix_x for b in pix_y])
assert np.all(xy == true_xy)
评论列表
文章目录