编程

geoskill-wind-resource-assessment

试用

基于风速时序的风能资源评估:逐像元 Weibull 分布拟合(矩估计/MLE)、风功率密度 WPD=0.5ρmean(v³)、幂律高度外推与年发电量估算。Wind resource assessment from wind-speed time series: per-pixel Weibull fitting, wind power density, power-law height extrapolation, and annual energy yield. 输出平均风速/功率密度/Weibull 参数 GeoTIFF + 参数 JSON + manifest。

它能做什么

基于风速时序的风能资源评估:逐像元 Weibull 分布拟合(矩估计/MLE)、风功率密度 WPD=0.5ρmean(v³)、幂律高度外推与年发电量估算。Wind resource assessment from wind-speed time series: per-pixel Weibull fitting, wind power density, power-law height extrapolation, and annual energy yield. 输出平均风速/功率密度/Weibull 参数 GeoTIFF + 参数 JSON + manifest。

技能文档

风能资源评估 | Wind Resource Assessment

Performs wind resource assessment on wind-speed time-series rasters, estimating Weibull distribution parameters pixel-by-pixel and computing the Wind Power Density (WPD), for wind farm siting, resource surveying, and energy yield estimation.

Core algorithms:

  • Weibull fitting: the wind-speed frequency distribution is described by Weibull(k, c). Two methods are provided: the method of moments (Justus & Mikhail 1978: k ≈ (σ/μ)^-1.086, c = μ/Γ(1+1/k)) and maximum likelihood (scipy.stats.weibull_min MLE).
  • Wind power density: WPD = 0.5 × ρ × mean(v³), with ρ the standard air density ≈ 1.225 kg/m³. This is the most direct physical measure of wind resource strength (unit W/m²).
  • Power-law height extrapolation: v(z) = v_ref × (z/z_ref)^α, with α ≈ 1/ln(z_ref/z0), extrapolating wind speed observed at 10 m to hub height (default 100 m).
  • Annual energy yield estimation: estimates the annual energy production of a single turbine (MWh/yr) from the regional mean WPD and the capacity factor.

The --synthetic mode generates simulated wind-speed fields that follow a Weibull distribution (spatially varying scale parameter c), so the full pipeline and parameter recovery can be validated without network access or real data.

Dependencies / 依赖

pip install 'numpy' 'rasterio' 'scipy'

Usage / 使用方法

基本用法(仅给 bbox,自动合成)

python geoskill-wind-resource-assessment.py --bbox 116.0 39.0 117.0 40.0 --output-dir ./out

Example 1: Synthetic Data Offline Assessment

python geoskill-wind-resource-assessment.py --bbox 116.0 39.0 117.0 40.0 --synthetic --n-dates 100 --output-dir ./out

示例 2:MLE 拟合 + 自定义轮毂高度

python geoskill-wind-resource-assessment.py --bbox 121.0 31.0 122.0 32.0 --synthetic --method mle --height 120 --output-dir ./sh

Example 3: Real Wind Speed Time-Series Raster

python geoskill-wind-resource-assessment.py --input wind_ts.tif --height 100 --roughness 0.1 --output-dir ./real

Example 4: Custom Air Density and Capacity Factor (High Altitude)

python geoskill-wind-resource-assessment.py --input wind_ts.tif --air-density 1.0 --capacity-factor 0.30 --output-dir ./plateau

示例 5:矩估计 vs MLE 对比

python geoskill-wind-resource-assessment.py --bbox 116 39 117 40 --synthetic --method moment --output-dir ./cmp_moment --quiet
python geoskill-wind-resource-assessment.py --bbox 116 39 117 40 --synthetic --method mle --output-dir ./cmp_mle --quiet

Output / 输出

FileFormatDescription
mean_wind_speed.tifGeoTIFF (float32)Time-series mean wind speed (extrapolated to height), m/s, EPSG:4326
wind_power_density.tifGeoTIFF (float32)Mean wind power density WPD, W/m²
weibull_params.tifGeoTIFF (2 bands)band1=shape k, band2=scale c (m/s)
weibull_params.jsonJSONRegional statistics, parameter settings, annual energy yield estimate
output-manifest.jsonJSONRun manifest (inputs/outputs/QA/software versions)

Data Source / 数据源 / Source

  • Input: local multi-band wind-speed time-series GeoTIFF (one time step per band)
  • Synthetic mode: Weibull(k, c) distributed wind-speed fields generated locally, no external data source

Privacy / 隐私声明 / Privacy

  • Fully offline by default; no network requests are made
  • --synthetic mode reads no external data
  • All computation is done locally; no user data is uploaded

License / License

MIT



name: geoskill-wind-resource-assessment description: '基于风速时序的风能资源评估:逐像元 Weibull 分布拟合(矩估计/MLE)、风功率密度 WPD=0.5ρmean(v³)、幂律高度外推与年发电量估算。Wind resource assessment from wind-speed time series: per-pixel Weibull fitting, wind power density, power-law height extrapolation, and annual energy yield. 输出平均风速/功率密度/Weibull 参数 GeoTIFF + 参数 JSON + manifest。'

风能资源评估 | Wind Resource Assessment

对风速时序栅格执行风能资源评估,逐像元估计 Weibull 分布参数并计算风功率 密度(Wind Power Density, WPD),用于风电场选址、资源普查和发电量预估。

核心算法:

  • Weibull 拟合:风速频率分布用 Weibull(k, c) 描述。提供矩估计 (Justus & Mikhail 1978:k ≈ (σ/μ)^-1.086,c = μ/Γ(1+1/k))与最大似然 (scipy.stats.weibull_min MLE)两种方法。
  • 风功率密度:WPD = 0.5 × ρ × mean(v³),ρ 为标准空气密度 ≈ 1.225 kg/m³。 这是衡量风能资源强弱最直接的物理量(单位 W/m²)。
  • 幂律高度外推:v(z) = v_ref × (z/z_ref)^α,α ≈ 1/ln(z_ref/z0),把 10 m 观测风速外推到轮毂高度(默认 100 m)。
  • 年发电量估算:由区域平均 WPD 与容量系数估算单台机组年发电量(MWh/yr)。

支持 --synthetic 模式生成符合 Weibull 分布的模拟风速场(尺度参数 c 空间变化), 无需网络和真实数据即可验证全流程与参数恢复。

依赖

pip install 'numpy' 'rasterio' 'scipy'

使用方法

基本用法(仅给 bbox,自动合成)

python geoskill-wind-resource-assessment.py --bbox 116.0 39.0 117.0 40.0 --output-dir ./out

示例 1:合成数据离线评估

python geoskill-wind-resource-assessment.py --bbox 116.0 39.0 117.0 40.0 --synthetic --n-dates 100 --output-dir ./out

示例 2:MLE 拟合 + 自定义轮毂高度

python geoskill-wind-resource-assessment.py --bbox 121.0 31.0 122.0 32.0 --synthetic --method mle --height 120 --output-dir ./sh

示例 3:真实风速时序栅格

python geoskill-wind-resource-assessment.py --input wind_ts.tif --height 100 --roughness 0.1 --output-dir ./real

示例 4:自定义空气密度与容量系数(高海拔)

python geoskill-wind-resource-assessment.py --input wind_ts.tif --air-density 1.0 --capacity-factor 0.30 --output-dir ./plateau

示例 5:矩估计 vs MLE 对比

python geoskill-wind-resource-assessment.py --bbox 116 39 117 40 --synthetic --method moment --output-dir ./cmp_moment --quiet
python geoskill-wind-resource-assessment.py --bbox 116 39 117 40 --synthetic --method mle --output-dir ./cmp_mle --quiet

输出

文件格式说明
mean_wind_speed.tifGeoTIFF (float32)时序平均风速(外推到 height),m/s,EPSG:4326
wind_power_density.tifGeoTIFF (float32)平均风功率密度 WPD,W/m²
weibull_params.tifGeoTIFF (2 bands)band1=形状 k,band2=尺度 c (m/s)
weibull_params.jsonJSON区域统计、参数设置、年发电量估算
output-manifest.jsonJSON运行清单(输入/输出/QA/软件版本)

数据源 / Source

  • 输入:本地多波段风速时序 GeoTIFF(每个波段一个时相)
  • 合成模式:本地生成 Weibull(k, c) 分布风速场,无外部数据源

隐私声明 / Privacy

  • 默认完全离线运行,不发起任何网络请求
  • --synthetic 模式不读取任何外部数据
  • 所有计算在本地完成,不上传用户数据

License

MIT

相关技能

热浪影响评估:逐像元 P90 分位数阈值 + 连续≥3天连通域热浪检测,Stull/简化湿球温度健康风险分级,人口暴露与脆弱性制图。Heatwave impact assessment: per-pixel P90 threshold with connected-run detection, wet-bulb temperature health risk, population exposure and vulnerability mapping. 输出热浪日数/暴露人口/脆弱性/湿球风险 GeoTIFF + 事件清单 JSON。

SAR 海面风场反演:基于简化 CMOD5/CMOD7 经验地球物理模型,由后向散射系数 σ⁰ 与风向二分法数值反演海面风速场

1 次安装

多压力因子归一化加权叠加得综合影响指数,独立概率模型估算累积效应,按阈值划分5 级影响等级。Assesses environmental impact grades by multi-factor overlay and cumulative effects. 输出影响指数与等级 GeoTIFF。

Derive aerodynamic roughness and ventilation potential from building morphology and extract least-resistance ventilation corridors.

1 次安装

对温度/降水时序执行 Mann-Kendall 趋势检验与 Sen 斜率(Sen slope)估计,输出趋势斜率栅格、显著性(p 值)栅格与时序统计 JSON。Mann-Kendall trend test and Sen slope estimator for temperature/precipitation time series, outputting slope raster, significance (p-value) raster, and time-series JSON.