Morphemeris DocsBeta

Davison Chart

GET /v1/davison — Davison relationship chart computed at the time-space midpoint of two natal charts.

Davison Chart

Compute a Davison relationship chart — a real natal chart cast for the midpoint in time and space between two births. Unlike a composite chart (which averages positions mathematically), the Davison chart represents an actual moment in time with real astronomical positions.

Text
GET  /v1/davison
POST /v1/davison

Credit cost: 3

Parameters

Uses _a and _b suffixes for the two charts' datetime and location parameters.

ParameterTypeRequiredDefaultDescription
datetime_astringOne of datetime_a or jd_aPerson A: ISO 8601 UTC datetime
jd_anumberOne of datetime_a or jd_aPerson A: Julian Day in UT1
lat_anumberYesPerson A: latitude
lon_anumberYesPerson A: longitude
datetime_bstringOne of datetime_b or jd_bPerson B: ISO 8601 UTC datetime
jd_bnumberOne of datetime_b or jd_bPerson B: Julian Day in UT1
lat_bnumberYesPerson B: latitude
lon_bnumberYesPerson B: longitude
bodiesstringNo"planets"Comma-separated body names
systemstringNo"placidus"House system
house_position_modestringNo"zodiacal""zodiacal" or "mundane" — see house position modes
siderealstringNoAyanamsha for sidereal mode
aspectsstringNoMajor 7Comma-separated aspect types
orbnumberNoGlobal orb override in degrees
dignitiesbooleanNofalseAttach essential dignities to the chart (with rulership, day_chart); see natal chart

How it works

The Davison chart computes:

  1. Midpoint in time — The Julian Day halfway between the two birth instants
  2. Midpoint in space — The great-circle midpoint of the two birthplaces (the two points are averaged as vectors on the sphere, so a pair straddling the date line or the pole midpoints correctly; it is not the mean of the coordinates)
  3. A real natal chart — Actual planetary positions and house cusps computed for that midpoint moment and place, exactly what /v1/positions and /v1/houses return there

This means the Davison chart has real astronomical positions that existed at a real moment in time, unlike the composite chart which creates synthetic positions.

Response

The response has the same structure as /v1/natal-chart, with chart_type set to "davison" and metadata.source recording the two births.

JSON
{
  "data": {
    "chart_type": "davison",
    "positions": [ "..." ],
    "houses": { "..." },
    "aspects": [ "..." ],
    "parallels": [],
    "metadata": {
      "datetime": 2447650.5937516,
      "datetime_iso": "1989-05-04T02:15:00.428Z",
      "location": { "latitude": 52.3684, "longitude": -41.2903, "altitude": 0.0 },
      "source": {
        "type": "davison",
        "datetime_a": 2448058.2708335,
        "datetime_b": 2447242.9166697,
        "location_a_lat": 40.7128,
        "location_a_lon": -74.006,
        "location_b_lat": 51.5074,
        "location_b_lon": -0.1278
      },
      "..."
    }
  },
  "meta": { "..." }
}

metadata.datetime and metadata.location are the computed midpoint instant and place (for New York and London above, a point in the North Atlantic south of Greenland). The result does not depend on which birth is _a and which is _b.

Examples

Basic Davison chart

Bash
curl "https://api.morphemeris.com/v1/davison?\
datetime_a=1990-06-15T18:30:00Z&lat_a=40.7128&lon_a=-74.006\
&datetime_b=1988-03-22T10:00:00Z&lat_b=51.5074&lon_b=-0.1278" \
  -H "Authorization: Bearer morphemeris_live_YOUR_KEY"
javascript
const params = new URLSearchParams({
  datetime_a: "1990-06-15T18:30:00Z", lat_a: "40.7128", lon_a: "-74.006",
  datetime_b: "1988-03-22T10:00:00Z", lat_b: "51.5074", lon_b: "-0.1278",
});
const res = await fetch(
  `https://api.morphemeris.com/v1/davison?${params}`,
  { headers: { Authorization: "Bearer morphemeris_live_YOUR_KEY" } }
);
const { data } = await res.json();
Python
import requests

res = requests.get(
    "https://api.morphemeris.com/v1/davison",
    params={
        "datetime_a": "1990-06-15T18:30:00Z", "lat_a": 40.7128, "lon_a": -74.006,
        "datetime_b": "1988-03-22T10:00:00Z", "lat_b": 51.5074, "lon_b": -0.1278,
    },
    headers={"Authorization": "Bearer morphemeris_live_YOUR_KEY"},
)
data = res.json()