feat(web): display Wind 8760 profile in generation sheet
- Added windProfileAvg to Year level display (similar to solarProfileAvg) - Added windProfileMo to Month level display - Added windProfileDay to Day level display - Added hourProfileW (raw wind profile) to Hour level display - This makes Wind profile display consistent with Solar profile display
This commit is contained in:
parent
4450eeb24f
commit
581eafbf36
1 changed files with 5 additions and 4 deletions
|
|
@ -805,6 +805,7 @@ function HourlyGenerationSheet({ hourly, codYear, solarDCMW, windMW }: { hourly:
|
||||||
const loadYr = hasLoad ? computeYearTotalNew(year, hourly_load) : 0;
|
const loadYr = hasLoad ? computeYearTotalNew(year, hourly_load) : 0;
|
||||||
// Solar 8760: average profile value (0-1), DC MW: capacity (placeholder), Solar MW: sum output
|
// Solar 8760: average profile value (0-1), DC MW: capacity (placeholder), Solar MW: sum output
|
||||||
const solarProfileAvg = hasSolarProfile ? computeYearAvgProfile(year, hourly_solar_profile) : 0;
|
const solarProfileAvg = hasSolarProfile ? computeYearAvgProfile(year, hourly_solar_profile) : 0;
|
||||||
|
const windProfileAvg = hasWindProfile ? computeYearAvgProfile(year, hourly_wind_profile) : 0;
|
||||||
const fyLabel = getFyLabel(i);
|
const fyLabel = getFyLabel(i);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -820,7 +821,7 @@ function HourlyGenerationSheet({ hourly, codYear, solarDCMW, windMW }: { hourly:
|
||||||
{hasSolar && <span className="text-orange-600/70 w-16">{solarDCMW || '-'}</span>}
|
{hasSolar && <span className="text-orange-600/70 w-16">{solarDCMW || '-'}</span>}
|
||||||
{hasSolar && <span className="text-orange-700 w-20">{Math.round(solarYr).toLocaleString()}</span>}
|
{hasSolar && <span className="text-orange-700 w-20">{Math.round(solarYr).toLocaleString()}</span>}
|
||||||
{/* Wind 8760, MW, Wind MW */}
|
{/* Wind 8760, MW, Wind MW */}
|
||||||
{hasWind && <span className="text-blue-700 w-20">-</span>}
|
{hasWind && <span className="text-blue-700 w-20">{(windProfileAvg * 100).toFixed(1)}%</span>}
|
||||||
{hasWind && <span className="text-blue-600/70 w-16">{windMW || '-'}</span>}
|
{hasWind && <span className="text-blue-600/70 w-16">{windMW || '-'}</span>}
|
||||||
{hasWind && <span className="text-blue-700 w-20">{Math.round(windYr).toLocaleString()}</span>}
|
{hasWind && <span className="text-blue-700 w-20">{Math.round(windYr).toLocaleString()}</span>}
|
||||||
{hasTotalRe && <span className="text-green-700 w-20">{Math.round(totalReYr).toLocaleString()}</span>}
|
{hasTotalRe && <span className="text-green-700 w-20">{Math.round(totalReYr).toLocaleString()}</span>}
|
||||||
|
|
@ -857,7 +858,7 @@ function HourlyGenerationSheet({ hourly, codYear, solarDCMW, windMW }: { hourly:
|
||||||
{hasSolar && <span className="text-orange-700/80 w-14">{(solarProfileMo * 100).toFixed(1)}%</span>}
|
{hasSolar && <span className="text-orange-700/80 w-14">{(solarProfileMo * 100).toFixed(1)}%</span>}
|
||||||
{hasSolar && <span className="text-orange-700/80 w-10">{solarDCMW || '-'}</span>}
|
{hasSolar && <span className="text-orange-700/80 w-10">{solarDCMW || '-'}</span>}
|
||||||
{hasSolar && <span className="text-orange-700/80 w-14">{Math.round(solarMo).toLocaleString()}</span>}
|
{hasSolar && <span className="text-orange-700/80 w-14">{Math.round(solarMo).toLocaleString()}</span>}
|
||||||
{hasWind && <span className="text-blue-700/80 w-14">-</span>}
|
{hasWind && <span className="text-blue-700/80 w-14">{(windProfileMo * 100).toFixed(1)}%</span>}
|
||||||
{hasWind && <span className="text-blue-700/80 w-10">{windMW || '-'}</span>}
|
{hasWind && <span className="text-blue-700/80 w-10">{windMW || '-'}</span>}
|
||||||
{hasWind && <span className="text-blue-700/80 w-14">{Math.round(windMo).toLocaleString()}</span>}
|
{hasWind && <span className="text-blue-700/80 w-14">{Math.round(windMo).toLocaleString()}</span>}
|
||||||
{hasTotalRe && <span className="text-green-700/80 w-14">{Math.round(totalReMo).toLocaleString()}</span>}
|
{hasTotalRe && <span className="text-green-700/80 w-14">{Math.round(totalReMo).toLocaleString()}</span>}
|
||||||
|
|
@ -891,7 +892,7 @@ function HourlyGenerationSheet({ hourly, codYear, solarDCMW, windMW }: { hourly:
|
||||||
{hasSolar && <span className="text-orange-600/70 w-14">{(solarProfileDay * 100).toFixed(1)}%</span>}
|
{hasSolar && <span className="text-orange-600/70 w-14">{(solarProfileDay * 100).toFixed(1)}%</span>}
|
||||||
{hasSolar && <span className="text-orange-600/70 w-10">{solarDCMW || '-'}</span>}
|
{hasSolar && <span className="text-orange-600/70 w-10">{solarDCMW || '-'}</span>}
|
||||||
{hasSolar && <span className="text-orange-600/70 w-14">{Math.round(solarDy)}</span>}
|
{hasSolar && <span className="text-orange-600/70 w-14">{Math.round(solarDy)}</span>}
|
||||||
{hasWind && <span className="text-blue-600/70 w-14">-</span>}
|
{hasWind && <span className="text-blue-600/70 w-14">{(windProfileDay * 100).toFixed(1)}%</span>}
|
||||||
{hasWind && <span className="text-blue-600/70 w-10">{windMW || '-'}</span>}
|
{hasWind && <span className="text-blue-600/70 w-10">{windMW || '-'}</span>}
|
||||||
{hasWind && <span className="text-blue-600/70 w-14">{Math.round(windDy)}</span>}
|
{hasWind && <span className="text-blue-600/70 w-14">{Math.round(windDy)}</span>}
|
||||||
{hasTotalRe && <span className="text-green-600/70 w-14">{Math.round(totalReDy)}</span>}
|
{hasTotalRe && <span className="text-green-600/70 w-14">{Math.round(totalReDy)}</span>}
|
||||||
|
|
@ -927,7 +928,7 @@ function HourlyGenerationSheet({ hourly, codYear, solarDCMW, windMW }: { hourly:
|
||||||
{hasSolar && <span className="text-orange-600/70 w-10 text-right">{solarDCMW || '-'}</span>}
|
{hasSolar && <span className="text-orange-600/70 w-10 text-right">{solarDCMW || '-'}</span>}
|
||||||
{hasSolar && <span className="text-orange-700 w-14 text-right">{Math.round(solarHr)}</span>}
|
{hasSolar && <span className="text-orange-700 w-14 text-right">{Math.round(solarHr)}</span>}
|
||||||
{/* Wind 8760, MW, Wind MW */}
|
{/* Wind 8760, MW, Wind MW */}
|
||||||
{hasWind && <span className="text-blue-700 w-14 text-right">-</span>}
|
{hasWind && <span className="text-blue-700 w-14 text-right">{(hourProfileW * 100).toFixed(1)}%</span>}
|
||||||
{hasWind && <span className="text-blue-600/70 w-10 text-right">{windMW || '-'}</span>}
|
{hasWind && <span className="text-blue-600/70 w-10 text-right">{windMW || '-'}</span>}
|
||||||
{hasWind && <span className="text-blue-700 w-14 text-right">{Math.round(windHr)}</span>}
|
{hasWind && <span className="text-blue-700 w-14 text-right">{Math.round(windHr)}</span>}
|
||||||
{/* Total RE, Client End, Load */}
|
{/* Total RE, Client End, Load */}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue