Class SolarPathAnalyzer

java.lang.Object
org.episteme.social.architecture.SolarPathAnalyzer

public final class SolarPathAnalyzer extends Object
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)
  • 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 year
      month - month (1-12)
      day - day of month
      hour - 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 latitude
      month - simulation month
      day - simulation day
      surfaceTilt - angle from horizontal (0 to 90)
      surfaceAzimuth - compass direction (0=North, 180=South)
      Returns:
      InsolationResult over 24 hours
    • optimalTiltAngle

      public static Real optimalTiltAngle(double latitude)
      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 sun
      obstructionHeight - height of the object
      obstructionDistance - distance to the object
      obstructionAzimuth - direction to the object
      Returns:
      shading multiplier (0.0 = full shade, 1.0 = clear)
    • generateSunPathDiagram

      public static List<List<SolarPathAnalyzer.SolarPosition>> generateSunPathDiagram(double latitude)
      Generates Sun Path diagram data points for various seasons.
      Parameters:
      latitude - site latitude
      Returns:
      list of paths (lists of SolarPosition) for solstices and equinoxes