如何将多份VNP46A1 H5格式夜光数据拼接为欧洲全域夜光地图?
拼接VNP46A1分块数据绘制欧洲全域夜光地图问题
我需要制作欧洲区域的夜光地图,数据源为NASA的VNP46A1数据集(2022年3月27日),下载整个欧盟区域时得到了约14个独立的分块文件(tile)。我已实现单份文件的读取与绘制,但无法将这些分块数据拼接为完整的欧洲全域夜光地图。尝试过循环绘制,但耗时极长且结果错误。由于对该文件格式及此类绘图操作不熟悉,不清楚应搜索哪些关键词。
以下是用于绘制单份文件的可运行Python代码:
import numpy as np import matplotlib.pyplot as plt import h5py import cartopy.crs as ccrs import os from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER from mpl_toolkits.axes_grid1 import make_axes_locatable import matplotlib.ticker as mticker import glob indir = 'D:/PYTHON/NASA/VNP46A1.A2023058.h17v03.001.2023060025350.h5' data = h5py.File(indir) list(data.keys()) dnb = data['HDFEOS/GRIDS/VNP_Grid_DNB/Data Fields/DNB_At_Sensor_Radiance_500m'] dnb = np.array(dnb) dnb = np.where(dnb==65535, np.nan, dnb) # np.nanmax(dnb) lat_max = data['HDFEOS/GRIDS/VNP_Grid_DNB'].attrs['NorthBoundingCoord'] lat_min = data['HDFEOS/GRIDS/VNP_Grid_DNB'].attrs['SouthBoundingCoord'] lon_min = data['HDFEOS/GRIDS/VNP_Grid_DNB'].attrs['WestBoundingCoord'] lon_max = data['HDFEOS/GRIDS/VNP_Grid_DNB'].attrs['EastBoundingCoord'] lats = np.linspace(lat_max, lat_min, dnb.shape[1]) lons = np.linspace(lon_min, lon_max, dnb.shape[0]) x, y = np.meshgrid(lons, lats) cmap = plt.get_cmap('cividis') crs = ccrs.PlateCarree() fig = plt.figure(figsize=(6,6)) ax = plt.axes(projection=crs) ax.coastlines(resolution='10m', color='white',alpha=0.5) ax.pcolormesh(x, y, dnb, cmap = cmap, vmin = 0, vmax = 100) plt.xlim() gl = ax.gridlines(crs=crs, draw_labels=True, alpha=0.5) gl.xlabels_top = None gl.ylabels_left = None xgrid = np.arange(lon_min-2, lon_max+2, 2.) ygrid = np.arange(lat_min-2, lat_max+2, 2.) gl.xlocator = mticker.FixedLocator(xgrid.tolist()) gl.ylocator = mticker.FixedLocator(ygrid.tolist()) gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTER gl.xlabel_style = {'size': 10, 'color': 'black'} gl.ylabel_style = {'size': 10, 'color': 'black'} plt.xlim((lon_min,lon_max)) plt.ylim((lat_min,lat_max)) plt.show()
运行上述代码可得到单块夜光数据的可视化结果,预期效果为覆盖欧洲全域的夜光地图(类似NASA Worldview平台展示的VIIRS夜间灯光影像)。
内容的提问来源于stack exchange,提问作者confused student
相关产品推荐
相关产品推荐

