mirror of
https://github.com/acamarata/pray-calc.git
synced 2026-07-03 12:20:39 +00:00
style: fix prettier table formatting in wiki
This commit is contained in:
parent
155217265d
commit
43d6241ac2
16 changed files with 501 additions and 493 deletions
|
|
@ -14,13 +14,13 @@ function getTimes(
|
||||||
temperature?: number, // °C, default 15
|
temperature?: number, // °C, default 15
|
||||||
pressure?: number, // mbar, default 1013.25
|
pressure?: number, // mbar, default 1013.25
|
||||||
hanafi?: boolean, // Asr convention, default false (Shafi'i)
|
hanafi?: boolean, // Asr convention, default false (Shafi'i)
|
||||||
): PrayerTimes
|
): PrayerTimes;
|
||||||
```
|
```
|
||||||
|
|
||||||
### PrayerTimes
|
### PrayerTimes
|
||||||
|
|
||||||
| Field | Type | Description |
|
| Field | Type | Description |
|
||||||
|-------|------|-------------|
|
| --------- | ---------------- | ---------------------------------------------------- |
|
||||||
| `Qiyam` | `number` | Start of the last third of the night (Qiyam al-Layl) |
|
| `Qiyam` | `number` | Start of the last third of the night (Qiyam al-Layl) |
|
||||||
| `Fajr` | `number` | True dawn (Subh Sadiq) |
|
| `Fajr` | `number` | True dawn (Subh Sadiq) |
|
||||||
| `Sunrise` | `number` | Astronomical sunrise |
|
| `Sunrise` | `number` | Astronomical sunrise |
|
||||||
|
|
@ -50,7 +50,7 @@ function calcTimes(
|
||||||
temperature?: number,
|
temperature?: number,
|
||||||
pressure?: number,
|
pressure?: number,
|
||||||
hanafi?: boolean,
|
hanafi?: boolean,
|
||||||
): FormattedPrayerTimes
|
): FormattedPrayerTimes;
|
||||||
```
|
```
|
||||||
|
|
||||||
Returns `"N/A"` for any time that cannot be computed.
|
Returns `"N/A"` for any time that cannot be computed.
|
||||||
|
|
@ -71,7 +71,7 @@ function getTimesAll(
|
||||||
temperature?: number,
|
temperature?: number,
|
||||||
pressure?: number,
|
pressure?: number,
|
||||||
hanafi?: boolean,
|
hanafi?: boolean,
|
||||||
): PrayerTimesAll
|
): PrayerTimesAll;
|
||||||
```
|
```
|
||||||
|
|
||||||
### PrayerTimesAll
|
### PrayerTimesAll
|
||||||
|
|
@ -79,7 +79,7 @@ function getTimesAll(
|
||||||
Extends `PrayerTimes` with:
|
Extends `PrayerTimes` with:
|
||||||
|
|
||||||
| Field | Type | Description |
|
| Field | Type | Description |
|
||||||
|-------|------|-------------|
|
| --------- | ---------------------------------- | ------------------------------------ |
|
||||||
| `Methods` | `Record<string, [number, number]>` | `[fajrTime, ishaTime]` per method ID |
|
| `Methods` | `Record<string, [number, number]>` | `[fajrTime, ishaTime]` per method ID |
|
||||||
|
|
||||||
Method IDs: `UOIF`, `ISNACA`, `ISNA`, `SAMR`, `IGUT`, `MWL`, `DIBT`, `Karachi`,
|
Method IDs: `UOIF`, `ISNACA`, `ISNA`, `SAMR`, `IGUT`, `MWL`, `DIBT`, `Karachi`,
|
||||||
|
|
@ -101,7 +101,7 @@ function calcTimesAll(
|
||||||
temperature?: number,
|
temperature?: number,
|
||||||
pressure?: number,
|
pressure?: number,
|
||||||
hanafi?: boolean,
|
hanafi?: boolean,
|
||||||
): FormattedPrayerTimesAll
|
): FormattedPrayerTimesAll;
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -118,7 +118,7 @@ function getAngles(
|
||||||
elevation?: number,
|
elevation?: number,
|
||||||
temperature?: number,
|
temperature?: number,
|
||||||
pressure?: number,
|
pressure?: number,
|
||||||
): TwilightAngles
|
): TwilightAngles;
|
||||||
```
|
```
|
||||||
|
|
||||||
Returns `{ fajrAngle: number, ishaAngle: number }` in degrees (positive = below horizon).
|
Returns `{ fajrAngle: number, ishaAngle: number }` in degrees (positive = below horizon).
|
||||||
|
|
@ -135,7 +135,7 @@ function getAsr(
|
||||||
latitude: number, // decimal degrees
|
latitude: number, // decimal degrees
|
||||||
declination: number, // solar declination in degrees
|
declination: number, // solar declination in degrees
|
||||||
hanafi?: boolean, // default false (Shafi'i, shadowFactor=1)
|
hanafi?: boolean, // default false (Shafi'i, shadowFactor=1)
|
||||||
): number
|
): number;
|
||||||
```
|
```
|
||||||
|
|
||||||
Returns Asr as fractional hours, or `NaN` if the sun never reaches the required altitude.
|
Returns Asr as fractional hours, or `NaN` if the sun never reaches the required altitude.
|
||||||
|
|
@ -152,7 +152,7 @@ Compute start of the last third of the night.
|
||||||
function getQiyam(
|
function getQiyam(
|
||||||
fajrTime: number, // fractional hours
|
fajrTime: number, // fractional hours
|
||||||
ishaTime: number, // fractional hours
|
ishaTime: number, // fractional hours
|
||||||
): number
|
): number;
|
||||||
```
|
```
|
||||||
|
|
||||||
Returns fractional hours. The night is divided from Isha to Fajr; Qiyam starts at the
|
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.
|
Compute the Moonsighting Committee Worldwide seasonal time offsets.
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
function getMscFajr(date: Date, latitude: number): number
|
function getMscFajr(date: Date, latitude: number): number;
|
||||||
// Returns minutes before astronomical sunrise for Fajr
|
// Returns minutes before astronomical sunrise for Fajr
|
||||||
|
|
||||||
function getMscIsha(
|
function getMscIsha(
|
||||||
date: Date,
|
date: Date,
|
||||||
latitude: number,
|
latitude: number,
|
||||||
shafaq?: ShafaqMode, // 'general' | 'ahmer' | 'abyad', default 'general'
|
shafaq?: ShafaqMode, // 'general' | 'ahmer' | 'abyad', default 'general'
|
||||||
): number
|
): number;
|
||||||
// Returns minutes after astronomical sunset for Isha
|
// Returns minutes after astronomical sunset for Isha
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -183,16 +183,16 @@ You rarely need to call them directly.
|
||||||
|
|
||||||
## solarEphemeris / toJulianDate
|
## 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
|
```typescript
|
||||||
function toJulianDate(date: Date): number
|
function toJulianDate(date: Date): number;
|
||||||
|
|
||||||
function solarEphemeris(jd: number): {
|
function solarEphemeris(jd: number): {
|
||||||
decl: number; // solar declination, degrees
|
decl: number; // solar declination, degrees
|
||||||
r: number; // Earth-Sun distance, AU
|
r: number; // Earth-Sun distance, AU
|
||||||
eclLon: number; // apparent ecliptic longitude, degrees
|
eclLon: number; // apparent ecliptic longitude, degrees
|
||||||
}
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
Accuracy: declination within ~0.01°, r within ~0.0001 AU. These are used internally
|
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.
|
Exported array of all 14 `MethodDefinition` objects for documentation/tooling use.
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const METHODS: MethodDefinition[]
|
const METHODS: MethodDefinition[];
|
||||||
|
|
||||||
interface MethodDefinition {
|
interface MethodDefinition {
|
||||||
id: string;
|
id: string;
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ covers dates from -2000 to +6000.
|
||||||
|
|
||||||
## Solar Ephemeris
|
## Solar Ephemeris
|
||||||
|
|
||||||
`getSolarEphemeris` implements Jean Meeus, *Astronomical Algorithms* (2nd ed.),
|
`getSolarEphemeris` implements Jean Meeus, _Astronomical Algorithms_ (2nd ed.),
|
||||||
Chapter 25. This provides:
|
Chapter 25. This provides:
|
||||||
|
|
||||||
- Solar declination (δ): accurate to ~0.01°
|
- 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)_
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ In practice, the difference is typically 30–60 minutes, with Hanafi Asr being
|
||||||
## The Math
|
## The Math
|
||||||
|
|
||||||
Let:
|
Let:
|
||||||
|
|
||||||
- φ = observer latitude in radians
|
- φ = observer latitude in radians
|
||||||
- δ = solar declination in radians at local noon
|
- δ = solar declination in radians at local noon
|
||||||
- s = shadow factor (1 for Shafi'i, 2 for Hanafi)
|
- s = shadow factor (1 for Shafi'i, 2 for Hanafi)
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,4 @@ CommonJS, JavaScript source, 10 traditional methods, suncalc for moon data.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*[Back to Home](Home)*
|
_[Back to Home](Home)_
|
||||||
|
|
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -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.
|
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
|
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.
|
and provides accommodations.
|
||||||
|
|
||||||
## The MSC Approach
|
## The MSC Approach
|
||||||
|
|
@ -52,23 +52,28 @@ there.
|
||||||
Islamic scholars have proposed several approaches for high-latitude regions:
|
Islamic scholars have proposed several approaches for high-latitude regions:
|
||||||
|
|
||||||
### Nearest Latitude (Aqrab al-Bilad)
|
### Nearest Latitude (Aqrab al-Bilad)
|
||||||
|
|
||||||
Use the prayer times of the nearest city where the Sun does reach the required
|
Use the prayer times of the nearest city where the Sun does reach the required
|
||||||
angle, scaled to local midnight.
|
angle, scaled to local midnight.
|
||||||
|
|
||||||
### Nearest Day (Aqrab al-Ayyam)
|
### Nearest Day (Aqrab al-Ayyam)
|
||||||
|
|
||||||
Use the prayer times from the nearest date in the year when the Sun does reach
|
Use the prayer times from the nearest date in the year when the Sun does reach
|
||||||
the required angle at the same location.
|
the required angle at the same location.
|
||||||
|
|
||||||
### Seventh of Night (Sab'u lail)
|
### Seventh of Night (Sab'u lail)
|
||||||
|
|
||||||
Divide the 24-hour period (from midnight to midnight, or from Maghrib to Fajr)
|
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
|
into 7 equal parts. Isha begins at the end of the first seventh; Fajr begins at
|
||||||
the start of the last seventh.
|
the start of the last seventh.
|
||||||
|
|
||||||
### Specific Latitude Cutoff
|
### Specific Latitude Cutoff
|
||||||
|
|
||||||
Many North American institutions use the rule: above 48.5°N, compute times as
|
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.
|
if the latitude were 48.5°N. This is simple and avoids discontinuities.
|
||||||
|
|
||||||
### Makkah Time
|
### Makkah Time
|
||||||
|
|
||||||
A minority position: use Makkah's times globally. Not widely adopted outside
|
A minority position: use Makkah's times globally. Not widely adopted outside
|
||||||
of specific communities.
|
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)_
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ fixed-angle methods are included for comparison.
|
||||||
## Pages
|
## Pages
|
||||||
|
|
||||||
| Page | Description |
|
| Page | Description |
|
||||||
|------|-------------|
|
| ------------------------------------------ | ---------------------------------------------------------- |
|
||||||
| [API Reference](API-Reference) | Full function signatures, parameters, return types |
|
| [API Reference](API-Reference) | Full function signatures, parameters, return types |
|
||||||
| [Dynamic Algorithm](Dynamic-Algorithm) | How Fajr/Isha angles are computed dynamically |
|
| [Dynamic Algorithm](Dynamic-Algorithm) | How Fajr/Isha angles are computed dynamically |
|
||||||
| [Traditional Methods](Traditional-Methods) | All 14 supported methods and their parameters |
|
| [Traditional Methods](Traditional-Methods) | All 14 supported methods and their parameters |
|
||||||
|
|
@ -22,7 +22,7 @@ fixed-angle methods are included for comparison.
|
||||||
## Research & Accuracy
|
## Research & Accuracy
|
||||||
|
|
||||||
| Page | Description |
|
| Page | Description |
|
||||||
| --- | --- |
|
| -------------------------------------------------------------- | --------------------------------------------------------------------- |
|
||||||
| [Research Overview](Research) | Study summary, headline results, PCD algorithm description |
|
| [Research Overview](Research) | Study summary, headline results, PCD algorithm description |
|
||||||
| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure |
|
| [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 |
|
| [Global Accuracy Study](Research-Global-Study) | 18-city comparison across latitudes 6°S–51.5°N and all seasons |
|
||||||
|
|
@ -44,7 +44,7 @@ import { calcTimes } from 'pray-calc';
|
||||||
const times = calcTimes(
|
const times = calcTimes(
|
||||||
new Date('2024-06-21'),
|
new Date('2024-06-21'),
|
||||||
40.7128, // New York
|
40.7128, // New York
|
||||||
-74.0060,
|
-74.006,
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(times.Fajr); // "03:51:24"
|
console.log(times.Fajr); // "03:51:24"
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
In pray-calc v1, the package included five functions for moon data:
|
In pray-calc v1, the package included five functions for moon data:
|
||||||
|
|
||||||
| v1 Function | Description |
|
| v1 Function | Description |
|
||||||
| -- | -- |
|
| ----------------------------------- | ---------------------------------------------------------------------- |
|
||||||
| `getMoon(date, lat, lon)` | Aggregated wrapper returning phase, position, illumination, visibility |
|
| `getMoon(date, lat, lon)` | Aggregated wrapper returning phase, position, illumination, visibility |
|
||||||
| `getMoonPhase(date)` | Synodic-month calculation from known reference new moon |
|
| `getMoonPhase(date)` | Synodic-month calculation from known reference new moon |
|
||||||
| `getMoonPosition(date, lat, lon)` | Thin wrapper around `suncalc.getMoonPosition` |
|
| `getMoonPosition(date, lat, lon)` | Thin wrapper around `suncalc.getMoonPosition` |
|
||||||
|
|
@ -56,7 +56,7 @@ import { getMoon, getMoonPhase, getMoonPosition, getMoonIllumination } from 'moo
|
||||||
### Function Mapping
|
### Function Mapping
|
||||||
|
|
||||||
| pray-calc v1 | moon-sighting v1.1 | Notes |
|
| pray-calc v1 | moon-sighting v1.1 | Notes |
|
||||||
| -- | -- | -- |
|
| ----------------------------------- | ------------------------------------------------------- | -------------------------------------------------------------- |
|
||||||
| `getMoonPosition(date, lat, lon)` | `getMoonPosition(date, lat, lon, elevation?)` | Adds WGS84 model, Bennett refraction, `parallacticAngle` field |
|
| `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 |
|
| `getMoonIllumination(date)` | `getMoonIllumination(date)` | Adds correct phase angle, `isWaxing` field |
|
||||||
| `getMoonPhase(date)` | `getMoonPhase(date)` | Adds `phaseName`, `phaseSymbol`, more fields |
|
| `getMoonPhase(date)` | `getMoonPhase(date)` | Adds `phaseName`, `phaseSymbol`, more fields |
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ Error is `method_time − MSC_reference` in minutes. Positive = later than MSC,
|
||||||
`N/A` = sun never reaches the required depression angle (method is undefined for that case).
|
`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 |
|
| # | 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) |
|
| 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) |
|
| 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) |
|
| 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) |
|
||||||
|
|
@ -44,7 +44,7 @@ Error is `method_time − MSC_reference` in minutes. Positive = later than MSC,
|
||||||
`n_Fajr` / `n_Isha` = number of valid (non-NaN) results included in MAE calculation.
|
`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 |
|
| Rank | Method | Fajr MAE (min) | Isha MAE (min) | Combined MAE | n_Fajr | n_Isha |
|
||||||
| --- | --- | --- | --- | --- | --- | --- |
|
| ----- | ------------------- | -------------- | -------------- | ------------ | ------ | ------ |
|
||||||
| 1 | MSC | 0.00 | 0.00 | 0.00 | 18 | 18 |
|
| 1 | MSC | 0.00 | 0.00 | 0.00 | 18 | 18 |
|
||||||
| **2** | **★ PCD (Dynamic)** | **0.64** | **1.30** | **0.97** | **18** | **18** |
|
| **2** | **★ PCD (Dynamic)** | **0.64** | **1.30** | **0.97** | **18** | **18** |
|
||||||
| 3 | Qatar | 10.21 | 10.22 | 10.21 | 17 | 18 |
|
| 3 | Qatar | 10.21 | 10.22 | 10.21 | 17 | 18 |
|
||||||
|
|
@ -70,7 +70,7 @@ 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.
|
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 |
|
| 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 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 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 |
|
| 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 |
|
||||||
|
|
@ -95,7 +95,7 @@ Error in minutes vs MSC reference (`+` = later, `−` = earlier). `N/A` = sun do
|
||||||
## Per-Case Detail: Isha Errors by Method
|
## Per-Case Detail: Isha Errors by Method
|
||||||
|
|
||||||
| City / Date | PCD | UOIF | ISNACA | ISNA | SAMR | IGUT | MWL | DIBT | Karachi | Kuwait | UAQ | Qatar | Egypt | MUIS |
|
| 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 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 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 |
|
| 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 |
|
||||||
|
|
@ -122,7 +122,7 @@ 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.
|
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 |
|
| Method | Fixed Isha° | Isha result |
|
||||||
| --- | --- | --- |
|
| ------- | ----------- | -------------------------------------- |
|
||||||
| UOIF | 12° | 23:24 (valid) |
|
| UOIF | 12° | 23:24 (valid) |
|
||||||
| ISNACA | 13° | 23:42 (valid) |
|
| ISNACA | 13° | 23:42 (valid) |
|
||||||
| ISNA | 15° | 24:49 (technically computed, next day) |
|
| ISNA | 15° | 24:49 (technically computed, next day) |
|
||||||
|
|
@ -148,7 +148,7 @@ 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.
|
How the PCD-computed depression angle varies across the test cases.
|
||||||
|
|
||||||
| City | Lat | Season | Fajr° | Isha° | Closest Fixed Method |
|
| City | Lat | Season | Fajr° | Isha° | Closest Fixed Method |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| --------- | ------ | ------ | ------ | ------ | -------------------- |
|
||||||
| Jakarta | 6.2°S | Jun | 18.72° | 18.72° | UAQ (18.5°) |
|
| Jakarta | 6.2°S | Jun | 18.72° | 18.72° | UAQ (18.5°) |
|
||||||
| Singapore | 1.4°N | Dec | 18.23° | 18.23° | MWL/DIBT (18°) |
|
| 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 | Jun | 19.79° | 16.56° | MUIS (20°) / Egypt |
|
||||||
|
|
@ -172,4 +172,4 @@ The angle moves from ~20° at tropical latitudes in summer to ~12° at high-lati
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*[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)_
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ The question: does PCD (Prayer Calc Dynamic) remain more accurate than a method
|
||||||
Across 34 Fajr + 34 Isha home-territory test cases:
|
Across 34 Fajr + 34 Isha home-territory test cases:
|
||||||
|
|
||||||
| | PCD (Dynamic) | Traditional (avg) | Ratio |
|
| | PCD (Dynamic) | Traditional (avg) | Ratio |
|
||||||
| --- | --- | --- | --- |
|
| ------------ | ------------- | ----------------- | --------------- |
|
||||||
| Fajr MAE | **0.65 min** | 7.53 min | 11.6× worse |
|
| Fajr MAE | **0.65 min** | 7.53 min | 11.6× worse |
|
||||||
| Isha MAE | **0.64 min** | 9.84 min | 15.4× worse |
|
| Isha MAE | **0.64 min** | 9.84 min | 15.4× worse |
|
||||||
| Combined MAE | **0.64 min** | 8.69 min | **13.5× worse** |
|
| Combined MAE | **0.64 min** | 8.69 min | **13.5× worse** |
|
||||||
|
|
@ -29,7 +29,7 @@ Across 34 Fajr + 34 Isha home-territory test cases:
|
||||||
Each row represents one traditional method, tested at its home city across all listed seasons.
|
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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| ISNA | Chicago, USA | 15.0° | 16.94° | +1.94° | 0.73 min | 11.48 min | ★ PCD | 10.7 min |
|
||||||
|
|
@ -53,10 +53,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### UOIF: Paris, France (12°/12°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| Dec 21 | 15.46° | 08:01 | **−0.1 min** | +22.3 min | **+0.1 min** | −20.3 min | ★ PCD by 21.2 min |
|
||||||
|
|
||||||
|
|
@ -64,10 +64,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### ISNACA: Ottawa, Canada (13°/13°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| Dec 21 | 16.56° | 07:00 | **−0.2 min** | +21.2 min | **+0.2 min** | −18.2 min | ★ PCD by 19.5 min |
|
||||||
|
|
||||||
|
|
@ -75,10 +75,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### ISNA: Chicago, USA (15°/15°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Mar 21 | 17.46° | 05:21 | **−0.4 min** | +13.3 min | **+0.7 min** | +0.1 min | ★ PCD by 6.1 min |
|
||||||
|
|
@ -87,10 +87,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### SAMR: Moscow, Russia (16°/15°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| Dec 21 | 13.15° | 06:51 | **−0.7 min** | −22.3 min | ★ PCD by 19.4 min |
|
||||||
|
|
||||||
|
|
@ -98,10 +98,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### IGUT: Tehran, Iran (17.7°/14°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Mar 21 (Nowruz) | 18.84° | **−1.5 min** | +4.3 min | **+0.9 min** | −11.5 min | ★ PCD by 6.8 min |
|
||||||
|
|
@ -110,10 +110,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### MWL: Makkah, Saudi Arabia (18°/17°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Mar 21 | 20.22° | **−0.5 min** | +9.1 min | **+0.2 min** | −6.7 min | ★ PCD by 7.5 min |
|
||||||
|
|
@ -122,10 +122,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### DIBT: Ankara, Turkey (18°/17°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| Dec 21 | 17.98° | **−1.4 min** | −1.5 min | **+1.4 min** | −1.0 min | DIBT by 0.2 min |
|
||||||
|
|
||||||
|
|
@ -133,10 +133,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### Karachi: Karachi, Pakistan (18°/18°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| Dec 21 | 19.39° | **+0.1 min** | +6.6 min | **−0.1 min** | −4.6 min | ★ PCD by 5.5 min |
|
||||||
|
|
||||||
|
|
@ -145,16 +145,16 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
### Kuwait: Kuwait City (18°/17.5°)
|
### Kuwait: Kuwait City (18°/17.5°)
|
||||||
|
|
||||||
| Season | PCD Fajr° | PCD Fajr err | Kuwait Fajr err | PCD Isha err | Kuwait Isha err | Winner |
|
| 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 |
|
| 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 |
|
| 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)
|
### 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Mar 21 | 20.04° | **−0.9 min** | +6.0 min | **+0.5 min** | +14.0 min | ★ PCD by 9.3 min |
|
||||||
|
|
@ -164,16 +164,16 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
### Qatar: Doha, Qatar (18°/+90 min)
|
### Qatar: Doha, Qatar (18°/+90 min)
|
||||||
|
|
||||||
| Season | PCD Fajr° | PCD Fajr err | Qatar Fajr err | PCD Isha err | Qatar Isha err | Winner |
|
| 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 |
|
| 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 |
|
| 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: 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Mar 21 | 19.33° | **0.0 min** | −0.8 min | **−0.5 min** | +0.9 min | ★ PCD by 0.6 min |
|
||||||
|
|
@ -182,10 +182,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### MUIS: Singapore (20°/18°)
|
### 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Mar 21 | 19.59° | **+0.2 min** | −1.4 min | **+0.1 min** | −6.3 min | ★ PCD by 3.7 min |
|
||||||
|
|
@ -194,10 +194,10 @@ Each row represents one traditional method, tested at its home city across all l
|
||||||
|
|
||||||
### MSC: New York, USA (seasonal/seasonal)
|
### 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Sep 21 | −0.9 min | 0.0 min | +1.6 min | 0.0 min | MSC by 1.3 min |
|
||||||
|
|
@ -211,7 +211,7 @@ 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.
|
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 |
|
| Method | Fixed° | Actual° (PCD avg) | Δ° | Calibration quality |
|
||||||
| --- | --- | --- | --- | --- |
|
| ------- | ------ | ----------------- | ------ | --------------------------------------------------- |
|
||||||
| IGUT | 17.7° | 18.52° | +0.82° | Excellent: closest fixed calibration |
|
| IGUT | 17.7° | 18.52° | +0.82° | Excellent: closest fixed calibration |
|
||||||
| Egypt | 19.5° | 19.06° | −0.44° | Good: slightly high |
|
| Egypt | 19.5° | 19.06° | −0.44° | Good: slightly high |
|
||||||
| DIBT | 18.0° | 17.40° | −0.60° | Good: slightly high for Ankara |
|
| DIBT | 18.0° | 17.40° | −0.60° | Good: slightly high for Ankara |
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ node home-territory.mjs
|
||||||
```
|
```
|
||||||
|
|
||||||
Computations use:
|
Computations use:
|
||||||
|
|
||||||
- `getTimesAll()` for raw fractional-hour times across all 14 methods + dynamic simultaneously
|
- `getTimesAll()` for raw fractional-hour times across all 14 methods + dynamic simultaneously
|
||||||
- `getAngles()` for the PCD-computed depression angles
|
- `getAngles()` for the PCD-computed depression angles
|
||||||
- `getMscFajr(date, lat)` / `getMscIsha(date, lat, 'general')` for the MSC minute reference
|
- `getMscFajr(date, lat)` / `getMscIsha(date, lat, 'general')` for the MSC minute reference
|
||||||
|
|
@ -75,7 +76,7 @@ Tests across diverse latitudes, longitudes, elevations, and seasons. See [Global
|
||||||
**Coverage:**
|
**Coverage:**
|
||||||
|
|
||||||
| Region | Cities | Latitude range |
|
| Region | Cities | Latitude range |
|
||||||
| --- | --- | --- |
|
| -------------------- | ---------------------------------------- | --------------- |
|
||||||
| North America | New York (×3), Toronto | 40.7°N – 43.7°N |
|
| North America | New York (×3), Toronto | 40.7°N – 43.7°N |
|
||||||
| Europe | London (×2), Istanbul | 41.0°N – 51.5°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 |
|
| Middle East | Makkah (×2), Tehran, Kuwait City, Riyadh | 21.4°N – 35.7°N |
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ Khalid Shaukat conducted and compiled field observations of Fajr and Isha across
|
||||||
Selected reference values from Shaukat's seasonal tables:
|
Selected reference values from Shaukat's seasonal tables:
|
||||||
|
|
||||||
| Latitude band | Month | Fajr (min before sunrise) | Isha (min after sunset) |
|
| Latitude band | Month | Fajr (min before sunrise) | Isha (min after sunset) |
|
||||||
| --- | --- | --- | --- |
|
| ------------- | ---------- | ------------------------- | ----------------------- |
|
||||||
| 0–10°N | All months | ~108 | ~108 |
|
| 0–10°N | All months | ~108 | ~108 |
|
||||||
| 20–25°N | Jun | ~88–93 | ~82–87 |
|
| 20–25°N | Jun | ~88–93 | ~82–87 |
|
||||||
| 20–25°N | Dec | ~100–104 | ~94–98 |
|
| 20–25°N | Dec | ~100–104 | ~94–98 |
|
||||||
|
|
@ -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.
|
- 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:
|
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.
|
- 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.
|
- 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.
|
- The MSC model (which PCD implements) yields 120 minutes before sunrise at London in June, corresponding to approximately 12°: matching these observations.
|
||||||
|
|
@ -125,7 +126,7 @@ 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.
|
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) |
|
| Latitude band | Season | Observed Fajr° | PCD output | Fixed 18° (MWL) | Fixed 15° (ISNA) |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| ------------------------ | ------ | -------------- | ---------------- | ----------------- | ---------------- |
|
||||||
| 0–6°S (Jakarta) | Jun | 13–19°† | **18.72°** | 18° ≈ | 15° ✗ |
|
| 0–6°S (Jakarta) | Jun | 13–19°† | **18.72°** | 18° ≈ | 15° ✗ |
|
||||||
| 1–2°N (Singapore) | Dec | ~18° | **18.23°** | 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° ≈ |
|
| 21–30°N (Egypt, Arabia) | Annual | ~13–15°‡ | **19.4–19.8°** | 18° ✗✗ | 15° ≈ |
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ Both study types test the same question: does the calculated Fajr time match whe
|
||||||
### Angle-Based Field Studies
|
### Angle-Based Field Studies
|
||||||
|
|
||||||
| ID | Location | Latitude | Elevation | Period | N | Instrument | Observed° | Source |
|
| 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-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 |
|
| 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 |
|
| EGY | Egypt multi-site (4 cities) | 24–31°N | 10–95 m | 1984–1987 | : | Photometric + naked eye | **14.7°** mean | ENRIA 1987 |
|
||||||
|
|
@ -38,7 +38,7 @@ Both study types test the same question: does the calculated Fajr time match whe
|
||||||
### Time-Based Verification Points
|
### Time-Based Verification Points
|
||||||
|
|
||||||
| ID | Location | Latitude | Date | Observed Fajr | Observer | Source |
|
| 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 |
|
| 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 |
|
| 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 |
|
| JKT | Jakarta, Indonesia | 6.2°S | May 8, 2019 | 5:01 AM WIB | Community observers (multiple) | Indonesian Islamic astronomy forums |
|
||||||
|
|
@ -65,7 +65,7 @@ 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:
|
Each study location was assigned the regional method most likely in use there:
|
||||||
|
|
||||||
| Location | Regional method | Angle |
|
| Location | Regional method | Angle |
|
||||||
| --- | --- | --- |
|
| ------------- | ----------------- | ----- |
|
||||||
| Libya / Egypt | Egypt (ENRIA) | 19.5° |
|
| Libya / Egypt | Egypt (ENRIA) | 19.5° |
|
||||||
| Saudi Arabia | Umm Al-Qura (UAQ) | 18.5° |
|
| Saudi Arabia | Umm Al-Qura (UAQ) | 18.5° |
|
||||||
| UK | MWL | 18° |
|
| UK | MWL | 18° |
|
||||||
|
|
@ -83,7 +83,7 @@ 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.
|
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 |
|
| 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-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 |
|
| 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 |
|
| EGY Egypt multi-site (28°N mean, annual) | 14.70 | 19.37 | 4.67° | 19.30 | 4.60° | Egypt | 19.5 | 4.80° | MSC |
|
||||||
|
|
@ -98,7 +98,7 @@ For each study: observed depression angle, PCD computed mean angle over study mo
|
||||||
### Mean Absolute Error
|
### Mean Absolute Error
|
||||||
|
|
||||||
| Method | MAE (angle studies) | Studies won |
|
| Method | MAE (angle studies) | Studies won |
|
||||||
| --- | --- | --- |
|
| -------------------- | ------------------- | ------------------------------------- |
|
||||||
| MSC (seasonal model) | **3.71°** | 6/10 |
|
| MSC (seasonal model) | **3.71°** | 6/10 |
|
||||||
| PCD (dynamic) | 3.83° | 0/10 |
|
| PCD (dynamic) | 3.83° | 0/10 |
|
||||||
| Regional fixed-angle | 4.06° | 2/10 (Hail-UAQ, Blackburn winter-MWL) |
|
| Regional fixed-angle | 4.06° | 2/10 (Hail-UAQ, Blackburn winter-MWL) |
|
||||||
|
|
@ -117,7 +117,7 @@ For each study: observed depression angle, PCD computed mean angle over study mo
|
||||||
**Computed results:**
|
**Computed results:**
|
||||||
|
|
||||||
| Method | Fajr time | Error vs observed | Angle used |
|
| Method | Fajr time | Error vs observed | Angle used |
|
||||||
| --- | --- | --- | --- |
|
| ------------- | --------- | ------------------- | ------------- |
|
||||||
| Observed | 05:45:00 | : | 14.75° |
|
| Observed | 05:45:00 | : | 14.75° |
|
||||||
| PCD | 05:23:42 | **-21.3 min early** | 19.46° |
|
| PCD | 05:23:42 | **-21.3 min early** | 19.46° |
|
||||||
| MSC reference | 05:23:48 | -21.2 min early | 19.5° (equiv) |
|
| MSC reference | 05:23:48 | -21.2 min early | 19.5° (equiv) |
|
||||||
|
|
@ -139,7 +139,7 @@ Sunrise: 06:51:48 EST. The observation places Fajr at 66.8 minutes before sunris
|
||||||
**Computed results:**
|
**Computed results:**
|
||||||
|
|
||||||
| Method | Fajr time | Error vs observed | Angle used |
|
| Method | Fajr time | Error vs observed | Angle used |
|
||||||
| --- | --- | --- | --- |
|
| ------------- | --------- | ------------------- | --------------------------- |
|
||||||
| Observed | 03:56:00 | : | 13.39° |
|
| Observed | 03:56:00 | : | 13.39° |
|
||||||
| PCD | 03:43:21 | **-12.6 min early** | 14.28° |
|
| PCD | 03:43:21 | **-12.6 min early** | 14.28° |
|
||||||
| MSC reference | 03:45:57 | -10.1 min early | : |
|
| MSC reference | 03:45:57 | -10.1 min early | : |
|
||||||
|
|
@ -161,7 +161,7 @@ Sunrise: 05:40:57 CEST. The observation places Fajr at 104.9 minutes before sunr
|
||||||
**Computed results:**
|
**Computed results:**
|
||||||
|
|
||||||
| Method | Fajr time | Error vs observed | Angle used |
|
| Method | Fajr time | Error vs observed | Angle used |
|
||||||
| --- | --- | --- | --- |
|
| ------------- | --------- | ------------------- | ---------- |
|
||||||
| Observed | 05:01:00 | : | 13.13° |
|
| Observed | 05:01:00 | : | 13.13° |
|
||||||
| PCD | 04:35:11 | **-25.8 min early** | 19.49° |
|
| PCD | 04:35:11 | **-25.8 min early** | 19.49° |
|
||||||
| MSC reference | 04:35:27 | -25.6 min early | : |
|
| MSC reference | 04:35:27 | -25.6 min early | : |
|
||||||
|
|
@ -191,7 +191,7 @@ 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°:
|
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 |
|
| 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 (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° |
|
| 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° |
|
| ENRIA 1987 | Egypt (4 sites) | 24–31°N | 14.7° | 19.37° | 19.30° | ~4.6° |
|
||||||
|
|
@ -225,7 +225,7 @@ In summer at high latitudes, the sun never reaches 18° and PCD correctly adapts
|
||||||
## Summary: Method Performance by Scenario
|
## Summary: Method Performance by Scenario
|
||||||
|
|
||||||
| Scenario | Best method | Runner-up | Worst method |
|
| Scenario | Best method | Runner-up | Worst method |
|
||||||
| --- | --- | --- | --- |
|
| ----------------------------- | --------------- | -------------------------------- | ----------------------- |
|
||||||
| High latitude (>48°N) summer | PCD / MSC | : | Fixed ≥18° (fails) |
|
| High latitude (>48°N) summer | PCD / MSC | : | Fixed ≥18° (fails) |
|
||||||
| High latitude (>48°N) winter | Fixed 18° (MWL) | : | PCD / MSC (too early) |
|
| 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) |
|
| Mid-latitude (36–48°N) summer | ISNA (15°) | PCD (close) | Fixed 18° (early) |
|
||||||
|
|
@ -257,18 +257,18 @@ The script computes all values in this page from first principles using pray-cal
|
||||||
|
|
||||||
## Citations
|
## 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.
|
- **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.
|
- **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.
|
- **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.
|
- **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.** (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.
|
- **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.
|
- **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)_
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ The methodology, data, and conclusions here are reproducible. All computations w
|
||||||
## Key Findings
|
## Key Findings
|
||||||
|
|
||||||
| Metric | PCD (Dynamic) | Best Fixed Method | All Methods Avg |
|
| Metric | PCD (Dynamic) | Best Fixed Method | All Methods Avg |
|
||||||
| --- | --- | --- | --- |
|
| ---------------------------------------------- | ------------- | --------------------- | ----------------- |
|
||||||
| Global MAE: Fajr | **0.64 min** | 10.21 min (Qatar) | 18.6 min |
|
| 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: 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 |
|
| Global MAE: Combined | **0.97 min** | 10.21 min (Qatar) | 18.7 min |
|
||||||
|
|
@ -25,7 +25,7 @@ PCD is the only non-trivial method that is globally accurate: it tracks the obse
|
||||||
## Research Pages
|
## Research Pages
|
||||||
|
|
||||||
| Page | Description |
|
| Page | Description |
|
||||||
| --- | --- |
|
| --------------------------------------------------------- | ----------------------------------------------------------------- |
|
||||||
| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure |
|
| [Methodology](Research-Methodology) | Reference standard, measurement approach, test infrastructure |
|
||||||
| [Global Accuracy Study](Research-Global-Study) | 18-city comparison across all latitudes and seasons |
|
| [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 |
|
| [Home-Territory Study](Research-Home-Territory) | Each method tested at the city and season it was designed for |
|
||||||
|
|
@ -52,7 +52,7 @@ where `H` is the hour angle, `a` is the target altitude, `φ` is latitude, and `
|
||||||
Four corrections are applied to the base angle:
|
Four corrections are applied to the base angle:
|
||||||
|
|
||||||
| Correction | Formula | Effect |
|
| Correction | Formula | Effect |
|
||||||
| --- | --- | --- |
|
| ---------------------- | ------------------------------------------------ | --------------------------- | -------------------- | --- | ------------- | ------------------------ |
|
||||||
| Earth-Sun distance | `Δr = −0.5 × ln(r)` where `r` is in AU | ±0.015° over the year |
|
| 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 |
|
| 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 |
|
| Atmospheric refraction | Bennett/Saemundsson formula at computed altitude | Variable by elevation |
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ field returned by `getTimesAll` and `calcTimesAll`. Each entry is `[fajrTime, is
|
||||||
## Method Table
|
## Method Table
|
||||||
|
|
||||||
| ID | Name | Fajr | Isha | Region |
|
| ID | Name | Fajr | Isha | Region |
|
||||||
|----|------|------|------|--------|
|
| --------- | --------------------------------------------- | -------- | -------- | -------------- |
|
||||||
| `UOIF` | Union des Organisations Islamiques de France | 12° | 12° | France |
|
| `UOIF` | Union des Organisations Islamiques de France | 12° | 12° | France |
|
||||||
| `ISNACA` | IQNA / Islamic Council of North America | 13° | 13° | Canada |
|
| `ISNACA` | IQNA / Islamic Council of North America | 13° | 13° | Canada |
|
||||||
| `ISNA` | FCNA / Islamic Society of North America | 15° | 15° | US, UK, AU, NZ |
|
| `ISNA` | FCNA / Islamic Society of North America | 15° | 15° | US, UK, AU, NZ |
|
||||||
|
|
@ -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)_
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ evaluating any prayer time calculation.
|
||||||
|
|
||||||
Neither the Quran nor Hadith specifies a numeric angle. The required criteria are:
|
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
|
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.
|
appears and then vanishes before true dawn.
|
||||||
- **Isha**: The disappearance of *Shafaq*: the twilight glow remaining in the western
|
- **Isha**: The disappearance of _Shafaq_: the twilight glow remaining in the western
|
||||||
sky after sunset. Classical scholars disagreed on which glow: *shafaq ahmer* (red
|
sky after sunset. Classical scholars disagreed on which glow: _shafaq ahmer_ (red
|
||||||
glow, which fades first) or *shafaq abyad* (white glow, which persists longer).
|
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
|
Shia tradition and the IGUT/Tehran method use shafaq ahmer; Sunni tradition generally
|
||||||
uses shafaq abyad.
|
uses shafaq abyad.
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@ Any calculation must reproduce these observable cues as closely as possible.
|
||||||
Astronomers define twilight by the Sun's depression angle below the true horizon:
|
Astronomers define twilight by the Sun's depression angle below the true horizon:
|
||||||
|
|
||||||
| Stage | Sun Depression | Sky Condition |
|
| Stage | Sun Depression | Sky Condition |
|
||||||
|-------|---------------|---------------|
|
| ------------ | -------------- | ------------------------------------------------------ |
|
||||||
| Civil | 0–6° | Horizon clearly visible; enough light for outdoor work |
|
| Civil | 0–6° | Horizon clearly visible; enough light for outdoor work |
|
||||||
| Nautical | 6–12° | Horizon visible at sea; brightest stars visible |
|
| Nautical | 6–12° | Horizon visible at sea; brightest stars visible |
|
||||||
| Astronomical | 12–18° | Sky nearly dark; all but faintest objects visible |
|
| Astronomical | 12–18° | Sky nearly dark; all but faintest objects visible |
|
||||||
|
|
@ -87,7 +87,7 @@ at most latitudes: the visual threshold for dawn is reached at a lesser depressi
|
||||||
Several major observational campaigns have mapped true Fajr/Isha angles:
|
Several major observational campaigns have mapped true Fajr/Isha angles:
|
||||||
|
|
||||||
| Location | Latitude | Fajr Angle (observed) | Source |
|
| Location | Latitude | Fajr Angle (observed) | Source |
|
||||||
|----------|----------|----------------------|--------|
|
| -------------------------- | -------- | --------------------- | --------------------------- |
|
||||||
| Indonesia (multiple sites) | ~6°S–7°S | 16.5° | National Observatory Study |
|
| Indonesia (multiple sites) | ~6°S–7°S | 16.5° | National Observatory Study |
|
||||||
| Saudi Arabia (desert) | ~27.5°N | 14.0° avg | Hail Campaign |
|
| Saudi Arabia (desert) | ~27.5°N | 14.0° avg | Hail Campaign |
|
||||||
| Egypt (multiple sites) | ~26–30°N | 14.56° avg | 2015–2019 photometric study |
|
| Egypt (multiple sites) | ~26–30°N | 14.56° avg | 2015–2019 photometric study |
|
||||||
|
|
@ -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
|
prominent at equatorial latitudes in spring (evening) and autumn (morning), and
|
||||||
requires very dark skies to see.
|
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
|
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:
|
the genuine horizontal twilight takes over. The distinction matters for Fajr timing:
|
||||||
Subh Sadiq (true dawn) is later than any zodiacal light brightening.
|
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)_
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue