☰
全国风机点位数据实战:从清洗、聚合到选址避坑
2026/10/3 4:11:37 网站建设 项目流程

简介:这份2025全国风机点位数据集,面向风电行业研究者、规划人员、GIS分析师及新能源相关专业师生,提供基于开源地图数据(OSM)提取的中国范围内风机点位信息,可用于风能资源评估、风电场选址、产业规划与空间分析等场景。资源包共9个文件,压缩后约5.44MB,以shp矢量主文件为核心,配套dbf属性表记录风机名称、类型与坐标,prj定义空间参考,shx、sbn、sbx提供空间索引,cpg规定字符编码,xml与qmd则承载元数据信息,整体可在QGIS、ArcGIS等主流GIS软件中直接加载使用。目前已有159人学习下载。借助该数据,读者可完成风机点位可视化制图、缓冲区与叠加分析,评估风电场与地形、人类活动区域的空间关系,也可为风电产量预测模型提供训练与验证样本,是开展清洁能源研究与项目决策的实用基础数据。

1. 全国风机点位数据到底能拿来干什么:从一次选址翻车说起

去年帮一个做分散式风电的朋友看选址,他拿着某平台导出的“全国风机点位”兴致勃勃圈了三个县,结果实地一跑,两个点位落在基本农田里,一个离村子不到三百米。问题不在他眼光差,而在那份数据只有经纬度,没有属性字段——没有机型、没有轮毂高度、没有投运年份,更没有土地性质。2025全国风机点位数据这个标题,说的就是这类覆盖全国范围、以经纬度为核心、附带风机基础属性的空间数据集。它能解决三件事:摸清区域风电开发密度、做风光资源与电网的叠加分析、给选址和技改提供底图。适合做新能源投资分析、GIS空间分析、电力规划、双碳研究的人。但前提是,你得知道它从哪来、字段怎么用、精度到哪一级,否则就是拿着一张漂亮的热力图去踩坑。

2. 全国风机点位数据从哪来:三类主流来源与字段拆解

2.1 公开地理数据平台与开源社区:最省事的起步方式

常见做法是从公开地理数据平台或开源社区获取。这类数据通常以 GeoJSON、Shapefile 或 CSV 格式分发,字段结构大同小异。我一般先看三个核心字段:经度、纬度、单机容量。没有单机容量的点位,基本只能做密度图,做不了发电量估算。

以一份典型的 CSV 为例,字段可能长这样:

longitude,latitude,capacity_mw,turbine_model,hub_height_m,commission_year,province 116.234,40.567,2.5,GW155-2.5,110,2021,河北

逻辑说明:longitude 和 latitude 是 WGS84 还是 GCJ02 必须确认,差几百米在选址阶段就是致命伤。capacity_mw 是单机容量,不是整场容量,整场容量需要按点位聚合。hub_height_m 和 turbine_model 决定了轮毂高度和扫风面积,直接影响发电量估算。commission_year 用来筛选存量机组和技改候选。

参数说明:如果字段里没有坐标系说明,默认按 WGS84 处理,但国内很多平台导出的是 GCJ02 偏移坐标。验证方法很简单,拿一个已知地标(比如某座升压站)的经纬度去比对,偏移超过 100 米就说明坐标系不对。

提示:公开数据往往只覆盖一定容量以上的机组,小散机组可能缺失。做区域统计时,先按省份和年份做完整性检查。

2.2 遥感与影像解译:补全缺失点位的兜底手段

当公开数据覆盖不全时,遥感影像解译是常见补充。风机在卫星影像上表现为白色或浅色点状目标,配合阴影可以判断轮毂高度。我一般用 Sentinel-2 或高分影像做目视解译,再用 NDVI 和纹理特征做半自动提取。

操作步骤不复杂,但需要耐心:

import rasterio from rasterio.features import shapes import numpy as np # 读取影像 with rasterio.open('sentinel2_2024.tif') as src: img = src.read([1, 2, 3]) # 红绿蓝波段 transform = src.transform # 简单阈值提取亮白目标 brightness = np.mean(img, axis=0) mask = brightness > 0.35 # 阈值需根据影像调整 # 转为矢量 results = shapes(mask.astype('uint8'), transform=transform) points = [(geom, value) for geom, value in results if value == 1]

逻辑说明:这段代码只做最粗的亮白目标提取,实际项目中必须叠加阴影方向、目标尺寸和形状因子过滤。风机叶轮直径通常在 100 到 200 米之间,在 10 米分辨率影像上大约 10 到 20 个像素,太小或太大的目标都要剔除。

参数说明:brightness 阈值 0.35 是经验值,沙漠和雪地背景要调高,农田和山地背景要调低。更稳妥的做法是用训练好的目标检测模型,但标注成本高,适合有长期需求的团队。

2.3 企业公开信息与环评公示:属性字段的校验源

点位坐标可以靠遥感补,但机型、轮毂高度、投运年份这些属性,最可靠的来源是项目环评公示和企业年报。我一般把环评公示里的装机容量、机型、轮毂高度抄下来,和点位数据做匹配。匹配不上的,要么是数据陈旧,要么是点位归属搞错了。

这一步没有捷径,就是人工核对加关键词检索。常见做法是建一张对照表:

字段公开点位数据环评公示处理方式
经纬度有有(粗略)以点位数据为准
单机容量部分有有以环评公示为准
机型常缺失有补全
轮毂高度常缺失有补全
投运年份部分有有交叉验证

这张表的价值在于,它告诉你哪些字段可以直接用,哪些必须补,哪些只能放弃。做数据分析最怕的就是拿缺失字段硬算,算出来的结果自己都不敢信。

3. 用 Python 把全国风机点位跑成可用底图:从清洗到空间聚合

3.1 坐标清洗与去重:三个必须处理的脏数据问题

拿到数据第一步不是画图,是清洗。我踩过的坑集中在三类:坐标系混用、重复点位、经纬度颠倒。

坐标系混用最隐蔽。同一份数据里,有的点位是 WGS84,有的是 GCJ02,直接画图会看到点位整体偏移。处理方法是统一转成 WGS84:

import pandas as pd from pyproj import Transformer df = pd.read_csv('wind_turbines.csv') # 假设部分点位是GCJ02,需要转WGS84 transformer = Transformer.from_crs("epsg:4326", "epsg:4326", always_xy=True) def gcj02_to_wgs84(lon, lat): # 简化处理,实际项目用coord-convert库 return lon - 0.0065, lat - 0.0060 # 标记需要转换的行(根据来源字段判断) mask = df['source'] == 'gcj02' df.loc[mask, ['longitude', 'latitude']] = df[mask].apply( lambda row: gcj02_to_wgs84(row['longitude'], row['latitude']), axis=1 )

逻辑说明:这里用简化偏移量做演示,实际项目建议用 coord-convert 或 pyproj 做精确转换。关键是先判断来源,再统一坐标系,不能一刀切。

参数说明:GCJ02 到 WGS84 的偏移量随纬度变化,华北地区大约在经度 -0.0065、纬度 -0.0060 左右,华南会略有不同。精确转换必须用官方算法。

去重按经纬度四舍五入到小数点后四位,大约 10 米精度,同一机组重复录入的会合并。经纬度颠倒的,纬度超过 90 的直接标记异常。

3.2 按网格聚合:把散点变成可分析的风电密度图

清洗完的点位还是散点,要做区域分析必须聚合。我一般用 0.1 度网格,大约 11 公里见方,既能看出密度差异,又不会太碎。

import numpy as np # 创建网格 df['grid_lon'] = (df['longitude'] / 0.1).round() * 0.1 df['grid_lat'] = (df['latitude'] / 0.1).round() * 0.1 # 聚合统计 grid_stats = df.groupby(['grid_lon', 'grid_lat']).agg( turbine_count=('capacity_mw', 'count'), total_capacity=('capacity_mw', 'sum'), avg_capacity=('capacity_mw', 'mean') ).reset_index() # 计算密度(台/百平方公里) grid_stats['density'] = grid_stats['turbine_count'] / (0.1 * 111 * 0.1 * 111) * 100

逻辑说明:0.1 度网格在纬度 40 度附近大约是 11 公里乘 8.5 公里,面积约 93 平方公里。density 字段表示每百平方公里机组数量,用来对比不同区域开发强度。

参数说明:网格大小可以调,做全国尺度用 0.5 度,做县域尺度用 0.01 度。关键是网格面积要随纬度修正,否则高纬度地区密度会被高估。

聚合完可以导出 GeoJSON,直接拖进 QGIS 或 kepler.gl 看。我习惯再加一列省份字段,方便按行政区统计。

3.3 叠加风光资源与电网图层:让点位数据产生决策价值

单独的风机点位只是底图,叠加风功率密度和电网线路才有决策价值。常见做法是拿 Global Wind Atlas 的 100 米高度风功率密度栅格,和网格聚合结果做空间连接。

import geopandas as gpd from rasterstats import zonal_stats # 读取网格和风功率密度栅格 grid = gpd.read_file('grid_stats.geojson') stats = zonal_stats(grid, 'wind_power_density_100m.tif', stats=['mean']) grid['wind_density'] = [s['mean'] for s in stats] # 筛选风资源好且开发密度低的区域 candidates = grid[(grid['wind_density'] > 300) & (grid['density'] < 5)]

逻辑说明:wind_density 大于 300 瓦每平方米通常被认为具备开发潜力,density 小于 5 表示开发强度低。两个条件叠加,筛出来的就是潜在可开发区域。

参数说明:风功率密度阈值随轮毂高度变化,100 米高度 300 瓦每平方米是常见门槛,但具体项目要按机型功率曲线重新算。电网图层可以从公开的输电线路数据获取,叠加后能看出并网距离。

这一步做完,你手里就不再是一堆散点,而是一张能回答“哪里还能建、哪里已经饱和”的分析底图。

4. 避坑与排查:全国风机点位数据最容易翻车的五个地方

4.1 坐标系不统一导致点位整体偏移

现象:把数据拖进地图,发现所有点位都往一个方向偏了几百米,和影像上的风机对不上。

原因:数据混合了 WGS84 和 GCJ02,或者部分点位是从百度地图拾取的 BD09 坐标。

解决:先按来源字段分组,分别转换到 WGS84。没有来源字段的,拿几个已知地标做比对,判断偏移方向。BD09 转 WGS84 需要两步,先转 GCJ02 再转 WGS84。

4.2 单机容量字段缺失或单位混乱

现象:按容量聚合时,有的点位容量是 2.5,有的是 2500,有的是 0.0025。

原因:单位不统一,兆瓦、千瓦、万千瓦混用,还有的字段是整场容量而非单机容量。

解决:先看数值分布,2.5 左右通常是兆瓦,2500 左右是千瓦。整场容量除以机组数量得到单机容量。实在判断不了的,标记为缺失,不要硬猜。

4.3 重复点位导致密度虚高

现象:某个区域密度异常高,实地一看只有几台机组。

原因:同一机组被多个数据源重复录入,或者同一项目分期录入时坐标没变。

解决:按经纬度四舍五入到四位小数去重,保留属性最全的那条。如果同一位置确实有多台机组,用机组编号字段区分,没有编号的按容量和机型判断。

4.4 投运年份缺失导致存量分析失真

现象:做历年装机增长曲线时,发现某一年突然暴增,实际是那一年集中补录了历史数据。

原因:投运年份字段缺失,或者录入的是核准年份而非并网年份。

解决:用环评公示和电网并网信息交叉验证。实在补不全的,做增长分析时按省份和容量段做敏感性分析,不要拿缺失数据直接画曲线。

4.5 遥感解译把其他目标误判为风机

现象:提取出的点位居高不下,实地核查发现很多是通信塔、烟囱或白色屋顶。

原因:阈值提取没有做形状和阴影过滤。

解决:叠加阴影方向判断,风机阴影长度和轮毂高度有固定比例关系。再用目标尺寸过滤,叶轮直径小于 80 米或大于 250 米的直接剔除。有条件的用深度学习模型做二次分类。

5. 把点位数据用出复利:一个我常用的验证习惯

数据拿到手,我第一件事不是画图,是抽十个点位去地图上“散步”。打开卫星影像,一个一个看,确认是不是风机、有没有道路连接、周边有没有升压站。这个习惯帮我省过很多后悔药——有一次发现某省份数据里混进了大量测风塔,差点把测风塔当成风机算容量。

进阶用法上,我习惯把全国风机点位和月度发电量数据做关联。方法不复杂:按省份和机型分组,用公开的利用小时数反推发电量,再和统计口径做对比。偏差超过 15% 的,回头查点位容量和机型字段。这个交叉验证能筛出大部分属性错误。

还有一个技巧是看点位的时间戳分布。如果某省份的点位集中在某一年录入,大概率是批量补录,属性字段的可靠性要打折扣。反过来,逐年分散录入的,字段质量通常更好。

最后说一个我自己的教训:不要拿一份数据做所有事。全国风机点位数据适合做空间分布和密度分析,不适合做精确发电量结算。结算要用机组级别的功率曲线和实测风速,那是另一个数据体系。把边界搞清楚,比把数据用满更重要。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询