Class SolarPathAnalyzer
java.lang.Object
org.episteme.social.architecture.SolarPathAnalyzer
Analytical tool for calculating the solar path, sun position, and solar
insulation on building surfaces. It supports architectural site analysis,
shading evaluation, and renewable energy planning.
- Since:
- 1.0
- Version:
- 2.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordResults of a 24-hour solar insulation simulation.static final recordRepresents the position of the sun in the sky at a specific moment. -
Method Summary
Modifier and TypeMethodDescriptioncalculateDailyInsolation(double latitude, int month, int day, double surfaceTilt, double surfaceAzimuth) Simulates daily solar insulation on a surface of specific tilt and orientation.calculateSunPosition(double latitude, double longitude, int year, int month, int day, double hour, double timezone) Calculates the sun position (altitude and azimuth) for a given location, date, and time.static List<List<SolarPathAnalyzer.SolarPosition>> generateSunPathDiagram(double latitude) Generates Sun Path diagram data points for various seasons.static RealoptimalTiltAngle(double latitude) Determines the optimal year-round tilt angle for solar collectors.static doubleshadingFactor(SolarPathAnalyzer.SolarPosition sun, double obstructionHeight, double obstructionDistance, double obstructionAzimuth) Calculates a shading factor (0 to 1) based on an external obstruction.
-
Method Details
-
calculateSunPosition
public static SolarPathAnalyzer.SolarPosition calculateSunPosition(double latitude, double longitude, int year, int month, int day, double hour, double timezone) Calculates the sun position (altitude and azimuth) for a given location, date, and time.- Parameters:
latitude- degrees (-90 to 90)longitude- degrees (-180 to 180)year- calendar yearmonth- month (1-12)day- day of monthhour- hour of day (0.0 to 24.0)timezone- UTC offset- Returns:
- SolarPosition record
-
calculateDailyInsolation
public static SolarPathAnalyzer.InsolationResult calculateDailyInsolation(double latitude, int month, int day, double surfaceTilt, double surfaceAzimuth) Simulates daily solar insulation on a surface of specific tilt and orientation.- Parameters:
latitude- location latitudemonth- simulation monthday- simulation daysurfaceTilt- angle from horizontal (0 to 90)surfaceAzimuth- compass direction (0=North, 180=South)- Returns:
- InsolationResult over 24 hours
-
optimalTiltAngle
Determines the optimal year-round tilt angle for solar collectors.- Parameters:
latitude- site latitude- Returns:
- recommended tilt angle as a Real
-
shadingFactor
public static double shadingFactor(SolarPathAnalyzer.SolarPosition sun, double obstructionHeight, double obstructionDistance, double obstructionAzimuth) Calculates a shading factor (0 to 1) based on an external obstruction.- Parameters:
sun- current position of the sunobstructionHeight- height of the objectobstructionDistance- distance to the objectobstructionAzimuth- direction to the object- Returns:
- shading multiplier (0.0 = full shade, 1.0 = clear)
-
generateSunPathDiagram
Generates Sun Path diagram data points for various seasons.- Parameters:
latitude- site latitude- Returns:
- list of paths (lists of SolarPosition) for solstices and equinoxes
-