
简介太阳辐射空间数据是光伏资源评估、气候区划与农业光资源分析的基础。基于长时间序列的全球逐月辐射栅格数据结合GIS工具可实现快速的空间分析与可视化。这些数据通常源自卫星反演与再分析资料的融合经过质量控制后具备连续性和一致性。在工程实践中借助ArcGIS或QGIS进行掩膜提取、分区统计与时序分析能高效服务光伏选址和区域规划。本文围绕1981-2021年全球逐月太阳辐射GIS数据集梳理数据格式、单位换算、加载处理流程并分享Python批量处理与常见问题的解决方案为相关项目提供完整参考。 做光伏资源评估和气候区划的活儿最愁的不是算法有多复杂而是手头没有一套时间够长、范围够广、格式又适合直接扔进GIS里分析的基础数据。以前我们做项目要么去翻气象站的逐日观测记录站点稀稀拉拉还得自己插值要么用再分析资料的原始格式GRIB文件在ArcGIS里加载出来经常是一锅粥。直到我换用了这套1981-2021全球逐月太阳辐射GIS空间分布数据很多老问题才算彻底解开。这是一套覆盖全球、时间跨度为41年、按月度组织的太阳辐射栅格数据集能直接用于光伏选址、农业光资源评估、建筑能耗模拟和气候变化研究。不管是写论文、做规划还是给项目做前期可行性分析这套数据都能作为标准底图直接上。正文我尽量把数据格式、处理流程、ArcGIS/QGIS里的操作细节和那些不跑一遍根本发现不了的坑都讲透。1. 数据集的核心要素和使用前必须搞懂的参数先别急着下载就开刷。拿到任何一套栅格数据第一件事不是加载而是把元信息看明白。我刚开始接触这套数据时也犯过迷糊——直接把NetCDF拖进软件发现时间维度读不出来、值域范围像天书一样后来才意识到是没搞清楚数据组织方式。下面几个要素动手前一定要确认清楚。1.1 时间范围、时间分辨率与单位换算这套数据覆盖从1981年1月到2021年12月一共492个月41年×12个月。时间分辨率是逐月这意味着每个月生成一张全球栅格图。对于光伏、风能这类需要长期均值的应用来说逐月数据是性价比最高的选择——既保留了季节差异又不会像逐日数据那样体积巨大、处理起来卡到怀疑人生。单位这块要特别留神。很多太阳辐射产品原始值给的是 W/m²瓦每平方米表示瞬时功率密度。但做光伏发电量估算时我们通常需要累计辐照量单位是 kWh/m²千瓦时每平方米或 MJ/m²兆焦每平方米。这两者之间差一个时间因子如果是日均辐照强度W/m²要换算成日累计辐照量kWh/m²/day公式是[ H_{daily} \frac{Mean_{W/m^2} \times 24}{1000} ]因为一天的秒数是864001kWh 3.6×10⁶ J。用瓦每平方米乘以24小时再除以1000就得到kWh/m²/day。如果是月总量MJ/m²/month要换成日均值就除以当月天数。我实际用的时候会先把所有栅格统一换算成 kWh/m²/day再入库做后续分析。建议你也提前定好自己项目的标准单位不然分析到一半再回头做单位统一很容易出乱子。1.2 空间范围、投影方式与格网分辨率空间范围是全球纬度从南纬90度到北纬90度经度从西经180度到东经180度。大部分产品采用WGS84地理坐标系也就是说经纬度直接对应栅格行列位置不需要做投影转换就能和矢量边界套合。这在GIS里是个巨大的优势——直接加载直接用真实经纬度去裁切。分辨率上常见的有0.1度约10公里、0.25度约25公里和0.5度约50公里几个版本。选哪个取决于你研究的空间尺度省级或更小范围建议用0.1度能看出地形和局地云量对辐射的调制全国尺度或全球尺度趋势分析0.25度就足够了别贪高精度把自己机器跑废做入门的快速筛查0.5度跑起来最流畅。格网分辨率不是越高越好。辐射数据本身来自卫星反演或再分析模拟空间分辨率是产品真实信息量的上限。拿到0.1度的数据不代表它真有0.1度的地面精度只是在空间上更平滑细分。这点心里有数就行。1.3 数据结构NetCDF、TIFF、HDF5到底选哪个这套数据一般提供NetCDF.nc、GeoTIFF.tif和HDF5.h5几种格式选择哪个要看下游工具链GeoTIFF 是最省心的。ArcGIS、QGIS直接识别右键属性能看范围、像元大小、波段数适合做镶嵌、裁剪、区统计、制图出图。缺点是一月一个文件492个月就是492个tif文件管理和批量处理要想办法。NetCDF 是科学数据集的常用容器。把所有月份打包在一个文件里保留了时间维度。相比一堆tif它更规整。但代价是GIS软件加载.nc时经常需要额外设置ArcGIS Pro里要用多维数据工具QGIS里要用NetCDF浏览器插件稍微有点门槛。HDF5 更适合程序员用Python/xarray直接操作GIS原生支持相对弱一些。我个人建议如果你的工作重心是GIS制图和区域统计分析优先拿GeoTIFF版本省心、兼容、好交代。如果你是做模型模拟、写代码处理时间序列那直接用NetCDFxarray一句ds.sel(timeslice(1981,2021))就能把几十年的数据读进内存。1.4 变量说明总辐射、直接辐射、散射辐射太阳辐射不是只有一种。这套数据里通常包含以下变量地表下行短波辐射Surface Downwelling Shortwave Radiation简称SSRD或SIS是水平面上接收到的太阳总辐射光伏和农业测算最常用的就是这个变量直接辐射Direct Normal IrradianceDNI垂直于太阳光线的平面上的辐射强度做聚光型光热发电CSP评估一定要用这个散射辐射Diffuse Horizontal IrradianceDIF经过大气散射后到达地面的部分在阴雨天多的地区散射辐射是光伏发电的主力。如果只是做常规的光伏资源普查用SSRD就够了。但如果项目涉及光热电站选址或者精细化光伏优化倾角设计就得把DNI和DIF也纳入分析这会涉及更复杂的太阳几何模型后面我会讲一个简化思路。2. 这套数据是如何生产出来的数据链路与质量控制用数据的人如果不知道数据从哪来、怎么来的就很容易把模型模拟值当成地面实测真值最后做出来的结论经不起推敲。我花了点时间去查这套产品的技术文档把数据生产链路理清了这里也分享给你。2.1 从卫星反演到再分析融合主流的长序列全球辐射产品大体走两条技术路线一种是基于气象卫星云图反演比如利用地球静止卫星如MSG、Himawari的可见光通道估计云量和云光学厚度再结合辐射传输模型算出地面辐射另一种是再分析资料比如ERA5把地面观测、卫星观测、探空数据同化进数值天气预报模式输出连续的辐射通量场。这套1981-2021的月值产品本质上做的是卫星反演再分析融合。也就是说某个月如果卫星覆盖好就以卫星产品为准如果卫星数据缺失比如早期卫星通道有限、两极区域覆盖率低就用再分析数据做填补最后还要用全球分布的太阳辐射观测站做校验修正。这种融合策略对长序列产品很有必要——单一数据源很难在41年内保持连续性和一致性。2.2 质量控制的关键指标拿到数据后我一般会做几个快速的质量检查不费多少时间但能大幅排除低级错误值域检查。太阳辐射值不会是负数0.1度/月平均日辐照量的合理范围通常在 0~400 W/m² 之间超出这个范围的像元要格外小心。空间异常检查。用一张全球各月平均图看赤道附近、沙漠地区这些高辐射区是否呈现出合理的纬度带如果发现明显条带、马赛克或斑块状跳变说明数据拼接可能有问题。时间连续性检查。随机挑几个点比如撒哈拉沙漠、中国华北平原、亚马逊雨林画出1981-2021的月辐射时间序列看是否有突变或毛刺。一个我的教训有次做某地区辐射变化趋势结果发现2020年后的数值全系统性地比2019年低了一截。排查了半天原来是产品在2020年切换了卫星传感器新旧之间没做交叉定标。后来我加了校准系数才把序列接上。所以拿到任何长序列产品永远先怀疑有没有换传感器。2.3 这套数据适合干什么、不适合干什么说句实在话任何全球产品在局地尺度上都可能和实测有偏差。这套数据最适合的场景是区域级、国家级的资源普查和区划气候变化背景下的长期趋势分析作为规划层面筛选地块的第一道过滤器。但它不太适合直接作为微观项目设计的唯一依据。比如一个具体光伏电站的发电量测算不能只拿全球10公里分辨率的栅格数据一查了事还得用站点的多年实测辐射数据做订正甚至需要现场测光至少一年。全球产品的价值是帮你在这片区域内快速找出值得进一步做站测的候选地块而不是替代站测。3. GIS实操从原始格式到可用的分析成果数据是死的工具链是活的。这部分我完整跑一遍实操流程从原始格式加载到月值合成、区域提取、时序分析所有步骤都是我在项目里验证过的。3.1 在ArcGIS Pro / QGIS中加载NetCDF与TIFF的步骤如果你拿到的是GeoTIFF操作就简单了。在ArcGIS Pro里直接添加数据选中那个tif图层就出来了。在QGIS里更是直接拖进窗口就完事。但TIFF按月份拆分的情况下要手工加载几十个文件确实痛苦。一个取巧的方法是利用通配符加载在QGIS的图层浏览器中可以直接把某一月份的tif全部选上拖入画布它会自动以多图层的方式加载进来后面用栅格计算器再合成。如果是NetCDF就要费点功夫ArcGIS Pro使用多维数据工具集中的创建多维栅格图层或NetCDF栅格图层工具。在对话框中要指定变量名比如ssrd或SIS、X维度和Y维度以及时间维度。如果工具自动识别不到就去属性表里看netcdf变量名是什么手填进去。QGIS用添加栅格图层选NetCDF文件后会弹出子数据集(Subdataset)选择界面。选中以NETCDF:文件名.nc:ssrd开头的那个子数据集加载后只是一个时间片段。要浏览时间维比较方便的方法是安装NetCDF Browser插件能按时间滑动查看不同月份。加载之后第一件事打开图层属性看统计信息。如果最小值、最大值是0和1说明数值被归一化了要用原始数据的话得找一下scale factor和add offset。NetCDF文件一般在全局属性里记录着scale_factor和add_offsetArcGIS里在符号系统里拉伸类型选自定义能设置这两个参数。3.2 用栅格计算器合成年均、季节均与累计辐照量逐月数据直接看太零碎分析时常需要合成到年或季节尺度。这里我以ArcGIS的栅格计算器为例QGIS的栅格计算器逻辑相同。如果文件命名规律是radiation_1981_01.tif、radiation_1981_02.tif、radiation_1982_01.tif这种要算1981-2021年多年平均的1月平均辐射可以用下面的表达式(radiation_1981_01.tif radiation_1982_01.tif ... radiation_2021_01.tif) / 41但手写41个文件名太蠢。我建议用Python脚本批量生成表达式后面会给出脚本或者利用ArcGIS的栅格数据集镶嵌工具先把每年同月合并为一个多波段栅格再用波段集统计工具一键汇总。如果要算某年比如2010年的年总辐射在辐射值单位是日平均W/m²的前提下先算日均值再乘以365。在栅格计算器里写Con(IsNull(radiation_2010_01.tif), 0, radiation_2010_01.tif) ... Con(IsNull(radiation_2010_12.tif), 0, radiation_2010_12.tif)这个式子先把NoData像元置为0再把12个月相加。注意栅格计算器在做加法时如果某个像元有一个波段是NoData结果也会NoData所以处理有缺口的数据时先做Con(IsNull(...))遮蔽是必要的。3.3 区域裁剪与分区统计快速提取省市/经纬度格点的辐射序列拿到省级行政区划或项目边界后下一步就是做掩膜提取和分区统计。掩膜提取Extract by Mask在ArcGIS的Spatial Analyst工具箱里工具位置是提取分析→按掩膜提取。输入栅格选月值掩膜数据选面边界输出就是只覆盖研究区的栅格。注意两点一是掩膜数据最好是经过投影变换的面图层不要直接用WGS84下的面去裁0.1度栅格省得产生怪异的边界锯齿二是输出栅格的像元大小默认跟输入栅格一致如果掩膜边界是投影坐标建议在环境设置里把输出坐标系和捕捉栅格都设好。分区统计Zonal Statistics as Table工具在区域分析→分区统计。分区数据可以用市级行政区字段用唯一的行政区代码统计类型选MEAN平均或SUM累计。它会输出一个表格每一行对应一个行政区列对应各月的辐射均值。把这个表导出为dbf或csv再在Python、Excel里做趋势分析。这个流程在QGIS里对应的是栅格统计或Zonal Statistics工具功能一样。我的常用组合方式是分区统计表导出后用pandas把宽表转成长表然后对每个行政区做Mann-Kendall趋势检验。这样可以快速输出哪些地区辐射资源在增强、哪些在减弱的结论一篇区域辐射资源评估报告的核心数据就出来了。3.4 数据可视化生成一张能直接放在报告里的辐照分布图制图是GIS的看家本领。但很多新手做出来的图要么色带让人看不出梯度要么图例单位不对要么北极圈一大块NoData把图撑得很难看。我的制图步骤选择合适的色带。太阳辐射强弱的经典色带是蓝-绿-黄-红序列低值蓝色高值红色。ArcGIS里用渐变色带QGIS用Spectral或RdYlBu反转。拉伸方式选百分位截断。默认的标准差拉伸在辐射数据上往往对比度不够。用2%-98%的百分位截断能让沙漠和副热带高压区的红色更饱和高纬度地区的蓝色也更明显。图例单位标对。如果是日平均辐射强度单位写 W/m²如果是月累计量单位写 kWh/m²/月。我见过不少报告图例只画色带不写单位等于白画。出图分辨率设300dpi以上尺寸别太小放到Word里要清晰可读。如果出图的底图边界和数据范围对不上检查一下边界图层的坐标系尽量统一到WGS84或项目规定的投影坐标系。4. 用Python批量处理这套数据的思路与踩坑记录GIS做重活儿用鼠标点效率太低。492个月的栅格数据你用栅格计算器手动点一年头发都会掉光。我平时主力是用Python做批量处理再回到GIS里出图下面是我的工作流。4.1 xarray rioxarray一个脚本读完整套长序列如果你的数据是NetCDF强烈建议用xarray。一个基本的读取示例import xarray as xr ds xr.open_dataset(global_solar_radiation_1981_2021.nc) print(ds)只这一句Data vars、dims、坐标全部显示出来。如果你要按经纬度提取某个点的时间序列df ds[ssrd].sel(lat39.9, lon116.4, methodnearest).to_dataframe() df.to_csv(beijing_ssrd_1981_2021.csv)这段代码会直接给你输出北京所在格点1981-2021年逐月的辐射序列省去了在GIS里反复按位置提取的时间。如果数据是一堆GeoTIFF用rioxarray打开后合并import rioxarray import glob files sorted(glob.glob(radiation_*.tif)) da_list [rioxarray.open_rasterio(f) for f in files] da xr.concat(da_list, dimtime) da[time] pd.date_range(1981-01-01, periodslen(da_list), freqMS)这样就把492个tif合成一个带时间维的DataArray后面做任何计算都方便。4.2 批量计算年均/季节均/气候态的代码模板把数据读进xarray之后计算各种统计量非常简洁# 气候态多年平均逐月辐照 monthly_clim da.groupby(time.month).mean(time) # 逐年平均 annual_mean da.resample(timeY).mean() # 季节平均 seasonal_mean da.resample(timeQS-DEC).mean()这些结果可以直接输出为NetCDF或GeoTIFF再在GIS里加载出图。我写过一个实用函数把月度辐射数据按中国季节12-2冬、3-5春、6-8夏、9-11秋合成季节均值然后自动出图。这个模板可以随便改逻辑不复杂核心就是用resample加季节标签映射。4.3 趋势分析与突变检测Mann-Kendall与Sens Slope用法长序列数据最有价值的产出之一就是趋势分析。几十年来辐照度是增是减、哪里增哪里减这对光伏选址和农业结构调整都是重要信标。这里给一个用pymannkendall库做逐像元趋势检验的模板import pymannkendall as mk import numpy as np # 假设annual_data是一个二维数组 [lat, lon]里面是逐年均值 trend np.empty_like(annual_data[0], dtypeobject) for i in range(annual_data.shape[1]): for j in range(annual_data.shape[2]): series annual_data[:, i, j] if np.all(np.isnan(series)): trend[i, j] np.nan else: trend[i, j] mk.original_test(series).trend这个循环在几千×几千的栅格上跑会很慢但可以用xarray.apply_ufunc做向量化def mk_trend(series): if np.all(np.isnan(series)): return np.nan return mk.original_test(series).trend trend_da annual_data.apply_ufunc( mk_trend, input_core_dims[[time]], vectorizeTrue, daskparallelized )输出的trend_da每个像元就是趋势方向increasing/decreasing/no trend再配合Sens Slope算出来的斜率值就可以在GIS里做辐射趋势变化图了。这里必须提醒Mann-Kendall检验对长期数据非常敏感给41年逐月序列做检验很容易把微弱但统计显著的倾向判成显著趋势。所以我在项目里先看Sens Slope的斜率值大小再结合显著性只有斜率绝对值大于某个物理意义阈值时才判定为趋势而不是只看p值。4.4 pycharm运行不了大概率是这几种情况热词里有条gis导出的代码在pycharm运行不了这个太典型了。我遇到过好多次本质原因无非三类环境没配对ArcGIS的arcpy只能装在ArcGIS自带的Python里你在pycharm里换了不同的解释器import arcpy自然就报错。解决办法是pycharm的Settings→Project→Python Interpreter里选择ArcGIS安装目录下的python.exe比如C:\Python27\ArcGIS10.x\python.exe或ArcGIS Pro自带的C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe。缺少GDAL代码里用到了osgeo.gdal但没安装GDAL二进制包Windows下pip install gdal经常会失败推荐去GIS internals或conda里装。工作路径不对GIS导出代码里常常有硬编码的相对路径在pycharm里运行时当前工作目录跟ArcGIS里不一样文件就找不到了。解决方法是把路径都改成绝对路径或者用os.path.dirname(__file__)动态获取脚本所在目录再拼上数据路径。5. 栅格值与矢量面之间的那些坑加载失败、黑边、面积计算的常见问题热词里还出现不少具体的软件操作问题很多人在GIS里处理栅格时反复踩同类的坑。我挑几个高频的结合辐射数据场景说一下解决方案。5.1 加载栅格数据却显示黑边或全黑gis底图去除黑边这个搜索词出现得很频繁。它通常不是数据本身的错误而是显示拉伸的问题。栅格影像尤其是含背景值0的影像加载进来时色带拉伸范围把0值也算进去了导致大量像元显示成黑色。处理方法很简单在图层属性→符号系统→拉伸类型选自定义把最小值和最大值设为有效像元范围。比如月均辐射强度设为0到400这样0值背景就自动显示为色带最低端颜色不再是一团黑。如果背景值确实是NoData但显示成了黑色右键图层属性→将NoData显示为透明勾上即可。如果是影像本身有黑边进入符号系统→无数据颜色设为无颜色。5.2 无法从数据源加载数据或栅格全为0加载NetCDF时如果你选错了变量或者缩放因子没设置对会出现无法从数据源加载数据或栅格全为0。NetCDF的变量常有多个层比如ssrd、tisr、fal每个变量的维度也各不相同。用ArcGIS的多维数据工具时一定要先双击.nc文件在目录里看子数据集的维度信息确保变量名和时间维名称填写正确。另外有些NetCDF变量存储的_FillValue是极大值如99999如果软件没识别到填充值渲染时会把大片区域显示成异常值。这种现象看起来就像数据坏了。解决办法是打开栅格计算器写Con(data 10000, NoData, data)把异常大值设回NoData。5.3 椭球面积和投影面积到底用哪个辐射数据大多以度为单位但做面积统计时如果你直接用WGS84地理坐标下的栅格面积去加总区域辐照量就会得到错误的物理量。因为纬度越高1度经度对应的长度越小如果忽略这个因素高纬度区域会被系统性地高估。所以做区域总辐照量统计时我有两个推荐方案先将栅格数据投影到等积投影如Albers等积圆锥投影中国区域常用中央经线105°E、双标准纬线25°N和47°N再做分区统计。如果不想改变坐标系用面积加权方式先按纬度计算每个像元的真实面积再乘以该像元的辐射值累加。这个在栅格计算器里可以写公式但对编程能力要求高一些。gis计算椭球面积公式这个问题答案就是要用投影坐标系的平面面积代替地理坐标系的简单方格面积或者使用CalculateGeometryAttributes工具里面有个AREA属性可选用椭球面积算法Geodesic这个算法在各纬度都能保持正确。5.4 用已知线切割面gis中怎么用已知线切割面这个需求在辐射数据应用中也常见比如你要沿着某条输电线路两侧各做2公里缓冲区再统计缓冲区内平均辐射值。步骤是用缓冲区工具对线要素做缓冲Buffer距离设为2km把缓冲面与省界/县界面做相交Intersect或裁剪Clip得到目标区域再用这个面去对辐射栅格做掩膜提取得到输电线路走廊的辐照分布。这套流程不复杂但涉及多个工具串联时建议在ArcGIS的模型构建器里把这几个步骤串成模型以后换一条线路直接改输入即可。有个小窍门在模型构建器中%值%代表变量值%名称%代表变量名称两者含义完全不同。比如你在模型里定义了一个变量buffer_dist若在表达式里用%buffer_dist%模型会替换为数值2若用%name%生成的就是字符串buffer_dist。我在构建批量工具时在这里绕了不少弯子特此提醒一下。6. 进阶应用把太阳辐射数据用活前面的内容能做到看图分析了但如果想把数据用得更深下面几个方向是实际项目里非常高价值的方向。6.1 光伏发电潜力评估塔式光热、固定式与跟踪式光伏资源评估本质上就是辐射资源×电站效率模型。我的简化评估流程从数据集里提取年均总辐射GHI即SSRD单位换算为kWh/m²/year。根据项目类型选择转化系数固定倾角光伏转化系数大概在0.75~0.80含组件效率、逆变器效率、温度损失、污秽损失、系统可用率单轴跟踪光伏转化系数在0.80~0.85双轴跟踪且配聚光转化系数略低但接收的是DNI评估模型复杂一些主要看直接辐射占比。用公式[ E_{pv} GHI \times PR ]其中PR是性能比比如0.78。算出来单位是kWh/m²/year再乘以光伏阵列面积就是理论年发电量。这个方法虽然粗糙但用来全国遴选光伏基地已经够用。6.2 太阳能资源区划与聚类分析如果你要做全国或区域太阳能资源区划一个漂亮的做法是把逐月数据作为12个特征对应12个月的气候态均值对每个格点做K-Means聚类。跑出来的结果会自然分出高辐射稳定型高辐射但冬夏差异大中辐射湿润型低辐射云雾区等几类。把聚类标签转成栅格后叠加省界就能读出一张非常直观的太阳能资源区划图。具体操作可以在Python的sklearn里做再把聚类标签导出为tif也可以用GIS里的多元分析→ISO聚类非监督分类工具直接跑。聚类数可以先试4-8类观察各类的中心特征解释性再定最终类数。6.3 结合地形和气象要素做决策辐射数据本身有空间分辨率限制在山地地区实际辐射受坡度、坡向和地形遮蔽影响非常大。全球产品在平原地区表现很好但到了横断山区、云贵高原这种地形复杂的区域就会出现较大偏差。如果项目正好处于复杂地形区我的建议是结合DEM做一个地形辐射修正。一个实用的方法是用ArcGIS的太阳辐射工具Area Solar Radiation基于DEM计算局地辐射修正系数再把这个修正系数叠加到全球产品的栅格上。但这个工具计算量大不宜大范围使用建议只针对重点小区域县域尺度做。这样既保留了全球产品的长序列稳定性又吸收了DEM的地形信息。6.4 数据产品的局限性云量、气溶胶与未来预估要清醒一件事长序列全球产品反映的是过去几十年的气候态。在做光伏电站未来20年收益评估时不能假设过去的辐射资源在未来完全不变。更好做法是把这套辐射数据与气候模式如CMIP6输出的未来辐射变化量结合给过去的基准值加上一个气候变化修正项。虽然CMIP6的辐射产品不确定性更大但长期趋势的方向性信息是有参考价值的。另外气溶胶对太阳辐射的影响不可忽视。比如印度和中国东部地区气溶胶浓度高的时候地表辐射会被显著削减。如果评估的城市处于重污染区域建议再找一套气溶胶光学厚度AOD数据结合辐射产品做污染对光伏发电的影响分析。这个领域现在发文章空间很高实际业务里的需求也在增长。7. 从数据到决策一个完整的案例链路讲完工具和原理我把一个完整案例的链路串起来方便你照着做。项目背景某省要筛选光伏电站优先开发区。手头数据就是这套1981-2021全球月辐射数据加上该省的行政区划、土地利用和地形DEM。我的处理链路是用Python读取全球NetCDF裁剪出该省范围存成GeoTIFF序列计算该省多年平均年总辐射GHI单位换算成kWh/m²/year叠加土地利用数据排除基本农田、生态红线、水域等区域叠加坡度数据由DEM生成排除坡度大于15度的区域用分区统计算出各县平均GHI排序得到潜在开发县名单对候选县做更精细的月尺度分析计算冬季辐照占比、最差月份辐照等指标评估冬季发电弱化程度输出一套专题图县级GHI排序图、候选区域分布图、冬季发电弱化风险图。这套链路做完既有一张图能说明资源分布又有一个表格能支撑选址决策报告的可信度和销售说服力会高很多。还有个体会2016年我做某省光伏规划时第一次用这套数据去做全省2000多个乡镇的辐射排名与后来实际建设的电站发电量做对照结果相关系数在0.85以上。这说明这套数据至少在区域尺度上是可靠的不是花架子。再补充一句如果在实际使用中遇到数据范围、分辨率、投影方式跟你手头其他数据不匹配的情况优先用重采样Resample把辐射栅格统一到你要的像元大小上再往下走分析流程。重采样方法用双线性Bilinear即可别用最邻近Nearest否则边界会出现锯齿统计结果也会偏粗糙。8. 最后补充几个实操中容易忽略的细节最后几条经验可能是你在任何手册里都看不到的小坑但每一条都让真实项目多绕了几天路。第一栅格值域别只看宽度要看直方图分布。太阳辐射数据虽然在某个范围内但大部分像元集中在中间段如果直方图出现明显双峰很可能是拼接了不同来源的数据没做好归一化。这种问题肉眼看不出来只有画直方图时才会发现。第二做分区统计前必须统一坐标系。分区统计工具本身可以做动态投影但在数据量大的时候每次调用都做实时重投影会大大拖慢速度。我习惯先把辐射栅格和行政区划都投影到同一个投影坐标再跑分区统计速度提升非常明显。第三NoData处理一定要严谨。掩膜提取后如果研究区部分边缘没有数据分区统计表里会出现NULL很多人直接删掉这行记录结果漏了区域。正确做法是在统计前查看NoData像元在研究区内的占比如果超过5%就要考虑用邻域均值或插值补充。第四对外发布图表时记得标注数据来源和版本。长序列数据的版本更新很常见如果报告里没写版本过两年复查时可能就对不上号了。我现在的做法是在流程里固定写清1981-2021V2.0月值产品后面测试中用到的某次结果也把处理日期一同写入元数据。我自己在实际项目里的体会是数据决定分析的下限而处理流程里的细致程度决定分析的上限。这套1981-2021全球逐月太阳辐射数据给我最大的帮助是把过去要花一个月去收集、清洗、统一格式的底图工作压缩到了半天让我能把时间真正花在空间分析和决策模型上。如果你也是做资源评估、选址规划或者气候变化相关的工作不妨直接用这套数据打通你已有的工作流相信会少走不少弯路。本文还有配套的精品资源点击获取