# API Reference ## getMoonPhase ```dart MoonPhaseResult getMoonPhase([DateTime? date]) ``` Returns the moon phase for the given UTC date, or the current moment if `date` is null. ### MoonPhaseResult fields | Field | Type | Description | | --- | --- | --- | | `phase` | `MoonPhaseName` | Enum: `newMoon`, `waxingCrescent`, `firstQuarter`, `waxingGibbous`, `fullMoon`, `waningGibbous`, `lastQuarter`, `waningCrescent` | | `phaseName` | `String` | Human-readable phase name | | `phaseSymbol` | `String` | Moon emoji for the current phase | | `illumination` | `double` | Percent illuminated (0-100) | | `age` | `double` | Hours since the last new moon | | `elongationDeg` | `double` | Moon-Sun elongation in degrees | | `isWaxing` | `bool` | True when illumination is increasing | | `nextNewMoon` | `DateTime` | Next new moon (UTC) | | `nextFullMoon` | `DateTime` | Next full moon (UTC) | | `prevNewMoon` | `DateTime` | Previous new moon (UTC) | --- ## getMoonPosition ```dart MoonPosition getMoonPosition( DateTime? date, double lat, double lon, { double elevation = 0, }) ``` Computes the topocentric position of the moon for an observer at the given location. Applies atmospheric refraction to the altitude. | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `date` | `DateTime?` | now | UTC date and time | | `lat` | `double` | required | Observer latitude (-90 to 90) | | `lon` | `double` | required | Observer longitude (-180 to 180) | | `elevation` | `double` | 0 | Observer elevation in meters | ### MoonPosition fields | Field | Type | Description | | --- | --- | --- | | `azimuth` | `double` | Degrees from North, clockwise (0-360) | | `altitude` | `double` | Degrees above horizon (refraction applied) | | `distance` | `double` | Earth-Moon distance in km | | `parallacticAngle` | `double` | Parallactic angle in radians | --- ## getMoonIllumination ```dart MoonIlluminationResult getMoonIllumination([DateTime? date]) ``` Returns illumination data for the given UTC date, or now if null. ### MoonIlluminationResult fields | Field | Type | Description | | --- | --- | --- | | `fraction` | `double` | Illuminated fraction (0-1) | | `phase` | `double` | Phase cycle position (0=new, 0.25=first quarter, 0.5=full, 0.75=last quarter) | | `angle` | `double` | Bright limb position angle in radians | | `isWaxing` | `bool` | True when waxing | --- ## getMoonVisibilityEstimate ```dart MoonVisibilityEstimate getMoonVisibilityEstimate( DateTime? date, double lat, double lon, { double elevation = 0, }) ``` Estimates lunar crescent visibility using the Odeh (2006) criterion. Pass a post-sunset time for meaningful results. | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `date` | `DateTime?` | now | UTC date and time (use post-sunset) | | `lat` | `double` | required | Observer latitude | | `lon` | `double` | required | Observer longitude | | `elevation` | `double` | 0 | Observer elevation in meters | ### MoonVisibilityEstimate fields | Field | Type | Description | | --- | --- | --- | | `v` | `double` | Odeh V parameter | | `zone` | `OdehZone` | Visibility zone (a, b, c, or d) | | `description` | `String` | Human-readable zone description | | `isVisibleNakedEye` | `bool` | True for zone A | | `isVisibleWithOpticalAid` | `bool` | True for zones A and B | | `arcl` | `double` | Sun-Moon elongation in degrees | | `arcv` | `double` | Arc of vision in degrees | | `w` | `double` | Crescent width in arc minutes | | `moonAboveHorizon` | `bool` | True if the moon is above the horizon at the given time | ### OdehZone values | Zone | V threshold | Meaning | | --- | --- | --- | | A | V >= 5.65 | Visible with naked eye | | B | V >= 2.00 | Visible with optical aid, may be naked-eye visible | | C | V >= -0.96 | Visible with optical aid only | | D | V < -0.96 | Not visible even with optical aid | --- ## getMoon ```dart MoonSnapshot getMoon( DateTime? date, double lat, double lon, { double elevation = 0, }) ``` Convenience function that runs all four computations in one call. ### MoonSnapshot fields | Field | Type | Description | | --- | --- | --- | | `phase` | `MoonPhaseResult` | Phase result | | `position` | `MoonPosition` | Position result | | `illumination` | `MoonIlluminationResult` | Illumination result | | `visibility` | `MoonVisibilityEstimate` | Visibility estimate | --- [Home](Home)