
简介这份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, axis0) mask brightness 0.35 # 阈值需根据影像调整 # 转为矢量 results shapes(mask.astype(uint8), transformtransform) 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直接画图会看到点位整体偏移。处理方法是统一转成 WGS84import 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_xyTrue) 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]), axis1 )逻辑说明这里用简化偏移量做演示实际项目建议用 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% 的回头查点位容量和机型字段。这个交叉验证能筛出大部分属性错误。还有一个技巧是看点位的时间戳分布。如果某省份的点位集中在某一年录入大概率是批量补录属性字段的可靠性要打折扣。反过来逐年分散录入的字段质量通常更好。最后说一个我自己的教训不要拿一份数据做所有事。全国风机点位数据适合做空间分布和密度分析不适合做精确发电量结算。结算要用机组级别的功率曲线和实测风速那是另一个数据体系。把边界搞清楚比把数据用满更重要。希望帮到你。本文还有配套的精品资源点击获取