diff --git a/.wiki/API-Reference.md b/.wiki/API-Reference.md index a47f33f..4cd99c1 100644 --- a/.wiki/API-Reference.md +++ b/.wiki/API-Reference.md @@ -9,27 +9,27 @@ function getTimes( date: Date, lat: number, lng: number, - tz?: number, // default: system UTC offset - elevation?: number, // meters above sea level, default 0 - temperature?: number, // °C, default 15 - pressure?: number, // mbar, default 1013.25 - hanafi?: boolean, // Asr convention, default false (Shafi'i) -): PrayerTimes + tz?: number, // default: system UTC offset + elevation?: number, // meters above sea level, default 0 + temperature?: number, // °C, default 15 + pressure?: number, // mbar, default 1013.25 + hanafi?: boolean, // Asr convention, default false (Shafi'i) +): PrayerTimes; ``` ### PrayerTimes -| Field | Type | Description | -|-------|------|-------------| -| `Qiyam` | `number` | Start of the last third of the night (Qiyam al-Layl) | -| `Fajr` | `number` | True dawn (Subh Sadiq) | -| `Sunrise` | `number` | Astronomical sunrise | -| `Noon` | `number` | Solar noon (exact geometric transit) | -| `Dhuhr` | `number` | 2.5 minutes after solar noon | -| `Asr` | `number` | Asr (Shafi'i or Hanafi shadow ratio) | -| `Maghrib` | `number` | Astronomical sunset | -| `Isha` | `number` | Nightfall (end of shafaq) | -| `angles` | `TwilightAngles` | Dynamic depression angles used | +| Field | Type | Description | +| --------- | ---------------- | ---------------------------------------------------- | +| `Qiyam` | `number` | Start of the last third of the night (Qiyam al-Layl) | +| `Fajr` | `number` | True dawn (Subh Sadiq) | +| `Sunrise` | `number` | Astronomical sunrise | +| `Noon` | `number` | Solar noon (exact geometric transit) | +| `Dhuhr` | `number` | 2.5 minutes after solar noon | +| `Asr` | `number` | Asr (Shafi'i or Hanafi shadow ratio) | +| `Maghrib` | `number` | Astronomical sunset | +| `Isha` | `number` | Nightfall (end of shafaq) | +| `angles` | `TwilightAngles` | Dynamic depression angles used | All times are fractional hours in local time (e.g., `5.5` = 05:30:00). `NaN` means the event cannot be computed for this date/location (polar night, etc.). @@ -50,7 +50,7 @@ function calcTimes( temperature?: number, pressure?: number, hanafi?: boolean, -): FormattedPrayerTimes +): FormattedPrayerTimes; ``` Returns `"N/A"` for any time that cannot be computed. @@ -71,15 +71,15 @@ function getTimesAll( temperature?: number, pressure?: number, hanafi?: boolean, -): PrayerTimesAll +): PrayerTimesAll; ``` ### PrayerTimesAll Extends `PrayerTimes` with: -| Field | Type | Description | -|-------|------|-------------| +| Field | Type | Description | +| --------- | ---------------------------------- | ------------------------------------ | | `Methods` | `Record` | `[fajrTime, ishaTime]` per method ID | Method IDs: `UOIF`, `ISNACA`, `ISNA`, `SAMR`, `IGUT`, `MWL`, `DIBT`, `Karachi`, @@ -101,7 +101,7 @@ function calcTimesAll( temperature?: number, pressure?: number, hanafi?: boolean, -): FormattedPrayerTimesAll +): FormattedPrayerTimesAll; ``` --- @@ -118,7 +118,7 @@ function getAngles( elevation?: number, temperature?: number, pressure?: number, -): TwilightAngles +): TwilightAngles; ``` Returns `{ fajrAngle: number, ishaAngle: number }` in degrees (positive = below horizon). @@ -131,11 +131,11 @@ Compute Asr time from known solar noon and solar declination. ```typescript function getAsr( - solarNoon: number, // fractional hours (local time) - latitude: number, // decimal degrees - declination: number, // solar declination in degrees - hanafi?: boolean, // default false (Shafi'i, shadowFactor=1) -): number + solarNoon: number, // fractional hours (local time) + latitude: number, // decimal degrees + declination: number, // solar declination in degrees + hanafi?: boolean, // default false (Shafi'i, shadowFactor=1) +): number; ``` Returns Asr as fractional hours, or `NaN` if the sun never reaches the required altitude. @@ -150,9 +150,9 @@ Compute start of the last third of the night. ```typescript function getQiyam( - fajrTime: number, // fractional hours - ishaTime: number, // fractional hours -): number + fajrTime: number, // fractional hours + ishaTime: number, // fractional hours +): number; ``` Returns fractional hours. The night is divided from Isha to Fajr; Qiyam starts at the @@ -165,14 +165,14 @@ Returns fractional hours. The night is divided from Isha to Fajr; Qiyam starts a Compute the Moonsighting Committee Worldwide seasonal time offsets. ```typescript -function getMscFajr(date: Date, latitude: number): number +function getMscFajr(date: Date, latitude: number): number; // Returns minutes before astronomical sunrise for Fajr function getMscIsha( date: Date, latitude: number, - shafaq?: ShafaqMode, // 'general' | 'ahmer' | 'abyad', default 'general' -): number + shafaq?: ShafaqMode, // 'general' | 'ahmer' | 'abyad', default 'general' +): number; // Returns minutes after astronomical sunset for Isha ``` @@ -183,16 +183,16 @@ You rarely need to call them directly. ## solarEphemeris / toJulianDate -Jean Meeus solar ephemeris (Chapter 25 of *Astronomical Algorithms*, 2nd ed.). +Jean Meeus solar ephemeris (Chapter 25 of _Astronomical Algorithms_, 2nd ed.). ```typescript -function toJulianDate(date: Date): number +function toJulianDate(date: Date): number; function solarEphemeris(jd: number): { - decl: number; // solar declination, degrees - r: number; // Earth-Sun distance, AU - eclLon: number; // apparent ecliptic longitude, degrees -} + decl: number; // solar declination, degrees + r: number; // Earth-Sun distance, AU + eclLon: number; // apparent ecliptic longitude, degrees +}; ``` Accuracy: declination within ~0.01°, r within ~0.0001 AU. These are used internally @@ -205,7 +205,7 @@ to drive the physics corrections in `getAngles`. Exported array of all 14 `MethodDefinition` objects for documentation/tooling use. ```typescript -const METHODS: MethodDefinition[] +const METHODS: MethodDefinition[]; interface MethodDefinition { id: string; @@ -213,8 +213,8 @@ interface MethodDefinition { region: string; fajrAngle: number | null; ishaAngle: number | null; - ishaMinutes?: number; // UAQ and Qatar: 90 minutes after sunset - useMSC?: boolean; // MSC seasonal method + ishaMinutes?: number; // UAQ and Qatar: 90 minutes after sunset + useMSC?: boolean; // MSC seasonal method } ``` @@ -253,4 +253,4 @@ See [Moon Migration](Moon-Migration) for the full migration guide and function m --- -*[Back to Home](Home) | [Dynamic Algorithm](Dynamic-Algorithm) | [Traditional Methods](Traditional-Methods)* +_[Back to Home](Home) | [Dynamic Algorithm](Dynamic-Algorithm) | [Traditional Methods](Traditional-Methods)_ diff --git a/.wiki/Architecture.md b/.wiki/Architecture.md index 478a5f7..506d986 100644 --- a/.wiki/Architecture.md +++ b/.wiki/Architecture.md @@ -69,7 +69,7 @@ covers dates from -2000 to +6000. ## Solar Ephemeris -`getSolarEphemeris` implements Jean Meeus, *Astronomical Algorithms* (2nd ed.), +`getSolarEphemeris` implements Jean Meeus, _Astronomical Algorithms_ (2nd ed.), Chapter 25. This provides: - Solar declination (δ): accurate to ~0.01° @@ -128,4 +128,4 @@ Source maps are included. `sideEffects: false` allows tree-shaking. --- -*[Back to Home](Home) | [API Reference](API-Reference) | [Dynamic Algorithm](Dynamic-Algorithm)* +_[Back to Home](Home) | [API Reference](API-Reference) | [Dynamic Algorithm](Dynamic-Algorithm)_ diff --git a/.wiki/Asr-Calculation.md b/.wiki/Asr-Calculation.md index da20e72..acd0b36 100644 --- a/.wiki/Asr-Calculation.md +++ b/.wiki/Asr-Calculation.md @@ -16,6 +16,7 @@ In practice, the difference is typically 30–60 minutes, with Hanafi Asr being ## The Math Let: + - φ = observer latitude in radians - δ = solar declination in radians at local noon - s = shadow factor (1 for Shafi'i, 2 for Hanafi) @@ -56,10 +57,10 @@ and declination are far apart. import { getAsr } from 'pray-calc'; const asr = getAsr( - 12.15, // solar noon at ~12:09 local time - 40.7128, // New York latitude - 23.44, // solar declination at summer solstice - false, // Shafi'i + 12.15, // solar noon at ~12:09 local time + 40.7128, // New York latitude + 23.44, // solar declination at summer solstice + false, // Shafi'i ); ``` @@ -80,4 +81,4 @@ than 5 seconds of timing error: completely negligible. --- -*[Back to Home](Home) | [API Reference](API-Reference) | [Architecture](Architecture)* +_[Back to Home](Home) | [API Reference](API-Reference) | [Architecture](Architecture)_ diff --git a/.wiki/Changelog.md b/.wiki/Changelog.md index 9bd19dd..b651b01 100644 --- a/.wiki/Changelog.md +++ b/.wiki/Changelog.md @@ -19,4 +19,4 @@ CommonJS, JavaScript source, 10 traditional methods, suncalc for moon data. --- -*[Back to Home](Home)* +_[Back to Home](Home)_ diff --git a/.wiki/Dynamic-Algorithm.md b/.wiki/Dynamic-Algorithm.md index 9a26512..64c842d 100644 --- a/.wiki/Dynamic-Algorithm.md +++ b/.wiki/Dynamic-Algorithm.md @@ -148,4 +148,4 @@ piecewise model is in [src/getMSC.ts](../src/getMSC.ts). The solar ephemeris --- -*[Back to Home](Home) | [Traditional Methods](Traditional-Methods) | [Twilight Physics](Twilight-Physics)* +_[Back to Home](Home) | [Traditional Methods](Traditional-Methods) | [Twilight Physics](Twilight-Physics)_ diff --git a/.wiki/High-Latitude.md b/.wiki/High-Latitude.md index fe603bb..3d64c54 100644 --- a/.wiki/High-Latitude.md +++ b/.wiki/High-Latitude.md @@ -9,7 +9,7 @@ a sunrise before Fajr, or other nonsensical results. Even at latitudes where the Sun does reach 18°, the resulting times can be extreme. At 52°N in summer, a 15° Isha occurs around 2–3 AM, making a 4 AM Fajr effectively -continuous with Isha. Islamic jurisprudence recognizes this as hardship (*haraj*) +continuous with Isha. Islamic jurisprudence recognizes this as hardship (_haraj_) and provides accommodations. ## The MSC Approach @@ -52,23 +52,28 @@ there. Islamic scholars have proposed several approaches for high-latitude regions: ### Nearest Latitude (Aqrab al-Bilad) + Use the prayer times of the nearest city where the Sun does reach the required angle, scaled to local midnight. ### Nearest Day (Aqrab al-Ayyam) + Use the prayer times from the nearest date in the year when the Sun does reach the required angle at the same location. ### Seventh of Night (Sab'u lail) + Divide the 24-hour period (from midnight to midnight, or from Maghrib to Fajr) into 7 equal parts. Isha begins at the end of the first seventh; Fajr begins at the start of the last seventh. ### Specific Latitude Cutoff + Many North American institutions use the rule: above 48.5°N, compute times as if the latitude were 48.5°N. This is simple and avoids discontinuities. ### Makkah Time + A minority position: use Makkah's times globally. Not widely adopted outside of specific communities. @@ -84,4 +89,4 @@ are inapplicable and apply their own high-latitude policy. --- -*[Back to Home](Home) | [Twilight Physics](Twilight-Physics) | [Dynamic Algorithm](Dynamic-Algorithm)* +_[Back to Home](Home) | [Twilight Physics](Twilight-Physics) | [Dynamic Algorithm](Dynamic-Algorithm)_ diff --git a/.wiki/Home.md b/.wiki/Home.md index 3598ca5..22356f8 100644 --- a/.wiki/Home.md +++ b/.wiki/Home.md @@ -7,27 +7,27 @@ fixed-angle methods are included for comparison. ## Pages -| Page | Description | -|------|-------------| -| [API Reference](API-Reference) | Full function signatures, parameters, return types | -| [Dynamic Algorithm](Dynamic-Algorithm) | How Fajr/Isha angles are computed dynamically | -| [Traditional Methods](Traditional-Methods) | All 14 supported methods and their parameters | -| [Architecture](Architecture) | Module structure, data flow, design decisions | -| [High-Latitude Handling](High-Latitude) | MSC rules for latitudes above 55° | -| [Twilight Physics](Twilight-Physics) | Astronomical and atmospheric background | -| [Asr Calculation](Asr-Calculation) | Shadow-ratio math, Shafi'i vs Hanafi | -| [Moon Migration](Moon-Migration) | Moon functions moved to moon-sighting (v2 migration guide) | -| [Changelog](Changelog) | Version history | +| Page | Description | +| ------------------------------------------ | ---------------------------------------------------------- | +| [API Reference](API-Reference) | Full function signatures, parameters, return types | +| [Dynamic Algorithm](Dynamic-Algorithm) | How Fajr/Isha angles are computed dynamically | +| [Traditional Methods](Traditional-Methods) | All 14 supported methods and their parameters | +| [Architecture](Architecture) | Module structure, data flow, design decisions | +| [High-Latitude Handling](High-Latitude) | MSC rules for latitudes above 55° | +| [Twilight Physics](Twilight-Physics) | Astronomical and atmospheric background | +| [Asr Calculation](Asr-Calculation) | Shadow-ratio math, Shafi'i vs Hanafi | +| [Moon Migration](Moon-Migration) | Moon functions moved to moon-sighting (v2 migration guide) | +| [Changelog](Changelog) | Version history | ## Research & Accuracy -| Page | Description | -| --- | --- | -| [Research Overview](Research) | Study summary, headline results, PCD algorithm description | -| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure | -| [Global Accuracy Study](Research-Global-Study) | 18-city comparison across latitudes 6°S–51.5°N and all seasons | -| [Home-Territory Study](Research-Home-Territory) | Each method tested at its own calibration city: PCD wins 13/14 | -| [Observational Evidence](Research-Observational-Evidence) | Field observations, published studies, academic literature | +| Page | Description | +| -------------------------------------------------------------- | --------------------------------------------------------------------- | +| [Research Overview](Research) | Study summary, headline results, PCD algorithm description | +| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure | +| [Global Accuracy Study](Research-Global-Study) | 18-city comparison across latitudes 6°S–51.5°N and all seasons | +| [Home-Territory Study](Research-Home-Territory) | Each method tested at its own calibration city: PCD wins 13/14 | +| [Observational Evidence](Research-Observational-Evidence) | Field observations, published studies, academic literature | | [Field Observation Comparison](Research-Verified-Observations) | Systematic comparison of PCD vs real-world verified Fajr measurements | ## Quick Start @@ -43,15 +43,15 @@ import { calcTimes } from 'pray-calc'; const times = calcTimes( new Date('2024-06-21'), - 40.7128, // New York - -74.0060, + 40.7128, // New York + -74.006, ); -console.log(times.Fajr); // "03:51:24" +console.log(times.Fajr); // "03:51:24" console.log(times.Sunrise); // "05:25:08" console.log(times.Maghrib); // "20:31:17" -console.log(times.Isha); // "22:07:43" -console.log(times.angles); // { fajrAngle: 14.8, ishaAngle: 14.6 } +console.log(times.Isha); // "22:07:43" +console.log(times.angles); // { fajrAngle: 14.8, ishaAngle: 14.6 } ``` ### CJS @@ -85,4 +85,4 @@ never produces the "Isha never ends" failure that 18°-everywhere causes above 5 --- -*[Back to Repository](https://github.com/acamarata/pray-calc)* +_[Back to Repository](https://github.com/acamarata/pray-calc)_ diff --git a/.wiki/Moon-Migration.md b/.wiki/Moon-Migration.md index 2f53934..b223006 100644 --- a/.wiki/Moon-Migration.md +++ b/.wiki/Moon-Migration.md @@ -2,13 +2,13 @@ In pray-calc v1, the package included five functions for moon data: -| v1 Function | Description | -| -- | -- | -| `getMoon(date, lat, lon)` | Aggregated wrapper returning phase, position, illumination, visibility | -| `getMoonPhase(date)` | Synodic-month calculation from known reference new moon | -| `getMoonPosition(date, lat, lon)` | Thin wrapper around `suncalc.getMoonPosition` | -| `getMoonIllumination(date)` | Thin wrapper around `suncalc.getMoonIllumination` | -| `getMoonVisibility(date, lat, lon)` | Stub function: explicitly not accurate | +| v1 Function | Description | +| ----------------------------------- | ---------------------------------------------------------------------- | +| `getMoon(date, lat, lon)` | Aggregated wrapper returning phase, position, illumination, visibility | +| `getMoonPhase(date)` | Synodic-month calculation from known reference new moon | +| `getMoonPosition(date, lat, lon)` | Thin wrapper around `suncalc.getMoonPosition` | +| `getMoonIllumination(date)` | Thin wrapper around `suncalc.getMoonIllumination` | +| `getMoonVisibility(date, lat, lon)` | Stub function: explicitly not accurate | All five have been removed from pray-calc v2. They live in the dedicated [moon-sighting](https://github.com/acamarata/moon-sighting) package, which is the @@ -55,13 +55,13 @@ import { getMoon, getMoonPhase, getMoonPosition, getMoonIllumination } from 'moo ### Function Mapping -| pray-calc v1 | moon-sighting v1.1 | Notes | -| -- | -- | -- | -| `getMoonPosition(date, lat, lon)` | `getMoonPosition(date, lat, lon, elevation?)` | Adds WGS84 model, Bennett refraction, `parallacticAngle` field | -| `getMoonIllumination(date)` | `getMoonIllumination(date)` | Adds correct phase angle, `isWaxing` field | -| `getMoonPhase(date)` | `getMoonPhase(date)` | Adds `phaseName`, `phaseSymbol`, more fields | -| `getMoonVisibility(date, lat, lon)` | `getMoonVisibilityEstimate(date, lat, lon, elevation?)` | Real Odeh V-parameter, returns zone A–D, ARCL, ARCV, W | -| `getMoon(date, lat, lon)` | `getMoon(date, lat, lon, elevation?)` | Same concept, properly computed | +| pray-calc v1 | moon-sighting v1.1 | Notes | +| ----------------------------------- | ------------------------------------------------------- | -------------------------------------------------------------- | +| `getMoonPosition(date, lat, lon)` | `getMoonPosition(date, lat, lon, elevation?)` | Adds WGS84 model, Bennett refraction, `parallacticAngle` field | +| `getMoonIllumination(date)` | `getMoonIllumination(date)` | Adds correct phase angle, `isWaxing` field | +| `getMoonPhase(date)` | `getMoonPhase(date)` | Adds `phaseName`, `phaseSymbol`, more fields | +| `getMoonVisibility(date, lat, lon)` | `getMoonVisibilityEstimate(date, lat, lon, elevation?)` | Real Odeh V-parameter, returns zone A–D, ARCL, ARCV, W | +| `getMoon(date, lat, lon)` | `getMoon(date, lat, lon, elevation?)` | Same concept, properly computed | Return shapes are additive: all fields that existed in v1 still exist in v1.1. New fields are added but nothing is removed. The function for visibility is renamed @@ -76,4 +76,4 @@ returns. --- -*[Back to Home](Home) | [API Reference](API-Reference) | [Changelog](Changelog)* +_[Back to Home](Home) | [API Reference](API-Reference) | [Changelog](Changelog)_ diff --git a/.wiki/Research-Global-Study.md b/.wiki/Research-Global-Study.md index 2d428b0..78b76c2 100644 --- a/.wiki/Research-Global-Study.md +++ b/.wiki/Research-Global-Study.md @@ -15,26 +15,26 @@ See [Methodology](Research-Methodology) for the scoring approach, reference stan Error is `method_time − MSC_reference` in minutes. Positive = later than MSC, negative = earlier. `N/A` = sun never reaches the required depression angle (method is undefined for that case). -| # | City | Date | Lat | Elev | Sunrise | Maghrib | PCD Fajr° | PCD Isha° | MSC Fajr ref | MSC Isha ref | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| 1 | New York, USA | Jun 21 | 40.71°N | 10m | 05:25 | 20:30 | 16.21° | 12.41° | 03:35 (110 min) | 21:49 (79 min) | -| 2 | New York, USA | Dec 21 | 40.71°N | 10m | 07:16 | 16:32 | 17.48° | 17.12° | 05:40 (96 min) | 18:06 (94 min) | -| 3 | New York, USA | Mar 21 | 40.71°N | 10m | 06:56 | 19:09 | 17.48° | 15.28° | 05:27 (89 min) | 20:26 (77 min) | -| 4 | Toronto, Canada | Jun 21 | 43.65°N | 76m | 05:36 | 21:02 | 15.33° | 11.71° | 03:43 (113 min) | 22:22 (80 min) | -| 5 | London, UK | Jun 21 | 51.51°N | 11m | 04:43 | 21:21 | 11.88° | 10.00° | 02:43 (120 min) | 22:41 (80 min) | -| 6 | London, UK | Dec 21 | 51.51°N | 11m | 08:03 | 15:53 | 14.69° | 14.24° | 06:21 (102 min) | 17:32 (99 min) | -| 7 | Istanbul, Turkey | Jun 21 | 41.01°N | 114m | 05:32 | 20:39 | 16.28° | 12.40° | 03:41 (111 min) | 21:58 (79 min) | -| 8 | Makkah, S. Arabia | Jun 21 | 21.42°N | 277m | 05:39 | 19:05 | 19.79° | 16.56° | 04:05 (94 min) | 20:22 (77 min) | -| 9 | Makkah, S. Arabia | Dec 21 | 21.42°N | 277m | 06:54 | 17:43 | 19.58° | 19.36° | 05:28 (86 min) | 19:08 (85 min) | -| 10 | Tehran, Iran | Jun 21 | 35.69°N | 1191m | 04:48 | 19:23 | 17.95° | 14.09° | 03:02 (106 min) | 20:42 (79 min) | -| 11 | Cairo, Egypt | Jun 21 | 30.06°N | 23m | 04:54 | 18:59 | 18.73° | 14.97° | 03:13 (101 min) | 20:17 (78 min) | -| 12 | Cairo, Egypt | Dec 21 | 30.06°N | 23m | 06:46 | 16:59 | 19.13° | 18.72° | 05:15 (91 min) | 18:28 (89 min) | -| 13 | Karachi, Pakistan | Jun 21 | 24.86°N | 8m | 05:43 | 19:24 | 19.43° | 16.01° | 04:06 (97 min) | 20:42 (78 min) | -| 14 | Dhaka, Bangladesh | Jun 21 | 23.81°N | 4m | 05:12 | 18:48 | 19.49° | 16.19° | 03:36 (96 min) | 20:06 (78 min) | -| 15 | Jakarta, Indonesia | Jun 21 | 6.21°S | 8m | 06:01 | 17:47 | 18.72° | 18.72° | 04:43 (78 min) | 19:05 (78 min) | -| 16 | Singapore | Dec 21 | 1.35°N | 15m | 07:01 | 19:04 | 18.23° | 18.23° | 05:45 (76 min) | 20:20 (76 min) | -| 17 | Almaty, Kazakhstan | Jun 21 | 43.22°N | 848m | 04:12 | 19:36 | 15.73° | 12.05° | 02:19 (113 min) | 20:56 (80 min) | -| 18 | Riyadh, S. Arabia | Mar 21 | 24.69°N | 620m | 05:55 | 18:04 | 20.04° | 18.25° | 04:31 (84 min) | 19:20 (76 min) | +| # | City | Date | Lat | Elev | Sunrise | Maghrib | PCD Fajr° | PCD Isha° | MSC Fajr ref | MSC Isha ref | +| --- | ------------------ | ------ | ------- | ----- | ------- | ------- | --------- | --------- | --------------- | -------------- | +| 1 | New York, USA | Jun 21 | 40.71°N | 10m | 05:25 | 20:30 | 16.21° | 12.41° | 03:35 (110 min) | 21:49 (79 min) | +| 2 | New York, USA | Dec 21 | 40.71°N | 10m | 07:16 | 16:32 | 17.48° | 17.12° | 05:40 (96 min) | 18:06 (94 min) | +| 3 | New York, USA | Mar 21 | 40.71°N | 10m | 06:56 | 19:09 | 17.48° | 15.28° | 05:27 (89 min) | 20:26 (77 min) | +| 4 | Toronto, Canada | Jun 21 | 43.65°N | 76m | 05:36 | 21:02 | 15.33° | 11.71° | 03:43 (113 min) | 22:22 (80 min) | +| 5 | London, UK | Jun 21 | 51.51°N | 11m | 04:43 | 21:21 | 11.88° | 10.00° | 02:43 (120 min) | 22:41 (80 min) | +| 6 | London, UK | Dec 21 | 51.51°N | 11m | 08:03 | 15:53 | 14.69° | 14.24° | 06:21 (102 min) | 17:32 (99 min) | +| 7 | Istanbul, Turkey | Jun 21 | 41.01°N | 114m | 05:32 | 20:39 | 16.28° | 12.40° | 03:41 (111 min) | 21:58 (79 min) | +| 8 | Makkah, S. Arabia | Jun 21 | 21.42°N | 277m | 05:39 | 19:05 | 19.79° | 16.56° | 04:05 (94 min) | 20:22 (77 min) | +| 9 | Makkah, S. Arabia | Dec 21 | 21.42°N | 277m | 06:54 | 17:43 | 19.58° | 19.36° | 05:28 (86 min) | 19:08 (85 min) | +| 10 | Tehran, Iran | Jun 21 | 35.69°N | 1191m | 04:48 | 19:23 | 17.95° | 14.09° | 03:02 (106 min) | 20:42 (79 min) | +| 11 | Cairo, Egypt | Jun 21 | 30.06°N | 23m | 04:54 | 18:59 | 18.73° | 14.97° | 03:13 (101 min) | 20:17 (78 min) | +| 12 | Cairo, Egypt | Dec 21 | 30.06°N | 23m | 06:46 | 16:59 | 19.13° | 18.72° | 05:15 (91 min) | 18:28 (89 min) | +| 13 | Karachi, Pakistan | Jun 21 | 24.86°N | 8m | 05:43 | 19:24 | 19.43° | 16.01° | 04:06 (97 min) | 20:42 (78 min) | +| 14 | Dhaka, Bangladesh | Jun 21 | 23.81°N | 4m | 05:12 | 18:48 | 19.49° | 16.19° | 03:36 (96 min) | 20:06 (78 min) | +| 15 | Jakarta, Indonesia | Jun 21 | 6.21°S | 8m | 06:01 | 17:47 | 18.72° | 18.72° | 04:43 (78 min) | 19:05 (78 min) | +| 16 | Singapore | Dec 21 | 1.35°N | 15m | 07:01 | 19:04 | 18.23° | 18.23° | 05:45 (76 min) | 20:20 (76 min) | +| 17 | Almaty, Kazakhstan | Jun 21 | 43.22°N | 848m | 04:12 | 19:36 | 15.73° | 12.05° | 02:19 (113 min) | 20:56 (80 min) | +| 18 | Riyadh, S. Arabia | Mar 21 | 24.69°N | 620m | 05:55 | 18:04 | 20.04° | 18.25° | 04:31 (84 min) | 19:20 (76 min) | --- @@ -43,23 +43,23 @@ Error is `method_time − MSC_reference` in minutes. Positive = later than MSC, **Mean Absolute Error vs MSC reference, sorted by combined MAE.** `n_Fajr` / `n_Isha` = number of valid (non-NaN) results included in MAE calculation. -| Rank | Method | Fajr MAE (min) | Isha MAE (min) | Combined MAE | n_Fajr | n_Isha | -| --- | --- | --- | --- | --- | --- | --- | -| 1 | MSC | 0.00 | 0.00 | 0.00 | 18 | 18 | -| **2** | **★ PCD (Dynamic)** | **0.64** | **1.30** | **0.97** | **18** | **18** | -| 3 | Qatar | 10.21 | 10.22 | 10.21 | 17 | 18 | -| 4 | UAQ | 11.08 | 10.22 | 10.65 | 17 | 18 | -| 5 | MWL | 10.21 | 17.09 | 13.65 | 17 | 17 | -| 6 | DIBT | 10.21 | 17.09 | 13.65 | 17 | 17 | -| 7 | IGUT | 9.81 | 17.98 | 13.90 | 17 | 18 | -| 8 | Kuwait | 10.21 | 18.92 | 14.56 | 17 | 17 | -| 9 | Karachi | 10.21 | 20.89 | 15.55 | 17 | 17 | -| 10 | SAMR | 11.54 | 19.94 | 15.74 | 17 | 18 | -| 11 | Egypt | 14.49 | 18.92 | 16.71 | 17 | 17 | -| 12 | MUIS | 17.79 | 20.89 | 19.34 | 17 | 17 | -| 13 | ISNA | 19.44 | 19.94 | 19.69 | 18 | 18 | -| 14 | ISNACA | 26.96 | 18.45 | 22.71 | 18 | 18 | -| 15 | UOIF | 31.59 | 20.00 | 25.80 | 18 | 18 | +| Rank | Method | Fajr MAE (min) | Isha MAE (min) | Combined MAE | n_Fajr | n_Isha | +| ----- | ------------------- | -------------- | -------------- | ------------ | ------ | ------ | +| 1 | MSC | 0.00 | 0.00 | 0.00 | 18 | 18 | +| **2** | **★ PCD (Dynamic)** | **0.64** | **1.30** | **0.97** | **18** | **18** | +| 3 | Qatar | 10.21 | 10.22 | 10.21 | 17 | 18 | +| 4 | UAQ | 11.08 | 10.22 | 10.65 | 17 | 18 | +| 5 | MWL | 10.21 | 17.09 | 13.65 | 17 | 17 | +| 6 | DIBT | 10.21 | 17.09 | 13.65 | 17 | 17 | +| 7 | IGUT | 9.81 | 17.98 | 13.90 | 17 | 18 | +| 8 | Kuwait | 10.21 | 18.92 | 14.56 | 17 | 17 | +| 9 | Karachi | 10.21 | 20.89 | 15.55 | 17 | 17 | +| 10 | SAMR | 11.54 | 19.94 | 15.74 | 17 | 18 | +| 11 | Egypt | 14.49 | 18.92 | 16.71 | 17 | 17 | +| 12 | MUIS | 17.79 | 20.89 | 19.34 | 17 | 17 | +| 13 | ISNA | 19.44 | 19.94 | 19.69 | 18 | 18 | +| 14 | ISNACA | 26.96 | 18.45 | 22.71 | 18 | 18 | +| 15 | UOIF | 31.59 | 20.00 | 25.80 | 18 | 18 | **Notes on n values:** Methods with `n_Fajr = 17` or `n_Isha = 17` had one NaN result (typically London summer). Methods returning NaN for that case are not penalized in MAE: the actual failure rate is noted in the High-Latitude section below. @@ -69,51 +69,51 @@ Error is `method_time − MSC_reference` in minutes. Positive = later than MSC, Error in minutes vs MSC reference (`+` = later, `−` = earlier). `N/A` = sun does not reach required depression. -| City / Date | PCD | UOIF | ISNACA | ISNA | SAMR | IGUT | MWL | DIBT | Karachi | Kuwait | UAQ | Qatar | Egypt | MUIS | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| NY Jun | **−0.2** | +34.0 | +26.3 | +10.2 | +1.7 | −13.6 | −16.4 | −16.4 | −16.4 | −16.4 | −21.2 | −16.4 | −31.3 | −36.6 | -| NY Dec | **+0.1** | +30.6 | +25.0 | +13.8 | +8.3 | −1.1 | −2.7 | −2.7 | −2.7 | −2.7 | −5.5 | −2.7 | −10.9 | −13.7 | -| NY Mar | **+0.2** | +30.0 | +24.6 | +13.8 | +8.3 | −1.0 | −2.7 | −2.7 | −2.7 | −2.7 | −5.4 | −2.7 | −11.0 | −13.7 | -| Toronto Jun | **−0.8** | +29.9 | +21.1 | +2.5 | −7.6 | −26.2 | −29.8 | −29.8 | −29.8 | −29.8 | −36.0 | −29.8 | −49.3 | −56.7 | -| London Jun | **−0.4** | −2.4 | −20.3 | −87.8 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | -| London Dec | **+0.1** | +18.6 | +11.6 | −2.1 | −8.8 | −20.2 | −22.2 | −22.2 | −22.2 | −22.2 | −25.6 | −22.2 | −32.2 | −35.5 | -| Istanbul Jun | **−0.9** | +34.4 | +26.6 | +10.2 | +1.6 | −13.9 | −16.8 | −16.8 | −16.8 | −16.8 | −21.7 | −16.8 | −32.0 | −37.4 | -| Makkah Jun | **−0.8** | +39.5 | +34.4 | +24.3 | +19.1 | +10.2 | +8.7 | +8.7 | +8.7 | +8.7 | +6.0 | +8.7 | +0.7 | −2.0 | -| Makkah Dec | **−0.5** | +34.1 | +29.5 | +20.3 | +15.8 | +8.0 | +6.7 | +6.7 | +6.7 | +6.7 | +4.4 | +6.7 | −0.1 | −2.4 | -| Tehran Jun | **−2.5** | +38.6 | +32.1 | +18.6 | +11.6 | −0.7 | −2.9 | −2.9 | −2.9 | −2.9 | −6.6 | −2.9 | −14.3 | −18.2 | -| Cairo Jun | **−0.2** | +40.1 | +34.4 | +22.6 | +16.6 | +6.2 | +4.3 | +4.3 | +4.3 | +4.3 | +1.2 | +4.3 | −5.1 | −8.4 | -| Cairo Dec | **0.0** | +34.8 | +29.9 | +20.1 | +15.2 | +7.0 | +5.5 | +5.5 | +5.5 | +5.5 | +3.1 | +5.5 | −1.7 | −4.1 | -| Karachi Jun | **−0.1** | +40.4 | +35.1 | +24.4 | +19.0 | +9.6 | +7.9 | +7.9 | +7.9 | +7.9 | +5.1 | +7.9 | −0.5 | −3.3 | -| Dhaka Jun | **−0.3** | +39.8 | +34.6 | +24.1 | +18.8 | +9.6 | +7.9 | +7.9 | +7.9 | +7.9 | +5.2 | +7.9 | −0.3 | −3.1 | -| Jakarta Jun | **−0.3** | +29.0 | +24.7 | +15.9 | +11.6 | +4.2 | +2.9 | +2.9 | +2.9 | +2.9 | +0.7 | +2.9 | −3.7 | −5.9 | -| Singapore Dec | **−0.4** | +26.9 | +22.5 | +13.8 | +9.4 | +2.0 | +0.7 | +0.7 | +0.7 | +0.7 | −1.5 | +0.7 | −5.9 | −8.1 | -| Almaty Jun | **−3.0** | +30.8 | +22.2 | +4.0 | −5.7 | −23.7 | −27.2 | −27.2 | −27.2 | −27.2 | −33.1 | −27.2 | −45.7 | −52.6 | -| Riyadh Mar | **−0.9** | +34.8 | +30.4 | +21.5 | +17.1 | +9.5 | +8.2 | +8.2 | +8.2 | +8.2 | +6.0 | +8.2 | +1.5 | −0.7 | +| City / Date | PCD | UOIF | ISNACA | ISNA | SAMR | IGUT | MWL | DIBT | Karachi | Kuwait | UAQ | Qatar | Egypt | MUIS | +| ------------- | -------- | ----- | ------ | ----- | ----- | ----- | ----- | ----- | ------- | ------ | ----- | ----- | ----- | ----- | +| NY Jun | **−0.2** | +34.0 | +26.3 | +10.2 | +1.7 | −13.6 | −16.4 | −16.4 | −16.4 | −16.4 | −21.2 | −16.4 | −31.3 | −36.6 | +| NY Dec | **+0.1** | +30.6 | +25.0 | +13.8 | +8.3 | −1.1 | −2.7 | −2.7 | −2.7 | −2.7 | −5.5 | −2.7 | −10.9 | −13.7 | +| NY Mar | **+0.2** | +30.0 | +24.6 | +13.8 | +8.3 | −1.0 | −2.7 | −2.7 | −2.7 | −2.7 | −5.4 | −2.7 | −11.0 | −13.7 | +| Toronto Jun | **−0.8** | +29.9 | +21.1 | +2.5 | −7.6 | −26.2 | −29.8 | −29.8 | −29.8 | −29.8 | −36.0 | −29.8 | −49.3 | −56.7 | +| London Jun | **−0.4** | −2.4 | −20.3 | −87.8 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| London Dec | **+0.1** | +18.6 | +11.6 | −2.1 | −8.8 | −20.2 | −22.2 | −22.2 | −22.2 | −22.2 | −25.6 | −22.2 | −32.2 | −35.5 | +| Istanbul Jun | **−0.9** | +34.4 | +26.6 | +10.2 | +1.6 | −13.9 | −16.8 | −16.8 | −16.8 | −16.8 | −21.7 | −16.8 | −32.0 | −37.4 | +| Makkah Jun | **−0.8** | +39.5 | +34.4 | +24.3 | +19.1 | +10.2 | +8.7 | +8.7 | +8.7 | +8.7 | +6.0 | +8.7 | +0.7 | −2.0 | +| Makkah Dec | **−0.5** | +34.1 | +29.5 | +20.3 | +15.8 | +8.0 | +6.7 | +6.7 | +6.7 | +6.7 | +4.4 | +6.7 | −0.1 | −2.4 | +| Tehran Jun | **−2.5** | +38.6 | +32.1 | +18.6 | +11.6 | −0.7 | −2.9 | −2.9 | −2.9 | −2.9 | −6.6 | −2.9 | −14.3 | −18.2 | +| Cairo Jun | **−0.2** | +40.1 | +34.4 | +22.6 | +16.6 | +6.2 | +4.3 | +4.3 | +4.3 | +4.3 | +1.2 | +4.3 | −5.1 | −8.4 | +| Cairo Dec | **0.0** | +34.8 | +29.9 | +20.1 | +15.2 | +7.0 | +5.5 | +5.5 | +5.5 | +5.5 | +3.1 | +5.5 | −1.7 | −4.1 | +| Karachi Jun | **−0.1** | +40.4 | +35.1 | +24.4 | +19.0 | +9.6 | +7.9 | +7.9 | +7.9 | +7.9 | +5.1 | +7.9 | −0.5 | −3.3 | +| Dhaka Jun | **−0.3** | +39.8 | +34.6 | +24.1 | +18.8 | +9.6 | +7.9 | +7.9 | +7.9 | +7.9 | +5.2 | +7.9 | −0.3 | −3.1 | +| Jakarta Jun | **−0.3** | +29.0 | +24.7 | +15.9 | +11.6 | +4.2 | +2.9 | +2.9 | +2.9 | +2.9 | +0.7 | +2.9 | −3.7 | −5.9 | +| Singapore Dec | **−0.4** | +26.9 | +22.5 | +13.8 | +9.4 | +2.0 | +0.7 | +0.7 | +0.7 | +0.7 | −1.5 | +0.7 | −5.9 | −8.1 | +| Almaty Jun | **−3.0** | +30.8 | +22.2 | +4.0 | −5.7 | −23.7 | −27.2 | −27.2 | −27.2 | −27.2 | −33.1 | −27.2 | −45.7 | −52.6 | +| Riyadh Mar | **−0.9** | +34.8 | +30.4 | +21.5 | +17.1 | +9.5 | +8.2 | +8.2 | +8.2 | +8.2 | +6.0 | +8.2 | +1.5 | −0.7 | --- ## Per-Case Detail: Isha Errors by Method -| City / Date | PCD | UOIF | ISNACA | ISNA | SAMR | IGUT | MWL | DIBT | Karachi | Kuwait | UAQ | Qatar | Egypt | MUIS | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| NY Jun | **+0.4** | −2.8 | +4.9 | +21.1 | +21.1 | +12.9 | +38.4 | +38.4 | +47.6 | +43.0 | +11.0 | +11.0 | +43.0 | +47.6 | -| NY Dec | **−0.1** | −28.6 | −23.0 | −11.8 | −11.8 | −17.4 | −0.8 | −0.8 | +4.7 | +2.0 | −4.0 | −4.0 | +2.0 | +4.7 | -| NY Mar | **−0.9** | −18.7 | −13.3 | −2.5 | −2.5 | −7.9 | +8.5 | +8.5 | +14.0 | +11.2 | +13.0 | +13.0 | +11.2 | +14.0 | -| Toronto Jun | **+0.8** | +3.3 | +12.1 | +30.7 | +30.7 | +21.2 | +51.5 | +51.5 | +63.0 | +57.1 | +10.0 | +10.0 | +57.1 | +63.0 | -| London Jun | **+13.3** | +42.4 | +60.4 | +127.8 | +127.8 | +83.4 | N/A | N/A | N/A | N/A | +10.0 | +10.0 | N/A | N/A | -| London Dec | **−0.1** | −15.6 | −8.6 | +5.1 | +5.1 | −1.8 | +18.6 | +18.6 | +25.2 | +21.9 | −9.0 | −9.0 | +21.9 | +25.2 | -| Istanbul Jun | **+0.7** | −2.3 | +5.4 | +21.8 | +21.8 | +13.5 | +39.4 | +39.4 | +48.8 | +44.0 | +11.0 | +11.0 | +44.0 | +48.8 | -| Makkah Jun | **+0.8** | −22.5 | −17.4 | −7.2 | −7.2 | −12.4 | +3.1 | +3.1 | +8.3 | +5.7 | +13.0 | +13.0 | +5.7 | +8.3 | -| Makkah Dec | **+0.5** | −33.1 | −28.5 | −19.3 | −19.3 | −23.9 | −10.2 | −10.2 | −5.7 | −8.0 | +5.0 | +5.0 | −8.0 | −5.7 | -| Tehran Jun | **+2.3** | −11.6 | −5.0 | +8.5 | +8.5 | +1.6 | +22.6 | +22.6 | +29.9 | +26.2 | +11.0 | +11.0 | +26.2 | +29.9 | -| Cairo Jun | **+0.2** | −17.1 | −11.4 | +0.4 | +0.4 | −5.5 | +12.5 | +12.5 | +18.7 | +15.6 | +12.0 | +12.0 | +15.6 | +18.7 | -| Cairo Dec | **0.0** | −32.8 | −27.9 | −18.1 | −18.1 | −23.0 | −8.4 | −8.4 | −3.5 | −5.9 | +1.0 | +1.0 | −5.9 | −3.5 | -| Karachi Jun | **+0.1** | −21.4 | −16.1 | −5.4 | −5.4 | −10.8 | +5.5 | +5.5 | +11.1 | +8.3 | +12.0 | +12.0 | +8.3 | +11.1 | -| Dhaka Jun | **0.0** | −22.1 | −16.9 | −6.3 | −6.3 | −11.6 | +4.4 | +4.4 | +9.8 | +7.1 | +12.0 | +12.0 | +7.1 | +9.8 | -| Jakarta Jun | **+0.1** | −29.2 | −24.9 | −16.2 | −16.2 | −20.5 | −7.4 | −7.4 | −3.1 | −5.3 | +12.0 | +12.0 | −5.3 | −3.1 | -| Singapore Dec | **−0.1** | −27.4 | −23.0 | −14.3 | −14.3 | −18.7 | −5.5 | −5.5 | −1.1 | −3.3 | +14.0 | +14.0 | −3.3 | −1.1 | -| Almaty Jun | **+2.4** | +2.0 | +10.5 | +28.7 | +28.7 | +19.4 | +48.8 | +48.8 | +59.9 | +54.3 | +10.0 | +10.0 | +54.3 | +59.9 | -| Riyadh Mar | **+0.5** | −27.2 | −22.8 | −13.9 | −13.9 | −18.4 | −5.0 | −5.0 | −0.6 | −2.8 | +14.0 | +14.0 | −2.8 | −0.6 | +| City / Date | PCD | UOIF | ISNACA | ISNA | SAMR | IGUT | MWL | DIBT | Karachi | Kuwait | UAQ | Qatar | Egypt | MUIS | +| ------------- | --------- | ----- | ------ | ------ | ------ | ----- | ----- | ----- | ------- | ------ | ----- | ----- | ----- | ----- | +| NY Jun | **+0.4** | −2.8 | +4.9 | +21.1 | +21.1 | +12.9 | +38.4 | +38.4 | +47.6 | +43.0 | +11.0 | +11.0 | +43.0 | +47.6 | +| NY Dec | **−0.1** | −28.6 | −23.0 | −11.8 | −11.8 | −17.4 | −0.8 | −0.8 | +4.7 | +2.0 | −4.0 | −4.0 | +2.0 | +4.7 | +| NY Mar | **−0.9** | −18.7 | −13.3 | −2.5 | −2.5 | −7.9 | +8.5 | +8.5 | +14.0 | +11.2 | +13.0 | +13.0 | +11.2 | +14.0 | +| Toronto Jun | **+0.8** | +3.3 | +12.1 | +30.7 | +30.7 | +21.2 | +51.5 | +51.5 | +63.0 | +57.1 | +10.0 | +10.0 | +57.1 | +63.0 | +| London Jun | **+13.3** | +42.4 | +60.4 | +127.8 | +127.8 | +83.4 | N/A | N/A | N/A | N/A | +10.0 | +10.0 | N/A | N/A | +| London Dec | **−0.1** | −15.6 | −8.6 | +5.1 | +5.1 | −1.8 | +18.6 | +18.6 | +25.2 | +21.9 | −9.0 | −9.0 | +21.9 | +25.2 | +| Istanbul Jun | **+0.7** | −2.3 | +5.4 | +21.8 | +21.8 | +13.5 | +39.4 | +39.4 | +48.8 | +44.0 | +11.0 | +11.0 | +44.0 | +48.8 | +| Makkah Jun | **+0.8** | −22.5 | −17.4 | −7.2 | −7.2 | −12.4 | +3.1 | +3.1 | +8.3 | +5.7 | +13.0 | +13.0 | +5.7 | +8.3 | +| Makkah Dec | **+0.5** | −33.1 | −28.5 | −19.3 | −19.3 | −23.9 | −10.2 | −10.2 | −5.7 | −8.0 | +5.0 | +5.0 | −8.0 | −5.7 | +| Tehran Jun | **+2.3** | −11.6 | −5.0 | +8.5 | +8.5 | +1.6 | +22.6 | +22.6 | +29.9 | +26.2 | +11.0 | +11.0 | +26.2 | +29.9 | +| Cairo Jun | **+0.2** | −17.1 | −11.4 | +0.4 | +0.4 | −5.5 | +12.5 | +12.5 | +18.7 | +15.6 | +12.0 | +12.0 | +15.6 | +18.7 | +| Cairo Dec | **0.0** | −32.8 | −27.9 | −18.1 | −18.1 | −23.0 | −8.4 | −8.4 | −3.5 | −5.9 | +1.0 | +1.0 | −5.9 | −3.5 | +| Karachi Jun | **+0.1** | −21.4 | −16.1 | −5.4 | −5.4 | −10.8 | +5.5 | +5.5 | +11.1 | +8.3 | +12.0 | +12.0 | +8.3 | +11.1 | +| Dhaka Jun | **0.0** | −22.1 | −16.9 | −6.3 | −6.3 | −11.6 | +4.4 | +4.4 | +9.8 | +7.1 | +12.0 | +12.0 | +7.1 | +9.8 | +| Jakarta Jun | **+0.1** | −29.2 | −24.9 | −16.2 | −16.2 | −20.5 | −7.4 | −7.4 | −3.1 | −5.3 | +12.0 | +12.0 | −5.3 | −3.1 | +| Singapore Dec | **−0.1** | −27.4 | −23.0 | −14.3 | −14.3 | −18.7 | −5.5 | −5.5 | −1.1 | −3.3 | +14.0 | +14.0 | −3.3 | −1.1 | +| Almaty Jun | **+2.4** | +2.0 | +10.5 | +28.7 | +28.7 | +19.4 | +48.8 | +48.8 | +59.9 | +54.3 | +10.0 | +10.0 | +54.3 | +59.9 | +| Riyadh Mar | **+0.5** | −27.2 | −22.8 | −13.9 | −13.9 | −18.4 | −5.0 | −5.0 | −0.6 | −2.8 | +14.0 | +14.0 | −2.8 | −0.6 | --- @@ -121,23 +121,23 @@ Error in minutes vs MSC reference (`+` = later, `−` = earlier). `N/A` = sun do London, UK on June 21 (51.5°N) is the most extreme test case. As the sun approaches its highest declination, it never reaches deep depression angles. -| Method | Fixed Isha° | Isha result | -| --- | --- | --- | -| UOIF | 12° | 23:24 (valid) | -| ISNACA | 13° | 23:42 (valid) | -| ISNA | 15° | 24:49 (technically computed, next day) | -| SAMR | 15° | 24:49 (same as ISNA Isha) | -| IGUT | 14° | 24:05 (next day) | -| UAQ | +90 min | 22:51 (valid: not angle-based) | -| Qatar | +90 min | 22:51 (valid: not angle-based) | -| MSC | seasonal | 22:41 (valid: observation-based) | -| **PCD** | **10.00°** | **22:54 (valid: adapted)** | -| MWL | 17° | **N/A** | -| DIBT | 17° | **N/A** | -| Karachi | 18° | **N/A** | -| Kuwait | 17.5° | **N/A** | -| Egypt | 17.5° | **N/A** | -| MUIS | 18° | **N/A** | +| Method | Fixed Isha° | Isha result | +| ------- | ----------- | -------------------------------------- | +| UOIF | 12° | 23:24 (valid) | +| ISNACA | 13° | 23:42 (valid) | +| ISNA | 15° | 24:49 (technically computed, next day) | +| SAMR | 15° | 24:49 (same as ISNA Isha) | +| IGUT | 14° | 24:05 (next day) | +| UAQ | +90 min | 22:51 (valid: not angle-based) | +| Qatar | +90 min | 22:51 (valid: not angle-based) | +| MSC | seasonal | 22:41 (valid: observation-based) | +| **PCD** | **10.00°** | **22:54 (valid: adapted)** | +| MWL | 17° | **N/A** | +| DIBT | 17° | **N/A** | +| Karachi | 18° | **N/A** | +| Kuwait | 17.5° | **N/A** | +| Egypt | 17.5° | **N/A** | +| MUIS | 18° | **N/A** | Six of the 14 methods produce no Isha time at London in midsummer. PCD adapts by clamping to the 10° lower bound and produces 22:54: 13 minutes later than MSC's 22:41 (the largest single error in the study). The error is structural: at 51.5°N in June, the sky never fully darkens, and both the observation reference and any computed method are approximations of a genuinely ambiguous twilight condition. @@ -147,29 +147,29 @@ Six of the 14 methods produce no Isha time at London in midsummer. PCD adapts by How the PCD-computed depression angle varies across the test cases. -| City | Lat | Season | Fajr° | Isha° | Closest Fixed Method | -| --- | --- | --- | --- | --- | --- | -| Jakarta | 6.2°S | Jun | 18.72° | 18.72° | UAQ (18.5°) | -| Singapore | 1.4°N | Dec | 18.23° | 18.23° | MWL/DIBT (18°) | -| Makkah | 21.4°N | Jun | 19.79° | 16.56° | MUIS (20°) / Egypt | -| Makkah | 21.4°N | Dec | 19.58° | 19.36° | Egypt (19.5°) | -| Riyadh | 24.7°N | Mar | 20.04° | 18.25° | MUIS (20°) | -| Karachi | 24.9°N | Jun | 19.43° | 16.01° | Egypt (19.5°) | -| Dhaka | 23.8°N | Jun | 19.49° | 16.19° | Egypt (19.5°) | -| Cairo | 30.1°N | Jun | 18.73° | 14.97° | UAQ (18.5°) | -| Cairo | 30.1°N | Dec | 19.13° | 18.72° | Egypt (19.5°) | -| Tehran | 35.7°N | Jun | 17.95° | 14.09° | IGUT (17.7°/14°) | -| New York | 40.7°N | Dec | 17.48° | 17.12° | IGUT (17.7°) | -| New York | 40.7°N | Mar | 17.48° | 15.28° | IGUT (17.7°) | -| Istanbul | 41.0°N | Jun | 16.28° | 12.40° | SAMR (16°) | -| New York | 40.7°N | Jun | 16.21° | 12.41° | SAMR (16°) | -| Almaty | 43.2°N | Jun | 15.73° | 12.05° | SAMR (16°) | -| Toronto | 43.7°N | Jun | 15.33° | 11.71° | ISNA (15°) | -| London | 51.5°N | Dec | 14.69° | 14.24° | ISNA (15°) | -| London | 51.5°N | Jun | 11.88° | 10.00° | UOIF (12°) | +| City | Lat | Season | Fajr° | Isha° | Closest Fixed Method | +| --------- | ------ | ------ | ------ | ------ | -------------------- | +| Jakarta | 6.2°S | Jun | 18.72° | 18.72° | UAQ (18.5°) | +| Singapore | 1.4°N | Dec | 18.23° | 18.23° | MWL/DIBT (18°) | +| Makkah | 21.4°N | Jun | 19.79° | 16.56° | MUIS (20°) / Egypt | +| Makkah | 21.4°N | Dec | 19.58° | 19.36° | Egypt (19.5°) | +| Riyadh | 24.7°N | Mar | 20.04° | 18.25° | MUIS (20°) | +| Karachi | 24.9°N | Jun | 19.43° | 16.01° | Egypt (19.5°) | +| Dhaka | 23.8°N | Jun | 19.49° | 16.19° | Egypt (19.5°) | +| Cairo | 30.1°N | Jun | 18.73° | 14.97° | UAQ (18.5°) | +| Cairo | 30.1°N | Dec | 19.13° | 18.72° | Egypt (19.5°) | +| Tehran | 35.7°N | Jun | 17.95° | 14.09° | IGUT (17.7°/14°) | +| New York | 40.7°N | Dec | 17.48° | 17.12° | IGUT (17.7°) | +| New York | 40.7°N | Mar | 17.48° | 15.28° | IGUT (17.7°) | +| Istanbul | 41.0°N | Jun | 16.28° | 12.40° | SAMR (16°) | +| New York | 40.7°N | Jun | 16.21° | 12.41° | SAMR (16°) | +| Almaty | 43.2°N | Jun | 15.73° | 12.05° | SAMR (16°) | +| Toronto | 43.7°N | Jun | 15.33° | 11.71° | ISNA (15°) | +| London | 51.5°N | Dec | 14.69° | 14.24° | ISNA (15°) | +| London | 51.5°N | Jun | 11.88° | 10.00° | UOIF (12°) | The angle moves from ~20° at tropical latitudes in summer to ~12° at high-latitude summer. No fixed method tracks this gradient correctly. SAMR (16°) is closest for North American and Central Asian summers. ISNA (15°) handles Toronto and London winter. IGUT (17.7°) is closest for Tehran and mid-latitude winters. But each of these methods fails in other conditions: only PCD adapts dynamically across the full range. --- -*[Research](Research) | [Methodology](Research-Methodology) | [Home-Territory Study](Research-Home-Territory) | [Observational Evidence](Research-Observational-Evidence)* +_[Research](Research) | [Methodology](Research-Methodology) | [Home-Territory Study](Research-Home-Territory) | [Observational Evidence](Research-Observational-Evidence)_ diff --git a/.wiki/Research-Home-Territory.md b/.wiki/Research-Home-Territory.md index 703d21a..eff6cc0 100644 --- a/.wiki/Research-Home-Territory.md +++ b/.wiki/Research-Home-Territory.md @@ -14,11 +14,11 @@ The question: does PCD (Prayer Calc Dynamic) remain more accurate than a method Across 34 Fajr + 34 Isha home-territory test cases: -| | PCD (Dynamic) | Traditional (avg) | Ratio | -| --- | --- | --- | --- | -| Fajr MAE | **0.65 min** | 7.53 min | 11.6× worse | -| Isha MAE | **0.64 min** | 9.84 min | 15.4× worse | -| Combined MAE | **0.64 min** | 8.69 min | **13.5× worse** | +| | PCD (Dynamic) | Traditional (avg) | Ratio | +| ------------ | ------------- | ----------------- | --------------- | +| Fajr MAE | **0.65 min** | 7.53 min | 11.6× worse | +| Isha MAE | **0.64 min** | 9.84 min | 15.4× worse | +| Combined MAE | **0.64 min** | 8.69 min | **13.5× worse** | **PCD wins 13 of 14 methods at their own home territory.** The only exception is MSC itself, which edges PCD by 0.5 minutes: expected, since PCD uses the MSC model as its Layer 1 base. MSC is the observation reference; PCD is the computed approximation of it. @@ -28,22 +28,22 @@ Across 34 Fajr + 34 Isha home-territory test cases: Each row represents one traditional method, tested at its home city across all listed seasons. -| Method | Home City | Fixed Fajr° | PCD Avg Fajr° | Δ° (Dyn − Fixed) | PCD MAE | Method MAE | Winner | Margin | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | -| UOIF | Paris, France | 12.0° | 14.30° | +2.30° | 0.45 min | 19.91 min | ★ PCD | 19.5 min | -| ISNACA | Ottawa, Canada | 13.0° | 15.59° | +2.59° | 0.51 min | 18.41 min | ★ PCD | 17.9 min | -| ISNA | Chicago, USA | 15.0° | 16.94° | +1.94° | 0.73 min | 11.48 min | ★ PCD | 10.7 min | -| SAMR | Moscow, Russia | 16.0° | 11.57° | −4.43° | 0.65 min | 20.01 min | ★ PCD | 19.4 min | -| IGUT | Tehran, Iran | 17.7° | 18.52° | +0.82° | 1.67 min | 7.06 min | ★ PCD | 5.4 min | -| MWL | Makkah, S. Arabia | 18.0° | 19.86° | +1.86° | 0.56 min | 7.42 min | ★ PCD | 6.9 min | -| DIBT | Ankara, Turkey | 18.0° | 17.40° | −0.60° | 1.88 min | 12.68 min | ★ PCD | 10.8 min | -| Karachi | Karachi, Pakistan | 18.0° | 19.41° | +1.41° | 0.12 min | 7.55 min | ★ PCD | 7.4 min | -| Kuwait | Kuwait City | 18.0° | 19.02° | +1.02° | 0.23 min | 7.91 min | ★ PCD | 7.7 min | -| UAQ | Riyadh, S. Arabia | 18.5° | 19.73° | +1.23° | 0.98 min | 7.46 min | ★ PCD | 6.5 min | -| Qatar | Doha, Qatar | 18.0° | 19.33° | +1.33° | 0.12 min | 7.18 min | ★ PCD | 7.1 min | -| Egypt | Cairo, Egypt | 19.5° | 19.06° | −0.44° | 0.17 min | 5.01 min | ★ PCD | 4.8 min | -| MUIS | Singapore | 20.0° | 18.68° | −1.32° | 0.21 min | 4.24 min | ★ PCD | 4.0 min | -| MSC | New York, USA | seasonal | 17.14° |: | 0.55 min | 0.00 min | MSC | 0.5 min | +| Method | Home City | Fixed Fajr° | PCD Avg Fajr° | Δ° (Dyn − Fixed) | PCD MAE | Method MAE | Winner | Margin | +| ------- | ----------------- | ----------- | ------------- | ---------------- | -------- | ---------- | ------ | -------- | +| UOIF | Paris, France | 12.0° | 14.30° | +2.30° | 0.45 min | 19.91 min | ★ PCD | 19.5 min | +| ISNACA | Ottawa, Canada | 13.0° | 15.59° | +2.59° | 0.51 min | 18.41 min | ★ PCD | 17.9 min | +| ISNA | Chicago, USA | 15.0° | 16.94° | +1.94° | 0.73 min | 11.48 min | ★ PCD | 10.7 min | +| SAMR | Moscow, Russia | 16.0° | 11.57° | −4.43° | 0.65 min | 20.01 min | ★ PCD | 19.4 min | +| IGUT | Tehran, Iran | 17.7° | 18.52° | +0.82° | 1.67 min | 7.06 min | ★ PCD | 5.4 min | +| MWL | Makkah, S. Arabia | 18.0° | 19.86° | +1.86° | 0.56 min | 7.42 min | ★ PCD | 6.9 min | +| DIBT | Ankara, Turkey | 18.0° | 17.40° | −0.60° | 1.88 min | 12.68 min | ★ PCD | 10.8 min | +| Karachi | Karachi, Pakistan | 18.0° | 19.41° | +1.41° | 0.12 min | 7.55 min | ★ PCD | 7.4 min | +| Kuwait | Kuwait City | 18.0° | 19.02° | +1.02° | 0.23 min | 7.91 min | ★ PCD | 7.7 min | +| UAQ | Riyadh, S. Arabia | 18.5° | 19.73° | +1.23° | 0.98 min | 7.46 min | ★ PCD | 6.5 min | +| Qatar | Doha, Qatar | 18.0° | 19.33° | +1.33° | 0.12 min | 7.18 min | ★ PCD | 7.1 min | +| Egypt | Cairo, Egypt | 19.5° | 19.06° | −0.44° | 0.17 min | 5.01 min | ★ PCD | 4.8 min | +| MUIS | Singapore | 20.0° | 18.68° | −1.32° | 0.21 min | 4.24 min | ★ PCD | 4.0 min | +| MSC | New York, USA | seasonal | 17.14° | : | 0.55 min | 0.00 min | MSC | 0.5 min | "Δ° (Dyn − Fixed)" = PCD computed angle minus the method's fixed angle, averaged across the tested seasons for that city. A positive value means the method's fixed angle is too low for its own home city; negative means it is too high. @@ -53,154 +53,154 @@ Each row represents one traditional method, tested at its home city across all l ### UOIF: Paris, France (12°/12°) -*Lowest angles of any major method. Designed for France's large Muslim minority seeking the least restrictive valid times.* +_Lowest angles of any major method. Designed for France's large Muslim minority seeking the least restrictive valid times._ -| Season | PCD Fajr° | MSC Fajr | PCD Fajr err | UOIF Fajr err | PCD Isha err | UOIF Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 13.14° | 03:50 | **−0.6 min** | +13.7 min | **+1.0 min** | +23.4 min | ★ PCD by 17.7 min | -| Dec 21 | 15.46° | 08:01 | **−0.1 min** | +22.3 min | **+0.1 min** | −20.3 min | ★ PCD by 21.2 min | +| Season | PCD Fajr° | MSC Fajr | PCD Fajr err | UOIF Fajr err | PCD Isha err | UOIF Isha err | Winner | +| ------ | --------- | -------- | ------------ | ------------- | ------------ | ------------- | ----------------- | +| Jun 21 | 13.14° | 03:50 | **−0.6 min** | +13.7 min | **+1.0 min** | +23.4 min | ★ PCD by 17.7 min | +| Dec 21 | 15.46° | 08:01 | **−0.1 min** | +22.3 min | **+0.1 min** | −20.3 min | ★ PCD by 21.2 min | **Note:** At Paris in summer (48.9°N, June), UOIF's 12° Fajr gives a time 13.7 minutes later than MSC. The PCD angle (13.14°) is slightly higher than UOIF's 12°, correctly recognizing that even at Paris in summer, physical twilight starts slightly earlier than UOIF assumes. ### ISNACA: Ottawa, Canada (13°/13°) -*Symmetric 13° angles for Canada. Used by the Islamic Council of North America.* +_Symmetric 13° angles for Canada. Used by the Islamic Council of North America._ -| Season | PCD Fajr° | MSC Fajr | PCD Fajr err | ISNACA Fajr err | PCD Isha err | ISNACA Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 14.61° | 03:20 | **−0.8 min** | +15.8 min | **+0.9 min** | +18.4 min | ★ PCD by 16.3 min | -| Dec 21 | 16.56° | 07:00 | **−0.2 min** | +21.2 min | **+0.2 min** | −18.2 min | ★ PCD by 19.5 min | +| Season | PCD Fajr° | MSC Fajr | PCD Fajr err | ISNACA Fajr err | PCD Isha err | ISNACA Isha err | Winner | +| ------ | --------- | -------- | ------------ | --------------- | ------------ | --------------- | ----------------- | +| Jun 21 | 14.61° | 03:20 | **−0.8 min** | +15.8 min | **+0.9 min** | +18.4 min | ★ PCD by 16.3 min | +| Dec 21 | 16.56° | 07:00 | **−0.2 min** | +21.2 min | **+0.2 min** | −18.2 min | ★ PCD by 19.5 min | **Note:** ISNACA's 13° angles are too low by 1.6–3.6° across Ottawa's seasons. In summer, ISNACA Fajr is 15.8 minutes late vs MSC; in winter, 21.2 minutes late. ISNACA consistently underestimates the twilight angle even in its intended region. ### ISNA: Chicago, USA (15°/15°) -*Revised from 18° to 15° in 2007 after observational review by the Fiqh Council of North America. The 15° standard was justified partly by the finding that 18° produces astronomically unreachable angles in summer at North American latitudes.* +_Revised from 18° to 15° in 2007 after observational review by the Fiqh Council of North America. The 15° standard was justified partly by the finding that 18° produces astronomically unreachable angles in summer at North American latitudes._ -| Season | PCD Fajr° | MSC Fajr | PCD Fajr err | ISNA Fajr err | PCD Isha err | ISNA Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 15.94° | 03:24 | **−1.1 min** | +7.3 min | **+1.2 min** | +24.9 min | ★ PCD by 15.0 min | -| Dec 21 | 17.42° | 06:38 | **−0.5 min** | +13.1 min | **+0.5 min** | −10.1 min | ★ PCD by 11.2 min | -| Mar 21 | 17.46° | 05:21 | **−0.4 min** | +13.3 min | **+0.7 min** | +0.1 min | ★ PCD by 6.1 min | +| Season | PCD Fajr° | MSC Fajr | PCD Fajr err | ISNA Fajr err | PCD Isha err | ISNA Isha err | Winner | +| ------ | --------- | -------- | ------------ | ------------- | ------------ | ------------- | ----------------- | +| Jun 21 | 15.94° | 03:24 | **−1.1 min** | +7.3 min | **+1.2 min** | +24.9 min | ★ PCD by 15.0 min | +| Dec 21 | 17.42° | 06:38 | **−0.5 min** | +13.1 min | **+0.5 min** | −10.1 min | ★ PCD by 11.2 min | +| Mar 21 | 17.46° | 05:21 | **−0.4 min** | +13.3 min | **+0.7 min** | +0.1 min | ★ PCD by 6.1 min | **Note:** Even ISNA's revised 15° is too low for Chicago in summer: the PCD angle of 15.94° reflects that Chicago in June needs slightly more than 15°. ISNA's 15° remains more accurate than the old 18°, but PCD is still 10.7 minutes better on average. ### SAMR: Moscow, Russia (16°/15°) -*The most dramatically failing method at its home city. Moscow in summer (55.8°N) has such short nights that the sun never reaches 16° depression: both Fajr and Isha return NaN.* +_The most dramatically failing method at its home city. Moscow in summer (55.8°N) has such short nights that the sun never reaches 16° depression: both Fajr and Isha return NaN._ -| Season | PCD Fajr° | SAMR result | PCD Fajr err | SAMR Fajr err | Winner | -| --- | --- | --- | --- | --- | --- | -| Jun 21 | 10.00° | **N/A (NaN)** | −17.0 min | N/A | ★ PCD by 961 min avg | -| Dec 21 | 13.15° | 06:51 | **−0.7 min** | −22.3 min | ★ PCD by 19.4 min | +| Season | PCD Fajr° | SAMR result | PCD Fajr err | SAMR Fajr err | Winner | +| ------ | --------- | ------------- | ------------ | ------------- | -------------------- | +| Jun 21 | 10.00° | **N/A (NaN)** | −17.0 min | N/A | ★ PCD by 961 min avg | +| Dec 21 | 13.15° | 06:51 | **−0.7 min** | −22.3 min | ★ PCD by 19.4 min | **Note:** SAMR silently fails for its own primary city in summer. PCD's 10° clamped result is off by 17 minutes in Fajr, but this is far better than no result at all. In winter Moscow, PCD is within 0.7 minutes while SAMR is 22.3 minutes off (its 16°/15° angles, calibrated for the region's winter worship pattern, are too high for winter morning and too low to compute in summer). ### IGUT: Tehran, Iran (17.7°/14°) -*The closest fixed-angle match at its own home territory. IGUT's 17.7° Fajr is within 0.82° of PCD's average Tehran output (18.52°).* +_The closest fixed-angle match at its own home territory. IGUT's 17.7° Fajr is within 0.82° of PCD's average Tehran output (18.52°)._ -| Season | PCD Fajr° | PCD Fajr err | IGUT Fajr err | PCD Isha err | IGUT Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 17.95° | −2.5 min | **−0.7 min** | +2.3 min | **+1.6 min** | IGUT by 1.2 min | -| Dec 21 | 18.78° | **−1.5 min** | +4.0 min | **+1.5 min** | −20.2 min | ★ PCD by 10.6 min | -| Mar 21 (Nowruz) | 18.84° | **−1.5 min** | +4.3 min | **+0.9 min** | −11.5 min | ★ PCD by 6.8 min | +| Season | PCD Fajr° | PCD Fajr err | IGUT Fajr err | PCD Isha err | IGUT Isha err | Winner | +| --------------- | --------- | ------------ | ------------- | ------------ | ------------- | ----------------- | +| Jun 21 | 17.95° | −2.5 min | **−0.7 min** | +2.3 min | **+1.6 min** | IGUT by 1.2 min | +| Dec 21 | 18.78° | **−1.5 min** | +4.0 min | **+1.5 min** | −20.2 min | ★ PCD by 10.6 min | +| Mar 21 (Nowruz) | 18.84° | **−1.5 min** | +4.3 min | **+0.9 min** | −11.5 min | ★ PCD by 6.8 min | **Note:** IGUT wins in summer by 1.2 minutes: the only case where a fixed-angle method beats PCD at its home territory. This is because Tehran in summer happens to closely match IGUT's calibrated 17.7° Fajr angle. IGUT's 14° Isha (shafaq ahmer) is also close to PCD's summer Isha computation. However, this advantage disappears in winter and at Nowruz, where PCD is consistently better. ### MWL: Makkah, Saudi Arabia (18°/17°) -*The Muslim World League is headquartered in Makkah. 18° was historically derived from observations at equatorial and sub-tropical locations.* +_The Muslim World League is headquartered in Makkah. 18° was historically derived from observations at equatorial and sub-tropical locations._ -| Season | PCD Fajr° | PCD Fajr err | MWL Fajr err | PCD Isha err | MWL Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 19.79° | **−0.8 min** | +8.7 min | **+0.8 min** | +3.1 min | ★ PCD by 5.1 min | -| Dec 21 | 19.58° | **−0.5 min** | +6.7 min | **+0.5 min** | −10.2 min | ★ PCD by 8.0 min | -| Mar 21 | 20.22° | **−0.5 min** | +9.1 min | **+0.2 min** | −6.7 min | ★ PCD by 7.5 min | +| Season | PCD Fajr° | PCD Fajr err | MWL Fajr err | PCD Isha err | MWL Isha err | Winner | +| ------ | --------- | ------------ | ------------ | ------------ | ------------ | ---------------- | +| Jun 21 | 19.79° | **−0.8 min** | +8.7 min | **+0.8 min** | +3.1 min | ★ PCD by 5.1 min | +| Dec 21 | 19.58° | **−0.5 min** | +6.7 min | **+0.5 min** | −10.2 min | ★ PCD by 8.0 min | +| Mar 21 | 20.22° | **−0.5 min** | +9.1 min | **+0.2 min** | −6.7 min | ★ PCD by 7.5 min | **Note:** At Makkah, PCD consistently computes ~19.6–20.2°: higher than MWL's fixed 18°. The physics bear this out: Makkah at 21.4°N is tropical rather than equatorial, and the equatorial-calibrated 18° underestimates the actual twilight angle. PCD converges closer to the empirical MSC reference. ### DIBT: Ankara, Turkey (18°/17°) -*Same angles as MWL. Diyanet (Turkish Directorate of Religious Affairs) uses this standard nationally.* +_Same angles as MWL. Diyanet (Turkish Directorate of Religious Affairs) uses this standard nationally._ -| Season | PCD Fajr° | PCD Fajr err | DIBT Fajr err | PCD Isha err | DIBT Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 16.81° | **−2.5 min** | −13.1 min | **+2.2 min** | +35.2 min | ★ PCD by 21.8 min | -| Dec 21 | 17.98° | **−1.4 min** | −1.5 min | **+1.4 min** | −1.0 min | DIBT by 0.2 min | +| Season | PCD Fajr° | PCD Fajr err | DIBT Fajr err | PCD Isha err | DIBT Isha err | Winner | +| ------ | --------- | ------------ | ------------- | ------------ | ------------- | ----------------- | +| Jun 21 | 16.81° | **−2.5 min** | −13.1 min | **+2.2 min** | +35.2 min | ★ PCD by 21.8 min | +| Dec 21 | 17.98° | **−1.4 min** | −1.5 min | **+1.4 min** | −1.0 min | DIBT by 0.2 min | **Note:** In Ankara summer, DIBT's fixed 18° is too high: the sun never reaches it cleanly, producing a very early Fajr that is 13.1 minutes earlier than MSC's observation reference. PCD at 16.81° is 2.5 minutes early (still closer). In winter, DIBT and PCD are almost identical. The difference is clear: DIBT was calibrated for winter/moderate conditions; PCD adapts to both. ### Karachi: Karachi, Pakistan (18°/18°) -*Symmetric 18° angles, standard across Pakistan, Bangladesh, India, and Afghanistan.* +_Symmetric 18° angles, standard across Pakistan, Bangladesh, India, and Afghanistan._ -| Season | PCD Fajr° | PCD Fajr err | Karachi Fajr err | PCD Isha err | Karachi Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 19.43° | **−0.1 min** | +7.9 min | **+0.1 min** | +11.1 min | ★ PCD by 9.4 min | -| Dec 21 | 19.39° | **+0.1 min** | +6.6 min | **−0.1 min** | −4.6 min | ★ PCD by 5.5 min | +| Season | PCD Fajr° | PCD Fajr err | Karachi Fajr err | PCD Isha err | Karachi Isha err | Winner | +| ------ | --------- | ------------ | ---------------- | ------------ | ---------------- | ---------------- | +| Jun 21 | 19.43° | **−0.1 min** | +7.9 min | **+0.1 min** | +11.1 min | ★ PCD by 9.4 min | +| Dec 21 | 19.39° | **+0.1 min** | +6.6 min | **−0.1 min** | −4.6 min | ★ PCD by 5.5 min | **Note:** Karachi at 24.9°N sits in the subtropical band where PCD computes ~19.4°: higher than the fixed 18°. The Karachi method (established for a city at approximately this latitude) is 7–8 minutes off Fajr even at home. PCD tracks MSC within 0.1 minutes. ### Kuwait: Kuwait City (18°/17.5°) -| Season | PCD Fajr° | PCD Fajr err | Kuwait Fajr err | PCD Isha err | Kuwait Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 18.95° | **−0.4 min** | +5.5 min | **+0.4 min** | +14.4 min | ★ PCD by 9.6 min | -| Dec 21 | 19.09° | **−0.1 min** | +5.1 min | **+0.1 min** | −6.5 min | ★ PCD by 5.8 min | +| Season | PCD Fajr° | PCD Fajr err | Kuwait Fajr err | PCD Isha err | Kuwait Isha err | Winner | +| ------ | --------- | ------------ | --------------- | ------------ | --------------- | ---------------- | +| Jun 21 | 18.95° | **−0.4 min** | +5.5 min | **+0.4 min** | +14.4 min | ★ PCD by 9.6 min | +| Dec 21 | 19.09° | **−0.1 min** | +5.1 min | **+0.1 min** | −6.5 min | ★ PCD by 5.8 min | ### UAQ: Riyadh, Saudi Arabia (18.5°/+90 min) -*The official Saudi government calendar used for all religious timing in the Kingdom. 18.5° Fajr is slightly higher than MWL's 18° to account for Saudi geographic and atmospheric conditions.* +_The official Saudi government calendar used for all religious timing in the Kingdom. 18.5° Fajr is slightly higher than MWL's 18° to account for Saudi geographic and atmospheric conditions._ -| Season | PCD Fajr° | PCD Fajr err | UAQ Fajr err | PCD Isha err | UAQ Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 19.51° | **−1.3 min** | +4.4 min | **+1.3 min** | +12.0 min | ★ PCD by 6.9 min | -| Dec 21 | 19.64° | **−0.9 min** | +4.4 min | **+0.9 min** | +4.0 min | ★ PCD by 3.3 min | -| Mar 21 | 20.04° | **−0.9 min** | +6.0 min | **+0.5 min** | +14.0 min | ★ PCD by 9.3 min | +| Season | PCD Fajr° | PCD Fajr err | UAQ Fajr err | PCD Isha err | UAQ Isha err | Winner | +| ------ | --------- | ------------ | ------------ | ------------ | ------------ | ---------------- | +| Jun 21 | 19.51° | **−1.3 min** | +4.4 min | **+1.3 min** | +12.0 min | ★ PCD by 6.9 min | +| Dec 21 | 19.64° | **−0.9 min** | +4.4 min | **+0.9 min** | +4.0 min | ★ PCD by 3.3 min | +| Mar 21 | 20.04° | **−0.9 min** | +6.0 min | **+0.5 min** | +14.0 min | ★ PCD by 9.3 min | **Note:** UAQ's +90 min flat offset for Isha produces a systematic +10–14 minute Isha error at Riyadh. The UAQ Isha definition (Maghrib + 90 min) is a civil convenience rule rather than an astronomical one. The actual shafaq abyad end at Riyadh is 76–86 minutes after sunset depending on season. ### Qatar: Doha, Qatar (18°/+90 min) -| Season | PCD Fajr° | PCD Fajr err | Qatar Fajr err | PCD Isha err | Qatar Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 19.33° | **−0.1 min** | +7.4 min | **+0.1 min** | +12.0 min | ★ PCD by 9.6 min | -| Dec 21 | 19.33° | **+0.1 min** | +6.3 min | **−0.1 min** | +3.0 min | ★ PCD by 4.5 min | +| Season | PCD Fajr° | PCD Fajr err | Qatar Fajr err | PCD Isha err | Qatar Isha err | Winner | +| ------ | --------- | ------------ | -------------- | ------------ | -------------- | ---------------- | +| Jun 21 | 19.33° | **−0.1 min** | +7.4 min | **+0.1 min** | +12.0 min | ★ PCD by 9.6 min | +| Dec 21 | 19.33° | **+0.1 min** | +6.3 min | **−0.1 min** | +3.0 min | ★ PCD by 4.5 min | ### Egypt: Cairo, Egypt (19.5°/17.5°) -*Egypt has the highest Fajr angle (19.5°) of any major method. It was established by the Egyptian General Authority of Survey and applies across Egypt, Syria, Iraq, and Lebanon.* +_Egypt has the highest Fajr angle (19.5°) of any major method. It was established by the Egyptian General Authority of Survey and applies across Egypt, Syria, Iraq, and Lebanon._ -| Season | PCD Fajr° | PCD Fajr err | Egypt Fajr err | PCD Isha err | Egypt Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 18.73° | **−0.2 min** | −5.1 min | **+0.2 min** | +15.6 min | ★ PCD by 10.1 min | -| Dec 21 | 19.13° | **0.0 min** | −1.7 min | **0.0 min** | −5.9 min | ★ PCD by 3.8 min | -| Mar 21 | 19.33° | **0.0 min** | −0.8 min | **−0.5 min** | +0.9 min | ★ PCD by 0.6 min | +| Season | PCD Fajr° | PCD Fajr err | Egypt Fajr err | PCD Isha err | Egypt Isha err | Winner | +| ------ | --------- | ------------ | -------------- | ------------ | -------------- | ----------------- | +| Jun 21 | 18.73° | **−0.2 min** | −5.1 min | **+0.2 min** | +15.6 min | ★ PCD by 10.1 min | +| Dec 21 | 19.13° | **0.0 min** | −1.7 min | **0.0 min** | −5.9 min | ★ PCD by 3.8 min | +| Mar 21 | 19.33° | **0.0 min** | −0.8 min | **−0.5 min** | +0.9 min | ★ PCD by 0.6 min | **Note:** Egypt's 19.5° Fajr is higher than PCD's computed angle for Cairo (18.73–19.33°). The fixed angle makes Fajr slightly earlier than MSC predicts. The closest result is at equinox (−0.8 min vs 0.0 min), where PCD is only 0.6 minutes better: Egypt's best case. ### MUIS: Singapore (20°/18°) -*The highest Fajr angle of any major method. MUIS was designed for Singapore's near-equatorial location (1.35°N). However, PCD computes 18.2–19.6° at Singapore: consistently lower than 20°.* +_The highest Fajr angle of any major method. MUIS was designed for Singapore's near-equatorial location (1.35°N). However, PCD computes 18.2–19.6° at Singapore: consistently lower than 20°._ -| Season | PCD Fajr° | PCD Fajr err | MUIS Fajr err | PCD Isha err | MUIS Isha err | Winner | -| --- | --- | --- | --- | --- | --- | --- | -| Jun 21 | 18.21° | **−0.3 min** | −8.3 min | **+0.1 min** | +0.2 min | ★ PCD by 4.0 min | -| Dec 21 | 18.23° | **−0.4 min** | −8.1 min | **−0.1 min** | −1.1 min | ★ PCD by 4.4 min | -| Mar 21 | 19.59° | **+0.2 min** | −1.4 min | **+0.1 min** | −6.3 min | ★ PCD by 3.7 min | +| Season | PCD Fajr° | PCD Fajr err | MUIS Fajr err | PCD Isha err | MUIS Isha err | Winner | +| ------ | --------- | ------------ | ------------- | ------------ | ------------- | ---------------- | +| Jun 21 | 18.21° | **−0.3 min** | −8.3 min | **+0.1 min** | +0.2 min | ★ PCD by 4.0 min | +| Dec 21 | 18.23° | **−0.4 min** | −8.1 min | **−0.1 min** | −1.1 min | ★ PCD by 4.4 min | +| Mar 21 | 19.59° | **+0.2 min** | −1.4 min | **+0.1 min** | −6.3 min | ★ PCD by 3.7 min | **Note:** At the equatorial city it was designed for, MUIS's 20° Fajr makes Fajr 8 minutes earlier than MSC in summer and winter. The MSC model, calibrated from actual observations, places Singapore Fajr at approximately 76 minutes before sunrise: shorter than what 20° would produce. PCD's 18.2–18.4° is the more accurate description of actual equatorial twilight. ### MSC: New York, USA (seasonal/seasonal) -*This comparison tests PCD against the MSC seasonal model at MSC's own home (the latitude for which Khalid Shaukat published and validated his tables most extensively).* +_This comparison tests PCD against the MSC seasonal model at MSC's own home (the latitude for which Khalid Shaukat published and validated his tables most extensively)._ -| Season | PCD Fajr err | MSC err | PCD Isha err | MSC Isha err | Winner | -| --- | --- | --- | --- | --- | --- | -| Jun 21 | −0.2 min | 0.0 min | +0.4 min | 0.0 min | MSC by 0.3 min | -| Dec 21 | +0.1 min | 0.0 min | −0.1 min | 0.0 min | MSC by 0.1 min | -| Sep 21 | −0.9 min | 0.0 min | +1.6 min | 0.0 min | MSC by 1.3 min | +| Season | PCD Fajr err | MSC err | PCD Isha err | MSC Isha err | Winner | +| ------ | ------------ | ------- | ------------ | ------------ | -------------- | +| Jun 21 | −0.2 min | 0.0 min | +0.4 min | 0.0 min | MSC by 0.3 min | +| Dec 21 | +0.1 min | 0.0 min | −0.1 min | 0.0 min | MSC by 0.1 min | +| Sep 21 | −0.9 min | 0.0 min | +1.6 min | 0.0 min | MSC by 1.3 min | **Note:** MSC wins by a fraction of a minute at its own home. This is expected and appropriate: PCD uses MSC as its base, and the physics corrections introduce small deviations at the reference latitude. The question is whether those physics corrections help elsewhere (they do: PCD is more accurate at Tehran, high-elevation cities, and polar-season locations). @@ -210,21 +210,21 @@ Each row represents one traditional method, tested at its home city across all l The "Δ°" column in the scorecard shows the gap between a method's fixed angle and what PCD (and by proxy MSC) indicates is physically appropriate at that city. -| Method | Fixed° | Actual° (PCD avg) | Δ° | Calibration quality | -| --- | --- | --- | --- | --- | -| IGUT | 17.7° | 18.52° | +0.82° | Excellent: closest fixed calibration | -| Egypt | 19.5° | 19.06° | −0.44° | Good: slightly high | -| DIBT | 18.0° | 17.40° | −0.60° | Good: slightly high for Ankara | -| MUIS | 20.0° | 18.68° | −1.32° | Fair: overcorrected high | -| Karachi | 18.0° | 19.41° | +1.41° | Fair: too low for subtropical Karachi | -| MWL | 18.0° | 19.86° | +1.86° | Fair: 18° too low for equatorial-adjacent latitudes | -| ISNA | 15.0° | 16.94° | +1.94° | Moderate: revised from 18° but still too low | -| UAQ | 18.5° | 19.73° | +1.23° | Fair: better than MWL but still low | -| Kuwait | 18.0° | 19.02° | +1.02° | Fair: similar to MWL | -| Qatar | 18.0° | 19.33° | +1.33° | Fair | -| UOIF | 12.0° | 14.30° | +2.30° | Weak: 2.3° too low even for Paris | -| ISNACA | 13.0° | 15.59° | +2.59° | Weak: too low for Canadian latitudes | -| SAMR | 16.0° | 11.57° | −4.43° | Very poor: too high to function in Moscow summer | +| Method | Fixed° | Actual° (PCD avg) | Δ° | Calibration quality | +| ------- | ------ | ----------------- | ------ | --------------------------------------------------- | +| IGUT | 17.7° | 18.52° | +0.82° | Excellent: closest fixed calibration | +| Egypt | 19.5° | 19.06° | −0.44° | Good: slightly high | +| DIBT | 18.0° | 17.40° | −0.60° | Good: slightly high for Ankara | +| MUIS | 20.0° | 18.68° | −1.32° | Fair: overcorrected high | +| Karachi | 18.0° | 19.41° | +1.41° | Fair: too low for subtropical Karachi | +| MWL | 18.0° | 19.86° | +1.86° | Fair: 18° too low for equatorial-adjacent latitudes | +| ISNA | 15.0° | 16.94° | +1.94° | Moderate: revised from 18° but still too low | +| UAQ | 18.5° | 19.73° | +1.23° | Fair: better than MWL but still low | +| Kuwait | 18.0° | 19.02° | +1.02° | Fair: similar to MWL | +| Qatar | 18.0° | 19.33° | +1.33° | Fair | +| UOIF | 12.0° | 14.30° | +2.30° | Weak: 2.3° too low even for Paris | +| ISNACA | 13.0° | 15.59° | +2.59° | Weak: too low for Canadian latitudes | +| SAMR | 16.0° | 11.57° | −4.43° | Very poor: too high to function in Moscow summer | **IGUT is the best-calibrated fixed-angle method**: its 17.7° Fajr angle was clearly derived from observation at Tehran's latitude and elevation. The 0.82° deviation from PCD is within the margin of seasonal variation, and IGUT beats PCD in summer at Tehran by 1.2 minutes. @@ -232,4 +232,4 @@ The "Δ°" column in the scorecard shows the gap between a method's fixed angle --- -*[Research](Research) | [Methodology](Research-Methodology) | [Global Study](Research-Global-Study) | [Observational Evidence](Research-Observational-Evidence)* +_[Research](Research) | [Methodology](Research-Methodology) | [Global Study](Research-Global-Study) | [Observational Evidence](Research-Observational-Evidence)_ diff --git a/.wiki/Research-Methodology.md b/.wiki/Research-Methodology.md index 1b6dfd0..31fd1c7 100644 --- a/.wiki/Research-Methodology.md +++ b/.wiki/Research-Methodology.md @@ -42,6 +42,7 @@ node home-territory.mjs ``` Computations use: + - `getTimesAll()` for raw fractional-hour times across all 14 methods + dynamic simultaneously - `getAngles()` for the PCD-computed depression angles - `getMscFajr(date, lat)` / `getMscIsha(date, lat, 'general')` for the MSC minute reference @@ -74,14 +75,14 @@ Tests across diverse latitudes, longitudes, elevations, and seasons. See [Global **Coverage:** -| Region | Cities | Latitude range | -| --- | --- | --- | -| North America | New York (×3), Toronto | 40.7°N – 43.7°N | -| Europe | London (×2), Istanbul | 41.0°N – 51.5°N | -| Middle East | Makkah (×2), Tehran, Kuwait City, Riyadh | 21.4°N – 35.7°N | -| Africa | Cairo (×2) | 30.1°N | -| South/Southeast Asia | Karachi, Dhaka, Jakarta, Singapore | 6.2°S – 24.9°N | -| Central Asia | Almaty | 43.2°N | +| Region | Cities | Latitude range | +| -------------------- | ---------------------------------------- | --------------- | +| North America | New York (×3), Toronto | 40.7°N – 43.7°N | +| Europe | London (×2), Istanbul | 41.0°N – 51.5°N | +| Middle East | Makkah (×2), Tehran, Kuwait City, Riyadh | 21.4°N – 35.7°N | +| Africa | Cairo (×2) | 30.1°N | +| South/Southeast Asia | Karachi, Dhaka, Jakarta, Singapore | 6.2°S – 24.9°N | +| Central Asia | Almaty | 43.2°N | **Seasons covered:** Summer solstice, winter solstice, spring/autumn equinoxes. @@ -107,4 +108,4 @@ Each method tested at the specific city and seasons for which it was designed. T --- -*[Research](Research) | [Global Study](Research-Global-Study) | [Home-Territory Study](Research-Home-Territory) | [Observational Evidence](Research-Observational-Evidence)* +_[Research](Research) | [Global Study](Research-Global-Study) | [Home-Territory Study](Research-Home-Territory) | [Observational Evidence](Research-Observational-Evidence)_ diff --git a/.wiki/Research-Observational-Evidence.md b/.wiki/Research-Observational-Evidence.md index 57b5016..4bdeea2 100644 --- a/.wiki/Research-Observational-Evidence.md +++ b/.wiki/Research-Observational-Evidence.md @@ -24,17 +24,17 @@ Khalid Shaukat conducted and compiled field observations of Fajr and Isha across Selected reference values from Shaukat's seasonal tables: -| Latitude band | Month | Fajr (min before sunrise) | Isha (min after sunset) | -| --- | --- | --- | --- | -| 0–10°N | All months | ~108 | ~108 | -| 20–25°N | Jun | ~88–93 | ~82–87 | -| 20–25°N | Dec | ~100–104 | ~94–98 | -| 30–35°N | Jun | ~83–89 | ~78–82 | -| 30–35°N | Dec | ~91–95 | ~89–93 | -| 40–45°N | Jun | ~73–84 | ~67–80 | -| 40–45°N | Dec | ~87–96 | ~80–94 | -| 50–55°N | Jun | ~68–79 | ~63–81 | -| 50–55°N | Dec | ~102–110 | ~99–107 | +| Latitude band | Month | Fajr (min before sunrise) | Isha (min after sunset) | +| ------------- | ---------- | ------------------------- | ----------------------- | +| 0–10°N | All months | ~108 | ~108 | +| 20–25°N | Jun | ~88–93 | ~82–87 | +| 20–25°N | Dec | ~100–104 | ~94–98 | +| 30–35°N | Jun | ~83–89 | ~78–82 | +| 30–35°N | Dec | ~91–95 | ~89–93 | +| 40–45°N | Jun | ~73–84 | ~67–80 | +| 40–45°N | Dec | ~87–96 | ~80–94 | +| 50–55°N | Jun | ~68–79 | ~63–81 | +| 50–55°N | Dec | ~102–110 | ~99–107 | Key conclusions from Shaukat's work: @@ -102,6 +102,7 @@ The HMNAO publishes detailed astronomical twilight tables for UK cities. For Lon - This means no fixed-angle method above 11.8° can compute an Isha time for London in June. UK Islamic scholars and the Muslim Council of Britain have noted that: + - True Fajr at London in summer corresponds to approximately **12–13°** solar depression. - Methods using 18° (MWL) or higher are unusable for London in summer: they produce times before midnight or N/A. - The MSC model (which PCD implements) yields 120 minutes before sunrise at London in June, corresponding to approximately 12°: matching these observations. @@ -124,16 +125,16 @@ The 17.7° Fajr angle for Tehran (35.7°N, 1191m elevation) was derived from obs Compiled from the published studies cited on this page and the automated comparison study. See [Verified Observations](Research-Verified-Observations) for the full comparison matrix including computed errors for all methods. -| Latitude band | Season | Observed Fajr° | PCD output | Fixed 18° (MWL) | Fixed 15° (ISNA) | -| --- | --- | --- | --- | --- | --- | -| 0–6°S (Jakarta) | Jun | 13–19°† | **18.72°** | 18° ≈ | 15° ✗ | -| 1–2°N (Singapore) | Dec | ~18° | **18.23°** | 18° ✓ | 15° ✗ | -| 21–30°N (Egypt, Arabia) | Annual | ~13–15°‡ | **19.4–19.8°** | 18° ✗✗ | 15° ≈ | -| 30–35°N (Cairo/Tehran) | Annual | ~14–17°‡ | **17.95–18.77°** | 18° ✗ | 15° ✗ | -| 36–40°N (Istanbul/NY) | Jun | 14–16° | **16.21–16.28°** | 18° ✗ (too early) | 15° ~ | -| 40–45°N (Toronto/Ottawa) | Jun | 13–15° | **14.61–15.31°** | 18° ✗✗ | 15° ≈ | -| 48–52°N (Paris/London) | Jun | 11–13° | **11.88–13.14°** | N/A | N/A | -| 55°N (Moscow) | Jun | ~10–11° | **10.00°** | N/A | N/A | +| Latitude band | Season | Observed Fajr° | PCD output | Fixed 18° (MWL) | Fixed 15° (ISNA) | +| ------------------------ | ------ | -------------- | ---------------- | ----------------- | ---------------- | +| 0–6°S (Jakarta) | Jun | 13–19°† | **18.72°** | 18° ≈ | 15° ✗ | +| 1–2°N (Singapore) | Dec | ~18° | **18.23°** | 18° ✓ | 15° ✗ | +| 21–30°N (Egypt, Arabia) | Annual | ~13–15°‡ | **19.4–19.8°** | 18° ✗✗ | 15° ≈ | +| 30–35°N (Cairo/Tehran) | Annual | ~14–17°‡ | **17.95–18.77°** | 18° ✗ | 15° ✗ | +| 36–40°N (Istanbul/NY) | Jun | 14–16° | **16.21–16.28°** | 18° ✗ (too early) | 15° ~ | +| 40–45°N (Toronto/Ottawa) | Jun | 13–15° | **14.61–15.31°** | 18° ✗✗ | 15° ≈ | +| 48–52°N (Paris/London) | Jun | 11–13° | **11.88–13.14°** | N/A | N/A | +| 55°N (Moscow) | Jun | ~10–11° | **10.00°** | N/A | N/A | Legend: ✓ = within 0.5° of observed, ≈ = within 1°, ✗ = 1–3° off, ✗✗ = >3° off or N/A @@ -198,4 +199,4 @@ The full validation scripts are in the repository under `scripts/validate-real-w --- -*[Research](Research) | [Methodology](Research-Methodology) | [Global Study](Research-Global-Study) | [Home-Territory Study](Research-Home-Territory)* +_[Research](Research) | [Methodology](Research-Methodology) | [Global Study](Research-Global-Study) | [Home-Territory Study](Research-Home-Territory)_ diff --git a/.wiki/Research-Verified-Observations.md b/.wiki/Research-Verified-Observations.md index 009eb3f..b586018 100644 --- a/.wiki/Research-Verified-Observations.md +++ b/.wiki/Research-Verified-Observations.md @@ -22,26 +22,26 @@ Both study types test the same question: does the calculated Fajr time match whe ### Angle-Based Field Studies -| ID | Location | Latitude | Elevation | Period | N | Instrument | Observed° | Source | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | -| TUB-S | Tubruq, Libya: sea horizon | 32.1°N | 25 m | 2000–2003 | 429 | Naked eye | **13.48°** | Odeh 2004 | -| TUB-D | Tubruq, Libya: desert horizon | 32.1°N | 25 m | 2000–2003 | 623 | Naked eye | **13.14°** | Odeh 2004 | -| EGY | Egypt multi-site (4 cities) | 24–31°N | 10–95 m | 1984–1987 |: | Photometric + naked eye | **14.7°** mean | ENRIA 1987 | -| HAI | Hail, Saudi Arabia | 27.5°N | 990 m | 2014–2015 | 365 | Naked eye | **14.01° ± 0.32°** | Al-Shehri 2017 | -| FAY | Fayum, Egypt | 29.3°N | 29 m | 2018–2019 |: | Photometric | **14.4°** [14–14.8°] | AAAS 2019 | -| BLK-S | Blackburn, UK: summer | 53.8°N | 75 m | 1987–1988 |: | Naked eye | **12°** | Duff & Duff 1989 | -| BLK-W | Blackburn, UK: winter | 53.8°N | 75 m | 1987–1988 |: | Naked eye | **18°** | Duff & Duff 1989 | -| CHI | Chicago, USA: summer | 41.9°N | 181 m | 1985 |: | Naked eye | **14°** [13–15°] | Shaukat 1985 | -| LAP | Indonesia: 6 LAPAN stations | 6.5°S–1.5°N | 50–350 m | 2016–2017 |: | Sky brightness | **16.51°** mean | LAPAN 2017 | -| MYS | Malaysia/Indonesia: DSLR | 2–7°N | 50–250 m | 2017 | 64 nights | DSLR photometry | **16.67°** [15.8–17.2°] | Zambri & Anwar 2017 | +| ID | Location | Latitude | Elevation | Period | N | Instrument | Observed° | Source | +| ----- | ----------------------------- | ----------- | --------- | --------- | --------- | ----------------------- | ----------------------- | ------------------- | +| TUB-S | Tubruq, Libya: sea horizon | 32.1°N | 25 m | 2000–2003 | 429 | Naked eye | **13.48°** | Odeh 2004 | +| TUB-D | Tubruq, Libya: desert horizon | 32.1°N | 25 m | 2000–2003 | 623 | Naked eye | **13.14°** | Odeh 2004 | +| EGY | Egypt multi-site (4 cities) | 24–31°N | 10–95 m | 1984–1987 | : | Photometric + naked eye | **14.7°** mean | ENRIA 1987 | +| HAI | Hail, Saudi Arabia | 27.5°N | 990 m | 2014–2015 | 365 | Naked eye | **14.01° ± 0.32°** | Al-Shehri 2017 | +| FAY | Fayum, Egypt | 29.3°N | 29 m | 2018–2019 | : | Photometric | **14.4°** [14–14.8°] | AAAS 2019 | +| BLK-S | Blackburn, UK: summer | 53.8°N | 75 m | 1987–1988 | : | Naked eye | **12°** | Duff & Duff 1989 | +| BLK-W | Blackburn, UK: winter | 53.8°N | 75 m | 1987–1988 | : | Naked eye | **18°** | Duff & Duff 1989 | +| CHI | Chicago, USA: summer | 41.9°N | 181 m | 1985 | : | Naked eye | **14°** [13–15°] | Shaukat 1985 | +| LAP | Indonesia: 6 LAPAN stations | 6.5°S–1.5°N | 50–350 m | 2016–2017 | : | Sky brightness | **16.51°** mean | LAPAN 2017 | +| MYS | Malaysia/Indonesia: DSLR | 2–7°N | 50–250 m | 2017 | 64 nights | DSLR photometry | **16.67°** [15.8–17.2°] | Zambri & Anwar 2017 | ### Time-Based Verification Points -| ID | Location | Latitude | Date | Observed Fajr | Observer | Source | -| --- | --- | --- | --- | --- | --- | --- | -| MIA | Miami Beach, FL, USA | 25.8°N | Dec 3, 2000 | 5:45 AM EST | Khalid Shaukat + 4 co-observers | moonsighting.com | -| PAM | Pampigny, Switzerland | 46.6°N | Jun 23, 2016 | 3:56 AM CEST | Khalid Shaukat | moonsighting.com | -| JKT | Jakarta, Indonesia | 6.2°S | May 8, 2019 | 5:01 AM WIB | Community observers (multiple) | Indonesian Islamic astronomy forums | +| ID | Location | Latitude | Date | Observed Fajr | Observer | Source | +| --- | --------------------- | -------- | ------------ | ------------- | ------------------------------- | ----------------------------------- | +| MIA | Miami Beach, FL, USA | 25.8°N | Dec 3, 2000 | 5:45 AM EST | Khalid Shaukat + 4 co-observers | moonsighting.com | +| PAM | Pampigny, Switzerland | 46.6°N | Jun 23, 2016 | 3:56 AM CEST | Khalid Shaukat | moonsighting.com | +| JKT | Jakarta, Indonesia | 6.2°S | May 8, 2019 | 5:01 AM WIB | Community observers (multiple) | Indonesian Islamic astronomy forums | --- @@ -64,15 +64,15 @@ For time-based points, `getTimesAll(date, lat, lng, tz, elev)` was used to obtai Each study location was assigned the regional method most likely in use there: -| Location | Regional method | Angle | -| --- | --- | --- | -| Libya / Egypt | Egypt (ENRIA) | 19.5° | -| Saudi Arabia | Umm Al-Qura (UAQ) | 18.5° | -| UK | MWL | 18° | -| USA (Chicago) | ISNA | 15° | -| USA (Miami) | ISNA | 15° | -| Indonesia | MUIS | 20° | -| Switzerland | UOIF | 12° | +| Location | Regional method | Angle | +| ------------- | ----------------- | ----- | +| Libya / Egypt | Egypt (ENRIA) | 19.5° | +| Saudi Arabia | Umm Al-Qura (UAQ) | 18.5° | +| UK | MWL | 18° | +| USA (Chicago) | ISNA | 15° | +| USA (Miami) | ISNA | 15° | +| Indonesia | MUIS | 20° | +| Switzerland | UOIF | 12° | --- @@ -82,27 +82,27 @@ Each study location was assigned the regional method most likely in use there: For each study: observed depression angle, PCD computed mean angle over study months, equivalent MSC angle, and the regional fixed-angle method. Errors are absolute differences in degrees. -| Study | Obs° | PCD° | PCD err | MSC° | MSC err | Regional | Reg° | Reg err | Winner | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| TUB-S Tubruq sea (32.1°N, Oct–Dec) | 13.48 | 19.17 | 5.69° | 18.92 | 5.44° | Egypt | 19.5 | 6.02° | MSC | -| TUB-D Tubruq desert (32.1°N, Oct–Dec) | 13.14 | 19.17 | 6.03° | 18.92 | 5.78° | Egypt | 19.5 | 6.36° | MSC | -| EGY Egypt multi-site (28°N mean, annual) | 14.70 | 19.37 | 4.67° | 19.30 | 4.60° | Egypt | 19.5 | 4.80° | MSC | -| HAI Hail, Saudi Arabia (27.5°N, annual) | 14.01 | 19.66 | 5.65° | 19.34 | 5.33° | UAQ | 18.5 | 4.49° | UAQ | -| FAY Fayum, Egypt (29.3°N, annual) | 14.40 | 19.23 | 4.83° | 19.17 | 4.77° | Egypt | 19.5 | 5.10° | MSC | -| BLK-S Blackburn summer (53.75°N, May–Aug) | 12.00 | **11.87** | **0.13°** | 12.06 | 0.05° | MWL | 18.0 | 6.00° | MSC | -| BLK-W Blackburn winter (53.75°N, Nov–Feb) | 18.00 | 14.35 | 3.65° | 14.32 | 3.68° | MWL | **18.0** | **0.00°** | MWL | -| CHI Chicago summer (41.85°N, May–Aug) | 14.00 | 16.31 | 2.31° | 16.37 | 2.37° | ISNA | **15.0** | **1.00°** | ISNA | -| LAP Indonesia 6 stations (2.5°S, annual) | 16.51 | 19.21 | 2.70° | 19.06 | 2.55° | MUIS | 20.0 | 3.49° | MSC | -| MYS Malaysia DSLR (4°N, annual) | 16.67 | 19.35 | 2.68° | 19.24 | 2.57° | MUIS | 20.0 | 3.33° | MSC | +| Study | Obs° | PCD° | PCD err | MSC° | MSC err | Regional | Reg° | Reg err | Winner | +| ----------------------------------------- | ----- | --------- | --------- | ----- | ------- | -------- | -------- | --------- | ------ | +| TUB-S Tubruq sea (32.1°N, Oct–Dec) | 13.48 | 19.17 | 5.69° | 18.92 | 5.44° | Egypt | 19.5 | 6.02° | MSC | +| TUB-D Tubruq desert (32.1°N, Oct–Dec) | 13.14 | 19.17 | 6.03° | 18.92 | 5.78° | Egypt | 19.5 | 6.36° | MSC | +| EGY Egypt multi-site (28°N mean, annual) | 14.70 | 19.37 | 4.67° | 19.30 | 4.60° | Egypt | 19.5 | 4.80° | MSC | +| HAI Hail, Saudi Arabia (27.5°N, annual) | 14.01 | 19.66 | 5.65° | 19.34 | 5.33° | UAQ | 18.5 | 4.49° | UAQ | +| FAY Fayum, Egypt (29.3°N, annual) | 14.40 | 19.23 | 4.83° | 19.17 | 4.77° | Egypt | 19.5 | 5.10° | MSC | +| BLK-S Blackburn summer (53.75°N, May–Aug) | 12.00 | **11.87** | **0.13°** | 12.06 | 0.05° | MWL | 18.0 | 6.00° | MSC | +| BLK-W Blackburn winter (53.75°N, Nov–Feb) | 18.00 | 14.35 | 3.65° | 14.32 | 3.68° | MWL | **18.0** | **0.00°** | MWL | +| CHI Chicago summer (41.85°N, May–Aug) | 14.00 | 16.31 | 2.31° | 16.37 | 2.37° | ISNA | **15.0** | **1.00°** | ISNA | +| LAP Indonesia 6 stations (2.5°S, annual) | 16.51 | 19.21 | 2.70° | 19.06 | 2.55° | MUIS | 20.0 | 3.49° | MSC | +| MYS Malaysia DSLR (4°N, annual) | 16.67 | 19.35 | 2.68° | 19.24 | 2.57° | MUIS | 20.0 | 3.33° | MSC | ### Mean Absolute Error -| Method | MAE (angle studies) | Studies won | -| --- | --- | --- | -| MSC (seasonal model) | **3.71°** | 6/10 | -| PCD (dynamic) | 3.83° | 0/10 | -| Regional fixed-angle | 4.06° | 2/10 (Hail-UAQ, Blackburn winter-MWL) | -| ISNA 15° | 3.00° | 1/10 (Chicago summer) | +| Method | MAE (angle studies) | Studies won | +| -------------------- | ------------------- | ------------------------------------- | +| MSC (seasonal model) | **3.71°** | 6/10 | +| PCD (dynamic) | 3.83° | 0/10 | +| Regional fixed-angle | 4.06° | 2/10 (Hail-UAQ, Blackburn winter-MWL) | +| ISNA 15° | 3.00° | 1/10 (Chicago summer) | --- @@ -116,13 +116,13 @@ For each study: observed depression angle, PCD computed mean angle over study mo **Computed results:** -| Method | Fajr time | Error vs observed | Angle used | -| --- | --- | --- | --- | -| Observed | 05:45:00 |: | 14.75° | -| PCD | 05:23:42 | **-21.3 min early** | 19.46° | -| MSC reference | 05:23:48 | -21.2 min early | 19.5° (equiv) | -| ISNA (15°) | 05:44:24 | **-0.6 min** | 15° | -| MWL (18°) | 05:09:48 | -35.2 min early | 18° | +| Method | Fajr time | Error vs observed | Angle used | +| ------------- | --------- | ------------------- | ------------- | +| Observed | 05:45:00 | : | 14.75° | +| PCD | 05:23:42 | **-21.3 min early** | 19.46° | +| MSC reference | 05:23:48 | -21.2 min early | 19.5° (equiv) | +| ISNA (15°) | 05:44:24 | **-0.6 min** | 15° | +| MWL (18°) | 05:09:48 | -35.2 min early | 18° | Sunrise: 06:51:48 EST. The observation places Fajr at 66.8 minutes before sunrise. @@ -138,13 +138,13 @@ Sunrise: 06:51:48 EST. The observation places Fajr at 66.8 minutes before sunris **Computed results:** -| Method | Fajr time | Error vs observed | Angle used | -| --- | --- | --- | --- | -| Observed | 03:56:00 |: | 13.39° | -| PCD | 03:43:21 | **-12.6 min early** | 14.28° | -| MSC reference | 03:45:57 | -10.1 min early |: | -| UOIF (12°) | 04:08:00 | **+12.0 min late** | 12° | -| MWL (18°) | N/A |: | 18° (sun never reaches 18°) | +| Method | Fajr time | Error vs observed | Angle used | +| ------------- | --------- | ------------------- | --------------------------- | +| Observed | 03:56:00 | : | 13.39° | +| PCD | 03:43:21 | **-12.6 min early** | 14.28° | +| MSC reference | 03:45:57 | -10.1 min early | : | +| UOIF (12°) | 04:08:00 | **+12.0 min late** | 12° | +| MWL (18°) | N/A | : | 18° (sun never reaches 18°) | Sunrise: 05:40:57 CEST. The observation places Fajr at 104.9 minutes before sunrise. @@ -160,13 +160,13 @@ Sunrise: 05:40:57 CEST. The observation places Fajr at 104.9 minutes before sunr **Computed results:** -| Method | Fajr time | Error vs observed | Angle used | -| --- | --- | --- | --- | -| Observed | 05:01:00 |: | 13.13° | -| PCD | 04:35:11 | **-25.8 min early** | 19.49° | -| MSC reference | 04:35:27 | -25.6 min early |: | -| MUIS (20°) | 04:33:03 | -28.0 min early | 20° | -| ISNA (15°) | 04:51:51 | -9.2 min early | 15° | +| Method | Fajr time | Error vs observed | Angle used | +| ------------- | --------- | ------------------- | ---------- | +| Observed | 05:01:00 | : | 13.13° | +| PCD | 04:35:11 | **-25.8 min early** | 19.49° | +| MSC reference | 04:35:27 | -25.6 min early | : | +| MUIS (20°) | 04:33:03 | -28.0 min early | 20° | +| ISNA (15°) | 04:51:51 | -9.2 min early | 15° | Sunrise: 05:53:27 WIB. The observation places Fajr at 52.4 minutes before sunrise. @@ -190,13 +190,13 @@ The most surprising and important finding in this dataset is the consistent disa Five independent study programs at five different locations between 27.5°N and 32.1°N all find Fajr in the range 13–15°: -| Study | Location | Lat | Observed° | PCD° | MSC° | Error | -| --- | --- | --- | --- | --- | --- | --- | -| Odeh 2004 (sea) | Tubruq, Libya | 32.1°N | 13.48° | 19.17° | 18.92° | ~5.5° | -| Odeh 2004 (desert) | Tubruq, Libya | 32.1°N | 13.14° | 19.17° | 18.92° | ~5.8° | -| ENRIA 1987 | Egypt (4 sites) | 24–31°N | 14.7° | 19.37° | 19.30° | ~4.6° | -| Al-Shehri 2017 | Hail, Saudi Arabia | 27.5°N | 14.01° | 19.66° | 19.34° | ~5.3° | -| AAAS 2019 | Fayum, Egypt | 29.3°N | 14.4° | 19.23° | 19.17° | ~4.8° | +| Study | Location | Lat | Observed° | PCD° | MSC° | Error | +| ------------------ | ------------------ | ------- | --------- | ------ | ------ | ----- | +| Odeh 2004 (sea) | Tubruq, Libya | 32.1°N | 13.48° | 19.17° | 18.92° | ~5.5° | +| Odeh 2004 (desert) | Tubruq, Libya | 32.1°N | 13.14° | 19.17° | 18.92° | ~5.8° | +| ENRIA 1987 | Egypt (4 sites) | 24–31°N | 14.7° | 19.37° | 19.30° | ~4.6° | +| Al-Shehri 2017 | Hail, Saudi Arabia | 27.5°N | 14.01° | 19.66° | 19.34° | ~5.3° | +| AAAS 2019 | Fayum, Egypt | 29.3°N | 14.4° | 19.23° | 19.17° | ~4.8° | Every one of these studies was conducted independently, at different times, in different countries, by different research institutions. The convergence around 13–15° is striking. @@ -224,13 +224,13 @@ In summer at high latitudes, the sun never reaches 18° and PCD correctly adapts ## Summary: Method Performance by Scenario -| Scenario | Best method | Runner-up | Worst method | -| --- | --- | --- | --- | -| High latitude (>48°N) summer | PCD / MSC |: | Fixed ≥18° (fails) | -| High latitude (>48°N) winter | Fixed 18° (MWL) |: | PCD / MSC (too early) | -| Mid-latitude (36–48°N) summer | ISNA (15°) | PCD (close) | Fixed 18° (early) | -| Subtropical (20–36°N) | ISNA (15°) | MSC (marginally closer than PCD) | Fixed ≥18° (most early) | -| Near-equatorial (0–10°) | ISNA (15°) | MSC | Fixed 20° (MUIS) | +| Scenario | Best method | Runner-up | Worst method | +| ----------------------------- | --------------- | -------------------------------- | ----------------------- | +| High latitude (>48°N) summer | PCD / MSC | : | Fixed ≥18° (fails) | +| High latitude (>48°N) winter | Fixed 18° (MWL) | : | PCD / MSC (too early) | +| Mid-latitude (36–48°N) summer | ISNA (15°) | PCD (close) | Fixed 18° (early) | +| Subtropical (20–36°N) | ISNA (15°) | MSC (marginally closer than PCD) | Fixed ≥18° (most early) | +| Near-equatorial (0–10°) | ISNA (15°) | MSC | Fixed 20° (MUIS) | ### What This Means for PCD @@ -257,18 +257,18 @@ The script computes all values in this page from first principles using pray-cal ## Citations -- **Odeh, M.S.** (2004). "New Criterion for Lunar Crescent Visibility." *Experimental Astronomy*, 18(1–3), 39–64. +- **Odeh, M.S.** (2004). "New Criterion for Lunar Crescent Visibility." _Experimental Astronomy_, 18(1–3), 39–64. - **Egyptian National Research Institute of Astronomy and Geophysics (ENRIA).** (1987). Multi-station photometric study of astronomical twilight at Alexandria, Cairo, Assiut, and Aswan. Internal report, referenced in Egyptian General Authority schedules. -- **Al-Shehri, A.M.** (2017). "Empirical Determination of Fajr Prayer Time at Hail, Saudi Arabia." *Journal of the Astronomical Society of Saudi Arabia*. +- **Al-Shehri, A.M.** (2017). "Empirical Determination of Fajr Prayer Time at Hail, Saudi Arabia." _Journal of the Astronomical Society of Saudi Arabia_. - **Al-Azhar Astronomical Society (AAAS).** (2019). Photometric study at Wadi Al-Rayan, Fayum. Presented at the 2019 Islamic Astronomical Conference, Cairo. -- **Duff, M.I. & Duff, M.H.** (1989). "Fajr and Isha at High Latitudes." Field study, Blackburn, England. Published summary in *Muslim Community journal*. +- **Duff, M.I. & Duff, M.H.** (1989). "Fajr and Isha at High Latitudes." Field study, Blackburn, England. Published summary in _Muslim Community journal_. - **Shaukat, K.** (1985). Chicago field observations. Unpublished; referenced on moonsighting.com. - **LAPAN (Lembaga Penerbangan dan Antariksa Nasional).** (2017). Sky brightness survey at six Indonesian stations. Technical report. -- **Zambri, M. & Anwar, M.S.** (2017). "Digital Sky Brightness at Fajr: A DSLR Photometric Study." *Proceedings of the Malaysian Astronomical Congress*. +- **Zambri, M. & Anwar, M.S.** (2017). "Digital Sky Brightness at Fajr: A DSLR Photometric Study." _Proceedings of the Malaysian Astronomical Congress_. - **Shaukat, K.** (2016). Personal field observation log, Pampigny, Switzerland. Archived on moonsighting.com. - **Shaukat, K.** (2000). Personal field observation log, Miami Beach, FL. Archived on moonsighting.com. - **Indonesian Islamic Astronomy Forum.** (2019). Community observation report, Jakarta, May 8, 2019. --- -*[Research](Research) | [Methodology](Research-Methodology) | [Global Study](Research-Global-Study) | [Home-Territory Study](Research-Home-Territory) | [Observational Evidence](Research-Observational-Evidence)* +_[Research](Research) | [Methodology](Research-Methodology) | [Global Study](Research-Global-Study) | [Home-Territory Study](Research-Home-Territory) | [Observational Evidence](Research-Observational-Evidence)_ diff --git a/.wiki/Research.md b/.wiki/Research.md index 9a9ac93..9e0a2fe 100644 --- a/.wiki/Research.md +++ b/.wiki/Research.md @@ -8,15 +8,15 @@ The methodology, data, and conclusions here are reproducible. All computations w ## Key Findings -| Metric | PCD (Dynamic) | Best Fixed Method | All Methods Avg | -| --- | --- | --- | --- | -| Global MAE: Fajr | **0.64 min** | 10.21 min (Qatar) | 18.6 min | -| Global MAE: Isha | **1.30 min** | 10.22 min (Qatar/UAQ) | 18.8 min | -| Global MAE: Combined | **0.97 min** | 10.21 min (Qatar) | 18.7 min | -| Home-territory MAE: Fajr | **0.65 min** | 4.24 min (MUIS) | 8.69 min | -| Home-territory MAE: Combined | **0.64 min** | 4.24 min (MUIS) | 8.69 min | -| Win rate at method's own home city | **13 / 14** |: |: | -| High-latitude Isha availability (London, June) | **Valid** | N/A for 6 methods | N/A for 6 methods | +| Metric | PCD (Dynamic) | Best Fixed Method | All Methods Avg | +| ---------------------------------------------- | ------------- | --------------------- | ----------------- | +| Global MAE: Fajr | **0.64 min** | 10.21 min (Qatar) | 18.6 min | +| Global MAE: Isha | **1.30 min** | 10.22 min (Qatar/UAQ) | 18.8 min | +| Global MAE: Combined | **0.97 min** | 10.21 min (Qatar) | 18.7 min | +| Home-territory MAE: Fajr | **0.65 min** | 4.24 min (MUIS) | 8.69 min | +| Home-territory MAE: Combined | **0.64 min** | 4.24 min (MUIS) | 8.69 min | +| Win rate at method's own home city | **13 / 14** | : | : | +| High-latitude Isha availability (London, June) | **Valid** | N/A for 6 methods | N/A for 6 methods | PCD is the only non-trivial method that is globally accurate: it tracks the observation-calibrated MSC reference within 1 minute across all latitudes and seasons while all 14 traditional fixed-angle methods average 13.5× more error even at their own calibration cities. @@ -24,11 +24,11 @@ PCD is the only non-trivial method that is globally accurate: it tracks the obse ## Research Pages -| Page | Description | -| --- | --- | -| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure | -| [Global Accuracy Study](Research-Global-Study) | 18-city comparison across all latitudes and seasons | -| [Home-Territory Study](Research-Home-Territory) | Each method tested at the city and season it was designed for | +| Page | Description | +| --------------------------------------------------------- | ----------------------------------------------------------------- | +| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure | +| [Global Accuracy Study](Research-Global-Study) | 18-city comparison across all latitudes and seasons | +| [Home-Territory Study](Research-Home-Territory) | Each method tested at the city and season it was designed for | | [Observational Evidence](Research-Observational-Evidence) | Field observation records, published studies, academic literature | --- @@ -51,12 +51,12 @@ where `H` is the hour angle, `a` is the target altitude, `φ` is latitude, and ` Four corrections are applied to the base angle: -| Correction | Formula | Effect | -| --- | --- | --- | -| Earth-Sun distance | `Δr = −0.5 × ln(r)` where `r` is in AU | ±0.015° over the year | -| Fourier harmonic | `0.1·(|φ|/45)·sin(θ) + 0.05·(|φ|/45)·sin(2θ)` | ±0.15° at high latitudes | -| Atmospheric refraction | Bennett/Saemundsson formula at computed altitude | Variable by elevation | -| Elevation dip | `−0.3 × 1.06 × √(h/1000)` degrees | Negative for elevated sites | +| Correction | Formula | Effect | +| ---------------------- | ------------------------------------------------ | --------------------------- | -------------------- | --- | ------------- | ------------------------ | +| Earth-Sun distance | `Δr = −0.5 × ln(r)` where `r` is in AU | ±0.015° over the year | +| Fourier harmonic | `0.1·( | φ | /45)·sin(θ) + 0.05·( | φ | /45)·sin(2θ)` | ±0.15° at high latitudes | +| Atmospheric refraction | Bennett/Saemundsson formula at computed altitude | Variable by elevation | +| Elevation dip | `−0.3 × 1.06 × √(h/1000)` degrees | Negative for elevated sites | **Layer 3: Physical Bounds** @@ -79,4 +79,4 @@ These corrections are small individually (each < 0.2°) but compound to produce --- -*[Home](Home) | [API Reference](API-Reference) | [Dynamic Algorithm](Dynamic-Algorithm) | [Traditional Methods](Traditional-Methods)* +_[Home](Home) | [API Reference](API-Reference) | [Dynamic Algorithm](Dynamic-Algorithm) | [Traditional Methods](Traditional-Methods)_ diff --git a/.wiki/Traditional-Methods.md b/.wiki/Traditional-Methods.md index a69564e..bdefc4e 100644 --- a/.wiki/Traditional-Methods.md +++ b/.wiki/Traditional-Methods.md @@ -5,22 +5,22 @@ field returned by `getTimesAll` and `calcTimesAll`. Each entry is `[fajrTime, is ## Method Table -| ID | Name | Fajr | Isha | Region | -|----|------|------|------|--------| -| `UOIF` | Union des Organisations Islamiques de France | 12° | 12° | France | -| `ISNACA` | IQNA / Islamic Council of North America | 13° | 13° | Canada | -| `ISNA` | FCNA / Islamic Society of North America | 15° | 15° | US, UK, AU, NZ | -| `SAMR` | Spiritual Administration of Muslims of Russia | 16° | 15° | Russia | -| `IGUT` | Institute of Geophysics, University of Tehran | 17.7° | 14° | Iran, Shia use | -| `MWL` | Muslim World League | 18° | 17° | Global default | -| `DIBT` | Diyanet İşleri Başkanlığı, Turkey | 18° | 17° | Turkey | -| `Karachi` | University of Islamic Sciences, Karachi | 18° | 18° | PK, BD, IN, AF | -| `Kuwait` | Kuwait Ministry of Islamic Affairs | 18° | 17.5° | Kuwait | -| `UAQ` | Umm Al-Qura University, Makkah | 18.5° | +90 min | Saudi Arabia | -| `Qatar` | Qatar / Gulf Standard | 18° | +90 min | Qatar, Gulf | -| `Egypt` | Egyptian General Authority of Survey | 19.5° | 17.5° | EG, SY, IQ, LB | -| `MUIS` | Majlis Ugama Islam Singapura | 20° | 18° | Singapore | -| `MSC` | Moonsighting Committee Worldwide | seasonal | seasonal | Global | +| ID | Name | Fajr | Isha | Region | +| --------- | --------------------------------------------- | -------- | -------- | -------------- | +| `UOIF` | Union des Organisations Islamiques de France | 12° | 12° | France | +| `ISNACA` | IQNA / Islamic Council of North America | 13° | 13° | Canada | +| `ISNA` | FCNA / Islamic Society of North America | 15° | 15° | US, UK, AU, NZ | +| `SAMR` | Spiritual Administration of Muslims of Russia | 16° | 15° | Russia | +| `IGUT` | Institute of Geophysics, University of Tehran | 17.7° | 14° | Iran, Shia use | +| `MWL` | Muslim World League | 18° | 17° | Global default | +| `DIBT` | Diyanet İşleri Başkanlığı, Turkey | 18° | 17° | Turkey | +| `Karachi` | University of Islamic Sciences, Karachi | 18° | 18° | PK, BD, IN, AF | +| `Kuwait` | Kuwait Ministry of Islamic Affairs | 18° | 17.5° | Kuwait | +| `UAQ` | Umm Al-Qura University, Makkah | 18.5° | +90 min | Saudi Arabia | +| `Qatar` | Qatar / Gulf Standard | 18° | +90 min | Qatar, Gulf | +| `Egypt` | Egyptian General Authority of Survey | 19.5° | 17.5° | EG, SY, IQ, LB | +| `MUIS` | Majlis Ugama Islam Singapura | 20° | 18° | Singapore | +| `MSC` | Moonsighting Committee Worldwide | seasonal | seasonal | Global | ## Method Notes @@ -142,4 +142,4 @@ offsets from `getMscFajr` / `getMscIsha`. --- -*[Back to Home](Home) | [Dynamic Algorithm](Dynamic-Algorithm) | [API Reference](API-Reference)* +_[Back to Home](Home) | [Dynamic Algorithm](Dynamic-Algorithm) | [API Reference](API-Reference)_ diff --git a/.wiki/Twilight-Physics.md b/.wiki/Twilight-Physics.md index f48d02d..a266e87 100644 --- a/.wiki/Twilight-Physics.md +++ b/.wiki/Twilight-Physics.md @@ -7,13 +7,13 @@ evaluating any prayer time calculation. Neither the Quran nor Hadith specifies a numeric angle. The required criteria are: -- **Fajr**: The appearance of *Subh Sadiq* (true dawn): a broad, horizontal +- **Fajr**: The appearance of _Subh Sadiq_ (true dawn): a broad, horizontal whitening of the eastern sky that stretches from north to south. Distinguished from - *Subh Kadhib* (false dawn), which is a vertical column of zodiacal light that + _Subh Kadhib_ (false dawn), which is a vertical column of zodiacal light that appears and then vanishes before true dawn. -- **Isha**: The disappearance of *Shafaq*: the twilight glow remaining in the western - sky after sunset. Classical scholars disagreed on which glow: *shafaq ahmer* (red - glow, which fades first) or *shafaq abyad* (white glow, which persists longer). +- **Isha**: The disappearance of _Shafaq_: the twilight glow remaining in the western + sky after sunset. Classical scholars disagreed on which glow: _shafaq ahmer_ (red + glow, which fades first) or _shafaq abyad_ (white glow, which persists longer). Shia tradition and the IGUT/Tehran method use shafaq ahmer; Sunni tradition generally uses shafaq abyad. @@ -23,12 +23,12 @@ Any calculation must reproduce these observable cues as closely as possible. Astronomers define twilight by the Sun's depression angle below the true horizon: -| Stage | Sun Depression | Sky Condition | -|-------|---------------|---------------| -| Civil | 0–6° | Horizon clearly visible; enough light for outdoor work | -| Nautical | 6–12° | Horizon visible at sea; brightest stars visible | -| Astronomical | 12–18° | Sky nearly dark; all but faintest objects visible | -| True night | > 18° | Sky fully dark by most definitions | +| Stage | Sun Depression | Sky Condition | +| ------------ | -------------- | ------------------------------------------------------ | +| Civil | 0–6° | Horizon clearly visible; enough light for outdoor work | +| Nautical | 6–12° | Horizon visible at sea; brightest stars visible | +| Astronomical | 12–18° | Sky nearly dark; all but faintest objects visible | +| True night | > 18° | Sky fully dark by most definitions | Fajr roughly corresponds to the end of astronomical night (transition from true night to astronomical twilight). Isha roughly corresponds to the end of nautical or @@ -86,12 +86,12 @@ at most latitudes: the visual threshold for dawn is reached at a lesser depressi Several major observational campaigns have mapped true Fajr/Isha angles: -| Location | Latitude | Fajr Angle (observed) | Source | -|----------|----------|----------------------|--------| -| Indonesia (multiple sites) | ~6°S–7°S | 16.5° | National Observatory Study | -| Saudi Arabia (desert) | ~27.5°N | 14.0° avg | Hail Campaign | -| Egypt (multiple sites) | ~26–30°N | 14.56° avg | 2015–2019 photometric study | -| UK observations | ~51–53°N | 12–14° (seasonal) | Local community data | +| Location | Latitude | Fajr Angle (observed) | Source | +| -------------------------- | -------- | --------------------- | --------------------------- | +| Indonesia (multiple sites) | ~6°S–7°S | 16.5° | National Observatory Study | +| Saudi Arabia (desert) | ~27.5°N | 14.0° avg | Hail Campaign | +| Egypt (multiple sites) | ~26–30°N | 14.56° avg | 2015–2019 photometric study | +| UK observations | ~51–53°N | 12–14° (seasonal) | Local community data | The pattern is clear: the angle decreases as latitude increases, and the equatorial 18° is not universal. At mid-latitudes, empirical Fajr is consistently around 14–15°. @@ -105,7 +105,7 @@ horizon after evening twilight, or from the eastern horizon before dawn. It is m prominent at equatorial latitudes in spring (evening) and autumn (morning), and requires very dark skies to see. -False dawn (*Subh Kadhib*) is the zodiacal light seen in the east before true dawn. +False dawn (_Subh Kadhib_) is the zodiacal light seen in the east before true dawn. Observers have reported it disappearing by around 15–16° Sun depression, after which the genuine horizontal twilight takes over. The distinction matters for Fajr timing: Subh Sadiq (true dawn) is later than any zodiacal light brightening. @@ -138,4 +138,4 @@ MSC "general" shafaq mode. --- -*[Back to Home](Home) | [Dynamic Algorithm](Dynamic-Algorithm) | [High-Latitude Handling](High-Latitude)* +_[Back to Home](Home) | [Dynamic Algorithm](Dynamic-Algorithm) | [High-Latitude Handling](High-Latitude)_