{"schema":"astrologos-help-chunks/v1","source_schema":"astrologos-help/v1","help":{"source":"compiled-runtime","schema":"astrologos-help/v1","entries":1324,"etag":"\"astrologos-help-0.1.0-compiled\"","path":null,"release_id":null,"release_archive":null,"help_sha256":null,"installed_at":null,"worker_image":null},"chunks":[{"id":"root","title":"Astrologos","text":"Astrologos Calculator\nA small programmable calculator for astronomy-oriented values.\n\nHello World\n  print \"hello world\";\n\nUseful Commands\n  help or help() returns the root documentation object.\n  help(\"time\") looks up named documentation topics.\n  help(\"examples\") or help.examples() shows common astronomy examples.\n  help().search(\"azimuth\") or help.search(\"azimuth\") searches all documentation.\n  value.help() returns documentation for a computed value.\n  about, licence, or disclaimer prints project caveats and licence text.\n  resource_sources() lists upstream data sources for registered resources.\n  h.doc(), h.compact(), h.syntax, and h.children inspect help values.\n  help results are list-like: h[0] selects one result and h.name projects names.\n\nSyntax Shorthand\n  let name = <expression>;\n  name = <expression>;\n  print value, other;\n  print; prints a blank line.\n  [a, b, c] creates an array; values[0] indexes one element.\n  {name: value, other: 2} creates an object; object.name reads a field.\n  Object fields can be assigned with object.name = value when the object is mutable.\n  value.help() returns contextual documentation.\n  help().search(\"text\") performs case-insensitive recursive search.\n  for i=0,10 { statements } or for i=0,10,2 { statements }\n  while condition { statements }\n  if condition statement; or if condition { statements }\n  if condition { statements } else if other { statements } else { statements }\n  break; exits the nearest loop.\n\nCommon Data Pages\n  pages(location(60,10)).sky() returns local sky data.\n  pages(time()).chart() returns apparent geocentric chart positions.\n  pages(location(60,10), moon).summary() returns compact local Moon data.\n  pages(location(60,10)).almanac(time()) returns a one-day local almanac.\n  pages(location(60,10)).table(days: 30) returns daily rise/set/transit rows.\n  pages(time()).state() returns solar-system state vectors.\n\nFunctions\n  time - creates UTC time, or local civil time when given a timezone, location, or place\n  weekday - creates a weekday value\n  location - creates a location system value\n  observer - creates a body-fixed 3D observer\n  body - creates a body system value\n  elements - creates osculating orbital elements\n  orbit - creates a two-body orbit from elements\n  system - creates an immutable system of integrated states, body-backed orbits, and ephemeris bodies\n  observation - creates an orbit-determination observation\n  orbit_determination - determines an orbit from three or more observations\n  heading - creates a compass heading\n  direction - creates a frame-tagged unit-sphere direction\n  polygon - creates a spherical polygon with great-circle edges\n  vector - creates a vector system value\n  spherical - creates a vector from spherical coordinates\n  matrix - creates a matrix system value\n  unit - creates a unit system value\n  state - creates an orbital state from ephemeris data or explicit initial conditions\n  places (aliases: placedb) - opens the GeoNames places resource\n  place - creates a custom Earth place from a location and timezone\n  country - resolves a country from a name, ISO code, Place, or Country\n  admin1 - resolves a first-level administrative region\n  admin2 - resolves a second-level administrative region\n  timezones (aliases: timezonedb, tzdb) - opens the IANA timezone boundary resource\n  timezone (aliases: tz) - creates an IANA timezone from an id or Earth location\n  stars (aliases: stardb) - opens the Yale Bright Star Catalogue resource\n  constellations - opens the IAU constellation boundary resource\n  graphics (aliases: plot) - creates a deferred SVG graphics object\n  target - creates a value/direction target for search(...), or passes through minimum/maximum\n  range - creates a numeric or time range for search(...)\n  search - searches for function crossings or local minimum/maximum points\n  forecast - opens a published GFS forecast cycle from the retained stack\n  netcdf - opens a NetCDF dataset and returns its dimensions and variables\n  field - creates a global scalar field from a NetCDF variable\n  topography - creates an approved global topography field for a body\n  magnetic - creates a magnetic field model handle\n  pages - creates a data-page builder with optional default body, time, and observer\n  help - returns the Astrologos calculator manual or one function's syntax\n  about (aliases: disclaimer, licence, license) - returns the project disclaimer, licence, and about text\n  resources - lists known runtime resources and whether they are loaded\n  resource_sources - lists upstream data sources for known runtime resources\n  exit - stops execution after the current statement, optionally returning a message\n  run - deprecated alias for exit()\n  functions - lists function metadata, optionally filtered by function name\n  fields - lists type field metadata, optionally filtered by field name\n  types - lists registered astro/system types, constructors, fields, and members\n  elapsed - returns elapsed execution time in seconds\n  sleep - pauses execution for a number of milliseconds\n  array - creates an array from positional values\n  hash - creates an ordered hash/object from named values\n  args - captures positional and named values as an argument-list value\n  keys - returns ordered keys for an array, object, or argument-list value\n  values - returns ordered values from an array, object, or argument-list value\n  items - returns ordered key/value objects from an array, object, or argument-list value\n  pretty - formats a value as indented JSON text\n  format - formats values as text with small printf-style placeholders\n  typeof - returns the type or function name of a value\n  altitude - returns corrected topographic altitude/elevation in degrees\n  azimuth - returns corrected topographic azimuth in degrees\n  distance - returns corrected geocentric distance in kilometers\n  right_ascension (aliases: ra) - returns corrected geocentric true-of-date right ascension in degrees\n  declination (aliases: dec) - returns corrected geocentric true-of-date declination in degrees\n  ecliptic_longitude - returns corrected apparent geocentric ecliptic longitude in degrees\n  heliocentric_ecliptic_longitude - returns corrected heliocentric ecliptic longitude in degrees\n  elongation - returns signed geocentric elongation from the Sun in degrees\n  moon_phase - returns Moon phase angle percentage in the range 0..100\n  moon_illumination - returns illuminated percentage of the Moon as seen from Earth\n  magnitude - returns approximate apparent visual magnitude\n  apparent_solar_time - returns apparent solar time in local hours\n  lunar_time - returns local lunar hour angle as hours\n  rotational_axis - returns a body's rotational north-pole RA, declination, and ICRF unit vector\n  rotational_axis_ra - returns a body's rotational north-pole right ascension in degrees\n  rotational_axis_dec - returns a body's rotational north-pole declination in degrees\n  dms - converts decimal degrees to degree-minute-second components\n  dd - converts degree-minute-second components to signed decimal degrees\n  solar_eclipse_magnitude - returns local solar eclipse magnitude at a time and location\n  solar_eclipse_obscuration - returns percent of the solar disc occulted locally\n  solar_eclipse_clearance - returns signed local Sun-Moon limb clearance in degrees\n  lunar_eclipse_magnitude - returns signed umbral lunar eclipse magnitude\n  lunar_penumbra_magnitude - returns signed penumbral lunar eclipse magnitude\n  lunar_eclipse_clearance - returns signed Moon-surface clearance from Earth's penumbra in kilometers\n  shadow_distance - returns signed surface clearance for the active Sun-Earth-Moon shadow geometry\n  moon_shadow_earth_distance - returns signed Earth-surface clearance from the Moon shadow cone in kilometers\n  moon_penumbra_distance - returns signed Moon-surface clearance from Earth's penumbra in kilometers\n  moon_umbra_distance - returns signed Moon-surface clearance from Earth's umbra in kilometers\n  moon_umbra_occultation - returns percent overlap of the Moon and Earth's umbra\n  location_shadow_distance - returns signed local observer clearance from the Moon shadow cone in kilometers\n  planet_shadow_earth_distance - returns signed Earth-surface clearance from a planet shadow cone in kilometers\n  events - finds astronomical events from event type constants and time ranges\n  sky - summarizes the local sky and upcoming local events\n  almanac - builds a range almanac from astronomical event searches\n  integrate - integrates a callable over named ranges or advances named derivatives\n  sample - samples a field at a latitude/longitude location\n  abs - returns the absolute value\n  sign - returns -1, 0, or 1 according to the sign\n  floor - rounds down to an integer value\n  ceil - rounds up to an integer value\n  round - rounds to the nearest integer value\n  trunc - truncates toward zero\n  fract - returns the fractional part\n  sqrt - returns the square root\n  cbrt - returns the cube root\n  exp - returns e raised to x\n  exp2 - returns 2 raised to x\n  ln - returns the natural logarithm\n  log - returns logarithm of x in the given base\n  log2 - returns the base-2 logarithm\n  log10 - returns the base-10 logarithm\n  pow - returns x raised to y\n  sin - returns sine of x radians\n  cos - returns cosine of x radians\n  tan - returns tangent of x radians\n  asin - returns arcsine in radians\n  acos - returns arccosine in radians\n  atan - returns arctangent in radians\n  atan2 - returns atan2(y, x) in radians\n  sinh - returns hyperbolic sine\n  cosh - returns hyperbolic cosine\n  tanh - returns hyperbolic tangent\n  asinh - returns inverse hyperbolic sine\n  acosh - returns inverse hyperbolic cosine\n  atanh - returns inverse hyperbolic tangent\n  hypot - returns sqrt(x*x + y*y) without undue overflow\n  min - returns the smallest numeric argument\n  max - returns the largest numeric argument\n  clamp - clips x to the inclusive range lower..upper\n  angle_in_degrees (aliases: angle_degrees) - returns the angle between two vectors in degrees\n  to_radians - converts degrees to radians\n  to_degrees - converts radians to degrees\n  is_finite - returns true when x is finite\n  is_nan - returns true when x is NaN\n  is_infinite - returns true when x is infinite\n  navigate - estimates an Earth location from target elevation observations\n  minimize - minimizes a numeric callable over named variables with optional bounds and constraints\n\nResources\n  constellations - IAU constellation boundaries from Bill Gray constbnd (source: IAU constellation boundaries / Bill Gray constbnd)\n  ephemeris - orbital ephemeris files used for state/orbit calculations (source: NASA/JPL Development Ephemeris DE441)\n  gfs_forecast - published GFS forecast cycle stack under gfs/ (source: NOAA/NCEP Global Forecast System)\n  iers - IERS Earth orientation and leap-second data used for UTC/TT/UT1/TDB conversions (source: IERS EOP C04)\n  magnetic_model - NOAA WMMHR magnetic coefficient model under magnetic/ (source: NOAA/NCEI World Magnetic Model High Resolution)\n  atmosphere - not implemented; reserved for atmospheric refraction and climatology inputs (source: not implemented)\n  earth_tides - not implemented; reserved for solid Earth tide displacement corrections (source: not implemented)\n  earth_topography - global Earth topography/bathymetry scalar field (source: NOAA/NCEI ETOPO1 bedrock global relief)\n  ocean_tides - not implemented; reserved for ocean tide and ocean-loading corrections (source: not implemented)\n  moon_topography - global Moon altitude topography scalar field (source: installed lunar altitude topography)\n  places - GeoNames place lookup database (source: GeoNames geographical database)\n  planetary_satellites - planetary-satellite ephemeris store derived from satellite SPK kernels (source: NAIF generic satellite SPK kernels)\n  small_bodies - massive small-body ephemeris store for asteroid/KBO perturbation models (source: Astrologos small-body ephemeris store)\n  solar_activity - not implemented; reserved for solar and geomagnetic activity indices (source: not implemented)\n  stars - Yale Bright Star Catalogue with common-name notes (source: Yale Bright Star Catalogue, 5th Revised Edition)\n  timezones - IANA timezone and location-boundary lookup database (source: IANA Time Zone Database and Timezone Boundary Builder)\n\nTypes\n  Time - UTC date/time value with resolved TT, UT1, and TDB scales\n  LocalTime - timezone-adjusted civil time derived from a UTC Time\n  Weekday - ISO weekday value\n  Location - body-aware latitude/longitude surface location\n  LocationSolution - navigation solution with location, residuals, and fit quality\n  Observer - body-fixed 3D observer with position, zenith, and derived surface location\n  Body - solar-system body with physical parameters from the reference C model\n  Bodies - registry of known solar-system bodies and massive small-body perturbers\n  Elements - osculating orbital elements using periapsis distance as the primary distance\n  Orbit - two-body orbit backed by osculating elements or a relative state vector\n  System - immutable orbit propagation system with shared snapshot cache\n  Observation - measured sky direction or target elevation observation\n  OrbitSolution - orbit determination result with orbit, residuals, and fit quality\n  Shadow - instantaneous sunlight shadow geometry for one body on another\n  Heading - compass heading measured clockwise from north\n  Direction - unit-sphere direction tagged with a coordinate frame\n  Polygon - right-handed spherical polygon with great-circle edges\n  Vector - 3D vector with cached cartesian and spherical representations\n  Matrix - 3x3 matrix compatible with reference vector transforms\n  Unit - named unit used when requesting or displaying numeric values\n  State - orbital state backed by ephemeris data with lazy derived fields\n  Places - GeoNames place lookup database handle\n  Place - GeoNames place record with location and feature metadata\n  Country - ISO country used to inspect and filter places\n  Admin1 - first-level GeoNames administrative region used to filter places\n  Admin2 - second-level GeoNames administrative region used to filter places\n  Timezones - IANA timezone lookup database handle\n  Timezone - IANA timezone with optional boundary and representative-location metadata\n  Stars - Yale Bright Star Catalogue database handle\n  Star - catalog star with identifiers, astrometry, and sky methods\n  ConstellationDb - IAU constellation boundary database handle\n  Constellation - IAU constellation boundary record\n  Event - astronomical event result\n  Graphics - deferred SVG graphics drawing context\n  Target - search target value and crossing direction\n  Range - numeric or time scan range\n  Search - configured scalar search value\n  Forecast - published GFS forecast cycle from the retained stack\n  ForecastProduct - forecast product selector bound to a forecast\n  ScalarField - forecast scalar field selected from a product\n  VectorField - forecast vector field selected from a product\n  FieldSource - approved external field dataset source\n  NetCDF - opened NetCDF dataset metadata\n  Field - sampleable global scalar field\n  Magnetic - body-scoped magnetic field model\n  Pages - curated data-page builder with optional default body, time, and observer\n\nObjects\n  Object - ordered mutable field collection\n    literal: {name: value, count: 2}\n    access: object.name or object[\"name\"]\n    helpers: keys(object), values(object), items(object), object.available(), object.help()","metadata":{"name":"Astrologos","path":"Astrologos","kind":"root","aliases":[],"resources":[],"children":["topic:syntax","topic:examples","topic:themes","topic:syntax.basics","topic:syntax.loops","topic:syntax.blocks","topic:syntax.functions","topic:syntax.overloads","topic:syntax.namespaces","topic:example.getting_started","topic:example.syntax","topic:example.time_calendar","topic:example.locations_timezones","topic:example.sunrise","topic:example.sunrise.day","topic:example.sunrise.month","topic:example.moonrise","topic:example.moon_phase","topic:example.stars","topic:example.constellations","topic:example.moon_stars","topic:example.sky_charts","topic:example.planets","topic:example.eclipses","topic:example.almanac","topic:example.pages","topic:example.coordinates","topic:example.vectors_matrices","topic:example.orbit_propagation","topic:example.polygons","topic:example.places_timezones","topic:example.weather_fields","topic:example.topography","topic:example.magnetic","topic:example.weather","topic:example.graphics","topic:example.resources","topic:example.runtime","topic:example.math","topic:example.search","function:time","function:weekday","function:location","function:observer","function:body","function:elements","function:orbit","function:system","function:observation","function:orbit_determination","function:heading","function:direction","function:polygon","function:vector","function:spherical","function:matrix","function:unit","function:state","function:places","function:place","function:country","function:admin1","function:admin2","function:timezones","function:timezone","function:stars","function:constellations","function:graphics","function:target","function:range","function:search","function:forecast","function:netcdf","function:field","function:topography","function:magnetic","function:pages","function:help","function:about","function:resources","function:resource_sources","function:exit","function:run","function:functions","function:fields","function:types","function:elapsed","function:sleep","function:array","function:hash","function:args","function:keys","function:values","function:items","function:pretty","function:format","function:typeof","function:altitude","function:azimuth","function:distance","function:right_ascension","function:declination","function:ecliptic_longitude","function:heliocentric_ecliptic_longitude","function:elongation","function:moon_phase","function:moon_illumination","function:magnitude","function:apparent_solar_time","function:lunar_time","function:rotational_axis","function:rotational_axis_ra","function:rotational_axis_dec","function:dms","function:dd","function:solar_eclipse_magnitude","function:solar_eclipse_obscuration","function:solar_eclipse_clearance","function:lunar_eclipse_magnitude","function:lunar_penumbra_magnitude","function:lunar_eclipse_clearance","function:shadow_distance","function:moon_shadow_earth_distance","function:moon_penumbra_distance","function:moon_umbra_distance","function:moon_umbra_occultation","function:location_shadow_distance","function:planet_shadow_earth_distance","function:events","function:sky","function:almanac","function:integrate","function:sample","function:abs","function:sign","function:floor","function:ceil","function:round","function:trunc","function:fract","function:sqrt","function:cbrt","function:exp","function:exp2","function:ln","function:log","function:log2","function:log10","function:pow","function:sin","function:cos","function:tan","function:asin","function:acos","function:atan","function:atan2","function:sinh","function:cosh","function:tanh","function:asinh","function:acosh","function:atanh","function:hypot","function:min","function:max","function:clamp","function:angle_in_degrees","function:to_radians","function:to_degrees","function:is_finite","function:is_nan","function:is_infinite","function:navigate","function:minimize","type:Time","type:LocalTime","type:Weekday","type:Location","type:LocationSolution","type:Observer","type:Body","type:Bodies","type:Elements","type:Orbit","type:System","type:Observation","type:OrbitSolution","type:Shadow","type:Heading","type:Direction","type:Polygon","type:Vector","type:Matrix","type:Unit","type:State","type:Places","type:Place","type:Country","type:Admin1","type:Admin2","type:Timezones","type:Timezone","type:Stars","type:Star","type:ConstellationDb","type:Constellation","type:Event","type:Graphics","type:Target","type:Range","type:Search","type:Forecast","type:ForecastProduct","type:ScalarField","type:VectorField","type:FieldSource","type:NetCDF","type:Field","type:Magnetic","type:Pages","constant:sun","constant:mercury","constant:venus","constant:moon","constant:earth","constant:mars","constant:jupiter","constant:saturn","constant:uranus","constant:neptune","constant:pluto","constant:monday","constant:tuesday","constant:wednesday","constant:thursday","constant:friday","constant:saturday","constant:sunday","constant:barycentric","constant:bc","constant:heliocentric","constant:hc","constant:geocentric","constant:gc","constant:topocentric","constant:topo","constant:icrf","constant:icrs","constant:tod","constant:true_of_date","constant:trueofdate","constant:ecliptic","constant:ecliptic_of_date","constant:earthfixed","constant:earth_fixed","constant:ef","constant:sunfixed","constant:sun_fixed","constant:mercuryfixed","constant:mercury_fixed","constant:venusfixed","constant:venus_fixed","constant:moonfixed","constant:moon_fixed","constant:marsfixed","constant:mars_fixed","constant:jupiterfixed","constant:jupiter_fixed","constant:saturnfixed","constant:saturn_fixed","constant:uranusfixed","constant:uranus_fixed","constant:neptunefixed","constant:neptune_fixed","constant:plutofixed","constant:pluto_fixed","constant:topographic","constant:horizon","constant:no_correction","constant:light_time","constant:apparent","constant:all_corrections","value:List","value:Object","value:Arguments","value:Callable","value:Help","value:HelpResult","value:Nil","value:Unavailable","value:Bool","value:Number","value:Text","value:EventType","value:SearchDirection","value:FieldSource","value:NetCDF","value:Field","value:SearchGoal","value:Reference"]}},{"id":"topic:syntax","title":"Astrologos.syntax","text":"Topic: Astrologos.syntax - general Astrologos language syntax for scripts, expressions, blocks, and definitions\nSyntax:\n  help(\"syntax\")\n  help(\"loops\")\n  help(\"blocks\")\n  help(\"custom functions\")\n  help(\"overloads\")\n  help(\"namespaces\")\nAliases: language, grammar, programming\nChildren: syntax basics, loops, blocks, custom functions, function overloads, namespaces\nExamples:\n# Minimal local sky script\n   let loc = location(60.0, 10.0);\n   let obs = loc.observer(0.002);\n   let t = time(2026,6,21,12,0,0);\n   print altitude(sun, t, obs), azimuth(sun, t, obs);\n\n# Define a reusable local altitude helper\n   let local_altitude = (body, t): {\n   let loc = location(latitude: 60, longitude: 10);\n   let obs = loc.observer(0.002);\n   let value = altitude(body, t, obs);\n   };\n   let f = (body, t): local_altitude(body, t).value;\n   let t = time(2026,1,1,21,0,0);\n   let a = local_altitude(moon, t);\n   print f(moon, t), a.value, a.loc, a.obs;","metadata":{"name":"syntax","path":"Astrologos.syntax","kind":"topic","aliases":["language","grammar","programming"],"resources":[],"children":["topic:syntax.basics","topic:syntax.loops","topic:syntax.blocks","topic:syntax.functions","topic:syntax.overloads","topic:syntax.namespaces"]}},{"id":"topic:syntax.basics","title":"Astrologos.syntax.basics","text":"Topic: Astrologos.syntax.basics - core expression, statement, value, comment, array, object, field, and call syntax\nSyntax:\n  let name = expression;\n  name = expression;\n  print value, other;\n  # comment\n  // comment\n  [a, b, c]\n  {name: value, other: 2}\n  object.name\n  object[\"name\"]\n  call(argument, named: value)\nAliases: basics, statements, expressions, comments, objects, arrays\nExamples:\n# Store one local sky sample as an object row\n   let t = time(2026,1,1,21,0,0); # UTC\n   let loc = location(60.0, 10.0);\n   let row = {body: moon.name, when: t.utc(), altitude: altitude(moon, t, loc.observer())};\n   print row.body, row.when, row.altitude;\n\n# Use named arguments for an observing site\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let obs = loc.observer(height: 0.002);\n   print obs.latitude(), obs.longitude(), altitude(sun, time(2026,6,21,12,0,0), obs);","metadata":{"name":"syntax basics","path":"Astrologos.syntax.basics","kind":"topic","aliases":["basics","statements","expressions","comments","objects","arrays"],"resources":[],"children":[]}},{"id":"topic:syntax.loops","title":"Astrologos.syntax.loops","text":"Topic: Astrologos.syntax.loops - for loops, while loops, break, and numeric iteration syntax\nSyntax:\n  for i=start,stop { statements }\n  for i=start,stop,step { statements }\n  while condition { statements }\n  break;\nAliases: for, while, break, iteration, loop\nExamples:\n# Loop over every third hour of a day\n   let loc = location(60.0, 10.0);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   for h=0,24,3 {\n   let t = t0.add_hours(h);\n   print t.utc(), altitude(sun, t, obs);\n   }\n\n# Stop a while loop when the Sun reaches a useful altitude\n   let loc = location(60.0, 10.0);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   let h = 0;\n   while h < 24 {\n   if altitude(sun, t0.add_hours(h), obs) > 20 break;\n   h = h + 1;\n   }\n   print t0.add_hours(h).utc(), altitude(sun, t0.add_hours(h), obs);","metadata":{"name":"loops","path":"Astrologos.syntax.loops","kind":"topic","aliases":["for","while","break","iteration","loop"],"resources":[],"children":[]}},{"id":"topic:syntax.blocks","title":"Astrologos.syntax.blocks","text":"Topic: Astrologos.syntax.blocks - braced statement blocks, scope expressions, if/else branches, and the implemented For(...) block expression\nSyntax:\n  { statements }\n  if condition statement;\n  if condition { statements } else if other { statements } else { statements }\n  For(i, start, stop, step) { statements }\nAliases: block expressions, scope, For block, if else\nExamples:\n# if, else if, and else blocks\n   let altitude_now = altitude(sun, time(), location(60,10).observer());\n   if altitude_now > 0 {\n   print \"sun is above the horizon\";\n   } else if altitude_now > -6 {\n   print \"civil twilight\";\n   } else {\n   print \"night\";\n   }\n\n# For(...) block expression can keep the last daylight sample\n   let loc = location(60,10);\n   let obs = loc.observer();\n   let t0 = time(2026,6,21,0,0,0);\n   let result = For(h, 0, 24, 6) {\n   let time_utc = t0.add_hours(h).utc();\n   let sun_altitude = altitude(sun, t0.add_hours(h), obs);\n   };\n   print result.time_utc, result.sun_altitude;","metadata":{"name":"blocks","path":"Astrologos.syntax.blocks","kind":"topic","aliases":["block expressions","scope","For block","if else"],"resources":[],"children":[]}},{"id":"topic:syntax.functions","title":"Astrologos.syntax.functions","text":"Topic: Astrologos.syntax.functions - plain definitions, typed definitions, and closure values for reusable calculations\nSyntax:\n  name(parameter, other) { statements }\n  type Name(parameter) { statements }\n  (parameter, other): expression\nAliases: definitions, user functions, closures, lambda, callable\nExamples:\n# Custom function returning exported fields\n   sun_sample(t, loc) {\n   let obs = loc.observer(0.002);\n   let altitude_deg = altitude(sun, t, obs);\n   let azimuth_deg = azimuth(sun, t, obs);\n   }\n   let sample = sun_sample(time(2026,6,21,12,0,0), location(60,10));\n   print sample.altitude_deg, sample.azimuth_deg;\n\n# Closure used as a search function\n   let root = search((x): cos(x) - 0.5, range(0, 4, 0.25), target(0, decreasing)).next();\n   print root;\n\n# User-defined type with a closure-valued field\n   type obs(t) {\n   let year_plus = (d): t.year() + d;\n   }\n   let x = obs(time(2026,4,27,8,26,0));\n   print x.year_plus(1);","metadata":{"name":"custom functions","path":"Astrologos.syntax.functions","kind":"topic","aliases":["definitions","user functions","closures","lambda","callable"],"resources":[],"children":[]}},{"id":"topic:syntax.overloads","title":"Astrologos.syntax.overloads","text":"Topic: Astrologos.syntax.overloads - multiple callable signatures, overload-specific argument order, and query-dependent return shapes\nSyntax:\n  help(\"function_name\").syntax\n  help(\"events\").syntax\n  events(event_type, bounded_range) -> List\n  events(event_type, open_range) -> Event|Nil\n  collection.first()\nAliases: overloads, signatures, return shape, return types, return-shape-dependent behaviour, return-shape-dependent behavior\nExamples:\n# Inspect overloads before choosing argument order\n   print help(\"events\").syntax;\n\n# Bounded event searches return a list, so collection methods apply\n   let oslo = location(latitude: 59.9139, longitude: 10.7522);\n   let day = range(time(2026,7,11,0,0,0), time(2026,7,12,0,0,0));\n   let sunset = events(sunset, day, oslo).first();\n   print sunset.time.utc();\n\n# Open-ended event searches return one Event or Nil, not a list\n   let oslo = location(latitude: 59.9139, longitude: 10.7522);\n   let after = range(time(2026,7,11,0,0,0), infinity, 1);\n   let sunset = events(sunset, after, oslo);\n   if sunset != nil { print sunset.time.utc(); }\n\n# Return shape may vary by query: guard Nil and Unavailable values\n   let empty = places().search(\"Oslo\", country: \"ZZ\").first();\n   let missing = places().find(\"definitely-not-a-real-place-name\");\n   print empty == nil, empty.available();\n   print missing.available(), missing.reason;\n   if empty.available() { print empty.name; } else { print \"empty search\"; }\n   if missing.available() { print missing.name; } else { print \"missing lookup\"; }","metadata":{"name":"function overloads","path":"Astrologos.syntax.overloads","kind":"topic","aliases":["overloads","signatures","return shape","return types","return-shape-dependent behaviour","return-shape-dependent behavior"],"resources":[],"children":[]}},{"id":"topic:syntax.namespaces","title":"Astrologos.syntax.namespaces","text":"Topic: Astrologos.syntax.namespaces - using objects, user-defined types, and returned definition objects as field namespaces\nSyntax:\n  {name: value}.name\n  object[\"name\"]\n  object[key] = value\n  type Name(...) { let field = value; }\n  definition(...).field\n  hash(name: value)\n  call(**arguments)\nAliases: objects as namespaces, fields, methods, module objects, type fields\nExamples:\n# Object fields as a small namespace\n   let sky = {place: location(60,10), at: time(2026,1,1,21,0,0)};\n   print sky.place.latitude, sky.at.utc();\n\n# Nested namespace object\n   let observatory = {site: {name: \"Stavanger\", loc: location(58.9666667, 5.7333333)}, instruments: {main: \"sky\", backup: \"chart\"}};\n   print observatory.site.name, observatory.site.loc.latitude, observatory.instruments.main;\n\n# Dynamic field access with brackets\n   let row = {body: sun.name, value: sun.radius};\n   let key = \"body\";\n   print row[key], row[\"value\"];\n\n# Mutable object fields\n   let row = {body: sun.name, count: 1};\n   row.count = row.count + 1;\n   row[\"note\"] = \"updated\";\n   print row.count, row.note;\n\n# Hash as named arguments\n   let opts = hash(latitude: 60.0, longitude: 10.0);\n   let loc = location(**opts);\n   print loc.latitude, loc.longitude;\n\n# Arguments object with updates\n   let base = args(latitude: 60.0, longitude: 10.0);\n   let moved = base.with(longitude: 12.0);\n   print location(**base).longitude, location(**moved).longitude;\n\n# Array spread for positional arguments\n   let values = array(58.9666667, 5.7333333);\n   let loc = location(**values);\n   print loc.latitude, loc.longitude;\n\n# Scope expression exports public let values\n   let opts = { let latitude = 60.0; let longitude = 10.0; let _internal = 99; };\n   let loc = location(**opts);\n   print loc.latitude, loc.longitude;\n\n# Definition result as a namespace of related values\n   solar_day(loc, t) {\n   let span = range(t, t.add_days(1));\n   let sunrise_time = events(sunrise, span, loc).first().time.utc();\n   let sunset_time = events(sunset, span, loc).first().time.utc();\n   }\n   let d = solar_day(location(latitude: 58.9666667, longitude: 5.7333333), time(2024,4,17,0,0,0));\n   print d.sunrise_time, d.sunset_time;\n\n# Typed namespace with closure-valued members\n   type SolarSite(loc) {\n   let sunrise_time = (t): events(sunrise, range(t, t.add_days(1)), loc).first().time.utc();\n   let sunset_time = (t): events(sunset, range(t, t.add_days(1)), loc).first().time.utc();\n   }\n   let site = SolarSite(location(latitude: 58.9666667, longitude: 5.7333333));\n   print site.sunrise_time(time(2024,4,17,0,0,0)), site.sunset_time(time(2024,4,17,0,0,0));","metadata":{"name":"namespaces","path":"Astrologos.syntax.namespaces","kind":"topic","aliases":["objects as namespaces","fields","methods","module objects","type fields"],"resources":[],"children":[]}},{"id":"topic:examples","title":"Astrologos.examples","text":"Topic: Astrologos.examples - common astronomy calculator examples\nSyntax:\n  help(\"examples\")\n  help.examples()\n  help().help(\"examples\")\nAliases: common_examples, cookbook, recipes\nChildren: getting started, syntax examples, time and calendars, locations and timezones, sunrise examples, sunrise day, sunrise month, moonrise and lunar visibility, moon phase, stars(), constellations(), moon and stars, sky charts fixed stars and close approaches, planet events, eclipses and shadows, almanac pages, pages(), coordinates and directions, vectors matrices orbits, orbit propagation, polygons, places and timezones, weather and fields, topography(), magnetic field, weather and fields, charts and graphics, resources and diagnostics, runtime automation, math recipes, search and optimization\nExamples:\n# Local sky sampler for Oslo-style coordinates\n   let loc = location(60.0, 10.0);\n   let s = pages(loc).sky(time(2026,1,1,21,0,0));\n   print s.sun.altitude, s.moon.altitude, s.moon.phase;\n\n# Compact chart sampler with two body longitudes\n   let t = time(2026,1,1,0,0,0);\n   let c = pages(t).chart();\n   print c.bodies.sun.chart.sign, c.bodies.mars.geocentric.longitude;\n\n# Compact local Moon page\n   let loc = location(60.0, 10.0);\n   let m = pages(loc, moon).summary(time());\n   print m.position.topocentric.altitude, m.phase, m.illumination;\n\n# Month-style rise/set table\n   let loc = location(60.0, 10.0);\n   let rows = pages(loc, time(2026,6,1,0,0,0)).table(days: 30);\n   print rows[0].sunrise.time, rows[0].sunset.time;\n\n# Solar-system state sampler for Mars and Earth\n   let st = pages(time(2026,1,1,0,0,0)).state();\n   print st.bodies.mars.position_bc_icrf.x, st.bodies.earth.velocity_bc_icrf.y;\n\n# Orbit propagation diagnostics for an explicit comet state\n   let t0 = time(2026,4,27,8,26,0);\n   let comet0 = state(body: body(\"comet\"), time: t0, position: vector(100000000,0,0), velocity: vector(0,10,0));\n   let later = system(t0, comet0, sun).at(t0.add_days(10));\n   print later.diagnostics.accepted_steps, later.ephemeris_residuals.sun;\n\n# Full local day page\n   let d = pages(location(60.0, 10.0), time(2026,1,1,0,0,0)).small();\n   print d.short.sun.rise.time, d.chart.bodies.moon.geocentric.longitude;\n\n# Sunrise in Stavanger on a civil date\n   let loc = location(58.9666667, 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   print events(sunrise, day, loc).first().time.utc();\n\n# Days between two dates\n   print time(2026,3,1)-time(2025,1,2);\n\n# Sunrise and sunset together\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   print events(sunrise, day, loc).first();\n   print events(sunset, day, loc).first();\n\n# Moonrise for the next few days\n   let loc = location(60.0, 10.0);\n   let start = time(2026,5,20,0,0,0);\n   print events(moonrise, range(start, start.add_days(5), 0.5), loc);\n\n# Northern solstice in a year\n   let year = range(time(2024,1,1,0,0,0), time(2025,1,1,0,0,0), 30);\n   print events(northern_solstice, year).first().time.utc();\n\n# Season sampler from an annual almanac\n   let a = almanac(time(2024,1,1,0,0,0), time(2025,1,1,0,0,0));\n   print a.seasons.ascending_equinox.time.utc, a.seasons.northern_solstice.time.utc;\n\n# Earth orbital-distance sampler around perihelion\n   let peri = events(perihelion, range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1), earth).first();\n   print peri.time.utc(), peri.value;\n\n# Body method form for perihelion\n   print earth.perihelion(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1).first();\n\n# Lunar perigee and apogee in a month\n   let month = range(time(2024,4,1,0,0,0), time(2024,5,1,0,0,0), 1);\n   print events(perigee, month, moon);\n   print events(apogee, month, moon);\n\n# Moon boundary lookup sampler\n   let t = time(2024,4,17,0,0,0);\n   let moon_dir = direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections));\n   print moon_dir.ra, moon_dir.dec, constellations().inside(moon_dir);\n\n# Sirius sampler with altitude at a site\n   let sirius = stars().find(\"Sirius\");\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let t = time(2026,1,1,21,0,0);\n   print sirius.name, sirius.constellation(), sirius.altaz(t, obs).altitude;\n\n# Star transit and set for Sirius\n   let sirius = stars().find(\"Sirius\");\n   let obs = location(60.0, 10.0).observer(0.002);\n   let night = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0), 0.25);\n   print sirius.transit(night, obs).first();\n   print sirius.set(night, obs).first();\n\n# Constellation sampler for a named star direction\n   let sirius = stars().find(\"Sirius\");\n   print sirius.name, constellations().inside(sirius.direction());\n\n# Planet event sampler for Jupiter opposition\n   let year = range(time(2024,1,1,0,0,0), time(2025,1,1,0,0,0), 2);\n   print events(opposition, year, jupiter).first().time.utc();\n\n# Local almanac for one month\n   let loc = location(58.9666667, 5.7333333);\n   let start = time(2024,4,1,0,0,0);\n   let a = almanac(start, start.add_months(1), loc);\n   print a.local.sun.rise;\n   print a.moon.full;\n\n# Solar eclipse magnitude sampler near Dallas\n   let dallas = location(latitude: 32.7767, longitude: -96.7970);\n   let t = time(2024,4,8,18,20,0);\n   print solar_eclipse_magnitude(t, dallas), solar_eclipse_obscuration(t, dallas);\n\n# Numeric search sampler for a sine crossing\n   let root = search((x): sin(x), range(2, 4, 0.1), target(0, decreasing)).next();\n   print root;\n\n# Sun altitude curve samples around a day\n   let loc = location(60.0, 10.0);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   for h=0,24,2 {\n   let t = t0.add_hours(h);\n   print t.utc(), altitude(sun, t, obs);\n   }\n\n# Quick SVG sky sampler with planets only\n   graphics(time(2026,1,1,21,0,0), location(latitude: 60, longitude: 10)).dark().sky_view(center_az: 180, center_alt: 45, fov: 120).sky_grid().sky_planets().write_svg(\"sky-planets.svg\");\n   print \"wrote sky-planets.svg\";","metadata":{"name":"examples","path":"Astrologos.examples","kind":"topic","aliases":["common_examples","cookbook","recipes"],"resources":[],"children":["topic:example.getting_started","topic:example.syntax","topic:example.time_calendar","topic:example.locations_timezones","topic:example.sunrise","topic:example.sunrise.day","topic:example.sunrise.month","topic:example.moonrise","topic:example.moon_phase","topic:example.stars","topic:example.constellations","topic:example.moon_stars","topic:example.sky_charts","topic:example.planets","topic:example.eclipses","topic:example.almanac","topic:example.pages","topic:example.coordinates","topic:example.vectors_matrices","topic:example.orbit_propagation","topic:example.polygons","topic:example.places_timezones","topic:example.weather_fields","topic:example.topography","topic:example.magnetic","topic:example.weather","topic:example.graphics","topic:example.resources","topic:example.runtime","topic:example.math","topic:example.search"]}},{"id":"topic:themes","title":"Astrologos.themes","text":"Topic: Astrologos.themes - recommended thematic help areas for the RAG help search cookbook\nSyntax:\n  help(\"sunrise examples\")\n  help(\"moon sirius\")\n  help(\"weather examples\")\n  help.search(\"visible stars\")\nAliases: theme list, cookbook index, example themes, recipes index\nChildren: getting started, syntax examples, time and calendars, locations and timezones, sunrise examples, sunrise day, sunrise month, moonrise and lunar visibility, moon phase, stars(), constellations(), moon and stars, sky charts fixed stars and close approaches, planet events, eclipses and shadows, almanac pages, pages(), coordinates and directions, vectors matrices orbits, polygons, places and timezones, weather and fields, topography(), magnetic field, weather and fields, charts and graphics, resources and diagnostics, runtime automation, math recipes, search and optimization\nExample:\n# Theme list\n   print help(\"sunrise examples\").compact();\n   print help(\"moon and stars\").compact();\n   print help(\"charts and graphics\").compact();","metadata":{"name":"help themes","path":"Astrologos.themes","kind":"topic","aliases":["theme list","cookbook index","example themes","recipes index"],"resources":[],"children":["topic:example.getting_started","topic:example.syntax","topic:example.time_calendar","topic:example.locations_timezones","topic:example.sunrise","topic:example.sunrise.day","topic:example.sunrise.month","topic:example.moonrise","topic:example.moon_phase","topic:example.stars","topic:example.constellations","topic:example.moon_stars","topic:example.sky_charts","topic:example.planets","topic:example.eclipses","topic:example.almanac","topic:example.pages","topic:example.coordinates","topic:example.vectors_matrices","topic:example.polygons","topic:example.places_timezones","topic:example.weather_fields","topic:example.topography","topic:example.magnetic","topic:example.weather","topic:example.graphics","topic:example.resources","topic:example.runtime","topic:example.math","topic:example.search"]}},{"id":"topic:example.getting_started","title":"Astrologos.examples.getting_started","text":"Topic: Astrologos.examples.getting_started - starter examples for printing, JSON output, help discovery, values, and runtime control\nSyntax:\n  print value, other;\n  json value;\n  help(\"topic\")\n  functions()\n  typeof(value)\nAliases: hello world, print, json output, introspection, first program\nExamples:\n# Hello world and plain output\n   print \"hello world\";\n   print time(2026,1,1,0,0,0).utc();\n\n# JSON output for a local sky sample\n   let loc = location(60.0, 10.0);\n   let t = time(2026,1,1,12,0,0);\n   json {time: t.utc(), sun_altitude: altitude(sun, t, loc.observer()), moon_phase: moon_phase(t)};\n\n# Pretty-print a compact chart row\n   let t = time(2026,1,1,0,0,0);\n   pretty {sun_longitude: ecliptic_longitude(sun, t), moon_longitude: ecliptic_longitude(moon, t), phase: moon_phase(t)};\n\n# First useful almanac query: sunrise and sunset\n   let loc = location(58.9666667, 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   print events(sunrise, day, loc).first().time.utc(), events(sunset, day, loc).first().time.utc();\n\n# Build a body scale table for a report\n   let rows = [{name: sun.name, radius_ratio: sun.radius / earth.radius}, {name: moon.name, radius_ratio: moon.radius / earth.radius}, {name: mars.name, radius_ratio: mars.radius / earth.radius}];\n   print rows.name, rows.radius_ratio;\n\n# Reuse named arguments for nearby observing sites\n   let stavanger = args(latitude: 58.9666667, longitude: 5.7333333);\n   let oslo = stavanger.with(latitude: 59.9139, longitude: 10.7522);\n   print altitude(sun, time(2026,6,21,12,0,0), location(**stavanger).observer()), altitude(sun, time(2026,6,21,12,0,0), location(**oslo).observer());\n\n# Time a useful sunrise search\n   let start = elapsed();\n   let loc = location(58.9666667, 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   let rise = events(sunrise, day, loc).first().time.utc();\n   print rise, elapsed() - start;","metadata":{"name":"getting started","path":"Astrologos.examples.getting_started","kind":"topic","aliases":["hello world","print","json output","introspection","first program"],"resources":[],"children":[]}},{"id":"topic:example.syntax","title":"Astrologos.examples.syntax","text":"Topic: Astrologos.examples.syntax - task-shaped examples for Astrologos language syntax and reusable helper definitions\nSyntax:\n  let name = expression;\n  for i=start,stop,step { statements }\n  name(parameter) { statements }\n  (x): expression\n  {name: value}\nAliases: language examples, programming examples, closures examples, definitions examples\nChildren: syntax, loops, blocks, custom functions, namespaces\nExamples:\n# Loop and conditional syntax together\n   let total = 0;\n   for i=0,10,2 {\n   if i > 6 break;\n   total = total + i;\n   }\n   print total;\n\n# Custom helper returning a namespace object\n   sun_angles(t, loc) {\n   let obs = loc.observer(0.002);\n   let altitude_deg = altitude(sun, t, obs);\n   let azimuth_deg = azimuth(sun, t, obs);\n   }\n   let a = sun_angles(time(2026,6,21,12,0,0), location(latitude: 60, longitude: 10));\n   print a.altitude_deg, a.azimuth_deg;\n\n# Object literal as a reusable observation row\n   let row = {body: sun.name, time: time(2026,6,21,12,0,0), loc: location(60,10)};\n   print row.body, row.time.utc(), altitude(sun, row.time, row.loc.observer());\n\n# Hash for named options\n   let opts = hash(latitude: 58.9666667, longitude: 5.7333333);\n   print location(**opts);\n\n# Arguments object for reusable call settings\n   let stavanger = args(latitude: 58.9666667, longitude: 5.7333333);\n   let oslo = stavanger.with(latitude: 59.9139, longitude: 10.7522);\n   print location(**stavanger), location(**oslo);\n\n# Project fields from an observation object\n   let sample = {body: moon.name, phase: moon_phase(time(2026,1,1,0,0,0)), illumination: moon_illumination(time(2026,1,1,0,0,0))};\n   print sample.body, sample.phase, sample.illumination;\n\n# Bracket access chooses a field at runtime\n   let field_name = \"longitude\";\n   let loc = {latitude: 60, longitude: 10};\n   print loc[field_name];\n\n# Namespaces can hold local sky report functions\n   let loc = location(60,10).observer(0.002);\n   let tools = {sun_alt: (t): altitude(sun, t, loc), moon_alt: (t): altitude(moon, t, loc)};\n   let t = time(2026,6,21,22,0,0);\n   print tools.sun_alt(t), tools.moon_alt(t);\n\n# Closure as a reusable altitude formula\n   let loc = location(60,10).observer(0.002);\n   let sun_alt = (t): altitude(sun, t, loc);\n   print sun_alt(time(2026,6,21,12,0,0));\n\n# Scope expression as a computed namespace\n   let report = {\n   let loc = location(60,10);\n   let t = time(2026,6,21,12,0,0);\n   let sun_altitude = altitude(sun, t, loc.observer());\n   };\n   print report.loc.latitude, report.sun_altitude;\n\n# Spread an array into positional arguments\n   let pair = [60.0, 10.0];\n   print location(**pair);\n\n# Type definition with a captured value\n   type Report(t) {\n   let year = (): t.year;\n   }\n   let r = Report(time(2026,1,1,0,0,0));\n   print r.year();\n\n# Type definition as a domain-specific namespace\n   type AlmanacFor(loc) {\n   let daylight = (t): events(sunset, range(t, t.add_days(1)), loc).first().time - events(sunrise, range(t, t.add_days(1)), loc).first().time;\n   }\n   let a = AlmanacFor(location(58.9666667, 5.7333333));\n   print a.daylight(time(2024,4,17,0,0,0));\n\n# Derive a one-argument function from a two-argument closure\n   let f = (x, y): x * y;\n   let g = (x): f(x, 2);\n   print g(5);\n\n# Derive several closures from one base formula\n   let f = (x, y): x * y + y;\n   let double_plus_two = (x): f(x, 2);\n   let triple_plus_three = (x): f(x, 3);\n   print double_plus_two(5), triple_plus_three(5);\n\n# Store related derived functions in a namespace\n   let f = (x, y): x * y;\n   let tools = {double: (x): f(x, 2), triple: (x): f(x, 3)};\n   print tools.double(7), tools.triple(7);\n\n# Function result can expose derived closures\n   make_scale(k) {\n   let apply = (x): x * k;\n   let describe = (x): \"scaled\";\n   }\n   let scale = make_scale(4);\n   print scale.apply(6), scale.describe(6);\n\n# Function result can expose raw values and helper functions\n   bundle(x) {\n   let value = x;\n   let square = (n): n * n;\n   let cube = (n): n * n * n;\n   }\n   let b = bundle(5);\n   print b.value, b.square(b.value), b.cube(b.value);\n\n# Build a calculation pipeline for daylight quality scoring\n   let clear_hours = (daylight_hours): daylight_hours * 0.65;\n   let score = (daylight_hours): clear_hours(daylight_hours) / 12;\n   print score(18.4);\n\n# Closure captures a constant from the surrounding scope\n   let offset = 7;\n   let shifted = (x): x + offset;\n   print shifted(5);\n\n# Closure captures a location for repeated solar altitude samples\n   let loc = location(60, 10);\n   let obs = loc.observer(0.002);\n   let sun_alt = (t): altitude(sun, t, obs);\n   print sun_alt(time(2026,6,21,12,0,0));\n\n# Build a reusable time-shift closure\n   let t0 = time(2026,1,1,0,0,0);\n   let after_hours = (h): t0.add_hours(h).utc();\n   print after_hours(6), after_hours(12);\n\n# Use a closure as an object field selected by name\n   let ops = {add: (x, y): x + y, multiply: (x, y): x * y};\n   let name = \"multiply\";\n   print ops[name](6, 7);\n\n# Dispatch between report formulas with bracket syntax\n   let loc = location(60,10).observer(0.002);\n   let formulas = {sun: (t): altitude(sun, t, loc), moon: (t): altitude(moon, t, loc)};\n   let chosen = \"moon\";\n   let t = time(2026,6,21,22,0,0);\n   print formulas[chosen](t), formulas[\"sun\"](t);\n\n# Update a namespace with a derived function\n   let tools = {base: (x): x + 1};\n   tools[\"twice\"] = (x): tools.base(x) * 2;\n   print tools.twice(9);\n\n# Update an array and then use it as function input\n   let values = [1, 2, 3];\n   values[1] = 8;\n   let sum3 = (items): items[0] + items[1] + items[2];\n   print sum3(values);\n\n# Build an object row with dynamic keys\n   let row = {};\n   let key = \"altitude\";\n   row[key] = 42.5;\n   row[\"body\"] = sun.name;\n   print row.body, row.altitude;\n\n# Function composition with named intermediate closures\n   let double = (x): x * 2;\n   let add_one = (x): x + 1;\n   let composed = (x): add_one(double(x));\n   print composed(10);\n\n# Compose a sky calculation from small helpers\n   let loc = location(60, 10);\n   let obs = loc.observer();\n   let at = (h): time(2026,6,21,h,0,0);\n   let sun_height = (h): altitude(sun, at(h), obs);\n   print sun_height(6), sun_height(12), sun_height(18);\n\n# Reuse one body-position helper for several bodies\n   let t = time(2026,1,1,0,0,0);\n   let longitude_of = (body): ecliptic_longitude(body, t);\n   print longitude_of(sun), longitude_of(moon), longitude_of(mars);\n\n# Build a report namespace from helper closures\n   report(body, t) {\n   let name = body.name;\n   let longitude = ecliptic_longitude(body, t);\n   let declination_deg = declination(body, t);\n   }\n   let r = report(moon, time(2026,1,1,0,0,0));\n   print r.name, r.longitude, r.declination_deg;\n\n# Make a chart helper that shares one time\n   chart_at(t) {\n   let lon = (body): ecliptic_longitude(body, t);\n   let sun_lon = lon(sun);\n   let moon_lon = lon(moon);\n   let mars_lon = lon(mars);\n   }\n   let c = chart_at(time(2026,1,1,0,0,0));\n   print c.sun_lon, c.moon_lon, c.mars_lon;\n\n# Make a local sky helper that shares one observer\n   local_sky(loc) {\n   let obs = loc.observer();\n   let alt = (body, t): altitude(body, t, obs);\n   let sun_at = (t): alt(sun, t);\n   let moon_at = (t): alt(moon, t);\n   }\n   let sky = local_sky(location(latitude: 60, longitude: 10));\n   let t = time(2026,6,21,12,0,0);\n   print sky.sun_at(t), sky.moon_at(t);\n\n# Return a namespace with both data and formulas\n   measurement(x) {\n   let value = x;\n   let doubled = (y): y * 2;\n   let shifted = (y): y + x;\n   }\n   let m = measurement(10);\n   print m.value, m.doubled(m.value), m.shifted(5);\n\n# Use a closure to choose an object field\n   let pick = (row, key): row[key];\n   let row = {body: sun.name, radius: sun.radius};\n   print pick(row, \"body\"), pick(row, \"radius\");\n\n# Loop over names and accumulate a numeric result\n   let total = 0;\n   for i=1,5,1 {\n   total = total + i * i;\n   }\n   print total;\n\n# Use a while loop to search a small integer condition\n   let n = 1;\n   while n * n < 50 {\n   n = n + 1;\n   }\n   print n, n * n;\n\n# Use break to stop at the first useful value\n   let found = 0;\n   for i=1,20,1 {\n   if i * i > 70 {\n   found = i;\n   break;\n   }\n   }\n   print found;\n\n# Project a field from every object in an array\n   let rows = [{x: 1, name: \"sun\"}, {x: 3, name: \"moon\"}];\n   print rows.x, rows.name;\n\n# Transform object fields with a closure\n   let row = {a: 2, b: 3};\n   let scale_fields = (r, k): {a: r.a * k, b: r.b * k};\n   let scaled = scale_fields(row, 10);\n   print scaled.a, scaled.b;\n\n# Use a hash to pass options into a helper\n   make_loc(opts) {\n   let value = location(**opts);\n   }\n   let opts = hash(latitude: 60.0, longitude: 10.0);\n   print make_loc(opts).value;\n\n# Extend an arguments object before calling a constructor\n   let base = args(latitude: 60.0);\n   let full = base.with(longitude: 10.0);\n   print location(**full);\n\n# Build positional arguments with an array\n   let pair = [60.0, 10.0];\n   let make = (values): location(**values);\n   print make(pair);\n\n# Use a scope expression as a compact calculation report\n   let r = {\n   let x = 3;\n   let y = 4;\n   let hyp = hypot(x, y);\n   };\n   print r.x, r.y, r.hyp;\n\n# Use For as an expression-like calculation block\n   let result = For(i, 1, 4, 1) {\n   let square = i * i;\n   };\n   print result.i, result.square;\n\n# Keep helper constants private with an underscore name\n   let report = {\n   let _scale = 1000;\n   let km = 2;\n   let meters = km * _scale;\n   };\n   print report.km, report.meters;\n\n# Define a reusable multiplier calculator\n   type Multiplier(k) {\n   let apply = (x): x * k;\n   let plus = (x, y): apply(x) + y;\n   }\n   let m = Multiplier(6);\n   print m.apply(7), m.plus(7, 3);\n\n# Define chart helpers that share one time\n   type ChartTools(t) {\n   let lon = (body): ecliptic_longitude(body, t);\n   let pair = (a, b): lon(a) - lon(b);\n   }\n   let tools = ChartTools(time(2026,1,1,0,0,0));\n   print tools.lon(sun), tools.pair(moon, sun);\n\n# Define local altitude helpers for one observing site\n   type LocalTools(loc) {\n   let obs = loc.observer();\n   let alt = (body, t): altitude(body, t, obs);\n   }\n   let tools = LocalTools(location(60,10));\n   print tools.alt(sun, time(2026,6,21,12,0,0));\n\n# Build a small reusable closeness score\n   let distance_from = (target): (x): abs(x - target);\n   let score_to_ten = distance_from(10);\n   print score_to_ten(7), score_to_ten(13);\n\n# Use a derived closure inside numeric search\n   let f = (x, y): x * y - 10;\n   let g = (x): f(x, 2);\n   print search(g, range(0, 10, 0.5), target(0)).next();\n\n# Package a search result with the formula used\n   solve_linear(a, b) {\n   let f = (x): a * x + b;\n   let root = search(f, range(-10, 10, 0.5), target(0)).next();\n   let formula = \"a*x+b\";\n   }\n   let solved = solve_linear(2, -6);\n   print solved.formula, solved.root;","metadata":{"name":"syntax examples","path":"Astrologos.examples.syntax","kind":"topic","aliases":["language examples","programming examples","closures examples","definitions examples"],"resources":[],"children":["topic:syntax","topic:syntax.loops","topic:syntax.blocks","topic:syntax.functions","topic:syntax.namespaces"]}},{"id":"topic:example.time_calendar","title":"Astrologos.examples.time_calendar","text":"Topic: Astrologos.examples.time_calendar - examples for UTC time construction, date arithmetic, local civil time, and weekday handling\nSyntax:\n  time(year, month, day, hour, minute, second)\n  time.add_days(days)\n  time.local(timezone)\n  weekday(value)\nAliases: time examples, calendar, weekday, local time, date arithmetic\nResources: timezones, iers\nExamples:\n# Construct UTC times and add intervals\n   let t = time(2026,3,20,12,0,0);\n   print t.utc(), t.add_hours(6).utc(), t.add_days(7).utc();\n\n# Days between two dates\n   print time(2026,3,1,0,0,0) - time(2025,1,2,0,0,0);\n\n# Local time at a location\n   let loc = location(58.9666667, 5.7333333);\n   let tz = timezones().at(loc);\n   let local = time(2026,6,1,12,0,0).local(tz);\n   print local.iso, local.weekday.short();\n\n# Weekday lookup and formatting\n   let w = weekday(\"Wednesday\");\n   print w.name(), w.short(), w.index();\n\n# Month-style civil dates from a page table\n   let rows = pages(location(60,10), time(2026,6,1,0,0,0)).table(days: 3);\n   print rows[0].date, rows[1].date, rows[2].date;","metadata":{"name":"time and calendars","path":"Astrologos.examples.time_calendar","kind":"topic","aliases":["time examples","calendar","weekday","local time","date arithmetic"],"resources":["timezones","iers"],"children":[]}},{"id":"topic:example.locations_timezones","title":"Astrologos.examples.locations_timezones","text":"Topic: Astrologos.examples.locations_timezones - examples for locations, observers, place lookup, administrative fields, and timezone conversion\nSyntax:\n  location(latitude, longitude)\n  location(...).observer(height)\n  places().search(\"name\")\n  timezones().at(location)\nAliases: location examples, place search, timezone examples, city lookup, observer examples\nResources: places, timezones\nChildren: places and timezones\nExamples:\n# Prepare a location and observer for local sky calculations\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let obs = loc.observer(height: 0.002);\n   print loc.latitude, loc.longitude, obs.height();\n\n# Format latitude and longitude\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   print dms(loc.latitude, \"latitude\"), dms(loc.longitude, \"longitude\");\n   print dd(58, 58, 0, \"N\"), dd(5, 44, 0, \"E\");\n\n# Find a place and administrative names\n   let p = places().search(\"Stavanger\").first();\n   print p.name, p.country().name, p.admin1().name, p.admin2().name;\n\n# Timezone from a location and local time conversion\n   let loc = location(58.9666667, 5.7333333);\n   let tz = timezone(loc);\n   print tz.id, time(2026,6,1,12,0,0).local(tz).iso;\n\n# Register an observatory-style place with a timezone\n   let here = place(\"Observatory\", location(60,10), \"Europe/Oslo\");\n   print here.name, here.timezone().id;","metadata":{"name":"locations and timezones","path":"Astrologos.examples.locations_timezones","kind":"topic","aliases":["location examples","place search","timezone examples","city lookup","observer examples"],"resources":["places","timezones"],"children":["topic:example.places_timezones"]}},{"id":"topic:example.sunrise","title":"Astrologos.examples.sunrise","text":"Topic: Astrologos.examples.sunrise - thematic index for sunrise, sunset, rise/set/transit, and local horizon workflows\nSyntax:\n  events(sunrise, range(start, stop), location).first()\n  events(sunset, range(start, stop), location).first()\n  body.rise(range, observer).first()\n  pages(location, start).table(days: count)\nAliases: sunrise, sunset, rise set, civil day, how to get sunrise for a location, sunrise in a month, monthly sunrise\nResources: ephemeris, iers\nChildren: sunrise day, sunrise month\nExamples:\n# Find the focused sunrise topics\n   print help(\"sunrise day\").compact();\n   print help(\"sunrise month\").compact();\n\n# Quick sunrise and sunset for one day\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   print events(sunrise, day, loc).first().time.utc();\n   print events(sunset, day, loc).first().time.utc();\n\n# Month-style rise/set table\n   let loc = location(58.9666667, 5.7333333);\n   let rows = pages(loc, time(2024,4,1,0,0,0)).table(days: 30);\n   print rows[0].sunrise.time, rows[0].sunset.time;","metadata":{"name":"sunrise examples","path":"Astrologos.examples.sunrise","kind":"topic","aliases":["sunrise","sunset","rise set","civil day","how to get sunrise for a location","sunrise in a month","monthly sunrise"],"resources":["ephemeris","iers"],"children":["topic:example.sunrise.day","topic:example.sunrise.month"]}},{"id":"topic:example.sunrise.day","title":"Astrologos.examples.sunrise.day","text":"Topic: Astrologos.examples.sunrise.day - different ways to calculate sunrise, sunset, and daylight for one location and one civil date\nSyntax:\n  events(sunrise, day, location).first()\n  sun.rise(day, observer).first()\n  pages(location, time).small().short.sun.rise.time\n  pages(location, time).almanac().local.sun.rise\nAliases: single day sunrise, daily sunrise, sunrise methods, different ways to calculate sunrise, same sunrise different ways\nResources: ephemeris, iers\nExamples:\n# Method 1: direct sunrise event for a location\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   let sunrise_event = events(sunrise, day, loc).first();\n   print sunrise_event.time.utc();\n\n# Method 2: body method form with an observer\n   let loc = location(58.9666667, 5.7333333);\n   let obs = loc.observer(0.002);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   print sun.rise(day, obs).first().time.utc();\n\n# Method 3: one-day pages summary\n   let loc = location(58.9666667, 5.7333333);\n   let page = pages(loc, time(2024,4,17,0,0,0)).small();\n   print page.short.sun.rise.time, page.short.sun.set.time;\n\n# Method 4: one-day almanac page\n   let loc = location(58.9666667, 5.7333333);\n   let local_day = pages(loc, time(2024,4,17,0,0,0)).almanac();\n   print local_day.local.sun.rise, local_day.local.sun.set;\n\n# Day length from sunrise and sunset event times\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   let sunrise_time = events(sunrise, day, loc).first().time;\n   let sunset_time = events(sunset, day, loc).first().time;\n   print sunset_time - sunrise_time;","metadata":{"name":"sunrise day","path":"Astrologos.examples.sunrise.day","kind":"topic","aliases":["single day sunrise","daily sunrise","sunrise methods","different ways to calculate sunrise","same sunrise different ways"],"resources":["ephemeris","iers"],"children":[]}},{"id":"topic:example.sunrise.month","title":"Astrologos.examples.sunrise.month","text":"Topic: Astrologos.examples.sunrise.month - ways to calculate sunrise and sunset tables across many days\nSyntax:\n  pages(location, start).table(days: count)\n  almanac(start, stop, location).local.sun.rise\n  for d=0,count-1 { events(sunrise, range(day_start, day_stop), location) }\nAliases: monthly sunrise, sunrises in a month, sunrise table, rise set table, calculate sunrises in a month\nResources: ephemeris, iers\nExamples:\n# Method 1: pages table for a month of sunrise and sunset rows\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let start = time(2024,4,1,0,0,0);\n   let rows = pages(loc, start).table(days: 30);\n   print rows[0].date, rows[0].sunrise.time, rows[0].sunset.time;\n   print rows[29].date, rows[29].sunrise.time, rows[29].sunset.time;\n\n# Method 2: month almanac object\n   let loc = location(58.9666667, 5.7333333);\n   let start = time(2024,4,1,0,0,0);\n   let month = almanac(start, start.add_months(1), loc);\n   print month.local.sun.rise;\n   print month.local.sun.set;\n\n# Method 3: explicit loop over days\n   let loc = location(58.9666667, 5.7333333);\n   let start = time(2024,4,1,0,0,0);\n   for d=0,29 {\n   let day_start = start.add_days(d);\n   let day = range(day_start, day_start.add_days(1));\n   print day_start.utc(), events(sunrise, day, loc).first().time.utc();\n   }\n\n# Method 4: compare sunrise drift through a month\n   let loc = location(58.9666667, 5.7333333);\n   let rows = pages(loc, time(2024,4,1,0,0,0)).table(days: 30);\n   print rows[0].sunrise.time, rows[14].sunrise.time, rows[29].sunrise.time;","metadata":{"name":"sunrise month","path":"Astrologos.examples.sunrise.month","kind":"topic","aliases":["monthly sunrise","sunrises in a month","sunrise table","rise set table","calculate sunrises in a month"],"resources":["ephemeris","iers"],"children":[]}},{"id":"topic:example.moonrise","title":"Astrologos.examples.moonrise","text":"Topic: Astrologos.examples.moonrise - examples for moonrise, moonset, Moon altitude, and multi-day lunar visibility\nSyntax:\n  events(moonrise, range(start, stop), location)\n  moon.rise(range, observer)\n  altitude(moon, time, observer)\n  pages(location, moon).summary(time)\nAliases: moonrise, moonset, moon visibility, lunar visibility, moon altitude\nResources: ephemeris, iers\nExamples:\n# Moonrise and moonset for one night\n   let loc = location(60.0, 10.0);\n   let night = range(time(2026,5,20,0,0,0), time(2026,5,21,0,0,0));\n   print events(moonrise, night, loc).first();\n   print events(moonset, night, loc).first();\n\n# Moonrise for the next five days\n   let loc = location(60.0, 10.0);\n   let start = time(2026,5,20,0,0,0);\n   print events(moonrise, range(start, start.add_days(5), 0.5), loc);\n\n# Moon altitude through a night\n   let obs = location(60.0, 10.0).observer(0.002);\n   let t0 = time(2026,5,20,18,0,0);\n   for h=0,12,3 {\n   let t = t0.add_hours(h);\n   print t.utc(), altitude(moon, t, obs), azimuth(moon, t, obs);\n   }\n\n# Compact local Moon summary\n   let m = pages(location(60,10), moon).summary(time(2026,5,20,21,0,0));\n   print m.position.topocentric.altitude, m.phase, m.illumination;","metadata":{"name":"moonrise and lunar visibility","path":"Astrologos.examples.moonrise","kind":"topic","aliases":["moonrise","moonset","moon visibility","lunar visibility","moon altitude"],"resources":["ephemeris","iers"],"children":[]}},{"id":"topic:example.moon_phase","title":"Astrologos.examples.moon_phase","text":"Topic: Astrologos.examples.moon_phase - examples inspired by lunar phase and orbit catalogs: phase, illumination, perigee, apogee, and shadows\nSyntax:\n  moon_phase(time)\n  moon_illumination(time)\n  events(full_moon, range)\n  events(perigee, range, moon)\nAliases: lunar phase, full moon, new moon, perigee, apogee, moon illumination\nResources: ephemeris\nChildren: eclipses and shadows\nExamples:\n# Moon phase and illumination at a time\n   let t = time(2026,1,15,0,0,0);\n   print moon_phase(t), moon_illumination(t), magnitude(moon, t);\n\n# Full moon and new moon in a month\n   let month = range(time(2026,1,1,0,0,0), time(2026,2,1,0,0,0), 1);\n   print events(full_moon, month).first().time.utc();\n   print events(new_moon, month).first().time.utc();\n\n# Lunar perigee and apogee in a month\n   let month = range(time(2024,4,1,0,0,0), time(2024,5,1,0,0,0), 1);\n   print events(perigee, month, moon).first();\n   print events(apogee, month, moon).first();\n\n# Moon distance, speed, and phase-like context\n   let t = time(2026,1,15,0,0,0);\n   let st = state(moon, t, geocentric, icrf, all_corrections);\n   print st.position().length(), st.velocity().length(), moon_illumination(t);\n\n# Lunar eclipse magnitude helpers near a known date\n   let t = time(2025,3,14,6,0,0);\n   print lunar_eclipse_magnitude(t), lunar_penumbra_magnitude(t), lunar_eclipse_clearance(t);","metadata":{"name":"moon phase","path":"Astrologos.examples.moon_phase","kind":"topic","aliases":["lunar phase","full moon","new moon","perigee","apogee","moon illumination"],"resources":["ephemeris"],"children":["topic:example.eclipses"]}},{"id":"topic:example.stars","title":"Astrologos.examples.stars","text":"Topic: Astrologos.examples.stars - examples for star catalog lookup, visible stars, star rise/transit/set, and angular distance\nSyntax:\n  stars().find(\"Sirius\")\n  stars().visible(time, observer)\n  star.rise(range, observer)\n  star.direction()\nAliases: star catalog, visible stars, Sirius, star rise, bright stars\nResources: stars, ephemeris, iers\nChildren: moon and stars, constellations()\nExamples:\n# Find Sirius and inspect it\n   let sirius = stars().find(\"Sirius\");\n   print sirius.name, sirius.magnitude, sirius.constellation();\n\n# Sirius rise, transit, and set\n   let sirius = stars().find(\"Sirius\");\n   let obs = location(60.0, 10.0).observer(0.002);\n   let night = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0), 0.25);\n   print sirius.rise(night, obs).first();\n   print sirius.transit(night, obs).first();\n   print sirius.set(night, obs).first();\n\n# Bright visible stars above a local horizon\n   let obs = location(60,10).observer(0.002);\n   print stars().visible(time(2026,1,1,21,0,0), obs, magnitude: 2.0);\n\n# Angular distance between Sirius and the Moon\n   let t = time(2026,1,1,21,0,0);\n   let sirius = stars().find(\"Sirius\").direction();\n   let moon_dir = direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections));\n   print moon_dir.angular_distance(sirius, t);","metadata":{"name":"stars","path":"Astrologos.examples.stars","kind":"topic","aliases":["star catalog","visible stars","Sirius","star rise","bright stars"],"resources":["stars","ephemeris","iers"],"children":["topic:example.moon_stars","topic:example.constellations"]}},{"id":"topic:example.constellations","title":"Astrologos.examples.constellations","text":"Topic: Astrologos.examples.constellations - examples for constellation lookup by direction, Moon, planets, and stars\nSyntax:\n  constellations().inside(direction)\n  star.constellation()\n  direction(ra: value, dec: value)\nAliases: constellation lookup, which constellation, sky region, iau constellation\nResources: constellations, stars, ephemeris\nChildren: stars()\nExamples:\n# Find which constellation contains a direction\n   let d = direction(ra: 88.8, dec: 7.4);\n   print constellations().inside(d);\n\n# Moon and Sirius separation with constellation context\n   let t = time(2024,4,17,0,0,0);\n   let sirius = stars().find(\"Sirius\");\n   let moon_dir = direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections));\n   print constellations().inside(moon_dir), moon_dir.angular_distance(sirius.direction());\n\n# Planet constellation at a time\n   let t = time(2026,1,1,0,0,0);\n   let mars_dir = direction(ra(mars, t, all_corrections), dec(mars, t, all_corrections));\n   print constellations().inside(mars_dir);\n\n# Star constellation shortcut\n   print stars().find(\"Sirius\").constellation();","metadata":{"name":"constellations","path":"Astrologos.examples.constellations","kind":"topic","aliases":["constellation lookup","which constellation","sky region","iau constellation"],"resources":["constellations","stars","ephemeris"],"children":["topic:example.stars"]}},{"id":"topic:example.moon_stars","title":"Astrologos.examples.moon_stars","text":"Topic: Astrologos.examples.moon_stars - examples for stars, Sirius, Moon constellations, visible stars, and angular-distance searches\nSyntax:\n  stars().find(\"Sirius\")\n  direction(ra(body, time, correction), dec(body, time, correction))\n  direction.angular_distance(other, time)\nAliases: moon sirius, sirius, stars, constellations, moon close to sirius, angular separation\nResources: ephemeris, stars, constellations, iers\nExamples:\n# Sirius: lookup, constellation, and next rise\n   let sirius = stars().find(\"Sirius\");\n   let obs = location(60.0, 10.0).observer(0.002);\n   let night = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0), 0.25);\n   print sirius.constellation();\n   print sirius.rise(night, obs).first().time.utc();\n\n# Moon constellation at a time\n   let t = time(2024,4,17,0,0,0);\n   let moon_dir = direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections));\n   print constellations().inside(moon_dir);\n\n# How to search for times when the Moon is close to Sirius\n   let sirius = stars().find(\"Sirius\").direction();\n   let closeness = (t): direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections)).angular_distance(sirius, t) - 5.0;\n   let span = range(time(2026,1,1,0,0,0), time(2026,2,1,0,0,0), 0.25);\n   print search(closeness, span, target(0)).next();\n\n# Visible star names for a local evening shortlist\n   let obs = location(60,10).observer(0.002);\n   let visible = stars().visible(time(2026,1,1,21,0,0), obs, magnitude: 2.0);\n   print visible.name, visible.constellation;","metadata":{"name":"moon and stars","path":"Astrologos.examples.moon_stars","kind":"topic","aliases":["moon sirius","sirius","stars","constellations","moon close to sirius","angular separation"],"resources":["ephemeris","stars","constellations","iers"],"children":[]}},{"id":"topic:example.sky_charts","title":"Astrologos.examples.sky_charts","text":"Topic: Astrologos.examples.sky_charts - examples for chart-style sky questions using astronomical constellations, named stars, separations, and time searches\nSyntax:\n  constellations().inside(direction(ra(body, t, all_corrections), dec(body, t, all_corrections)))\n  search((t): separation(t), range(start, stop, step), minimum).next()\n  search((t): separation(t) - threshold, range(start, stop, step), target(0))\n  ecliptic_longitude(time)\nAliases: sky chart, chart positions, fixed stars, close approaches, planet in constellation, planet enters constellation, planet close to star, moon close to star, constellation change, appulse\nResources: ephemeris, stars, constellations, iers\nChildren: constellations(), moon and stars, planet events, search and optimization\nExamples:\n# Which IAU constellation contains a planet now\n   let t = time(2026,1,1,0,0,0);\n   let d = direction(ra(mars, t, all_corrections), dec(mars, t, all_corrections));\n   print mars.name, constellations().inside(d);\n\n# Scan a month for planet constellation changes\n   let body = mars;\n   let start = time(2026,1,1,0,0,0);\n   let previous = \"\";\n   for day=0,31 {\n   let t = start.add_days(day);\n   let d = direction(ra(body, t, all_corrections), dec(body, t, all_corrections));\n   let c = constellations().inside(d);\n   if c.name != previous {\n   print t.utc(), body.name, c.name;\n   previous = c.name;\n   }\n   }\n\n# Compare several planets by constellation\n   let t = time(2026,1,1,0,0,0);\n   let bodies = [mercury, venus, mars, jupiter, saturn];\n   for i=0,4 {\n   let body = bodies[i];\n   let d = direction(ra(body, t, all_corrections), dec(body, t, all_corrections));\n   print body.name, constellations().inside(d).name;\n   }\n\n# Closest approach of Venus to Regulus in a time window\n   let star = stars().find(\"Regulus\").direction();\n   let sep = (t): direction(ra(venus, t, all_corrections), dec(venus, t, all_corrections)).angular_distance(star, t);\n   let span = range(time(2026,7,1,0,0,0), time(2026,9,1,0,0,0), 0.25);\n   let closest = search(sep, span, minimum).next();\n   print closest.utc(), sep(closest);\n\n# Times when the Moon is within five degrees of Aldebaran\n   let star = stars().find(\"Aldebaran\").direction();\n   let sep = (t): direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections)).angular_distance(star, t) - 5.0;\n   let span = range(time(2026,1,1,0,0,0), time(2026,2,1,0,0,0), 0.25);\n   print search(sep, span, target(0)).all();\n\n# Thirty-degree solar longitude sector\n   let sectors = [\"sector 0\", \"sector 1\", \"sector 2\", \"sector 3\", \"sector 4\", \"sector 5\", \"sector 6\", \"sector 7\", \"sector 8\", \"sector 9\", \"sector 10\", \"sector 11\"];\n   let t = time(2026,3,20,12,0,0);\n   let lon = ecliptic_longitude(t);\n   print sectors[floor(lon / 30.0)], lon;\n\n# Nearest bright star to the Moon\n   let t = time(2026,1,1,21,0,0);\n   let moon_dir = direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections));\n   let nearest = stars().nearest(moon_dir, magnitude: 2.0);\n   print nearest.name, nearest.separation, nearest.constellation();","metadata":{"name":"sky charts fixed stars and close approaches","path":"Astrologos.examples.sky_charts","kind":"topic","aliases":["sky chart","chart positions","fixed stars","close approaches","planet in constellation","planet enters constellation","planet close to star","moon close to star","constellation change","appulse"],"resources":["ephemeris","stars","constellations","iers"],"children":["topic:example.constellations","topic:example.moon_stars","topic:example.planets","topic:example.search"]}},{"id":"topic:example.planets","title":"Astrologos.examples.planets","text":"Topic: Astrologos.examples.planets - examples for planetary events such as opposition, conjunction, elongation, perihelion, and aphelion\nSyntax:\n  events(opposition, range, body).first()\n  events(greatest_elongation, range, body).first()\n  body.perihelion(start, stop, step).first()\nAliases: opposition, conjunction, elongation, perihelion, aphelion, planet examples\nResources: ephemeris\nExamples:\n# Planet opposition and Mercury elongation\n   let year = range(time(2024,1,1,0,0,0), time(2025,1,1,0,0,0), 2);\n   print events(opposition, year, jupiter).first();\n   print events(greatest_elongation, year, mercury).first();\n\n# Sun orbital events relative to the solar-system barycenter\n   print sun.periapsis();\n   print sun.apoapsis();\n   print sun.greatest_western_elongation();\n   print sun.greatest_eastern_elongation();\n   print sun.opposition();\n   print sun.conjunction();\n\n# Earth's perihelion and aphelion\n   let peri = events(perihelion, range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1), earth).first();\n   let aph = events(aphelion, range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1), earth).first();\n   print peri.time.utc(), peri.value;\n   print aph.time.utc(), aph.value;\n\n# Planet position table at one time\n   let t = time(2026,1,1,0,0,0);\n   for i=0,4 {\n   let p = [mercury, venus, mars, jupiter, saturn][i];\n   print p.name, ra(p, t, all_corrections), dec(p, t, all_corrections), magnitude(p, t);\n   }\n\n# Close approach style angular separation\n   let t = time(2026,1,1,0,0,0);\n   let venus_dir = direction(ra(venus, t, all_corrections), dec(venus, t, all_corrections));\n   let mars_dir = direction(ra(mars, t, all_corrections), dec(mars, t, all_corrections));\n   print venus_dir.angular_distance(mars_dir, t), distance(venus, t), distance(mars, t);\n\n# Bright planet context inspired by magnitude catalogs\n   let t = time(2026,1,1,0,0,0);\n   print venus.name, magnitude(venus, t), elongation(venus, t), heliocentric_ecliptic_longitude(venus, t);\n\n# Rotational axis helpers\n   let t = time(2026,1,1,0,0,0);\n   print rotational_axis_ra(mars, t), rotational_axis_dec(mars, t), rotational_axis(mars, t);","metadata":{"name":"planet events","path":"Astrologos.examples.planets","kind":"topic","aliases":["opposition","conjunction","elongation","perihelion","aphelion","planet examples"],"resources":["ephemeris"],"children":[]}},{"id":"topic:example.eclipses","title":"Astrologos.examples.eclipses","text":"Topic: Astrologos.examples.eclipses - examples for eclipse events and shadow-distance helper functions\nSyntax:\n  events(solar_eclipse, range, location).first()\n  solar_eclipse_magnitude(time, location)\n  lunar_eclipse_magnitude(time)\n  shadow_distance(body, time)\nAliases: solar eclipse, lunar eclipse, shadow, umbra, penumbra, obscuration\nResources: ephemeris, iers\nChildren: moon phase\nExamples:\n# Solar eclipse event near Dallas, 2024-04-08\n   let dallas = location(latitude: 32.7767, longitude: -96.7970);\n   let span = range(time(2024,4,8,12,0,0), time(2024,4,9,0,0,0), 0.25);\n   print events(solar_eclipse, span, dallas).first();\n\n# Solar eclipse helper values at a location\n   let dallas = location(32.7767, -96.7970);\n   let t = time(2024,4,8,18,20,0);\n   print solar_eclipse_magnitude(t, dallas), solar_eclipse_obscuration(t, dallas), solar_eclipse_clearance(t, dallas);\n\n# Lunar eclipse helper values\n   let t = time(2025,3,14,6,0,0);\n   print lunar_eclipse_magnitude(t), lunar_penumbra_magnitude(t), lunar_eclipse_clearance(t);\n\n# Moon umbra and penumbra distance helpers\n   let t = time(2024,4,8,18,20,0);\n   print moon_umbra_distance(t), moon_penumbra_distance(t), moon_shadow_earth_distance(t);\n\n# Moon umbra occultation helper\n   let t = time(2024,4,8,18,20,0);\n   print moon_umbra_occultation(t);\n\n# Location and planet shadow distances\n   let loc = location(latitude: 32.7767, longitude: -96.7970);\n   let t = time(2024,4,8,18,20,0);\n   print location_shadow_distance(t, loc), planet_shadow_earth_distance(mercury, t), shadow_distance(t);","metadata":{"name":"eclipses and shadows","path":"Astrologos.examples.eclipses","kind":"topic","aliases":["solar eclipse","lunar eclipse","shadow","umbra","penumbra","obscuration"],"resources":["ephemeris","iers"],"children":["topic:example.moon_phase"]}},{"id":"topic:example.almanac","title":"Astrologos.examples.almanac","text":"Topic: Astrologos.examples.almanac - examples for pages(), almanac(), charts, local sky summaries, phases, and seasonal events\nSyntax:\n  pages(location).sky(time)\n  pages(time).chart()\n  almanac(start, stop, location)\nAliases: almanac, pages, local sky, chart, moon phase, seasons\nResources: ephemeris, iers\nExamples:\n# Local sky page now\n   let loc = location(60.0, 10.0);\n   let s = pages(loc).sky();\n   print s.sun.altitude, s.moon.phase;\n\n# Page chart with sign labels for several bodies\n   let c = pages(time(2026,1,1,0,0,0)).chart();\n   print c.bodies.sun.chart.sign, c.bodies.moon.chart.sign, c.bodies.mars.chart.sign;\n\n# Equinoxes and solstices in one almanac\n   let a = almanac(time(2024,1,1,0,0,0), time(2025,1,1,0,0,0));\n   print a.seasons.ascending_equinox, a.seasons.northern_solstice;\n   print a.seasons.descending_equinox, a.seasons.southern_solstice;","metadata":{"name":"almanac pages","path":"Astrologos.examples.almanac","kind":"topic","aliases":["almanac","pages","local sky","chart","moon phase","seasons"],"resources":["ephemeris","iers"],"children":[]}},{"id":"topic:example.pages","title":"Astrologos.examples.pages","text":"Topic: Astrologos.examples.pages - examples for compact page-style data products over sky, chart, almanac, table, and state views\nSyntax:\n  pages(location).sky(time)\n  pages(time).chart()\n  pages(location, body).summary(time)\n  pages(time).state()\nAliases: data pages, sky page, chart page, state page, report pages\nResources: ephemeris, iers\nChildren: almanac pages, sunrise examples\nExamples:\n# Local sky page now\n   let s = pages(location(60.0, 10.0)).sky();\n   print s.sun.altitude, s.moon.phase;\n\n# Chart positions page\n   let c = pages(time(2026,1,1,0,0,0)).chart();\n   print c.bodies.sun.geocentric.longitude, c.bodies.moon.chart.sign;\n\n# Compact Moon summary page\n   let m = pages(location(60.0, 10.0), moon).summary(time());\n   print m.position.topocentric.altitude, m.phase, m.illumination;\n\n# One-day full local page\n   let d = pages(location(60.0, 10.0), time(2026,1,1,0,0,0)).small();\n   print d.short.sun.rise.time, d.chart.bodies.moon.geocentric.longitude;\n\n# Solar-system state vectors page\n   let st = pages(time(2026,1,1,0,0,0)).state();\n   print st.bodies.earth.position_bc_icrf().length();","metadata":{"name":"pages","path":"Astrologos.examples.pages","kind":"topic","aliases":["data pages","sky page","chart page","state page","report pages"],"resources":["ephemeris","iers"],"children":["topic:example.almanac","topic:example.sunrise"]}},{"id":"topic:example.coordinates","title":"Astrologos.examples.coordinates","text":"Topic: Astrologos.examples.coordinates - examples for right ascension, declination, altitude, azimuth, headings, frames, and units\nSyntax:\n  direction(ra: value, dec: value)\n  direction(topographic, azimuth: value, altitude: value)\n  heading(value)\n  to_radians(degrees)\n  vector.angle(other, deg)\n  angle_in_degrees(vector_a, vector_b)\nAliases: ra dec, altitude azimuth, heading, frames, angle units\nResources: ephemeris, iers\nChildren: vectors matrices orbits\nExamples:\n# RA/Dec direction from body coordinates\n   let t = time(2026,1,1,0,0,0);\n   let mars_dir = direction(ra: ra(mars, t, all_corrections), dec: dec(mars, t, all_corrections));\n   print mars_dir.ra, mars_dir.dec;\n\n# Long-form right ascension and ecliptic longitude\n   let t = time(2026,3,20,12,0,0);\n   print right_ascension(sun, t, all_corrections), declination(sun, t, all_corrections), ecliptic_longitude(t);\n\n# Local altitude and azimuth for a body\n   let obs = location(60,10).observer(0.002);\n   let t = time(2026,1,1,21,0,0);\n   print altitude(jupiter, t, obs), azimuth(jupiter, t, obs);\n\n# Topographic direction from azimuth and altitude\n   let d = direction(topographic, azimuth: 180.0, altitude: 25.0);\n   print d.frame, d.ra, d.dec;\n\n# Apparent geocentric Sun-Moon separation in degrees\n   let t = time();\n   let sun_vector = state(body: sun, time: t).pos_gc_icrf;\n   let moon_vector = state(body: moon, time: t).pos_gc_icrf;\n   print sun_vector.angle(moon_vector, deg), angle_in_degrees(sun_vector, moon_vector);\n\n# Headings and angle units\n   print heading(\"southwest\"), heading(270.0), to_radians(180.0), to_degrees(pi);\n\n# Apparent solar and lunar time\n   let loc = location(60,10);\n   let t = time(2026,6,21,12,0,0);\n   print apparent_solar_time(t, loc), lunar_time(t, loc);","metadata":{"name":"coordinates and directions","path":"Astrologos.examples.coordinates","kind":"topic","aliases":["ra dec","altitude azimuth","heading","frames","angle units"],"resources":["ephemeris","iers"],"children":["topic:example.vectors_matrices"]}},{"id":"topic:example.vectors_matrices","title":"Astrologos.examples.vectors_matrices","text":"Topic: Astrologos.examples.vectors_matrices - examples for vectors, matrices, state vectors, orbital elements, orbits, units, and spherical coordinates\nSyntax:\n  vector(x, y, z)\n  spherical(radius, theta, phi)\n  vector.angle(other[, unit])\n  matrix(from, to, time)\n  elements(q, e, i, node, argument, anomaly, unit)\n  orbit(elements, central, time, axis)\nAliases: vector, matrix, orbit, elements, state vectors, geometry\nResources: ephemeris\nChildren: coordinates and directions\nExamples:\n# Vector construction and distance\n   let a = vector(1, 0, 0);\n   let b = vector(0, 1, 0);\n   print a.length(), a.distance(b), a.cross(b);\n\n# Vector angle in degrees\n   let a = vector(1, 0, 0);\n   let b = vector(0, 1, 0);\n   print a.angle(b, deg), angle_in_degrees(a, b);\n\n# Spherical vector and unit conversion\n   let v = spherical(1.0, 45.0, 30.0, deg);\n   print v.length(), to_radians(45.0), to_degrees(pi);\n\n# Matrix rotation between frames\n   let t = time(2026,1,1,0,0,0);\n   let m = matrix(icrf, ecliptic, t);\n   print m.determinant(), m.inverse().determinant();\n\n# Body state position and velocity\n   let st = state(mars, time(2026,1,1,0,0,0), heliocentric, icrf, all_corrections);\n   print st.position().length(), st.velocity().length();\n\n# Orbital elements and orbit value\n   let el = elements(q: 0.9, e: 0.1, i: 5.0, node: 80.0, argument: 45.0, anomaly: 0.0, unit: deg);\n   let o = orbit(el, sun, time(2026,1,1,0,0,0), icrf);\n   print o.elements().e, o.central.name;","metadata":{"name":"vectors matrices orbits","path":"Astrologos.examples.vectors_matrices","kind":"topic","aliases":["vector","matrix","orbit","elements","state vectors","geometry"],"resources":["ephemeris"],"children":["topic:example.coordinates"]}},{"id":"topic:example.orbit_propagation","title":"Astrologos.examples.orbit_propagation","text":"Topic: Astrologos.examples.orbit_propagation - examples for immutable propagation systems, integrated states, diagnostics, and ephemeris residual checks\nSyntax:\n  system(time, state(...), body, ...)\n  system(...).at(time)\n  system(...).diagnostics\n  system(...).ephemeris_residuals\n  bodies.find(name)\n  bodies.smallBodyStates(time)\n  bodies.smallBodyStates(time, min_mass)\nAliases: orbit propagator, system propagation, n body, integrator, ias15, rk4, dp5, ephemeris residuals\nResources: ephemeris, iers\nChildren: vectors matrices orbits, planet events\nExamples:\n# Propagate an explicit comet state with the Sun from the ephemeris\n   let t0 = time(2026,4,27,8,26,0);\n   let comet0 = state(body: body(\"comet\"), time: t0, position: vector(100000000,0,0), velocity: vector(0,10,0));\n   let later = system(t0, comet0, sun).at(t0.add_days(10));\n   print later.comet.position(), later.sun.position();\n\n# Include massive small-body perturbers through the registry\n   let t0 = time(2026,1,1);\n   let ceres = bodies.find(\"ceres\");\n   let sys = system(t0, bodies.longSolarSystem());\n   print ceres.name, sys.state(\"vesta\").body.name, sys.states.length();\n\n# Limit small-body perturbers by mass in kg\n   let t0 = time(2026,1,1);\n   let threshold = bodies.find(\"vesta\").mass;\n   let sys = system(t0, bodies.smallBodyStates(t0, threshold));\n   print sys.states.length();\n\n# Extract small-body states when they should be numerical initial conditions\n   let t0 = time(2026,1,1);\n   let small = bodies.smallBodyStates(t0);\n   let sys = system(t0, small, state(moon, t0));\n   print sys.sources.ceres, sys.sources.moon, sys.states.length();\n\n# Compare integrated Solar-System states against ephemeris after one year\n   let t0 = time(2026,1,1);\n   let t1 = t0.add_days(365.25);\n   let sys = system(t0, state(sun,t0), state(earth,t0), state(moon,t0), state(mars,t0));\n   let later = sys.at(t1);\n   print later.ephemeris_residuals.earth, later.ephemeris_residuals.moon, later.diagnostics.accepted_steps;\n\n# Use the shared cache during a short search-style sequence\n   let t0 = time(2026,1,1);\n   let comet0 = state(body: body(\"comet\"), time: t0, position: vector(100000000,0,0), velocity: vector(0,10,0));\n   let sys = system(t0, comet0, sun);\n   let a = sys.at(t0.add_days(1));\n   let b = a.at(t0.add_days(1.25));\n   print b.cache_size, b.diagnostics.derivative_evaluations;\n\n# Select an expert integrator; dp5 is a slow reference/debug method\n   let t0 = time(2026,1,1);\n   let comet0 = state(body: body(\"comet\"), time: t0, position: vector(100000000,0,0), velocity: vector(0,10,0));\n   print system(t0, comet0, sun).integrator;\n   print system(t0, comet0, sun, method: \"rk4\").integrator;\n   print system(t0, comet0, sun, integrator: \"dp5\").integrator;","metadata":{"name":"orbit propagation","path":"Astrologos.examples.orbit_propagation","kind":"topic","aliases":["orbit propagator","system propagation","n body","integrator","ias15","rk4","dp5","ephemeris residuals"],"resources":["ephemeris","iers"],"children":["topic:example.vectors_matrices","topic:example.planets"]}},{"id":"topic:example.polygons","title":"Astrologos.examples.polygons","text":"Topic: Astrologos.examples.polygons - examples for polygon geometry in sky or lon/lat style coordinate work\nSyntax:\n  polygon(frame, time, vertices)\n  polygon.inside(direction)\n  polygon.area()\nAliases: polygon, sky polygon, area, inside, winding\nChildren: coordinates and directions\nExamples:\n# Polygon around a small sky region\n   let vertices = [direction(ra: 40, dec: 10), direction(ra: 50, dec: 10), direction(ra: 50, dec: 20), direction(ra: 40, dec: 20)];\n   let p = polygon(icrf, time(2026,1,1,0,0,0), vertices);\n   print p.count, p.area(), p.inside(direction(ra: 45, dec: 15));\n\n# Polygon winding and inverted containment\n   let vertices = [direction(ra: 0, dec: 0), direction(ra: 10, dec: 0), direction(ra: 10, dec: 10)];\n   let p = polygon(icrf, time(), vertices);\n   let point = direction(ra: 180, dec: 0);\n   print p.winding(point), p.invert().inside(point);\n\n# Convert polygon vertices to lon/lat diagnostics\n   let t = time(2026,1,1,0,0,0);\n   let p = polygon(icrf, t, [direction(ra: 0, dec: 0), direction(ra: 10, dec: 0), direction(ra: 10, dec: 10)]);\n   print p.lonlat(t), p.lonlat_diagnostic(t);","metadata":{"name":"polygons","path":"Astrologos.examples.polygons","kind":"topic","aliases":["polygon","sky polygon","area","inside","winding"],"resources":[],"children":["topic:example.coordinates"]}},{"id":"topic:example.places_timezones","title":"Astrologos.examples.places_timezones","text":"Topic: Astrologos.examples.places_timezones - examples for place search, nearby places, timezone lookup, and local civil time\nSyntax:\n  places().search(\"name\")\n  timezones().at(location)\n  time.utc().local(timezone)\nAliases: places, timezones, local time, city search, location database\nResources: places, timezones\nExamples:\n# Find a place and its timezone\n   let p = places().search(\"Stavanger\").first();\n   let tz = p.timezone();\n   print p.name, p.location().latitude, tz.id;\n\n# Convert UTC to local civil time at a location\n   let loc = location(58.9666667, 5.7333333);\n   let tz = timezones().at(loc);\n   print time(2026,6,1,12,0,0).local(tz).iso;","metadata":{"name":"places and timezones","path":"Astrologos.examples.places_timezones","kind":"topic","aliases":["places","timezones","local time","city search","location database"],"resources":["places","timezones"],"children":[]}},{"id":"topic:example.weather_fields","title":"Astrologos.examples.weather_fields","text":"Topic: Astrologos.examples.weather_fields - examples for forecast products, field sources, NetCDF variables, scalar/vector fields, and sampling\nSyntax:\n  forecast().sample(location, field)\n  field(source, variable)\n  netcdf(source)\n  sample(field, location)\nAliases: weather fields, forecast fields, scalar field, vector field, netcdf fields\nResources: gfs\nChildren: topography(), magnetic field\nExamples:\n# Sample current forecast fields at a location\n   let loc = location(60.0, 10.0);\n   let rows = forecast().sample(loc, temperature, humidity, wind);\n   print rows[0].temperature, rows[0].wind.u, rows[0].wind.v;\n\n# Forecast metadata and availability\n   let fc = forecast();\n   print fc.available(), fc.count(), fc.cycle(), fc.max_time();\n\n# Inspect forecast products\n   let fc = forecast();\n   print fc.toc();\n   print fc.messages().length();\n\n# NetCDF field source and variable inspection\n   let nc = netcdf(earth_topography);\n   print nc.path, nc.variables.length(), nc.variable(\"z\");\n\n# Scalar field sample through compatibility helper\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let terrain = topography(earth);\n   print sample(terrain, loc);","metadata":{"name":"weather and fields","path":"Astrologos.examples.weather_fields","kind":"topic","aliases":["weather fields","forecast fields","scalar field","vector field","netcdf fields"],"resources":["gfs"],"children":["topic:example.topography","topic:example.magnetic"]}},{"id":"topic:example.topography","title":"Astrologos.examples.topography","text":"Topic: Astrologos.examples.topography - examples for topographic field sampling and observer height workflows\nSyntax:\n  topography(body)\n  sample(topography(earth), location)\n  location.observer(height)\nAliases: earth topography, height, elevation, terrain, sample topography\nResources: earth_topography\nChildren: weather and fields\nExamples:\n# Sample Earth topography\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   print sample(topography(earth), loc);\n\n# Sample an explicitly selected topography field\n   let topo = topography(earth);\n   print sample(topo, location(latitude: 60.0, longitude: 10.0));\n\n# Use sampled height as an observer height\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let height_km = sample(topography(earth), loc) / 1000.0;\n   let obs = loc.observer(height_km);\n   print obs.height();\n\n# Compare topography at two locations\n   let a = location(latitude: 60.0, longitude: 10.0);\n   let b = location(latitude: 27.9881, longitude: 86.9250);\n   print sample(topography(earth), a), sample(topography(earth), b);","metadata":{"name":"topography","path":"Astrologos.examples.topography","kind":"topic","aliases":["earth topography","height","elevation","terrain","sample topography"],"resources":["earth_topography"],"children":["topic:example.weather_fields"]}},{"id":"topic:example.magnetic","title":"Astrologos.examples.magnetic","text":"Topic: Astrologos.examples.magnetic - examples for magnetic model handles and field sampling at observers\nSyntax:\n  magnetic(body, time, observer)\n  magnetic(...).field()\nAliases: magnetic, magnetic model, field model, geomagnetic\nResources: magnetic\nChildren: weather and fields\nExamples:\n# Magnetic field at an observer\n   let obs = location(60.0, 10.0).observer(0.002);\n   let model = magnetic(earth, time(2026,1,1,0,0,0), obs);\n   print model.field();\n\n# Magnetic model metadata\n   let obs = location(60.0, 10.0).observer();\n   let model = magnetic(earth, time(2026,1,1,0,0,0), obs);\n   print model.body.name, model.time.utc(), model.observer.latitude();\n\n# Compare magnetic field at two places\n   let t = time(2026,1,1,0,0,0);\n   let north = magnetic(earth, t, location(70,20).observer()).field();\n   let south = magnetic(earth, t, location(-30,20).observer()).field();\n   print north, south;","metadata":{"name":"magnetic field","path":"Astrologos.examples.magnetic","kind":"topic","aliases":["magnetic","magnetic model","field model","geomagnetic"],"resources":["magnetic"],"children":["topic:example.weather_fields"]}},{"id":"topic:example.weather","title":"Astrologos.examples.weather","text":"Topic: Astrologos.examples.weather - examples for forecast fields, scalar/vector field sampling, topography, and magnetic models\nSyntax:\n  forecast().sample(location, field)\n  sample(field, location)\n  magnetic(body, time, observer).field()\nAliases: weather, forecast, gfs, topography, magnetic, field sampling\nResources: gfs, earth_topography, magnetic\nExamples:\n# Build a compact weather-and-terrain row\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let rows = forecast().sample(loc, temperature, wind);\n   print rows[0].temperature, rows[0].wind.u, sample(topography(earth), loc);\n\n# Compare forecast wind with magnetic field context\n   let loc = location(60.0, 10.0);\n   let obs = loc.observer(0.002);\n   let rows = forecast().sample(loc, wind);\n   print rows[0].wind.u, rows[0].wind.v, magnetic(earth, time(2026,1,1,0,0,0), obs).field();\n\n# Magnetic field at an observer\n   let obs = location(60.0, 10.0).observer(0.002);\n   print magnetic(earth, time(2026,1,1,0,0,0), obs).field();","metadata":{"name":"weather and fields","path":"Astrologos.examples.weather","kind":"topic","aliases":["weather","forecast","gfs","topography","magnetic","field sampling"],"resources":["gfs","earth_topography","magnetic"],"children":[]}},{"id":"topic:example.graphics","title":"Astrologos.examples.graphics","text":"Topic: Astrologos.examples.graphics - examples for generating SVG plots and sky views\nSyntax:\n  graphics().line(...).write_svg(\"file.svg\")\n  graphics(time, location).sky_view(center_az: 180, center_alt: 45, fov: 120).sky_grid().sky_planets().write_svg(\"sky.svg\")\nAliases: graphics, svg, sky map, plot, chart drawing\nResources: ephemeris, stars, constellations\nExamples:\n# Build a client-ready sky SVG with planets and bright stars\n   graphics(time(2026,1,1,21,0,0), location(latitude: 60, longitude: 10)).dark().sky_view(center_az: 180, center_alt: 45, fov: 120).sky_grid().sky_planets().sky_stars(magnitude: 4).write_svg(\"sky.svg\");\n   print \"wrote sky.svg\";\n\n# Plot Sun altitude samples into an SVG\n   let loc = location(60,10);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   graphics().function((h): altitude(sun, t0.add_hours(h), obs), range(0,24,1)).title(\"Sun altitude\").write_svg(\"sun-altitude.svg\");\n   print \"wrote sun-altitude.svg\";\n\n# Draw a labelled line SVG plot with explicit axes\n   graphics().line([0, 1, 2, 3, 4], [1, 3, 2, 5, 4]).points([0, 1, 2, 3, 4], [1, 3, 2, 5, 4]).text([1, 3], [3, 5], [\"local peak\", \"maximum\"]).title(\"Example line chart\").xlabel(\"sample number\").ylabel(\"measured value\").xrange(0, 4).yrange(0, 6).xticks([0, 1, 2, 3, 4]).yticks([0, 2, 4, 6]).write_svg(\"line-plot.svg\");\n   print \"wrote line-plot.svg\";\n\n# Draw a labelled point SVG plot with explicit axes\n   graphics().points([0, 1, 2, 3, 4], [2, 1, 4, 3, 5]).text([0, 2, 4], [2, 4, 5], [\"A\", \"B\", \"C\"]).title(\"Example point chart\").xlabel(\"sample number\").ylabel(\"score\").xrange(-0.5, 4.5).yrange(0, 6).xticks([0, 1, 2, 3, 4]).yticks([0, 2, 4, 6]).write_svg(\"points-plot.svg\");\n   print \"wrote points-plot.svg\";\n\n# Return several SVG graphics from one program\n   let t = time(2026,1,1,21,0,0);\n   let loc = location(latitude: 60, longitude: 10);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   graphics(t, loc).dark().sky_view(center_az: 180, center_alt: 45, fov: 120).sky_grid().sky_stars(magnitude: 4).sky_planets().write_svg(\"gallery-sky.svg\");\n   graphics().function((h): altitude(sun, t0.add_hours(h), obs), range(0,24,1)).title(\"Sun altitude\").write_svg(\"gallery-sun-altitude.svg\");\n   graphics().polygon([0, 1, 2, 3, 4], [0, 3, 4, 2, 0]).line([0, 1, 2, 3, 4], [0, 3, 4, 2, 0]).points([0, 1, 2, 3, 4], [0, 3, 4, 2, 0]).text([0, 2, 4], [0, 4, 0], [\"start\", \"peak\", \"end\"]).title(\"Polygon, points and labels\").write_svg(\"gallery-shape.svg\");\n   print \"wrote three SVG graphics\";\n\n# Plot daylight duration across three planning dates\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let d0 = time(2026,4,1,0,0,0);\n   let d1 = time(2026,5,1,0,0,0);\n   let d2 = time(2026,6,1,0,0,0);\n   daylight(d) {\n   let span = range(d, d.add_days(1));\n   let rise = events(sunrise, span, loc).first().time;\n   let set = events(sunset, span, loc).first().time;\n   let value = (set - rise) * 24;\n   }\n   graphics().line([0, 1, 2], [daylight(d0).value, daylight(d1).value, daylight(d2).value]).points([0, 1, 2], [daylight(d0).value, daylight(d1).value, daylight(d2).value]).xlabel(\"month\").ylabel(\"daylight hours\").write_svg(\"daylight.svg\");\n   print \"wrote daylight.svg\";\n\n# Sky map centered on the south horizon\n   graphics(time(2026,1,1,21,0,0), location(60,10), center_az: 180, center_alt: 25, fov: 100).dark().sky_grid().sky_constellations().sky_planets().write_svg(\"south-sky.svg\");\n   print \"wrote south-sky.svg\";\n\n# Add custom text to a graphic\n   graphics().title(\"Example plot\").text(1, 1, \"note\").write_svg(\"text.svg\");\n   print \"wrote text.svg\";","metadata":{"name":"charts and graphics","path":"Astrologos.examples.graphics","kind":"topic","aliases":["graphics","svg","sky map","plot","chart drawing"],"resources":["ephemeris","stars","constellations"],"children":[]}},{"id":"topic:example.resources","title":"Astrologos.examples.resources","text":"Topic: Astrologos.examples.resources - examples for resource discovery, upstream source metadata, and availability checks\nSyntax:\n  resources()\n  resource_sources()\n  value.available()\n  help(\"topic\").resources\nAliases: resources, resource availability, data sources, diagnostics, available\nChildren: weather and fields, topography(), magnetic field\nExamples:\n# Verify terrain data before sampling a location\n   let loc = location(60.0, 10.0);\n   let terrain = topography(earth);\n   print terrain.available(), sample(terrain, loc);\n\n# Verify forecast data before sampling weather fields\n   let fc = forecast();\n   let loc = location(60.0, 10.0);\n   let rows = fc.sample(loc, temperature, wind);\n   print fc.available(), rows[0].temperature, rows[0].wind.u, rows[0].wind.v;\n\n# Inspect the NetCDF file behind Earth topography\n   let nc = netcdf(earth_topography);\n   print nc.path, nc.variables.length();\n\n# Export the upstream source table for an operator report\n   let sources = resource_sources();\n   print sources;","metadata":{"name":"resources and diagnostics","path":"Astrologos.examples.resources","kind":"topic","aliases":["resources","resource availability","data sources","diagnostics","available"],"resources":[],"children":["topic:example.weather_fields","topic:example.topography","topic:example.magnetic"]}},{"id":"topic:example.runtime","title":"Astrologos.examples.runtime","text":"Topic: Astrologos.examples.runtime - examples for runtime automation, timing, early exit, and development checks\nSyntax:\n  run(\"file.astrologos\")\n  elapsed()\n  sleep(milliseconds)\n  exit()\n  astrologos-cli check-help-examples\nAliases: automation, run file, elapsed, sleep, exit, help json\nChildren: resources and diagnostics\nExamples:\n# Time a sunrise search for an operator log\n   let start = elapsed();\n   let loc = location(58.9666667, 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   let rise = events(sunrise, day, loc).first().time.utc();\n   print rise, elapsed() - start;\n\n# Pause between two status samples\n   let before = elapsed();\n   sleep(10);\n   print elapsed() - before;\n\n# Stop a script early with the deprecated run() alias\n   print \"before run\";\n   run();\n   print \"after run\";\n\n# Stop after a guard condition has printed the reason\n   let fc = forecast();\n   if fc.available() == false {\n   print \"forecast unavailable\";\n   exit();\n   }\n   print fc.count();\n\n# Record the command that validates the shipped help examples\n   print \"astrologos-cli check-help-examples\";","metadata":{"name":"runtime automation","path":"Astrologos.examples.runtime","kind":"topic","aliases":["automation","run file","elapsed","sleep","exit","help json"],"resources":[],"children":["topic:example.resources"]}},{"id":"topic:example.math","title":"Astrologos.examples.math","text":"Topic: Astrologos.examples.math - examples for numeric functions, trigonometry, rounding, logs, integration, and optimization\nSyntax:\n  sin(x)\n  pow(x, y)\n  clamp(value, min, max)\n  angle_in_degrees(vector_a, vector_b)\n  integrate((x): expression, {x: range(a, b)})\n  minimize((x): expression, {x: start}, options)\nAliases: math, numeric recipes, trigonometry, logs, rounding\nChildren: search and optimization\nExamples:\n# Trigonometry and unit conversion\n   let angle = to_radians(45);\n   print sin(angle), cos(angle), tan(angle), to_degrees(angle);\n\n# Vector angle in degrees\n   let a = vector(1,0,0);\n   let b = vector(0,1,0);\n   print a.angle(b, deg), angle_in_degrees(a, b);\n\n# Rounding, clamping, powers, and roots\n   let x = -2.75;\n   print abs(x), floor(x), ceil(x), round(x), trunc(x), clamp(x, -1, 1), pow(2, 8), sqrt(81), cbrt(27);\n\n# Fractions, hypot, and signs\n   let x = -2.75;\n   print fract(x), hypot(3, 4), sign(x), min(x, 0), max(x, 0);\n\n# Logs, exponentials, and finite checks\n   let value = exp(ln(10));\n   print value, exp2(3), log(100, 10), log10(1000), log2(8), is_finite(value), is_nan(0/0), is_infinite(1/0);\n\n# Hyperbolic and inverse functions\n   print sinh(1), cosh(1), tanh(1), asinh(1), acosh(2), atanh(0.5), asin(0.5), acos(0.5), atan(1), atan2(1, 1);\n\n# Integrate a daylight exposure proxy over a day\n   let exposure = integrate((h): max(0, sin(pi * h / 24)), {h: range(0, 24, 0.1)});\n   print exposure;\n\n# Minimize distance from a desired Sun altitude\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let day = time(2026,6,21,0,0,0);\n   let objective = (h): pow(altitude(sun, day.add_hours(h), loc) - 20, 2);\n   print minimize(objective, {h: 6}, {bounds: {h: range(0, 24)}});","metadata":{"name":"math recipes","path":"Astrologos.examples.math","kind":"topic","aliases":["math","numeric recipes","trigonometry","logs","rounding"],"resources":[],"children":["topic:example.search"]}},{"id":"topic:example.search","title":"Astrologos.examples.search","text":"Topic: Astrologos.examples.search - examples for searching ranges, finding target crossings, and using closure-valued scalar functions\nSyntax:\n  search((x): expression, range(start, stop, step), target(value)).next()\n  target(value, increasing)\n  target(value, decreasing)\nAliases: search, target, root finding, minimize, custom scalar crossing\nResources: ephemeris, iers\nExamples:\n# Search for a custom scalar crossing\n   let root = search((x): cos(x) - 0.5, range(0, 4, 0.25), target(0, decreasing)).next();\n   print root;\n\n# Find when the Sun crosses a chosen altitude\n   let loc = location(60,10);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   let f = (h): altitude(sun, t0.add_hours(h), obs) - 10.0;\n   print search(f, range(0, 24, 0.25), target(0)).next();\n\n# Search for the Moon near Sirius\n   let sirius = stars().find(\"Sirius\").direction();\n   let f = (t): direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections)).angular_distance(sirius, t) - 5.0;\n   print search(f, range(time(2026,1,1,0,0,0), time(2026,2,1,0,0,0), 0.25), target(0)).next();\n\n# Closest approach style minimization over a numeric domain\n   let f = (x): pow(x - 2.5, 2) + 1;\n   print minimize(f, {x: 0}, {bounds: {x: range(0, 5)}});\n\n# Use target direction to pick a crossing side\n   let root = search((x): sin(x), range(0, 7, 0.1), target(0, increasing)).next();\n   print root;","metadata":{"name":"search and optimization","path":"Astrologos.examples.search","kind":"topic","aliases":["search","target","root finding","minimize","custom scalar crossing"],"resources":["ephemeris","iers"],"children":[]}},{"id":"function:time","title":"time","text":"Function: time - creates UTC time, or local civil time when given a timezone, location, or place\nSyntax:\n  time() -> Time\n  time(julian_date: Number) -> Time\n  time(year: Integer, month: Integer, day: Integer, hour: Integer, minute: Integer, second: Integer) -> Time\n  time(timezone: Timezone|Text|Location|Place) -> LocalTime\n  time(year: Integer, month: Integer, day: Integer, hour: Integer, minute: Integer, second: Integer, timezone: Timezone|Text|Location|Place) -> LocalTime\nArguments:\n  julian_date: Number [optional] - UTC Julian date\n  year: Integer [optional] - full UTC year\n  month: Integer [optional] - month from 1 to 12\n  day: Integer [optional] - day from 1 to 31\n  hour: Integer [optional] - hour from 0 to 23\n  minute: Integer [optional] - minute from 0 to 59\n  second: Integer [optional] - second from 0 to 59\n  timezone: Timezone|Text|Location|Place [optional] - timezone id, Timezone, Location, or Place for local civil time\nResources: iers\nChildren: Time, year, month, day, hour, minute, second, weekday, year(), utc(), tt(), ut1(), tdb(), dt(), local(), add_months(), add_days(), add_hours(), add_minutes(), add_seconds(), children(), fields(), functions(), help(), available()\nExample:\n# Build a UTC timestamp for later calculations\n   print time();","metadata":{"name":"time","path":"time","kind":"function","aliases":[],"resources":["iers"],"children":["type:Time","field:Time.year","field:Time.month","field:Time.day","field:Time.hour","field:Time.minute","field:Time.second","field:Time.weekday","member:Time.year","member:Time.utc","member:Time.tt","member:Time.ut1","member:Time.tdb","member:Time.dt","member:Time.local","member:Time.add_months","member:Time.add_days","member:Time.add_hours","member:Time.add_minutes","member:Time.add_seconds","member:Time.children","member:Time.fields","member:Time.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:weekday","title":"weekday","text":"Function: weekday - creates a weekday value\nSyntax:\n  weekday(value: Integer|Text) -> Weekday\nArguments:\n  value: Integer|Text - ISO index from 1 to 7, full name, or short name\nChildren: Weekday, name(), short(), letter(), index(), children(), fields(), functions(), help(), available()\nExample:\n# Convert a date or name to a weekday value\n   print wednesday;","metadata":{"name":"weekday","path":"weekday","kind":"function","aliases":[],"resources":[],"children":["type:Weekday","member:Weekday.name","member:Weekday.short","member:Weekday.letter","member:Weekday.index","member:Weekday.children","member:Weekday.fields","member:Weekday.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:location","title":"location","text":"Function: location - creates a location system value\nSyntax:\n  location(body: Body, latitude: Number, longitude: Number) -> Location\nArguments:\n  body: Body [optional] - central body; defaults to earth\n  latitude: Number - latitude in degrees\n  longitude: Number - longitude in degrees\nChildren: Location, body, latitude, longitude, observer(), direction(), children(), fields(), functions(), help(), available()\nExample:\n# Prepare a latitude and longitude for local sky calculations\n   print location(latitude: 60.0, longitude: 270.0);","metadata":{"name":"location","path":"location","kind":"function","aliases":[],"resources":[],"children":["type:Location","field:Location.body","field:Location.latitude","field:Location.longitude","member:Location.observer","member:Location.direction","member:Location.children","member:Location.fields","member:Location.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:observer","title":"observer","text":"Function: observer - creates a body-fixed 3D observer\nSyntax:\n  observer(location_or_body: Location|Body, height_or_position: Number|Field|Vector, height_or_zenith: Number|Vector) -> Observer\nArguments:\n  location_or_body: Location|Body - surface location or body for body-fixed vectors\n  height_or_position: Number|Field|Vector [optional] - height in kilometers, topography field for a location, or observer position vector\n  height_or_zenith: Number|Vector [optional] - height above topography for a location, or body-fixed zenith/up vector\nChildren: Observer, body, position, zenith, location, height_km, position(), location(), latitude(), longitude(), height(), zenith(), north(), west(), limb(), direction(), orbit(), children(), fields(), functions(), help(), available()\nExample:\n# Prepare an observing site with height\n   print location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);","metadata":{"name":"observer","path":"observer","kind":"function","aliases":[],"resources":[],"children":["type:Observer","field:Observer.body","field:Observer.position","field:Observer.zenith","field:Observer.location","field:Observer.height_km","member:Observer.position","member:Observer.location","member:Observer.latitude","member:Observer.longitude","member:Observer.height","member:Observer.zenith","member:Observer.north","member:Observer.west","member:Observer.limb","member:Observer.direction","member:Observer.orbit","member:Observer.children","member:Observer.fields","member:Observer.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:body","title":"body","text":"Function: body - creates a body system value\nSyntax:\n  body(name: Text) -> Body\nArguments:\n  name: Text - solar-system body name\nChildren: Body, name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), inferior_conjunction(), superior_conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), greatest_eastern_elongation(), greatest_western_elongation(), greatest_elongation(), periapsis(), apoapsis(), transit(), children(), fields(), functions(), help(), available()\nExample:\n# Look up a solar-system body by name\n   print sun;","metadata":{"name":"body","path":"body","kind":"function","aliases":[],"resources":[],"children":["type:Body","field:Body.name","field:Body.kind","field:Body.xmu","field:Body.radius","field:Body.mass","field:Body.H","field:Body.n","field:Body.k","field:Body.known","member:Body.rotational_axis","member:Body.rotational_axis_ra","member:Body.rotational_axis_dec","member:Body.state","member:Body.rise","member:Body.set","member:Body.conjunction","member:Body.inferior_conjunction","member:Body.superior_conjunction","member:Body.opposition","member:Body.eastern_quadrature","member:Body.western_quadrature","member:Body.quadrature","member:Body.greatest_eastern_elongation","member:Body.greatest_western_elongation","member:Body.greatest_elongation","member:Body.periapsis","member:Body.apoapsis","member:Body.transit","member:Body.children","member:Body.fields","member:Body.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:elements","title":"elements","text":"Function: elements - creates osculating orbital elements\nSyntax:\n  elements(q: Number, e: Number, i: Number, node: Number, argument: Number, anomaly: Number, unit: Unit) -> Elements\nArguments:\n  q: Number - periapsis distance in kilometers\n  e: Number - eccentricity\n  i: Number - inclination in degrees by default\n  node: Number - longitude of ascending node in degrees by default\n  argument: Number - argument of periapsis in degrees by default\n  anomaly: Number - true anomaly in degrees by default\n  unit: Unit [optional] - optional angle unit, such as rad\nChildren: Elements, q, e, i, node, argument, anomaly, semimajor_axis, semi_latus_rectum, children(), fields(), functions(), help(), available()\nExample:\n# Define elliptic orbital elements and inspect eccentricity and inclination\n   let el = elements(q: 7000, e: 0.1, i: 30, node: 40, argument: 50, anomaly: 0, unit: deg);\n   print el.q, el.e, el.i;","metadata":{"name":"elements","path":"elements","kind":"function","aliases":[],"resources":[],"children":["type:Elements","field:Elements.q","field:Elements.e","field:Elements.i","field:Elements.node","field:Elements.argument","field:Elements.anomaly","field:Elements.semimajor_axis","field:Elements.semi_latus_rectum","member:Elements.children","member:Elements.fields","member:Elements.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:orbit","title":"orbit","text":"Function: orbit - creates a two-body orbit from elements\nSyntax:\n  orbit(elements: Elements, central: Body, time: Time, axis: Axis) -> Orbit\nArguments:\n  elements: Elements - osculating elements at the epoch\n  central: Body - central gravitating body\n  time: Time - epoch time\n  axis: Axis [optional] - non-rotating element axis, icrf by default; tod is also accepted\nChildren: Orbit, body, central, time, epoch, axis, elements, position, velocity, conic, position(), velocity(), at(), elements(), predict(), children(), fields(), functions(), help(), available()\nExample:\n# Propagate an elliptic orbit six hours forward\n   let epoch = time(2026,1,1,0,0,0);\n   let el = elements(q: 7000, e: 0.1, i: 30, node: 40, argument: 50, anomaly: 0, unit: deg);\n   let orb = orbit(el, earth, epoch);\n   print orb.position().length(), orb.position(epoch.add_hours(6)).length();","metadata":{"name":"orbit","path":"orbit","kind":"function","aliases":[],"resources":[],"children":["type:Orbit","field:Orbit.body","field:Orbit.central","field:Orbit.time","field:Orbit.epoch","field:Orbit.axis","field:Orbit.elements","field:Orbit.position","field:Orbit.velocity","field:Orbit.conic","member:Orbit.position","member:Orbit.velocity","member:Orbit.at","member:Orbit.elements","member:Orbit.predict","member:Orbit.children","member:Orbit.fields","member:Orbit.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:system","title":"system","text":"Function: system - creates an immutable system of integrated states, body-backed orbits, and ephemeris bodies\nSyntax:\n  system(epoch: Time, bodies: Body|State|Orbit|Text|List, integrator: Text) -> System\nArguments:\n  epoch: Time - system epoch\n  bodies: Body|State|Orbit|Text|List - system entries: explicit states, body-backed orbits, or ephemeris bodies\n  integrator: Text [optional] - optional integrator: \"ias15\", \"dp5\", or \"rk4\"; \"dp5\" is slow and mainly for debugging/reference comparisons\nResources: ephemeris, iers, small_bodies\nChildren: System, time, bodies, states, sources, source_counts, integrator, method, ephemeris_coverage, diagnostics, ephemeris_residuals, positions, velocities, integrated, ephemeris, cache_size, at(), cache(), clear_cache(), state(), position(), velocity(), distance(), children(), fields(), functions(), help(), available()\nExamples:\n# Run the example and print a useful result\n   let t0 = time(2026, 7, 4); system(t0, earth, moon, sun)\n\n# Run the example and print a useful result\n   let t0 = time(2026, 7, 4); let comet = state(body: body(\"comet\"), time: t0, position: vector(100000000,0,0), velocity: vector(0,10,0)); system(t0, comet, sun)\n\n# Run the example and print a useful result\n   let t0 = time(2026, 7, 4); let orbit0 = state(earth, t0).orbit_around(state(sun, t0)); system(t0, orbit0, moon)\n\n# Run the example and print a useful result\n   let t0 = time(2026, 7, 4); system(t0, earth, moon, sun, integrator: \"dp5\")","metadata":{"name":"system","path":"system","kind":"function","aliases":[],"resources":["ephemeris","iers","small_bodies"],"children":["type:System","field:System.time","field:System.bodies","field:System.states","field:System.sources","field:System.source_counts","field:System.integrator","field:System.method","field:System.ephemeris_coverage","field:System.diagnostics","field:System.ephemeris_residuals","field:System.positions","field:System.velocities","field:System.integrated","field:System.ephemeris","field:System.cache_size","member:System.at","member:System.cache","member:System.clear_cache","member:System.state","member:System.position","member:System.velocity","member:System.distance","member:System.children","member:System.fields","member:System.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:observation","title":"observation","text":"Function: observation - creates an orbit-determination observation\nSyntax:\n  observation(observer: Observer, time: Time, direction: Direction|State, frame: Frame) -> Observation\n  observation(target: Body|Star, time: Time, elevation: Number) -> Observation\nArguments:\n  observer: Observer [optional] - observing site\n  time: Time - observation time\n  direction: Direction|State [optional] - measured line of sight, or a state whose position gives the line of sight\n  frame: Frame [optional] - coordinate frame for RA/Dec shorthand or state conversion; defaults to icrf\n  target: Body|Star [optional] - observed planet, Moon, Sun, or star\n  elevation: Number [optional] - measured elevation above the horizon in degrees\nChildren: Observation, observer, time, direction, target, elevation, uncertainty, weight, label, icrf(), topographic(), with_uncertainty(), with_weight(), children(), fields(), functions(), help(), available()\nExamples:\n# Run the example and print a useful result\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n\n# Synthesize a planet elevation observation for navigation\n   let loc = location(latitude: 59.91, longitude: 10.75);\n   let t = time(2026, 1, 12, 22, 10, 0);\n   let o = observation(jupiter, t, elevation: altitude(jupiter, t, loc));\n   print o.target.name, o.elevation;\n\n# Synthesize a star elevation observation for navigation\n   let loc = location(latitude: 59.91, longitude: 10.75);\n   let site = loc.observer(height: 0);\n   let t = time(2026, 1, 12, 22, 0, 0);\n   let sirius = stars().find(\"sirius\");\n   let o = observation(sirius, t, elevation: sirius.altaz(t, site).altitude);\n   print o.target.name, o.elevation;\n\n# Build an observation from RA/Dec in an explicit frame\n   let obs = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let t = time(2026, 7, 3, 0, 0, 0);\n   print observation(obs, t, ra: 120.1, dec: 22.4, frame: icrf);\n\n# Build an observation from a topocentric planet state\n   let loc = location(latitude: 59.91, longitude: 10.75);\n   let obs = loc.observer(height: 0);\n   let t = time(2026, 7, 3, 0, 0, 0);\n   let seen = state(mars, t, loc, topocentric, icrf, no_correction);\n   print observation(obs, t, seen);","metadata":{"name":"observation","path":"observation","kind":"function","aliases":[],"resources":[],"children":["type:Observation","field:Observation.observer","field:Observation.time","field:Observation.direction","field:Observation.target","field:Observation.elevation","field:Observation.uncertainty","field:Observation.weight","field:Observation.label","member:Observation.icrf","member:Observation.topographic","member:Observation.with_uncertainty","member:Observation.with_weight","member:Observation.children","member:Observation.fields","member:Observation.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:orbit_determination","title":"orbit_determination","text":"Function: orbit_determination - determines an orbit from three or more observations\nSyntax:\n  orbit_determination(observations: List<Observation>) -> OrbitSolution\nArguments:\n  observations: List<Observation> - three or more observations\nResources: ephemeris, iers\nChildren: OrbitSolution, orbit, elements, observations, residuals, rms, max_residual, method, status, iterations, predict(), residuals(), children(), fields(), functions(), help(), available()\nExamples:\n# Determine an elliptic orbit from five observations\n   let site = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let o1 = observation(site, time(2028, 7, 3, 0, 0, 0), ra: 131.0857742519269, dec: 18.803678151005595);\n   let o2 = observation(site, time(2028, 7, 23, 0, 0, 0), ra: 135.0300892722528, dec: 18.040162341691612);\n   let o3 = observation(site, time(2028, 8, 12, 0, 0, 0), ra: 139.04202357010908, dec: 17.175191580463146);\n   let o4 = observation(site, time(2028, 9, 1, 0, 0, 0), ra: 142.9726130958044, dec: 16.26645304942825);\n   let o5 = observation(site, time(2028, 9, 21, 0, 0, 0), ra: 146.67383907727944, dec: 15.384398529605518);\n   let od = orbit_determination([o1, o2, o3, o4, o5], central: sun);\n   print od.status, od.rms, od.orbit.conic;\n   print od.elements;\n\n# Determine a parabolic orbit from five observations\n   let site = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let o1 = observation(site, time(2028, 7, 3, 0, 0, 0), ra: 131.17579335594158, dec: 18.78269573364523);\n   let o2 = observation(site, time(2028, 7, 23, 0, 0, 0), ra: 135.28728784032972, dec: 18.019922410032073);\n   let o3 = observation(site, time(2028, 8, 12, 0, 0, 0), ra: 139.4336093408432, dec: 17.155215233522643);\n   let o4 = observation(site, time(2028, 9, 1, 0, 0, 0), ra: 143.47212659888854, dec: 16.247957989051894);\n   let o5 = observation(site, time(2028, 9, 21, 0, 0, 0), ra: 147.26211907839155, dec: 15.369205484638817);\n   let od = orbit_determination([o1, o2, o3, o4, o5], central: sun);\n   print od.status, od.rms, od.orbit.conic;\n   print od.elements;\n\n# Determine a hyperbolic orbit from five observations\n   let site = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let o1 = observation(site, time(2028, 7, 3, 0, 0, 0), ra: 131.18472418056754, dec: 18.780611424357605);\n   let o2 = observation(site, time(2028, 7, 23, 0, 0, 0), ra: 135.32226127731965, dec: 18.017374322931712);\n   let o3 = observation(site, time(2028, 8, 12, 0, 0, 0), ra: 139.49019892428979, dec: 17.151931814342543);\n   let o4 = observation(site, time(2028, 9, 1, 0, 0, 0), ra: 143.54674567209997, dec: 16.24393067242571);\n   let o5 = observation(site, time(2028, 9, 21, 0, 0, 0), ra: 147.35214877838115, dec: 15.364550692814579);\n   let od = orbit_determination([o1, o2, o3, o4, o5], central: sun);\n   print od.status, od.rms, od.orbit.conic;\n   print od.elements;\n\n# Generate an observation from a planet state\n   let loc = location(latitude: 59.91, longitude: 10.75);\n   let obs = loc.observer(height: 0);\n   let t = time(2026, 7, 3, 0, 0, 0);\n   let seen = state(mars, t, loc, topocentric, icrf, no_correction);\n   print observation(obs, t, seen);\n\n# Generate an observation from orbital elements\n   let obs = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let epoch = time(2028, 7, 3, 0, 0, 0);\n   let target = orbit(\n   elements(q: 900000000, e: 1.1, i: 18.0, node: 35.0, argument: 75.0, anomaly: 25.0),\n   sun,\n   epoch,\n   icrf\n   );\n   print observation(obs, epoch, target.predict(epoch, obs));","metadata":{"name":"orbit_determination","path":"orbit_determination","kind":"function","aliases":[],"resources":["ephemeris","iers"],"children":["type:OrbitSolution","field:OrbitSolution.orbit","field:OrbitSolution.elements","field:OrbitSolution.observations","field:OrbitSolution.residuals","field:OrbitSolution.rms","field:OrbitSolution.max_residual","field:OrbitSolution.method","field:OrbitSolution.status","field:OrbitSolution.iterations","member:OrbitSolution.predict","member:OrbitSolution.residuals","member:OrbitSolution.children","member:OrbitSolution.fields","member:OrbitSolution.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:heading","title":"heading","text":"Function: heading - creates a compass heading\nSyntax:\n  heading(azimuth: Number|Text, unit: Unit) -> Heading\nArguments:\n  azimuth: Number|Text - degrees clockwise from north, or a compass name such as \"nw\"\n  unit: Unit [optional] - optional angle unit for numeric headings; degrees are default\nChildren: Heading, azimuth_degrees, long_name, short_name, azimuth(), long(), short(), vector(), children(), fields(), functions(), help(), available()\nExample:\n# Prepare a compass heading for horizon calculations\n   print heading(135.0);","metadata":{"name":"heading","path":"heading","kind":"function","aliases":[],"resources":[],"children":["type:Heading","field:Heading.azimuth_degrees","field:Heading.long_name","field:Heading.short_name","member:Heading.azimuth","member:Heading.long","member:Heading.short","member:Heading.vector","member:Heading.children","member:Heading.fields","member:Heading.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:direction","title":"direction","text":"Function: direction - creates a frame-tagged unit-sphere direction\nSyntax:\n  direction(frame: Frame, ra: Number, dec: Number, azimuth: Number, altitude: Number, zenith: Number, unit: Unit) -> Direction\nArguments:\n  frame: Frame [optional] - coordinate frame, defaulting to icrf\n  ra: Number [optional] - right ascension / longitude in degrees by default\n  dec: Number [optional] - declination / latitude in degrees by default\n  azimuth: Number [optional] - topographic azimuth clockwise from north; degrees are default\n  altitude: Number [optional] - topographic altitude/elevation above the horizon; degrees are default\n  zenith: Number [optional] - topographic angle down from local zenith; degrees are default\n  unit: Unit [optional] - optional angle unit such as rad\nChildren: Direction, frame, vector, ra, dec, to_frame(), altaz(), angular_distance(), rise(), set(), transit(), children(), fields(), functions(), help(), available()\nExample:\n# Compare two sky directions by angular distance\n   let a = direction(ra: 42.0, dec: 18.0);\n   let b = direction(ra: 45.0, dec: 20.0);\n   print a.angular_distance(b);","metadata":{"name":"direction","path":"direction","kind":"function","aliases":[],"resources":[],"children":["type:Direction","field:Direction.frame","field:Direction.vector","field:Direction.ra","field:Direction.dec","member:Direction.to_frame","member:Direction.altaz","member:Direction.angular_distance","member:Direction.rise","member:Direction.set","member:Direction.transit","member:Direction.children","member:Direction.fields","member:Direction.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:polygon","title":"polygon","text":"Function: polygon - creates a spherical polygon with great-circle edges\nSyntax:\n  polygon(frame: Frame, vertices: List, time: Time) -> Polygon\nArguments:\n  frame: Frame [optional] - coordinate frame for the polygon vertices\n  vertices: List - right-handed vertex list with great-circle edges\n  time: Time [optional] - time used when converting vertices between frames\nChildren: Polygon, frame, count, vertices, invert(), to_frame(), inside(), area(), signed_area(), winding(), lonlat(), lonlat_unwrapped(), lonlat_diagnostic(), children(), fields(), functions(), help(), available()\nExample:\n# Test a sky direction against a polygon\n   print polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);","metadata":{"name":"polygon","path":"polygon","kind":"function","aliases":[],"resources":[],"children":["type:Polygon","field:Polygon.frame","field:Polygon.count","field:Polygon.vertices","member:Polygon.invert","member:Polygon.to_frame","member:Polygon.inside","member:Polygon.area","member:Polygon.signed_area","member:Polygon.winding","member:Polygon.lonlat","member:Polygon.lonlat_unwrapped","member:Polygon.lonlat_diagnostic","member:Polygon.children","member:Polygon.fields","member:Polygon.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:vector","title":"vector","text":"Function: vector - creates a vector system value\nSyntax:\n  vector(x: Number, y: Number, z: Number) -> Vector\n  vector(from: Origin, to: Origin, time: Time) -> Vector\nArguments:\n  x: Number [optional] - cartesian x component in km\n  y: Number [optional] - cartesian y component in km, defaulting to zero\n  z: Number [optional] - cartesian z component in km, defaulting to zero\n  from: Origin [optional] - source origin such as barycentric or geocentric\n  to: Origin [optional] - target origin such as barycentric or geocentric\n  time: Time [optional] - time for the origin transform\nChildren: Vector, kind, orientation, transposed, x(), y(), z(), range(), theta(), phi(), length(), lenxy(), lenxz(), lenyz(), dot(), cross(), angle(), distance(), online(), turn(), normalise(), transpose(), translate_origin(), children(), fields(), functions(), help(), available()\nExample:\n# Compute distance between two position vectors\n   let a = vector(7000, 0, 0);\n   let b = vector(0, 7000, 0);\n   print a.length(), b.length(), a.distance(b);","metadata":{"name":"vector","path":"vector","kind":"function","aliases":[],"resources":[],"children":["type:Vector","field:Vector.kind","field:Vector.orientation","field:Vector.transposed","member:Vector.x","member:Vector.y","member:Vector.z","member:Vector.range","member:Vector.theta","member:Vector.phi","member:Vector.length","member:Vector.lenxy","member:Vector.lenxz","member:Vector.lenyz","member:Vector.dot","member:Vector.cross","member:Vector.angle","member:Vector.distance","member:Vector.online","member:Vector.turn","member:Vector.normalise","member:Vector.transpose","member:Vector.translate_origin","member:Vector.children","member:Vector.fields","member:Vector.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:spherical","title":"spherical","text":"Function: spherical - creates a vector from spherical coordinates\nSyntax:\n  spherical(radius: Number, theta: Number, phi: Number, unit: Unit) -> Vector\nArguments:\n  radius: Number - spherical range/radius in km\n  theta: Number - azimuth angle in radians by default\n  phi: Number - elevation angle in radians by default\n  unit: Unit [optional] - optional angle unit for theta and phi, such as deg\nChildren: help(), available()\nExample:\n# Convert spherical coordinates into a vector-like value\n   print vector(1.0, 2.0, 3.0);","metadata":{"name":"spherical","path":"spherical","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:matrix","title":"matrix","text":"Function: matrix - creates a matrix system value\nSyntax:\n  matrix(x0: Number, y0: Number, z0: Number) -> Matrix\n  matrix(from: Axis, to: Axis, time: Time) -> Matrix\n  matrix(m00: Number, m10: Number, m20: Number, m01: Number, m11: Number, m21: Number, m02: Number, m12: Number, m22: Number) -> Matrix\nArguments:\n  x0: Number [optional] - first diagonal value, or first column x for a 9-value matrix\n  y0: Number [optional] - second diagonal value, or first column y for a 9-value matrix\n  z0: Number [optional] - third diagonal value, or first column z for a 9-value matrix\n  from: Axis [optional] - source axis such as icrf, tod, ef, or topographic\n  to: Axis [optional] - target axis such as icrf, tod, ef, or topographic\n  time: Time [optional] - time for the axis transform\n  m00: Number [optional] - row 0 column 0\n  m10: Number [optional] - row 1 column 0\n  m20: Number [optional] - row 2 column 0\n  m01: Number [optional] - row 0 column 1\n  m11: Number [optional] - row 1 column 1\n  m21: Number [optional] - row 2 column 1\n  m02: Number [optional] - row 0 column 2\n  m12: Number [optional] - row 1 column 2\n  m22: Number [optional] - row 2 column 2\nResources: iers\nChildren: Matrix, m00, m10, m20, m01, m11, m21, m02, m12, m22, kind, transpose(), inverse(), determinant(), normalise(), multiply_transpose(), rotate_axis(), children(), fields(), functions(), help(), available()\nExample:\n# Rotate a vector from ICRF into Earth-fixed coordinates\n   let t = time(2026,1,1,0,0,0);\n   let v = matrix(icrf, earthfixed, t) * vector(1, 0, 0);\n   print v.x(), v.y(), v.z();","metadata":{"name":"matrix","path":"matrix","kind":"function","aliases":[],"resources":["iers"],"children":["type:Matrix","field:Matrix.m00","field:Matrix.m10","field:Matrix.m20","field:Matrix.m01","field:Matrix.m11","field:Matrix.m21","field:Matrix.m02","field:Matrix.m12","field:Matrix.m22","field:Matrix.kind","member:Matrix.transpose","member:Matrix.inverse","member:Matrix.determinant","member:Matrix.normalise","member:Matrix.multiply_transpose","member:Matrix.rotate_axis","member:Matrix.children","member:Matrix.fields","member:Matrix.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:unit","title":"unit","text":"Function: unit - creates a unit system value\nSyntax:\n  unit(name: Text) -> Unit\nArguments:\n  name: Text - unit name such as km, au, deg, or rad\nChildren: Unit, name, dimension, factor_to_base, children(), fields(), functions(), help(), available()\nExample:\n# Prepare a unit for quantity conversion\n   print deg;","metadata":{"name":"unit","path":"unit","kind":"function","aliases":[],"resources":[],"children":["type:Unit","field:Unit.name","field:Unit.dimension","field:Unit.factor_to_base","member:Unit.children","member:Unit.fields","member:Unit.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:state","title":"state","text":"Function: state - creates an orbital state from ephemeris data or explicit initial conditions\nSyntax:\n  state(body: Body, time: Time, location: Location, origin: Origin, axis: Axis, correction: Correction, orbit: Orbit, position: Vector, velocity: Vector, mass: Number, xmu: Number) -> State\n  state(template: State, body: Body) -> State\nArguments:\n  body: Body [optional] - solar-system body\n  time: Time [optional] - time for the state; defaults to current UTC time\n  location: Location [optional] - optional observer location\n  origin: Origin [optional] - default origin such as barycentric or geocentric\n  axis: Axis [optional] - default axis such as icrf, tod, ef, or topographic\n  correction: Correction [optional] - default correction model\n  orbit: Orbit [optional] - explicit two-body orbit to resolve into a barycentric ICRF state\n  position: Vector [optional] - explicit barycentric ICRF position in kilometers\n  velocity: Vector [optional] - explicit barycentric ICRF velocity in kilometers per day\n  mass: Number [optional] - override body mass in kg for integrated systems\n  xmu: Number [optional] - override gravitational parameter in km^3/s^2 for integrated systems\n  template: State [optional] - existing state whose time/location/defaults are reused\nResources: ephemeris, iers\nChildren: State, body, time, location, origin, axis, correction, ephemeris, pos_bc_icrf, vel_bc_icrf, pos_gc_icrf, vel_gc_icrf, pos_gc_tod, vel_gc_tod, pos_gc_ef, vel_gc_ef, position(), velocity(), ra(), dec(), geocentric(), topographic(), observer(), orbit_around(), shadow(), limb(), profile(), horizon(), children(), fields(), functions(), help(), available()\nExample:\n# Convert ephemeris position and velocity into orbital elements\n   let t = time(2026,1,1,0,0,0);\n   let earth_state = state(earth, t, barycentric, icrf, no_correction);\n   let sun_state = state(sun, t, barycentric, icrf, no_correction);\n   let orbit = earth_state.orbit_around(sun_state);\n   let el = orbit.elements();\n   print earth_state.position().length(), earth_state.velocity().length(), el.e;","metadata":{"name":"state","path":"state","kind":"function","aliases":[],"resources":["ephemeris","iers"],"children":["type:State","field:State.body","field:State.time","field:State.location","field:State.origin","field:State.axis","field:State.correction","field:State.ephemeris","field:State.pos_bc_icrf","field:State.vel_bc_icrf","field:State.pos_gc_icrf","field:State.vel_gc_icrf","field:State.pos_gc_tod","field:State.vel_gc_tod","field:State.pos_gc_ef","field:State.vel_gc_ef","member:State.position","member:State.velocity","member:State.ra","member:State.dec","member:State.geocentric","member:State.topographic","member:State.observer","member:State.orbit_around","member:State.shadow","member:State.limb","member:State.profile","member:State.horizon","member:State.children","member:State.fields","member:State.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:places","title":"places","text":"Function: places - opens the GeoNames places resource\nSyntax:\n  places(name: Text|Number, id: Number, country: Text|Country|Place, admin1: Text|Admin1|Admin2|Place, admin2: Text|Admin2|Place, limit: Number) -> Places\nAliases: placedb\nArguments:\n  name: Text|Number [optional] - place name or search text used to narrow this places view\n  id: Number [optional] - GeoNames id used to narrow this places view\n  country: Text|Country|Place [optional] - country filter for this places view\n  admin1: Text|Admin1|Admin2|Place [optional] - admin1 filter for this places view\n  admin2: Text|Admin2|Place [optional] - admin2 filter for this places view\n  limit: Number [optional] - maximum number of name matches retained by this places view\nResources: places\nChildren: Places, count, type_count, first(), all(), find(), search(), nearest(), nearby(), index(), types(), children(), fields(), functions(), help(), available()\nExamples:\n# Open the place database for lookup\n   print places().find(\"Oslo\");\n\n# Open the place database for lookup\n   print places(name:\"Oslo\", country:\"Norway\").first();\n\n# Open the place database for lookup\n   print places(id:3143244).first();\n\n# Open the place database for lookup\n   print places().nearest(location(60, 10));","metadata":{"name":"places","path":"places","kind":"function","aliases":["placedb"],"resources":["places"],"children":["type:Places","field:Places.count","field:Places.type_count","member:Places.first","member:Places.all","member:Places.find","member:Places.search","member:Places.nearest","member:Places.nearby","member:Places.index","member:Places.types","member:Places.children","member:Places.fields","member:Places.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:place","title":"place","text":"Function: place - creates a custom Earth place from a location and timezone\nSyntax:\n  place(id: Number) -> Place|Unavailable\n  place(name: Text, location: Location, timezone: Timezone|Text) -> Place\nArguments:\n  id: Number [optional] - GeoNames place id\n  name: Text [optional] - custom place name\n  location: Location [optional] - Earth location\n  timezone: Timezone|Text [optional] - timezone; inferred from location when omitted\nChildren: Place, id, name, ascii_name, names, latitude, longitude, feature_class, feature_code, place_type, country_code, admin1_code, admin2_code, population, elevation_m, dem_m, timezone_id, modified, importance, distance_km, location(), timezone(), country(), admin1(), admin2(), children(), fields(), functions(), help(), available()\nExamples:\n# Look up or define a named place\n   print places().find(\"Oslo\");\n\n# Look up or define a named place\n   print place(\"Cabin\", location(60, 10));","metadata":{"name":"place","path":"place","kind":"function","aliases":[],"resources":[],"children":["type:Place","field:Place.id","field:Place.name","field:Place.ascii_name","field:Place.names","field:Place.latitude","field:Place.longitude","field:Place.feature_class","field:Place.feature_code","field:Place.place_type","field:Place.country_code","field:Place.admin1_code","field:Place.admin2_code","field:Place.population","field:Place.elevation_m","field:Place.dem_m","field:Place.timezone_id","field:Place.modified","field:Place.importance","field:Place.distance_km","member:Place.location","member:Place.timezone","member:Place.country","member:Place.admin1","member:Place.admin2","member:Place.children","member:Place.fields","member:Place.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:country","title":"country","text":"Function: country - resolves a country from a name, ISO code, Place, or Country\nSyntax:\n  country(country: Text|Place|Country) -> Country\nArguments:\n  country: Text|Place|Country - country name, ISO alpha-2 code, Place, or Country\nResources: places\nChildren: Country, code, name, place_id, children(), fields(), functions(), help(), available()\nExamples:\n# Look up country metadata for a place\n   print country(\"Norway\");\n\n# Look up country metadata for a place\n   print places().find(\"Jar\", country(\"NO\"));","metadata":{"name":"country","path":"country","kind":"function","aliases":[],"resources":["places"],"children":["type:Country","field:Country.code","field:Country.name","field:Country.place_id","member:Country.children","member:Country.fields","member:Country.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:admin1","title":"admin1","text":"Function: admin1 - resolves a first-level administrative region\nSyntax:\n  admin1(admin1: Text|Number|Admin1, country: Text|Country|Place) -> Admin1\nArguments:\n  admin1: Text|Number|Admin1 - admin1 name or GeoNames admin1 code\n  country: Text|Country|Place - country containing the admin1 region\nResources: places\nChildren: Admin1, country_code, code, name, place_id, children(), fields(), functions(), help(), available()\nExamples:\n# Look up first-level administrative metadata\n   print admin1(\"Akershus\", country(\"NO\"));\n\n# Look up first-level administrative metadata\n   print places().find(\"Jar\", admin1(\"01\", norway));","metadata":{"name":"admin1","path":"admin1","kind":"function","aliases":[],"resources":["places"],"children":["type:Admin1","field:Admin1.country_code","field:Admin1.code","field:Admin1.name","field:Admin1.place_id","member:Admin1.children","member:Admin1.fields","member:Admin1.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:admin2","title":"admin2","text":"Function: admin2 - resolves a second-level administrative region\nSyntax:\n  admin2(admin2: Text|Number|Admin2, admin1: Admin1|Place) -> Admin2\nArguments:\n  admin2: Text|Number|Admin2 - admin2 name or GeoNames admin2 code\n  admin1: Admin1|Place - admin1 region containing the admin2 region\nResources: places\nChildren: Admin2, country_code, admin1_code, code, name, place_id, children(), fields(), functions(), help(), available()\nExamples:\n# Look up second-level administrative metadata\n   print admin2(\"3201\", admin1(\"01\", norway));\n\n# Look up second-level administrative metadata\n   print places().find(\"Jar\", admin2(\"3201\", admin1(\"01\", norway)));","metadata":{"name":"admin2","path":"admin2","kind":"function","aliases":[],"resources":["places"],"children":["type:Admin2","field:Admin2.country_code","field:Admin2.admin1_code","field:Admin2.code","field:Admin2.name","field:Admin2.place_id","member:Admin2.children","member:Admin2.fields","member:Admin2.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:timezones","title":"timezones","text":"Function: timezones - opens the IANA timezone boundary resource\nSyntax:\n  timezones() -> Timezones\nAliases: timezonedb, tzdb\nResources: timezones\nChildren: Timezones, count, release, find(), at(), ids(), validate_places(), children(), fields(), functions(), help(), available()\nExamples:\n# Open the timezone database for lookup\n   print timezones().find(\"Europe/Oslo\");\n\n# Open the timezone database for lookup\n   print timezones().at(location(60, 10));","metadata":{"name":"timezones","path":"timezones","kind":"function","aliases":["timezonedb","tzdb"],"resources":["timezones"],"children":["type:Timezones","field:Timezones.count","field:Timezones.release","member:Timezones.find","member:Timezones.at","member:Timezones.ids","member:Timezones.validate_places","member:Timezones.children","member:Timezones.fields","member:Timezones.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:timezone","title":"timezone","text":"Function: timezone - creates an IANA timezone from an id or Earth location\nSyntax:\n  timezone(timezone: Text|Location|Timezone) -> Timezone\nAliases: tz\nArguments:\n  timezone: Text|Location|Timezone - IANA timezone id, Location, or existing Timezone\nResources: timezones\nChildren: Timezone, id, aliases, countries, comment, latitude, longitude, release, local(), offset(), location(), children(), fields(), functions(), help(), available()\nExamples:\n# Resolve an IANA timezone id\n   let zone = timezone(\"Europe/Oslo\");\n   print zone.id, zone.location();\n\n# Find the timezone for a latitude-longitude location\n   let loc = location(60, 10);\n   print timezone(loc).id;\n\n# Format a UTC time in a resolved timezone\n   let zone = timezone(\"Europe/Oslo\");\n   print time(2026,6,7,12,0,0).local(zone).iso;","metadata":{"name":"timezone","path":"timezone","kind":"function","aliases":["tz"],"resources":["timezones"],"children":["type:Timezone","field:Timezone.id","field:Timezone.aliases","field:Timezone.countries","field:Timezone.comment","field:Timezone.latitude","field:Timezone.longitude","field:Timezone.release","member:Timezone.local","member:Timezone.offset","member:Timezone.location","member:Timezone.children","member:Timezone.fields","member:Timezone.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:stars","title":"stars","text":"Function: stars - opens the Yale Bright Star Catalogue resource\nSyntax:\n  stars() -> Stars\nAliases: stardb\nResources: iers, ephemeris, stars, constellations\nChildren: Stars, count, find(), glob(), nearest(), all(), visible(), children(), fields(), functions(), help(), available()\nExamples:\n# Look up Sirius in the star catalog and print its constellation\n   let sirius = stars().find(\"Sirius\");\n   print sirius.name, sirius.constellation();\n\n# Round-trip through the primary star id\n   let sirius = stars().find(\"sirius\");\n   print sirius.id, stars().find(sirius.id).name;\n\n# Explore uncertain spellings with a glob pattern\n   let matches = stars().glob(\"sir*\");\n   print matches.length(), matches[0].name;","metadata":{"name":"stars","path":"stars","kind":"function","aliases":["stardb"],"resources":["iers","ephemeris","stars","constellations"],"children":["type:Stars","field:Stars.count","member:Stars.find","member:Stars.glob","member:Stars.nearest","member:Stars.all","member:Stars.visible","member:Stars.children","member:Stars.fields","member:Stars.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:constellations","title":"constellations","text":"Function: constellations - opens the IAU constellation boundary resource\nSyntax:\n  constellations() -> ConstellationDb\nResources: constellations\nChildren: ConstellationDb, count, find(), inside(), children(), fields(), functions(), help(), available()\nExample:\n# Find the constellation containing a sky direction\n   let d = direction(ra: 88.8, dec: 7.4);\n   print constellations().inside(d);","metadata":{"name":"constellations","path":"constellations","kind":"function","aliases":[],"resources":["constellations"],"children":["type:ConstellationDb","field:ConstellationDb.count","member:ConstellationDb.find","member:ConstellationDb.inside","member:ConstellationDb.children","member:ConstellationDb.fields","member:ConstellationDb.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:graphics","title":"graphics","text":"Function: graphics - creates a deferred SVG graphics object\nSyntax:\n  graphics(time: Time, location: Location|Observer, center: Direction, theme: Text, center_az: Number, center_alt: Number, fov: Number) -> Graphics\nAliases: plot\nArguments:\n  time: Time [optional] - default sky-view time\n  location: Location|Observer [optional] - default sky-view observer\n  center: Direction [optional] - default sky-view center direction\n  theme: Text [optional] - graphics theme, either dark or light\n  center_az: Number [optional] - default sky-view center azimuth in degrees\n  center_alt: Number [optional] - default sky-view center altitude in degrees\n  fov: Number [optional] - default sky-view field of view in degrees\nChildren: Graphics, line(), points(), polygon(), text(), function(), title(), xlabel(), ylabel(), xrange(), yrange(), xticks(), yticks(), dark(), light(), sky_view(), sky_grid(), sky_stars(), sky_constellations(), sky_planets(), sky_horizon(), svg(), write_svg(), children(), fields(), functions(), help(), available()\nExample:\n# Plot a local Sun-altitude curve and report the output file\n   let loc = location(60,10);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   let g = graphics().function((h): altitude(sun, t0.add_hours(h), obs), range(0,24,1)).title(\"Sun altitude\");\n   g.write_svg(\"sun-altitude.svg\");\n   print \"wrote sun-altitude.svg\";","metadata":{"name":"graphics","path":"graphics","kind":"function","aliases":["plot"],"resources":[],"children":["type:Graphics","member:Graphics.line","member:Graphics.points","member:Graphics.polygon","member:Graphics.text","member:Graphics.function","member:Graphics.title","member:Graphics.xlabel","member:Graphics.ylabel","member:Graphics.xrange","member:Graphics.yrange","member:Graphics.xticks","member:Graphics.yticks","member:Graphics.dark","member:Graphics.light","member:Graphics.sky_view","member:Graphics.sky_grid","member:Graphics.sky_stars","member:Graphics.sky_constellations","member:Graphics.sky_planets","member:Graphics.sky_horizon","member:Graphics.svg","member:Graphics.write_svg","member:Graphics.children","member:Graphics.fields","member:Graphics.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:target","title":"target","text":"Function: target - creates a value/direction target for search(...), or passes through minimum/maximum\nSyntax:\n  target(value: Number|SearchGoal, direction: SearchDirection) -> Target|SearchGoal\nArguments:\n  value: Number|SearchGoal - numeric crossing value, minimum, or maximum\n  direction: SearchDirection [optional] - any, increasing, or decreasing\nChildren: Target, value, direction, children(), fields(), functions(), help(), available()\nExample:\n# Build a target crossing goal for morning Sun altitude\n   let loc = location(58.9666667, 5.7333333);\n   let day = time(2026,6,21,0,0,0);\n   let f = (h): altitude(sun, day.add_hours(h), loc);\n   print search(f, range(0, 24, 0.25), target(10, increasing)).next();","metadata":{"name":"target","path":"target","kind":"function","aliases":[],"resources":[],"children":["type:Target","field:Target.value","field:Target.direction","member:Target.children","member:Target.fields","member:Target.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:range","title":"range","text":"Function: range - creates a numeric or time range for search(...)\nSyntax:\n  range(start: Number|Time, stop: Number, step: Number) -> Range\n  range(start: Number|Time, stop: Number|Time, step: Number) -> Range\nArguments:\n  start: Number|Time - start of the range\n  stop: Number - infinity or -infinity\n  step: Number [optional] - signed sampling step; time ranges use UTC days\nChildren: Range, kind, bounded, start, stop, step, children(), fields(), functions(), help(), available()\nExample:\n# Build a one-day hour range for a local altitude scan\n   let hours = range(0, 24, 2);\n   let t0 = time(2026,6,21,0,0,0);\n   for h=hours.start,hours.stop,hours.step {\n   print t0.add_hours(h).utc();\n   }","metadata":{"name":"range","path":"range","kind":"function","aliases":[],"resources":[],"children":["type:Range","field:Range.kind","field:Range.bounded","field:Range.start","field:Range.stop","field:Range.step","member:Range.children","member:Range.fields","member:Range.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:search","title":"search","text":"Function: search - searches for function crossings or local minimum/maximum points\nSyntax:\n  search(function: Callable, range: Range, goal: Target|SearchGoal) -> Search\nArguments:\n  function: Callable - function of one Number or Time argument returning a Number\n  range: Range - range(start, stop), range(start, stop, step), or range(start, infinity, step)\n  goal: Target|SearchGoal [optional] - target value and direction, minimum, or maximum; defaults to target(0, any)\nResources: iers\nChildren: Search, range, target, direction, next(), all(), children(), fields(), functions(), help(), available()\nExample:\n# Search for the morning hour when the Sun reaches ten degrees\n   let loc = location(58.9666667, 5.7333333);\n   let day = time(2026,6,21,0,0,0);\n   let f = (h): altitude(sun, day.add_hours(h), loc);\n   print search(f, range(0, 24, 0.25), target(10, increasing)).next();","metadata":{"name":"search","path":"search","kind":"function","aliases":[],"resources":["iers"],"children":["type:Search","field:Search.range","field:Search.target","field:Search.direction","member:Search.next","member:Search.all","member:Search.children","member:Search.fields","member:Search.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:forecast","title":"forecast","text":"Function: forecast - opens a published GFS forecast cycle from the retained stack\nSyntax:\n  forecast(index: Number, format: Text) -> Forecast\nArguments:\n  index: Number [optional] - forecast cycle stack index; 0 is the latest cycle\n  format: Text [optional] - optional storage format: \"netcdf\" (default when available), \"grib\", or \"auto\"\nResources: gfs_forecast\nChildren: Forecast, source, format, path, reason, index, hour, run, run_name, reference_time, valid_time, message_count, available(), count(), cycle(), cycle_step(), max_time(), spans(), times(), sample(), toc(), messages(), children(), fields(), functions(), help(), available()\nExample:\n# Open the latest forecast product and print availability metadata\n   let fc = forecast();\n   print fc.available(), fc.count();","metadata":{"name":"forecast","path":"forecast","kind":"function","aliases":[],"resources":["gfs_forecast"],"children":["type:Forecast","field:Forecast.source","field:Forecast.format","field:Forecast.path","field:Forecast.reason","field:Forecast.index","field:Forecast.hour","field:Forecast.run","field:Forecast.run_name","field:Forecast.reference_time","field:Forecast.valid_time","field:Forecast.message_count","member:Forecast.available","member:Forecast.count","member:Forecast.cycle","member:Forecast.cycle_step","member:Forecast.max_time","member:Forecast.spans","member:Forecast.times","member:Forecast.sample","member:Forecast.toc","member:Forecast.messages","member:Forecast.children","member:Forecast.fields","member:Forecast.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:netcdf","title":"netcdf","text":"Function: netcdf - opens a NetCDF dataset and returns its dimensions and variables\nSyntax:\n  netcdf(source: FieldSource) -> NetCDF\nArguments:\n  source: FieldSource - approved field source constant such as earth_topography or moon_topography\nChildren: NetCDF, source, path, dimensions, variables, variable(), children(), fields(), functions(), help(), available()\nExample:\n# Open a NetCDF-backed topography source and inspect its path\n   let nc = netcdf(earth_topography);\n   print nc.path, nc.variables.length();","metadata":{"name":"netcdf","path":"netcdf","kind":"function","aliases":[],"resources":[],"children":["type:NetCDF","field:NetCDF.source","field:NetCDF.path","field:NetCDF.dimensions","field:NetCDF.variables","member:NetCDF.variable","member:NetCDF.children","member:NetCDF.fields","member:NetCDF.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:field","title":"field","text":"Function: field - creates a global scalar field from a NetCDF variable\nSyntax:\n  field(source: FieldSource|NetCDF, variable: Text, body: Text|Body, lat: Text, lon: Text, indices: Object) -> Field\nArguments:\n  source: FieldSource|NetCDF - approved field source constant or opened NetCDF dataset\n  variable: Text [optional] - variable containing the scalar field; defaults from the source constant\n  body: Text|Body [optional] - body this field is attached to\n  lat: Text [optional] - latitude coordinate variable name\n  lon: Text [optional] - longitude coordinate variable name\n  indices: Object [optional] - fixed indices for non-lat/lon dimensions\nChildren: Field, source, path, variable, body, lat, lon, dimensions, indices, sample(), children(), fields(), functions(), help(), available()\nExample:\n# Sample a topography field at a location\n   let loc = location(60.0, 10.0);\n   let terrain = topography(earth);\n   print sample(terrain, loc);","metadata":{"name":"field","path":"field","kind":"function","aliases":[],"resources":[],"children":["type:Field","field:Field.source","field:Field.path","field:Field.variable","field:Field.body","field:Field.lat","field:Field.lon","field:Field.dimensions","field:Field.indices","member:Field.sample","member:Field.children","member:Field.fields","member:Field.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:topography","title":"topography","text":"Function: topography - creates an approved global topography field for a body\nSyntax:\n  topography(body: Body|Text|FieldSource) -> Field\nArguments:\n  body: Body|Text|FieldSource - body with an approved topography dataset, currently earth or moon\nChildren: help(), available()\nExample:\n# Sample Earth terrain height at a location\n   let loc = location(60.0, 10.0);\n   let topo = topography(earth);\n   print sample(topo, loc);","metadata":{"name":"topography","path":"topography","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:magnetic","title":"magnetic","text":"Function: magnetic - creates a magnetic field model handle\nSyntax:\n  magnetic(body: Body, time: Time, observer: Observer) -> Magnetic\nArguments:\n  body: Body [optional] - body to model; Earth uses WMMHR, other bodies use crude dipoles\n  time: Time [optional] - default sample time\n  observer: Observer [optional] - default observer location\nChildren: Magnetic, body, time, observer, field(), children(), fields(), functions(), help(), available()\nExamples:\n# Compute the magnetic field at an observer\n   print magnetic(earth).field(time(2025,1,1,0,0,0), location(latitude: 80, longitude: 0).observer());\n\n# Compute the magnetic field at an observer\n   print magnetic(jupiter, time(2026,1,1,0,0,0), location(jupiter, latitude: 0, longitude: 0).observer()).field();","metadata":{"name":"magnetic","path":"magnetic","kind":"function","aliases":[],"resources":[],"children":["type:Magnetic","field:Magnetic.body","field:Magnetic.time","field:Magnetic.observer","member:Magnetic.field","member:Magnetic.children","member:Magnetic.fields","member:Magnetic.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:pages","title":"pages","text":"Function: pages - creates a data-page builder with optional default body, time, and observer\nSyntax:\n  pages(body: Body, time: Time, observer: Location|Observer) -> Pages\nArguments:\n  body: Body [optional] - default body for body-oriented pages\n  time: Time [optional] - default time for page methods\n  observer: Location|Observer [optional] - default observer or surface location for local pages\nChildren: Pages, body, time, observer, sky(), chart(), summary(), sun(), moon(), almanac(), short(), small(), state(), states(), table(), children(), fields(), functions(), help(), available()\nExamples:\n# Build a local Moon summary page\n   let page = pages(location(60.0, 10.0), moon).summary(time(2026,1,1,0,0,0));\n   print page.phase, page.illumination;\n\n# Build a chart page for a fixed time\n   let chart = pages(time(2026,1,1,0,0,0)).chart();\n   print chart.bodies.sun.geocentric.longitude, chart.bodies.moon.chart.sign;","metadata":{"name":"pages","path":"pages","kind":"function","aliases":[],"resources":[],"children":["type:Pages","field:Pages.body","field:Pages.time","field:Pages.observer","member:Pages.sky","member:Pages.chart","member:Pages.summary","member:Pages.sun","member:Pages.moon","member:Pages.almanac","member:Pages.short","member:Pages.small","member:Pages.state","member:Pages.states","member:Pages.table","member:Pages.children","member:Pages.fields","member:Pages.functions","value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:help","title":"help","text":"Function: help - returns the Astrologos calculator manual or one function's syntax\nSyntax:\n  help() -> Help\n  help(name: Text|Any) -> Help|HelpResult|Nil\n  help(value: Any, name: Text) -> Help|HelpResult|Nil\nArguments:\n  name: Text|Any [optional] - registered help topic name or value to inspect\n  value: Any [optional] - value whose documentation should be searched\nChildren: help(), available(), doc(), compact(), search(), examples()\nExamples:\n# Look up documentation from inside Astrologos\n   print help();\n\n# Look up documentation from inside Astrologos\n   print help.search(\"azimuth\");","metadata":{"name":"help","path":"help","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available","value_member:Help.doc","value_member:Help.compact","value_member:Help.search","value_member:Help.examples"]}},{"id":"function:about","title":"about","text":"Function: about - returns the project disclaimer, licence, and about text\nSyntax:\n  about() -> Text\nAliases: disclaimer, licence, license\nChildren: help(), available()\nExamples:\n# Review runtime version and caveat information\n   print about;\n\n# Review runtime version and caveat information\n   print about();","metadata":{"name":"about","path":"about","kind":"function","aliases":["disclaimer","licence","license"],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:resources","title":"resources","text":"Function: resources - lists known runtime resources and whether they are loaded\nSyntax:\n  resources() -> List\nChildren: help(), available()\nExample:\n# Lists known runtime resources and whether they are loaded\n   print resources();","metadata":{"name":"resources","path":"resources","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:resource_sources","title":"resource_sources","text":"Function: resource_sources - lists upstream data sources for known runtime resources\nSyntax:\n  resource_sources() -> List\nChildren: help(), available()\nExample:\n# List upstream data sources used by the runtime\n   print resource_sources();","metadata":{"name":"resource_sources","path":"resource_sources","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:exit","title":"exit","text":"Function: exit - stops execution after the current statement, optionally returning a message\nSyntax:\n  exit() -> Nil\n  exit(messages: Any...) -> Text\nArguments:\n  messages: Any... [optional] - optional values printed on the warning channel before exit\nChildren: help(), available()\nExample:\n# Stops execution after the current statement, optionally returning a message\n   print exit();","metadata":{"name":"exit","path":"exit","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:run","title":"run","text":"Function: run - deprecated alias for exit()\nSyntax:\n  run() -> Nil\nChildren: help(), available()\nExample:\n# Deprecated alias for exit()\n   print run();","metadata":{"name":"run","path":"run","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:functions","title":"functions","text":"Function: functions - lists function metadata, optionally filtered by function name\nSyntax:\n  functions() -> List\n  functions(name: Text) -> List\nArguments:\n  name: Text [optional] - exact function or method name to list\nChildren: help(), available()\nExample:\n# Find callable helpers related to lunar phase\n   let hits = functions(\"moon_phase\");\n   print hits.length(), hits[0].name, hits[0].path;","metadata":{"name":"functions","path":"functions","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:fields","title":"fields","text":"Function: fields - lists type field metadata, optionally filtered by field name\nSyntax:\n  fields() -> List\n  fields(name: Text) -> List\nArguments:\n  name: Text [optional] - exact field name to list\nChildren: help(), available()\nExample:\n# Lists type field metadata, optionally filtered by field name\n   print fields();","metadata":{"name":"fields","path":"fields","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:types","title":"types","text":"Function: types - lists registered astro/system types, constructors, fields, and members\nSyntax:\n  types() -> List\nChildren: help(), available()\nExample:\n# Inspect a small slice of registered runtime types\n   let all = types();\n   print all.length(), all[0].name;","metadata":{"name":"types","path":"types","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:elapsed","title":"elapsed","text":"Function: elapsed - returns elapsed execution time in seconds\nSyntax:\n  elapsed() -> Number\nChildren: help(), available()\nExample:\n# Returns elapsed execution time in seconds\n   print elapsed();","metadata":{"name":"elapsed","path":"elapsed","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sleep","title":"sleep","text":"Function: sleep - pauses execution for a number of milliseconds\nSyntax:\n  sleep(milliseconds: Number) -> Nil\nArguments:\n  milliseconds: Number - Duration to pause execution, in milliseconds.\nChildren: help(), available()\nExample:\n# Pauses execution for a number of milliseconds\n   print sleep(42.0);","metadata":{"name":"sleep","path":"sleep","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:array","title":"array","text":"Function: array - creates an array from positional values\nSyntax:\n  array() -> Array\nChildren: help(), available()\nExample:\n# Creates an array from positional values\n   print array();","metadata":{"name":"array","path":"array","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:hash","title":"hash","text":"Function: hash - creates an ordered hash/object from named values\nSyntax:\n  hash() -> Object\nChildren: help(), available()\nExample:\n# Creates an ordered hash/object from named values\n   print hash();","metadata":{"name":"hash","path":"hash","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:args","title":"args","text":"Function: args - captures positional and named values as an argument-list value\nSyntax:\n  args() -> Arguments\nChildren: help(), available()\nExample:\n# Captures positional and named values as an argument-list value\n   print args();","metadata":{"name":"args","path":"args","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:keys","title":"keys","text":"Function: keys - returns ordered keys for an array, object, or argument-list value\nSyntax:\n  keys(value: Any) -> List\nArguments:\n  value: Any - array, object, or argument-list value to inspect\nChildren: help(), available()\nExample:\n# Audit the columns in a Moon visibility report row\n   let row = {body: moon.name, phase: moon_phase(time(2026,1,1,0,0,0)), illumination: moon_illumination(time(2026,1,1,0,0,0))};\n   print keys(row);","metadata":{"name":"keys","path":"keys","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:values","title":"values","text":"Function: values - returns ordered values from an array, object, or argument-list value\nSyntax:\n  values(value: Any) -> List\nArguments:\n  value: Any - array, object, or argument-list value to inspect\nChildren: help(), available()\nExample:\n# Export the values from a Moon visibility report row\n   let row = {body: moon.name, phase: moon_phase(time(2026,1,1,0,0,0)), illumination: moon_illumination(time(2026,1,1,0,0,0))};\n   print values(row);","metadata":{"name":"values","path":"values","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:items","title":"items","text":"Function: items - returns ordered key/value objects from an array, object, or argument-list value\nSyntax:\n  items(value: Any) -> List\nArguments:\n  value: Any - array, object, or argument-list value to inspect\nChildren: help(), available()\nExample:\n# Convert a Moon visibility row to key-value audit items\n   let row = {body: moon.name, phase: moon_phase(time(2026,1,1,0,0,0)), illumination: moon_illumination(time(2026,1,1,0,0,0))};\n   print items(row);","metadata":{"name":"items","path":"items","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:pretty","title":"pretty","text":"Function: pretty - formats a value as indented JSON text\nSyntax:\n  pretty(value: Any) -> Text\nArguments:\n  value: Any - array, object, or argument-list value to inspect\nChildren: help(), available()\nExample:\n# Pretty-print a structured value\n   print pretty({name:\"sun\", positions:[1, 2, 3]});","metadata":{"name":"pretty","path":"pretty","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:format","title":"format","text":"Function: format - formats values as text with small printf-style placeholders\nSyntax:\n  format(pattern: Text, value: Any) -> Text\nArguments:\n  pattern: Text - format pattern containing %f, %.Nf, %s, {}, or %% placeholders\n  value: Any - value consumed by the next placeholder\nChildren: help(), available()\nExamples:\n# Format chart numbers to fixed decimal places\n   let t = time(2026,1,1,0,0,0);\n   let moon_chart = pages(t).chart().bodies.moon;\n   print moon_chart.chart.sign, format(\"%.6f\", moon_chart.chart.degree_in_sign), format(\"%.6f\", moon_chart.geocentric.longitude);\n\n# Combine text, numeric precision, literal percent, and value rendering\n   print format(\"%s %.2f %% {}\", \"moon\", 12.345, {sign:\"virgo\"});","metadata":{"name":"format","path":"format","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:typeof","title":"typeof","text":"Function: typeof - returns the type or function name of a value\nSyntax:\n  typeof(value: Any) -> Text\nArguments:\n  value: Any - array, object, or argument-list value to inspect\nChildren: help(), available()\nExample:\n# Validate the shape of a generated result\n   print typeof(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"typeof","path":"typeof","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:altitude","title":"altitude","text":"Function: altitude - returns corrected topographic altitude/elevation in degrees\nSyntax:\n  altitude(body: Body, time: Time, observer: Location|Observer, correction: Correction) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\n  observer: Location|Observer - observer location or elevated/body-fixed observer\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected topographic altitude/elevation in degrees\n   print altitude(sun, time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"altitude","path":"altitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:azimuth","title":"azimuth","text":"Function: azimuth - returns corrected topographic azimuth in degrees\nSyntax:\n  azimuth(body: Body, time: Time, observer: Location|Observer, correction: Correction) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\n  observer: Location|Observer - observer location or elevated/body-fixed observer\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected topographic azimuth in degrees\n   print azimuth(sun, time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"azimuth","path":"azimuth","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:distance","title":"distance","text":"Function: distance - returns corrected geocentric distance in kilometers\nSyntax:\n  distance(body: Body, time: Time, correction: Correction) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected geocentric distance in kilometers\n   print distance(sun, time());","metadata":{"name":"distance","path":"distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:right_ascension","title":"right_ascension","text":"Function: right_ascension - returns corrected geocentric true-of-date right ascension in degrees\nSyntax:\n  right_ascension(body: Body, time: Time, correction: Correction) -> Number\nAliases: ra\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected geocentric true-of-date right ascension in degrees\n   print right_ascension(sun, time());","metadata":{"name":"right_ascension","path":"right_ascension","kind":"function","aliases":["ra"],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:declination","title":"declination","text":"Function: declination - returns corrected geocentric true-of-date declination in degrees\nSyntax:\n  declination(body: Body, time: Time, correction: Correction) -> Number\nAliases: dec\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected geocentric true-of-date declination in degrees\n   print declination(sun, time());","metadata":{"name":"declination","path":"declination","kind":"function","aliases":["dec"],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:ecliptic_longitude","title":"ecliptic_longitude","text":"Function: ecliptic_longitude - returns corrected apparent geocentric ecliptic longitude in degrees\nSyntax:\n  ecliptic_longitude(time: Time, correction: Correction) -> Number\n  ecliptic_longitude(body: Body, time: Time, correction: Correction) -> Number\nArguments:\n  time: Time - observation time; returns the Sun's apparent geocentric ecliptic longitude\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\n  body: Body [optional] - solar-system body\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected apparent geocentric ecliptic longitude in degrees\n   print ecliptic_longitude(time());","metadata":{"name":"ecliptic_longitude","path":"ecliptic_longitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:heliocentric_ecliptic_longitude","title":"heliocentric_ecliptic_longitude","text":"Function: heliocentric_ecliptic_longitude - returns corrected heliocentric ecliptic longitude in degrees\nSyntax:\n  heliocentric_ecliptic_longitude(body: Body, time: Time, correction: Correction) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\n  correction: Correction [optional] - optional correction model; defaults to all_corrections\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns corrected heliocentric ecliptic longitude in degrees\n   print heliocentric_ecliptic_longitude(sun, time());","metadata":{"name":"heliocentric_ecliptic_longitude","path":"heliocentric_ecliptic_longitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:elongation","title":"elongation","text":"Function: elongation - returns signed geocentric elongation from the Sun in degrees\nSyntax:\n  elongation(body: Body, time: Time) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed geocentric elongation from the Sun in degrees\n   print elongation(sun, time());","metadata":{"name":"elongation","path":"elongation","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:moon_phase","title":"moon_phase","text":"Function: moon_phase - returns Moon phase angle percentage in the range 0..100\nSyntax:\n  moon_phase(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns Moon phase angle percentage in the range 0..100\n   print moon_phase(time());","metadata":{"name":"moon_phase","path":"moon_phase","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:moon_illumination","title":"moon_illumination","text":"Function: moon_illumination - returns illuminated percentage of the Moon as seen from Earth\nSyntax:\n  moon_illumination(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns illuminated percentage of the Moon as seen from Earth\n   print moon_illumination(time());","metadata":{"name":"moon_illumination","path":"moon_illumination","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:magnitude","title":"magnitude","text":"Function: magnitude - returns approximate apparent visual magnitude\nSyntax:\n  magnitude(body: Body, time: Time) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns approximate apparent visual magnitude\n   print magnitude(sun, time());","metadata":{"name":"magnitude","path":"magnitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:apparent_solar_time","title":"apparent_solar_time","text":"Function: apparent_solar_time - returns apparent solar time in local hours\nSyntax:\n  apparent_solar_time(time: Time, location: Location) -> Number\nArguments:\n  time: Time - observation time\n  location: Location - observer location\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns apparent solar time in local hours\n   print apparent_solar_time(time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"apparent_solar_time","path":"apparent_solar_time","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:lunar_time","title":"lunar_time","text":"Function: lunar_time - returns local lunar hour angle as hours\nSyntax:\n  lunar_time(time: Time, location: Location) -> Number\nArguments:\n  time: Time - observation time\n  location: Location - observer location\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns local lunar hour angle as hours\n   print lunar_time(time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"lunar_time","path":"lunar_time","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:rotational_axis","title":"rotational_axis","text":"Function: rotational_axis - returns a body's rotational north-pole RA, declination, and ICRF unit vector\nSyntax:\n  rotational_axis(body: Body, time: Time) -> Object\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\nChildren: help(), available()\nExample:\n# Returns a body's rotational north-pole RA, declination, and ICRF unit vector\n   print rotational_axis(sun, time());","metadata":{"name":"rotational_axis","path":"rotational_axis","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:rotational_axis_ra","title":"rotational_axis_ra","text":"Function: rotational_axis_ra - returns a body's rotational north-pole right ascension in degrees\nSyntax:\n  rotational_axis_ra(body: Body, time: Time) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\nChildren: help(), available()\nExample:\n# Returns a body's rotational north-pole right ascension in degrees\n   print rotational_axis_ra(sun, time());","metadata":{"name":"rotational_axis_ra","path":"rotational_axis_ra","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:rotational_axis_dec","title":"rotational_axis_dec","text":"Function: rotational_axis_dec - returns a body's rotational north-pole declination in degrees\nSyntax:\n  rotational_axis_dec(body: Body, time: Time) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\nChildren: help(), available()\nExample:\n# Returns a body's rotational north-pole declination in degrees\n   print rotational_axis_dec(sun, time());","metadata":{"name":"rotational_axis_dec","path":"rotational_axis_dec","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:dms","title":"dms","text":"Function: dms - converts decimal degrees to degree-minute-second components\nSyntax:\n  dms(value: Number) -> Object\n  dms(value: Number, axis: Text) -> Object\nArguments:\n  value: Number - signed decimal degrees\n  axis: Text [optional] - latitude or longitude for hemisphere labels\nChildren: help(), available()\nExample:\n# Converts decimal degrees to degree-minute-second components\n   print dms(42.0);","metadata":{"name":"dms","path":"dms","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:dd","title":"dd","text":"Function: dd - converts degree-minute-second components to signed decimal degrees\nSyntax:\n  dd(degrees: Number, minutes: Number, seconds: Number, hemisphere: Text) -> Number\nArguments:\n  degrees: Number - degrees component\n  minutes: Number [optional] - minutes component\n  seconds: Number [optional] - seconds component\n  hemisphere: Text [optional] - N, S, E, or W\nChildren: help(), available()\nExample:\n# Converts degree-minute-second components to signed decimal degrees\n   print dd(42.0);","metadata":{"name":"dd","path":"dd","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:solar_eclipse_magnitude","title":"solar_eclipse_magnitude","text":"Function: solar_eclipse_magnitude - returns local solar eclipse magnitude at a time and location\nSyntax:\n  solar_eclipse_magnitude(time: Time, location: Location) -> Number\nArguments:\n  time: Time - observation time\n  location: Location - observer location\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns local solar eclipse magnitude at a time and location\n   print solar_eclipse_magnitude(time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"solar_eclipse_magnitude","path":"solar_eclipse_magnitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:solar_eclipse_obscuration","title":"solar_eclipse_obscuration","text":"Function: solar_eclipse_obscuration - returns percent of the solar disc occulted locally\nSyntax:\n  solar_eclipse_obscuration(time: Time, location: Location) -> Number\nArguments:\n  time: Time - observation time\n  location: Location - observer location\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns percent of the solar disc occulted locally\n   print solar_eclipse_obscuration(time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"solar_eclipse_obscuration","path":"solar_eclipse_obscuration","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:solar_eclipse_clearance","title":"solar_eclipse_clearance","text":"Function: solar_eclipse_clearance - returns signed local Sun-Moon limb clearance in degrees\nSyntax:\n  solar_eclipse_clearance(time: Time, location: Location) -> Number\nArguments:\n  time: Time - observation time\n  location: Location - observer location\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed local Sun-Moon limb clearance in degrees\n   print solar_eclipse_clearance(time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"solar_eclipse_clearance","path":"solar_eclipse_clearance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:lunar_eclipse_magnitude","title":"lunar_eclipse_magnitude","text":"Function: lunar_eclipse_magnitude - returns signed umbral lunar eclipse magnitude\nSyntax:\n  lunar_eclipse_magnitude(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed umbral lunar eclipse magnitude\n   print lunar_eclipse_magnitude(time());","metadata":{"name":"lunar_eclipse_magnitude","path":"lunar_eclipse_magnitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:lunar_penumbra_magnitude","title":"lunar_penumbra_magnitude","text":"Function: lunar_penumbra_magnitude - returns signed penumbral lunar eclipse magnitude\nSyntax:\n  lunar_penumbra_magnitude(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed penumbral lunar eclipse magnitude\n   print lunar_penumbra_magnitude(time());","metadata":{"name":"lunar_penumbra_magnitude","path":"lunar_penumbra_magnitude","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:lunar_eclipse_clearance","title":"lunar_eclipse_clearance","text":"Function: lunar_eclipse_clearance - returns signed Moon-surface clearance from Earth's penumbra in kilometers\nSyntax:\n  lunar_eclipse_clearance(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed Moon-surface clearance from Earth's penumbra in kilometers\n   print lunar_eclipse_clearance(time());","metadata":{"name":"lunar_eclipse_clearance","path":"lunar_eclipse_clearance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:shadow_distance","title":"shadow_distance","text":"Function: shadow_distance - returns signed surface clearance for the active Sun-Earth-Moon shadow geometry\nSyntax:\n  shadow_distance(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed surface clearance for the active Sun-Earth-Moon shadow geometry\n   print shadow_distance(time());","metadata":{"name":"shadow_distance","path":"shadow_distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:moon_shadow_earth_distance","title":"moon_shadow_earth_distance","text":"Function: moon_shadow_earth_distance - returns signed Earth-surface clearance from the Moon shadow cone in kilometers\nSyntax:\n  moon_shadow_earth_distance(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed Earth-surface clearance from the Moon shadow cone in kilometers\n   print moon_shadow_earth_distance(time());","metadata":{"name":"moon_shadow_earth_distance","path":"moon_shadow_earth_distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:moon_penumbra_distance","title":"moon_penumbra_distance","text":"Function: moon_penumbra_distance - returns signed Moon-surface clearance from Earth's penumbra in kilometers\nSyntax:\n  moon_penumbra_distance(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed Moon-surface clearance from Earth's penumbra in kilometers\n   print moon_penumbra_distance(time());","metadata":{"name":"moon_penumbra_distance","path":"moon_penumbra_distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:moon_umbra_distance","title":"moon_umbra_distance","text":"Function: moon_umbra_distance - returns signed Moon-surface clearance from Earth's umbra in kilometers\nSyntax:\n  moon_umbra_distance(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns signed Moon-surface clearance from Earth's umbra in kilometers\n   print moon_umbra_distance(time());","metadata":{"name":"moon_umbra_distance","path":"moon_umbra_distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:moon_umbra_occultation","title":"moon_umbra_occultation","text":"Function: moon_umbra_occultation - returns percent overlap of the Moon and Earth's umbra\nSyntax:\n  moon_umbra_occultation(time: Time) -> Number\nArguments:\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Returns percent overlap of the Moon and Earth's umbra\n   print moon_umbra_occultation(time());","metadata":{"name":"moon_umbra_occultation","path":"moon_umbra_occultation","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:location_shadow_distance","title":"location_shadow_distance","text":"Function: location_shadow_distance - returns signed local observer clearance from the Moon shadow cone in kilometers\nSyntax:\n  location_shadow_distance(time: Time, location: Location) -> Number\nArguments:\n  time: Time - observation time\n  location: Location - observer location\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Compute local eclipse shadow clearance for a location and time\n   let loc = location(latitude: 32.7767, longitude: -96.7970);\n   let t = time(2024,4,8,18,40,0);\n   print location_shadow_distance(t, loc);","metadata":{"name":"location_shadow_distance","path":"location_shadow_distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:planet_shadow_earth_distance","title":"planet_shadow_earth_distance","text":"Function: planet_shadow_earth_distance - returns signed Earth-surface clearance from a planet shadow cone in kilometers\nSyntax:\n  planet_shadow_earth_distance(body: Body, time: Time) -> Number\nArguments:\n  body: Body - solar-system body\n  time: Time - observation time\nResources: ephemeris\nChildren: help(), available()\nExample:\n# Measure Mercury shadow-cone clearance during a transit\n   let t = time(2019,11,11,15,0,0);\n   print planet_shadow_earth_distance(mercury, t);","metadata":{"name":"planet_shadow_earth_distance","path":"planet_shadow_earth_distance","kind":"function","aliases":[],"resources":["ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:events","title":"events","text":"Function: events - finds astronomical events from event type constants and time ranges\nSyntax:\n  events(event_type: EventType, bounded_range: Range) -> List\n  events(event_type: EventType, open_range: Range) -> Event|Nil\n  events(event_type: EventType, bounded_range: Range, observer_or_body: Location|Observer|Body) -> List\n  events(event_type: EventType, open_range: Range, observer_or_body: Location|Observer|Body) -> Event|Nil\n  events(event_type: EventType, bounded_range: Range, body: Body, observer: Location|Observer) -> List\n  events(event_type: EventType, open_range: Range, body: Body, observer: Location|Observer) -> Event|Nil\n  events(event_type: EventType, range: Range, observer: Location|Observer|Body, secondary: Location|Observer) -> List|Event|Nil\nArguments:\n  event_type: EventType - event constant such as sunrise, full_moon, conjunction, or northern_solstice\n  bounded_range: Range [optional] - time range with a finite stop, such as range(start, stop)\n  open_range: Range [optional] - open-ended time range, such as range(start, infinity, step)\n  observer_or_body: Location|Observer|Body [optional] - observer for local events, body for planetary events, or eclipsed body for eclipse\n  body: Body [optional] - eclipsed body, such as sun or moon\n  observer: Location|Observer [optional] - optional observer for local generic solar eclipse events\n  range: Range [optional] - bounded or open-ended time range\n  secondary: Location|Observer [optional] - optional observer for generic solar eclipse events\nResources: iers, ephemeris\nChildren: help(), available()\nExample:\n# Find sunrise events for a bounded day and explicit location\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let day = range(time(2024,4,17,0,0,0), time(2024,4,18,0,0,0));\n   print events(sunrise, day, loc).first().time.utc();","metadata":{"name":"events","path":"events","kind":"function","aliases":[],"resources":["iers","ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sky","title":"sky","text":"Function: sky - summarizes the local sky and upcoming local events\nSyntax:\n  sky(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time - time at which to describe the local sky\n  observer: Location|Observer - Earth location or observer\nResources: iers, ephemeris\nChildren: help(), available()\nExample:\n# Summarizes the local sky and upcoming local events\n   print sky(time(), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"sky","path":"sky","kind":"function","aliases":[],"resources":["iers","ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:almanac","title":"almanac","text":"Function: almanac - builds a range almanac from astronomical event searches\nSyntax:\n  almanac(range: Range|Time, stop: Time, observer: Location|Observer) -> Object\nArguments:\n  range: Range|Time - bounded time range, or start time when using start/stop arguments\n  stop: Time - stop time\n  observer: Location|Observer [optional] - optional Earth location or observer for local horizon events\nResources: iers, ephemeris\nChildren: help(), available()\nExample:\n# Build an almanac over a non-empty time range\n   let start = time(2024,1,1,0,0,0);\n   let stop = time(2025,1,1,0,0,0);\n   print almanac(start, stop).seasons.northern_solstice.time.utc;","metadata":{"name":"almanac","path":"almanac","kind":"function","aliases":[],"resources":["iers","ephemeris"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:integrate","title":"integrate","text":"Function: integrate - integrates a callable over named ranges or advances named derivatives\nSyntax:\n  integrate(function: Function, domain: Object) -> Number\n  integrate(initial: Object, derivatives: Object, domain: Object) -> Array\nArguments:\n  function: Function [optional] - numeric function to integrate\n  domain: Object - object of named ranges; omit step for adaptive integration\n  initial: Object [optional] - numeric initial state fields\n  derivatives: Object [optional] - callable derivatives keyed by state field\nChildren: help(), available()\nExample:\n# Integrate a simple scalar function over a bounded range\n   print integrate((x): x*x, {x: range(0, 1, 0.001)});","metadata":{"name":"integrate","path":"integrate","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sample","title":"sample","text":"Function: sample - samples a field at a latitude/longitude location\nSyntax:\n  sample(field: Field, location: Location) -> Number|Nil\nArguments:\n  field: Field - global scalar field\n  location: Location - location to sample\nChildren: help(), available()\nExample:\n# Samples a field at a latitude/longitude location\n   print sample(topography(earth), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"sample","path":"sample","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:abs","title":"abs","text":"Function: abs - returns the absolute value\nSyntax:\n  abs(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the absolute value\n   print abs(42.0);","metadata":{"name":"abs","path":"abs","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sign","title":"sign","text":"Function: sign - returns -1, 0, or 1 according to the sign\nSyntax:\n  sign(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns -1, 0, or 1 according to the sign\n   print sign(42.0);","metadata":{"name":"sign","path":"sign","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:floor","title":"floor","text":"Function: floor - rounds down to an integer value\nSyntax:\n  floor(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Rounds down to an integer value\n   print floor(42.0);","metadata":{"name":"floor","path":"floor","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:ceil","title":"ceil","text":"Function: ceil - rounds up to an integer value\nSyntax:\n  ceil(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Rounds up to an integer value\n   print ceil(42.0);","metadata":{"name":"ceil","path":"ceil","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:round","title":"round","text":"Function: round - rounds to the nearest integer value\nSyntax:\n  round(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Rounds to the nearest integer value\n   print round(42.0);","metadata":{"name":"round","path":"round","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:trunc","title":"trunc","text":"Function: trunc - truncates toward zero\nSyntax:\n  trunc(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Truncates toward zero\n   print trunc(42.0);","metadata":{"name":"trunc","path":"trunc","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:fract","title":"fract","text":"Function: fract - returns the fractional part\nSyntax:\n  fract(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the fractional part\n   print fract(42.0);","metadata":{"name":"fract","path":"fract","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sqrt","title":"sqrt","text":"Function: sqrt - returns the square root\nSyntax:\n  sqrt(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the square root\n   print sqrt(42.0);","metadata":{"name":"sqrt","path":"sqrt","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:cbrt","title":"cbrt","text":"Function: cbrt - returns the cube root\nSyntax:\n  cbrt(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the cube root\n   print cbrt(42.0);","metadata":{"name":"cbrt","path":"cbrt","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:exp","title":"exp","text":"Function: exp - returns e raised to x\nSyntax:\n  exp(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns e raised to x\n   print exp(42.0);","metadata":{"name":"exp","path":"exp","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:exp2","title":"exp2","text":"Function: exp2 - returns 2 raised to x\nSyntax:\n  exp2(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns 2 raised to x\n   print exp2(42.0);","metadata":{"name":"exp2","path":"exp2","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:ln","title":"ln","text":"Function: ln - returns the natural logarithm\nSyntax:\n  ln(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the natural logarithm\n   print ln(42.0);","metadata":{"name":"ln","path":"ln","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:log","title":"log","text":"Function: log - returns logarithm of x in the given base\nSyntax:\n  log(x: Number, y: Number) -> Number\nArguments:\n  x: Number - first numeric input\n  y: Number - second numeric input\nChildren: help(), available()\nExample:\n# Returns logarithm of x in the given base\n   print log(42.0, 42.0);","metadata":{"name":"log","path":"log","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:log2","title":"log2","text":"Function: log2 - returns the base-2 logarithm\nSyntax:\n  log2(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the base-2 logarithm\n   print log2(42.0);","metadata":{"name":"log2","path":"log2","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:log10","title":"log10","text":"Function: log10 - returns the base-10 logarithm\nSyntax:\n  log10(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns the base-10 logarithm\n   print log10(42.0);","metadata":{"name":"log10","path":"log10","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:pow","title":"pow","text":"Function: pow - returns x raised to y\nSyntax:\n  pow(x: Number, y: Number) -> Number\nArguments:\n  x: Number - first numeric input\n  y: Number - second numeric input\nChildren: help(), available()\nExample:\n# Returns x raised to y\n   print pow(42.0, 42.0);","metadata":{"name":"pow","path":"pow","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sin","title":"sin","text":"Function: sin - returns sine of x radians\nSyntax:\n  sin(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns sine of x radians\n   print sin(42.0);","metadata":{"name":"sin","path":"sin","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:cos","title":"cos","text":"Function: cos - returns cosine of x radians\nSyntax:\n  cos(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns cosine of x radians\n   print cos(42.0);","metadata":{"name":"cos","path":"cos","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:tan","title":"tan","text":"Function: tan - returns tangent of x radians\nSyntax:\n  tan(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns tangent of x radians\n   print tan(42.0);","metadata":{"name":"tan","path":"tan","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:asin","title":"asin","text":"Function: asin - returns arcsine in radians\nSyntax:\n  asin(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns arcsine in radians\n   print asin(42.0);","metadata":{"name":"asin","path":"asin","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:acos","title":"acos","text":"Function: acos - returns arccosine in radians\nSyntax:\n  acos(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns arccosine in radians\n   print acos(42.0);","metadata":{"name":"acos","path":"acos","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:atan","title":"atan","text":"Function: atan - returns arctangent in radians\nSyntax:\n  atan(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns arctangent in radians\n   print atan(42.0);","metadata":{"name":"atan","path":"atan","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:atan2","title":"atan2","text":"Function: atan2 - returns atan2(y, x) in radians\nSyntax:\n  atan2(x: Number, y: Number) -> Number\nArguments:\n  x: Number - first numeric input\n  y: Number - second numeric input\nChildren: help(), available()\nExample:\n# Returns atan2(y, x) in radians\n   print atan2(42.0, 42.0);","metadata":{"name":"atan2","path":"atan2","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:sinh","title":"sinh","text":"Function: sinh - returns hyperbolic sine\nSyntax:\n  sinh(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns hyperbolic sine\n   print sinh(42.0);","metadata":{"name":"sinh","path":"sinh","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:cosh","title":"cosh","text":"Function: cosh - returns hyperbolic cosine\nSyntax:\n  cosh(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns hyperbolic cosine\n   print cosh(42.0);","metadata":{"name":"cosh","path":"cosh","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:tanh","title":"tanh","text":"Function: tanh - returns hyperbolic tangent\nSyntax:\n  tanh(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns hyperbolic tangent\n   print tanh(42.0);","metadata":{"name":"tanh","path":"tanh","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:asinh","title":"asinh","text":"Function: asinh - returns inverse hyperbolic sine\nSyntax:\n  asinh(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns inverse hyperbolic sine\n   print asinh(42.0);","metadata":{"name":"asinh","path":"asinh","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:acosh","title":"acosh","text":"Function: acosh - returns inverse hyperbolic cosine\nSyntax:\n  acosh(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns inverse hyperbolic cosine\n   print acosh(42.0);","metadata":{"name":"acosh","path":"acosh","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:atanh","title":"atanh","text":"Function: atanh - returns inverse hyperbolic tangent\nSyntax:\n  atanh(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns inverse hyperbolic tangent\n   print atanh(42.0);","metadata":{"name":"atanh","path":"atanh","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:hypot","title":"hypot","text":"Function: hypot - returns sqrt(x*x + y*y) without undue overflow\nSyntax:\n  hypot(x: Number, y: Number) -> Number\nArguments:\n  x: Number - first numeric input\n  y: Number - second numeric input\nChildren: help(), available()\nExample:\n# Returns sqrt(x*x + y*y) without undue overflow\n   print hypot(42.0, 42.0);","metadata":{"name":"hypot","path":"hypot","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:min","title":"min","text":"Function: min - returns the smallest numeric argument\nSyntax:\n  min() -> Number\nChildren: help(), available()\nExample:\n# Find the lower endpoint altitude in a daylight window\n   let loc = location(60,10);\n   let obs = loc.observer();\n   let morning = altitude(sun, time(2026,6,21,6,0,0), obs);\n   let evening = altitude(sun, time(2026,6,21,18,0,0), obs);\n   print min(morning, evening);","metadata":{"name":"min","path":"min","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:max","title":"max","text":"Function: max - returns the largest numeric argument\nSyntax:\n  max() -> Number\nChildren: help(), available()\nExample:\n# Find the higher endpoint altitude in a daylight window\n   let loc = location(60,10);\n   let obs = loc.observer();\n   let morning = altitude(sun, time(2026,6,21,6,0,0), obs);\n   let evening = altitude(sun, time(2026,6,21,18,0,0), obs);\n   print max(morning, evening);","metadata":{"name":"max","path":"max","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:clamp","title":"clamp","text":"Function: clamp - clips x to the inclusive range lower..upper\nSyntax:\n  clamp(x: Number, lower: Number, upper: Number) -> Number\nArguments:\n  x: Number - value to clip\n  lower: Number - inclusive lower bound\n  upper: Number - inclusive upper bound\nChildren: help(), available()\nExample:\n# Clips x to the inclusive range lower..upper\n   print clamp(42.0, 42.0, 42.0);","metadata":{"name":"clamp","path":"clamp","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:angle_in_degrees","title":"angle_in_degrees","text":"Function: angle_in_degrees - returns the angle between two vectors in degrees\nSyntax:\n  angle_in_degrees(a: Vector, b: Vector) -> Number\nAliases: angle_degrees\nArguments:\n  a: Vector - first vector\n  b: Vector - second vector\nChildren: help(), available()\nExample:\n# Returns the angle between two vectors in degrees\n   print angle_in_degrees(vector(1.0, 2.0, 3.0), vector(1.0, 2.0, 3.0));","metadata":{"name":"angle_in_degrees","path":"angle_in_degrees","kind":"function","aliases":["angle_degrees"],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:to_radians","title":"to_radians","text":"Function: to_radians - converts degrees to radians\nSyntax:\n  to_radians(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Converts degrees to radians\n   print to_radians(42.0);","metadata":{"name":"to_radians","path":"to_radians","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:to_degrees","title":"to_degrees","text":"Function: to_degrees - converts radians to degrees\nSyntax:\n  to_degrees(x: Number) -> Number\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Converts radians to degrees\n   print to_degrees(42.0);","metadata":{"name":"to_degrees","path":"to_degrees","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:is_finite","title":"is_finite","text":"Function: is_finite - returns true when x is finite\nSyntax:\n  is_finite(x: Number) -> Bool\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns true when x is finite\n   print is_finite(42.0);","metadata":{"name":"is_finite","path":"is_finite","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:is_nan","title":"is_nan","text":"Function: is_nan - returns true when x is NaN\nSyntax:\n  is_nan(x: Number) -> Bool\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns true when x is NaN\n   print is_nan(42.0);","metadata":{"name":"is_nan","path":"is_nan","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:is_infinite","title":"is_infinite","text":"Function: is_infinite - returns true when x is infinite\nSyntax:\n  is_infinite(x: Number) -> Bool\nArguments:\n  x: Number - numeric input\nChildren: help(), available()\nExample:\n# Returns true when x is infinite\n   print is_infinite(42.0);","metadata":{"name":"is_infinite","path":"is_infinite","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:navigate","title":"navigate","text":"Function: navigate - estimates an Earth location from target elevation observations\nSyntax:\n  navigate(observations: Observation|[Observation]) -> LocationSolution\nArguments:\n  observations: Observation|[Observation] - three or more target elevation observations\nResources: ephemeris, iers\nChildren: help(), available()\nExample:\n# Estimate a location from seven pasted elevation observations\n   let sirius = stars().find(\"sirius\");\n   let betelgeuse = stars().find(\"betelgeuse\");\n   let procyon = stars().find(\"procyon\");\n   let aldebaran = stars().find(\"aldebaran\");\n   let rigel = stars().find(\"rigel\");\n   let o1 = observation(sirius, time(2026, 1, 12, 22, 0, 0), elevation: 13.032698485299838);\n   let o2 = observation(jupiter, time(2026, 1, 12, 22, 10, 0), elevation: 50.72978965272842);\n   let o3 = observation(uranus, time(2026, 1, 12, 22, 20, 0), elevation: 39.45114824559175);\n   let o4 = observation(betelgeuse, time(2026, 1, 12, 22, 30, 0), elevation: 36.78064241831301);\n   let o5 = observation(procyon, time(2026, 1, 12, 22, 40, 0), elevation: 34.48682253366456);\n   let o6 = observation(aldebaran, time(2026, 1, 12, 22, 50, 0), elevation: 39.32907688782253);\n   let o7 = observation(rigel, time(2026, 1, 12, 23, 0, 0), elevation: 18.06018919597869);\n   let sol = navigate(o1, o2, o3, o4, o5, o6, o7);\n   print sol.location.latitude, sol.location.longitude, sol.rms;","metadata":{"name":"navigate","path":"navigate","kind":"function","aliases":[],"resources":["ephemeris","iers"],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"function:minimize","title":"minimize","text":"Function: minimize - minimizes a numeric callable over named variables with optional bounds and constraints\nSyntax:\n  minimize(objective: Function, initial: Object, options: Object) -> Object\nArguments:\n  objective: Function - numeric objective function\n  initial: Object - named numeric initial variables\n  options: Object [optional] - bounds, constraints, tolerance, and iteration options\nChildren: help(), available()\nExample:\n# Minimize a numeric objective over a bounded variable\n   let result = minimize((x): (x - 2) * (x - 2), {x: 0}, {bounds: {x: range(-5, 5)}});\n   print result.solution.x, result.value;","metadata":{"name":"minimize","path":"minimize","kind":"function","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"type:Time","title":"Time","text":"Type: Time - UTC date/time value with resolved TT, UT1, and TDB scales\nSyntax:\n  time() -> Time\n  time(julian_date: Number) -> Time\n  time(year: Integer, month: Integer, day: Integer, hour: Integer, minute: Integer, second: Integer) -> Time\n  time(timezone: Timezone|Text|Location|Place) -> LocalTime\n  time(year: Integer, month: Integer, day: Integer, hour: Integer, minute: Integer, second: Integer, timezone: Timezone|Text|Location|Place) -> LocalTime\nArguments:\n  julian_date: Number [optional] - UTC Julian date\n  year: Integer [optional] - full UTC year\n  month: Integer [optional] - month from 1 to 12\n  day: Integer [optional] - day from 1 to 31\n  hour: Integer [optional] - hour from 0 to 23\n  minute: Integer [optional] - minute from 0 to 59\n  second: Integer [optional] - second from 0 to 59\n  timezone: Timezone|Text|Location|Place [optional] - timezone id, Timezone, Location, or Place for local civil time\nChildren: year, month, day, hour, minute, second, weekday, year(), utc(), tt(), ut1(), tdb(), dt(), local(), add_months(), add_days(), add_hours(), add_minutes(), add_seconds(), children(), fields(), functions()\nExample:\n# Convert a UTC time to local civil time\n   let t = time(2026,6,1,12,0,0);\n   print t.utc(), t.local(\"Europe/Oslo\").iso;","metadata":{"name":"Time","path":"Time","kind":"type","aliases":[],"resources":[],"children":["field:Time.year","field:Time.month","field:Time.day","field:Time.hour","field:Time.minute","field:Time.second","field:Time.weekday","member:Time.year","member:Time.utc","member:Time.tt","member:Time.ut1","member:Time.tdb","member:Time.dt","member:Time.local","member:Time.add_months","member:Time.add_days","member:Time.add_hours","member:Time.add_minutes","member:Time.add_seconds","member:Time.children","member:Time.fields","member:Time.functions"]}},{"id":"field:Time.year","title":"Time.year","text":"Field: Time.year - full UTC year\nSyntax:\n  <Time>.year -> Integer\nExample:\n# Read the year field from a Time value\n   print time().year;","metadata":{"name":"year","path":"Time.year","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Time.month","title":"Time.month","text":"Field: Time.month - month from 1 to 12\nSyntax:\n  <Time>.month -> Integer\nExample:\n# Read the month field from a Time value\n   print time().month;","metadata":{"name":"month","path":"Time.month","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Time.day","title":"Time.day","text":"Field: Time.day - day from 1 to 31\nSyntax:\n  <Time>.day -> Integer\nExample:\n# Read the day field from a Time value\n   print time().day;","metadata":{"name":"day","path":"Time.day","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Time.hour","title":"Time.hour","text":"Field: Time.hour - hour from 0 to 23\nSyntax:\n  <Time>.hour -> Integer\nExample:\n# Read the hour field from a Time value\n   print time().hour;","metadata":{"name":"hour","path":"Time.hour","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Time.minute","title":"Time.minute","text":"Field: Time.minute - minute from 0 to 59\nSyntax:\n  <Time>.minute -> Integer\nExample:\n# Read the minute field from a Time value\n   print time().minute;","metadata":{"name":"minute","path":"Time.minute","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Time.second","title":"Time.second","text":"Field: Time.second - second from 0 to 59\nSyntax:\n  <Time>.second -> Integer\nExample:\n# Read the second field from a Time value\n   print time().second;","metadata":{"name":"second","path":"Time.second","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Time.weekday","title":"Time.weekday","text":"Field: Time.weekday - UTC weekday\nSyntax:\n  <Time>.weekday -> Weekday\nExample:\n# Read the weekday field from a Time value\n   print time().weekday;","metadata":{"name":"weekday","path":"Time.weekday","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.year","title":"Time.year","text":"Method: Time.year - returns the year component of a Time\nSyntax:\n  <Time>.year() -> Number\nExample:\n# Use Time.year on a Time value\n   let value = time();\n   print value.year();","metadata":{"name":"year","path":"Time.year","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.utc","title":"Time.utc","text":"Method: Time.utc - returns the UTC Julian date\nSyntax:\n  <Time>.utc() -> Number\nExample:\n# Use Time.utc on a Time value\n   let value = time();\n   print value.utc();","metadata":{"name":"utc","path":"Time.utc","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.tt","title":"Time.tt","text":"Method: Time.tt - returns the TT Julian date\nSyntax:\n  <Time>.tt() -> Number\nExample:\n# Use Time.tt on a Time value\n   let value = time();\n   print value.tt();","metadata":{"name":"tt","path":"Time.tt","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.ut1","title":"Time.ut1","text":"Method: Time.ut1 - returns the UT1 Julian date\nSyntax:\n  <Time>.ut1() -> Number\nExample:\n# Use Time.ut1 on a Time value\n   let value = time();\n   print value.ut1();","metadata":{"name":"ut1","path":"Time.ut1","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.tdb","title":"Time.tdb","text":"Method: Time.tdb - returns the TDB Julian date\nSyntax:\n  <Time>.tdb() -> Number\nExample:\n# Use Time.tdb on a Time value\n   let value = time();\n   print value.tdb();","metadata":{"name":"tdb","path":"Time.tdb","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.dt","title":"Time.dt","text":"Method: Time.dt - returns Delta-T (TT-UT1) in seconds\nSyntax:\n  <Time>.dt() -> Number\nExample:\n# Use Time.dt on a Time value\n   let value = time();\n   print value.dt();","metadata":{"name":"dt","path":"Time.dt","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.local","title":"Time.local","text":"Method: Time.local - converts a UTC Time into local civil time for a timezone\nSyntax:\n  <Time>.local(timezone: Timezone|Text|Location|Place) -> LocalTime\nArguments:\n  timezone: Timezone|Text|Location|Place - timezone id, Timezone, Location, or Place\nExample:\n# Use Time.local on a Time value\n   let value = time();\n   print value.local(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"local","path":"Time.local","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.add_months","title":"Time.add_months","text":"Method: Time.add_months - adds calendar months to a Time\nSyntax:\n  <Time>.add_months(months: Integer) -> Time\nArguments:\n  months: Integer - number of calendar months to add\nExample:\n# Use Time.add_months on a Time value\n   let value = time();\n   print value.add_months(42);","metadata":{"name":"add_months","path":"Time.add_months","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.add_days","title":"Time.add_days","text":"Method: Time.add_days - adds UTC days to a Time\nSyntax:\n  <Time>.add_days(days: Number) -> Time\nArguments:\n  days: Number - number of UTC days to add\nExample:\n# Use Time.add_days on a Time value\n   let value = time();\n   print value.add_days(42.0);","metadata":{"name":"add_days","path":"Time.add_days","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.add_hours","title":"Time.add_hours","text":"Method: Time.add_hours - adds UTC hours to a Time\nSyntax:\n  <Time>.add_hours(hours: Number) -> Time\nArguments:\n  hours: Number - number of UTC hours to add\nExample:\n# Use Time.add_hours on a Time value\n   let value = time();\n   print value.add_hours(42.0);","metadata":{"name":"add_hours","path":"Time.add_hours","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.add_minutes","title":"Time.add_minutes","text":"Method: Time.add_minutes - adds UTC minutes to a Time\nSyntax:\n  <Time>.add_minutes(minutes: Number) -> Time\nArguments:\n  minutes: Number - number of UTC minutes to add\nExample:\n# Use Time.add_minutes on a Time value\n   let value = time();\n   print value.add_minutes(42.0);","metadata":{"name":"add_minutes","path":"Time.add_minutes","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.add_seconds","title":"Time.add_seconds","text":"Method: Time.add_seconds - adds UTC seconds to a Time\nSyntax:\n  <Time>.add_seconds(seconds: Number) -> Time\nArguments:\n  seconds: Number - number of UTC seconds to add\nExample:\n# Use Time.add_seconds on a Time value\n   let value = time();\n   print value.add_seconds(42.0);","metadata":{"name":"add_seconds","path":"Time.add_seconds","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.children","title":"Time.children","text":"Method: Time.children - lists child fields and callable members available on this value\nSyntax:\n  <Time>.children() -> List\nExample:\n# Use Time.children on a Time value\n   let value = time();\n   print value.children();","metadata":{"name":"children","path":"Time.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.fields","title":"Time.fields","text":"Method: Time.fields - returns an object containing the value's plain fields\nSyntax:\n  <Time>.fields() -> Object\nExample:\n# Use Time.fields on a Time value\n   let value = time();\n   print value.fields();","metadata":{"name":"fields","path":"Time.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Time.functions","title":"Time.functions","text":"Method: Time.functions - lists callable members available on this value\nSyntax:\n  <Time>.functions() -> List\nExample:\n# Use Time.functions on a Time value\n   let value = time();\n   print value.functions();","metadata":{"name":"functions","path":"Time.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:LocalTime","title":"LocalTime","text":"Type: LocalTime - timezone-adjusted civil time derived from a UTC Time\nChildren: timezone, year, month, day, hour, minute, second, weekday, offset_seconds, offset_hours, offset, abbreviation, is_dst, iso, utc(), local(), children(), fields(), functions()\nExample:\n# Show a UTC timestamp as local civil time\n   let local = time(2026,6,21,12,0,0).local(\"Europe/Oslo\");\n   print local.iso, local.timezone;","metadata":{"name":"LocalTime","path":"LocalTime","kind":"type","aliases":[],"resources":[],"children":["field:LocalTime.timezone","field:LocalTime.year","field:LocalTime.month","field:LocalTime.day","field:LocalTime.hour","field:LocalTime.minute","field:LocalTime.second","field:LocalTime.weekday","field:LocalTime.offset_seconds","field:LocalTime.offset_hours","field:LocalTime.offset","field:LocalTime.abbreviation","field:LocalTime.is_dst","field:LocalTime.iso","member:LocalTime.utc","member:LocalTime.local","member:LocalTime.children","member:LocalTime.fields","member:LocalTime.functions"]}},{"id":"field:LocalTime.timezone","title":"LocalTime.timezone","text":"Field: LocalTime.timezone - IANA timezone id\nSyntax:\n  <LocalTime>.timezone -> Text\nExample:\n# Read the timezone field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").timezone;","metadata":{"name":"timezone","path":"LocalTime.timezone","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.year","title":"LocalTime.year","text":"Field: LocalTime.year - local civil year\nSyntax:\n  <LocalTime>.year -> Number\nExample:\n# Read the year field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").year;","metadata":{"name":"year","path":"LocalTime.year","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.month","title":"LocalTime.month","text":"Field: LocalTime.month - local civil month\nSyntax:\n  <LocalTime>.month -> Number\nExample:\n# Read the month field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").month;","metadata":{"name":"month","path":"LocalTime.month","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.day","title":"LocalTime.day","text":"Field: LocalTime.day - local civil day\nSyntax:\n  <LocalTime>.day -> Number\nExample:\n# Read the day field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").day;","metadata":{"name":"day","path":"LocalTime.day","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.hour","title":"LocalTime.hour","text":"Field: LocalTime.hour - local civil hour\nSyntax:\n  <LocalTime>.hour -> Number\nExample:\n# Read the hour field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").hour;","metadata":{"name":"hour","path":"LocalTime.hour","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.minute","title":"LocalTime.minute","text":"Field: LocalTime.minute - local civil minute\nSyntax:\n  <LocalTime>.minute -> Number\nExample:\n# Read the minute field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").minute;","metadata":{"name":"minute","path":"LocalTime.minute","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.second","title":"LocalTime.second","text":"Field: LocalTime.second - local civil second\nSyntax:\n  <LocalTime>.second -> Number\nExample:\n# Read the second field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").second;","metadata":{"name":"second","path":"LocalTime.second","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.weekday","title":"LocalTime.weekday","text":"Field: LocalTime.weekday - local ISO weekday\nSyntax:\n  <LocalTime>.weekday -> Weekday\nExample:\n# Read the weekday field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").weekday;","metadata":{"name":"weekday","path":"LocalTime.weekday","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.offset_seconds","title":"LocalTime.offset_seconds","text":"Field: LocalTime.offset_seconds - UTC offset in seconds\nSyntax:\n  <LocalTime>.offset_seconds -> Number\nExample:\n# Read the offset_seconds field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").offset_seconds;","metadata":{"name":"offset_seconds","path":"LocalTime.offset_seconds","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.offset_hours","title":"LocalTime.offset_hours","text":"Field: LocalTime.offset_hours - UTC offset in hours\nSyntax:\n  <LocalTime>.offset_hours -> Number\nExample:\n# Read the offset_hours field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").offset_hours;","metadata":{"name":"offset_hours","path":"LocalTime.offset_hours","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.offset","title":"LocalTime.offset","text":"Field: LocalTime.offset - formatted UTC offset\nSyntax:\n  <LocalTime>.offset -> Text\nExample:\n# Read the offset field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").offset;","metadata":{"name":"offset","path":"LocalTime.offset","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.abbreviation","title":"LocalTime.abbreviation","text":"Field: LocalTime.abbreviation - timezone abbreviation at this instant\nSyntax:\n  <LocalTime>.abbreviation -> Text\nExample:\n# Read the abbreviation field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").abbreviation;","metadata":{"name":"abbreviation","path":"LocalTime.abbreviation","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.is_dst","title":"LocalTime.is_dst","text":"Field: LocalTime.is_dst - true when the selected offset is daylight-saving time\nSyntax:\n  <LocalTime>.is_dst -> Bool\nExample:\n# Read the is_dst field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").is_dst;","metadata":{"name":"is_dst","path":"LocalTime.is_dst","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocalTime.iso","title":"LocalTime.iso","text":"Field: LocalTime.iso - ISO-like local timestamp with UTC offset\nSyntax:\n  <LocalTime>.iso -> Text\nExample:\n# Read the iso field from a LocalTime value\n   print time(2026,6,7,12,0,0).local(\"Europe/Oslo\").iso;","metadata":{"name":"iso","path":"LocalTime.iso","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:LocalTime.utc","title":"LocalTime.utc","text":"Method: LocalTime.utc - returns the original UTC Time\nSyntax:\n  <LocalTime>.utc() -> Time\nExample:\n# Use LocalTime.utc on a LocalTime value\n   let value = time(2026,6,7,12,0,0).local(\"Europe/Oslo\");\n   print value.utc();","metadata":{"name":"utc","path":"LocalTime.utc","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:LocalTime.local","title":"LocalTime.local","text":"Method: LocalTime.local - converts this local time's UTC instant into another local civil time\nSyntax:\n  <LocalTime>.local(timezone: Timezone|Text|Location|Place) -> LocalTime\nArguments:\n  timezone: Timezone|Text|Location|Place - timezone id, Timezone, Location, or Place\nExample:\n# Use LocalTime.local on a LocalTime value\n   let value = time(2026,6,7,12,0,0).local(\"Europe/Oslo\");\n   print value.local(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"local","path":"LocalTime.local","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:LocalTime.children","title":"LocalTime.children","text":"Method: LocalTime.children - lists child fields and callable members available on this value\nSyntax:\n  <LocalTime>.children() -> List\nExample:\n# Use LocalTime.children on a LocalTime value\n   let value = time(2026,6,7,12,0,0).local(\"Europe/Oslo\");\n   print value.children();","metadata":{"name":"children","path":"LocalTime.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:LocalTime.fields","title":"LocalTime.fields","text":"Method: LocalTime.fields - returns an object containing the value's plain fields\nSyntax:\n  <LocalTime>.fields() -> Object\nExample:\n# Use LocalTime.fields on a LocalTime value\n   let value = time(2026,6,7,12,0,0).local(\"Europe/Oslo\");\n   print value.fields();","metadata":{"name":"fields","path":"LocalTime.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:LocalTime.functions","title":"LocalTime.functions","text":"Method: LocalTime.functions - lists callable members available on this value\nSyntax:\n  <LocalTime>.functions() -> List\nExample:\n# Use LocalTime.functions on a LocalTime value\n   let value = time(2026,6,7,12,0,0).local(\"Europe/Oslo\");\n   print value.functions();","metadata":{"name":"functions","path":"LocalTime.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Weekday","title":"Weekday","text":"Type: Weekday - ISO weekday value\nSyntax:\n  weekday(value: Integer|Text) -> Weekday\nArguments:\n  value: Integer|Text - ISO index from 1 to 7, full name, or short name\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Check the weekday for a planned observation date\n   let t = time(2026,6,21,12,0,0);\n   print t.utc(), t.weekday;","metadata":{"name":"Weekday","path":"Weekday","kind":"type","aliases":[],"resources":[],"children":["member:Weekday.name","member:Weekday.short","member:Weekday.letter","member:Weekday.index","member:Weekday.children","member:Weekday.fields","member:Weekday.functions"]}},{"id":"member:Weekday.name","title":"Weekday.name","text":"Method: Weekday.name - returns the full weekday name\nSyntax:\n  <Weekday>.name() -> Text\nExample:\n# Use Weekday.name on a Weekday value\n   let value = wednesday;\n   print value.name();","metadata":{"name":"name","path":"Weekday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Weekday.short","title":"Weekday.short","text":"Method: Weekday.short - returns the short weekday name\nSyntax:\n  <Weekday>.short() -> Text\nExample:\n# Use Weekday.short on a Weekday value\n   let value = wednesday;\n   print value.short();","metadata":{"name":"short","path":"Weekday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Weekday.letter","title":"Weekday.letter","text":"Method: Weekday.letter - returns the one-letter weekday label\nSyntax:\n  <Weekday>.letter() -> Text\nExample:\n# Use Weekday.letter on a Weekday value\n   let value = wednesday;\n   print value.letter();","metadata":{"name":"letter","path":"Weekday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Weekday.index","title":"Weekday.index","text":"Method: Weekday.index - returns the ISO weekday index\nSyntax:\n  <Weekday>.index() -> Integer\nExample:\n# Use Weekday.index on a Weekday value\n   let value = wednesday;\n   print value.index();","metadata":{"name":"index","path":"Weekday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Weekday.children","title":"Weekday.children","text":"Method: Weekday.children - lists child fields and callable members available on this value\nSyntax:\n  <Weekday>.children() -> List\nExample:\n# Use Weekday.children on a Weekday value\n   let value = wednesday;\n   print value.children();","metadata":{"name":"children","path":"Weekday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Weekday.fields","title":"Weekday.fields","text":"Method: Weekday.fields - returns an object containing the value's plain fields\nSyntax:\n  <Weekday>.fields() -> Object\nExample:\n# Use Weekday.fields on a Weekday value\n   let value = wednesday;\n   print value.fields();","metadata":{"name":"fields","path":"Weekday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Weekday.functions","title":"Weekday.functions","text":"Method: Weekday.functions - lists callable members available on this value\nSyntax:\n  <Weekday>.functions() -> List\nExample:\n# Use Weekday.functions on a Weekday value\n   let value = wednesday;\n   print value.functions();","metadata":{"name":"functions","path":"Weekday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Location","title":"Location","text":"Type: Location - body-aware latitude/longitude surface location\nSyntax:\n  location(body: Body, latitude: Number, longitude: Number) -> Location\nArguments:\n  body: Body [optional] - central body; defaults to earth\n  latitude: Number - latitude in degrees\n  longitude: Number - longitude in degrees\nChildren: body, latitude, longitude, observer(), direction(), children(), fields(), functions()\nExample:\n# Format a location as latitude and longitude text\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   print dms(loc.latitude, \"latitude\"), dms(loc.longitude, \"longitude\");","metadata":{"name":"Location","path":"Location","kind":"type","aliases":[],"resources":[],"children":["field:Location.body","field:Location.latitude","field:Location.longitude","member:Location.observer","member:Location.direction","member:Location.children","member:Location.fields","member:Location.functions"]}},{"id":"field:Location.body","title":"Location.body","text":"Field: Location.body - central body; defaults to earth\nSyntax:\n  <Location>.body -> Body\nExample:\n# Read the body field from a Location value\n   print location(latitude: 60.0, longitude: 270.0).body;","metadata":{"name":"body","path":"Location.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Location.latitude","title":"Location.latitude","text":"Field: Location.latitude - latitude in degrees\nSyntax:\n  <Location>.latitude -> Number\nExample:\n# Read the latitude field from a Location value\n   print location(latitude: 60.0, longitude: 270.0).latitude;","metadata":{"name":"latitude","path":"Location.latitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Location.longitude","title":"Location.longitude","text":"Field: Location.longitude - longitude in degrees\nSyntax:\n  <Location>.longitude -> Number\nExample:\n# Read the longitude field from a Location value\n   print location(latitude: 60.0, longitude: 270.0).longitude;","metadata":{"name":"longitude","path":"Location.longitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Location.observer","title":"Location.observer","text":"Method: Location.observer - promotes this location to a 3D observer\nSyntax:\n  <Location>.observer(topography: Field, height: Number) -> Observer\nArguments:\n  topography: Field [optional] - optional body-matching topography field; use `topography(earth)` or `topography(moon)`\n  height: Number [optional] - height in kilometers above the datum or supplied topography; defaults to zero\nExample:\n# Use Location.observer on a Location value\n   let value = location(latitude: 60.0, longitude: 270.0);\n   print value.observer();","metadata":{"name":"observer","path":"Location.observer","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Location.direction","title":"Location.direction","text":"Method: Location.direction - returns a local topographic direction\nSyntax:\n  <Location>.direction(azimuth: Number, elevation: Number, zenith: Number, unit: Unit) -> Direction\nArguments:\n  azimuth: Number - local azimuth clockwise from north; degrees are default\n  elevation: Number [optional] - angle above the local horizon; degrees are default\n  zenith: Number [optional] - angle down from local zenith; degrees are default\n  unit: Unit [optional] - optional angle unit for azimuth and elevation/zenith\nExample:\n# Build a local topographic direction from a location\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   print loc.direction(azimuth: 180, elevation: 25);","metadata":{"name":"direction","path":"Location.direction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Location.children","title":"Location.children","text":"Method: Location.children - lists child fields and callable members available on this value\nSyntax:\n  <Location>.children() -> List\nExample:\n# Use Location.children on a Location value\n   let value = location(latitude: 60.0, longitude: 270.0);\n   print value.children();","metadata":{"name":"children","path":"Location.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Location.fields","title":"Location.fields","text":"Method: Location.fields - returns an object containing the value's plain fields\nSyntax:\n  <Location>.fields() -> Object\nExample:\n# Use Location.fields on a Location value\n   let value = location(latitude: 60.0, longitude: 270.0);\n   print value.fields();","metadata":{"name":"fields","path":"Location.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Location.functions","title":"Location.functions","text":"Method: Location.functions - lists callable members available on this value\nSyntax:\n  <Location>.functions() -> List\nExample:\n# Use Location.functions on a Location value\n   let value = location(latitude: 60.0, longitude: 270.0);\n   print value.functions();","metadata":{"name":"functions","path":"Location.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:LocationSolution","title":"LocationSolution","text":"Type: LocationSolution - navigation solution with location, residuals, and fit quality\nChildren: location, observations, residuals, rms, lat_rms, lon_rms, status, method, iterations, children(), fields(), functions()","metadata":{"name":"LocationSolution","path":"LocationSolution","kind":"type","aliases":[],"resources":[],"children":["field:LocationSolution.location","field:LocationSolution.observations","field:LocationSolution.residuals","field:LocationSolution.rms","field:LocationSolution.lat_rms","field:LocationSolution.lon_rms","field:LocationSolution.status","field:LocationSolution.method","field:LocationSolution.iterations","member:LocationSolution.children","member:LocationSolution.fields","member:LocationSolution.functions"]}},{"id":"field:LocationSolution.location","title":"LocationSolution.location","text":"Field: LocationSolution.location - best-fit Earth location\nSyntax:\n  <LocationSolution>.location -> Location","metadata":{"name":"location","path":"LocationSolution.location","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.observations","title":"LocationSolution.observations","text":"Field: LocationSolution.observations - elevation observations used for the navigation solution\nSyntax:\n  <LocationSolution>.observations -> List<Observation>","metadata":{"name":"observations","path":"LocationSolution.observations","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.residuals","title":"LocationSolution.residuals","text":"Field: LocationSolution.residuals - per-observation elevation residuals in degrees\nSyntax:\n  <LocationSolution>.residuals -> List<Object>","metadata":{"name":"residuals","path":"LocationSolution.residuals","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.rms","title":"LocationSolution.rms","text":"Field: LocationSolution.rms - RMS elevation residual in degrees\nSyntax:\n  <LocationSolution>.rms -> Number?","metadata":{"name":"rms","path":"LocationSolution.rms","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.lat_rms","title":"LocationSolution.lat_rms","text":"Field: LocationSolution.lat_rms - latitude uncertainty estimate in degrees, or nil when unavailable\nSyntax:\n  <LocationSolution>.lat_rms -> Number?","metadata":{"name":"lat_rms","path":"LocationSolution.lat_rms","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.lon_rms","title":"LocationSolution.lon_rms","text":"Field: LocationSolution.lon_rms - longitude uncertainty estimate in degrees, or nil when unavailable\nSyntax:\n  <LocationSolution>.lon_rms -> Number?","metadata":{"name":"lon_rms","path":"LocationSolution.lon_rms","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.status","title":"LocationSolution.status","text":"Field: LocationSolution.status - solution status\nSyntax:\n  <LocationSolution>.status -> Text?","metadata":{"name":"status","path":"LocationSolution.status","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.method","title":"LocationSolution.method","text":"Field: LocationSolution.method - navigation solution method\nSyntax:\n  <LocationSolution>.method -> Text?","metadata":{"name":"method","path":"LocationSolution.method","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:LocationSolution.iterations","title":"LocationSolution.iterations","text":"Field: LocationSolution.iterations - number of refinement iterations, or nil when unavailable\nSyntax:\n  <LocationSolution>.iterations -> Number?","metadata":{"name":"iterations","path":"LocationSolution.iterations","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:LocationSolution.children","title":"LocationSolution.children","text":"Method: LocationSolution.children - lists child fields and callable members available on this value\nSyntax:\n  <LocationSolution>.children() -> List","metadata":{"name":"children","path":"LocationSolution.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:LocationSolution.fields","title":"LocationSolution.fields","text":"Method: LocationSolution.fields - returns an object containing the value's plain fields\nSyntax:\n  <LocationSolution>.fields() -> Object","metadata":{"name":"fields","path":"LocationSolution.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:LocationSolution.functions","title":"LocationSolution.functions","text":"Method: LocationSolution.functions - lists callable members available on this value\nSyntax:\n  <LocationSolution>.functions() -> List","metadata":{"name":"functions","path":"LocationSolution.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Observer","title":"Observer","text":"Type: Observer - body-fixed 3D observer with position, zenith, and derived surface location\nSyntax:\n  observer(location_or_body: Location|Body, height_or_position: Number|Field|Vector, height_or_zenith: Number|Vector) -> Observer\nArguments:\n  location_or_body: Location|Body - surface location or body for body-fixed vectors\n  height_or_position: Number|Field|Vector [optional] - height in kilometers, topography field for a location, or observer position vector\n  height_or_zenith: Number|Vector [optional] - height above topography for a location, or body-fixed zenith/up vector\nChildren: body, position, zenith, location, height_km, position(), location(), latitude(), longitude(), height(), zenith(), north(), west(), limb(), direction(), orbit(), children(), fields(), functions()\nExample:\n# Sample the Sun altitude from an elevated observer\n   let obs = location(58.9666667, 5.7333333).observer(height: 0.002);\n   print obs.height(), altitude(sun, time(2026,6,21,12,0,0), obs);","metadata":{"name":"Observer","path":"Observer","kind":"type","aliases":[],"resources":[],"children":["field:Observer.body","field:Observer.position","field:Observer.zenith","field:Observer.location","field:Observer.height_km","member:Observer.position","member:Observer.location","member:Observer.latitude","member:Observer.longitude","member:Observer.height","member:Observer.zenith","member:Observer.north","member:Observer.west","member:Observer.limb","member:Observer.direction","member:Observer.orbit","member:Observer.children","member:Observer.fields","member:Observer.functions"]}},{"id":"field:Observer.body","title":"Observer.body","text":"Field: Observer.body - body whose fixed frame contains the observer\nSyntax:\n  <Observer>.body -> Body\nExample:\n# Read the body field from a Observer value\n   print location(latitude: 60.0, longitude: 270.0).observer(height: 1.5).body;","metadata":{"name":"body","path":"Observer.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observer.position","title":"Observer.position","text":"Field: Observer.position - body-fixed observer position in kilometers\nSyntax:\n  <Observer>.position -> Vector\nExample:\n# Read the position field from a Observer value\n   print location(latitude: 60.0, longitude: 270.0).observer(height: 1.5).position;","metadata":{"name":"position","path":"Observer.position","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observer.zenith","title":"Observer.zenith","text":"Field: Observer.zenith - body-fixed local zenith direction\nSyntax:\n  <Observer>.zenith -> Vector\nExample:\n# Read the zenith field from a Observer value\n   print location(latitude: 60.0, longitude: 270.0).observer(height: 1.5).zenith;","metadata":{"name":"zenith","path":"Observer.zenith","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observer.location","title":"Observer.location","text":"Field: Observer.location - derived body-aware surface location\nSyntax:\n  <Observer>.location -> Location\nExample:\n# Read the location field from a Observer value\n   print location(latitude: 60.0, longitude: 270.0).observer(height: 1.5).location;","metadata":{"name":"location","path":"Observer.location","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observer.height_km","title":"Observer.height_km","text":"Field: Observer.height_km - derived height above the body shape in kilometers\nSyntax:\n  <Observer>.height_km -> Number\nExample:\n# Read the height_km field from a Observer value\n   print location(latitude: 60.0, longitude: 270.0).observer(height: 1.5).height_km;","metadata":{"name":"height_km","path":"Observer.height_km","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.position","title":"Observer.position","text":"Method: Observer.position - returns the observer position vector in a requested origin and frame\nSyntax:\n  <Observer>.position() -> Vector\n  <Observer>.position(time: Time, origin: Body, axis: Axis) -> Vector\nArguments:\n  time: Time [optional] - time at which to resolve the observer position\n  origin: Body [optional] - origin body center such as earth, mars, or jupiter\n  axis: Axis [optional] - target frame such as icrf, earthfixed, marsfixed, or jupiterfixed\nExample:\n# Use Observer.position on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.position();","metadata":{"name":"position","path":"Observer.position","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.location","title":"Observer.location","text":"Method: Observer.location - returns the datum-derived location\nSyntax:\n  <Observer>.location() -> Location\nExample:\n# Use Observer.location on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.location();","metadata":{"name":"location","path":"Observer.location","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.latitude","title":"Observer.latitude","text":"Method: Observer.latitude - returns the datum-derived latitude in degrees\nSyntax:\n  <Observer>.latitude() -> Number\nExample:\n# Use Observer.latitude on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.latitude();","metadata":{"name":"latitude","path":"Observer.latitude","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.longitude","title":"Observer.longitude","text":"Method: Observer.longitude - returns the datum-derived longitude in degrees\nSyntax:\n  <Observer>.longitude() -> Number\nExample:\n# Use Observer.longitude on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.longitude();","metadata":{"name":"longitude","path":"Observer.longitude","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.height","title":"Observer.height","text":"Method: Observer.height - returns height above the body datum in kilometers\nSyntax:\n  <Observer>.height() -> Number\nExample:\n# Use Observer.height on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.height();","metadata":{"name":"height","path":"Observer.height","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.zenith","title":"Observer.zenith","text":"Method: Observer.zenith - returns the body-fixed local zenith unit vector\nSyntax:\n  <Observer>.zenith() -> Vector\nExample:\n# Use Observer.zenith on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.zenith();","metadata":{"name":"zenith","path":"Observer.zenith","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.north","title":"Observer.north","text":"Method: Observer.north - returns the body-fixed local north unit vector\nSyntax:\n  <Observer>.north() -> Vector\nExample:\n# Use Observer.north on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.north();","metadata":{"name":"north","path":"Observer.north","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.west","title":"Observer.west","text":"Method: Observer.west - returns the body-fixed local west unit vector\nSyntax:\n  <Observer>.west() -> Vector\nExample:\n# Use Observer.west on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.west();","metadata":{"name":"west","path":"Observer.west","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.limb","title":"Observer.limb","text":"Method: Observer.limb - computes the apparent limb profile of a target state from this observer\nSyntax:\n  <Observer>.limb(state: State, north: Vector, samples: Number) -> Array\nArguments:\n  state: State - target body state whose limb should be sampled\n  north: Vector [optional] - direction projected as clock-angle zero; defaults to body north\n  samples: Number [optional] - number of limb samples; defaults to 360\nExample:\n# Compute a target limb profile from an observer\n   let obs = location(latitude: 0, longitude: 0).observer(0.052);\n   let target = state(moon, time(2026,4,27,8,26,0));\n   print obs.limb(target, 4).length();","metadata":{"name":"limb","path":"Observer.limb","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.direction","title":"Observer.direction","text":"Method: Observer.direction - returns a local topographic direction\nSyntax:\n  <Observer>.direction(azimuth: Number, elevation: Number, zenith: Number, unit: Unit) -> Direction\nArguments:\n  azimuth: Number - local azimuth clockwise from north; degrees are default\n  elevation: Number [optional] - angle above the local horizon; degrees are default\n  zenith: Number [optional] - angle down from local zenith; degrees are default\n  unit: Unit [optional] - optional angle unit for azimuth and elevation/zenith\nExample:\n# Build a local topographic direction from an observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   print obs.direction(azimuth: 180, elevation: 25);","metadata":{"name":"direction","path":"Observer.direction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.orbit","title":"Observer.orbit","text":"Method: Observer.orbit - determines an orbit from observations made by this observer\nSyntax:\n  <Observer>.orbit(observations: Observation...) -> OrbitSolution\nArguments:\n  observations: Observation... - three or more observations, or one list of observations\nExample:\n# Prepare observations that can be passed to observer.orbit(...)\n   let obs = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let first = observation(obs, time(2028,7,3), ra: 131.0857742519269, dec: 18.803678151005595);\n   let second = observation(obs, time(2028,7,23), ra: 135.0300892722528, dec: 18.040162341691612);\n   let third = observation(obs, time(2028,8,12), ra: 139.04202357010908, dec: 17.175191580463146);\n   print first.time.utc(), second.time.utc(), third.time.utc();","metadata":{"name":"orbit","path":"Observer.orbit","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.children","title":"Observer.children","text":"Method: Observer.children - lists child fields and callable members available on this value\nSyntax:\n  <Observer>.children() -> List\nExample:\n# Use Observer.children on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.children();","metadata":{"name":"children","path":"Observer.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.fields","title":"Observer.fields","text":"Method: Observer.fields - returns an object containing the value's plain fields\nSyntax:\n  <Observer>.fields() -> Object\nExample:\n# Use Observer.fields on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.fields();","metadata":{"name":"fields","path":"Observer.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observer.functions","title":"Observer.functions","text":"Method: Observer.functions - lists callable members available on this value\nSyntax:\n  <Observer>.functions() -> List\nExample:\n# Use Observer.functions on a Observer value\n   let value = location(latitude: 60.0, longitude: 270.0).observer(height: 1.5);\n   print value.functions();","metadata":{"name":"functions","path":"Observer.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Body","title":"Body","text":"Type: Body - solar-system body with physical parameters from the reference C model\nSyntax:\n  body(name: Text) -> Body\nArguments:\n  name: Text - solar-system body name\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), inferior_conjunction(), superior_conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), greatest_eastern_elongation(), greatest_western_elongation(), greatest_elongation(), periapsis(), apoapsis(), transit(), children(), fields(), functions()\nExample:\n# Compare physical reference values for two bodies\n   print earth.radius, moon.radius, moon.mass / earth.mass;","metadata":{"name":"Body","path":"Body","kind":"type","aliases":[],"resources":[],"children":["field:Body.name","field:Body.kind","field:Body.xmu","field:Body.radius","field:Body.mass","field:Body.H","field:Body.n","field:Body.k","field:Body.known","member:Body.rotational_axis","member:Body.rotational_axis_ra","member:Body.rotational_axis_dec","member:Body.state","member:Body.rise","member:Body.set","member:Body.conjunction","member:Body.inferior_conjunction","member:Body.superior_conjunction","member:Body.opposition","member:Body.eastern_quadrature","member:Body.western_quadrature","member:Body.quadrature","member:Body.greatest_eastern_elongation","member:Body.greatest_western_elongation","member:Body.greatest_elongation","member:Body.periapsis","member:Body.apoapsis","member:Body.transit","member:Body.children","member:Body.fields","member:Body.functions"]}},{"id":"field:Body.name","title":"Body.name","text":"Field: Body.name - canonical body name\nSyntax:\n  <Body>.name -> Text\nExample:\n# Read the name field from a Body value\n   print sun.name;","metadata":{"name":"name","path":"Body.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.kind","title":"Body.kind","text":"Field: Body.kind - reference body kind\nSyntax:\n  <Body>.kind -> Text\nExample:\n# Read the kind field from a Body value\n   print sun.kind;","metadata":{"name":"kind","path":"Body.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.xmu","title":"Body.xmu","text":"Field: Body.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  <Body>.xmu -> Number\nExample:\n# Read the xmu field from a Body value\n   print sun.xmu;","metadata":{"name":"xmu","path":"Body.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.radius","title":"Body.radius","text":"Field: Body.radius - body radius in km\nSyntax:\n  <Body>.radius -> Number\nExample:\n# Read the radius field from a Body value\n   print sun.radius;","metadata":{"name":"radius","path":"Body.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.mass","title":"Body.mass","text":"Field: Body.mass - body mass in kg\nSyntax:\n  <Body>.mass -> Number\nExample:\n# Read the mass field from a Body value\n   print sun.mass;","metadata":{"name":"mass","path":"Body.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.H","title":"Body.H","text":"Field: Body.H - reference absolute magnitude parameter\nSyntax:\n  <Body>.H -> Number\nExample:\n# Read the H field from a Body value\n   print sun.H;","metadata":{"name":"H","path":"Body.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.n","title":"Body.n","text":"Field: Body.n - reference illumination exponent\nSyntax:\n  <Body>.n -> Number\nExample:\n# Read the n field from a Body value\n   print sun.n;","metadata":{"name":"n","path":"Body.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.k","title":"Body.k","text":"Field: Body.k - reference G Muller constant\nSyntax:\n  <Body>.k -> Number\nExample:\n# Read the k field from a Body value\n   print sun.k;","metadata":{"name":"k","path":"Body.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Body.known","title":"Body.known","text":"Field: Body.known - whether the body name matched the built-in table\nSyntax:\n  <Body>.known -> Bool\nExample:\n# Read the known field from a Body value\n   print sun.known;","metadata":{"name":"known","path":"Body.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.rotational_axis","title":"Body.rotational_axis","text":"Method: Body.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  <Body>.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use Body.rotational_axis on a Body value\n   let value = sun;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"Body.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.rotational_axis_ra","title":"Body.rotational_axis_ra","text":"Method: Body.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  <Body>.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use Body.rotational_axis_ra on a Body value\n   let value = sun;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"Body.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.rotational_axis_dec","title":"Body.rotational_axis_dec","text":"Method: Body.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  <Body>.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use Body.rotational_axis_dec on a Body value\n   let value = sun;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"Body.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.state","title":"Body.state","text":"Method: Body.state - returns the orbital state for this body at a time\nSyntax:\n  <Body>.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use Body.state on a Body value\n   let value = sun;\n   print value.state(time());","metadata":{"name":"state","path":"Body.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.rise","title":"Body.rise","text":"Method: Body.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  <Body>.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find rise events for a body from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print sun.rise(obs, span).first();","metadata":{"name":"rise","path":"Body.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.set","title":"Body.set","text":"Method: Body.set - returns sunset or moonset events for an observer\nSyntax:\n  <Body>.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find set events for a body from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print sun.set(obs, span).first();","metadata":{"name":"set","path":"Body.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.conjunction","title":"Body.conjunction","text":"Method: Body.conjunction - returns conjunction events for this body\nSyntax:\n  <Body>.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find conjunction events for an explicit body and time range\n   let span = range(time(2026,1,1,0,0,0), time(2026,3,1,0,0,0), 1);\n   print moon.conjunction(span).first();","metadata":{"name":"conjunction","path":"Body.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.inferior_conjunction","title":"Body.inferior_conjunction","text":"Method: Body.inferior_conjunction - returns inferior conjunction events for this body\nSyntax:\n  <Body>.inferior_conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find inferior conjunction events for an inner planet\n   let span = range(time(2024,1,1,0,0,0), time(2026,1,1,0,0,0), 5);\n   print mercury.inferior_conjunction(span).first();","metadata":{"name":"inferior_conjunction","path":"Body.inferior_conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.superior_conjunction","title":"Body.superior_conjunction","text":"Method: Body.superior_conjunction - returns superior conjunction events for this body\nSyntax:\n  <Body>.superior_conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find superior conjunction events for an inner planet\n   let span = range(time(2024,1,1,0,0,0), time(2026,1,1,0,0,0), 5);\n   print mercury.superior_conjunction(span).first();","metadata":{"name":"superior_conjunction","path":"Body.superior_conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.opposition","title":"Body.opposition","text":"Method: Body.opposition - returns opposition events for this body\nSyntax:\n  <Body>.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find opposition events for an explicit body and time range\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print mars.opposition(span).first();","metadata":{"name":"opposition","path":"Body.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.eastern_quadrature","title":"Body.eastern_quadrature","text":"Method: Body.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  <Body>.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find eastern quadrature events for an outer planet\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print mars.eastern_quadrature(span).first();","metadata":{"name":"eastern_quadrature","path":"Body.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.western_quadrature","title":"Body.western_quadrature","text":"Method: Body.western_quadrature - returns western quadrature events for this body\nSyntax:\n  <Body>.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find western quadrature events for an outer planet\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print mars.western_quadrature(span).first();","metadata":{"name":"western_quadrature","path":"Body.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.quadrature","title":"Body.quadrature","text":"Method: Body.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  <Body>.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find quadrature events for an explicit body and time range\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print mars.quadrature(span).first();","metadata":{"name":"quadrature","path":"Body.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.greatest_eastern_elongation","title":"Body.greatest_eastern_elongation","text":"Method: Body.greatest_eastern_elongation - returns greatest eastern elongation events for this body\nSyntax:\n  <Body>.greatest_eastern_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find greatest eastern elongation events for an inner planet\n   let span = range(time(2024,1,1,0,0,0), time(2026,1,1,0,0,0), 5);\n   print venus.greatest_eastern_elongation(span).first();","metadata":{"name":"greatest_eastern_elongation","path":"Body.greatest_eastern_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.greatest_western_elongation","title":"Body.greatest_western_elongation","text":"Method: Body.greatest_western_elongation - returns greatest western elongation events for this body\nSyntax:\n  <Body>.greatest_western_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find greatest western elongation events for an inner planet\n   let span = range(time(2024,1,1,0,0,0), time(2026,1,1,0,0,0), 5);\n   print venus.greatest_western_elongation(span).first();","metadata":{"name":"greatest_western_elongation","path":"Body.greatest_western_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.greatest_elongation","title":"Body.greatest_elongation","text":"Method: Body.greatest_elongation - returns greatest eastern and western elongation events for this body\nSyntax:\n  <Body>.greatest_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find greatest elongation events for an inner planet\n   let span = range(time(2024,1,1,0,0,0), time(2026,1,1,0,0,0), 5);\n   print venus.greatest_elongation(span).first();","metadata":{"name":"greatest_elongation","path":"Body.greatest_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.periapsis","title":"Body.periapsis","text":"Method: Body.periapsis - returns periapsis events for this body\nSyntax:\n  <Body>.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for an explicit body and time range\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print earth.periapsis(span).first();","metadata":{"name":"periapsis","path":"Body.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.apoapsis","title":"Body.apoapsis","text":"Method: Body.apoapsis - returns apoapsis events for this body\nSyntax:\n  <Body>.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for an explicit body and time range\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print earth.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"Body.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.transit","title":"Body.transit","text":"Method: Body.transit - returns solar transit events for Mercury or Venus\nSyntax:\n  <Body>.transit(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find solar transit events for Mercury or Venus\n   let span = range(time(2032,11,1,0,0,0), time(2032,11,20,0,0,0), 1);\n   print mercury.transit(span).first();","metadata":{"name":"transit","path":"Body.transit","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.children","title":"Body.children","text":"Method: Body.children - lists child fields and callable members available on this value\nSyntax:\n  <Body>.children() -> List\nExample:\n# Use Body.children on a Body value\n   let value = sun;\n   print value.children();","metadata":{"name":"children","path":"Body.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.fields","title":"Body.fields","text":"Method: Body.fields - returns an object containing the value's plain fields\nSyntax:\n  <Body>.fields() -> Object\nExample:\n# Use Body.fields on a Body value\n   let value = sun;\n   print value.fields();","metadata":{"name":"fields","path":"Body.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Body.functions","title":"Body.functions","text":"Method: Body.functions - lists callable members available on this value\nSyntax:\n  <Body>.functions() -> List\nExample:\n# Use Body.functions on a Body value\n   let value = sun;\n   print value.functions();","metadata":{"name":"functions","path":"Body.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Bodies","title":"Bodies","text":"Type: Bodies - registry of known solar-system bodies and massive small-body perturbers\nChildren: count, small_count, find(), planets(), solarSystem(), smallBodies(), longSolarSystem(), all(), categories(), get(), names(), has(), search(), states(), smallBodyStates(), solarSystemStates(), children(), fields(), functions()\nExample:\n# Build a Bodies value and print the result\n   let value = bodies;\n   print value;","metadata":{"name":"Bodies","path":"Bodies","kind":"type","aliases":[],"resources":[],"children":["field:Bodies.count","field:Bodies.small_count","member:Bodies.find","member:Bodies.planets","member:Bodies.solarSystem","member:Bodies.smallBodies","member:Bodies.longSolarSystem","member:Bodies.all","member:Bodies.categories","member:Bodies.get","member:Bodies.names","member:Bodies.has","member:Bodies.search","member:Bodies.states","member:Bodies.smallBodyStates","member:Bodies.solarSystemStates","member:Bodies.children","member:Bodies.fields","member:Bodies.functions"]}},{"id":"field:Bodies.count","title":"Bodies.count","text":"Field: Bodies.count - number of currently built-in registry body names\nSyntax:\n  <Bodies>.count -> Number\nExample:\n# Read the count field from a Bodies value\n   print bodies.count;","metadata":{"name":"count","path":"Bodies.count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Bodies.small_count","title":"Bodies.small_count","text":"Field: Bodies.small_count - number of currently built-in massive small-body perturbers\nSyntax:\n  <Bodies>.small_count -> Number\nExample:\n# Read the small_count field from a Bodies value\n   print bodies.small_count;","metadata":{"name":"small_count","path":"Bodies.small_count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.find","title":"Bodies.find","text":"Method: Bodies.find - finds a body by name, designation, alias, or SPK-style id\nSyntax:\n  <Bodies>.find(name: Text) -> Body|Unavailable\nArguments:\n  name: Text - body name, designation, alias, or SPK-style id\nExample:\n# Use Bodies.find on a Bodies value\n   let value = bodies;\n   print value.find(\"value\");","metadata":{"name":"find","path":"Bodies.find","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.planets","title":"Bodies.planets","text":"Method: Bodies.planets - returns Mercury through Neptune\nSyntax:\n  <Bodies>.planets() -> [Body]\nExample:\n# Use Bodies.planets on a Bodies value\n   let value = bodies;\n   print value.planets();","metadata":{"name":"planets","path":"Bodies.planets","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.solarSystem","title":"Bodies.solarSystem","text":"Method: Bodies.solarSystem - returns Sun, planets, Moon, and Pluto\nSyntax:\n  <Bodies>.solarSystem() -> [Body]\nExample:\n# Use Bodies.solarSystem on a Bodies value\n   let value = bodies;\n   print value.solarSystem();","metadata":{"name":"solarSystem","path":"Bodies.solarSystem","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.smallBodies","title":"Bodies.smallBodies","text":"Method: Bodies.smallBodies - returns configured massive small-body perturbers, optionally filtered by minimum mass\nSyntax:\n  <Bodies>.smallBodies() -> [Body]\n  <Bodies>.smallBodies(min_mass: Number) -> [Body]\nArguments:\n  min_mass: Number [optional] - minimum small-body mass in kg\nExample:\n# Use Bodies.smallBodies on a Bodies value\n   let value = bodies;\n   print value.smallBodies();","metadata":{"name":"smallBodies","path":"Bodies.smallBodies","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.longSolarSystem","title":"Bodies.longSolarSystem","text":"Method: Bodies.longSolarSystem - returns Sun, planets, Moon, Pluto, and massive small-body perturbers, optionally filtered by minimum mass\nSyntax:\n  <Bodies>.longSolarSystem() -> [Body]\n  <Bodies>.longSolarSystem(min_mass: Number) -> [Body]\nArguments:\n  min_mass: Number [optional] - minimum small-body mass in kg\nExample:\n# Use Bodies.longSolarSystem on a Bodies value\n   let value = bodies;\n   print value.longSolarSystem();","metadata":{"name":"longSolarSystem","path":"Bodies.longSolarSystem","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.all","title":"Bodies.all","text":"Method: Bodies.all - returns all registry bodies currently available through built-ins and loaded body stores\nSyntax:\n  <Bodies>.all() -> [Body]\nExample:\n# Use Bodies.all on a Bodies value\n   let value = bodies;\n   print value.all();","metadata":{"name":"all","path":"Bodies.all","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.categories","title":"Bodies.categories","text":"Method: Bodies.categories - lists available body categories\nSyntax:\n  <Bodies>.categories() -> [Text]\nExample:\n# Use Bodies.categories on a Bodies value\n   let value = bodies;\n   print value.categories();","metadata":{"name":"categories","path":"Bodies.categories","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.get","title":"Bodies.get","text":"Method: Bodies.get - returns bodies in a named category\nSyntax:\n  <Bodies>.get(category: Text) -> [Body]\nArguments:\n  category: Text - category name such as planets, asteroids, moons, kbos, or comets\nExample:\n# Use Bodies.get on a Bodies value\n   let value = bodies;\n   print value.get(\"value\");","metadata":{"name":"get","path":"Bodies.get","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.names","title":"Bodies.names","text":"Method: Bodies.names - lists known registry names\nSyntax:\n  <Bodies>.names() -> [Text]\nExample:\n# Use Bodies.names on a Bodies value\n   let value = bodies;\n   print value.names();","metadata":{"name":"names","path":"Bodies.names","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.has","title":"Bodies.has","text":"Method: Bodies.has - reports whether the body registry can resolve a name\nSyntax:\n  <Bodies>.has(name: Text) -> Bool\nArguments:\n  name: Text - body name, designation, alias, or SPK-style id\nExample:\n# Use Bodies.has on a Bodies value\n   let value = bodies;\n   print value.has(\"value\");","metadata":{"name":"has","path":"Bodies.has","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.search","title":"Bodies.search","text":"Method: Bodies.search - searches known registry body names\nSyntax:\n  <Bodies>.search(query: Text) -> [Body]\nArguments:\n  query: Text - case-insensitive body-name fragment\nExample:\n# Use Bodies.search on a Bodies value\n   let value = bodies;\n   print value.search(\"value\");","metadata":{"name":"search","path":"Bodies.search","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.states","title":"Bodies.states","text":"Method: Bodies.states - returns states for the long Solar System body collection at a time, optionally filtering small bodies by minimum mass\nSyntax:\n  <Bodies>.states(time: Time) -> [State]\n  <Bodies>.states(time: Time, min_mass: Number) -> [State]\nArguments:\n  time: Time - epoch at which to extract each body state\n  min_mass: Number [optional] - minimum small-body mass in kg\nExample:\n# Use Bodies.states on a Bodies value\n   let value = bodies;\n   print value.states(time());","metadata":{"name":"states","path":"Bodies.states","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.smallBodyStates","title":"Bodies.smallBodyStates","text":"Method: Bodies.smallBodyStates - returns states for configured massive small-body perturbers at a time, optionally filtered by minimum mass\nSyntax:\n  <Bodies>.smallBodyStates(time: Time) -> [State]\n  <Bodies>.smallBodyStates(time: Time, min_mass: Number) -> [State]\nArguments:\n  time: Time - epoch at which to extract each body state\n  min_mass: Number [optional] - minimum small-body mass in kg\nExample:\n# Use Bodies.smallBodyStates on a Bodies value\n   let value = bodies;\n   print value.smallBodyStates(time());","metadata":{"name":"smallBodyStates","path":"Bodies.smallBodyStates","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.solarSystemStates","title":"Bodies.solarSystemStates","text":"Method: Bodies.solarSystemStates - returns states for Sun, planets, Moon, and Pluto at a time\nSyntax:\n  <Bodies>.solarSystemStates(time: Time) -> [State]\nArguments:\n  time: Time - epoch at which to extract each body state\nExample:\n# Use Bodies.solarSystemStates on a Bodies value\n   let value = bodies;\n   print value.solarSystemStates(time());","metadata":{"name":"solarSystemStates","path":"Bodies.solarSystemStates","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.children","title":"Bodies.children","text":"Method: Bodies.children - lists child fields and callable members available on this value\nSyntax:\n  <Bodies>.children() -> List\nExample:\n# Use Bodies.children on a Bodies value\n   let value = bodies;\n   print value.children();","metadata":{"name":"children","path":"Bodies.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.fields","title":"Bodies.fields","text":"Method: Bodies.fields - returns an object containing the value's plain fields\nSyntax:\n  <Bodies>.fields() -> Object\nExample:\n# Use Bodies.fields on a Bodies value\n   let value = bodies;\n   print value.fields();","metadata":{"name":"fields","path":"Bodies.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Bodies.functions","title":"Bodies.functions","text":"Method: Bodies.functions - lists callable members available on this value\nSyntax:\n  <Bodies>.functions() -> List\nExample:\n# Use Bodies.functions on a Bodies value\n   let value = bodies;\n   print value.functions();","metadata":{"name":"functions","path":"Bodies.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Elements","title":"Elements","text":"Type: Elements - osculating orbital elements using periapsis distance as the primary distance\nSyntax:\n  elements(q: Number, e: Number, i: Number, node: Number, argument: Number, anomaly: Number, unit: Unit) -> Elements\nArguments:\n  q: Number - periapsis distance in kilometers\n  e: Number - eccentricity\n  i: Number - inclination in degrees by default\n  node: Number - longitude of ascending node in degrees by default\n  argument: Number - argument of periapsis in degrees by default\n  anomaly: Number - true anomaly in degrees by default\n  unit: Unit [optional] - optional angle unit, such as rad\nChildren: q, e, i, node, argument, anomaly, semimajor_axis, semi_latus_rectum, children(), fields(), functions()\nExample:\n# Derive osculating elements from an Earth state around the Sun\n   let t = time(2026,1,1,0,0,0);\n   let earth_state = state(earth, t, barycentric, icrf, no_correction);\n   let sun_state = state(sun, t, barycentric, icrf, no_correction);\n   let orbit = earth_state.orbit_around(sun_state);\n   let el = orbit.elements();\n   print el.q, el.e, el.i;","metadata":{"name":"Elements","path":"Elements","kind":"type","aliases":[],"resources":[],"children":["field:Elements.q","field:Elements.e","field:Elements.i","field:Elements.node","field:Elements.argument","field:Elements.anomaly","field:Elements.semimajor_axis","field:Elements.semi_latus_rectum","member:Elements.children","member:Elements.fields","member:Elements.functions"]}},{"id":"field:Elements.q","title":"Elements.q","text":"Field: Elements.q - periapsis distance in kilometers\nSyntax:\n  <Elements>.q -> Number\nExample:\n# Read the q field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).q;","metadata":{"name":"q","path":"Elements.q","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.e","title":"Elements.e","text":"Field: Elements.e - eccentricity\nSyntax:\n  <Elements>.e -> Number\nExample:\n# Read the e field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).e;","metadata":{"name":"e","path":"Elements.e","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.i","title":"Elements.i","text":"Field: Elements.i - inclination in degrees\nSyntax:\n  <Elements>.i -> Number\nExample:\n# Read the i field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).i;","metadata":{"name":"i","path":"Elements.i","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.node","title":"Elements.node","text":"Field: Elements.node - longitude of ascending node in degrees\nSyntax:\n  <Elements>.node -> Number\nExample:\n# Read the node field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).node;","metadata":{"name":"node","path":"Elements.node","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.argument","title":"Elements.argument","text":"Field: Elements.argument - argument of periapsis in degrees\nSyntax:\n  <Elements>.argument -> Number\nExample:\n# Read the argument field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).argument;","metadata":{"name":"argument","path":"Elements.argument","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.anomaly","title":"Elements.anomaly","text":"Field: Elements.anomaly - true anomaly in degrees\nSyntax:\n  <Elements>.anomaly -> Number\nExample:\n# Read the anomaly field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).anomaly;","metadata":{"name":"anomaly","path":"Elements.anomaly","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.semimajor_axis","title":"Elements.semimajor_axis","text":"Field: Elements.semimajor_axis - derived semimajor axis in kilometers when available\nSyntax:\n  <Elements>.semimajor_axis -> Number\nExample:\n# Read the semimajor_axis field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).semimajor_axis;","metadata":{"name":"semimajor_axis","path":"Elements.semimajor_axis","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Elements.semi_latus_rectum","title":"Elements.semi_latus_rectum","text":"Field: Elements.semi_latus_rectum - derived semi-latus rectum in kilometers when available\nSyntax:\n  <Elements>.semi_latus_rectum -> Number\nExample:\n# Read the semi_latus_rectum field from a Elements value\n   print elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0).semi_latus_rectum;","metadata":{"name":"semi_latus_rectum","path":"Elements.semi_latus_rectum","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Elements.children","title":"Elements.children","text":"Method: Elements.children - lists child fields and callable members available on this value\nSyntax:\n  <Elements>.children() -> List\nExample:\n# Use Elements.children on a Elements value\n   let value = elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0);\n   print value.children();","metadata":{"name":"children","path":"Elements.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Elements.fields","title":"Elements.fields","text":"Method: Elements.fields - returns an object containing the value's plain fields\nSyntax:\n  <Elements>.fields() -> Object\nExample:\n# Use Elements.fields on a Elements value\n   let value = elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0);\n   print value.fields();","metadata":{"name":"fields","path":"Elements.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Elements.functions","title":"Elements.functions","text":"Method: Elements.functions - lists callable members available on this value\nSyntax:\n  <Elements>.functions() -> List\nExample:\n# Use Elements.functions on a Elements value\n   let value = elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0);\n   print value.functions();","metadata":{"name":"functions","path":"Elements.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Orbit","title":"Orbit","text":"Type: Orbit - two-body orbit backed by osculating elements or a relative state vector\nSyntax:\n  orbit(elements: Elements, central: Body, time: Time, axis: Axis) -> Orbit\nArguments:\n  elements: Elements - osculating elements at the epoch\n  central: Body - central gravitating body\n  time: Time - epoch time\n  axis: Axis [optional] - non-rotating element axis, icrf by default; tod is also accepted\nChildren: body, central, time, epoch, axis, elements, position, velocity, conic, position(), velocity(), at(), elements(), predict(), children(), fields(), functions()\nExample:\n# Propagate an elliptic orbit forward and print the new radius\n   let epoch = time(2026,1,1,0,0,0);\n   let el = elements(q: 7000, e: 0.1, i: 30, node: 40, argument: 50, anomaly: 0, unit: deg);\n   let orbit0 = orbit(el, earth, epoch);\n   let orbit1 = orbit0.at(epoch.add_hours(6));\n   print orbit0.position().length(), orbit1.position().length();","metadata":{"name":"Orbit","path":"Orbit","kind":"type","aliases":[],"resources":[],"children":["field:Orbit.body","field:Orbit.central","field:Orbit.time","field:Orbit.epoch","field:Orbit.axis","field:Orbit.elements","field:Orbit.position","field:Orbit.velocity","field:Orbit.conic","member:Orbit.position","member:Orbit.velocity","member:Orbit.at","member:Orbit.elements","member:Orbit.predict","member:Orbit.children","member:Orbit.fields","member:Orbit.functions"]}},{"id":"field:Orbit.body","title":"Orbit.body","text":"Field: Orbit.body - orbiting body when the orbit came from ephemeris states\nSyntax:\n  <Orbit>.body -> Body\nExample:\n# Read the body field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).body;","metadata":{"name":"body","path":"Orbit.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.central","title":"Orbit.central","text":"Field: Orbit.central - central gravitating body\nSyntax:\n  <Orbit>.central -> Body\nExample:\n# Read the central field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).central;","metadata":{"name":"central","path":"Orbit.central","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.time","title":"Orbit.time","text":"Field: Orbit.time - epoch time\nSyntax:\n  <Orbit>.time -> Time\nExample:\n# Read the time field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).time;","metadata":{"name":"time","path":"Orbit.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.epoch","title":"Orbit.epoch","text":"Field: Orbit.epoch - epoch time\nSyntax:\n  <Orbit>.epoch -> Time\nExample:\n# Read the epoch field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).epoch;","metadata":{"name":"epoch","path":"Orbit.epoch","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.axis","title":"Orbit.axis","text":"Field: Orbit.axis - axis used for the osculating elements and relative state vectors\nSyntax:\n  <Orbit>.axis -> Axis\nExample:\n# Read the axis field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).axis;","metadata":{"name":"axis","path":"Orbit.axis","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.elements","title":"Orbit.elements","text":"Field: Orbit.elements - osculating elements at the orbit epoch\nSyntax:\n  <Orbit>.elements -> Elements\nExample:\n# Read the elements field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).elements;","metadata":{"name":"elements","path":"Orbit.elements","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.position","title":"Orbit.position","text":"Field: Orbit.position - relative position vector at the orbit epoch\nSyntax:\n  <Orbit>.position -> Vector\nExample:\n# Read the position field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).position;","metadata":{"name":"position","path":"Orbit.position","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.velocity","title":"Orbit.velocity","text":"Field: Orbit.velocity - relative velocity vector at the orbit epoch\nSyntax:\n  <Orbit>.velocity -> Vector\nExample:\n# Read the velocity field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).velocity;","metadata":{"name":"velocity","path":"Orbit.velocity","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Orbit.conic","title":"Orbit.conic","text":"Field: Orbit.conic - elliptic, parabolic, or hyperbolic conic class\nSyntax:\n  <Orbit>.conic -> Text\nExample:\n# Read the conic field from a Orbit value\n   print orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time()).conic;","metadata":{"name":"conic","path":"Orbit.conic","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.position","title":"Orbit.position","text":"Method: Orbit.position - returns orbit-relative position\nSyntax:\n  <Orbit>.position(time: Time) -> Vector\nArguments:\n  time: Time [optional] - time to propagate to; defaults to the orbit epoch\nExample:\n# Use Orbit.position on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.position();","metadata":{"name":"position","path":"Orbit.position","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.velocity","title":"Orbit.velocity","text":"Method: Orbit.velocity - returns orbit-relative velocity\nSyntax:\n  <Orbit>.velocity(time: Time) -> Vector\nArguments:\n  time: Time [optional] - time to propagate to; defaults to the orbit epoch\nExample:\n# Use Orbit.velocity on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.velocity();","metadata":{"name":"velocity","path":"Orbit.velocity","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.at","title":"Orbit.at","text":"Method: Orbit.at - propagates the orbit to a new time\nSyntax:\n  <Orbit>.at(time: Time) -> Orbit\nArguments:\n  time: Time - time to propagate to\nExample:\n# Use Orbit.at on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.at(time());","metadata":{"name":"at","path":"Orbit.at","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.elements","title":"Orbit.elements","text":"Method: Orbit.elements - returns osculating elements\nSyntax:\n  <Orbit>.elements() -> Elements\nExample:\n# Use Orbit.elements on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.elements();","metadata":{"name":"elements","path":"Orbit.elements","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.predict","title":"Orbit.predict","text":"Method: Orbit.predict - predicts a sky direction from this orbit\nSyntax:\n  <Orbit>.predict(time: Time, observer: Observer) -> Direction\nArguments:\n  time: Time - prediction time\n  observer: Observer - observing site\nExample:\n# Use Orbit.predict on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.predict(time(), location(latitude: 60.0, longitude: 270.0).observer(height: 1.5));","metadata":{"name":"predict","path":"Orbit.predict","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.children","title":"Orbit.children","text":"Method: Orbit.children - lists child fields and callable members available on this value\nSyntax:\n  <Orbit>.children() -> List\nExample:\n# Use Orbit.children on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.children();","metadata":{"name":"children","path":"Orbit.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.fields","title":"Orbit.fields","text":"Method: Orbit.fields - returns an object containing the value's plain fields\nSyntax:\n  <Orbit>.fields() -> Object\nExample:\n# Use Orbit.fields on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.fields();","metadata":{"name":"fields","path":"Orbit.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Orbit.functions","title":"Orbit.functions","text":"Method: Orbit.functions - lists callable members available on this value\nSyntax:\n  <Orbit>.functions() -> List\nExample:\n# Use Orbit.functions on a Orbit value\n   let value = orbit(elements(7000.0, 0.01, 5.0, 40.0, 80.0, 120.0), earth, time());\n   print value.functions();","metadata":{"name":"functions","path":"Orbit.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:System","title":"System","text":"Type: System - immutable orbit propagation system with shared snapshot cache\nSyntax:\n  system(epoch: Time, bodies: Body|State|Orbit|Text|List, integrator: Text) -> System\nArguments:\n  epoch: Time - system epoch\n  bodies: Body|State|Orbit|Text|List - system entries: explicit states, body-backed orbits, or ephemeris bodies\n  integrator: Text [optional] - optional integrator: \"ias15\", \"dp5\", or \"rk4\"; \"dp5\" is slow and mainly for debugging/reference comparisons\nChildren: time, bodies, states, sources, source_counts, integrator, method, ephemeris_coverage, diagnostics, ephemeris_residuals, positions, velocities, integrated, ephemeris, cache_size, at(), cache(), clear_cache(), state(), position(), velocity(), distance(), children(), fields(), functions()\nExample:\n# Build a System value and print the result\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value;","metadata":{"name":"System","path":"System","kind":"type","aliases":[],"resources":[],"children":["field:System.time","field:System.bodies","field:System.states","field:System.sources","field:System.source_counts","field:System.integrator","field:System.method","field:System.ephemeris_coverage","field:System.diagnostics","field:System.ephemeris_residuals","field:System.positions","field:System.velocities","field:System.integrated","field:System.ephemeris","field:System.cache_size","member:System.at","member:System.cache","member:System.clear_cache","member:System.state","member:System.position","member:System.velocity","member:System.distance","member:System.children","member:System.fields","member:System.functions"]}},{"id":"field:System.time","title":"System.time","text":"Field: System.time - snapshot time\nSyntax:\n  <System>.time -> Time\nExample:\n# Read the time field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).time;","metadata":{"name":"time","path":"System.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.bodies","title":"System.bodies","text":"Field: System.bodies - bodies in the system\nSyntax:\n  <System>.bodies -> List\nExample:\n# Read the bodies field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).bodies;","metadata":{"name":"bodies","path":"System.bodies","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.states","title":"System.states","text":"Field: System.states - states at the snapshot time\nSyntax:\n  <System>.states -> List\nExample:\n# Read the states field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).states;","metadata":{"name":"states","path":"System.states","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.sources","title":"System.sources","text":"Field: System.sources - per-body source names\nSyntax:\n  <System>.sources -> Object\nExample:\n# Read the sources field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).sources;","metadata":{"name":"sources","path":"System.sources","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.source_counts","title":"System.source_counts","text":"Field: System.source_counts - counts of integrated and ephemeris-derived bodies\nSyntax:\n  <System>.source_counts -> Object\nExample:\n# Read the source_counts field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).source_counts;","metadata":{"name":"source_counts","path":"System.source_counts","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.integrator","title":"System.integrator","text":"Field: System.integrator - numerical integrator name; dp5 is a slow reference/debug method\nSyntax:\n  <System>.integrator -> Text\nExample:\n# Read the integrator field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).integrator;","metadata":{"name":"integrator","path":"System.integrator","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.method","title":"System.method","text":"Field: System.method - alias for integrator\nSyntax:\n  <System>.method -> Text\nExample:\n# Read the method field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).method;","metadata":{"name":"method","path":"System.method","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.ephemeris_coverage","title":"System.ephemeris_coverage","text":"Field: System.ephemeris_coverage - whether this snapshot time is covered by the loaded ephemeris\nSyntax:\n  <System>.ephemeris_coverage -> Text\nExample:\n# Read the ephemeris_coverage field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).ephemeris_coverage;","metadata":{"name":"ephemeris_coverage","path":"System.ephemeris_coverage","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.diagnostics","title":"System.diagnostics","text":"Field: System.diagnostics - last propagation diagnostics: steps, rejections, and derivative evaluations\nSyntax:\n  <System>.diagnostics -> Object\nExample:\n# Read the diagnostics field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).diagnostics;","metadata":{"name":"diagnostics","path":"System.diagnostics","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.ephemeris_residuals","title":"System.ephemeris_residuals","text":"Field: System.ephemeris_residuals - per-body position residuals in kilometers against ephemeris at covered times\nSyntax:\n  <System>.ephemeris_residuals -> Object\nExample:\n# Read the ephemeris_residuals field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).ephemeris_residuals;","metadata":{"name":"ephemeris_residuals","path":"System.ephemeris_residuals","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.positions","title":"System.positions","text":"Field: System.positions - per-body barycentric ICRF positions\nSyntax:\n  <System>.positions -> Object\nExample:\n# Read the positions field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).positions;","metadata":{"name":"positions","path":"System.positions","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.velocities","title":"System.velocities","text":"Field: System.velocities - per-body barycentric ICRF velocities\nSyntax:\n  <System>.velocities -> Object\nExample:\n# Read the velocities field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).velocities;","metadata":{"name":"velocities","path":"System.velocities","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.integrated","title":"System.integrated","text":"Field: System.integrated - names of currently integrated system bodies\nSyntax:\n  <System>.integrated -> List\nExample:\n# Read the integrated field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).integrated;","metadata":{"name":"integrated","path":"System.integrated","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.ephemeris","title":"System.ephemeris","text":"Field: System.ephemeris - names of ephemeris-derived system bodies\nSyntax:\n  <System>.ephemeris -> List\nExample:\n# Read the ephemeris field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).ephemeris;","metadata":{"name":"ephemeris","path":"System.ephemeris","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:System.cache_size","title":"System.cache_size","text":"Field: System.cache_size - number of cached snapshot checkpoints\nSyntax:\n  <System>.cache_size -> Number\nExample:\n# Read the cache_size field from a System value\n   print system(time(2026, 7, 4), earth, moon, sun).cache_size;","metadata":{"name":"cache_size","path":"System.cache_size","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:System.at","title":"System.at","text":"Method: System.at - returns a system snapshot at a time\nSyntax:\n  <System>.at(time: Time) -> System\nArguments:\n  time: Time - snapshot time\nExample:\n# Use System.at on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.at(time());","metadata":{"name":"at","path":"System.at","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.cache","title":"System.cache","text":"Method: System.cache - returns a system snapshot and marks it as a cache checkpoint\nSyntax:\n  <System>.cache(time: Time) -> System\nArguments:\n  time: Time - checkpoint time\nExample:\n# Use System.cache on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.cache(time());","metadata":{"name":"cache","path":"System.cache","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.clear_cache","title":"System.clear_cache","text":"Method: System.clear_cache - clears cached system checkpoints without changing the system definition\nSyntax:\n  <System>.clear_cache() -> System\nExample:\n# Use System.clear_cache on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.clear_cache();","metadata":{"name":"clear_cache","path":"System.clear_cache","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.state","title":"System.state","text":"Method: System.state - returns states from this system snapshot\nSyntax:\n  <System>.state() -> List\n  <System>.state(body: Body|Text) -> State\nArguments:\n  body: Body|Text [optional] - body or system object name\nExample:\n# Use System.state on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.state();","metadata":{"name":"state","path":"System.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.position","title":"System.position","text":"Method: System.position - returns a named body's snapshot position\nSyntax:\n  <System>.position(body: Body|Text) -> Vector\nArguments:\n  body: Body|Text - body or system object name\nExample:\n# Use System.position on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.position(sun);","metadata":{"name":"position","path":"System.position","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.velocity","title":"System.velocity","text":"Method: System.velocity - returns a named body's snapshot velocity\nSyntax:\n  <System>.velocity(body: Body|Text) -> Vector\nArguments:\n  body: Body|Text - body or system object name\nExample:\n# Use System.velocity on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.velocity(sun);","metadata":{"name":"velocity","path":"System.velocity","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.distance","title":"System.distance","text":"Method: System.distance - returns the distance between two system bodies\nSyntax:\n  <System>.distance(a: Body|Text, b: Body|Text) -> Number\nArguments:\n  a: Body|Text - first body or system object name\n  b: Body|Text - second body or system object name\nExample:\n# Use System.distance on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.distance(sun, sun);","metadata":{"name":"distance","path":"System.distance","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.children","title":"System.children","text":"Method: System.children - lists child fields and callable members available on this value\nSyntax:\n  <System>.children() -> List\nExample:\n# Use System.children on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.children();","metadata":{"name":"children","path":"System.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.fields","title":"System.fields","text":"Method: System.fields - returns an object containing the value's plain fields\nSyntax:\n  <System>.fields() -> Object\nExample:\n# Use System.fields on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.fields();","metadata":{"name":"fields","path":"System.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:System.functions","title":"System.functions","text":"Method: System.functions - lists callable members available on this value\nSyntax:\n  <System>.functions() -> List\nExample:\n# Use System.functions on a System value\n   let value = system(time(2026, 7, 4), earth, moon, sun);\n   print value.functions();","metadata":{"name":"functions","path":"System.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Observation","title":"Observation","text":"Type: Observation - measured sky direction or target elevation observation\nSyntax:\n  observation(observer: Observer, time: Time, direction: Direction|State, frame: Frame) -> Observation\n  observation(target: Body|Star, time: Time, elevation: Number) -> Observation\nArguments:\n  observer: Observer [optional] - observing site\n  time: Time - observation time\n  direction: Direction|State [optional] - measured line of sight, or a state whose position gives the line of sight\n  frame: Frame [optional] - coordinate frame for RA/Dec shorthand or state conversion; defaults to icrf\n  target: Body|Star [optional] - observed planet, Moon, Sun, or star\n  elevation: Number [optional] - measured elevation above the horizon in degrees\nChildren: observer, time, direction, target, elevation, uncertainty, weight, label, icrf(), topographic(), with_uncertainty(), with_weight(), children(), fields(), functions()\nExample:\n# Build a Observation value and print the result\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value;","metadata":{"name":"Observation","path":"Observation","kind":"type","aliases":[],"resources":[],"children":["field:Observation.observer","field:Observation.time","field:Observation.direction","field:Observation.target","field:Observation.elevation","field:Observation.uncertainty","field:Observation.weight","field:Observation.label","member:Observation.icrf","member:Observation.topographic","member:Observation.with_uncertainty","member:Observation.with_weight","member:Observation.children","member:Observation.fields","member:Observation.functions"]}},{"id":"field:Observation.observer","title":"Observation.observer","text":"Field: Observation.observer - observing site, when this is a direction observation\nSyntax:\n  <Observation>.observer -> Observer?\nExample:\n# Read the observer field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).observer;","metadata":{"name":"observer","path":"Observation.observer","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.time","title":"Observation.time","text":"Field: Observation.time - observation time\nSyntax:\n  <Observation>.time -> Time\nExample:\n# Read the time field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).time;","metadata":{"name":"time","path":"Observation.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.direction","title":"Observation.direction","text":"Field: Observation.direction - measured direction, when this is a direction observation\nSyntax:\n  <Observation>.direction -> Direction?\nExample:\n# Read the direction field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).direction;","metadata":{"name":"direction","path":"Observation.direction","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.target","title":"Observation.target","text":"Field: Observation.target - observed body or star, when this is an elevation observation\nSyntax:\n  <Observation>.target -> Body|Star?\nExample:\n# Read the target field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).target;","metadata":{"name":"target","path":"Observation.target","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.elevation","title":"Observation.elevation","text":"Field: Observation.elevation - measured target elevation in degrees, when this is an elevation observation\nSyntax:\n  <Observation>.elevation -> Number?\nExample:\n# Read the elevation field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).elevation;","metadata":{"name":"elevation","path":"Observation.elevation","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.uncertainty","title":"Observation.uncertainty","text":"Field: Observation.uncertainty - direction uncertainty in arcseconds\nSyntax:\n  <Observation>.uncertainty -> Number?\nExample:\n# Read the uncertainty field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).uncertainty;","metadata":{"name":"uncertainty","path":"Observation.uncertainty","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.weight","title":"Observation.weight","text":"Field: Observation.weight - least-squares weight\nSyntax:\n  <Observation>.weight -> Number?\nExample:\n# Read the weight field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).weight;","metadata":{"name":"weight","path":"Observation.weight","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Observation.label","title":"Observation.label","text":"Field: Observation.label - optional observation label\nSyntax:\n  <Observation>.label -> Text?\nExample:\n# Read the label field from a Observation value\n   print observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4)).label;","metadata":{"name":"label","path":"Observation.label","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.icrf","title":"Observation.icrf","text":"Method: Observation.icrf - converts the observation direction to ICRF\nSyntax:\n  <Observation>.icrf() -> Direction\nExample:\n# Use Observation.icrf on a Observation value\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value.icrf();","metadata":{"name":"icrf","path":"Observation.icrf","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.topographic","title":"Observation.topographic","text":"Method: Observation.topographic - converts the observation direction to topographic axes\nSyntax:\n  <Observation>.topographic() -> Direction\nExample:\n# Read an observation line of sight in local topographic axes\n   let obs = location(latitude: 59.91, longitude: 10.75).observer(height: 0);\n   let dir = direction(topographic, azimuth: 120.0, altitude: 25.0);\n   let value = observation(obs, time(2026,7,3), dir);\n   print value.topographic();","metadata":{"name":"topographic","path":"Observation.topographic","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.with_uncertainty","title":"Observation.with_uncertainty","text":"Method: Observation.with_uncertainty - sets observation uncertainty\nSyntax:\n  <Observation>.with_uncertainty(arcsec: Number) -> Observation\nArguments:\n  arcsec: Number - one-sigma uncertainty in arcseconds\nExample:\n# Use Observation.with_uncertainty on a Observation value\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value.with_uncertainty(42.0);","metadata":{"name":"with_uncertainty","path":"Observation.with_uncertainty","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.with_weight","title":"Observation.with_weight","text":"Method: Observation.with_weight - sets observation weight\nSyntax:\n  <Observation>.with_weight(weight: Number) -> Observation\nArguments:\n  weight: Number - relative observation weight\nExample:\n# Use Observation.with_weight on a Observation value\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value.with_weight(42.0);","metadata":{"name":"with_weight","path":"Observation.with_weight","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.children","title":"Observation.children","text":"Method: Observation.children - lists child fields and callable members available on this value\nSyntax:\n  <Observation>.children() -> List\nExample:\n# Use Observation.children on a Observation value\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value.children();","metadata":{"name":"children","path":"Observation.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.fields","title":"Observation.fields","text":"Method: Observation.fields - returns an object containing the value's plain fields\nSyntax:\n  <Observation>.fields() -> Object\nExample:\n# Use Observation.fields on a Observation value\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value.fields();","metadata":{"name":"fields","path":"Observation.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Observation.functions","title":"Observation.functions","text":"Method: Observation.functions - lists callable members available on this value\nSyntax:\n  <Observation>.functions() -> List\nExample:\n# Use Observation.functions on a Observation value\n   let value = observation(observer(location(59.91,10.75)), time(2026,7,3), direction(ra:120.1, dec:22.4));\n   print value.functions();","metadata":{"name":"functions","path":"Observation.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:OrbitSolution","title":"OrbitSolution","text":"Type: OrbitSolution - orbit determination result with orbit, residuals, and fit quality\nSyntax:\n  orbit_determination(observations: List<Observation>) -> OrbitSolution\nArguments:\n  observations: List<Observation> - three or more observations\nChildren: orbit, elements, observations, residuals, rms, max_residual, method, status, iterations, predict(), residuals(), children(), fields(), functions()\nExample:\n# Build a OrbitSolution value and print the result\n   let value = orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun);\n   print value;","metadata":{"name":"OrbitSolution","path":"OrbitSolution","kind":"type","aliases":[],"resources":[],"children":["field:OrbitSolution.orbit","field:OrbitSolution.elements","field:OrbitSolution.observations","field:OrbitSolution.residuals","field:OrbitSolution.rms","field:OrbitSolution.max_residual","field:OrbitSolution.method","field:OrbitSolution.status","field:OrbitSolution.iterations","member:OrbitSolution.predict","member:OrbitSolution.residuals","member:OrbitSolution.children","member:OrbitSolution.fields","member:OrbitSolution.functions"]}},{"id":"field:OrbitSolution.orbit","title":"OrbitSolution.orbit","text":"Field: OrbitSolution.orbit - determined two-body orbit\nSyntax:\n  <OrbitSolution>.orbit -> Orbit\nExample:\n# Read the orbit field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).orbit;","metadata":{"name":"orbit","path":"OrbitSolution.orbit","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.elements","title":"OrbitSolution.elements","text":"Field: OrbitSolution.elements - osculating elements for the determined orbit\nSyntax:\n  <OrbitSolution>.elements -> Elements\nExample:\n# Read the elements field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).elements;","metadata":{"name":"elements","path":"OrbitSolution.elements","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.observations","title":"OrbitSolution.observations","text":"Field: OrbitSolution.observations - observations used for the determination\nSyntax:\n  <OrbitSolution>.observations -> List<Observation>\nExample:\n# Read the observations field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).observations;","metadata":{"name":"observations","path":"OrbitSolution.observations","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.residuals","title":"OrbitSolution.residuals","text":"Field: OrbitSolution.residuals - per-observation residual objects\nSyntax:\n  <OrbitSolution>.residuals -> List<Object>\nExample:\n# Read the residuals field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).residuals;","metadata":{"name":"residuals","path":"OrbitSolution.residuals","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.rms","title":"OrbitSolution.rms","text":"Field: OrbitSolution.rms - RMS angular residual in arcseconds\nSyntax:\n  <OrbitSolution>.rms -> Number\nExample:\n# Read the rms field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).rms;","metadata":{"name":"rms","path":"OrbitSolution.rms","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.max_residual","title":"OrbitSolution.max_residual","text":"Field: OrbitSolution.max_residual - largest angular residual in arcseconds\nSyntax:\n  <OrbitSolution>.max_residual -> Number\nExample:\n# Read the max_residual field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).max_residual;","metadata":{"name":"max_residual","path":"OrbitSolution.max_residual","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.method","title":"OrbitSolution.method","text":"Field: OrbitSolution.method - solver method used\nSyntax:\n  <OrbitSolution>.method -> Text\nExample:\n# Read the method field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).method;","metadata":{"name":"method","path":"OrbitSolution.method","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.status","title":"OrbitSolution.status","text":"Field: OrbitSolution.status - solver status\nSyntax:\n  <OrbitSolution>.status -> Text\nExample:\n# Read the status field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).status;","metadata":{"name":"status","path":"OrbitSolution.status","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:OrbitSolution.iterations","title":"OrbitSolution.iterations","text":"Field: OrbitSolution.iterations - differential-correction iterations performed\nSyntax:\n  <OrbitSolution>.iterations -> Number\nExample:\n# Read the iterations field from a OrbitSolution value\n   print orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun).iterations;","metadata":{"name":"iterations","path":"OrbitSolution.iterations","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:OrbitSolution.predict","title":"OrbitSolution.predict","text":"Method: OrbitSolution.predict - predicts a direction from the determined orbit\nSyntax:\n  <OrbitSolution>.predict(time: Time, observer: Observer) -> Direction\nArguments:\n  time: Time - prediction time\n  observer: Observer - observing site\nExample:\n# Use OrbitSolution.predict on a OrbitSolution value\n   let value = orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun);\n   print value.predict(time(), location(latitude: 60.0, longitude: 270.0).observer(height: 1.5));","metadata":{"name":"predict","path":"OrbitSolution.predict","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:OrbitSolution.residuals","title":"OrbitSolution.residuals","text":"Method: OrbitSolution.residuals - returns per-observation residuals\nSyntax:\n  <OrbitSolution>.residuals() -> List<Object>\nExample:\n# Use OrbitSolution.residuals on a OrbitSolution value\n   let value = orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun);\n   print value.residuals();","metadata":{"name":"residuals","path":"OrbitSolution.residuals","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:OrbitSolution.children","title":"OrbitSolution.children","text":"Method: OrbitSolution.children - lists child fields and callable members available on this value\nSyntax:\n  <OrbitSolution>.children() -> List\nExample:\n# Use OrbitSolution.children on a OrbitSolution value\n   let value = orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun);\n   print value.children();","metadata":{"name":"children","path":"OrbitSolution.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:OrbitSolution.fields","title":"OrbitSolution.fields","text":"Method: OrbitSolution.fields - returns an object containing the value's plain fields\nSyntax:\n  <OrbitSolution>.fields() -> Object\nExample:\n# Use OrbitSolution.fields on a OrbitSolution value\n   let value = orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun);\n   print value.fields();","metadata":{"name":"fields","path":"OrbitSolution.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:OrbitSolution.functions","title":"OrbitSolution.functions","text":"Method: OrbitSolution.functions - lists callable members available on this value\nSyntax:\n  <OrbitSolution>.functions() -> List\nExample:\n# Use OrbitSolution.functions on a OrbitSolution value\n   let value = orbit_determination([observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,3),ra:131.0857742519269,dec:18.803678151005595),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,7,23),ra:135.0300892722528,dec:18.040162341691612),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,8,12),ra:139.04202357010908,dec:17.175191580463146),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,1),ra:142.9726130958044,dec:16.26645304942825),observation(location(latitude:59.91,longitude:10.75).observer(height:0),time(2028,9,21),ra:146.67383907727944,dec:15.384398529605518)],central:sun);\n   print value.functions();","metadata":{"name":"functions","path":"OrbitSolution.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Shadow","title":"Shadow","text":"Type: Shadow - instantaneous sunlight shadow geometry for one body on another\nSyntax:\n  shadow() -> Shadow\nChildren: surface, blocker, source, time, sample(), occultation(), distance(), polygon(), limb(), children(), fields(), functions()\nExample:\n# Compute a Moon shadow state on Earth\n   let t = time(2024,4,8,18,40,0);\n   let sh = state(earth, t).shadow(moon);\n   print sh.surface.name, sh.blocker.name, sh.distance();","metadata":{"name":"Shadow","path":"Shadow","kind":"type","aliases":[],"resources":[],"children":["field:Shadow.surface","field:Shadow.blocker","field:Shadow.source","field:Shadow.time","member:Shadow.sample","member:Shadow.occultation","member:Shadow.distance","member:Shadow.polygon","member:Shadow.limb","member:Shadow.children","member:Shadow.fields","member:Shadow.functions"]}},{"id":"field:Shadow.surface","title":"Shadow.surface","text":"Field: Shadow.surface - body receiving the shadow\nSyntax:\n  <Shadow>.surface -> Body\nExample:\n# Read the surface field from a Shadow value\n   print state(earth, time(2024,4,8,18,40,0)).shadow(moon).surface;","metadata":{"name":"surface","path":"Shadow.surface","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Shadow.blocker","title":"Shadow.blocker","text":"Field: Shadow.blocker - body casting the shadow\nSyntax:\n  <Shadow>.blocker -> Body\nExample:\n# Read the blocker field from a Shadow value\n   print state(earth, time(2024,4,8,18,40,0)).shadow(moon).blocker;","metadata":{"name":"blocker","path":"Shadow.blocker","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Shadow.source","title":"Shadow.source","text":"Field: Shadow.source - light source; currently the Sun\nSyntax:\n  <Shadow>.source -> Body\nExample:\n# Read the source field from a Shadow value\n   print state(earth, time(2024,4,8,18,40,0)).shadow(moon).source;","metadata":{"name":"source","path":"Shadow.source","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Shadow.time","title":"Shadow.time","text":"Field: Shadow.time - time of the shadow geometry\nSyntax:\n  <Shadow>.time -> Time\nExample:\n# Read the time field from a Shadow value\n   print state(earth, time(2024,4,8,18,40,0)).shadow(moon).time;","metadata":{"name":"time","path":"Shadow.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.sample","title":"Shadow.sample","text":"Method: Shadow.sample - samples this shadow at a location or observer\nSyntax:\n  <Shadow>.sample(location: Location|Observer) -> Object\nArguments:\n  location: Location|Observer - surface location or observer to sample\nExample:\n# Sample this shadow at an explicit observer\n   let t = time(2024,4,8,18,40,0);\n   let obs = location(latitude: 32.7767, longitude: -96.7970).observer();\n   let sh = state(earth, t).shadow(moon);\n   print sh.sample(obs);","metadata":{"name":"sample","path":"Shadow.sample","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.occultation","title":"Shadow.occultation","text":"Method: Shadow.occultation - returns a low-level local solar-disc occultation scalar\nSyntax:\n  <Shadow>.occultation(location: Location|Observer, lunar_limb: List) -> Number\nArguments:\n  location: Location|Observer - surface location or observer to evaluate\n  lunar_limb: List [optional] - optional precomputed lunar limb profile from `state(moon,time).limb(...)`\nExample:\n# Use Shadow.occultation on a Shadow value\n   let value = state(earth, time(2024,4,8,18,40,0)).shadow(moon);\n   print value.occultation(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"occultation","path":"Shadow.occultation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.distance","title":"Shadow.distance","text":"Method: Shadow.distance - returns signed global shadow clearance\nSyntax:\n  <Shadow>.distance() -> Number\nExample:\n# Use Shadow.distance on a Shadow value\n   let value = state(earth, time(2024,4,8,18,40,0)).shadow(moon);\n   print value.distance();","metadata":{"name":"distance","path":"Shadow.distance","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.polygon","title":"Shadow.polygon","text":"Method: Shadow.polygon - binary-searches a daylight-clipped shadow border polygon around the eclipse center\nSyntax:\n  <Shadow>.polygon(samples: Number, spacing_km: Number, spacing_degrees: Number, deviation: Number, magnitude: Number, kind: Text, lunar_limb: List, topography: Field, height: Number) -> Polygon|Unavailable\nArguments:\n  samples: Number [optional] - optional fixed number of border rays; omitted uses adaptive sampling\n  spacing_km: Number [optional] - adaptive target great-circle spacing between polygon vertices, in km\n  spacing_degrees: Number [optional] - adaptive target great-circle spacing between polygon vertices, in degrees\n  deviation: Number [optional] - adaptive maximum midpoint deviation from the segment, in degrees; `error` is an alias\n  magnitude: Number [optional] - optional eclipse magnitude threshold between 0 and 1; can also be positional\n  kind: Text [optional] - optional contour kind: `total` or `annular`; can also be positional\n  lunar_limb: List [optional] - precomputed lunar limb profile from `state(moon,time).limb(...)`; only valid for totality contours\n  topography: Field [optional] - optional body-matching topography field, for example `topography(earth)`\n  height: Number [optional] - observer height in km above the datum or supplied topography; `observer_height` is an alias\nExample:\n# Use Shadow.polygon on a Shadow value\n   let value = state(earth, time(2024,4,8,18,40,0)).shadow(moon);\n   print value.polygon();","metadata":{"name":"polygon","path":"Shadow.polygon","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.limb","title":"Shadow.limb","text":"Method: Shadow.limb - projects a precomputed lunar limb profile onto the Earth shadow map\nSyntax:\n  <Shadow>.limb(lunar_limb: List, scale: Number) -> Polygon|Unavailable\nArguments:\n  lunar_limb: List - precomputed lunar limb profile from `state(moon,time).limb(...)`\n  scale: Number [optional] - non-negative exaggeration factor for lunar-radius deviations from the mean limb\nExample:\n# Project a precomputed lunar limb profile onto an eclipse shadow\n   let t = time(2024,4,8,18,40,0);\n   let loc = location(latitude: 32.7767, longitude: -96.7970);\n   let limb = state(moon, t).limb(loc, 8);\n   let sh = state(earth, t).shadow(moon);\n   print sh.limb(limb, scale: 1).available();","metadata":{"name":"limb","path":"Shadow.limb","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.children","title":"Shadow.children","text":"Method: Shadow.children - lists child fields and callable members available on this value\nSyntax:\n  <Shadow>.children() -> List\nExample:\n# Use Shadow.children on a Shadow value\n   let value = state(earth, time(2024,4,8,18,40,0)).shadow(moon);\n   print value.children();","metadata":{"name":"children","path":"Shadow.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.fields","title":"Shadow.fields","text":"Method: Shadow.fields - returns an object containing the value's plain fields\nSyntax:\n  <Shadow>.fields() -> Object\nExample:\n# Use Shadow.fields on a Shadow value\n   let value = state(earth, time(2024,4,8,18,40,0)).shadow(moon);\n   print value.fields();","metadata":{"name":"fields","path":"Shadow.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Shadow.functions","title":"Shadow.functions","text":"Method: Shadow.functions - lists callable members available on this value\nSyntax:\n  <Shadow>.functions() -> List\nExample:\n# Use Shadow.functions on a Shadow value\n   let value = state(earth, time(2024,4,8,18,40,0)).shadow(moon);\n   print value.functions();","metadata":{"name":"functions","path":"Shadow.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Heading","title":"Heading","text":"Type: Heading - compass heading measured clockwise from north\nSyntax:\n  heading(azimuth: Number|Text, unit: Unit) -> Heading\nArguments:\n  azimuth: Number|Text - degrees clockwise from north, or a compass name such as \"nw\"\n  unit: Unit [optional] - optional angle unit for numeric headings; degrees are default\nChildren: azimuth_degrees, long_name, short_name, azimuth(), long(), short(), vector(), children(), fields(), functions()\nExample:\n# Convert a compass heading into degrees\n   let h = heading(\"southeast\");\n   print h.azimuth(deg);","metadata":{"name":"Heading","path":"Heading","kind":"type","aliases":[],"resources":[],"children":["field:Heading.azimuth_degrees","field:Heading.long_name","field:Heading.short_name","member:Heading.azimuth","member:Heading.long","member:Heading.short","member:Heading.vector","member:Heading.children","member:Heading.fields","member:Heading.functions"]}},{"id":"field:Heading.azimuth_degrees","title":"Heading.azimuth_degrees","text":"Field: Heading.azimuth_degrees - compass azimuth in degrees clockwise from north\nSyntax:\n  <Heading>.azimuth_degrees -> Number\nExample:\n# Read the azimuth_degrees field from a Heading value\n   print heading(135.0).azimuth_degrees;","metadata":{"name":"azimuth_degrees","path":"Heading.azimuth_degrees","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Heading.long_name","title":"Heading.long_name","text":"Field: Heading.long_name - long 16-wind compass name\nSyntax:\n  <Heading>.long_name -> Text\nExample:\n# Read the long_name field from a Heading value\n   print heading(135.0).long_name;","metadata":{"name":"long_name","path":"Heading.long_name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Heading.short_name","title":"Heading.short_name","text":"Field: Heading.short_name - short lowercase 16-wind compass name\nSyntax:\n  <Heading>.short_name -> Text\nExample:\n# Read the short_name field from a Heading value\n   print heading(135.0).short_name;","metadata":{"name":"short_name","path":"Heading.short_name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.azimuth","title":"Heading.azimuth","text":"Method: Heading.azimuth - returns azimuth clockwise from north\nSyntax:\n  <Heading>.azimuth(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional angle unit; degrees are default\nExample:\n# Use Heading.azimuth on a Heading value\n   let value = heading(135.0);\n   print value.azimuth();","metadata":{"name":"azimuth","path":"Heading.azimuth","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.long","title":"Heading.long","text":"Method: Heading.long - returns the long 16-wind compass name\nSyntax:\n  <Heading>.long() -> Text\nExample:\n# Use Heading.long on a Heading value\n   let value = heading(135.0);\n   print value.long();","metadata":{"name":"long","path":"Heading.long","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.short","title":"Heading.short","text":"Method: Heading.short - returns the short 16-wind compass name\nSyntax:\n  <Heading>.short() -> Text\nExample:\n# Use Heading.short on a Heading value\n   let value = heading(135.0);\n   print value.short();","metadata":{"name":"short","path":"Heading.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.vector","title":"Heading.vector","text":"Method: Heading.vector - returns a local topographic direction vector\nSyntax:\n  <Heading>.vector(altitude: Number, zenith: Number, length: Number, radius: Number, unit: Unit) -> Vector\nArguments:\n  altitude: Number [optional] - angle above the local horizon; degrees are default\n  zenith: Number [optional] - angle down from local zenith; degrees are default\n  length: Number [optional] - vector length; defaults to one\n  radius: Number [optional] - alias for length\n  unit: Unit [optional] - optional angle unit for altitude or zenith\nExample:\n# Use Heading.vector on a Heading value\n   let value = heading(135.0);\n   print value.vector();","metadata":{"name":"vector","path":"Heading.vector","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.children","title":"Heading.children","text":"Method: Heading.children - lists child fields and callable members available on this value\nSyntax:\n  <Heading>.children() -> List\nExample:\n# Use Heading.children on a Heading value\n   let value = heading(135.0);\n   print value.children();","metadata":{"name":"children","path":"Heading.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.fields","title":"Heading.fields","text":"Method: Heading.fields - returns an object containing the value's plain fields\nSyntax:\n  <Heading>.fields() -> Object\nExample:\n# Use Heading.fields on a Heading value\n   let value = heading(135.0);\n   print value.fields();","metadata":{"name":"fields","path":"Heading.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Heading.functions","title":"Heading.functions","text":"Method: Heading.functions - lists callable members available on this value\nSyntax:\n  <Heading>.functions() -> List\nExample:\n# Use Heading.functions on a Heading value\n   let value = heading(135.0);\n   print value.functions();","metadata":{"name":"functions","path":"Heading.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Direction","title":"Direction","text":"Type: Direction - unit-sphere direction tagged with a coordinate frame\nSyntax:\n  direction(frame: Frame, ra: Number, dec: Number, azimuth: Number, altitude: Number, zenith: Number, unit: Unit) -> Direction\nArguments:\n  frame: Frame [optional] - coordinate frame, defaulting to icrf\n  ra: Number [optional] - right ascension / longitude in degrees by default\n  dec: Number [optional] - declination / latitude in degrees by default\n  azimuth: Number [optional] - topographic azimuth clockwise from north; degrees are default\n  altitude: Number [optional] - topographic altitude/elevation above the horizon; degrees are default\n  zenith: Number [optional] - topographic angle down from local zenith; degrees are default\n  unit: Unit [optional] - optional angle unit such as rad\nChildren: frame, vector, ra, dec, to_frame(), altaz(), angular_distance(), rise(), set(), transit(), children(), fields(), functions()\nExample:\n# Measure angular distance between two sky directions\n   let a = direction(ra: 40, dec: 10);\n   let b = direction(ra: 42, dec: 11);\n   print a.angular_distance(b);","metadata":{"name":"Direction","path":"Direction","kind":"type","aliases":[],"resources":[],"children":["field:Direction.frame","field:Direction.vector","field:Direction.ra","field:Direction.dec","member:Direction.to_frame","member:Direction.altaz","member:Direction.angular_distance","member:Direction.rise","member:Direction.set","member:Direction.transit","member:Direction.children","member:Direction.fields","member:Direction.functions"]}},{"id":"field:Direction.frame","title":"Direction.frame","text":"Field: Direction.frame - coordinate frame for this direction\nSyntax:\n  <Direction>.frame -> Frame\nExample:\n# Read the frame field from a Direction value\n   print direction(ra: 42.0, dec: 18.0).frame;","metadata":{"name":"frame","path":"Direction.frame","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Direction.vector","title":"Direction.vector","text":"Field: Direction.vector - unit vector in the direction frame\nSyntax:\n  <Direction>.vector -> Vector\nExample:\n# Read the vector field from a Direction value\n   print direction(ra: 42.0, dec: 18.0).vector;","metadata":{"name":"vector","path":"Direction.vector","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Direction.ra","title":"Direction.ra","text":"Field: Direction.ra - right ascension / longitude in degrees\nSyntax:\n  <Direction>.ra -> Number\nExample:\n# Read the ra field from a Direction value\n   print direction(ra: 42.0, dec: 18.0).ra;","metadata":{"name":"ra","path":"Direction.ra","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Direction.dec","title":"Direction.dec","text":"Field: Direction.dec - declination / latitude in degrees\nSyntax:\n  <Direction>.dec -> Number\nExample:\n# Read the dec field from a Direction value\n   print direction(ra: 42.0, dec: 18.0).dec;","metadata":{"name":"dec","path":"Direction.dec","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.to_frame","title":"Direction.to_frame","text":"Method: Direction.to_frame - converts this direction to another frame\nSyntax:\n  <Direction>.to_frame(frame: Frame, time: Time) -> Direction\nArguments:\n  frame: Frame - target frame\n  time: Time [optional] - time for time-dependent frame conversion\nExample:\n# Use Direction.to_frame on a Direction value\n   let value = direction(ra: 42.0, dec: 18.0);\n   print value.to_frame(icrf);","metadata":{"name":"to_frame","path":"Direction.to_frame","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.altaz","title":"Direction.altaz","text":"Method: Direction.altaz - returns local altitude and azimuth for this direction\nSyntax:\n  <Direction>.altaz(observer: Location | Observer, time: Time) -> Object\nArguments:\n  observer: Location | Observer - local observer; a location means zero height\n  time: Time [optional] - time for time-dependent frame conversion\nExample:\n# Convert an ICRF direction to local altitude and azimuth\n   let t = time(2026,1,1,0,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let value = direction(ra: 42.0, dec: 18.0);\n   print value.altaz(t, loc);","metadata":{"name":"altaz","path":"Direction.altaz","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.angular_distance","title":"Direction.angular_distance","text":"Method: Direction.angular_distance - returns angular separation from another point\nSyntax:\n  <Direction>.angular_distance(point: Direction | Location | Vector, time: Time, unit: Unit) -> Number\nArguments:\n  point: Direction | Location | Vector - other point on the sphere\n  time: Time [optional] - time for time-dependent frame conversion\n  unit: Unit [optional] - angle unit; degrees are used by default\nExample:\n# Measure angular separation between two sky directions\n   let a = direction(ra: 42.0, dec: 18.0);\n   let b = direction(ra: 45.0, dec: 20.0);\n   print a.angular_distance(b);","metadata":{"name":"angular_distance","path":"Direction.angular_distance","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.rise","title":"Direction.rise","text":"Method: Direction.rise - returns when this direction rises for the observer\nSyntax:\n  <Direction>.rise(range: Range, observer: Location | Observer) -> List|Event|Nil\nArguments:\n  range: Range - time range to search; bounded ranges return all events, open ranges return the next event\n  observer: Location | Observer - local observer; a location means zero height\nExample:\n# Find when a sky direction rises for an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   let d = direction(ra: 42.0, dec: 18.0);\n   print d.rise(span, obs).first();","metadata":{"name":"rise","path":"Direction.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.set","title":"Direction.set","text":"Method: Direction.set - returns when this direction sets for the observer\nSyntax:\n  <Direction>.set(range: Range, observer: Location | Observer) -> List|Event|Nil\nArguments:\n  range: Range - time range to search; bounded ranges return all events, open ranges return the next event\n  observer: Location | Observer - local observer; a location means zero height\nExample:\n# Find when a sky direction sets for an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   let d = direction(ra: 42.0, dec: 18.0);\n   print d.set(span, obs).first();","metadata":{"name":"set","path":"Direction.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.transit","title":"Direction.transit","text":"Method: Direction.transit - returns upper culmination events for this direction\nSyntax:\n  <Direction>.transit(range: Range, observer: Location | Observer) -> List|Event|Nil\nArguments:\n  range: Range - time range to search; bounded ranges return all events, open ranges return the next event\n  observer: Location | Observer - local observer; a location means zero height\nExample:\n# Use Direction.transit on a Direction value\n   let value = direction(ra: 42.0, dec: 18.0);\n   print value.transit(range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"transit","path":"Direction.transit","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.children","title":"Direction.children","text":"Method: Direction.children - lists child fields and callable members available on this value\nSyntax:\n  <Direction>.children() -> List\nExample:\n# Use Direction.children on a Direction value\n   let value = direction(ra: 42.0, dec: 18.0);\n   print value.children();","metadata":{"name":"children","path":"Direction.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.fields","title":"Direction.fields","text":"Method: Direction.fields - returns an object containing the value's plain fields\nSyntax:\n  <Direction>.fields() -> Object\nExample:\n# Use Direction.fields on a Direction value\n   let value = direction(ra: 42.0, dec: 18.0);\n   print value.fields();","metadata":{"name":"fields","path":"Direction.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Direction.functions","title":"Direction.functions","text":"Method: Direction.functions - lists callable members available on this value\nSyntax:\n  <Direction>.functions() -> List\nExample:\n# Use Direction.functions on a Direction value\n   let value = direction(ra: 42.0, dec: 18.0);\n   print value.functions();","metadata":{"name":"functions","path":"Direction.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Polygon","title":"Polygon","text":"Type: Polygon - right-handed spherical polygon with great-circle edges\nSyntax:\n  polygon(frame: Frame, vertices: List, time: Time) -> Polygon\nArguments:\n  frame: Frame [optional] - coordinate frame for the polygon vertices\n  vertices: List - right-handed vertex list with great-circle edges\n  time: Time [optional] - time used when converting vertices between frames\nChildren: frame, count, vertices, invert(), to_frame(), inside(), area(), signed_area(), winding(), lonlat(), lonlat_unwrapped(), lonlat_diagnostic(), children(), fields(), functions()\nExample:\n# Test whether a sky direction falls inside a polygon\n   let vertices = [direction(ra: 40, dec: 10), direction(ra: 50, dec: 10), direction(ra: 50, dec: 20), direction(ra: 40, dec: 20)];\n   let area = polygon(icrf, time(2026,1,1,0,0,0), vertices);\n   print area.inside(direction(ra: 45, dec: 15)), area.area();","metadata":{"name":"Polygon","path":"Polygon","kind":"type","aliases":[],"resources":[],"children":["field:Polygon.frame","field:Polygon.count","field:Polygon.vertices","member:Polygon.invert","member:Polygon.to_frame","member:Polygon.inside","member:Polygon.area","member:Polygon.signed_area","member:Polygon.winding","member:Polygon.lonlat","member:Polygon.lonlat_unwrapped","member:Polygon.lonlat_diagnostic","member:Polygon.children","member:Polygon.fields","member:Polygon.functions"]}},{"id":"field:Polygon.frame","title":"Polygon.frame","text":"Field: Polygon.frame - coordinate frame for polygon vertices\nSyntax:\n  <Polygon>.frame -> Frame\nExample:\n# Read the frame field from a Polygon value\n   print polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]).frame;","metadata":{"name":"frame","path":"Polygon.frame","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Polygon.count","title":"Polygon.count","text":"Field: Polygon.count - number of vertices\nSyntax:\n  <Polygon>.count -> Number\nExample:\n# Read the count field from a Polygon value\n   print polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]).count;","metadata":{"name":"count","path":"Polygon.count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Polygon.vertices","title":"Polygon.vertices","text":"Field: Polygon.vertices - vertices as Direction values in the polygon frame\nSyntax:\n  <Polygon>.vertices -> List\nExample:\n# Read the vertices field from a Polygon value\n   print polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]).vertices;","metadata":{"name":"vertices","path":"Polygon.vertices","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.invert","title":"Polygon.invert","text":"Method: Polygon.invert - reverses the polygon orientation\nSyntax:\n  <Polygon>.invert() -> Polygon\nExample:\n# Use Polygon.invert on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.invert();","metadata":{"name":"invert","path":"Polygon.invert","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.to_frame","title":"Polygon.to_frame","text":"Method: Polygon.to_frame - converts all polygon vertices to another frame\nSyntax:\n  <Polygon>.to_frame(frame: Frame, time: Time) -> Polygon\nArguments:\n  frame: Frame - target frame\n  time: Time [optional] - time for time-dependent frame conversion\nExample:\n# Use Polygon.to_frame on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.to_frame(icrf);","metadata":{"name":"to_frame","path":"Polygon.to_frame","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.inside","title":"Polygon.inside","text":"Method: Polygon.inside - tests whether a point lies inside the right-handed polygon\nSyntax:\n  <Polygon>.inside(point: Direction | Location | Vector, time: Time) -> Bool\nArguments:\n  point: Direction | Location | Vector - point to test or measure\n  time: Time [optional] - time for time-dependent frame conversion\nExample:\n# Test whether a sky direction falls inside a polygon\n   let t = time(2026,1,1,0,0,0);\n   let vertices = [direction(ra: 40, dec: 10), direction(ra: 50, dec: 10), direction(ra: 50, dec: 20), direction(ra: 40, dec: 20)];\n   let p = polygon(icrf, t, vertices);\n   print p.inside(direction(ra: 45, dec: 15));","metadata":{"name":"inside","path":"Polygon.inside","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.area","title":"Polygon.area","text":"Method: Polygon.area - returns spherical polygon area in steradians\nSyntax:\n  <Polygon>.area() -> Number\nExample:\n# Use Polygon.area on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.area();","metadata":{"name":"area","path":"Polygon.area","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.signed_area","title":"Polygon.signed_area","text":"Method: Polygon.signed_area - returns oriented spherical polygon area in steradians\nSyntax:\n  <Polygon>.signed_area() -> Number\nExample:\n# Use Polygon.signed_area on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.signed_area();","metadata":{"name":"signed_area","path":"Polygon.signed_area","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.winding","title":"Polygon.winding","text":"Method: Polygon.winding - returns the spherical winding number around a point\nSyntax:\n  <Polygon>.winding(point: Direction | Location | Vector, time: Time) -> Number\nArguments:\n  point: Direction | Location | Vector - point to test or measure\n  time: Time [optional] - time for time-dependent frame conversion\nExample:\n# Compute polygon winding for a sky direction\n   let t = time(2026,1,1,0,0,0);\n   let vertices = [direction(ra: 40, dec: 10), direction(ra: 50, dec: 10), direction(ra: 50, dec: 20), direction(ra: 40, dec: 20)];\n   let p = polygon(icrf, t, vertices);\n   print p.winding(direction(ra: 45, dec: 15));","metadata":{"name":"winding","path":"Polygon.winding","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.lonlat","title":"Polygon.lonlat","text":"Method: Polygon.lonlat - formats polygon vertices as longitude,latitude lines\nSyntax:\n  <Polygon>.lonlat(time: Time) -> Text\nArguments:\n  time: Time [optional] - time used when converting non-Earth-fixed polygons to Earth-fixed coordinates\nExample:\n# Convert polygon vertices to longitude-latitude rows at a time\n   let t = time(2026,1,1,0,0,0);\n   let p = polygon(icrf, t, [direction(ra: 0, dec: 0), direction(ra: 10, dec: 0), direction(ra: 10, dec: 10)]);\n   print p.lonlat(t);","metadata":{"name":"lonlat","path":"Polygon.lonlat","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.lonlat_unwrapped","title":"Polygon.lonlat_unwrapped","text":"Method: Polygon.lonlat_unwrapped - formats polygon vertices as one continuous longitude,latitude ring without anti-meridian splits\nSyntax:\n  <Polygon>.lonlat_unwrapped(time: Time) -> Text\nArguments:\n  time: Time [optional] - time used when converting non-Earth-fixed polygons to Earth-fixed coordinates\nExample:\n# Convert polygon vertices to unwrapped longitude-latitude rows\n   let t = time(2026,1,1,0,0,0);\n   let p = polygon(icrf, t, [direction(ra: 350, dec: 0), direction(ra: 10, dec: 0), direction(ra: 10, dec: 10)]);\n   print p.lonlat_unwrapped(t);","metadata":{"name":"lonlat_unwrapped","path":"Polygon.lonlat_unwrapped","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.lonlat_diagnostic","title":"Polygon.lonlat_diagnostic","text":"Method: Polygon.lonlat_diagnostic - diagnoses anti-meridian splitting and longitude jumps\nSyntax:\n  <Polygon>.lonlat_diagnostic(time: Time) -> Object\nArguments:\n  time: Time [optional] - time used when converting non-Earth-fixed polygons to Earth-fixed coordinates\nExample:\n# Inspect polygon longitude-latitude conversion diagnostics\n   let t = time(2026,1,1,0,0,0);\n   let p = polygon(icrf, t, [direction(ra: 0, dec: 0), direction(ra: 10, dec: 0), direction(ra: 10, dec: 10)]);\n   print p.lonlat_diagnostic(t);","metadata":{"name":"lonlat_diagnostic","path":"Polygon.lonlat_diagnostic","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.children","title":"Polygon.children","text":"Method: Polygon.children - lists child fields and callable members available on this value\nSyntax:\n  <Polygon>.children() -> List\nExample:\n# Use Polygon.children on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.children();","metadata":{"name":"children","path":"Polygon.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.fields","title":"Polygon.fields","text":"Method: Polygon.fields - returns an object containing the value's plain fields\nSyntax:\n  <Polygon>.fields() -> Object\nExample:\n# Use Polygon.fields on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.fields();","metadata":{"name":"fields","path":"Polygon.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Polygon.functions","title":"Polygon.functions","text":"Method: Polygon.functions - lists callable members available on this value\nSyntax:\n  <Polygon>.functions() -> List\nExample:\n# Use Polygon.functions on a Polygon value\n   let value = polygon(vertices: [direction(ra: 42.0, dec: 18.0), direction(ra: 90.0, dec: 20.0), direction(ra: 150.0, dec: 55.0)]);\n   print value.functions();","metadata":{"name":"functions","path":"Polygon.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Vector","title":"Vector","text":"Type: Vector - 3D vector with cached cartesian and spherical representations\nSyntax:\n  vector(x: Number, y: Number, z: Number) -> Vector\n  vector(from: Origin, to: Origin, time: Time) -> Vector\nArguments:\n  x: Number [optional] - cartesian x component in km\n  y: Number [optional] - cartesian y component in km, defaulting to zero\n  z: Number [optional] - cartesian z component in km, defaulting to zero\n  from: Origin [optional] - source origin such as barycentric or geocentric\n  to: Origin [optional] - target origin such as barycentric or geocentric\n  time: Time [optional] - time for the origin transform\nChildren: kind, orientation, transposed, x(), y(), z(), range(), theta(), phi(), length(), lenxy(), lenxz(), lenyz(), dot(), cross(), angle(), distance(), online(), turn(), normalise(), transpose(), translate_origin(), children(), fields(), functions()\nExample:\n# Combine position-like vectors and measure their separation\n   let a = vector(7000, 0, 0);\n   let b = vector(0, 7000, 0);\n   print a.length(), b.length(), a.distance(b), a.angle(b, deg);","metadata":{"name":"Vector","path":"Vector","kind":"type","aliases":[],"resources":[],"children":["field:Vector.kind","field:Vector.orientation","field:Vector.transposed","member:Vector.x","member:Vector.y","member:Vector.z","member:Vector.range","member:Vector.theta","member:Vector.phi","member:Vector.length","member:Vector.lenxy","member:Vector.lenxz","member:Vector.lenyz","member:Vector.dot","member:Vector.cross","member:Vector.angle","member:Vector.distance","member:Vector.online","member:Vector.turn","member:Vector.normalise","member:Vector.transpose","member:Vector.translate_origin","member:Vector.children","member:Vector.fields","member:Vector.functions"]}},{"id":"field:Vector.kind","title":"Vector.kind","text":"Field: Vector.kind - cached vector representation: cartesian, spherical, both, or undefined\nSyntax:\n  <Vector>.kind -> Text\nExample:\n# Read the kind field from a Vector value\n   print vector(1.0, 2.0, 3.0).kind;","metadata":{"name":"kind","path":"Vector.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Vector.orientation","title":"Vector.orientation","text":"Field: Vector.orientation - algebraic orientation: column or row\nSyntax:\n  <Vector>.orientation -> Text\nExample:\n# Read the orientation field from a Vector value\n   print vector(1.0, 2.0, 3.0).orientation;","metadata":{"name":"orientation","path":"Vector.orientation","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Vector.transposed","title":"Vector.transposed","text":"Field: Vector.transposed - true when the vector is a row-vector transpose\nSyntax:\n  <Vector>.transposed -> Bool\nExample:\n# Read the transposed field from a Vector value\n   print vector(1.0, 2.0, 3.0).transposed;","metadata":{"name":"transposed","path":"Vector.transposed","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.x","title":"Vector.x","text":"Method: Vector.x - returns the cartesian x component\nSyntax:\n  <Vector>.x(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.x on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.x();","metadata":{"name":"x","path":"Vector.x","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.y","title":"Vector.y","text":"Method: Vector.y - returns the cartesian y component\nSyntax:\n  <Vector>.y(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.y on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.y();","metadata":{"name":"y","path":"Vector.y","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.z","title":"Vector.z","text":"Method: Vector.z - returns the cartesian z component\nSyntax:\n  <Vector>.z(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.z on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.z();","metadata":{"name":"z","path":"Vector.z","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.range","title":"Vector.range","text":"Method: Vector.range - returns the spherical range\nSyntax:\n  <Vector>.range(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.range on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.range();","metadata":{"name":"range","path":"Vector.range","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.theta","title":"Vector.theta","text":"Method: Vector.theta - returns the spherical theta angle\nSyntax:\n  <Vector>.theta(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.theta on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.theta();","metadata":{"name":"theta","path":"Vector.theta","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.phi","title":"Vector.phi","text":"Method: Vector.phi - returns the spherical phi angle\nSyntax:\n  <Vector>.phi(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.phi on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.phi();","metadata":{"name":"phi","path":"Vector.phi","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.length","title":"Vector.length","text":"Method: Vector.length - returns the vector length\nSyntax:\n  <Vector>.length(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.length on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.length();","metadata":{"name":"length","path":"Vector.length","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.lenxy","title":"Vector.lenxy","text":"Method: Vector.lenxy - returns the length projected into the xy plane\nSyntax:\n  <Vector>.lenxy(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.lenxy on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.lenxy();","metadata":{"name":"lenxy","path":"Vector.lenxy","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.lenxz","title":"Vector.lenxz","text":"Method: Vector.lenxz - returns the length projected into the xz plane\nSyntax:\n  <Vector>.lenxz(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.lenxz on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.lenxz();","metadata":{"name":"lenxz","path":"Vector.lenxz","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.lenyz","title":"Vector.lenyz","text":"Method: Vector.lenyz - returns the length projected into the yz plane\nSyntax:\n  <Vector>.lenyz(unit: Unit) -> Number\nArguments:\n  unit: Unit [optional] - optional output unit\nExample:\n# Use Vector.lenyz on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.lenyz();","metadata":{"name":"lenyz","path":"Vector.lenyz","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.dot","title":"Vector.dot","text":"Method: Vector.dot - returns the dot product with another vector\nSyntax:\n  <Vector>.dot(other: Vector) -> Number\nArguments:\n  other: Vector - other vector\nExample:\n# Use Vector.dot on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.dot(vector(1.0, 2.0, 3.0));","metadata":{"name":"dot","path":"Vector.dot","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.cross","title":"Vector.cross","text":"Method: Vector.cross - returns the cross product with another vector\nSyntax:\n  <Vector>.cross(other: Vector) -> Vector\nArguments:\n  other: Vector - other vector\nExample:\n# Use Vector.cross on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.cross(vector(1.0, 2.0, 3.0));","metadata":{"name":"cross","path":"Vector.cross","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.angle","title":"Vector.angle","text":"Method: Vector.angle - returns the angle to another vector in radians by default; pass `deg` for degrees\nSyntax:\n  <Vector>.angle(other: Vector, unit: Unit) -> Number\nArguments:\n  other: Vector - other vector\n  unit: Unit [optional] - optional angle unit\nExample:\n# Measure the angle between vectors in degrees\n   let a = vector(1, 0, 0);\n   let b = vector(0, 1, 0);\n   print a.angle(b, deg);","metadata":{"name":"angle","path":"Vector.angle","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.distance","title":"Vector.distance","text":"Method: Vector.distance - returns the distance to another vector\nSyntax:\n  <Vector>.distance(other: Vector, unit: Unit) -> Number\nArguments:\n  other: Vector - other vector\n  unit: Unit [optional] - optional length unit\nExample:\n# Use Vector.distance on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.distance(vector(1.0, 2.0, 3.0));","metadata":{"name":"distance","path":"Vector.distance","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.online","title":"Vector.online","text":"Method: Vector.online - returns the reference online distance measure\nSyntax:\n  <Vector>.online(b: Vector, c: Vector, unit: Unit) -> Number\nArguments:\n  b: Vector - second point on the line\n  c: Vector - point used to define the normal direction\n  unit: Unit [optional] - optional length unit\nExample:\n# Use Vector.online on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.online(vector(1.0, 2.0, 3.0), vector(1.0, 2.0, 3.0));","metadata":{"name":"online","path":"Vector.online","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.turn","title":"Vector.turn","text":"Method: Vector.turn - returns this vector rotated around an axis\nSyntax:\n  <Vector>.turn(axis: Vector, angle: Number, unit: Unit) -> Vector\nArguments:\n  axis: Vector - axis to rotate around\n  angle: Number - angle in radians by default\n  unit: Unit [optional] - optional angle unit for the angle argument\nExample:\n# Use Vector.turn on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.turn(vector(1.0, 2.0, 3.0), 42.0);","metadata":{"name":"turn","path":"Vector.turn","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.normalise","title":"Vector.normalise","text":"Method: Vector.normalise - returns a normalised copy of this vector\nSyntax:\n  <Vector>.normalise() -> Vector\nExample:\n# Use Vector.normalise on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.normalise();","metadata":{"name":"normalise","path":"Vector.normalise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.transpose","title":"Vector.transpose","text":"Method: Vector.transpose - returns this vector with column/row orientation toggled\nSyntax:\n  <Vector>.transpose() -> Vector\nExample:\n# Use Vector.transpose on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.transpose();","metadata":{"name":"transpose","path":"Vector.transpose","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.translate_origin","title":"Vector.translate_origin","text":"Method: Vector.translate_origin - translates this vector between origin conventions\nSyntax:\n  <Vector>.translate_origin(from: Origin, to: Origin, offset: Vector) -> Vector\nArguments:\n  from: Origin - source origin such as barycentric or geocentric\n  to: Origin - target origin such as barycentric or geocentric\n  offset: Vector - target origin position measured from the source origin\nExample:\n# Use Vector.translate_origin on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.translate_origin(barycentric, barycentric, vector(1.0, 2.0, 3.0));","metadata":{"name":"translate_origin","path":"Vector.translate_origin","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.children","title":"Vector.children","text":"Method: Vector.children - lists child fields and callable members available on this value\nSyntax:\n  <Vector>.children() -> List\nExample:\n# Use Vector.children on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.children();","metadata":{"name":"children","path":"Vector.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.fields","title":"Vector.fields","text":"Method: Vector.fields - returns an object containing the value's plain fields\nSyntax:\n  <Vector>.fields() -> Object\nExample:\n# Use Vector.fields on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.fields();","metadata":{"name":"fields","path":"Vector.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Vector.functions","title":"Vector.functions","text":"Method: Vector.functions - lists callable members available on this value\nSyntax:\n  <Vector>.functions() -> List\nExample:\n# Use Vector.functions on a Vector value\n   let value = vector(1.0, 2.0, 3.0);\n   print value.functions();","metadata":{"name":"functions","path":"Vector.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Matrix","title":"Matrix","text":"Type: Matrix - 3x3 matrix compatible with reference vector transforms\nSyntax:\n  matrix(x0: Number, y0: Number, z0: Number) -> Matrix\n  matrix(from: Axis, to: Axis, time: Time) -> Matrix\n  matrix(m00: Number, m10: Number, m20: Number, m01: Number, m11: Number, m21: Number, m02: Number, m12: Number, m22: Number) -> Matrix\nArguments:\n  x0: Number [optional] - first diagonal value, or first column x for a 9-value matrix\n  y0: Number [optional] - second diagonal value, or first column y for a 9-value matrix\n  z0: Number [optional] - third diagonal value, or first column z for a 9-value matrix\n  from: Axis [optional] - source axis such as icrf, tod, ef, or topographic\n  to: Axis [optional] - target axis such as icrf, tod, ef, or topographic\n  time: Time [optional] - time for the axis transform\n  m00: Number [optional] - row 0 column 0\n  m10: Number [optional] - row 1 column 0\n  m20: Number [optional] - row 2 column 0\n  m01: Number [optional] - row 0 column 1\n  m11: Number [optional] - row 1 column 1\n  m21: Number [optional] - row 2 column 1\n  m02: Number [optional] - row 0 column 2\n  m12: Number [optional] - row 1 column 2\n  m22: Number [optional] - row 2 column 2\nChildren: m00, m10, m20, m01, m11, m21, m02, m12, m22, kind, transpose(), inverse(), determinant(), normalise(), multiply_transpose(), rotate_axis(), children(), fields(), functions()\nExample:\n# Rotate an ICRF vector into Earth-fixed coordinates at a time\n   let t = time(2026,1,1,0,0,0);\n   let m = matrix(icrf, earthfixed, t);\n   let v = m * vector(1, 0, 0);\n   print v.x(), v.y(), v.z();","metadata":{"name":"Matrix","path":"Matrix","kind":"type","aliases":[],"resources":[],"children":["field:Matrix.m00","field:Matrix.m10","field:Matrix.m20","field:Matrix.m01","field:Matrix.m11","field:Matrix.m21","field:Matrix.m02","field:Matrix.m12","field:Matrix.m22","field:Matrix.kind","member:Matrix.transpose","member:Matrix.inverse","member:Matrix.determinant","member:Matrix.normalise","member:Matrix.multiply_transpose","member:Matrix.rotate_axis","member:Matrix.children","member:Matrix.fields","member:Matrix.functions"]}},{"id":"field:Matrix.m00","title":"Matrix.m00","text":"Field: Matrix.m00 - row 0 column 0\nSyntax:\n  <Matrix>.m00 -> Number\nExample:\n# Read the m00 field from a Matrix value\n   print matrix(1.0).m00;","metadata":{"name":"m00","path":"Matrix.m00","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m10","title":"Matrix.m10","text":"Field: Matrix.m10 - row 1 column 0\nSyntax:\n  <Matrix>.m10 -> Number\nExample:\n# Read the m10 field from a Matrix value\n   print matrix(1.0).m10;","metadata":{"name":"m10","path":"Matrix.m10","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m20","title":"Matrix.m20","text":"Field: Matrix.m20 - row 2 column 0\nSyntax:\n  <Matrix>.m20 -> Number\nExample:\n# Read the m20 field from a Matrix value\n   print matrix(1.0).m20;","metadata":{"name":"m20","path":"Matrix.m20","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m01","title":"Matrix.m01","text":"Field: Matrix.m01 - row 0 column 1\nSyntax:\n  <Matrix>.m01 -> Number\nExample:\n# Read the m01 field from a Matrix value\n   print matrix(1.0).m01;","metadata":{"name":"m01","path":"Matrix.m01","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m11","title":"Matrix.m11","text":"Field: Matrix.m11 - row 1 column 1\nSyntax:\n  <Matrix>.m11 -> Number\nExample:\n# Read the m11 field from a Matrix value\n   print matrix(1.0).m11;","metadata":{"name":"m11","path":"Matrix.m11","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m21","title":"Matrix.m21","text":"Field: Matrix.m21 - row 2 column 1\nSyntax:\n  <Matrix>.m21 -> Number\nExample:\n# Read the m21 field from a Matrix value\n   print matrix(1.0).m21;","metadata":{"name":"m21","path":"Matrix.m21","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m02","title":"Matrix.m02","text":"Field: Matrix.m02 - row 0 column 2\nSyntax:\n  <Matrix>.m02 -> Number\nExample:\n# Read the m02 field from a Matrix value\n   print matrix(1.0).m02;","metadata":{"name":"m02","path":"Matrix.m02","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m12","title":"Matrix.m12","text":"Field: Matrix.m12 - row 1 column 2\nSyntax:\n  <Matrix>.m12 -> Number\nExample:\n# Read the m12 field from a Matrix value\n   print matrix(1.0).m12;","metadata":{"name":"m12","path":"Matrix.m12","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.m22","title":"Matrix.m22","text":"Field: Matrix.m22 - row 2 column 2\nSyntax:\n  <Matrix>.m22 -> Number\nExample:\n# Read the m22 field from a Matrix value\n   print matrix(1.0).m22;","metadata":{"name":"m22","path":"Matrix.m22","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Matrix.kind","title":"Matrix.kind","text":"Field: Matrix.kind - matrix representation\nSyntax:\n  <Matrix>.kind -> Text\nExample:\n# Read the kind field from a Matrix value\n   print matrix(1.0).kind;","metadata":{"name":"kind","path":"Matrix.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.transpose","title":"Matrix.transpose","text":"Method: Matrix.transpose - returns the transposed matrix\nSyntax:\n  <Matrix>.transpose() -> Matrix\nExample:\n# Use Matrix.transpose on a Matrix value\n   let value = matrix(1.0);\n   print value.transpose();","metadata":{"name":"transpose","path":"Matrix.transpose","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.inverse","title":"Matrix.inverse","text":"Method: Matrix.inverse - returns the inverse matrix\nSyntax:\n  <Matrix>.inverse() -> Matrix\nExample:\n# Use Matrix.inverse on a Matrix value\n   let value = matrix(1.0);\n   print value.inverse();","metadata":{"name":"inverse","path":"Matrix.inverse","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.determinant","title":"Matrix.determinant","text":"Method: Matrix.determinant - returns the matrix determinant\nSyntax:\n  <Matrix>.determinant() -> Number\nExample:\n# Use Matrix.determinant on a Matrix value\n   let value = matrix(1.0);\n   print value.determinant();","metadata":{"name":"determinant","path":"Matrix.determinant","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.normalise","title":"Matrix.normalise","text":"Method: Matrix.normalise - returns the reference determinant-normalised matrix\nSyntax:\n  <Matrix>.normalise() -> Matrix\nExample:\n# Use Matrix.normalise on a Matrix value\n   let value = matrix(1.0);\n   print value.normalise();","metadata":{"name":"normalise","path":"Matrix.normalise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.multiply_transpose","title":"Matrix.multiply_transpose","text":"Method: Matrix.multiply_transpose - returns transpose(matrix) * vector\nSyntax:\n  <Matrix>.multiply_transpose(vector: Vector) -> Vector\nArguments:\n  vector: Vector - vector to multiply with this matrix transpose\nExample:\n# Use Matrix.multiply_transpose on a Matrix value\n   let value = matrix(1.0);\n   print value.multiply_transpose(vector(1.0, 2.0, 3.0));","metadata":{"name":"multiply_transpose","path":"Matrix.multiply_transpose","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.rotate_axis","title":"Matrix.rotate_axis","text":"Method: Matrix.rotate_axis - rotates this matrix from one axis convention to another\nSyntax:\n  <Matrix>.rotate_axis(from: Axis, to: Axis) -> Matrix\nArguments:\n  from: Axis - source axis such as icrf, tod, ef, or topographic\n  to: Axis - target axis such as icrf, tod, ef, or topographic\nExample:\n# Use Matrix.rotate_axis on a Matrix value\n   let value = matrix(1.0);\n   print value.rotate_axis(icrf, icrf);","metadata":{"name":"rotate_axis","path":"Matrix.rotate_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.children","title":"Matrix.children","text":"Method: Matrix.children - lists child fields and callable members available on this value\nSyntax:\n  <Matrix>.children() -> List\nExample:\n# Use Matrix.children on a Matrix value\n   let value = matrix(1.0);\n   print value.children();","metadata":{"name":"children","path":"Matrix.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.fields","title":"Matrix.fields","text":"Method: Matrix.fields - returns an object containing the value's plain fields\nSyntax:\n  <Matrix>.fields() -> Object\nExample:\n# Use Matrix.fields on a Matrix value\n   let value = matrix(1.0);\n   print value.fields();","metadata":{"name":"fields","path":"Matrix.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Matrix.functions","title":"Matrix.functions","text":"Method: Matrix.functions - lists callable members available on this value\nSyntax:\n  <Matrix>.functions() -> List\nExample:\n# Use Matrix.functions on a Matrix value\n   let value = matrix(1.0);\n   print value.functions();","metadata":{"name":"functions","path":"Matrix.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Unit","title":"Unit","text":"Type: Unit - named unit used when requesting or displaying numeric values\nSyntax:\n  unit(name: Text) -> Unit\nArguments:\n  name: Text - unit name such as km, au, deg, or rad\nChildren: name, dimension, factor_to_base, children(), fields(), functions()\nExample:\n# Inspect named unit descriptors used by numeric functions\n   let angle_unit = unit(\"deg\");\n   let length_unit = unit(\"km\");\n   print angle_unit.name, angle_unit.dimension, length_unit.factor_to_base;","metadata":{"name":"Unit","path":"Unit","kind":"type","aliases":[],"resources":[],"children":["field:Unit.name","field:Unit.dimension","field:Unit.factor_to_base","member:Unit.children","member:Unit.fields","member:Unit.functions"]}},{"id":"field:Unit.name","title":"Unit.name","text":"Field: Unit.name - canonical unit name\nSyntax:\n  <Unit>.name -> Text\nExample:\n# Read the name field from a Unit value\n   print deg.name;","metadata":{"name":"name","path":"Unit.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Unit.dimension","title":"Unit.dimension","text":"Field: Unit.dimension - unit dimension\nSyntax:\n  <Unit>.dimension -> Text\nExample:\n# Read the dimension field from a Unit value\n   print deg.dimension;","metadata":{"name":"dimension","path":"Unit.dimension","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Unit.factor_to_base","title":"Unit.factor_to_base","text":"Field: Unit.factor_to_base - factor to km, rad, or seconds depending on dimension\nSyntax:\n  <Unit>.factor_to_base -> Number\nExample:\n# Read the factor_to_base field from a Unit value\n   print deg.factor_to_base;","metadata":{"name":"factor_to_base","path":"Unit.factor_to_base","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Unit.children","title":"Unit.children","text":"Method: Unit.children - lists child fields and callable members available on this value\nSyntax:\n  <Unit>.children() -> List\nExample:\n# Use Unit.children on a Unit value\n   let value = deg;\n   print value.children();","metadata":{"name":"children","path":"Unit.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Unit.fields","title":"Unit.fields","text":"Method: Unit.fields - returns an object containing the value's plain fields\nSyntax:\n  <Unit>.fields() -> Object\nExample:\n# Use Unit.fields on a Unit value\n   let value = deg;\n   print value.fields();","metadata":{"name":"fields","path":"Unit.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Unit.functions","title":"Unit.functions","text":"Method: Unit.functions - lists callable members available on this value\nSyntax:\n  <Unit>.functions() -> List\nExample:\n# Use Unit.functions on a Unit value\n   let value = deg;\n   print value.functions();","metadata":{"name":"functions","path":"Unit.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:State","title":"State","text":"Type: State - orbital state backed by ephemeris data with lazy derived fields\nSyntax:\n  state(body: Body, time: Time, location: Location, origin: Origin, axis: Axis, correction: Correction, orbit: Orbit, position: Vector, velocity: Vector, mass: Number, xmu: Number) -> State\n  state(template: State, body: Body) -> State\nArguments:\n  body: Body [optional] - solar-system body\n  time: Time [optional] - time for the state; defaults to current UTC time\n  location: Location [optional] - optional observer location\n  origin: Origin [optional] - default origin such as barycentric or geocentric\n  axis: Axis [optional] - default axis such as icrf, tod, ef, or topographic\n  correction: Correction [optional] - default correction model\n  orbit: Orbit [optional] - explicit two-body orbit to resolve into a barycentric ICRF state\n  position: Vector [optional] - explicit barycentric ICRF position in kilometers\n  velocity: Vector [optional] - explicit barycentric ICRF velocity in kilometers per day\n  mass: Number [optional] - override body mass in kg for integrated systems\n  xmu: Number [optional] - override gravitational parameter in km^3/s^2 for integrated systems\n  template: State [optional] - existing state whose time/location/defaults are reused\nChildren: body, time, location, origin, axis, correction, ephemeris, pos_bc_icrf, vel_bc_icrf, pos_gc_icrf, vel_gc_icrf, pos_gc_tod, vel_gc_tod, pos_gc_ef, vel_gc_ef, position(), velocity(), ra(), dec(), geocentric(), topographic(), observer(), orbit_around(), shadow(), limb(), profile(), horizon(), children(), fields(), functions()\nExample:\n# Read a body state vector and use position and velocity lengths\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, icrf, no_correction);\n   print st.position().length(), st.velocity().length();","metadata":{"name":"State","path":"State","kind":"type","aliases":[],"resources":[],"children":["field:State.body","field:State.time","field:State.location","field:State.origin","field:State.axis","field:State.correction","field:State.ephemeris","field:State.pos_bc_icrf","field:State.vel_bc_icrf","field:State.pos_gc_icrf","field:State.vel_gc_icrf","field:State.pos_gc_tod","field:State.vel_gc_tod","field:State.pos_gc_ef","field:State.vel_gc_ef","member:State.position","member:State.velocity","member:State.ra","member:State.dec","member:State.geocentric","member:State.topographic","member:State.observer","member:State.orbit_around","member:State.shadow","member:State.limb","member:State.profile","member:State.horizon","member:State.children","member:State.fields","member:State.functions"]}},{"id":"field:State.body","title":"State.body","text":"Field: State.body - solar-system body\nSyntax:\n  <State>.body -> Body\nExample:\n# Read the body field from a State value\n   print state(sun, time()).body;","metadata":{"name":"body","path":"State.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.time","title":"State.time","text":"Field: State.time - time for the state\nSyntax:\n  <State>.time -> Time\nExample:\n# Read the time field from a State value\n   print state(sun, time()).time;","metadata":{"name":"time","path":"State.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.location","title":"State.location","text":"Field: State.location - optional observer location\nSyntax:\n  <State>.location -> Location\nExample:\n# Read the optional location attached to a topographic state\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(sun, time(2026,1,1,0,0,0)).topographic(loc);\n   print st.location;","metadata":{"name":"location","path":"State.location","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.origin","title":"State.origin","text":"Field: State.origin - default origin used by retrieval methods\nSyntax:\n  <State>.origin -> Origin\nExample:\n# Read the origin field from a State value\n   print state(sun, time()).origin;","metadata":{"name":"origin","path":"State.origin","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.axis","title":"State.axis","text":"Field: State.axis - default axis used by retrieval methods\nSyntax:\n  <State>.axis -> Axis\nExample:\n# Read the axis field from a State value\n   print state(sun, time()).axis;","metadata":{"name":"axis","path":"State.axis","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.correction","title":"State.correction","text":"Field: State.correction - default correction model used by retrieval methods\nSyntax:\n  <State>.correction -> Correction\nExample:\n# Read the correction field from a State value\n   print state(sun, time()).correction;","metadata":{"name":"correction","path":"State.correction","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.ephemeris","title":"State.ephemeris","text":"Field: State.ephemeris - ephemeris resource path used to create the state\nSyntax:\n  <State>.ephemeris -> Text\nExample:\n# Read the ephemeris field from a State value\n   print state(sun, time()).ephemeris;","metadata":{"name":"ephemeris","path":"State.ephemeris","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.pos_bc_icrf","title":"State.pos_bc_icrf","text":"Field: State.pos_bc_icrf - barycentric ICRF position vector\nSyntax:\n  <State>.pos_bc_icrf -> Vector\nExample:\n# Read the pos_bc_icrf field from a State value\n   print state(sun, time()).pos_bc_icrf;","metadata":{"name":"pos_bc_icrf","path":"State.pos_bc_icrf","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.vel_bc_icrf","title":"State.vel_bc_icrf","text":"Field: State.vel_bc_icrf - barycentric ICRF velocity vector\nSyntax:\n  <State>.vel_bc_icrf -> Vector\nExample:\n# Read the vel_bc_icrf field from a State value\n   print state(sun, time()).vel_bc_icrf;","metadata":{"name":"vel_bc_icrf","path":"State.vel_bc_icrf","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.pos_gc_icrf","title":"State.pos_gc_icrf","text":"Field: State.pos_gc_icrf - geocentric ICRF position vector\nSyntax:\n  <State>.pos_gc_icrf -> Vector\nExample:\n# Read the pos_gc_icrf field from a State value\n   print state(sun, time()).pos_gc_icrf;","metadata":{"name":"pos_gc_icrf","path":"State.pos_gc_icrf","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.vel_gc_icrf","title":"State.vel_gc_icrf","text":"Field: State.vel_gc_icrf - geocentric ICRF velocity vector\nSyntax:\n  <State>.vel_gc_icrf -> Vector\nExample:\n# Read the vel_gc_icrf field from a State value\n   print state(sun, time()).vel_gc_icrf;","metadata":{"name":"vel_gc_icrf","path":"State.vel_gc_icrf","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.pos_gc_tod","title":"State.pos_gc_tod","text":"Field: State.pos_gc_tod - geocentric true-of-date position vector\nSyntax:\n  <State>.pos_gc_tod -> Vector\nExample:\n# Read the pos_gc_tod field from a State value\n   print state(sun, time()).pos_gc_tod;","metadata":{"name":"pos_gc_tod","path":"State.pos_gc_tod","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.vel_gc_tod","title":"State.vel_gc_tod","text":"Field: State.vel_gc_tod - geocentric true-of-date velocity vector\nSyntax:\n  <State>.vel_gc_tod -> Vector\nExample:\n# Read the vel_gc_tod field from a State value\n   print state(sun, time()).vel_gc_tod;","metadata":{"name":"vel_gc_tod","path":"State.vel_gc_tod","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.pos_gc_ef","title":"State.pos_gc_ef","text":"Field: State.pos_gc_ef - geocentric earth-fixed position vector\nSyntax:\n  <State>.pos_gc_ef -> Vector\nExample:\n# Read the pos_gc_ef field from a State value\n   print state(sun, time()).pos_gc_ef;","metadata":{"name":"pos_gc_ef","path":"State.pos_gc_ef","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:State.vel_gc_ef","title":"State.vel_gc_ef","text":"Field: State.vel_gc_ef - geocentric earth-fixed velocity vector\nSyntax:\n  <State>.vel_gc_ef -> Vector\nExample:\n# Read the vel_gc_ef field from a State value\n   print state(sun, time()).vel_gc_ef;","metadata":{"name":"vel_gc_ef","path":"State.vel_gc_ef","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:State.position","title":"State.position","text":"Method: State.position - returns the position for this state\nSyntax:\n  <State>.position(location: Location, origin: Origin, axis: Axis, correction: Correction) -> Vector\nArguments:\n  location: Location [optional] - optional observer location for topocentric/topographic requests\n  origin: Origin [optional] - optional target origin such as barycentric or geocentric\n  axis: Axis [optional] - optional target axis such as icrf or earthfixed\n  correction: Correction [optional] - optional correction override such as no_correction or all_corrections\nExample:\n# Use State.position on a State value\n   let value = state(sun, time());\n   print value.position();","metadata":{"name":"position","path":"State.position","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.velocity","title":"State.velocity","text":"Method: State.velocity - returns the velocity for this state\nSyntax:\n  <State>.velocity(location: Location, origin: Origin, axis: Axis, correction: Correction) -> Vector\nArguments:\n  location: Location [optional] - optional observer location for topocentric/topographic requests\n  origin: Origin [optional] - optional target origin such as barycentric or geocentric\n  axis: Axis [optional] - optional target axis such as icrf or earthfixed\n  correction: Correction [optional] - optional correction override such as no_correction or all_corrections\nExample:\n# Use State.velocity on a State value\n   let value = state(sun, time());\n   print value.velocity();","metadata":{"name":"velocity","path":"State.velocity","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.ra","title":"State.ra","text":"Method: State.ra - returns right ascension for this state position; right_ascension is an alias\nSyntax:\n  <State>.ra(location: Location, origin: Origin, axis: Axis, correction: Correction, unit: Unit) -> Number\nArguments:\n  location: Location [optional] - optional observer location for topocentric/topographic requests\n  origin: Origin [optional] - optional target origin such as barycentric or geocentric\n  axis: Axis [optional] - optional target axis such as icrf or true-of-date\n  correction: Correction [optional] - optional correction override such as no_correction or all_corrections\n  unit: Unit [optional] - optional angle unit; degrees by default\nExample:\n# Use State.ra on a State value\n   let value = state(sun, time());\n   print value.ra();","metadata":{"name":"ra","path":"State.ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.dec","title":"State.dec","text":"Method: State.dec - returns declination for this state position; declination is an alias\nSyntax:\n  <State>.dec(location: Location, origin: Origin, axis: Axis, correction: Correction, unit: Unit) -> Number\nArguments:\n  location: Location [optional] - optional observer location for topocentric/topographic requests\n  origin: Origin [optional] - optional target origin such as barycentric or geocentric\n  axis: Axis [optional] - optional target axis such as icrf or true-of-date\n  correction: Correction [optional] - optional correction override such as no_correction or all_corrections\n  unit: Unit [optional] - optional angle unit; degrees by default\nExample:\n# Use State.dec on a State value\n   let value = state(sun, time());\n   print value.dec();","metadata":{"name":"dec","path":"State.dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.geocentric","title":"State.geocentric","text":"Method: State.geocentric - converts this state to a geocentric frame\nSyntax:\n  <State>.geocentric() -> State\nExample:\n# Use State.geocentric on a State value\n   let value = state(sun, time());\n   print value.geocentric();","metadata":{"name":"geocentric","path":"State.geocentric","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.topographic","title":"State.topographic","text":"Method: State.topographic - converts this state to an observer-relative topographic frame\nSyntax:\n  <State>.topographic(location: Location) -> State\nArguments:\n  location: Location - observer location\nExample:\n# Convert a state vector to an explicit location-relative frame\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(sun, time(2026,1,1,0,0,0));\n   print st.topographic(loc);","metadata":{"name":"topographic","path":"State.topographic","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.observer","title":"State.observer","text":"Method: State.observer - creates a body-fixed 3D observer for this state body\nSyntax:\n  <State>.observer(position_or_location: Vector|Location, zenith_or_height: Vector|Number) -> Observer\nArguments:\n  position_or_location: Vector|Location - body-fixed observer position vector, or matching body location\n  zenith_or_height: Vector|Number [optional] - zenith vector for a position, or height in kilometers for a location\nExample:\n# Build an observer on the same body as a state\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(earth, time(2026,1,1,0,0,0));\n   print st.observer(loc).height();","metadata":{"name":"observer","path":"State.observer","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.orbit_around","title":"State.orbit_around","text":"Method: State.orbit_around - creates an osculating orbit around a central state\nSyntax:\n  <State>.orbit_around(central: State, axis: Axis) -> Orbit\nArguments:\n  central: State - central body state at the same epoch\n  axis: Axis [optional] - non-rotating element axis, icrf by default; tod is also accepted\nExample:\n# Derive an orbit for one state around another\n   let t = time(2026,1,1,0,0,0);\n   let earth_state = state(earth, t, barycentric, icrf, no_correction);\n   let sun_state = state(sun, t, barycentric, icrf, no_correction);\n   print earth_state.orbit_around(sun_state).elements().e;","metadata":{"name":"orbit_around","path":"State.orbit_around","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.shadow","title":"State.shadow","text":"Method: State.shadow - creates an instantaneous shadow geometry value\nSyntax:\n  <State>.shadow(blocker: Body) -> Shadow\nArguments:\n  blocker: Body - body casting the sunlight shadow\nExample:\n# Compute the Moon shadow on Earth from an Earth state\n   let earth_state = state(earth, time(2024,4,8,18,40,0));\n   print earth_state.shadow(moon).available();","metadata":{"name":"shadow","path":"State.shadow","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.limb","title":"State.limb","text":"Method: State.limb - computes the apparent limb profile from a body-fixed observer vector\nSyntax:\n  <State>.limb(observer: Vector, north: Vector, samples: Number) -> Array\nArguments:\n  observer: Vector - body-fixed center-to-observer vector in kilometers\n  north: Vector [optional] - direction projected as clock-angle zero; defaults to body north\n  samples: Number [optional] - number of limb samples; defaults to 360\nExample:\n# Compute a sampled apparent limb profile from an outside observer\n   let obs = location(latitude: 0, longitude: 0).observer(0.052);\n   let st = state(moon, time(2026,4,27,8,26,0));\n   print st.limb(obs, 8).length();","metadata":{"name":"limb","path":"State.limb","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.profile","title":"State.profile","text":"Method: State.profile - alias for limb()\nSyntax:\n  <State>.profile(observer: Vector, north: Vector, samples: Number) -> Array\nArguments:\n  observer: Vector - body-fixed center-to-observer vector in kilometers\n  north: Vector [optional] - direction projected as clock-angle zero; defaults to body north\n  samples: Number [optional] - number of limb samples; defaults to 360\nExample:\n# Compute a compact apparent profile from an outside observer\n   let obs = location(latitude: 0, longitude: 0).observer(0.052);\n   let st = state(moon, time(2026,4,27,8,26,0));\n   print st.profile(obs, 8).length();","metadata":{"name":"profile","path":"State.profile","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.horizon","title":"State.horizon","text":"Method: State.horizon - returns local topographic horizon altitude for one heading or all azimuths\nSyntax:\n  <State>.horizon(observer: Observer|Location, heading: Heading|Vector, samples: Number) -> Object|Array\nArguments:\n  observer: Observer|Location - Earth observer, or Earth location promoted to zero-height observer\n  heading: Heading|Vector [optional] - optional compass heading or local topographic vector; omit for a full profile\n  samples: Number [optional] - number of horizon profile samples; defaults to 360 when heading is omitted\nExample:\n# Build a small Earth horizon profile for an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(1.5);\n   let st = state(earth, time(2026,1,1,0,0,0));\n   print st.horizon(obs, 8).available();","metadata":{"name":"horizon","path":"State.horizon","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.children","title":"State.children","text":"Method: State.children - lists child fields and callable members available on this value\nSyntax:\n  <State>.children() -> List\nExample:\n# Use State.children on a State value\n   let value = state(sun, time());\n   print value.children();","metadata":{"name":"children","path":"State.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.fields","title":"State.fields","text":"Method: State.fields - returns an object containing the value's plain fields\nSyntax:\n  <State>.fields() -> Object\nExample:\n# Use State.fields on a State value\n   let value = state(sun, time());\n   print value.fields();","metadata":{"name":"fields","path":"State.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:State.functions","title":"State.functions","text":"Method: State.functions - lists callable members available on this value\nSyntax:\n  <State>.functions() -> List\nExample:\n# Use State.functions on a State value\n   let value = state(sun, time());\n   print value.functions();","metadata":{"name":"functions","path":"State.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Places","title":"Places","text":"Type: Places - GeoNames place lookup database handle\nSyntax:\n  places(name: Text|Number, id: Number, country: Text|Country|Place, admin1: Text|Admin1|Admin2|Place, admin2: Text|Admin2|Place, limit: Number) -> Places\nArguments:\n  name: Text|Number [optional] - place name or search text used to narrow this places view\n  id: Number [optional] - GeoNames id used to narrow this places view\n  country: Text|Country|Place [optional] - country filter for this places view\n  admin1: Text|Admin1|Admin2|Place [optional] - admin1 filter for this places view\n  admin2: Text|Admin2|Place [optional] - admin2 filter for this places view\n  limit: Number [optional] - maximum number of name matches retained by this places view\nChildren: count, type_count, first(), all(), find(), search(), nearest(), nearby(), index(), types(), children(), fields(), functions()\nExample:\n# Search the place database and project names and coordinates\n   let hit = places().find(\"Stavanger\");\n   print hit.name, hit.latitude, hit.longitude;","metadata":{"name":"Places","path":"Places","kind":"type","aliases":[],"resources":[],"children":["field:Places.count","field:Places.type_count","member:Places.first","member:Places.all","member:Places.find","member:Places.search","member:Places.nearest","member:Places.nearby","member:Places.index","member:Places.types","member:Places.children","member:Places.fields","member:Places.functions"]}},{"id":"field:Places.count","title":"Places.count","text":"Field: Places.count - number of retained GeoNames place records\nSyntax:\n  <Places>.count -> Number\nExample:\n# Count records in the configured place database\n   let db = places();\n   print db.count;","metadata":{"name":"count","path":"Places.count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Places.type_count","title":"Places.type_count","text":"Field: Places.type_count - number of retained GeoNames feature-code place types\nSyntax:\n  <Places>.type_count -> Number\nExample:\n# Read the type_count field from a Places value\n   print places().type_count;","metadata":{"name":"type_count","path":"Places.type_count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.first","title":"Places.first","text":"Method: Places.first - returns the first place in this places view\nSyntax:\n  <Places>.first() -> Place|Unavailable\nExample:\n# Use Places.first on a Places value\n   let value = places();\n   print value.first();","metadata":{"name":"first","path":"Places.first","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.all","title":"Places.all","text":"Method: Places.all - lists places from this places view\nSyntax:\n  <Places>.all(limit: Number) -> List\nArguments:\n  limit: Number [optional] - maximum number of places to return; defaults to 10\nExample:\n# Use Places.all on a Places value\n   let value = places();\n   print value.all();","metadata":{"name":"all","path":"Places.all","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.find","title":"Places.find","text":"Method: Places.find - finds the most important exact place-name match\nSyntax:\n  <Places>.find(name: Text|Number, country: Text|Country|Admin1|Admin2|Place, admin1: Text|Admin1|Admin2|Place, admin2: Text|Admin2|Place, kind: Text, population: Number, importance: Number) -> Place|Unavailable\nArguments:\n  name: Text|Number - place name or GeoNames id\n  country: Text|Country|Admin1|Admin2|Place [optional] - ISO-3166 alpha-2 code or country name used to narrow matches\n  admin1: Text|Admin1|Admin2|Place [optional] - first-level GeoNames admin code used to narrow matches\n  admin2: Text|Admin2|Place [optional] - second-level GeoNames admin code used to narrow matches\n  kind: Text [optional] - place kind such as city, town, village, country, or a GeoNames feature code\n  population: Number [optional] - minimum population used to narrow matches\n  importance: Number [optional] - minimum place importance used to narrow matches\nExample:\n# Use Places.find on a Places value\n   let value = places();\n   print value.find(\"value\");","metadata":{"name":"find","path":"Places.find","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.search","title":"Places.search","text":"Method: Places.search - lists exact and prefix place-name matches by importance\nSyntax:\n  <Places>.search(name: Text|Number, country: Text|Country|Admin1|Admin2|Place, admin1: Text|Admin1|Admin2|Place, admin2: Text|Admin2|Place, kind: Text, population: Number, importance: Number, limit: Number) -> List\nArguments:\n  name: Text|Number - place name or GeoNames id\n  country: Text|Country|Admin1|Admin2|Place [optional] - ISO-3166 alpha-2 code or country name used to narrow matches\n  admin1: Text|Admin1|Admin2|Place [optional] - first-level GeoNames admin code used to narrow matches\n  admin2: Text|Admin2|Place [optional] - second-level GeoNames admin code used to narrow matches\n  kind: Text [optional] - place kind such as city, town, village, country, or a GeoNames feature code\n  population: Number [optional] - minimum population used to narrow matches\n  importance: Number [optional] - minimum place importance used to narrow matches\n  limit: Number [optional] - maximum number of places to return\nExample:\n# Use Places.search on a Places value\n   let value = places();\n   print value.search(\"value\");","metadata":{"name":"search","path":"Places.search","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.nearest","title":"Places.nearest","text":"Method: Places.nearest - finds the closest important place to an Earth location\nSyntax:\n  <Places>.nearest(location: Location, country: Text|Country|Admin1|Admin2|Place, admin1: Text|Admin1|Admin2|Place, admin2: Text|Admin2|Place, kind: Text, population: Number, importance: Number) -> Place|Unavailable\nArguments:\n  location: Location - Earth location to search around\n  country: Text|Country|Admin1|Admin2|Place [optional] - ISO-3166 alpha-2 code or country name used to narrow matches\n  admin1: Text|Admin1|Admin2|Place [optional] - first-level GeoNames admin code used to narrow matches\n  admin2: Text|Admin2|Place [optional] - second-level GeoNames admin code used to narrow matches\n  kind: Text [optional] - place kind such as city, town, village, country, or a GeoNames feature code\n  population: Number [optional] - minimum population used to narrow matches\n  importance: Number [optional] - minimum place importance used to narrow matches\nExample:\n# Use Places.nearest on a Places value\n   let value = places();\n   print value.nearest(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"nearest","path":"Places.nearest","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.nearby","title":"Places.nearby","text":"Method: Places.nearby - lists nearby places ranked by distance and importance\nSyntax:\n  <Places>.nearby(location: Location, country: Text|Country|Admin1|Admin2|Place, admin1: Text|Admin1|Admin2|Place, admin2: Text|Admin2|Place, kind: Text, population: Number, importance: Number, limit: Number) -> List\nArguments:\n  location: Location - Earth location to search around\n  country: Text|Country|Admin1|Admin2|Place [optional] - ISO-3166 alpha-2 code or country name used to narrow matches\n  admin1: Text|Admin1|Admin2|Place [optional] - first-level GeoNames admin code used to narrow matches\n  admin2: Text|Admin2|Place [optional] - second-level GeoNames admin code used to narrow matches\n  kind: Text [optional] - place kind such as city, town, village, country, or a GeoNames feature code\n  population: Number [optional] - minimum population used to narrow matches\n  importance: Number [optional] - minimum place importance used to narrow matches\n  limit: Number [optional] - maximum number of places to return\nExample:\n# Use Places.nearby on a Places value\n   let value = places();\n   print value.nearby(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"nearby","path":"Places.nearby","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.index","title":"Places.index","text":"Method: Places.index - returns the nth place in this places view by importance\nSyntax:\n  <Places>.index(index: Number) -> Place|Unavailable\nArguments:\n  index: Number - 1-based place index in this places view\nExample:\n# Use Places.index on a Places value\n   let value = places();\n   print value.index(42.0);","metadata":{"name":"index","path":"Places.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.types","title":"Places.types","text":"Method: Places.types - lists GeoNames feature-code place types\nSyntax:\n  <Places>.types() -> List\nExample:\n# Use Places.types on a Places value\n   let value = places();\n   print value.types();","metadata":{"name":"types","path":"Places.types","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.children","title":"Places.children","text":"Method: Places.children - lists child fields and callable members available on this value\nSyntax:\n  <Places>.children() -> List\nExample:\n# Use Places.children on a Places value\n   let value = places();\n   print value.children();","metadata":{"name":"children","path":"Places.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.fields","title":"Places.fields","text":"Method: Places.fields - returns an object containing the value's plain fields\nSyntax:\n  <Places>.fields() -> Object\nExample:\n# Use Places.fields on a Places value\n   let value = places();\n   print value.fields();","metadata":{"name":"fields","path":"Places.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Places.functions","title":"Places.functions","text":"Method: Places.functions - lists callable members available on this value\nSyntax:\n  <Places>.functions() -> List\nExample:\n# Use Places.functions on a Places value\n   let value = places();\n   print value.functions();","metadata":{"name":"functions","path":"Places.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Place","title":"Place","text":"Type: Place - GeoNames place record with location and feature metadata\nSyntax:\n  place(id: Number) -> Place|Unavailable\n  place(name: Text, location: Location, timezone: Timezone|Text) -> Place\nArguments:\n  id: Number [optional] - GeoNames place id\n  name: Text [optional] - custom place name\n  location: Location [optional] - Earth location\n  timezone: Timezone|Text [optional] - timezone; inferred from location when omitted\nChildren: id, name, ascii_name, names, latitude, longitude, feature_class, feature_code, place_type, country_code, admin1_code, admin2_code, population, elevation_m, dem_m, timezone_id, modified, importance, distance_km, location(), timezone(), country(), admin1(), admin2(), children(), fields(), functions()\nExample:\n# Resolve a place name and use its location for local noon altitude\n   let place = places().find(\"Stavanger\");\n   print place.name, altitude(sun, time(2026,6,21,12,0,0), place.location());","metadata":{"name":"Place","path":"Place","kind":"type","aliases":[],"resources":[],"children":["field:Place.id","field:Place.name","field:Place.ascii_name","field:Place.names","field:Place.latitude","field:Place.longitude","field:Place.feature_class","field:Place.feature_code","field:Place.place_type","field:Place.country_code","field:Place.admin1_code","field:Place.admin2_code","field:Place.population","field:Place.elevation_m","field:Place.dem_m","field:Place.timezone_id","field:Place.modified","field:Place.importance","field:Place.distance_km","member:Place.location","member:Place.timezone","member:Place.country","member:Place.admin1","member:Place.admin2","member:Place.children","member:Place.fields","member:Place.functions"]}},{"id":"field:Place.id","title":"Place.id","text":"Field: Place.id - GeoNames integer id\nSyntax:\n  <Place>.id -> Number\nExample:\n# Read the id field from a Place value\n   print places().find(\"Oslo\").id;","metadata":{"name":"id","path":"Place.id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.name","title":"Place.name","text":"Field: Place.name - primary GeoNames place name\nSyntax:\n  <Place>.name -> Text\nExample:\n# Read the name field from a Place value\n   print places().find(\"Oslo\").name;","metadata":{"name":"name","path":"Place.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.ascii_name","title":"Place.ascii_name","text":"Field: Place.ascii_name - plain-ASCII GeoNames name\nSyntax:\n  <Place>.ascii_name -> Text|Nil\nExample:\n# Read the ascii_name field from a Place value\n   print places().find(\"Oslo\").ascii_name;","metadata":{"name":"ascii_name","path":"Place.ascii_name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.names","title":"Place.names","text":"Field: Place.names - primary, ASCII, and alternate place names\nSyntax:\n  <Place>.names -> List\nExample:\n# Read the names field from a Place value\n   print places().find(\"Oslo\").names;","metadata":{"name":"names","path":"Place.names","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.latitude","title":"Place.latitude","text":"Field: Place.latitude - WGS84 latitude in degrees\nSyntax:\n  <Place>.latitude -> Number\nExample:\n# Read the latitude field from a Place value\n   print places().find(\"Oslo\").latitude;","metadata":{"name":"latitude","path":"Place.latitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.longitude","title":"Place.longitude","text":"Field: Place.longitude - WGS84 longitude in degrees\nSyntax:\n  <Place>.longitude -> Number\nExample:\n# Read the longitude field from a Place value\n   print places().find(\"Oslo\").longitude;","metadata":{"name":"longitude","path":"Place.longitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.feature_class","title":"Place.feature_class","text":"Field: Place.feature_class - GeoNames feature class\nSyntax:\n  <Place>.feature_class -> Text\nExample:\n# Read the feature_class field from a Place value\n   print places().find(\"Oslo\").feature_class;","metadata":{"name":"feature_class","path":"Place.feature_class","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.feature_code","title":"Place.feature_code","text":"Field: Place.feature_code - GeoNames feature code\nSyntax:\n  <Place>.feature_code -> Text\nExample:\n# Read the feature_code field from a Place value\n   print places().find(\"Oslo\").feature_code;","metadata":{"name":"feature_code","path":"Place.feature_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.place_type","title":"Place.place_type","text":"Field: Place.place_type - GeoNames feature-code type metadata\nSyntax:\n  <Place>.place_type -> Object|Nil\nExample:\n# Read the place_type field from a Place value\n   print places().find(\"Oslo\").place_type;","metadata":{"name":"place_type","path":"Place.place_type","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.country_code","title":"Place.country_code","text":"Field: Place.country_code - ISO-3166 alpha-2 country code\nSyntax:\n  <Place>.country_code -> Text|Nil\nExample:\n# Read the country_code field from a Place value\n   print places().find(\"Oslo\").country_code;","metadata":{"name":"country_code","path":"Place.country_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.admin1_code","title":"Place.admin1_code","text":"Field: Place.admin1_code - GeoNames first administrative division code\nSyntax:\n  <Place>.admin1_code -> Text|Nil\nExample:\n# Read the admin1_code field from a Place value\n   print places().find(\"Oslo\").admin1_code;","metadata":{"name":"admin1_code","path":"Place.admin1_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.admin2_code","title":"Place.admin2_code","text":"Field: Place.admin2_code - GeoNames second administrative division code\nSyntax:\n  <Place>.admin2_code -> Text|Nil\nExample:\n# Read the admin2_code field from a Place value\n   print places().find(\"Oslo\").admin2_code;","metadata":{"name":"admin2_code","path":"Place.admin2_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.population","title":"Place.population","text":"Field: Place.population - GeoNames population value, or zero when unavailable\nSyntax:\n  <Place>.population -> Number\nExample:\n# Read the population field from a Place value\n   print places().find(\"Oslo\").population;","metadata":{"name":"population","path":"Place.population","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.elevation_m","title":"Place.elevation_m","text":"Field: Place.elevation_m - GeoNames elevation in meters\nSyntax:\n  <Place>.elevation_m -> Number|Nil\nExample:\n# Read the elevation_m field from a Place value\n   print places().find(\"Oslo\").elevation_m;","metadata":{"name":"elevation_m","path":"Place.elevation_m","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.dem_m","title":"Place.dem_m","text":"Field: Place.dem_m - GeoNames DEM average elevation in meters\nSyntax:\n  <Place>.dem_m -> Number|Nil\nExample:\n# Read the dem_m field from a Place value\n   print places().find(\"Oslo\").dem_m;","metadata":{"name":"dem_m","path":"Place.dem_m","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.timezone_id","title":"Place.timezone_id","text":"Field: Place.timezone_id - IANA timezone id from GeoNames\nSyntax:\n  <Place>.timezone_id -> Text|Nil\nExample:\n# Read the timezone_id field from a Place value\n   print places().find(\"Oslo\").timezone_id;","metadata":{"name":"timezone_id","path":"Place.timezone_id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.modified","title":"Place.modified","text":"Field: Place.modified - GeoNames modification date\nSyntax:\n  <Place>.modified -> Text|Nil\nExample:\n# Read the modified field from a Place value\n   print places().find(\"Oslo\").modified;","metadata":{"name":"modified","path":"Place.modified","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.importance","title":"Place.importance","text":"Field: Place.importance - Astrologos-computed importance score from feature type and population\nSyntax:\n  <Place>.importance -> Number\nExample:\n# Read the importance field from a Place value\n   print places().find(\"Oslo\").importance;","metadata":{"name":"importance","path":"Place.importance","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Place.distance_km","title":"Place.distance_km","text":"Field: Place.distance_km - distance from the query location in kilometers\nSyntax:\n  <Place>.distance_km -> Number|Nil\nExample:\n# Read the distance_km field from a Place value\n   print places().find(\"Oslo\").distance_km;","metadata":{"name":"distance_km","path":"Place.distance_km","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.location","title":"Place.location","text":"Method: Place.location - returns this place as an Earth latitude/longitude location\nSyntax:\n  <Place>.location() -> Location\nExample:\n# Use Place.location on a Place value\n   let value = places().find(\"Oslo\");\n   print value.location();","metadata":{"name":"location","path":"Place.location","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.timezone","title":"Place.timezone","text":"Method: Place.timezone - returns this place's IANA timezone as a Timezone object\nSyntax:\n  <Place>.timezone() -> Timezone|Nil\nExample:\n# Use Place.timezone on a Place value\n   let value = places().find(\"Oslo\");\n   print value.timezone();","metadata":{"name":"timezone","path":"Place.timezone","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.country","title":"Place.country","text":"Method: Place.country - returns this place's country as a Country object\nSyntax:\n  <Place>.country() -> Country|Nil\nExample:\n# Use Place.country on a Place value\n   let value = places().find(\"Oslo\");\n   print value.country();","metadata":{"name":"country","path":"Place.country","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.admin1","title":"Place.admin1","text":"Method: Place.admin1 - returns this place's first-level admin region as an Admin1 object\nSyntax:\n  <Place>.admin1() -> Admin1|Nil\nExample:\n# Use Place.admin1 on a Place value\n   let value = places().find(\"Oslo\");\n   print value.admin1();","metadata":{"name":"admin1","path":"Place.admin1","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.admin2","title":"Place.admin2","text":"Method: Place.admin2 - returns this place's second-level admin region as an Admin2 object\nSyntax:\n  <Place>.admin2() -> Admin2|Nil\nExample:\n# Use Place.admin2 on a Place value\n   let value = places().find(\"Oslo\");\n   print value.admin2();","metadata":{"name":"admin2","path":"Place.admin2","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.children","title":"Place.children","text":"Method: Place.children - lists child fields and callable members available on this value\nSyntax:\n  <Place>.children() -> List\nExample:\n# Use Place.children on a Place value\n   let value = places().find(\"Oslo\");\n   print value.children();","metadata":{"name":"children","path":"Place.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.fields","title":"Place.fields","text":"Method: Place.fields - returns an object containing the value's plain fields\nSyntax:\n  <Place>.fields() -> Object\nExample:\n# Use Place.fields on a Place value\n   let value = places().find(\"Oslo\");\n   print value.fields();","metadata":{"name":"fields","path":"Place.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Place.functions","title":"Place.functions","text":"Method: Place.functions - lists callable members available on this value\nSyntax:\n  <Place>.functions() -> List\nExample:\n# Use Place.functions on a Place value\n   let value = places().find(\"Oslo\");\n   print value.functions();","metadata":{"name":"functions","path":"Place.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Country","title":"Country","text":"Type: Country - ISO country used to inspect and filter places\nSyntax:\n  country(country: Text|Place|Country) -> Country\nArguments:\n  country: Text|Place|Country - country name, ISO alpha-2 code, Place, or Country\nChildren: code, name, place_id, children(), fields(), functions()\nExample:\n# Resolve a country code before narrowing a place search\n   let no = country(\"NO\");\n   let hits = places(no).find(\"Oslo\");\n   print no.name, hits.name;","metadata":{"name":"Country","path":"Country","kind":"type","aliases":[],"resources":[],"children":["field:Country.code","field:Country.name","field:Country.place_id","member:Country.children","member:Country.fields","member:Country.functions"]}},{"id":"field:Country.code","title":"Country.code","text":"Field: Country.code - ISO-3166 alpha-2 country code\nSyntax:\n  <Country>.code -> Text\nExample:\n# Read the code field from a Country value\n   print country(\"Norway\").code;","metadata":{"name":"code","path":"Country.code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Country.name","title":"Country.name","text":"Field: Country.name - resolved country name when available from the places store\nSyntax:\n  <Country>.name -> Text|Nil\nExample:\n# Read the name field from a Country value\n   print country(\"Norway\").name;","metadata":{"name":"name","path":"Country.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Country.place_id","title":"Country.place_id","text":"Field: Country.place_id - GeoNames id of the country record when available\nSyntax:\n  <Country>.place_id -> Number|Nil\nExample:\n# Read the place_id field from a Country value\n   print country(\"Norway\").place_id;","metadata":{"name":"place_id","path":"Country.place_id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Country.children","title":"Country.children","text":"Method: Country.children - lists child fields and callable members available on this value\nSyntax:\n  <Country>.children() -> List\nExample:\n# Use Country.children on a Country value\n   let value = country(\"Norway\");\n   print value.children();","metadata":{"name":"children","path":"Country.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Country.fields","title":"Country.fields","text":"Method: Country.fields - returns an object containing the value's plain fields\nSyntax:\n  <Country>.fields() -> Object\nExample:\n# Use Country.fields on a Country value\n   let value = country(\"Norway\");\n   print value.fields();","metadata":{"name":"fields","path":"Country.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Country.functions","title":"Country.functions","text":"Method: Country.functions - lists callable members available on this value\nSyntax:\n  <Country>.functions() -> List\nExample:\n# Use Country.functions on a Country value\n   let value = country(\"Norway\");\n   print value.functions();","metadata":{"name":"functions","path":"Country.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Admin1","title":"Admin1","text":"Type: Admin1 - first-level GeoNames administrative region used to filter places\nSyntax:\n  admin1(admin1: Text|Number|Admin1, country: Text|Country|Place) -> Admin1\nArguments:\n  admin1: Text|Number|Admin1 - admin1 name or GeoNames admin1 code\n  country: Text|Country|Place - country containing the admin1 region\nChildren: country_code, code, name, place_id, children(), fields(), functions()\nExample:\n# Filter Norwegian places by first-level administrative region\n   let region = admin1(\"Rogaland\", country(\"NO\"));\n   let hits = places(region).find(\"Stavanger\");\n   print region.name, hits.name;","metadata":{"name":"Admin1","path":"Admin1","kind":"type","aliases":[],"resources":[],"children":["field:Admin1.country_code","field:Admin1.code","field:Admin1.name","field:Admin1.place_id","member:Admin1.children","member:Admin1.fields","member:Admin1.functions"]}},{"id":"field:Admin1.country_code","title":"Admin1.country_code","text":"Field: Admin1.country_code - ISO-3166 alpha-2 country code\nSyntax:\n  <Admin1>.country_code -> Text\nExample:\n# Read the country_code field from a Admin1 value\n   print admin1(\"Akershus\", country(\"NO\")).country_code;","metadata":{"name":"country_code","path":"Admin1.country_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin1.code","title":"Admin1.code","text":"Field: Admin1.code - GeoNames admin1 code\nSyntax:\n  <Admin1>.code -> Text\nExample:\n# Read the code field from a Admin1 value\n   print admin1(\"Akershus\", country(\"NO\")).code;","metadata":{"name":"code","path":"Admin1.code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin1.name","title":"Admin1.name","text":"Field: Admin1.name - resolved admin1 name\nSyntax:\n  <Admin1>.name -> Text|Nil\nExample:\n# Read the name field from a Admin1 value\n   print admin1(\"Akershus\", country(\"NO\")).name;","metadata":{"name":"name","path":"Admin1.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin1.place_id","title":"Admin1.place_id","text":"Field: Admin1.place_id - GeoNames id of the admin1 record\nSyntax:\n  <Admin1>.place_id -> Number|Nil\nExample:\n# Read the place_id field from a Admin1 value\n   print admin1(\"Akershus\", country(\"NO\")).place_id;","metadata":{"name":"place_id","path":"Admin1.place_id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Admin1.children","title":"Admin1.children","text":"Method: Admin1.children - lists child fields and callable members available on this value\nSyntax:\n  <Admin1>.children() -> List\nExample:\n# Use Admin1.children on a Admin1 value\n   let value = admin1(\"Akershus\", country(\"NO\"));\n   print value.children();","metadata":{"name":"children","path":"Admin1.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Admin1.fields","title":"Admin1.fields","text":"Method: Admin1.fields - returns an object containing the value's plain fields\nSyntax:\n  <Admin1>.fields() -> Object\nExample:\n# Use Admin1.fields on a Admin1 value\n   let value = admin1(\"Akershus\", country(\"NO\"));\n   print value.fields();","metadata":{"name":"fields","path":"Admin1.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Admin1.functions","title":"Admin1.functions","text":"Method: Admin1.functions - lists callable members available on this value\nSyntax:\n  <Admin1>.functions() -> List\nExample:\n# Use Admin1.functions on a Admin1 value\n   let value = admin1(\"Akershus\", country(\"NO\"));\n   print value.functions();","metadata":{"name":"functions","path":"Admin1.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Admin2","title":"Admin2","text":"Type: Admin2 - second-level GeoNames administrative region used to filter places\nSyntax:\n  admin2(admin2: Text|Number|Admin2, admin1: Admin1|Place) -> Admin2\nArguments:\n  admin2: Text|Number|Admin2 - admin2 name or GeoNames admin2 code\n  admin1: Admin1|Place - admin1 region containing the admin2 region\nChildren: country_code, admin1_code, code, name, place_id, children(), fields(), functions()\nExample:\n# Filter places through a second-level administrative area\n   let county = admin1(\"Rogaland\", country(\"NO\"));\n   let area = admin2(\"Stavanger\", county);\n   let hits = places(area).find(\"Stavanger\");\n   print area.name, hits.name;","metadata":{"name":"Admin2","path":"Admin2","kind":"type","aliases":[],"resources":[],"children":["field:Admin2.country_code","field:Admin2.admin1_code","field:Admin2.code","field:Admin2.name","field:Admin2.place_id","member:Admin2.children","member:Admin2.fields","member:Admin2.functions"]}},{"id":"field:Admin2.country_code","title":"Admin2.country_code","text":"Field: Admin2.country_code - ISO-3166 alpha-2 country code\nSyntax:\n  <Admin2>.country_code -> Text\nExample:\n# Read the country_code field from a Admin2 value\n   print admin2(\"3201\", admin1(\"01\", norway)).country_code;","metadata":{"name":"country_code","path":"Admin2.country_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin2.admin1_code","title":"Admin2.admin1_code","text":"Field: Admin2.admin1_code - GeoNames admin1 code\nSyntax:\n  <Admin2>.admin1_code -> Text\nExample:\n# Read the admin1_code field from a Admin2 value\n   print admin2(\"3201\", admin1(\"01\", norway)).admin1_code;","metadata":{"name":"admin1_code","path":"Admin2.admin1_code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin2.code","title":"Admin2.code","text":"Field: Admin2.code - GeoNames admin2 code\nSyntax:\n  <Admin2>.code -> Text\nExample:\n# Read the code field from a Admin2 value\n   print admin2(\"3201\", admin1(\"01\", norway)).code;","metadata":{"name":"code","path":"Admin2.code","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin2.name","title":"Admin2.name","text":"Field: Admin2.name - resolved admin2 name\nSyntax:\n  <Admin2>.name -> Text|Nil\nExample:\n# Read the name field from a Admin2 value\n   print admin2(\"3201\", admin1(\"01\", norway)).name;","metadata":{"name":"name","path":"Admin2.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Admin2.place_id","title":"Admin2.place_id","text":"Field: Admin2.place_id - GeoNames id of the admin2 record\nSyntax:\n  <Admin2>.place_id -> Number|Nil\nExample:\n# Read the place_id field from a Admin2 value\n   print admin2(\"3201\", admin1(\"01\", norway)).place_id;","metadata":{"name":"place_id","path":"Admin2.place_id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Admin2.children","title":"Admin2.children","text":"Method: Admin2.children - lists child fields and callable members available on this value\nSyntax:\n  <Admin2>.children() -> List\nExample:\n# Use Admin2.children on a Admin2 value\n   let value = admin2(\"3201\", admin1(\"01\", norway));\n   print value.children();","metadata":{"name":"children","path":"Admin2.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Admin2.fields","title":"Admin2.fields","text":"Method: Admin2.fields - returns an object containing the value's plain fields\nSyntax:\n  <Admin2>.fields() -> Object\nExample:\n# Use Admin2.fields on a Admin2 value\n   let value = admin2(\"3201\", admin1(\"01\", norway));\n   print value.fields();","metadata":{"name":"fields","path":"Admin2.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Admin2.functions","title":"Admin2.functions","text":"Method: Admin2.functions - lists callable members available on this value\nSyntax:\n  <Admin2>.functions() -> List\nExample:\n# Use Admin2.functions on a Admin2 value\n   let value = admin2(\"3201\", admin1(\"01\", norway));\n   print value.functions();","metadata":{"name":"functions","path":"Admin2.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Timezones","title":"Timezones","text":"Type: Timezones - IANA timezone lookup database handle\nSyntax:\n  timezones() -> Timezones\nChildren: count, release, find(), at(), ids(), validate_places(), children(), fields(), functions()\nExample:\n# Search timezone names and print the matched zone\n   let zone = timezones().find(\"Europe/Oslo\");\n   print zone.name;","metadata":{"name":"Timezones","path":"Timezones","kind":"type","aliases":[],"resources":[],"children":["field:Timezones.count","field:Timezones.release","member:Timezones.find","member:Timezones.at","member:Timezones.ids","member:Timezones.validate_places","member:Timezones.children","member:Timezones.fields","member:Timezones.functions"]}},{"id":"field:Timezones.count","title":"Timezones.count","text":"Field: Timezones.count - number of timezone records\nSyntax:\n  <Timezones>.count -> Number\nExample:\n# Count records in the timezone database\n   let db = timezones();\n   print db.count;","metadata":{"name":"count","path":"Timezones.count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezones.release","title":"Timezones.release","text":"Field: Timezones.release - IANA/timezone-boundary release identifier\nSyntax:\n  <Timezones>.release -> Text|Nil\nExample:\n# Read the release field from a Timezones value\n   print timezones().release;","metadata":{"name":"release","path":"Timezones.release","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.find","title":"Timezones.find","text":"Method: Timezones.find - finds a timezone by IANA id\nSyntax:\n  <Timezones>.find(name: Text) -> Timezone|Unavailable\nArguments:\n  name: Text - IANA timezone id\nExample:\n# Use Timezones.find on a Timezones value\n   let value = timezones();\n   print value.find(\"value\");","metadata":{"name":"find","path":"Timezones.find","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.at","title":"Timezones.at","text":"Method: Timezones.at - finds the timezone containing an Earth location\nSyntax:\n  <Timezones>.at(location: Location) -> Timezone|Unavailable\nArguments:\n  location: Location - Earth location to look up\nExample:\n# Use Timezones.at on a Timezones value\n   let value = timezones();\n   print value.at(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"at","path":"Timezones.at","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.ids","title":"Timezones.ids","text":"Method: Timezones.ids - lists timezone ids in the database\nSyntax:\n  <Timezones>.ids() -> List\nExample:\n# Use Timezones.ids on a Timezones value\n   let value = timezones();\n   print value.ids();","metadata":{"name":"ids","path":"Timezones.ids","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.validate_places","title":"Timezones.validate_places","text":"Method: Timezones.validate_places - checks that place timezone ids resolve in this timezone database\nSyntax:\n  <Timezones>.validate_places(places: Places) -> Object\nArguments:\n  places: Places - places database to validate\nExample:\n# Prepare timezone and place databases for validation\n   let zones = timezones();\n   let subset = places(country(\"VA\"));\n   print zones.find(\"Europe/Oslo\").id, subset.count;","metadata":{"name":"validate_places","path":"Timezones.validate_places","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.children","title":"Timezones.children","text":"Method: Timezones.children - lists child fields and callable members available on this value\nSyntax:\n  <Timezones>.children() -> List\nExample:\n# Use Timezones.children on a Timezones value\n   let value = timezones();\n   print value.children();","metadata":{"name":"children","path":"Timezones.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.fields","title":"Timezones.fields","text":"Method: Timezones.fields - returns an object containing the value's plain fields\nSyntax:\n  <Timezones>.fields() -> Object\nExample:\n# Use Timezones.fields on a Timezones value\n   let value = timezones();\n   print value.fields();","metadata":{"name":"fields","path":"Timezones.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezones.functions","title":"Timezones.functions","text":"Method: Timezones.functions - lists callable members available on this value\nSyntax:\n  <Timezones>.functions() -> List\nExample:\n# Use Timezones.functions on a Timezones value\n   let value = timezones();\n   print value.functions();","metadata":{"name":"functions","path":"Timezones.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Timezone","title":"Timezone","text":"Type: Timezone - IANA timezone with optional boundary and representative-location metadata\nSyntax:\n  timezone(timezone: Text|Location|Timezone) -> Timezone\nArguments:\n  timezone: Text|Location|Timezone - IANA timezone id, Location, or existing Timezone\nChildren: id, aliases, countries, comment, latitude, longitude, release, local(), offset(), location(), children(), fields(), functions()\nExample:\n# Resolve the timezone for a location and format a local time\n   let zone = timezone(location(58.9666667, 5.7333333));\n   let local = time(2026,6,21,12,0,0).local(zone);\n   print zone.name, local.iso;","metadata":{"name":"Timezone","path":"Timezone","kind":"type","aliases":[],"resources":[],"children":["field:Timezone.id","field:Timezone.aliases","field:Timezone.countries","field:Timezone.comment","field:Timezone.latitude","field:Timezone.longitude","field:Timezone.release","member:Timezone.local","member:Timezone.offset","member:Timezone.location","member:Timezone.children","member:Timezone.fields","member:Timezone.functions"]}},{"id":"field:Timezone.id","title":"Timezone.id","text":"Field: Timezone.id - IANA timezone identifier\nSyntax:\n  <Timezone>.id -> Text\nExample:\n# Read the id field from a Timezone value\n   print timezone(\"Europe/Oslo\").id;","metadata":{"name":"id","path":"Timezone.id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezone.aliases","title":"Timezone.aliases","text":"Field: Timezone.aliases - IANA Link names that resolve to this timezone\nSyntax:\n  <Timezone>.aliases -> List\nExample:\n# Read the aliases field from a Timezone value\n   print timezone(\"Europe/Oslo\").aliases;","metadata":{"name":"aliases","path":"Timezone.aliases","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezone.countries","title":"Timezone.countries","text":"Field: Timezone.countries - ISO country codes listed for this timezone\nSyntax:\n  <Timezone>.countries -> List\nExample:\n# Read the countries field from a Timezone value\n   print timezone(\"Europe/Oslo\").countries;","metadata":{"name":"countries","path":"Timezone.countries","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezone.comment","title":"Timezone.comment","text":"Field: Timezone.comment - IANA zone table comment\nSyntax:\n  <Timezone>.comment -> Text|Nil\nExample:\n# Read the comment field from a Timezone value\n   print timezone(\"Europe/Oslo\").comment;","metadata":{"name":"comment","path":"Timezone.comment","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezone.latitude","title":"Timezone.latitude","text":"Field: Timezone.latitude - representative latitude from IANA zone table\nSyntax:\n  <Timezone>.latitude -> Number|Nil\nExample:\n# Check whether a timezone record has representative latitude metadata\n   let zone = timezone(\"Europe/Oslo\");\n   print zone.id, zone.latitude.available();","metadata":{"name":"latitude","path":"Timezone.latitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezone.longitude","title":"Timezone.longitude","text":"Field: Timezone.longitude - representative longitude from IANA zone table\nSyntax:\n  <Timezone>.longitude -> Number|Nil\nExample:\n# Check whether a timezone record has representative longitude metadata\n   let zone = timezone(\"Europe/Oslo\");\n   print zone.id, zone.longitude.available();","metadata":{"name":"longitude","path":"Timezone.longitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Timezone.release","title":"Timezone.release","text":"Field: Timezone.release - IANA/timezone-boundary release identifier\nSyntax:\n  <Timezone>.release -> Text|Nil\nExample:\n# Read the release field from a Timezone value\n   print timezone(\"Europe/Oslo\").release;","metadata":{"name":"release","path":"Timezone.release","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezone.local","title":"Timezone.local","text":"Method: Timezone.local - converts a UTC Time into this timezone\nSyntax:\n  <Timezone>.local(time: Time) -> LocalTime\nArguments:\n  time: Time - UTC time to convert\nExample:\n# Use Timezone.local on a Timezone value\n   let value = timezone(\"Europe/Oslo\");\n   print value.local(time());","metadata":{"name":"local","path":"Timezone.local","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezone.offset","title":"Timezone.offset","text":"Method: Timezone.offset - returns this timezone's UTC offset at a Time\nSyntax:\n  <Timezone>.offset(time: Time) -> Object\nArguments:\n  time: Time - UTC time to convert\nExample:\n# Use Timezone.offset on a Timezone value\n   let value = timezone(\"Europe/Oslo\");\n   print value.offset(time());","metadata":{"name":"offset","path":"Timezone.offset","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezone.location","title":"Timezone.location","text":"Method: Timezone.location - returns the representative IANA location for this timezone\nSyntax:\n  <Timezone>.location() -> Location|Nil\nExample:\n# Check whether a timezone record has a representative location\n   let zone = timezone(\"Europe/Oslo\");\n   print zone.id, zone.location().available();","metadata":{"name":"location","path":"Timezone.location","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezone.children","title":"Timezone.children","text":"Method: Timezone.children - lists child fields and callable members available on this value\nSyntax:\n  <Timezone>.children() -> List\nExample:\n# Use Timezone.children on a Timezone value\n   let value = timezone(\"Europe/Oslo\");\n   print value.children();","metadata":{"name":"children","path":"Timezone.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezone.fields","title":"Timezone.fields","text":"Method: Timezone.fields - returns an object containing the value's plain fields\nSyntax:\n  <Timezone>.fields() -> Object\nExample:\n# Use Timezone.fields on a Timezone value\n   let value = timezone(\"Europe/Oslo\");\n   print value.fields();","metadata":{"name":"fields","path":"Timezone.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Timezone.functions","title":"Timezone.functions","text":"Method: Timezone.functions - lists callable members available on this value\nSyntax:\n  <Timezone>.functions() -> List\nExample:\n# Use Timezone.functions on a Timezone value\n   let value = timezone(\"Europe/Oslo\");\n   print value.functions();","metadata":{"name":"functions","path":"Timezone.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Stars","title":"Stars","text":"Type: Stars - Yale Bright Star Catalogue database handle\nSyntax:\n  stars() -> Stars\nChildren: count, find(), glob(), nearest(), all(), visible(), children(), fields(), functions()\nExample:\n# Search a star catalog and print bright-star directions\n   let hits = stars().find(\"sirius\");\n   print hits.name, hits.ra, hits.dec;","metadata":{"name":"Stars","path":"Stars","kind":"type","aliases":[],"resources":[],"children":["field:Stars.count","member:Stars.find","member:Stars.glob","member:Stars.nearest","member:Stars.all","member:Stars.visible","member:Stars.children","member:Stars.fields","member:Stars.functions"]}},{"id":"field:Stars.count","title":"Stars.count","text":"Field: Stars.count - number of catalog stars\nSyntax:\n  <Stars>.count -> Number\nExample:\n# Read the count field from a Stars value\n   print stars().count;","metadata":{"name":"count","path":"Stars.count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.find","title":"Stars.find","text":"Method: Stars.find - finds a star by common name, catalog id, or designation\nSyntax:\n  <Stars>.find() -> Star\nExample:\n# Find a named bright star\n   let star = stars().find(\"Sirius\");\n   print star.name, star.ra, star.dec;","metadata":{"name":"find","path":"Stars.find","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.glob","title":"Stars.glob","text":"Method: Stars.glob - lists stars whose names or catalogue identifiers match a glob pattern\nSyntax:\n  <Stars>.glob() -> List\nExample:\n# Find stars by a name pattern\n   let hits = stars().glob(\"Sir*\");\n   print hits.length(), hits[0].name;","metadata":{"name":"glob","path":"Stars.glob","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.nearest","title":"Stars.nearest","text":"Method: Stars.nearest - finds the nearest catalog star to a direction or vector\nSyntax:\n  <Stars>.nearest() -> Star|Unavailable\nExample:\n# Find the catalog star nearest to a sky direction\n   let d = direction(ra: 88.8, dec: 7.4);\n   let nearest = stars().nearest(d, magnitude: 2.0);\n   print nearest.name, nearest.separation;","metadata":{"name":"nearest","path":"Stars.nearest","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.all","title":"Stars.all","text":"Method: Stars.all - lists catalog stars with optional filters and sorting\nSyntax:\n  <Stars>.all() -> List\nExample:\n# Use Stars.all on a Stars value\n   let value = stars();\n   print value.all();","metadata":{"name":"all","path":"Stars.all","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.visible","title":"Stars.visible","text":"Method: Stars.visible - lists stars visible from an observer at a time\nSyntax:\n  <Stars>.visible() -> List\nExample:\n# List bright stars visible from an explicit observer at a time\n   let obs = location(60,10).observer(0.002);\n   let t = time(2026,1,1,21,0,0);\n   print stars().visible(t, obs, magnitude: 2.0);","metadata":{"name":"visible","path":"Stars.visible","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.children","title":"Stars.children","text":"Method: Stars.children - lists child fields and callable members available on this value\nSyntax:\n  <Stars>.children() -> List\nExample:\n# Use Stars.children on a Stars value\n   let value = stars();\n   print value.children();","metadata":{"name":"children","path":"Stars.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.fields","title":"Stars.fields","text":"Method: Stars.fields - returns an object containing the value's plain fields\nSyntax:\n  <Stars>.fields() -> Object\nExample:\n# Use Stars.fields on a Stars value\n   let value = stars();\n   print value.fields();","metadata":{"name":"fields","path":"Stars.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Stars.functions","title":"Stars.functions","text":"Method: Stars.functions - lists callable members available on this value\nSyntax:\n  <Stars>.functions() -> List\nExample:\n# Use Stars.functions on a Stars value\n   let value = stars();\n   print value.functions();","metadata":{"name":"functions","path":"Stars.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Star","title":"Star","text":"Type: Star - catalog star with identifiers, astrometry, and sky methods\nChildren: hr, name, designation, names, dm, hd, sao, fk5, var_id, ra, dec, glon, glat, magnitude, spectral_type, pm_ra, pm_dec, parallax, radial_velocity, separation, direction(), altaz(), angular_distance(), rise(), set(), transit(), constellation(), children(), fields(), functions()\nExample:\n# Find Sirius and measure its separation from the Moon\n   let sirius = stars().find(\"sirius\");\n   let t = time(2026,1,1,0,0,0);\n   let moon_dir = direction(ra(moon, t, all_corrections), dec(moon, t, all_corrections));\n   print sirius.name, moon_dir.angular_distance(sirius.direction());","metadata":{"name":"Star","path":"Star","kind":"type","aliases":[],"resources":[],"children":["field:Star.hr","field:Star.name","field:Star.designation","field:Star.names","field:Star.dm","field:Star.hd","field:Star.sao","field:Star.fk5","field:Star.var_id","field:Star.ra","field:Star.dec","field:Star.glon","field:Star.glat","field:Star.magnitude","field:Star.spectral_type","field:Star.pm_ra","field:Star.pm_dec","field:Star.parallax","field:Star.radial_velocity","field:Star.separation","member:Star.direction","member:Star.altaz","member:Star.angular_distance","member:Star.rise","member:Star.set","member:Star.transit","member:Star.constellation","member:Star.children","member:Star.fields","member:Star.functions"]}},{"id":"field:Star.hr","title":"Star.hr","text":"Field: Star.hr - Harvard Revised catalog number\nSyntax:\n  <Star>.hr -> Number\nExample:\n# Read the hr field from a Star value\n   print stars().find(\"sirius\").hr;","metadata":{"name":"hr","path":"Star.hr","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.name","title":"Star.name","text":"Field: Star.name - display name\nSyntax:\n  <Star>.name -> Text\nExample:\n# Read the name field from a Star value\n   print stars().find(\"sirius\").name;","metadata":{"name":"name","path":"Star.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.designation","title":"Star.designation","text":"Field: Star.designation - Bayer/Flamsteed designation when available\nSyntax:\n  <Star>.designation -> Text|Nil\nExample:\n# Read the designation field from a Star value\n   print stars().find(\"sirius\").designation;","metadata":{"name":"designation","path":"Star.designation","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.names","title":"Star.names","text":"Field: Star.names - catalog aliases and common names\nSyntax:\n  <Star>.names -> List\nExample:\n# Read the names field from a Star value\n   print stars().find(\"sirius\").names;","metadata":{"name":"names","path":"Star.names","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.dm","title":"Star.dm","text":"Field: Star.dm - Durchmusterung identifier when available\nSyntax:\n  <Star>.dm -> Text|Nil\nExample:\n# Read the dm field from a Star value\n   print stars().find(\"sirius\").dm;","metadata":{"name":"dm","path":"Star.dm","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.hd","title":"Star.hd","text":"Field: Star.hd - Henry Draper catalog number when available\nSyntax:\n  <Star>.hd -> Number|Nil\nExample:\n# Read the hd field from a Star value\n   print stars().find(\"sirius\").hd;","metadata":{"name":"hd","path":"Star.hd","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.sao","title":"Star.sao","text":"Field: Star.sao - SAO catalog number when available\nSyntax:\n  <Star>.sao -> Number|Nil\nExample:\n# Read the sao field from a Star value\n   print stars().find(\"sirius\").sao;","metadata":{"name":"sao","path":"Star.sao","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.fk5","title":"Star.fk5","text":"Field: Star.fk5 - FK5 catalog number when available\nSyntax:\n  <Star>.fk5 -> Number|Nil\nExample:\n# Read the fk5 field from a Star value\n   print stars().find(\"sirius\").fk5;","metadata":{"name":"fk5","path":"Star.fk5","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.var_id","title":"Star.var_id","text":"Field: Star.var_id - variable star identifier when available\nSyntax:\n  <Star>.var_id -> Text|Nil\nExample:\n# Read the var_id field from a Star value\n   print stars().find(\"sirius\").var_id;","metadata":{"name":"var_id","path":"Star.var_id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.ra","title":"Star.ra","text":"Field: Star.ra - right ascension in degrees\nSyntax:\n  <Star>.ra -> Number\nExample:\n# Read the ra field from a Star value\n   print stars().find(\"sirius\").ra;","metadata":{"name":"ra","path":"Star.ra","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.dec","title":"Star.dec","text":"Field: Star.dec - declination in degrees\nSyntax:\n  <Star>.dec -> Number\nExample:\n# Read the dec field from a Star value\n   print stars().find(\"sirius\").dec;","metadata":{"name":"dec","path":"Star.dec","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.glon","title":"Star.glon","text":"Field: Star.glon - galactic longitude in degrees when available\nSyntax:\n  <Star>.glon -> Number|Nil\nExample:\n# Read the glon field from a Star value\n   print stars().find(\"sirius\").glon;","metadata":{"name":"glon","path":"Star.glon","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.glat","title":"Star.glat","text":"Field: Star.glat - galactic latitude in degrees when available\nSyntax:\n  <Star>.glat -> Number|Nil\nExample:\n# Read the glat field from a Star value\n   print stars().find(\"sirius\").glat;","metadata":{"name":"glat","path":"Star.glat","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.magnitude","title":"Star.magnitude","text":"Field: Star.magnitude - visual magnitude when available\nSyntax:\n  <Star>.magnitude -> Number|Nil\nExample:\n# Read the magnitude field from a Star value\n   print stars().find(\"sirius\").magnitude;","metadata":{"name":"magnitude","path":"Star.magnitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.spectral_type","title":"Star.spectral_type","text":"Field: Star.spectral_type - spectral type when available\nSyntax:\n  <Star>.spectral_type -> Text|Nil\nExample:\n# Read the spectral_type field from a Star value\n   print stars().find(\"sirius\").spectral_type;","metadata":{"name":"spectral_type","path":"Star.spectral_type","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.pm_ra","title":"Star.pm_ra","text":"Field: Star.pm_ra - right ascension proper motion in arcseconds per year\nSyntax:\n  <Star>.pm_ra -> Number|Nil\nExample:\n# Read the pm_ra field from a Star value\n   print stars().find(\"sirius\").pm_ra;","metadata":{"name":"pm_ra","path":"Star.pm_ra","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.pm_dec","title":"Star.pm_dec","text":"Field: Star.pm_dec - declination proper motion in arcseconds per year\nSyntax:\n  <Star>.pm_dec -> Number|Nil\nExample:\n# Read the pm_dec field from a Star value\n   print stars().find(\"sirius\").pm_dec;","metadata":{"name":"pm_dec","path":"Star.pm_dec","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.parallax","title":"Star.parallax","text":"Field: Star.parallax - parallax in arcseconds when available\nSyntax:\n  <Star>.parallax -> Number|Nil\nExample:\n# Read the parallax field from a Star value\n   print stars().find(\"sirius\").parallax;","metadata":{"name":"parallax","path":"Star.parallax","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.radial_velocity","title":"Star.radial_velocity","text":"Field: Star.radial_velocity - radial velocity in kilometers per second when available\nSyntax:\n  <Star>.radial_velocity -> Number|Nil\nExample:\n# Read the radial_velocity field from a Star value\n   print stars().find(\"sirius\").radial_velocity;","metadata":{"name":"radial_velocity","path":"Star.radial_velocity","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Star.separation","title":"Star.separation","text":"Field: Star.separation - angular separation in degrees from the latest nearest-star query\nSyntax:\n  <Star>.separation -> Number|Nil\nExample:\n# Read the separation field from a Star value\n   print stars().find(\"sirius\").separation;","metadata":{"name":"separation","path":"Star.separation","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.direction","title":"Star.direction","text":"Method: Star.direction - returns the ICRF direction to this star\nSyntax:\n  <Star>.direction() -> Direction\nExample:\n# Use Star.direction on a Star value\n   let value = stars().find(\"sirius\");\n   print value.direction();","metadata":{"name":"direction","path":"Star.direction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.altaz","title":"Star.altaz","text":"Method: Star.altaz - returns topographic altitude and azimuth for this star\nSyntax:\n  <Star>.altaz() -> Object\nExample:\n# Convert a star position to local altitude and azimuth\n   let value = stars().find(\"Sirius\");\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   print value.altaz(time(2026,1,1,21,0,0), obs);","metadata":{"name":"altaz","path":"Star.altaz","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.angular_distance","title":"Star.angular_distance","text":"Method: Star.angular_distance - returns angular distance from this star to another target\nSyntax:\n  <Star>.angular_distance() -> Number\nExample:\n# Measure angular separation between two named stars\n   let sirius = stars().find(\"Sirius\");\n   let rigel = stars().find(\"Rigel\");\n   print sirius.angular_distance(rigel);","metadata":{"name":"angular_distance","path":"Star.angular_distance","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.rise","title":"Star.rise","text":"Method: Star.rise - finds rise events for this star\nSyntax:\n  <Star>.rise() -> Event|List|Unavailable\nExample:\n# Find when a star rises for an observer\n   let value = stars().find(\"Sirius\");\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print value.rise(span, obs).first();","metadata":{"name":"rise","path":"Star.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.set","title":"Star.set","text":"Method: Star.set - finds set events for this star\nSyntax:\n  <Star>.set() -> Event|List|Unavailable\nExample:\n# Find when a star sets for an observer\n   let value = stars().find(\"Sirius\");\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print value.set(span, obs).first();","metadata":{"name":"set","path":"Star.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.transit","title":"Star.transit","text":"Method: Star.transit - finds meridian transit events for this star\nSyntax:\n  <Star>.transit() -> Event|List|Unavailable\nExample:\n# Find when a star transits for an observer\n   let value = stars().find(\"Sirius\");\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print value.transit(span, obs).first();","metadata":{"name":"transit","path":"Star.transit","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.constellation","title":"Star.constellation","text":"Method: Star.constellation - returns the constellation containing this star\nSyntax:\n  <Star>.constellation() -> Constellation|Unavailable\nExample:\n# Use Star.constellation on a Star value\n   let value = stars().find(\"sirius\");\n   print value.constellation();","metadata":{"name":"constellation","path":"Star.constellation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.children","title":"Star.children","text":"Method: Star.children - lists child fields and callable members available on this value\nSyntax:\n  <Star>.children() -> List\nExample:\n# Use Star.children on a Star value\n   let value = stars().find(\"sirius\");\n   print value.children();","metadata":{"name":"children","path":"Star.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.fields","title":"Star.fields","text":"Method: Star.fields - returns an object containing the value's plain fields\nSyntax:\n  <Star>.fields() -> Object\nExample:\n# Use Star.fields on a Star value\n   let value = stars().find(\"sirius\");\n   print value.fields();","metadata":{"name":"fields","path":"Star.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Star.functions","title":"Star.functions","text":"Method: Star.functions - lists callable members available on this value\nSyntax:\n  <Star>.functions() -> List\nExample:\n# Use Star.functions on a Star value\n   let value = stars().find(\"sirius\");\n   print value.functions();","metadata":{"name":"functions","path":"Star.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:ConstellationDb","title":"ConstellationDb","text":"Type: ConstellationDb - IAU constellation boundary database handle\nSyntax:\n  constellations() -> ConstellationDb\nChildren: count, find(), inside(), children(), fields(), functions()\nExample:\n# Load constellation boundaries and classify a sky direction\n   let db = constellations();\n   let dir = direction(ra: 84.0, dec: -1.0);\n   print db.inside(dir).name;","metadata":{"name":"ConstellationDb","path":"ConstellationDb","kind":"type","aliases":[],"resources":[],"children":["field:ConstellationDb.count","member:ConstellationDb.find","member:ConstellationDb.inside","member:ConstellationDb.children","member:ConstellationDb.fields","member:ConstellationDb.functions"]}},{"id":"field:ConstellationDb.count","title":"ConstellationDb.count","text":"Field: ConstellationDb.count - number of boundary records\nSyntax:\n  <ConstellationDb>.count -> Number\nExample:\n# Read the count field from a ConstellationDb value\n   print constellations().count;","metadata":{"name":"count","path":"ConstellationDb.count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:ConstellationDb.find","title":"ConstellationDb.find","text":"Method: ConstellationDb.find - finds a constellation by name or abbreviation\nSyntax:\n  <ConstellationDb>.find() -> Constellation|Unavailable\nExample:\n# Find a constellation by name\n   let hit = constellations().find(\"Orion\");\n   print hit.name, hit.abbreviation;","metadata":{"name":"find","path":"ConstellationDb.find","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ConstellationDb.inside","title":"ConstellationDb.inside","text":"Method: ConstellationDb.inside - finds the constellation containing a direction\nSyntax:\n  <ConstellationDb>.inside() -> Constellation|Unavailable\nExample:\n# Classify a sky direction by IAU constellation\n   let dir = direction(ra: 84.0, dec: -1.0);\n   print constellations().inside(dir).name;","metadata":{"name":"inside","path":"ConstellationDb.inside","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ConstellationDb.children","title":"ConstellationDb.children","text":"Method: ConstellationDb.children - lists child fields and callable members available on this value\nSyntax:\n  <ConstellationDb>.children() -> List\nExample:\n# Use ConstellationDb.children on a ConstellationDb value\n   let value = constellations();\n   print value.children();","metadata":{"name":"children","path":"ConstellationDb.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ConstellationDb.fields","title":"ConstellationDb.fields","text":"Method: ConstellationDb.fields - returns an object containing the value's plain fields\nSyntax:\n  <ConstellationDb>.fields() -> Object\nExample:\n# Use ConstellationDb.fields on a ConstellationDb value\n   let value = constellations();\n   print value.fields();","metadata":{"name":"fields","path":"ConstellationDb.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ConstellationDb.functions","title":"ConstellationDb.functions","text":"Method: ConstellationDb.functions - lists callable members available on this value\nSyntax:\n  <ConstellationDb>.functions() -> List\nExample:\n# Use ConstellationDb.functions on a ConstellationDb value\n   let value = constellations();\n   print value.functions();","metadata":{"name":"functions","path":"ConstellationDb.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Constellation","title":"Constellation","text":"Type: Constellation - IAU constellation boundary record\nChildren: id, abbreviation, name, direction(), children(), fields(), functions()\nExample:\n# Find a named constellation and print its area summary\n   let c = constellations().find(\"orion\");\n   print c.name, c.abbreviation;","metadata":{"name":"Constellation","path":"Constellation","kind":"type","aliases":[],"resources":[],"children":["field:Constellation.id","field:Constellation.abbreviation","field:Constellation.name","member:Constellation.direction","member:Constellation.children","member:Constellation.fields","member:Constellation.functions"]}},{"id":"field:Constellation.id","title":"Constellation.id","text":"Field: Constellation.id - constellation identifier\nSyntax:\n  <Constellation>.id -> Text\nExample:\n# Read the id field from a Constellation value\n   print constellations().find(\"orion\").id;","metadata":{"name":"id","path":"Constellation.id","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Constellation.abbreviation","title":"Constellation.abbreviation","text":"Field: Constellation.abbreviation - IAU abbreviation\nSyntax:\n  <Constellation>.abbreviation -> Text\nExample:\n# Read the abbreviation field from a Constellation value\n   print constellations().find(\"orion\").abbreviation;","metadata":{"name":"abbreviation","path":"Constellation.abbreviation","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Constellation.name","title":"Constellation.name","text":"Field: Constellation.name - constellation name\nSyntax:\n  <Constellation>.name -> Text\nExample:\n# Read the name field from a Constellation value\n   print constellations().find(\"orion\").name;","metadata":{"name":"name","path":"Constellation.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Constellation.direction","title":"Constellation.direction","text":"Method: Constellation.direction - returns the center direction of this constellation\nSyntax:\n  <Constellation>.direction() -> Direction\nExample:\n# Use Constellation.direction on a Constellation value\n   let value = constellations().find(\"orion\");\n   print value.direction();","metadata":{"name":"direction","path":"Constellation.direction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Constellation.children","title":"Constellation.children","text":"Method: Constellation.children - lists child fields and callable members available on this value\nSyntax:\n  <Constellation>.children() -> List\nExample:\n# Use Constellation.children on a Constellation value\n   let value = constellations().find(\"orion\");\n   print value.children();","metadata":{"name":"children","path":"Constellation.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Constellation.fields","title":"Constellation.fields","text":"Method: Constellation.fields - returns an object containing the value's plain fields\nSyntax:\n  <Constellation>.fields() -> Object\nExample:\n# Use Constellation.fields on a Constellation value\n   let value = constellations().find(\"orion\");\n   print value.fields();","metadata":{"name":"fields","path":"Constellation.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Constellation.functions","title":"Constellation.functions","text":"Method: Constellation.functions - lists callable members available on this value\nSyntax:\n  <Constellation>.functions() -> List\nExample:\n# Use Constellation.functions on a Constellation value\n   let value = constellations().find(\"orion\");\n   print value.functions();","metadata":{"name":"functions","path":"Constellation.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Event","title":"Event","text":"Type: Event - astronomical event result\nChildren: type, time, value, body, location, observer, start, end, maximum, magnitude, obscuration, kind, shadow(), children(), fields(), functions()\nExample:\n# Find a sunrise event and print its local time\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let start = time(2026,6,21,0,0,0);\n   let event = events(sunrise, range(start, start.add_days(1)), loc).first();\n   print event.time.local(\"Europe/Oslo\").iso, event.type;","metadata":{"name":"Event","path":"Event","kind":"type","aliases":[],"resources":[],"children":["field:Event.type","field:Event.time","field:Event.value","field:Event.body","field:Event.location","field:Event.observer","field:Event.start","field:Event.end","field:Event.maximum","field:Event.magnitude","field:Event.obscuration","field:Event.kind","member:Event.shadow","member:Event.children","member:Event.fields","member:Event.functions"]}},{"id":"field:Event.type","title":"Event.type","text":"Field: Event.type - event type constant\nSyntax:\n  <Event>.type -> EventType\nExample:\n# Read the type field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().type;","metadata":{"name":"type","path":"Event.type","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.time","title":"Event.time","text":"Field: Event.time - event search time\nSyntax:\n  <Event>.time -> Time\nExample:\n# Read the time field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().time;","metadata":{"name":"time","path":"Event.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.value","title":"Event.value","text":"Field: Event.value - event scalar value\nSyntax:\n  <Event>.value -> Number\nExample:\n# Read the value field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().value;","metadata":{"name":"value","path":"Event.value","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.body","title":"Event.body","text":"Field: Event.body - associated body when available\nSyntax:\n  <Event>.body -> Body|Nil\nExample:\n# Read the body field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().body;","metadata":{"name":"body","path":"Event.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.location","title":"Event.location","text":"Field: Event.location - associated location when available\nSyntax:\n  <Event>.location -> Location|Nil\nExample:\n# Read the location field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().location;","metadata":{"name":"location","path":"Event.location","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.observer","title":"Event.observer","text":"Field: Event.observer - associated observer when available\nSyntax:\n  <Event>.observer -> Observer|Nil\nExample:\n# Read the observer returned with a sunrise event\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   let event = events(sunrise, span, obs).first();\n   print event.observer;","metadata":{"name":"observer","path":"Event.observer","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.start","title":"Event.start","text":"Field: Event.start - event start time when available\nSyntax:\n  <Event>.start -> Time|Nil\nExample:\n# Read the start field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().start;","metadata":{"name":"start","path":"Event.start","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.end","title":"Event.end","text":"Field: Event.end - event end time when available\nSyntax:\n  <Event>.end -> Time|Nil\nExample:\n# Read the end field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().end;","metadata":{"name":"end","path":"Event.end","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.maximum","title":"Event.maximum","text":"Field: Event.maximum - event maximum time when available, otherwise event time\nSyntax:\n  <Event>.maximum -> Time\nExample:\n# Read the maximum field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().maximum;","metadata":{"name":"maximum","path":"Event.maximum","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.magnitude","title":"Event.magnitude","text":"Field: Event.magnitude - event magnitude when available\nSyntax:\n  <Event>.magnitude -> Number|Nil\nExample:\n# Read the magnitude field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().magnitude;","metadata":{"name":"magnitude","path":"Event.magnitude","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.obscuration","title":"Event.obscuration","text":"Field: Event.obscuration - event obscuration when available\nSyntax:\n  <Event>.obscuration -> Number|Nil\nExample:\n# Read the obscuration field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().obscuration;","metadata":{"name":"obscuration","path":"Event.obscuration","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Event.kind","title":"Event.kind","text":"Field: Event.kind - event subtype label\nSyntax:\n  <Event>.kind -> Text\nExample:\n# Read the kind field from a Event value\n   print events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first().kind;","metadata":{"name":"kind","path":"Event.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Event.shadow","title":"Event.shadow","text":"Method: Event.shadow - returns the solar-eclipse shadow geometry for this event\nSyntax:\n  <Event>.shadow(time: Time) -> Shadow\nArguments:\n  time: Time [optional] - optional sampling time; defaults to event maximum or event time\nExample:\n# Compute the shadow associated with a solar-eclipse event\n   let span = range(time(2024,4,8,12,0,0), time(2024,4,9,0,0,0), 0.25);\n   let event = events(eclipse, span, sun).first();\n   print event.shadow().distance();","metadata":{"name":"shadow","path":"Event.shadow","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Event.children","title":"Event.children","text":"Method: Event.children - lists child fields and callable members available on this value\nSyntax:\n  <Event>.children() -> List\nExample:\n# Use Event.children on a Event value\n   let value = events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first();\n   print value.children();","metadata":{"name":"children","path":"Event.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Event.fields","title":"Event.fields","text":"Method: Event.fields - returns an object containing the value's plain fields\nSyntax:\n  <Event>.fields() -> Object\nExample:\n# Use Event.fields on a Event value\n   let value = events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first();\n   print value.fields();","metadata":{"name":"fields","path":"Event.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Event.functions","title":"Event.functions","text":"Method: Event.functions - lists callable members available on this value\nSyntax:\n  <Event>.functions() -> List\nExample:\n# Use Event.functions on a Event value\n   let value = events(sunrise, range(time(), time().add_days(1)), location(latitude: 60.0, longitude: 270.0)).first();\n   print value.functions();","metadata":{"name":"functions","path":"Event.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Graphics","title":"Graphics","text":"Type: Graphics - deferred SVG graphics drawing context\nSyntax:\n  graphics(time: Time, location: Location|Observer, center: Direction, theme: Text, center_az: Number, center_alt: Number, fov: Number) -> Graphics\nArguments:\n  time: Time [optional] - default sky-view time\n  location: Location|Observer [optional] - default sky-view observer\n  center: Direction [optional] - default sky-view center direction\n  theme: Text [optional] - graphics theme, either dark or light\n  center_az: Number [optional] - default sky-view center azimuth in degrees\n  center_alt: Number [optional] - default sky-view center altitude in degrees\n  fov: Number [optional] - default sky-view field of view in degrees\nChildren: line(), points(), polygon(), text(), function(), title(), xlabel(), ylabel(), xrange(), yrange(), xticks(), yticks(), dark(), light(), sky_view(), sky_grid(), sky_stars(), sky_constellations(), sky_planets(), sky_horizon(), svg(), write_svg(), children(), fields(), functions()\nExample:\n# Write a Sun-altitude SVG chart and report the output path\n   let loc = location(60,10);\n   let obs = loc.observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   let g = graphics().function((h): altitude(sun, t0.add_hours(h), obs), range(0,24,1)).title(\"Sun altitude\");\n   g.write_svg(\"sun-altitude.svg\");\n   print \"wrote sun-altitude.svg\";","metadata":{"name":"Graphics","path":"Graphics","kind":"type","aliases":[],"resources":[],"children":["member:Graphics.line","member:Graphics.points","member:Graphics.polygon","member:Graphics.text","member:Graphics.function","member:Graphics.title","member:Graphics.xlabel","member:Graphics.ylabel","member:Graphics.xrange","member:Graphics.yrange","member:Graphics.xticks","member:Graphics.yticks","member:Graphics.dark","member:Graphics.light","member:Graphics.sky_view","member:Graphics.sky_grid","member:Graphics.sky_stars","member:Graphics.sky_constellations","member:Graphics.sky_planets","member:Graphics.sky_horizon","member:Graphics.svg","member:Graphics.write_svg","member:Graphics.children","member:Graphics.fields","member:Graphics.functions"]}},{"id":"member:Graphics.line","title":"Graphics.line","text":"Method: Graphics.line - adds a line layer\nSyntax:\n  <Graphics>.line() -> Graphics\nExample:\n# Draw a simple line chart\n   let g = graphics().line([0, 1, 2], [1, 3, 2]);\n   g.write_svg(\"line.svg\");\n   print \"wrote line.svg\";","metadata":{"name":"line","path":"Graphics.line","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.points","title":"Graphics.points","text":"Method: Graphics.points - adds a point layer\nSyntax:\n  <Graphics>.points() -> Graphics\nExample:\n# Draw point markers on a simple chart\n   let g = graphics().points([0, 1, 2], [1, 3, 2]);\n   g.write_svg(\"points.svg\");\n   print \"wrote points.svg\";","metadata":{"name":"points","path":"Graphics.points","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.polygon","title":"Graphics.polygon","text":"Method: Graphics.polygon - adds a polygon layer\nSyntax:\n  <Graphics>.polygon() -> Graphics\nExample:\n# Draw a filled polygon on a chart\n   let g = graphics().polygon([0, 1, 2], [0, 2, 0]);\n   g.write_svg(\"polygon.svg\");\n   print \"wrote polygon.svg\";","metadata":{"name":"polygon","path":"Graphics.polygon","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.text","title":"Graphics.text","text":"Method: Graphics.text - adds a text label layer\nSyntax:\n  <Graphics>.text() -> Graphics\nExample:\n# Add a text label to a chart\n   let g = graphics().line([0, 1], [0, 1]).text(0.5, 0.5, \"mid\");\n   g.write_svg(\"text.svg\");\n   print \"wrote text.svg\";","metadata":{"name":"text","path":"Graphics.text","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.function","title":"Graphics.function","text":"Method: Graphics.function - samples a numeric function as a line layer\nSyntax:\n  <Graphics>.function() -> Graphics\nExample:\n# Sample a Sun-altitude function as a chart line\n   let loc = location(60,10).observer(0.002);\n   let t0 = time(2026,6,21,0,0,0);\n   let g = graphics().function((h): altitude(sun, t0.add_hours(h), loc), range(0,24,1));\n   g.write_svg(\"sun-altitude.svg\");\n   print \"wrote sun-altitude.svg\";","metadata":{"name":"function","path":"Graphics.function","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.title","title":"Graphics.title","text":"Method: Graphics.title - sets the plot title\nSyntax:\n  <Graphics>.title() -> Graphics\nExample:\n# Add a title to a chart\n   let g = graphics().line([0, 1], [0, 1]).title(\"Trend\");\n   g.write_svg(\"title.svg\");\n   print \"wrote title.svg\";","metadata":{"name":"title","path":"Graphics.title","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.xlabel","title":"Graphics.xlabel","text":"Method: Graphics.xlabel - sets the x-axis label\nSyntax:\n  <Graphics>.xlabel() -> Graphics\nExample:\n# Add an x-axis label to a chart\n   let g = graphics().line([0, 1], [0, 1]).xlabel(\"x\");\n   g.write_svg(\"xlabel.svg\");\n   print \"wrote xlabel.svg\";","metadata":{"name":"xlabel","path":"Graphics.xlabel","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.ylabel","title":"Graphics.ylabel","text":"Method: Graphics.ylabel - sets the y-axis label\nSyntax:\n  <Graphics>.ylabel() -> Graphics\nExample:\n# Add a y-axis label to a chart\n   let g = graphics().line([0, 1], [0, 1]).ylabel(\"y\");\n   g.write_svg(\"ylabel.svg\");\n   print \"wrote ylabel.svg\";","metadata":{"name":"ylabel","path":"Graphics.ylabel","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.xrange","title":"Graphics.xrange","text":"Method: Graphics.xrange - gets or sets the x-axis range\nSyntax:\n  <Graphics>.xrange() -> Object|Graphics\nExample:\n# Read the x range after adding data\n   let g = graphics().line([0, 1, 2], [1, 3, 2]);\n   print g.xrange();","metadata":{"name":"xrange","path":"Graphics.xrange","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.yrange","title":"Graphics.yrange","text":"Method: Graphics.yrange - gets or sets the y-axis range\nSyntax:\n  <Graphics>.yrange() -> Object|Graphics\nExample:\n# Read the y range after adding data\n   let g = graphics().line([0, 1, 2], [1, 3, 2]);\n   print g.yrange();","metadata":{"name":"yrange","path":"Graphics.yrange","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.xticks","title":"Graphics.xticks","text":"Method: Graphics.xticks - sets explicit x-axis ticks\nSyntax:\n  <Graphics>.xticks() -> Graphics\nExample:\n# Set explicit x-axis ticks\n   let g = graphics().line([0, 1, 2], [1, 3, 2]).xticks([0, 1, 2]);\n   g.write_svg(\"xticks.svg\");\n   print \"wrote xticks.svg\";","metadata":{"name":"xticks","path":"Graphics.xticks","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.yticks","title":"Graphics.yticks","text":"Method: Graphics.yticks - sets explicit y-axis ticks\nSyntax:\n  <Graphics>.yticks() -> Graphics\nExample:\n# Set explicit y-axis ticks\n   let g = graphics().line([0, 1, 2], [1, 3, 2]).yticks([1, 2, 3]);\n   g.write_svg(\"yticks.svg\");\n   print \"wrote yticks.svg\";","metadata":{"name":"yticks","path":"Graphics.yticks","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.dark","title":"Graphics.dark","text":"Method: Graphics.dark - switches to the dark graphics theme\nSyntax:\n  <Graphics>.dark() -> Graphics\nExample:\n# Use Graphics.dark on a Graphics value\n   let value = graphics();\n   print value.dark();","metadata":{"name":"dark","path":"Graphics.dark","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.light","title":"Graphics.light","text":"Method: Graphics.light - switches to the light graphics theme\nSyntax:\n  <Graphics>.light() -> Graphics\nExample:\n# Use Graphics.light on a Graphics value\n   let value = graphics();\n   print value.light();","metadata":{"name":"light","path":"Graphics.light","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.sky_view","title":"Graphics.sky_view","text":"Method: Graphics.sky_view - sets the sky projection view\nSyntax:\n  <Graphics>.sky_view() -> Graphics\nExample:\n# Use Graphics.sky_view on a Graphics value\n   let value = graphics();\n   print value.sky_view();","metadata":{"name":"sky_view","path":"Graphics.sky_view","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.sky_grid","title":"Graphics.sky_grid","text":"Method: Graphics.sky_grid - adds sky grid lines\nSyntax:\n  <Graphics>.sky_grid() -> Graphics\nExample:\n# Use Graphics.sky_grid on a Graphics value\n   let value = graphics();\n   print value.sky_grid();","metadata":{"name":"sky_grid","path":"Graphics.sky_grid","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.sky_stars","title":"Graphics.sky_stars","text":"Method: Graphics.sky_stars - adds visible star symbols\nSyntax:\n  <Graphics>.sky_stars() -> Graphics\nExample:\n# Add star symbols to a sky chart for a specified time and location\n   let t = time(2026,1,1,21,0,0);\n   let loc = location(60,10);\n   let g = graphics(t, loc).dark().sky_grid().sky_stars(magnitude: 4);\n   g.write_svg(\"stars.svg\");\n   print \"wrote stars.svg\";","metadata":{"name":"sky_stars","path":"Graphics.sky_stars","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.sky_constellations","title":"Graphics.sky_constellations","text":"Method: Graphics.sky_constellations - adds constellation lines and labels\nSyntax:\n  <Graphics>.sky_constellations() -> Graphics\nExample:\n# Add constellation lines to a local sky chart\n   let t = time(2026,1,1,21,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let g = graphics(t, loc).dark().sky_constellations(t);\n   g.write_svg(\"sky-constellations.svg\");\n   print \"wrote sky-constellations.svg\";","metadata":{"name":"sky_constellations","path":"Graphics.sky_constellations","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.sky_planets","title":"Graphics.sky_planets","text":"Method: Graphics.sky_planets - adds planet and Moon symbols\nSyntax:\n  <Graphics>.sky_planets() -> Graphics\nExample:\n# Add planets to a local sky chart\n   let t = time(2026,1,1,21,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let g = graphics(t, loc).dark().sky_planets(t);\n   g.write_svg(\"sky-planets.svg\");\n   print \"wrote sky-planets.svg\";","metadata":{"name":"sky_planets","path":"Graphics.sky_planets","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.sky_horizon","title":"Graphics.sky_horizon","text":"Method: Graphics.sky_horizon - adds a local horizon line\nSyntax:\n  <Graphics>.sky_horizon() -> Graphics\nExample:\n# Add a horizon line to a local sky chart\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let g = graphics(time(2026,1,1,21,0,0), loc).sky_horizon(loc);\n   g.write_svg(\"sky-horizon.svg\");\n   print \"wrote sky-horizon.svg\";","metadata":{"name":"sky_horizon","path":"Graphics.sky_horizon","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.svg","title":"Graphics.svg","text":"Method: Graphics.svg - renders the graphics as SVG text\nSyntax:\n  <Graphics>.svg() -> Text\nExample:\n# Use Graphics.svg on a Graphics value\n   let value = graphics();\n   print value.svg();","metadata":{"name":"svg","path":"Graphics.svg","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.write_svg","title":"Graphics.write_svg","text":"Method: Graphics.write_svg - writes the graphics as an SVG file\nSyntax:\n  <Graphics>.write_svg() -> Text\nExample:\n# Write a chart to an SVG file\n   let g = graphics().line([0, 1], [0, 1]);\n   g.write_svg(\"chart.svg\");\n   print \"wrote chart.svg\";","metadata":{"name":"write_svg","path":"Graphics.write_svg","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.children","title":"Graphics.children","text":"Method: Graphics.children - lists child fields and callable members available on this value\nSyntax:\n  <Graphics>.children() -> List\nExample:\n# Use Graphics.children on a Graphics value\n   let value = graphics();\n   print value.children();","metadata":{"name":"children","path":"Graphics.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.fields","title":"Graphics.fields","text":"Method: Graphics.fields - returns an object containing the value's plain fields\nSyntax:\n  <Graphics>.fields() -> Object\nExample:\n# Use Graphics.fields on a Graphics value\n   let value = graphics();\n   print value.fields();","metadata":{"name":"fields","path":"Graphics.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Graphics.functions","title":"Graphics.functions","text":"Method: Graphics.functions - lists callable members available on this value\nSyntax:\n  <Graphics>.functions() -> List\nExample:\n# Use Graphics.functions on a Graphics value\n   let value = graphics();\n   print value.functions();","metadata":{"name":"functions","path":"Graphics.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Target","title":"Target","text":"Type: Target - search target value and crossing direction\nSyntax:\n  target(value: Number|SearchGoal, direction: SearchDirection) -> Target|SearchGoal\nArguments:\n  value: Number|SearchGoal - numeric crossing value, minimum, or maximum\n  direction: SearchDirection [optional] - any, increasing, or decreasing\nChildren: value, direction, children(), fields(), functions()\nExample:\n# Build a target goal for an increasing daylight crossing\n   let loc = location(58.9666667, 5.7333333);\n   let day = time(2026,6,21,0,0,0);\n   let sun_height = (h): altitude(sun, day.add_hours(h), loc);\n   let goal = target(10, increasing);\n   print search(sun_height, range(0, 24, 0.25), goal).next();","metadata":{"name":"Target","path":"Target","kind":"type","aliases":[],"resources":[],"children":["field:Target.value","field:Target.direction","member:Target.children","member:Target.fields","member:Target.functions"]}},{"id":"field:Target.value","title":"Target.value","text":"Field: Target.value - numeric target value\nSyntax:\n  <Target>.value -> Number\nExample:\n# Read the value field from a Target value\n   print target(2.0).value;","metadata":{"name":"value","path":"Target.value","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Target.direction","title":"Target.direction","text":"Field: Target.direction - crossing direction to accept\nSyntax:\n  <Target>.direction -> SearchDirection\nExample:\n# Read the direction field from a Target value\n   print target(2.0).direction;","metadata":{"name":"direction","path":"Target.direction","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Target.children","title":"Target.children","text":"Method: Target.children - lists child fields and callable members available on this value\nSyntax:\n  <Target>.children() -> List\nExample:\n# Use Target.children on a Target value\n   let value = target(2.0);\n   print value.children();","metadata":{"name":"children","path":"Target.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Target.fields","title":"Target.fields","text":"Method: Target.fields - returns an object containing the value's plain fields\nSyntax:\n  <Target>.fields() -> Object\nExample:\n# Use Target.fields on a Target value\n   let value = target(2.0);\n   print value.fields();","metadata":{"name":"fields","path":"Target.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Target.functions","title":"Target.functions","text":"Method: Target.functions - lists callable members available on this value\nSyntax:\n  <Target>.functions() -> List\nExample:\n# Use Target.functions on a Target value\n   let value = target(2.0);\n   print value.functions();","metadata":{"name":"functions","path":"Target.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Range","title":"Range","text":"Type: Range - numeric or time scan range\nSyntax:\n  range(start: Number|Time, stop: Number, step: Number) -> Range\n  range(start: Number|Time, stop: Number|Time, step: Number) -> Range\nArguments:\n  start: Number|Time - start of the range\n  stop: Number - infinity or -infinity\n  step: Number [optional] - signed sampling step; time ranges use UTC days\nChildren: kind, bounded, start, stop, step, children(), fields(), functions()\nExample:\n# Use a range to sample every six hours in a day\n   let start = time(2026,6,21,0,0,0);\n   let hours = range(0, 24, 6);\n   for h=hours.start,hours.stop,hours.step {\n   print start.add_hours(h).utc();\n   }","metadata":{"name":"Range","path":"Range","kind":"type","aliases":[],"resources":[],"children":["field:Range.kind","field:Range.bounded","field:Range.start","field:Range.stop","field:Range.step","member:Range.children","member:Range.fields","member:Range.functions"]}},{"id":"field:Range.kind","title":"Range.kind","text":"Field: Range.kind - range domain kind\nSyntax:\n  <Range>.kind -> Text\nExample:\n# Read the kind field from a Range value\n   print range(1.0, 3.0).kind;","metadata":{"name":"kind","path":"Range.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Range.bounded","title":"Range.bounded","text":"Field: Range.bounded - whether this range has a finite stop\nSyntax:\n  <Range>.bounded -> Bool\nExample:\n# Read the bounded field from a Range value\n   print range(1.0, 3.0).bounded;","metadata":{"name":"bounded","path":"Range.bounded","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Range.start","title":"Range.start","text":"Field: Range.start - numeric start or UTC Julian date for time ranges\nSyntax:\n  <Range>.start -> Number\nExample:\n# Read the start field from a Range value\n   print range(1.0, 3.0).start;","metadata":{"name":"start","path":"Range.start","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Range.stop","title":"Range.stop","text":"Field: Range.stop - numeric stop or UTC Julian date for bounded time ranges\nSyntax:\n  <Range>.stop -> Number|Nil\nExample:\n# Read the stop field from a Range value\n   print range(1.0, 3.0).stop;","metadata":{"name":"stop","path":"Range.stop","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Range.step","title":"Range.step","text":"Field: Range.step - explicit scan step when supplied\nSyntax:\n  <Range>.step -> Number|Nil\nExample:\n# Read the step field from a Range value\n   print range(1.0, 3.0).step;","metadata":{"name":"step","path":"Range.step","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Range.children","title":"Range.children","text":"Method: Range.children - lists child fields and callable members available on this value\nSyntax:\n  <Range>.children() -> List\nExample:\n# Use Range.children on a Range value\n   let value = range(1.0, 3.0);\n   print value.children();","metadata":{"name":"children","path":"Range.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Range.fields","title":"Range.fields","text":"Method: Range.fields - returns an object containing the value's plain fields\nSyntax:\n  <Range>.fields() -> Object\nExample:\n# Use Range.fields on a Range value\n   let value = range(1.0, 3.0);\n   print value.fields();","metadata":{"name":"fields","path":"Range.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Range.functions","title":"Range.functions","text":"Method: Range.functions - lists callable members available on this value\nSyntax:\n  <Range>.functions() -> List\nExample:\n# Use Range.functions on a Range value\n   let value = range(1.0, 3.0);\n   print value.functions();","metadata":{"name":"functions","path":"Range.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Search","title":"Search","text":"Type: Search - configured scalar search value\nSyntax:\n  search(function: Callable, range: Range, goal: Target|SearchGoal) -> Search\nArguments:\n  function: Callable - function of one Number or Time argument returning a Number\n  range: Range - range(start, stop), range(start, stop, step), or range(start, infinity, step)\n  goal: Target|SearchGoal [optional] - target value and direction, minimum, or maximum; defaults to target(0, any)\nChildren: range, target, direction, next(), all(), children(), fields(), functions()\nExample:\n# Search a numeric curve and inspect the first crossing\n   let curve = (x): x * x - 9;\n   let result = search(curve, range(0, 6, 0.25), target(0, increasing));\n   print result.next();","metadata":{"name":"Search","path":"Search","kind":"type","aliases":[],"resources":[],"children":["field:Search.range","field:Search.target","field:Search.direction","member:Search.next","member:Search.all","member:Search.children","member:Search.fields","member:Search.functions"]}},{"id":"field:Search.range","title":"Search.range","text":"Field: Search.range - range scanned by this search\nSyntax:\n  <Search>.range -> Range\nExample:\n# Read the range field from a Search value\n   print search((x): x, range(1.0, 3.0), target(2.0)).range;","metadata":{"name":"range","path":"Search.range","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Search.target","title":"Search.target","text":"Field: Search.target - target value or extreme goal\nSyntax:\n  <Search>.target -> Target|SearchGoal\nExample:\n# Read the target field from a Search value\n   print search((x): x, range(1.0, 3.0), target(2.0)).target;","metadata":{"name":"target","path":"Search.target","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Search.direction","title":"Search.direction","text":"Field: Search.direction - target crossing direction when this search has a numeric target\nSyntax:\n  <Search>.direction -> SearchDirection|Nil\nExample:\n# Read the direction field from a Search value\n   print search((x): x, range(1.0, 3.0), target(2.0)).direction;","metadata":{"name":"direction","path":"Search.direction","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Search.next","title":"Search.next","text":"Method: Search.next - returns the next search solution, or the next count solutions\nSyntax:\n  <Search>.next() -> Any|Nil\n  <Search>.next(count: Number) -> List\nArguments:\n  count: Number [optional] - number of solutions to return\nExample:\n# Use Search.next on a Search value\n   let value = search((x): x, range(1.0, 3.0), target(2.0));\n   print value.next();","metadata":{"name":"next","path":"Search.next","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Search.all","title":"Search.all","text":"Method: Search.all - returns all search solutions in a bounded range\nSyntax:\n  <Search>.all() -> List\nExample:\n# Use Search.all on a Search value\n   let value = search((x): x, range(1.0, 3.0), target(2.0));\n   print value.all();","metadata":{"name":"all","path":"Search.all","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Search.children","title":"Search.children","text":"Method: Search.children - lists child fields and callable members available on this value\nSyntax:\n  <Search>.children() -> List\nExample:\n# Use Search.children on a Search value\n   let value = search((x): x, range(1.0, 3.0), target(2.0));\n   print value.children();","metadata":{"name":"children","path":"Search.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Search.fields","title":"Search.fields","text":"Method: Search.fields - returns an object containing the value's plain fields\nSyntax:\n  <Search>.fields() -> Object\nExample:\n# Use Search.fields on a Search value\n   let value = search((x): x, range(1.0, 3.0), target(2.0));\n   print value.fields();","metadata":{"name":"fields","path":"Search.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Search.functions","title":"Search.functions","text":"Method: Search.functions - lists callable members available on this value\nSyntax:\n  <Search>.functions() -> List\nExample:\n# Use Search.functions on a Search value\n   let value = search((x): x, range(1.0, 3.0), target(2.0));\n   print value.functions();","metadata":{"name":"functions","path":"Search.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Forecast","title":"Forecast","text":"Type: Forecast - published GFS forecast cycle from the retained stack\nSyntax:\n  forecast(index: Number, format: Text) -> Forecast\nArguments:\n  index: Number [optional] - forecast cycle stack index; 0 is the latest cycle\n  format: Text [optional] - optional storage format: \"netcdf\" (default when available), \"grib\", or \"auto\"\nChildren: source, format, path, reason, index, hour, run, run_name, reference_time, valid_time, message_count, available(), count(), cycle(), cycle_step(), max_time(), spans(), times(), sample(), toc(), messages(), children(), fields(), functions()\nExample:\n# Open the forecast index and print available product names\n   let fc = forecast();\n   print fc.available(), keys(fc.toc());","metadata":{"name":"Forecast","path":"Forecast","kind":"type","aliases":[],"resources":[],"children":["field:Forecast.source","field:Forecast.format","field:Forecast.path","field:Forecast.reason","field:Forecast.index","field:Forecast.hour","field:Forecast.run","field:Forecast.run_name","field:Forecast.reference_time","field:Forecast.valid_time","field:Forecast.message_count","member:Forecast.available","member:Forecast.count","member:Forecast.cycle","member:Forecast.cycle_step","member:Forecast.max_time","member:Forecast.spans","member:Forecast.times","member:Forecast.sample","member:Forecast.toc","member:Forecast.messages","member:Forecast.children","member:Forecast.fields","member:Forecast.functions"]}},{"id":"field:Forecast.source","title":"Forecast.source","text":"Field: Forecast.source - forecast source provider\nSyntax:\n  <Forecast>.source -> Text\nExample:\n# Read the source field from a Forecast value\n   print forecast().source;","metadata":{"name":"source","path":"Forecast.source","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.format","title":"Forecast.format","text":"Field: Forecast.format - storage format used by this forecast\nSyntax:\n  <Forecast>.format -> Text\nExample:\n# Read the format field from a Forecast value\n   print forecast().format;","metadata":{"name":"format","path":"Forecast.format","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.path","title":"Forecast.path","text":"Field: Forecast.path - forecast data path\nSyntax:\n  <Forecast>.path -> Text\nExample:\n# Read the path field from a Forecast value\n   print forecast().path;","metadata":{"name":"path","path":"Forecast.path","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.reason","title":"Forecast.reason","text":"Field: Forecast.reason - unavailable reason when the cycle could not be opened\nSyntax:\n  <Forecast>.reason -> Text|Nil\nExample:\n# Read the reason field from a Forecast value\n   print forecast().reason;","metadata":{"name":"reason","path":"Forecast.reason","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.index","title":"Forecast.index","text":"Field: Forecast.index - forecast cycle stack index\nSyntax:\n  <Forecast>.index -> Number\nExample:\n# Read the index field from a Forecast value\n   print forecast().index;","metadata":{"name":"index","path":"Forecast.index","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.hour","title":"Forecast.hour","text":"Field: Forecast.hour - forecast lead hour for this opened cycle\nSyntax:\n  <Forecast>.hour -> Number\nExample:\n# Read the hour field from a Forecast value\n   print forecast().hour;","metadata":{"name":"hour","path":"Forecast.hour","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.run","title":"Forecast.run","text":"Field: Forecast.run - run metadata object\nSyntax:\n  <Forecast>.run -> Object\nExample:\n# Read the run field from a Forecast value\n   print forecast().run;","metadata":{"name":"run","path":"Forecast.run","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.run_name","title":"Forecast.run_name","text":"Field: Forecast.run_name - human-readable run label\nSyntax:\n  <Forecast>.run_name -> Text\nExample:\n# Read the run_name field from a Forecast value\n   print forecast().run_name;","metadata":{"name":"run_name","path":"Forecast.run_name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.reference_time","title":"Forecast.reference_time","text":"Field: Forecast.reference_time - forecast reference time label\nSyntax:\n  <Forecast>.reference_time -> Text\nExample:\n# Read the reference_time field from a Forecast value\n   print forecast().reference_time;","metadata":{"name":"reference_time","path":"Forecast.reference_time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.valid_time","title":"Forecast.valid_time","text":"Field: Forecast.valid_time - valid time label for this opened forecast\nSyntax:\n  <Forecast>.valid_time -> Text\nExample:\n# Read the valid_time field from a Forecast value\n   print forecast().valid_time;","metadata":{"name":"valid_time","path":"Forecast.valid_time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Forecast.message_count","title":"Forecast.message_count","text":"Field: Forecast.message_count - number of forecast messages\nSyntax:\n  <Forecast>.message_count -> Number\nExample:\n# Read the message_count field from a Forecast value\n   print forecast().message_count;","metadata":{"name":"message_count","path":"Forecast.message_count","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.available","title":"Forecast.available","text":"Method: Forecast.available - reports whether this forecast cycle is available\nSyntax:\n  <Forecast>.available() -> Bool\nExample:\n# Use Forecast.available on a Forecast value\n   let value = forecast();\n   print value.available();","metadata":{"name":"available","path":"Forecast.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.count","title":"Forecast.count","text":"Method: Forecast.count - returns the retained forecast cycle count\nSyntax:\n  <Forecast>.count() -> Number\nExample:\n# Use Forecast.count on a Forecast value\n   let value = forecast();\n   print value.count();","metadata":{"name":"count","path":"Forecast.count","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.cycle","title":"Forecast.cycle","text":"Method: Forecast.cycle - returns the forecast cycle reference time\nSyntax:\n  <Forecast>.cycle() -> Time|Nil\nExample:\n# Use Forecast.cycle on a Forecast value\n   let value = forecast();\n   print value.cycle();","metadata":{"name":"cycle","path":"Forecast.cycle","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.cycle_step","title":"Forecast.cycle_step","text":"Method: Forecast.cycle_step - returns the retained cycle spacing in hours\nSyntax:\n  <Forecast>.cycle_step() -> Number\nExample:\n# Use Forecast.cycle_step on a Forecast value\n   let value = forecast();\n   print value.cycle_step();","metadata":{"name":"cycle_step","path":"Forecast.cycle_step","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.max_time","title":"Forecast.max_time","text":"Method: Forecast.max_time - returns the latest valid forecast time\nSyntax:\n  <Forecast>.max_time() -> Time|Nil\nExample:\n# Use Forecast.max_time on a Forecast value\n   let value = forecast();\n   print value.max_time();","metadata":{"name":"max_time","path":"Forecast.max_time","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.spans","title":"Forecast.spans","text":"Method: Forecast.spans - reports whether this forecast spans a time\nSyntax:\n  <Forecast>.spans(time: Time) -> Bool\nArguments:\n  time: Time - time to test against the forecast span\nExample:\n# Use Forecast.spans on a Forecast value\n   let value = forecast();\n   print value.spans(time());","metadata":{"name":"spans","path":"Forecast.spans","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.times","title":"Forecast.times","text":"Method: Forecast.times - returns all forecast valid times\nSyntax:\n  <Forecast>.times() -> List\nExample:\n# Use Forecast.times on a Forecast value\n   let value = forecast();\n   print value.times();","metadata":{"name":"times","path":"Forecast.times","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.sample","title":"Forecast.sample","text":"Method: Forecast.sample - samples forecast products at an Earth location\nSyntax:\n  <Forecast>.sample(location: Location, time: Time, product: Text|Reference|List) -> List\nArguments:\n  location: Location - Earth location to sample\n  time: Time [optional] - optional valid time; omitted samples all forecast times\n  product: Text|Reference|List [optional] - optional forecast product selector or selectors\nExample:\n# Use Forecast.sample on a Forecast value\n   let value = forecast();\n   print value.sample(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"sample","path":"Forecast.sample","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.toc","title":"Forecast.toc","text":"Method: Forecast.toc - returns available products, levels, and times\nSyntax:\n  <Forecast>.toc() -> Object\nExample:\n# Use Forecast.toc on a Forecast value\n   let value = forecast();\n   print value.toc();","metadata":{"name":"toc","path":"Forecast.toc","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.messages","title":"Forecast.messages","text":"Method: Forecast.messages - returns raw forecast message metadata\nSyntax:\n  <Forecast>.messages() -> List\nExample:\n# Use Forecast.messages on a Forecast value\n   let value = forecast();\n   print value.messages();","metadata":{"name":"messages","path":"Forecast.messages","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.children","title":"Forecast.children","text":"Method: Forecast.children - lists child fields and callable members available on this value\nSyntax:\n  <Forecast>.children() -> List\nExample:\n# Use Forecast.children on a Forecast value\n   let value = forecast();\n   print value.children();","metadata":{"name":"children","path":"Forecast.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.fields","title":"Forecast.fields","text":"Method: Forecast.fields - returns an object containing the value's plain fields\nSyntax:\n  <Forecast>.fields() -> Object\nExample:\n# Use Forecast.fields on a Forecast value\n   let value = forecast();\n   print value.fields();","metadata":{"name":"fields","path":"Forecast.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Forecast.functions","title":"Forecast.functions","text":"Method: Forecast.functions - lists callable members available on this value\nSyntax:\n  <Forecast>.functions() -> List\nExample:\n# Use Forecast.functions on a Forecast value\n   let value = forecast();\n   print value.functions();","metadata":{"name":"functions","path":"Forecast.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:ForecastProduct","title":"ForecastProduct","text":"Type: ForecastProduct - forecast product selector bound to a forecast\nChildren: product, name, select(), children(), fields(), functions()\nExample:\n# Select a forecast temperature field through the product selector\n   let temp = forecast().temperature();\n   print temp.product, temp.name;","metadata":{"name":"ForecastProduct","path":"ForecastProduct","kind":"type","aliases":[],"resources":[],"children":["field:ForecastProduct.product","field:ForecastProduct.name","member:ForecastProduct.select","member:ForecastProduct.children","member:ForecastProduct.fields","member:ForecastProduct.functions"]}},{"id":"field:ForecastProduct.product","title":"ForecastProduct.product","text":"Field: ForecastProduct.product - canonical forecast product name\nSyntax:\n  <ForecastProduct>.product -> Text\nExample:\n# Read the product field from a ForecastProduct value\n   print forecast().temperature().product;","metadata":{"name":"product","path":"ForecastProduct.product","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:ForecastProduct.name","title":"ForecastProduct.name","text":"Field: ForecastProduct.name - alias for product\nSyntax:\n  <ForecastProduct>.name -> Text\nExample:\n# Read the name field from a ForecastProduct value\n   print forecast().temperature().name;","metadata":{"name":"name","path":"ForecastProduct.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:ForecastProduct.select","title":"ForecastProduct.select","text":"Method: ForecastProduct.select - selects a scalar or vector field for this product\nSyntax:\n  <ForecastProduct>.select(level: Text) -> ScalarField|VectorField\nArguments:\n  level: Text [optional] - optional product level selector\nExample:\n# Select a forecast product through the forecast object\n   let temp = forecast().temperature();\n   print temp.product, temp.name, temp.available();","metadata":{"name":"select","path":"ForecastProduct.select","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ForecastProduct.children","title":"ForecastProduct.children","text":"Method: ForecastProduct.children - lists child fields and callable members available on this value\nSyntax:\n  <ForecastProduct>.children() -> List\nExample:\n# List child help topics for a forecast product\n   let temp = forecast().temperature();\n   print temp.children();","metadata":{"name":"children","path":"ForecastProduct.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ForecastProduct.fields","title":"ForecastProduct.fields","text":"Method: ForecastProduct.fields - returns an object containing the value's plain fields\nSyntax:\n  <ForecastProduct>.fields() -> Object\nExample:\n# List fields exposed by a forecast product\n   let temp = forecast().temperature();\n   print temp.fields();","metadata":{"name":"fields","path":"ForecastProduct.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ForecastProduct.functions","title":"ForecastProduct.functions","text":"Method: ForecastProduct.functions - lists callable members available on this value\nSyntax:\n  <ForecastProduct>.functions() -> List\nExample:\n# List functions exposed by a forecast product\n   let temp = forecast().temperature();\n   print temp.functions();","metadata":{"name":"functions","path":"ForecastProduct.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:ScalarField","title":"ScalarField","text":"Type: ScalarField - forecast scalar field selected from a product\nChildren: product, name, level, path, sample(), children(), fields(), functions()\nExample:\n# Select a scalar forecast field and sample it at a location\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let temp = forecast().temperature();\n   print temp.sample(loc);","metadata":{"name":"ScalarField","path":"ScalarField","kind":"type","aliases":[],"resources":[],"children":["field:ScalarField.product","field:ScalarField.name","field:ScalarField.level","field:ScalarField.path","member:ScalarField.sample","member:ScalarField.children","member:ScalarField.fields","member:ScalarField.functions"]}},{"id":"field:ScalarField.product","title":"ScalarField.product","text":"Field: ScalarField.product - forecast product name\nSyntax:\n  <ScalarField>.product -> Text\nExample:\n# Read the product field from a ScalarField value\n   print forecast().temperature().product;","metadata":{"name":"product","path":"ScalarField.product","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:ScalarField.name","title":"ScalarField.name","text":"Field: ScalarField.name - alias for product\nSyntax:\n  <ScalarField>.name -> Text\nExample:\n# Read the name field from a ScalarField value\n   print forecast().temperature().name;","metadata":{"name":"name","path":"ScalarField.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:ScalarField.level","title":"ScalarField.level","text":"Field: ScalarField.level - selected vertical or surface level\nSyntax:\n  <ScalarField>.level -> Text|Nil\nExample:\n# Read the level field from a ScalarField value\n   print forecast().temperature().level;","metadata":{"name":"level","path":"ScalarField.level","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:ScalarField.path","title":"ScalarField.path","text":"Field: ScalarField.path - forecast data path\nSyntax:\n  <ScalarField>.path -> Text\nExample:\n# Read the path field from a ScalarField value\n   print forecast().temperature().path;","metadata":{"name":"path","path":"ScalarField.path","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:ScalarField.sample","title":"ScalarField.sample","text":"Method: ScalarField.sample - samples this scalar field at an Earth location\nSyntax:\n  <ScalarField>.sample(location: Location) -> Number|Nil\nArguments:\n  location: Location - Earth location to sample\nExample:\n# Use ScalarField.sample on a ScalarField value\n   let value = forecast().temperature();\n   print value.sample(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"sample","path":"ScalarField.sample","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ScalarField.children","title":"ScalarField.children","text":"Method: ScalarField.children - lists child fields and callable members available on this value\nSyntax:\n  <ScalarField>.children() -> List\nExample:\n# List child help topics for a selected scalar forecast field\n   let field = forecast().temperature();\n   print field.children();","metadata":{"name":"children","path":"ScalarField.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ScalarField.fields","title":"ScalarField.fields","text":"Method: ScalarField.fields - returns an object containing the value's plain fields\nSyntax:\n  <ScalarField>.fields() -> Object\nExample:\n# List fields exposed by a selected scalar forecast field\n   let field = forecast().temperature();\n   print field.fields();","metadata":{"name":"fields","path":"ScalarField.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:ScalarField.functions","title":"ScalarField.functions","text":"Method: ScalarField.functions - lists callable members available on this value\nSyntax:\n  <ScalarField>.functions() -> List\nExample:\n# List functions exposed by a selected scalar forecast field\n   let field = forecast().temperature();\n   print field.functions();","metadata":{"name":"functions","path":"ScalarField.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:VectorField","title":"VectorField","text":"Type: VectorField - forecast vector field selected from a product\nChildren: product, name, level, path, components, sample(), children(), fields(), functions()\nExample:\n# Select a wind forecast field and sample speed at a location\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let wind_field = forecast().wind();\n   print wind_field.sample(loc).speed;","metadata":{"name":"VectorField","path":"VectorField","kind":"type","aliases":[],"resources":[],"children":["field:VectorField.product","field:VectorField.name","field:VectorField.level","field:VectorField.path","field:VectorField.components","member:VectorField.sample","member:VectorField.children","member:VectorField.fields","member:VectorField.functions"]}},{"id":"field:VectorField.product","title":"VectorField.product","text":"Field: VectorField.product - forecast product name\nSyntax:\n  <VectorField>.product -> Text\nExample:\n# Read the product field from a VectorField value\n   print forecast().wind().product;","metadata":{"name":"product","path":"VectorField.product","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:VectorField.name","title":"VectorField.name","text":"Field: VectorField.name - alias for product\nSyntax:\n  <VectorField>.name -> Text\nExample:\n# Read the name field from a VectorField value\n   print forecast().wind().name;","metadata":{"name":"name","path":"VectorField.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:VectorField.level","title":"VectorField.level","text":"Field: VectorField.level - selected vertical or surface level\nSyntax:\n  <VectorField>.level -> Text|Nil\nExample:\n# Read the level field from a VectorField value\n   print forecast().wind().level;","metadata":{"name":"level","path":"VectorField.level","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:VectorField.path","title":"VectorField.path","text":"Field: VectorField.path - forecast data path\nSyntax:\n  <VectorField>.path -> Text\nExample:\n# Read the path field from a VectorField value\n   print forecast().wind().path;","metadata":{"name":"path","path":"VectorField.path","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:VectorField.components","title":"VectorField.components","text":"Field: VectorField.components - component names included in the vector field\nSyntax:\n  <VectorField>.components -> List\nExample:\n# Read the components field from a VectorField value\n   print forecast().wind().components;","metadata":{"name":"components","path":"VectorField.components","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:VectorField.sample","title":"VectorField.sample","text":"Method: VectorField.sample - samples this vector field at an Earth location\nSyntax:\n  <VectorField>.sample(location: Location) -> Object|Nil\nArguments:\n  location: Location - Earth location to sample\nExample:\n# Use VectorField.sample on a VectorField value\n   let value = forecast().wind();\n   print value.sample(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"sample","path":"VectorField.sample","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:VectorField.children","title":"VectorField.children","text":"Method: VectorField.children - lists child fields and callable members available on this value\nSyntax:\n  <VectorField>.children() -> List\nExample:\n# List child help topics for a selected vector forecast field\n   let field = forecast().wind();\n   print field.children();","metadata":{"name":"children","path":"VectorField.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:VectorField.fields","title":"VectorField.fields","text":"Method: VectorField.fields - returns an object containing the value's plain fields\nSyntax:\n  <VectorField>.fields() -> Object\nExample:\n# List fields exposed by a selected vector forecast field\n   let field = forecast().wind();\n   print field.fields();","metadata":{"name":"fields","path":"VectorField.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:VectorField.functions","title":"VectorField.functions","text":"Method: VectorField.functions - lists callable members available on this value\nSyntax:\n  <VectorField>.functions() -> List\nExample:\n# List functions exposed by a selected vector forecast field\n   let field = forecast().wind();\n   print field.functions();","metadata":{"name":"functions","path":"VectorField.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:FieldSource","title":"FieldSource","text":"Type: FieldSource - approved external field dataset source\nChildren: name, filename, description, body, variable, lat, lon, children(), fields(), functions()\nExample:\n# Inspect the configured Earth topography source\n   let src = earth_topography;\n   print src.name, src.filename, src.variable;","metadata":{"name":"FieldSource","path":"FieldSource","kind":"type","aliases":[],"resources":[],"children":["field:FieldSource.name","field:FieldSource.filename","field:FieldSource.description","field:FieldSource.body","field:FieldSource.variable","field:FieldSource.lat","field:FieldSource.lon","member:FieldSource.children","member:FieldSource.fields","member:FieldSource.functions"]}},{"id":"field:FieldSource.name","title":"FieldSource.name","text":"Field: FieldSource.name - source name\nSyntax:\n  <FieldSource>.name -> Text\nExample:\n# Read the name field from a FieldSource value\n   print earth_topography.name;","metadata":{"name":"name","path":"FieldSource.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:FieldSource.filename","title":"FieldSource.filename","text":"Field: FieldSource.filename - required data filename\nSyntax:\n  <FieldSource>.filename -> Text\nExample:\n# Read the filename field from a FieldSource value\n   print earth_topography.filename;","metadata":{"name":"filename","path":"FieldSource.filename","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:FieldSource.description","title":"FieldSource.description","text":"Field: FieldSource.description - source description\nSyntax:\n  <FieldSource>.description -> Text\nExample:\n# Read the description field from a FieldSource value\n   print earth_topography.description;","metadata":{"name":"description","path":"FieldSource.description","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:FieldSource.body","title":"FieldSource.body","text":"Field: FieldSource.body - body this source describes\nSyntax:\n  <FieldSource>.body -> Text\nExample:\n# Read the body field from a FieldSource value\n   print earth_topography.body;","metadata":{"name":"body","path":"FieldSource.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:FieldSource.variable","title":"FieldSource.variable","text":"Field: FieldSource.variable - default NetCDF variable name\nSyntax:\n  <FieldSource>.variable -> Text\nExample:\n# Read the variable field from a FieldSource value\n   print earth_topography.variable;","metadata":{"name":"variable","path":"FieldSource.variable","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:FieldSource.lat","title":"FieldSource.lat","text":"Field: FieldSource.lat - default latitude variable name\nSyntax:\n  <FieldSource>.lat -> Text|Nil\nExample:\n# Read the lat field from a FieldSource value\n   print earth_topography.lat;","metadata":{"name":"lat","path":"FieldSource.lat","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:FieldSource.lon","title":"FieldSource.lon","text":"Field: FieldSource.lon - default longitude variable name\nSyntax:\n  <FieldSource>.lon -> Text|Nil\nExample:\n# Read the lon field from a FieldSource value\n   print earth_topography.lon;","metadata":{"name":"lon","path":"FieldSource.lon","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:FieldSource.children","title":"FieldSource.children","text":"Method: FieldSource.children - lists child fields and callable members available on this value\nSyntax:\n  <FieldSource>.children() -> List\nExample:\n# Use FieldSource.children on a FieldSource value\n   let value = earth_topography;\n   print value.children();","metadata":{"name":"children","path":"FieldSource.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:FieldSource.fields","title":"FieldSource.fields","text":"Method: FieldSource.fields - returns an object containing the value's plain fields\nSyntax:\n  <FieldSource>.fields() -> Object\nExample:\n# Use FieldSource.fields on a FieldSource value\n   let value = earth_topography;\n   print value.fields();","metadata":{"name":"fields","path":"FieldSource.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:FieldSource.functions","title":"FieldSource.functions","text":"Method: FieldSource.functions - lists callable members available on this value\nSyntax:\n  <FieldSource>.functions() -> List\nExample:\n# Use FieldSource.functions on a FieldSource value\n   let value = earth_topography;\n   print value.functions();","metadata":{"name":"functions","path":"FieldSource.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:NetCDF","title":"NetCDF","text":"Type: NetCDF - opened NetCDF dataset metadata\nSyntax:\n  netcdf(source: FieldSource) -> NetCDF\nArguments:\n  source: FieldSource - approved field source constant such as earth_topography or moon_topography\nChildren: source, path, dimensions, variables, variable(), children(), fields(), functions()\nExample:\n# Inspect the NetCDF source behind Earth topography\n   let nc = netcdf(earth_topography);\n   print nc.path, nc.variables.length();","metadata":{"name":"NetCDF","path":"NetCDF","kind":"type","aliases":[],"resources":[],"children":["field:NetCDF.source","field:NetCDF.path","field:NetCDF.dimensions","field:NetCDF.variables","member:NetCDF.variable","member:NetCDF.children","member:NetCDF.fields","member:NetCDF.functions"]}},{"id":"field:NetCDF.source","title":"NetCDF.source","text":"Field: NetCDF.source - field source used to open the dataset\nSyntax:\n  <NetCDF>.source -> FieldSource\nExample:\n# Read the source field from a NetCDF value\n   print netcdf(earth_topography).source;","metadata":{"name":"source","path":"NetCDF.source","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:NetCDF.path","title":"NetCDF.path","text":"Field: NetCDF.path - opened NetCDF file path\nSyntax:\n  <NetCDF>.path -> Text\nExample:\n# Read the path field from a NetCDF value\n   print netcdf(earth_topography).path;","metadata":{"name":"path","path":"NetCDF.path","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:NetCDF.dimensions","title":"NetCDF.dimensions","text":"Field: NetCDF.dimensions - NetCDF dimensions\nSyntax:\n  <NetCDF>.dimensions -> List\nExample:\n# Read the dimensions field from a NetCDF value\n   print netcdf(earth_topography).dimensions;","metadata":{"name":"dimensions","path":"NetCDF.dimensions","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:NetCDF.variables","title":"NetCDF.variables","text":"Field: NetCDF.variables - NetCDF variables\nSyntax:\n  <NetCDF>.variables -> List\nExample:\n# Read the variables field from a NetCDF value\n   print netcdf(earth_topography).variables;","metadata":{"name":"variables","path":"NetCDF.variables","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:NetCDF.variable","title":"NetCDF.variable","text":"Method: NetCDF.variable - returns metadata for one NetCDF variable\nSyntax:\n  <NetCDF>.variable() -> Object\nExample:\n# Inspect a named NetCDF variable\n   let nc = netcdf(earth_topography);\n   print nc.variable(\"z\");","metadata":{"name":"variable","path":"NetCDF.variable","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:NetCDF.children","title":"NetCDF.children","text":"Method: NetCDF.children - lists child fields and callable members available on this value\nSyntax:\n  <NetCDF>.children() -> List\nExample:\n# Use NetCDF.children on a NetCDF value\n   let value = netcdf(earth_topography);\n   print value.children();","metadata":{"name":"children","path":"NetCDF.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:NetCDF.fields","title":"NetCDF.fields","text":"Method: NetCDF.fields - returns an object containing the value's plain fields\nSyntax:\n  <NetCDF>.fields() -> Object\nExample:\n# Use NetCDF.fields on a NetCDF value\n   let value = netcdf(earth_topography);\n   print value.fields();","metadata":{"name":"fields","path":"NetCDF.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:NetCDF.functions","title":"NetCDF.functions","text":"Method: NetCDF.functions - lists callable members available on this value\nSyntax:\n  <NetCDF>.functions() -> List\nExample:\n# Use NetCDF.functions on a NetCDF value\n   let value = netcdf(earth_topography);\n   print value.functions();","metadata":{"name":"functions","path":"NetCDF.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Field","title":"Field","text":"Type: Field - sampleable global scalar field\nSyntax:\n  field(source: FieldSource|NetCDF, variable: Text, body: Text|Body, lat: Text, lon: Text, indices: Object) -> Field\nArguments:\n  source: FieldSource|NetCDF - approved field source constant or opened NetCDF dataset\n  variable: Text [optional] - variable containing the scalar field; defaults from the source constant\n  body: Text|Body [optional] - body this field is attached to\n  lat: Text [optional] - latitude coordinate variable name\n  lon: Text [optional] - longitude coordinate variable name\n  indices: Object [optional] - fixed indices for non-lat/lon dimensions\nChildren: source, path, variable, body, lat, lon, dimensions, indices, sample(), children(), fields(), functions()\nExample:\n# Inspect a terrain field before sampling it\n   let terrain = topography(earth);\n   print terrain.source.name, terrain.variable, terrain.body;","metadata":{"name":"Field","path":"Field","kind":"type","aliases":[],"resources":[],"children":["field:Field.source","field:Field.path","field:Field.variable","field:Field.body","field:Field.lat","field:Field.lon","field:Field.dimensions","field:Field.indices","member:Field.sample","member:Field.children","member:Field.fields","member:Field.functions"]}},{"id":"field:Field.source","title":"Field.source","text":"Field: Field.source - field source used to open this field\nSyntax:\n  <Field>.source -> FieldSource\nExample:\n# Read the source field from a Field value\n   print topography(earth).source;","metadata":{"name":"source","path":"Field.source","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.path","title":"Field.path","text":"Field: Field.path - NetCDF file path\nSyntax:\n  <Field>.path -> Text\nExample:\n# Read the path field from a Field value\n   print topography(earth).path;","metadata":{"name":"path","path":"Field.path","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.variable","title":"Field.variable","text":"Field: Field.variable - sampled NetCDF variable name\nSyntax:\n  <Field>.variable -> Text\nExample:\n# Read the variable field from a Field value\n   print topography(earth).variable;","metadata":{"name":"variable","path":"Field.variable","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.body","title":"Field.body","text":"Field: Field.body - body this field is attached to\nSyntax:\n  <Field>.body -> Text\nExample:\n# Read the body field from a Field value\n   print topography(earth).body;","metadata":{"name":"body","path":"Field.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.lat","title":"Field.lat","text":"Field: Field.lat - latitude coordinate variable name\nSyntax:\n  <Field>.lat -> Text\nExample:\n# Read the lat field from a Field value\n   print topography(earth).lat;","metadata":{"name":"lat","path":"Field.lat","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.lon","title":"Field.lon","text":"Field: Field.lon - longitude coordinate variable name\nSyntax:\n  <Field>.lon -> Text\nExample:\n# Read the lon field from a Field value\n   print topography(earth).lon;","metadata":{"name":"lon","path":"Field.lon","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.dimensions","title":"Field.dimensions","text":"Field: Field.dimensions - field dimensions and fixed indices\nSyntax:\n  <Field>.dimensions -> List\nExample:\n# Read the dimensions field from a Field value\n   print topography(earth).dimensions;","metadata":{"name":"dimensions","path":"Field.dimensions","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Field.indices","title":"Field.indices","text":"Field: Field.indices - fixed non-lat/lon dimension indices\nSyntax:\n  <Field>.indices -> Object\nExample:\n# Read the indices field from a Field value\n   print topography(earth).indices;","metadata":{"name":"indices","path":"Field.indices","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Field.sample","title":"Field.sample","text":"Method: Field.sample - samples this field at a latitude/longitude location\nSyntax:\n  <Field>.sample(location: Location) -> Number|Nil\nArguments:\n  location: Location - latitude/longitude location to sample\nExample:\n# Use Field.sample on a Field value\n   let value = topography(earth);\n   print value.sample(location(latitude: 60.0, longitude: 270.0));","metadata":{"name":"sample","path":"Field.sample","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Field.children","title":"Field.children","text":"Method: Field.children - lists child fields and callable members available on this value\nSyntax:\n  <Field>.children() -> List\nExample:\n# Use Field.children on a Field value\n   let value = topography(earth);\n   print value.children();","metadata":{"name":"children","path":"Field.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Field.fields","title":"Field.fields","text":"Method: Field.fields - returns an object containing the value's plain fields\nSyntax:\n  <Field>.fields() -> Object\nExample:\n# Use Field.fields on a Field value\n   let value = topography(earth);\n   print value.fields();","metadata":{"name":"fields","path":"Field.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Field.functions","title":"Field.functions","text":"Method: Field.functions - lists callable members available on this value\nSyntax:\n  <Field>.functions() -> List\nExample:\n# Use Field.functions on a Field value\n   let value = topography(earth);\n   print value.functions();","metadata":{"name":"functions","path":"Field.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Magnetic","title":"Magnetic","text":"Type: Magnetic - body-scoped magnetic field model\nSyntax:\n  magnetic(body: Body, time: Time, observer: Observer) -> Magnetic\nArguments:\n  body: Body [optional] - body to model; Earth uses WMMHR, other bodies use crude dipoles\n  time: Time [optional] - default sample time\n  observer: Observer [optional] - default observer location\nChildren: body, time, observer, field(), children(), fields(), functions()\nExample:\n# Sample the magnetic field vector at an observer\n   let obs = location(60.0, 10.0).observer(0.002);\n   let model = magnetic(earth, time(2026,1,1,0,0,0), obs);\n   print model.field();","metadata":{"name":"Magnetic","path":"Magnetic","kind":"type","aliases":[],"resources":[],"children":["field:Magnetic.body","field:Magnetic.time","field:Magnetic.observer","member:Magnetic.field","member:Magnetic.children","member:Magnetic.fields","member:Magnetic.functions"]}},{"id":"field:Magnetic.body","title":"Magnetic.body","text":"Field: Magnetic.body - body whose magnetic model is selected\nSyntax:\n  <Magnetic>.body -> Body\nExample:\n# Read the body field from a Magnetic value\n   print magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002)).body;","metadata":{"name":"body","path":"Magnetic.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Magnetic.time","title":"Magnetic.time","text":"Field: Magnetic.time - default sample time\nSyntax:\n  <Magnetic>.time -> Time\nExample:\n# Read the time field from a Magnetic value\n   print magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002)).time;","metadata":{"name":"time","path":"Magnetic.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Magnetic.observer","title":"Magnetic.observer","text":"Field: Magnetic.observer - default observer location\nSyntax:\n  <Magnetic>.observer -> Observer\nExample:\n# Read the observer field from a Magnetic value\n   print magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002)).observer;","metadata":{"name":"observer","path":"Magnetic.observer","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Magnetic.field","title":"Magnetic.field","text":"Method: Magnetic.field - samples the magnetic field at an observer and time\nSyntax:\n  <Magnetic>.field(time: Time, observer: Observer) -> Object\nArguments:\n  time: Time [optional] - sample time; defaults to the constructor time or current UTC\n  observer: Observer [optional] - observer location; defaults to the constructor observer\nExample:\n# Sample a magnetic field model at its configured observer\n   let model = magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002));\n   print model.field();","metadata":{"name":"field","path":"Magnetic.field","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Magnetic.children","title":"Magnetic.children","text":"Method: Magnetic.children - lists child fields and callable members available on this value\nSyntax:\n  <Magnetic>.children() -> List\nExample:\n# List child help topics for a configured magnetic field model\n   let model = magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002));\n   print model.children();","metadata":{"name":"children","path":"Magnetic.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Magnetic.fields","title":"Magnetic.fields","text":"Method: Magnetic.fields - returns an object containing the value's plain fields\nSyntax:\n  <Magnetic>.fields() -> Object\nExample:\n# List fields exposed by a configured magnetic field model\n   let model = magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002));\n   print model.fields();","metadata":{"name":"fields","path":"Magnetic.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Magnetic.functions","title":"Magnetic.functions","text":"Method: Magnetic.functions - lists callable members available on this value\nSyntax:\n  <Magnetic>.functions() -> List\nExample:\n# List functions exposed by a configured magnetic field model\n   let model = magnetic(earth, time(2026,1,1,0,0,0), location(latitude:60,longitude:10).observer(0.002));\n   print model.functions();","metadata":{"name":"functions","path":"Magnetic.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"type:Pages","title":"Pages","text":"Type: Pages - curated data-page builder with optional default body, time, and observer\nSyntax:\n  pages(body: Body, time: Time, observer: Location|Observer) -> Pages\nArguments:\n  body: Body [optional] - default body for body-oriented pages\n  time: Time [optional] - default time for page methods\n  observer: Location|Observer [optional] - default observer or surface location for local pages\nChildren: body, time, observer, sky(), chart(), summary(), sun(), moon(), almanac(), short(), small(), state(), states(), table(), children(), fields(), functions()\nExample:\n# Build a local sky page and print useful Sun and Moon values\n   let page = pages(location(60.0, 10.0), time(2026,1,1,0,0,0)).sky();\n   print page.sun.altitude, page.moon.phase;","metadata":{"name":"Pages","path":"Pages","kind":"type","aliases":[],"resources":[],"children":["field:Pages.body","field:Pages.time","field:Pages.observer","member:Pages.sky","member:Pages.chart","member:Pages.summary","member:Pages.sun","member:Pages.moon","member:Pages.almanac","member:Pages.short","member:Pages.small","member:Pages.state","member:Pages.states","member:Pages.table","member:Pages.children","member:Pages.fields","member:Pages.functions"]}},{"id":"field:Pages.body","title":"Pages.body","text":"Field: Pages.body - default body for body-oriented page methods\nSyntax:\n  <Pages>.body -> Body|Nil\nExample:\n# Read the body field from a Pages value\n   print pages(location(60.0, 10.0), moon).body;","metadata":{"name":"body","path":"Pages.body","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Pages.time","title":"Pages.time","text":"Field: Pages.time - default time for page methods\nSyntax:\n  <Pages>.time -> Time|Nil\nExample:\n# Read the time field from a Pages value\n   print pages(location(60.0, 10.0), moon).time;","metadata":{"name":"time","path":"Pages.time","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"field:Pages.observer","title":"Pages.observer","text":"Field: Pages.observer - default local observer for page methods\nSyntax:\n  <Pages>.observer -> Observer|Nil\nExample:\n# Read the observer stored in a local pages value\n   let obs = location(60.0, 10.0).observer(0.002);\n   let page = pages(obs, moon);\n   print page.observer;","metadata":{"name":"observer","path":"Pages.observer","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.sky","title":"Pages.sky","text":"Method: Pages.sky - returns local Sun, Moon, planet, twilight, and next-event sky data\nSyntax:\n  <Pages>.sky(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.sky on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.sky();","metadata":{"name":"sky","path":"Pages.sky","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.chart","title":"Pages.chart","text":"Method: Pages.chart - returns apparent geocentric ecliptic body positions for a chart time\nSyntax:\n  <Pages>.chart(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Build apparent geocentric chart positions for an explicit time\n   let t = time(2026,1,1,0,0,0);\n   let chart = pages(t).chart();\n   print chart.bodies.sun.geocentric.longitude, chart.bodies.moon.chart.sign;","metadata":{"name":"chart","path":"Pages.chart","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.summary","title":"Pages.summary","text":"Method: Pages.summary - returns a compact useful data object for one body\nSyntax:\n  <Pages>.summary(body: Body, time: Time, observer: Location|Observer) -> Object\nArguments:\n  body: Body [optional] - body to summarize; defaults to pages(...) body\n  time: Time [optional] - summary time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - optional local observer; defaults to pages(...) observer\nExample:\n# Use Pages.summary on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.summary();","metadata":{"name":"summary","path":"Pages.summary","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.sun","title":"Pages.sun","text":"Method: Pages.sun - returns a compact Sun data object\nSyntax:\n  <Pages>.sun(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.sun on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.sun();","metadata":{"name":"sun","path":"Pages.sun","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.moon","title":"Pages.moon","text":"Method: Pages.moon - returns a compact Moon data object\nSyntax:\n  <Pages>.moon(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.moon on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.moon();","metadata":{"name":"moon","path":"Pages.moon","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.almanac","title":"Pages.almanac","text":"Method: Pages.almanac - returns almanac event data using Pages defaults\nSyntax:\n  <Pages>.almanac(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.almanac on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.almanac();","metadata":{"name":"almanac","path":"Pages.almanac","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.short","title":"Pages.short","text":"Method: Pages.short - returns compact one-day local Sun and Moon data\nSyntax:\n  <Pages>.short(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.short on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.short();","metadata":{"name":"short","path":"Pages.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.small","title":"Pages.small","text":"Method: Pages.small - returns fuller one-day local sky, chart, and almanac data\nSyntax:\n  <Pages>.small(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.small on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.small();","metadata":{"name":"small","path":"Pages.small","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.state","title":"Pages.state","text":"Method: Pages.state - returns solar-system state vectors for one time\nSyntax:\n  <Pages>.state(time: Time, observer: Location|Observer) -> Object\nArguments:\n  time: Time [optional] - page time; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\nExample:\n# Use Pages.state on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.state();","metadata":{"name":"state","path":"Pages.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.states","title":"Pages.states","text":"Method: Pages.states - returns solar-system state vectors sampled over a period\nSyntax:\n  <Pages>.states(time: Time|Range, observer: Location|Observer, days: Number, step: Number) -> List\nArguments:\n  time: Time|Range [optional] - start time or bounded time range; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\n  days: Number [optional] - number of days to include; defaults to 30\n  step: Number [optional] - sampling step in days for states; defaults to 1\nExample:\n# Sample solar-system state vectors over a time range\n   let start = time(2026,1,1,0,0,0);\n   let p = pages(start).states(range(start, start.add_days(1), 6));\n   print p.bodies.earth.position_bc_icrf.length();","metadata":{"name":"states","path":"Pages.states","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.table","title":"Pages.table","text":"Method: Pages.table - returns daily local Sun and Moon event rows over a period\nSyntax:\n  <Pages>.table(time: Time|Range, observer: Location|Observer, days: Number, step: Number) -> List\nArguments:\n  time: Time|Range [optional] - start time or bounded time range; defaults to pages(...) time or current UTC\n  observer: Location|Observer [optional] - local observer; defaults to pages(...) observer when present\n  days: Number [optional] - number of days to include; defaults to 30\n  step: Number [optional] - sampling step in days for states; defaults to 1\nExample:\n# Use Pages.table on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.table();","metadata":{"name":"table","path":"Pages.table","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.children","title":"Pages.children","text":"Method: Pages.children - lists child fields and callable members available on this value\nSyntax:\n  <Pages>.children() -> List\nExample:\n# Use Pages.children on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.children();","metadata":{"name":"children","path":"Pages.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.fields","title":"Pages.fields","text":"Method: Pages.fields - returns an object containing the value's plain fields\nSyntax:\n  <Pages>.fields() -> Object\nExample:\n# Use Pages.fields on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.fields();","metadata":{"name":"fields","path":"Pages.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"member:Pages.functions","title":"Pages.functions","text":"Method: Pages.functions - lists callable members available on this value\nSyntax:\n  <Pages>.functions() -> List\nExample:\n# Use Pages.functions on a Pages value\n   let value = pages(location(60.0, 10.0), moon);\n   print value.functions();","metadata":{"name":"functions","path":"Pages.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant:sun","title":"sun","text":"Constant: sun - built-in Body constant\nSyntax:\n  sun -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), greatest_eastern_elongation(), greatest_western_elongation(), greatest_elongation(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use sun as a body reference and print its physical row\n   print sun.name, sun.radius, sun.mass;","metadata":{"name":"sun","path":"sun","kind":"constant","aliases":[],"resources":[],"children":["constant_member:sun.name","constant_member:sun.kind","constant_member:sun.xmu","constant_member:sun.radius","constant_member:sun.mass","constant_member:sun.H","constant_member:sun.n","constant_member:sun.k","constant_member:sun.known","constant_member:sun.rotational_axis","constant_member:sun.rotational_axis_ra","constant_member:sun.rotational_axis_dec","constant_member:sun.state","constant_member:sun.rise","constant_member:sun.set","constant_member:sun.conjunction","constant_member:sun.opposition","constant_member:sun.eastern_quadrature","constant_member:sun.western_quadrature","constant_member:sun.quadrature","constant_member:sun.greatest_eastern_elongation","constant_member:sun.greatest_western_elongation","constant_member:sun.greatest_elongation","constant_member:sun.periapsis","constant_member:sun.apoapsis","constant_member:sun.children","constant_member:sun.fields","constant_member:sun.functions"]}},{"id":"constant:mercury","title":"mercury","text":"Constant: mercury - built-in Body constant\nSyntax:\n  mercury -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), inferior_conjunction(), superior_conjunction(), greatest_eastern_elongation(), greatest_western_elongation(), greatest_elongation(), periapsis(), apoapsis(), transit(), children(), fields(), functions()\nExample:\n# Use mercury as a body reference and print its physical row\n   print mercury.name, mercury.radius, mercury.mass;","metadata":{"name":"mercury","path":"mercury","kind":"constant","aliases":[],"resources":[],"children":["constant_member:mercury.name","constant_member:mercury.kind","constant_member:mercury.xmu","constant_member:mercury.radius","constant_member:mercury.mass","constant_member:mercury.H","constant_member:mercury.n","constant_member:mercury.k","constant_member:mercury.known","constant_member:mercury.rotational_axis","constant_member:mercury.rotational_axis_ra","constant_member:mercury.rotational_axis_dec","constant_member:mercury.state","constant_member:mercury.rise","constant_member:mercury.set","constant_member:mercury.conjunction","constant_member:mercury.inferior_conjunction","constant_member:mercury.superior_conjunction","constant_member:mercury.greatest_eastern_elongation","constant_member:mercury.greatest_western_elongation","constant_member:mercury.greatest_elongation","constant_member:mercury.periapsis","constant_member:mercury.apoapsis","constant_member:mercury.transit","constant_member:mercury.children","constant_member:mercury.fields","constant_member:mercury.functions"]}},{"id":"constant:venus","title":"venus","text":"Constant: venus - built-in Body constant\nSyntax:\n  venus -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), inferior_conjunction(), superior_conjunction(), greatest_eastern_elongation(), greatest_western_elongation(), greatest_elongation(), periapsis(), apoapsis(), transit(), children(), fields(), functions()\nExample:\n# Use venus as a body reference and print its physical row\n   print venus.name, venus.radius, venus.mass;","metadata":{"name":"venus","path":"venus","kind":"constant","aliases":[],"resources":[],"children":["constant_member:venus.name","constant_member:venus.kind","constant_member:venus.xmu","constant_member:venus.radius","constant_member:venus.mass","constant_member:venus.H","constant_member:venus.n","constant_member:venus.k","constant_member:venus.known","constant_member:venus.rotational_axis","constant_member:venus.rotational_axis_ra","constant_member:venus.rotational_axis_dec","constant_member:venus.state","constant_member:venus.rise","constant_member:venus.set","constant_member:venus.conjunction","constant_member:venus.inferior_conjunction","constant_member:venus.superior_conjunction","constant_member:venus.greatest_eastern_elongation","constant_member:venus.greatest_western_elongation","constant_member:venus.greatest_elongation","constant_member:venus.periapsis","constant_member:venus.apoapsis","constant_member:venus.transit","constant_member:venus.children","constant_member:venus.fields","constant_member:venus.functions"]}},{"id":"constant:moon","title":"moon","text":"Constant: moon - built-in Body constant\nSyntax:\n  moon -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use moon as a body reference and print its physical row\n   print moon.name, moon.radius, moon.mass;","metadata":{"name":"moon","path":"moon","kind":"constant","aliases":[],"resources":[],"children":["constant_member:moon.name","constant_member:moon.kind","constant_member:moon.xmu","constant_member:moon.radius","constant_member:moon.mass","constant_member:moon.H","constant_member:moon.n","constant_member:moon.k","constant_member:moon.known","constant_member:moon.rotational_axis","constant_member:moon.rotational_axis_ra","constant_member:moon.rotational_axis_dec","constant_member:moon.state","constant_member:moon.rise","constant_member:moon.set","constant_member:moon.conjunction","constant_member:moon.opposition","constant_member:moon.eastern_quadrature","constant_member:moon.western_quadrature","constant_member:moon.quadrature","constant_member:moon.periapsis","constant_member:moon.apoapsis","constant_member:moon.children","constant_member:moon.fields","constant_member:moon.functions"]}},{"id":"constant:earth","title":"earth","text":"Constant: earth - built-in Body constant\nSyntax:\n  earth -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use earth as a body reference and print its physical row\n   print earth.name, earth.radius, earth.mass;","metadata":{"name":"earth","path":"earth","kind":"constant","aliases":[],"resources":[],"children":["constant_member:earth.name","constant_member:earth.kind","constant_member:earth.xmu","constant_member:earth.radius","constant_member:earth.mass","constant_member:earth.H","constant_member:earth.n","constant_member:earth.k","constant_member:earth.known","constant_member:earth.rotational_axis","constant_member:earth.rotational_axis_ra","constant_member:earth.rotational_axis_dec","constant_member:earth.state","constant_member:earth.periapsis","constant_member:earth.apoapsis","constant_member:earth.children","constant_member:earth.fields","constant_member:earth.functions"]}},{"id":"constant:mars","title":"mars","text":"Constant: mars - built-in Body constant\nSyntax:\n  mars -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use mars as a body reference and print its physical row\n   print mars.name, mars.radius, mars.mass;","metadata":{"name":"mars","path":"mars","kind":"constant","aliases":[],"resources":[],"children":["constant_member:mars.name","constant_member:mars.kind","constant_member:mars.xmu","constant_member:mars.radius","constant_member:mars.mass","constant_member:mars.H","constant_member:mars.n","constant_member:mars.k","constant_member:mars.known","constant_member:mars.rotational_axis","constant_member:mars.rotational_axis_ra","constant_member:mars.rotational_axis_dec","constant_member:mars.state","constant_member:mars.rise","constant_member:mars.set","constant_member:mars.conjunction","constant_member:mars.opposition","constant_member:mars.eastern_quadrature","constant_member:mars.western_quadrature","constant_member:mars.quadrature","constant_member:mars.periapsis","constant_member:mars.apoapsis","constant_member:mars.children","constant_member:mars.fields","constant_member:mars.functions"]}},{"id":"constant:jupiter","title":"jupiter","text":"Constant: jupiter - built-in Body constant\nSyntax:\n  jupiter -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use jupiter as a body reference and print its physical row\n   print jupiter.name, jupiter.radius, jupiter.mass;","metadata":{"name":"jupiter","path":"jupiter","kind":"constant","aliases":[],"resources":[],"children":["constant_member:jupiter.name","constant_member:jupiter.kind","constant_member:jupiter.xmu","constant_member:jupiter.radius","constant_member:jupiter.mass","constant_member:jupiter.H","constant_member:jupiter.n","constant_member:jupiter.k","constant_member:jupiter.known","constant_member:jupiter.rotational_axis","constant_member:jupiter.rotational_axis_ra","constant_member:jupiter.rotational_axis_dec","constant_member:jupiter.state","constant_member:jupiter.rise","constant_member:jupiter.set","constant_member:jupiter.conjunction","constant_member:jupiter.opposition","constant_member:jupiter.eastern_quadrature","constant_member:jupiter.western_quadrature","constant_member:jupiter.quadrature","constant_member:jupiter.periapsis","constant_member:jupiter.apoapsis","constant_member:jupiter.children","constant_member:jupiter.fields","constant_member:jupiter.functions"]}},{"id":"constant:saturn","title":"saturn","text":"Constant: saturn - built-in Body constant\nSyntax:\n  saturn -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use saturn as a body reference and print its physical row\n   print saturn.name, saturn.radius, saturn.mass;","metadata":{"name":"saturn","path":"saturn","kind":"constant","aliases":[],"resources":[],"children":["constant_member:saturn.name","constant_member:saturn.kind","constant_member:saturn.xmu","constant_member:saturn.radius","constant_member:saturn.mass","constant_member:saturn.H","constant_member:saturn.n","constant_member:saturn.k","constant_member:saturn.known","constant_member:saturn.rotational_axis","constant_member:saturn.rotational_axis_ra","constant_member:saturn.rotational_axis_dec","constant_member:saturn.state","constant_member:saturn.rise","constant_member:saturn.set","constant_member:saturn.conjunction","constant_member:saturn.opposition","constant_member:saturn.eastern_quadrature","constant_member:saturn.western_quadrature","constant_member:saturn.quadrature","constant_member:saturn.periapsis","constant_member:saturn.apoapsis","constant_member:saturn.children","constant_member:saturn.fields","constant_member:saturn.functions"]}},{"id":"constant:uranus","title":"uranus","text":"Constant: uranus - built-in Body constant\nSyntax:\n  uranus -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use uranus as a body reference and print its physical row\n   print uranus.name, uranus.radius, uranus.mass;","metadata":{"name":"uranus","path":"uranus","kind":"constant","aliases":[],"resources":[],"children":["constant_member:uranus.name","constant_member:uranus.kind","constant_member:uranus.xmu","constant_member:uranus.radius","constant_member:uranus.mass","constant_member:uranus.H","constant_member:uranus.n","constant_member:uranus.k","constant_member:uranus.known","constant_member:uranus.rotational_axis","constant_member:uranus.rotational_axis_ra","constant_member:uranus.rotational_axis_dec","constant_member:uranus.state","constant_member:uranus.rise","constant_member:uranus.set","constant_member:uranus.conjunction","constant_member:uranus.opposition","constant_member:uranus.eastern_quadrature","constant_member:uranus.western_quadrature","constant_member:uranus.quadrature","constant_member:uranus.periapsis","constant_member:uranus.apoapsis","constant_member:uranus.children","constant_member:uranus.fields","constant_member:uranus.functions"]}},{"id":"constant:neptune","title":"neptune","text":"Constant: neptune - built-in Body constant\nSyntax:\n  neptune -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use neptune as a body reference and print its physical row\n   print neptune.name, neptune.radius, neptune.mass;","metadata":{"name":"neptune","path":"neptune","kind":"constant","aliases":[],"resources":[],"children":["constant_member:neptune.name","constant_member:neptune.kind","constant_member:neptune.xmu","constant_member:neptune.radius","constant_member:neptune.mass","constant_member:neptune.H","constant_member:neptune.n","constant_member:neptune.k","constant_member:neptune.known","constant_member:neptune.rotational_axis","constant_member:neptune.rotational_axis_ra","constant_member:neptune.rotational_axis_dec","constant_member:neptune.state","constant_member:neptune.rise","constant_member:neptune.set","constant_member:neptune.conjunction","constant_member:neptune.opposition","constant_member:neptune.eastern_quadrature","constant_member:neptune.western_quadrature","constant_member:neptune.quadrature","constant_member:neptune.periapsis","constant_member:neptune.apoapsis","constant_member:neptune.children","constant_member:neptune.fields","constant_member:neptune.functions"]}},{"id":"constant:pluto","title":"pluto","text":"Constant: pluto - built-in Body constant\nSyntax:\n  pluto -> Body\nChildren: name, kind, xmu, radius, mass, H, n, k, known, rotational_axis(), rotational_axis_ra(), rotational_axis_dec(), state(), rise(), set(), conjunction(), opposition(), eastern_quadrature(), western_quadrature(), quadrature(), periapsis(), apoapsis(), children(), fields(), functions()\nExample:\n# Use pluto as a body reference and print its physical row\n   print pluto.name, pluto.radius, pluto.mass;","metadata":{"name":"pluto","path":"pluto","kind":"constant","aliases":[],"resources":[],"children":["constant_member:pluto.name","constant_member:pluto.kind","constant_member:pluto.xmu","constant_member:pluto.radius","constant_member:pluto.mass","constant_member:pluto.H","constant_member:pluto.n","constant_member:pluto.k","constant_member:pluto.known","constant_member:pluto.rotational_axis","constant_member:pluto.rotational_axis_ra","constant_member:pluto.rotational_axis_dec","constant_member:pluto.state","constant_member:pluto.rise","constant_member:pluto.set","constant_member:pluto.conjunction","constant_member:pluto.opposition","constant_member:pluto.eastern_quadrature","constant_member:pluto.western_quadrature","constant_member:pluto.quadrature","constant_member:pluto.periapsis","constant_member:pluto.apoapsis","constant_member:pluto.children","constant_member:pluto.fields","constant_member:pluto.functions"]}},{"id":"constant_member:sun.name","title":"sun.name","text":"Field: sun.name - canonical body name\nSyntax:\n  sun.name -> Text\nExample:\n# Use sun.name as the label in a body catalog row\n   let row = {label: sun.name, radius: sun.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"sun.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.kind","title":"sun.kind","text":"Field: sun.kind - reference body kind\nSyntax:\n  sun.kind -> Text\nExample:\n# Use sun.kind to group a body catalog row\n   let row = {name: sun.name, group: sun.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"sun.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.xmu","title":"sun.xmu","text":"Field: sun.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  sun.xmu -> Number\nExample:\n# Compare sun gravitational parameter with Earth\n   print sun.name, sun.xmu, sun.xmu / earth.xmu;","metadata":{"name":"xmu","path":"sun.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.radius","title":"sun.radius","text":"Field: sun.radius - body radius in km\nSyntax:\n  sun.radius -> Number\nExample:\n# Compare sun radius with Earth for scale estimates\n   print sun.name, sun.radius, sun.radius / earth.radius;","metadata":{"name":"radius","path":"sun.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.mass","title":"sun.mass","text":"Field: sun.mass - body mass in kg\nSyntax:\n  sun.mass -> Number\nExample:\n# Compare sun mass with Earth for scale estimates\n   print sun.name, sun.mass, sun.mass / earth.mass;","metadata":{"name":"mass","path":"sun.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.H","title":"sun.H","text":"Field: sun.H - reference absolute magnitude parameter\nSyntax:\n  sun.H -> Number\nExample:\n# Use sun.H as the absolute magnitude term in a report\n   print sun.name, sun.H;","metadata":{"name":"H","path":"sun.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.n","title":"sun.n","text":"Field: sun.n - reference illumination exponent\nSyntax:\n  sun.n -> Number\nExample:\n# Use sun.n as the photometric phase slope term\n   print sun.name, sun.n, sun.H + sun.n;","metadata":{"name":"n","path":"sun.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.k","title":"sun.k","text":"Field: sun.k - reference G Muller constant\nSyntax:\n  sun.k -> Number\nExample:\n# Use sun.k as the photometric curvature term\n   print sun.name, sun.k, sun.H + sun.k;","metadata":{"name":"k","path":"sun.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.known","title":"sun.known","text":"Field: sun.known - whether the body name matched the built-in table\nSyntax:\n  sun.known -> Bool\nExample:\n# Verify whether sun has built-in physical metadata\n   print sun.name, sun.known;","metadata":{"name":"known","path":"sun.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.rotational_axis","title":"sun.rotational_axis","text":"Method: sun.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  sun.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the sun constant with its rotational_axis member\n   let value = sun;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"sun.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.rotational_axis_ra","title":"sun.rotational_axis_ra","text":"Method: sun.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  sun.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the sun constant with its rotational_axis_ra member\n   let value = sun;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"sun.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.rotational_axis_dec","title":"sun.rotational_axis_dec","text":"Method: sun.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  sun.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the sun constant with its rotational_axis_dec member\n   let value = sun;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"sun.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.state","title":"sun.state","text":"Method: sun.state - returns the orbital state for this body at a time\nSyntax:\n  sun.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the sun constant with its state member\n   let value = sun;\n   print value.state(time());","metadata":{"name":"state","path":"sun.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.rise","title":"sun.rise","text":"Method: sun.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  sun.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find sun rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print sun.rise(obs, span).first();","metadata":{"name":"rise","path":"sun.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.set","title":"sun.set","text":"Method: sun.set - returns sunset or moonset events for an observer\nSyntax:\n  sun.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find sun set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print sun.set(obs, span).first();","metadata":{"name":"set","path":"sun.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.conjunction","title":"sun.conjunction","text":"Method: sun.conjunction - returns events when the Sun and Earth are on the same side of the solar-system barycenter\nSyntax:\n  sun.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find when the Sun and Earth are on the same side of the solar-system barycenter\n   let span = range(time(2026,9,20,0,0,0), time(2027,9,20,0,0,0), 5);\n   print sun.conjunction(span).first();","metadata":{"name":"conjunction","path":"sun.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.opposition","title":"sun.opposition","text":"Method: sun.opposition - returns events when the Sun and Earth are on opposite sides of the solar-system barycenter\nSyntax:\n  sun.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find when the Sun and Earth are on opposite sides of the solar-system barycenter\n   let span = range(time(2026,9,20,0,0,0), time(2027,9,20,0,0,0), 5);\n   print sun.opposition(span).first();","metadata":{"name":"opposition","path":"sun.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.eastern_quadrature","title":"sun.eastern_quadrature","text":"Method: sun.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  sun.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Demonstrate eastern_quadrature using an outer planet time range\n   let value = mars;\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print \"sun help\", value.eastern_quadrature(span).first();","metadata":{"name":"eastern_quadrature","path":"sun.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.western_quadrature","title":"sun.western_quadrature","text":"Method: sun.western_quadrature - returns western quadrature events for this body\nSyntax:\n  sun.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Demonstrate western_quadrature using an outer planet time range\n   let value = mars;\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print \"sun help\", value.western_quadrature(span).first();","metadata":{"name":"western_quadrature","path":"sun.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.quadrature","title":"sun.quadrature","text":"Method: sun.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  sun.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Demonstrate quadrature using an outer planet time range\n   let value = mars;\n   let span = range(time(2025,1,1,0,0,0), time(2026,1,1,0,0,0), 1);\n   print \"sun help\", value.quadrature(span).first();","metadata":{"name":"quadrature","path":"sun.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.greatest_eastern_elongation","title":"sun.greatest_eastern_elongation","text":"Method: sun.greatest_eastern_elongation - returns Sun greatest eastern elongation events relative to the solar-system barycenter\nSyntax:\n  sun.greatest_eastern_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find Sun greatest eastern elongation relative to the solar-system barycenter\n   let span = range(time(2027,1,1,0,0,0), time(2028,1,1,0,0,0), 5);\n   print sun.greatest_eastern_elongation(span).first();","metadata":{"name":"greatest_eastern_elongation","path":"sun.greatest_eastern_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.greatest_western_elongation","title":"sun.greatest_western_elongation","text":"Method: sun.greatest_western_elongation - returns Sun greatest western elongation events relative to the solar-system barycenter\nSyntax:\n  sun.greatest_western_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find Sun greatest western elongation relative to the solar-system barycenter\n   let span = range(time(2027,1,1,0,0,0), time(2028,1,1,0,0,0), 5);\n   print sun.greatest_western_elongation(span).first();","metadata":{"name":"greatest_western_elongation","path":"sun.greatest_western_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.greatest_elongation","title":"sun.greatest_elongation","text":"Method: sun.greatest_elongation - returns Sun greatest eastern and western elongation events relative to the solar-system barycenter\nSyntax:\n  sun.greatest_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find Sun greatest elongation events relative to the solar-system barycenter\n   let span = range(time(2027,1,1,0,0,0), time(2028,1,1,0,0,0), 5);\n   print sun.greatest_elongation(span);","metadata":{"name":"greatest_elongation","path":"sun.greatest_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.periapsis","title":"sun.periapsis","text":"Method: sun.periapsis - returns Sun periapsis events relative to the solar-system barycenter\nSyntax:\n  sun.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find Sun periapsis events relative to the solar-system barycenter\n   let span = range(time(2020,1,1,0,0,0), time(2040,1,1,0,0,0), 5);\n   print sun.periapsis(span).first();","metadata":{"name":"periapsis","path":"sun.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.apoapsis","title":"sun.apoapsis","text":"Method: sun.apoapsis - returns Sun apoapsis events relative to the solar-system barycenter\nSyntax:\n  sun.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find Sun apoapsis events relative to the solar-system barycenter\n   let span = range(time(2020,1,1,0,0,0), time(2040,1,1,0,0,0), 5);\n   print sun.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"sun.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.children","title":"sun.children","text":"Method: sun.children - lists child fields and callable members available on this value\nSyntax:\n  sun.children() -> List\nExample:\n# Inspect child entries available from the sun constant\n   let value = sun;\n   print value.children();","metadata":{"name":"children","path":"sun.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.fields","title":"sun.fields","text":"Method: sun.fields - returns an object containing the value's plain fields\nSyntax:\n  sun.fields() -> Object\nExample:\n# Inspect plain fields on the sun constant\n   let value = sun;\n   print value.fields();","metadata":{"name":"fields","path":"sun.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sun.functions","title":"sun.functions","text":"Method: sun.functions - lists callable members available on this value\nSyntax:\n  sun.functions() -> List\nExample:\n# Inspect callable members on the sun constant\n   let value = sun;\n   print value.functions();","metadata":{"name":"functions","path":"sun.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.name","title":"mercury.name","text":"Field: mercury.name - canonical body name\nSyntax:\n  mercury.name -> Text\nExample:\n# Use mercury.name as the label in a body catalog row\n   let row = {label: mercury.name, radius: mercury.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"mercury.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.kind","title":"mercury.kind","text":"Field: mercury.kind - reference body kind\nSyntax:\n  mercury.kind -> Text\nExample:\n# Use mercury.kind to group a body catalog row\n   let row = {name: mercury.name, group: mercury.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"mercury.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.xmu","title":"mercury.xmu","text":"Field: mercury.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  mercury.xmu -> Number\nExample:\n# Compare mercury gravitational parameter with Earth\n   print mercury.name, mercury.xmu, mercury.xmu / earth.xmu;","metadata":{"name":"xmu","path":"mercury.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.radius","title":"mercury.radius","text":"Field: mercury.radius - body radius in km\nSyntax:\n  mercury.radius -> Number\nExample:\n# Compare mercury radius with Earth for scale estimates\n   print mercury.name, mercury.radius, mercury.radius / earth.radius;","metadata":{"name":"radius","path":"mercury.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.mass","title":"mercury.mass","text":"Field: mercury.mass - body mass in kg\nSyntax:\n  mercury.mass -> Number\nExample:\n# Compare mercury mass with Earth for scale estimates\n   print mercury.name, mercury.mass, mercury.mass / earth.mass;","metadata":{"name":"mass","path":"mercury.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.H","title":"mercury.H","text":"Field: mercury.H - reference absolute magnitude parameter\nSyntax:\n  mercury.H -> Number\nExample:\n# Use mercury.H as the absolute magnitude term in a report\n   print mercury.name, mercury.H;","metadata":{"name":"H","path":"mercury.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.n","title":"mercury.n","text":"Field: mercury.n - reference illumination exponent\nSyntax:\n  mercury.n -> Number\nExample:\n# Use mercury.n as the photometric phase slope term\n   print mercury.name, mercury.n, mercury.H + mercury.n;","metadata":{"name":"n","path":"mercury.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.k","title":"mercury.k","text":"Field: mercury.k - reference G Muller constant\nSyntax:\n  mercury.k -> Number\nExample:\n# Use mercury.k as the photometric curvature term\n   print mercury.name, mercury.k, mercury.H + mercury.k;","metadata":{"name":"k","path":"mercury.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.known","title":"mercury.known","text":"Field: mercury.known - whether the body name matched the built-in table\nSyntax:\n  mercury.known -> Bool\nExample:\n# Verify whether mercury has built-in physical metadata\n   print mercury.name, mercury.known;","metadata":{"name":"known","path":"mercury.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.rotational_axis","title":"mercury.rotational_axis","text":"Method: mercury.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  mercury.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mercury constant with its rotational_axis member\n   let value = mercury;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"mercury.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.rotational_axis_ra","title":"mercury.rotational_axis_ra","text":"Method: mercury.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  mercury.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mercury constant with its rotational_axis_ra member\n   let value = mercury;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"mercury.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.rotational_axis_dec","title":"mercury.rotational_axis_dec","text":"Method: mercury.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  mercury.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mercury constant with its rotational_axis_dec member\n   let value = mercury;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"mercury.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.state","title":"mercury.state","text":"Method: mercury.state - returns the orbital state for this body at a time\nSyntax:\n  mercury.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mercury constant with its state member\n   let value = mercury;\n   print value.state(time());","metadata":{"name":"state","path":"mercury.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.rise","title":"mercury.rise","text":"Method: mercury.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  mercury.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find mercury rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print mercury.rise(obs, span).first();","metadata":{"name":"rise","path":"mercury.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.set","title":"mercury.set","text":"Method: mercury.set - returns sunset or moonset events for an observer\nSyntax:\n  mercury.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find mercury set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print mercury.set(obs, span).first();","metadata":{"name":"set","path":"mercury.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.conjunction","title":"mercury.conjunction","text":"Method: mercury.conjunction - returns conjunction events for this body\nSyntax:\n  mercury.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its conjunction member\n   let value = mercury;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"mercury.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.inferior_conjunction","title":"mercury.inferior_conjunction","text":"Method: mercury.inferior_conjunction - returns inferior conjunction events for this body\nSyntax:\n  mercury.inferior_conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its inferior_conjunction member\n   let value = mercury;\n   print value.inferior_conjunction();","metadata":{"name":"inferior_conjunction","path":"mercury.inferior_conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.superior_conjunction","title":"mercury.superior_conjunction","text":"Method: mercury.superior_conjunction - returns superior conjunction events for this body\nSyntax:\n  mercury.superior_conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its superior_conjunction member\n   let value = mercury;\n   print value.superior_conjunction();","metadata":{"name":"superior_conjunction","path":"mercury.superior_conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.greatest_eastern_elongation","title":"mercury.greatest_eastern_elongation","text":"Method: mercury.greatest_eastern_elongation - returns greatest eastern elongation events for this body\nSyntax:\n  mercury.greatest_eastern_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its greatest_eastern_elongation member\n   let value = mercury;\n   print value.greatest_eastern_elongation();","metadata":{"name":"greatest_eastern_elongation","path":"mercury.greatest_eastern_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.greatest_western_elongation","title":"mercury.greatest_western_elongation","text":"Method: mercury.greatest_western_elongation - returns greatest western elongation events for this body\nSyntax:\n  mercury.greatest_western_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its greatest_western_elongation member\n   let value = mercury;\n   print value.greatest_western_elongation();","metadata":{"name":"greatest_western_elongation","path":"mercury.greatest_western_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.greatest_elongation","title":"mercury.greatest_elongation","text":"Method: mercury.greatest_elongation - returns greatest eastern and western elongation events for this body\nSyntax:\n  mercury.greatest_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its greatest_elongation member\n   let value = mercury;\n   print value.greatest_elongation();","metadata":{"name":"greatest_elongation","path":"mercury.greatest_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.periapsis","title":"mercury.periapsis","text":"Method: mercury.periapsis - returns periapsis events for this body\nSyntax:\n  mercury.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the mercury help entry\n   let value = mercury;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"mercury\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"mercury.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.apoapsis","title":"mercury.apoapsis","text":"Method: mercury.apoapsis - returns apoapsis events for this body\nSyntax:\n  mercury.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the mercury help entry\n   let value = mercury;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"mercury\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"mercury.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.transit","title":"mercury.transit","text":"Method: mercury.transit - returns solar transit events for Mercury or Venus\nSyntax:\n  mercury.transit(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mercury constant with its transit member\n   let value = mercury;\n   print value.transit();","metadata":{"name":"transit","path":"mercury.transit","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.children","title":"mercury.children","text":"Method: mercury.children - lists child fields and callable members available on this value\nSyntax:\n  mercury.children() -> List\nExample:\n# Inspect child entries available from the mercury constant\n   let value = mercury;\n   print value.children();","metadata":{"name":"children","path":"mercury.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.fields","title":"mercury.fields","text":"Method: mercury.fields - returns an object containing the value's plain fields\nSyntax:\n  mercury.fields() -> Object\nExample:\n# Inspect plain fields on the mercury constant\n   let value = mercury;\n   print value.fields();","metadata":{"name":"fields","path":"mercury.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mercury.functions","title":"mercury.functions","text":"Method: mercury.functions - lists callable members available on this value\nSyntax:\n  mercury.functions() -> List\nExample:\n# Inspect callable members on the mercury constant\n   let value = mercury;\n   print value.functions();","metadata":{"name":"functions","path":"mercury.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.name","title":"venus.name","text":"Field: venus.name - canonical body name\nSyntax:\n  venus.name -> Text\nExample:\n# Use venus.name as the label in a body catalog row\n   let row = {label: venus.name, radius: venus.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"venus.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.kind","title":"venus.kind","text":"Field: venus.kind - reference body kind\nSyntax:\n  venus.kind -> Text\nExample:\n# Use venus.kind to group a body catalog row\n   let row = {name: venus.name, group: venus.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"venus.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.xmu","title":"venus.xmu","text":"Field: venus.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  venus.xmu -> Number\nExample:\n# Compare venus gravitational parameter with Earth\n   print venus.name, venus.xmu, venus.xmu / earth.xmu;","metadata":{"name":"xmu","path":"venus.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.radius","title":"venus.radius","text":"Field: venus.radius - body radius in km\nSyntax:\n  venus.radius -> Number\nExample:\n# Compare venus radius with Earth for scale estimates\n   print venus.name, venus.radius, venus.radius / earth.radius;","metadata":{"name":"radius","path":"venus.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.mass","title":"venus.mass","text":"Field: venus.mass - body mass in kg\nSyntax:\n  venus.mass -> Number\nExample:\n# Compare venus mass with Earth for scale estimates\n   print venus.name, venus.mass, venus.mass / earth.mass;","metadata":{"name":"mass","path":"venus.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.H","title":"venus.H","text":"Field: venus.H - reference absolute magnitude parameter\nSyntax:\n  venus.H -> Number\nExample:\n# Use venus.H as the absolute magnitude term in a report\n   print venus.name, venus.H;","metadata":{"name":"H","path":"venus.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.n","title":"venus.n","text":"Field: venus.n - reference illumination exponent\nSyntax:\n  venus.n -> Number\nExample:\n# Use venus.n as the photometric phase slope term\n   print venus.name, venus.n, venus.H + venus.n;","metadata":{"name":"n","path":"venus.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.k","title":"venus.k","text":"Field: venus.k - reference G Muller constant\nSyntax:\n  venus.k -> Number\nExample:\n# Use venus.k as the photometric curvature term\n   print venus.name, venus.k, venus.H + venus.k;","metadata":{"name":"k","path":"venus.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.known","title":"venus.known","text":"Field: venus.known - whether the body name matched the built-in table\nSyntax:\n  venus.known -> Bool\nExample:\n# Verify whether venus has built-in physical metadata\n   print venus.name, venus.known;","metadata":{"name":"known","path":"venus.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.rotational_axis","title":"venus.rotational_axis","text":"Method: venus.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  venus.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the venus constant with its rotational_axis member\n   let value = venus;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"venus.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.rotational_axis_ra","title":"venus.rotational_axis_ra","text":"Method: venus.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  venus.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the venus constant with its rotational_axis_ra member\n   let value = venus;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"venus.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.rotational_axis_dec","title":"venus.rotational_axis_dec","text":"Method: venus.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  venus.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the venus constant with its rotational_axis_dec member\n   let value = venus;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"venus.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.state","title":"venus.state","text":"Method: venus.state - returns the orbital state for this body at a time\nSyntax:\n  venus.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the venus constant with its state member\n   let value = venus;\n   print value.state(time());","metadata":{"name":"state","path":"venus.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.rise","title":"venus.rise","text":"Method: venus.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  venus.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find venus rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print venus.rise(obs, span).first();","metadata":{"name":"rise","path":"venus.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.set","title":"venus.set","text":"Method: venus.set - returns sunset or moonset events for an observer\nSyntax:\n  venus.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find venus set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print venus.set(obs, span).first();","metadata":{"name":"set","path":"venus.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.conjunction","title":"venus.conjunction","text":"Method: venus.conjunction - returns conjunction events for this body\nSyntax:\n  venus.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its conjunction member\n   let value = venus;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"venus.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.inferior_conjunction","title":"venus.inferior_conjunction","text":"Method: venus.inferior_conjunction - returns inferior conjunction events for this body\nSyntax:\n  venus.inferior_conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its inferior_conjunction member\n   let value = venus;\n   print value.inferior_conjunction();","metadata":{"name":"inferior_conjunction","path":"venus.inferior_conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.superior_conjunction","title":"venus.superior_conjunction","text":"Method: venus.superior_conjunction - returns superior conjunction events for this body\nSyntax:\n  venus.superior_conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its superior_conjunction member\n   let value = venus;\n   print value.superior_conjunction();","metadata":{"name":"superior_conjunction","path":"venus.superior_conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.greatest_eastern_elongation","title":"venus.greatest_eastern_elongation","text":"Method: venus.greatest_eastern_elongation - returns greatest eastern elongation events for this body\nSyntax:\n  venus.greatest_eastern_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its greatest_eastern_elongation member\n   let value = venus;\n   print value.greatest_eastern_elongation();","metadata":{"name":"greatest_eastern_elongation","path":"venus.greatest_eastern_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.greatest_western_elongation","title":"venus.greatest_western_elongation","text":"Method: venus.greatest_western_elongation - returns greatest western elongation events for this body\nSyntax:\n  venus.greatest_western_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its greatest_western_elongation member\n   let value = venus;\n   print value.greatest_western_elongation();","metadata":{"name":"greatest_western_elongation","path":"venus.greatest_western_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.greatest_elongation","title":"venus.greatest_elongation","text":"Method: venus.greatest_elongation - returns greatest eastern and western elongation events for this body\nSyntax:\n  venus.greatest_elongation(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its greatest_elongation member\n   let value = venus;\n   print value.greatest_elongation();","metadata":{"name":"greatest_elongation","path":"venus.greatest_elongation","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.periapsis","title":"venus.periapsis","text":"Method: venus.periapsis - returns periapsis events for this body\nSyntax:\n  venus.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the venus help entry\n   let value = venus;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"venus\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"venus.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.apoapsis","title":"venus.apoapsis","text":"Method: venus.apoapsis - returns apoapsis events for this body\nSyntax:\n  venus.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the venus help entry\n   let value = venus;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"venus\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"venus.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.transit","title":"venus.transit","text":"Method: venus.transit - returns solar transit events for Mercury or Venus\nSyntax:\n  venus.transit(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the venus constant with its transit member\n   let value = venus;\n   print value.transit();","metadata":{"name":"transit","path":"venus.transit","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.children","title":"venus.children","text":"Method: venus.children - lists child fields and callable members available on this value\nSyntax:\n  venus.children() -> List\nExample:\n# Inspect child entries available from the venus constant\n   let value = venus;\n   print value.children();","metadata":{"name":"children","path":"venus.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.fields","title":"venus.fields","text":"Method: venus.fields - returns an object containing the value's plain fields\nSyntax:\n  venus.fields() -> Object\nExample:\n# Inspect plain fields on the venus constant\n   let value = venus;\n   print value.fields();","metadata":{"name":"fields","path":"venus.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:venus.functions","title":"venus.functions","text":"Method: venus.functions - lists callable members available on this value\nSyntax:\n  venus.functions() -> List\nExample:\n# Inspect callable members on the venus constant\n   let value = venus;\n   print value.functions();","metadata":{"name":"functions","path":"venus.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.name","title":"moon.name","text":"Field: moon.name - canonical body name\nSyntax:\n  moon.name -> Text\nExample:\n# Use moon.name as the label in a body catalog row\n   let row = {label: moon.name, radius: moon.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"moon.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.kind","title":"moon.kind","text":"Field: moon.kind - reference body kind\nSyntax:\n  moon.kind -> Text\nExample:\n# Use moon.kind to group a body catalog row\n   let row = {name: moon.name, group: moon.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"moon.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.xmu","title":"moon.xmu","text":"Field: moon.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  moon.xmu -> Number\nExample:\n# Compare moon gravitational parameter with Earth\n   print moon.name, moon.xmu, moon.xmu / earth.xmu;","metadata":{"name":"xmu","path":"moon.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.radius","title":"moon.radius","text":"Field: moon.radius - body radius in km\nSyntax:\n  moon.radius -> Number\nExample:\n# Compare moon radius with Earth for scale estimates\n   print moon.name, moon.radius, moon.radius / earth.radius;","metadata":{"name":"radius","path":"moon.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.mass","title":"moon.mass","text":"Field: moon.mass - body mass in kg\nSyntax:\n  moon.mass -> Number\nExample:\n# Compare moon mass with Earth for scale estimates\n   print moon.name, moon.mass, moon.mass / earth.mass;","metadata":{"name":"mass","path":"moon.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.H","title":"moon.H","text":"Field: moon.H - reference absolute magnitude parameter\nSyntax:\n  moon.H -> Number\nExample:\n# Use moon.H as the absolute magnitude term in a report\n   print moon.name, moon.H;","metadata":{"name":"H","path":"moon.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.n","title":"moon.n","text":"Field: moon.n - reference illumination exponent\nSyntax:\n  moon.n -> Number\nExample:\n# Use moon.n as the photometric phase slope term\n   print moon.name, moon.n, moon.H + moon.n;","metadata":{"name":"n","path":"moon.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.k","title":"moon.k","text":"Field: moon.k - reference G Muller constant\nSyntax:\n  moon.k -> Number\nExample:\n# Use moon.k as the photometric curvature term\n   print moon.name, moon.k, moon.H + moon.k;","metadata":{"name":"k","path":"moon.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.known","title":"moon.known","text":"Field: moon.known - whether the body name matched the built-in table\nSyntax:\n  moon.known -> Bool\nExample:\n# Verify whether moon has built-in physical metadata\n   print moon.name, moon.known;","metadata":{"name":"known","path":"moon.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.rotational_axis","title":"moon.rotational_axis","text":"Method: moon.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  moon.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the moon constant with its rotational_axis member\n   let value = moon;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"moon.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.rotational_axis_ra","title":"moon.rotational_axis_ra","text":"Method: moon.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  moon.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the moon constant with its rotational_axis_ra member\n   let value = moon;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"moon.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.rotational_axis_dec","title":"moon.rotational_axis_dec","text":"Method: moon.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  moon.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the moon constant with its rotational_axis_dec member\n   let value = moon;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"moon.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.state","title":"moon.state","text":"Method: moon.state - returns the orbital state for this body at a time\nSyntax:\n  moon.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the moon constant with its state member\n   let value = moon;\n   print value.state(time());","metadata":{"name":"state","path":"moon.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.rise","title":"moon.rise","text":"Method: moon.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  moon.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find moon rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print moon.rise(obs, span).first();","metadata":{"name":"rise","path":"moon.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.set","title":"moon.set","text":"Method: moon.set - returns sunset or moonset events for an observer\nSyntax:\n  moon.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find moon set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print moon.set(obs, span).first();","metadata":{"name":"set","path":"moon.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.conjunction","title":"moon.conjunction","text":"Method: moon.conjunction - returns conjunction events for this body\nSyntax:\n  moon.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the moon constant with its conjunction member\n   let value = moon;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"moon.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.opposition","title":"moon.opposition","text":"Method: moon.opposition - returns opposition events for this body\nSyntax:\n  moon.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the moon constant with its opposition member\n   let value = moon;\n   print value.opposition();","metadata":{"name":"opposition","path":"moon.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.eastern_quadrature","title":"moon.eastern_quadrature","text":"Method: moon.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  moon.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the moon constant with its eastern_quadrature member\n   let value = moon;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"moon.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.western_quadrature","title":"moon.western_quadrature","text":"Method: moon.western_quadrature - returns western quadrature events for this body\nSyntax:\n  moon.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the moon constant with its western_quadrature member\n   let value = moon;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"moon.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.quadrature","title":"moon.quadrature","text":"Method: moon.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  moon.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the moon constant with its quadrature member\n   let value = moon;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"moon.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.periapsis","title":"moon.periapsis","text":"Method: moon.periapsis - returns periapsis events for this body\nSyntax:\n  moon.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the moon help entry\n   let value = moon;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"moon\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"moon.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.apoapsis","title":"moon.apoapsis","text":"Method: moon.apoapsis - returns apoapsis events for this body\nSyntax:\n  moon.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the moon help entry\n   let value = moon;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"moon\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"moon.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.children","title":"moon.children","text":"Method: moon.children - lists child fields and callable members available on this value\nSyntax:\n  moon.children() -> List\nExample:\n# Inspect child entries available from the moon constant\n   let value = moon;\n   print value.children();","metadata":{"name":"children","path":"moon.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.fields","title":"moon.fields","text":"Method: moon.fields - returns an object containing the value's plain fields\nSyntax:\n  moon.fields() -> Object\nExample:\n# Inspect plain fields on the moon constant\n   let value = moon;\n   print value.fields();","metadata":{"name":"fields","path":"moon.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:moon.functions","title":"moon.functions","text":"Method: moon.functions - lists callable members available on this value\nSyntax:\n  moon.functions() -> List\nExample:\n# Inspect callable members on the moon constant\n   let value = moon;\n   print value.functions();","metadata":{"name":"functions","path":"moon.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.name","title":"earth.name","text":"Field: earth.name - canonical body name\nSyntax:\n  earth.name -> Text\nExample:\n# Use earth.name as the label in a body catalog row\n   let row = {label: earth.name, radius: earth.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"earth.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.kind","title":"earth.kind","text":"Field: earth.kind - reference body kind\nSyntax:\n  earth.kind -> Text\nExample:\n# Use earth.kind to group a body catalog row\n   let row = {name: earth.name, group: earth.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"earth.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.xmu","title":"earth.xmu","text":"Field: earth.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  earth.xmu -> Number\nExample:\n# Compare earth gravitational parameter with Earth\n   print earth.name, earth.xmu, earth.xmu / earth.xmu;","metadata":{"name":"xmu","path":"earth.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.radius","title":"earth.radius","text":"Field: earth.radius - body radius in km\nSyntax:\n  earth.radius -> Number\nExample:\n# Compare earth radius with Earth for scale estimates\n   print earth.name, earth.radius, earth.radius / earth.radius;","metadata":{"name":"radius","path":"earth.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.mass","title":"earth.mass","text":"Field: earth.mass - body mass in kg\nSyntax:\n  earth.mass -> Number\nExample:\n# Compare earth mass with Earth for scale estimates\n   print earth.name, earth.mass, earth.mass / earth.mass;","metadata":{"name":"mass","path":"earth.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.H","title":"earth.H","text":"Field: earth.H - reference absolute magnitude parameter\nSyntax:\n  earth.H -> Number\nExample:\n# Use earth.H as the absolute magnitude term in a report\n   print earth.name, earth.H;","metadata":{"name":"H","path":"earth.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.n","title":"earth.n","text":"Field: earth.n - reference illumination exponent\nSyntax:\n  earth.n -> Number\nExample:\n# Use earth.n as the photometric phase slope term\n   print earth.name, earth.n, earth.H + earth.n;","metadata":{"name":"n","path":"earth.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.k","title":"earth.k","text":"Field: earth.k - reference G Muller constant\nSyntax:\n  earth.k -> Number\nExample:\n# Use earth.k as the photometric curvature term\n   print earth.name, earth.k, earth.H + earth.k;","metadata":{"name":"k","path":"earth.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.known","title":"earth.known","text":"Field: earth.known - whether the body name matched the built-in table\nSyntax:\n  earth.known -> Bool\nExample:\n# Verify whether earth has built-in physical metadata\n   print earth.name, earth.known;","metadata":{"name":"known","path":"earth.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.rotational_axis","title":"earth.rotational_axis","text":"Method: earth.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  earth.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the earth constant with its rotational_axis member\n   let value = earth;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"earth.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.rotational_axis_ra","title":"earth.rotational_axis_ra","text":"Method: earth.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  earth.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the earth constant with its rotational_axis_ra member\n   let value = earth;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"earth.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.rotational_axis_dec","title":"earth.rotational_axis_dec","text":"Method: earth.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  earth.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the earth constant with its rotational_axis_dec member\n   let value = earth;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"earth.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.state","title":"earth.state","text":"Method: earth.state - returns the orbital state for this body at a time\nSyntax:\n  earth.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the earth constant with its state member\n   let value = earth;\n   print value.state(time());","metadata":{"name":"state","path":"earth.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.periapsis","title":"earth.periapsis","text":"Method: earth.periapsis - returns periapsis events for this body\nSyntax:\n  earth.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the earth help entry\n   let value = earth;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"earth\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"earth.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.apoapsis","title":"earth.apoapsis","text":"Method: earth.apoapsis - returns apoapsis events for this body\nSyntax:\n  earth.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the earth help entry\n   let value = earth;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"earth\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"earth.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.children","title":"earth.children","text":"Method: earth.children - lists child fields and callable members available on this value\nSyntax:\n  earth.children() -> List\nExample:\n# Inspect child entries available from the earth constant\n   let value = earth;\n   print value.children();","metadata":{"name":"children","path":"earth.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.fields","title":"earth.fields","text":"Method: earth.fields - returns an object containing the value's plain fields\nSyntax:\n  earth.fields() -> Object\nExample:\n# Inspect plain fields on the earth constant\n   let value = earth;\n   print value.fields();","metadata":{"name":"fields","path":"earth.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:earth.functions","title":"earth.functions","text":"Method: earth.functions - lists callable members available on this value\nSyntax:\n  earth.functions() -> List\nExample:\n# Inspect callable members on the earth constant\n   let value = earth;\n   print value.functions();","metadata":{"name":"functions","path":"earth.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.name","title":"mars.name","text":"Field: mars.name - canonical body name\nSyntax:\n  mars.name -> Text\nExample:\n# Use mars.name as the label in a body catalog row\n   let row = {label: mars.name, radius: mars.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"mars.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.kind","title":"mars.kind","text":"Field: mars.kind - reference body kind\nSyntax:\n  mars.kind -> Text\nExample:\n# Use mars.kind to group a body catalog row\n   let row = {name: mars.name, group: mars.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"mars.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.xmu","title":"mars.xmu","text":"Field: mars.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  mars.xmu -> Number\nExample:\n# Compare mars gravitational parameter with Earth\n   print mars.name, mars.xmu, mars.xmu / earth.xmu;","metadata":{"name":"xmu","path":"mars.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.radius","title":"mars.radius","text":"Field: mars.radius - body radius in km\nSyntax:\n  mars.radius -> Number\nExample:\n# Compare mars radius with Earth for scale estimates\n   print mars.name, mars.radius, mars.radius / earth.radius;","metadata":{"name":"radius","path":"mars.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.mass","title":"mars.mass","text":"Field: mars.mass - body mass in kg\nSyntax:\n  mars.mass -> Number\nExample:\n# Compare mars mass with Earth for scale estimates\n   print mars.name, mars.mass, mars.mass / earth.mass;","metadata":{"name":"mass","path":"mars.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.H","title":"mars.H","text":"Field: mars.H - reference absolute magnitude parameter\nSyntax:\n  mars.H -> Number\nExample:\n# Use mars.H as the absolute magnitude term in a report\n   print mars.name, mars.H;","metadata":{"name":"H","path":"mars.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.n","title":"mars.n","text":"Field: mars.n - reference illumination exponent\nSyntax:\n  mars.n -> Number\nExample:\n# Use mars.n as the photometric phase slope term\n   print mars.name, mars.n, mars.H + mars.n;","metadata":{"name":"n","path":"mars.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.k","title":"mars.k","text":"Field: mars.k - reference G Muller constant\nSyntax:\n  mars.k -> Number\nExample:\n# Use mars.k as the photometric curvature term\n   print mars.name, mars.k, mars.H + mars.k;","metadata":{"name":"k","path":"mars.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.known","title":"mars.known","text":"Field: mars.known - whether the body name matched the built-in table\nSyntax:\n  mars.known -> Bool\nExample:\n# Verify whether mars has built-in physical metadata\n   print mars.name, mars.known;","metadata":{"name":"known","path":"mars.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.rotational_axis","title":"mars.rotational_axis","text":"Method: mars.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  mars.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mars constant with its rotational_axis member\n   let value = mars;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"mars.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.rotational_axis_ra","title":"mars.rotational_axis_ra","text":"Method: mars.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  mars.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mars constant with its rotational_axis_ra member\n   let value = mars;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"mars.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.rotational_axis_dec","title":"mars.rotational_axis_dec","text":"Method: mars.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  mars.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mars constant with its rotational_axis_dec member\n   let value = mars;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"mars.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.state","title":"mars.state","text":"Method: mars.state - returns the orbital state for this body at a time\nSyntax:\n  mars.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the mars constant with its state member\n   let value = mars;\n   print value.state(time());","metadata":{"name":"state","path":"mars.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.rise","title":"mars.rise","text":"Method: mars.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  mars.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find mars rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print mars.rise(obs, span).first();","metadata":{"name":"rise","path":"mars.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.set","title":"mars.set","text":"Method: mars.set - returns sunset or moonset events for an observer\nSyntax:\n  mars.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find mars set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print mars.set(obs, span).first();","metadata":{"name":"set","path":"mars.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.conjunction","title":"mars.conjunction","text":"Method: mars.conjunction - returns conjunction events for this body\nSyntax:\n  mars.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mars constant with its conjunction member\n   let value = mars;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"mars.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.opposition","title":"mars.opposition","text":"Method: mars.opposition - returns opposition events for this body\nSyntax:\n  mars.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mars constant with its opposition member\n   let value = mars;\n   print value.opposition();","metadata":{"name":"opposition","path":"mars.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.eastern_quadrature","title":"mars.eastern_quadrature","text":"Method: mars.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  mars.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mars constant with its eastern_quadrature member\n   let value = mars;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"mars.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.western_quadrature","title":"mars.western_quadrature","text":"Method: mars.western_quadrature - returns western quadrature events for this body\nSyntax:\n  mars.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mars constant with its western_quadrature member\n   let value = mars;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"mars.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.quadrature","title":"mars.quadrature","text":"Method: mars.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  mars.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the mars constant with its quadrature member\n   let value = mars;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"mars.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.periapsis","title":"mars.periapsis","text":"Method: mars.periapsis - returns periapsis events for this body\nSyntax:\n  mars.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the mars help entry\n   let value = mars;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"mars\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"mars.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.apoapsis","title":"mars.apoapsis","text":"Method: mars.apoapsis - returns apoapsis events for this body\nSyntax:\n  mars.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the mars help entry\n   let value = mars;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"mars\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"mars.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.children","title":"mars.children","text":"Method: mars.children - lists child fields and callable members available on this value\nSyntax:\n  mars.children() -> List\nExample:\n# Inspect child entries available from the mars constant\n   let value = mars;\n   print value.children();","metadata":{"name":"children","path":"mars.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.fields","title":"mars.fields","text":"Method: mars.fields - returns an object containing the value's plain fields\nSyntax:\n  mars.fields() -> Object\nExample:\n# Inspect plain fields on the mars constant\n   let value = mars;\n   print value.fields();","metadata":{"name":"fields","path":"mars.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:mars.functions","title":"mars.functions","text":"Method: mars.functions - lists callable members available on this value\nSyntax:\n  mars.functions() -> List\nExample:\n# Inspect callable members on the mars constant\n   let value = mars;\n   print value.functions();","metadata":{"name":"functions","path":"mars.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.name","title":"jupiter.name","text":"Field: jupiter.name - canonical body name\nSyntax:\n  jupiter.name -> Text\nExample:\n# Use jupiter.name as the label in a body catalog row\n   let row = {label: jupiter.name, radius: jupiter.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"jupiter.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.kind","title":"jupiter.kind","text":"Field: jupiter.kind - reference body kind\nSyntax:\n  jupiter.kind -> Text\nExample:\n# Use jupiter.kind to group a body catalog row\n   let row = {name: jupiter.name, group: jupiter.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"jupiter.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.xmu","title":"jupiter.xmu","text":"Field: jupiter.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  jupiter.xmu -> Number\nExample:\n# Compare jupiter gravitational parameter with Earth\n   print jupiter.name, jupiter.xmu, jupiter.xmu / earth.xmu;","metadata":{"name":"xmu","path":"jupiter.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.radius","title":"jupiter.radius","text":"Field: jupiter.radius - body radius in km\nSyntax:\n  jupiter.radius -> Number\nExample:\n# Compare jupiter radius with Earth for scale estimates\n   print jupiter.name, jupiter.radius, jupiter.radius / earth.radius;","metadata":{"name":"radius","path":"jupiter.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.mass","title":"jupiter.mass","text":"Field: jupiter.mass - body mass in kg\nSyntax:\n  jupiter.mass -> Number\nExample:\n# Compare jupiter mass with Earth for scale estimates\n   print jupiter.name, jupiter.mass, jupiter.mass / earth.mass;","metadata":{"name":"mass","path":"jupiter.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.H","title":"jupiter.H","text":"Field: jupiter.H - reference absolute magnitude parameter\nSyntax:\n  jupiter.H -> Number\nExample:\n# Use jupiter.H as the absolute magnitude term in a report\n   print jupiter.name, jupiter.H;","metadata":{"name":"H","path":"jupiter.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.n","title":"jupiter.n","text":"Field: jupiter.n - reference illumination exponent\nSyntax:\n  jupiter.n -> Number\nExample:\n# Use jupiter.n as the photometric phase slope term\n   print jupiter.name, jupiter.n, jupiter.H + jupiter.n;","metadata":{"name":"n","path":"jupiter.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.k","title":"jupiter.k","text":"Field: jupiter.k - reference G Muller constant\nSyntax:\n  jupiter.k -> Number\nExample:\n# Use jupiter.k as the photometric curvature term\n   print jupiter.name, jupiter.k, jupiter.H + jupiter.k;","metadata":{"name":"k","path":"jupiter.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.known","title":"jupiter.known","text":"Field: jupiter.known - whether the body name matched the built-in table\nSyntax:\n  jupiter.known -> Bool\nExample:\n# Verify whether jupiter has built-in physical metadata\n   print jupiter.name, jupiter.known;","metadata":{"name":"known","path":"jupiter.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.rotational_axis","title":"jupiter.rotational_axis","text":"Method: jupiter.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  jupiter.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the jupiter constant with its rotational_axis member\n   let value = jupiter;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"jupiter.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.rotational_axis_ra","title":"jupiter.rotational_axis_ra","text":"Method: jupiter.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  jupiter.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the jupiter constant with its rotational_axis_ra member\n   let value = jupiter;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"jupiter.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.rotational_axis_dec","title":"jupiter.rotational_axis_dec","text":"Method: jupiter.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  jupiter.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the jupiter constant with its rotational_axis_dec member\n   let value = jupiter;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"jupiter.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.state","title":"jupiter.state","text":"Method: jupiter.state - returns the orbital state for this body at a time\nSyntax:\n  jupiter.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the jupiter constant with its state member\n   let value = jupiter;\n   print value.state(time());","metadata":{"name":"state","path":"jupiter.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.rise","title":"jupiter.rise","text":"Method: jupiter.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  jupiter.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find jupiter rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print jupiter.rise(obs, span).first();","metadata":{"name":"rise","path":"jupiter.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.set","title":"jupiter.set","text":"Method: jupiter.set - returns sunset or moonset events for an observer\nSyntax:\n  jupiter.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find jupiter set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print jupiter.set(obs, span).first();","metadata":{"name":"set","path":"jupiter.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.conjunction","title":"jupiter.conjunction","text":"Method: jupiter.conjunction - returns conjunction events for this body\nSyntax:\n  jupiter.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the jupiter constant with its conjunction member\n   let value = jupiter;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"jupiter.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.opposition","title":"jupiter.opposition","text":"Method: jupiter.opposition - returns opposition events for this body\nSyntax:\n  jupiter.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the jupiter constant with its opposition member\n   let value = jupiter;\n   print value.opposition();","metadata":{"name":"opposition","path":"jupiter.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.eastern_quadrature","title":"jupiter.eastern_quadrature","text":"Method: jupiter.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  jupiter.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the jupiter constant with its eastern_quadrature member\n   let value = jupiter;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"jupiter.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.western_quadrature","title":"jupiter.western_quadrature","text":"Method: jupiter.western_quadrature - returns western quadrature events for this body\nSyntax:\n  jupiter.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the jupiter constant with its western_quadrature member\n   let value = jupiter;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"jupiter.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.quadrature","title":"jupiter.quadrature","text":"Method: jupiter.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  jupiter.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the jupiter constant with its quadrature member\n   let value = jupiter;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"jupiter.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.periapsis","title":"jupiter.periapsis","text":"Method: jupiter.periapsis - returns periapsis events for this body\nSyntax:\n  jupiter.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the jupiter help entry\n   let value = jupiter;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"jupiter\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"jupiter.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.apoapsis","title":"jupiter.apoapsis","text":"Method: jupiter.apoapsis - returns apoapsis events for this body\nSyntax:\n  jupiter.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the jupiter help entry\n   let value = jupiter;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"jupiter\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"jupiter.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.children","title":"jupiter.children","text":"Method: jupiter.children - lists child fields and callable members available on this value\nSyntax:\n  jupiter.children() -> List\nExample:\n# Inspect child entries available from the jupiter constant\n   let value = jupiter;\n   print value.children();","metadata":{"name":"children","path":"jupiter.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.fields","title":"jupiter.fields","text":"Method: jupiter.fields - returns an object containing the value's plain fields\nSyntax:\n  jupiter.fields() -> Object\nExample:\n# Inspect plain fields on the jupiter constant\n   let value = jupiter;\n   print value.fields();","metadata":{"name":"fields","path":"jupiter.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:jupiter.functions","title":"jupiter.functions","text":"Method: jupiter.functions - lists callable members available on this value\nSyntax:\n  jupiter.functions() -> List\nExample:\n# Inspect callable members on the jupiter constant\n   let value = jupiter;\n   print value.functions();","metadata":{"name":"functions","path":"jupiter.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.name","title":"saturn.name","text":"Field: saturn.name - canonical body name\nSyntax:\n  saturn.name -> Text\nExample:\n# Use saturn.name as the label in a body catalog row\n   let row = {label: saturn.name, radius: saturn.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"saturn.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.kind","title":"saturn.kind","text":"Field: saturn.kind - reference body kind\nSyntax:\n  saturn.kind -> Text\nExample:\n# Use saturn.kind to group a body catalog row\n   let row = {name: saturn.name, group: saturn.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"saturn.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.xmu","title":"saturn.xmu","text":"Field: saturn.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  saturn.xmu -> Number\nExample:\n# Compare saturn gravitational parameter with Earth\n   print saturn.name, saturn.xmu, saturn.xmu / earth.xmu;","metadata":{"name":"xmu","path":"saturn.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.radius","title":"saturn.radius","text":"Field: saturn.radius - body radius in km\nSyntax:\n  saturn.radius -> Number\nExample:\n# Compare saturn radius with Earth for scale estimates\n   print saturn.name, saturn.radius, saturn.radius / earth.radius;","metadata":{"name":"radius","path":"saturn.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.mass","title":"saturn.mass","text":"Field: saturn.mass - body mass in kg\nSyntax:\n  saturn.mass -> Number\nExample:\n# Compare saturn mass with Earth for scale estimates\n   print saturn.name, saturn.mass, saturn.mass / earth.mass;","metadata":{"name":"mass","path":"saturn.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.H","title":"saturn.H","text":"Field: saturn.H - reference absolute magnitude parameter\nSyntax:\n  saturn.H -> Number\nExample:\n# Use saturn.H as the absolute magnitude term in a report\n   print saturn.name, saturn.H;","metadata":{"name":"H","path":"saturn.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.n","title":"saturn.n","text":"Field: saturn.n - reference illumination exponent\nSyntax:\n  saturn.n -> Number\nExample:\n# Use saturn.n as the photometric phase slope term\n   print saturn.name, saturn.n, saturn.H + saturn.n;","metadata":{"name":"n","path":"saturn.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.k","title":"saturn.k","text":"Field: saturn.k - reference G Muller constant\nSyntax:\n  saturn.k -> Number\nExample:\n# Use saturn.k as the photometric curvature term\n   print saturn.name, saturn.k, saturn.H + saturn.k;","metadata":{"name":"k","path":"saturn.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.known","title":"saturn.known","text":"Field: saturn.known - whether the body name matched the built-in table\nSyntax:\n  saturn.known -> Bool\nExample:\n# Verify whether saturn has built-in physical metadata\n   print saturn.name, saturn.known;","metadata":{"name":"known","path":"saturn.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.rotational_axis","title":"saturn.rotational_axis","text":"Method: saturn.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  saturn.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the saturn constant with its rotational_axis member\n   let value = saturn;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"saturn.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.rotational_axis_ra","title":"saturn.rotational_axis_ra","text":"Method: saturn.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  saturn.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the saturn constant with its rotational_axis_ra member\n   let value = saturn;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"saturn.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.rotational_axis_dec","title":"saturn.rotational_axis_dec","text":"Method: saturn.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  saturn.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the saturn constant with its rotational_axis_dec member\n   let value = saturn;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"saturn.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.state","title":"saturn.state","text":"Method: saturn.state - returns the orbital state for this body at a time\nSyntax:\n  saturn.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the saturn constant with its state member\n   let value = saturn;\n   print value.state(time());","metadata":{"name":"state","path":"saturn.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.rise","title":"saturn.rise","text":"Method: saturn.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  saturn.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find saturn rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print saturn.rise(obs, span).first();","metadata":{"name":"rise","path":"saturn.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.set","title":"saturn.set","text":"Method: saturn.set - returns sunset or moonset events for an observer\nSyntax:\n  saturn.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find saturn set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print saturn.set(obs, span).first();","metadata":{"name":"set","path":"saturn.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.conjunction","title":"saturn.conjunction","text":"Method: saturn.conjunction - returns conjunction events for this body\nSyntax:\n  saturn.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the saturn constant with its conjunction member\n   let value = saturn;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"saturn.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.opposition","title":"saturn.opposition","text":"Method: saturn.opposition - returns opposition events for this body\nSyntax:\n  saturn.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the saturn constant with its opposition member\n   let value = saturn;\n   print value.opposition();","metadata":{"name":"opposition","path":"saturn.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.eastern_quadrature","title":"saturn.eastern_quadrature","text":"Method: saturn.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  saturn.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the saturn constant with its eastern_quadrature member\n   let value = saturn;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"saturn.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.western_quadrature","title":"saturn.western_quadrature","text":"Method: saturn.western_quadrature - returns western quadrature events for this body\nSyntax:\n  saturn.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the saturn constant with its western_quadrature member\n   let value = saturn;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"saturn.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.quadrature","title":"saturn.quadrature","text":"Method: saturn.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  saturn.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the saturn constant with its quadrature member\n   let value = saturn;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"saturn.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.periapsis","title":"saturn.periapsis","text":"Method: saturn.periapsis - returns periapsis events for this body\nSyntax:\n  saturn.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the saturn help entry\n   let value = saturn;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"saturn\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"saturn.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.apoapsis","title":"saturn.apoapsis","text":"Method: saturn.apoapsis - returns apoapsis events for this body\nSyntax:\n  saturn.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the saturn help entry\n   let value = saturn;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"saturn\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"saturn.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.children","title":"saturn.children","text":"Method: saturn.children - lists child fields and callable members available on this value\nSyntax:\n  saturn.children() -> List\nExample:\n# Inspect child entries available from the saturn constant\n   let value = saturn;\n   print value.children();","metadata":{"name":"children","path":"saturn.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.fields","title":"saturn.fields","text":"Method: saturn.fields - returns an object containing the value's plain fields\nSyntax:\n  saturn.fields() -> Object\nExample:\n# Inspect plain fields on the saturn constant\n   let value = saturn;\n   print value.fields();","metadata":{"name":"fields","path":"saturn.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturn.functions","title":"saturn.functions","text":"Method: saturn.functions - lists callable members available on this value\nSyntax:\n  saturn.functions() -> List\nExample:\n# Inspect callable members on the saturn constant\n   let value = saturn;\n   print value.functions();","metadata":{"name":"functions","path":"saturn.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.name","title":"uranus.name","text":"Field: uranus.name - canonical body name\nSyntax:\n  uranus.name -> Text\nExample:\n# Use uranus.name as the label in a body catalog row\n   let row = {label: uranus.name, radius: uranus.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"uranus.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.kind","title":"uranus.kind","text":"Field: uranus.kind - reference body kind\nSyntax:\n  uranus.kind -> Text\nExample:\n# Use uranus.kind to group a body catalog row\n   let row = {name: uranus.name, group: uranus.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"uranus.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.xmu","title":"uranus.xmu","text":"Field: uranus.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  uranus.xmu -> Number\nExample:\n# Compare uranus gravitational parameter with Earth\n   print uranus.name, uranus.xmu, uranus.xmu / earth.xmu;","metadata":{"name":"xmu","path":"uranus.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.radius","title":"uranus.radius","text":"Field: uranus.radius - body radius in km\nSyntax:\n  uranus.radius -> Number\nExample:\n# Compare uranus radius with Earth for scale estimates\n   print uranus.name, uranus.radius, uranus.radius / earth.radius;","metadata":{"name":"radius","path":"uranus.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.mass","title":"uranus.mass","text":"Field: uranus.mass - body mass in kg\nSyntax:\n  uranus.mass -> Number\nExample:\n# Compare uranus mass with Earth for scale estimates\n   print uranus.name, uranus.mass, uranus.mass / earth.mass;","metadata":{"name":"mass","path":"uranus.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.H","title":"uranus.H","text":"Field: uranus.H - reference absolute magnitude parameter\nSyntax:\n  uranus.H -> Number\nExample:\n# Use uranus.H as the absolute magnitude term in a report\n   print uranus.name, uranus.H;","metadata":{"name":"H","path":"uranus.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.n","title":"uranus.n","text":"Field: uranus.n - reference illumination exponent\nSyntax:\n  uranus.n -> Number\nExample:\n# Use uranus.n as the photometric phase slope term\n   print uranus.name, uranus.n, uranus.H + uranus.n;","metadata":{"name":"n","path":"uranus.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.k","title":"uranus.k","text":"Field: uranus.k - reference G Muller constant\nSyntax:\n  uranus.k -> Number\nExample:\n# Use uranus.k as the photometric curvature term\n   print uranus.name, uranus.k, uranus.H + uranus.k;","metadata":{"name":"k","path":"uranus.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.known","title":"uranus.known","text":"Field: uranus.known - whether the body name matched the built-in table\nSyntax:\n  uranus.known -> Bool\nExample:\n# Verify whether uranus has built-in physical metadata\n   print uranus.name, uranus.known;","metadata":{"name":"known","path":"uranus.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.rotational_axis","title":"uranus.rotational_axis","text":"Method: uranus.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  uranus.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the uranus constant with its rotational_axis member\n   let value = uranus;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"uranus.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.rotational_axis_ra","title":"uranus.rotational_axis_ra","text":"Method: uranus.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  uranus.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the uranus constant with its rotational_axis_ra member\n   let value = uranus;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"uranus.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.rotational_axis_dec","title":"uranus.rotational_axis_dec","text":"Method: uranus.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  uranus.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the uranus constant with its rotational_axis_dec member\n   let value = uranus;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"uranus.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.state","title":"uranus.state","text":"Method: uranus.state - returns the orbital state for this body at a time\nSyntax:\n  uranus.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the uranus constant with its state member\n   let value = uranus;\n   print value.state(time());","metadata":{"name":"state","path":"uranus.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.rise","title":"uranus.rise","text":"Method: uranus.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  uranus.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find uranus rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print uranus.rise(obs, span).first();","metadata":{"name":"rise","path":"uranus.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.set","title":"uranus.set","text":"Method: uranus.set - returns sunset or moonset events for an observer\nSyntax:\n  uranus.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find uranus set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print uranus.set(obs, span).first();","metadata":{"name":"set","path":"uranus.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.conjunction","title":"uranus.conjunction","text":"Method: uranus.conjunction - returns conjunction events for this body\nSyntax:\n  uranus.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the uranus constant with its conjunction member\n   let value = uranus;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"uranus.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.opposition","title":"uranus.opposition","text":"Method: uranus.opposition - returns opposition events for this body\nSyntax:\n  uranus.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the uranus constant with its opposition member\n   let value = uranus;\n   print value.opposition();","metadata":{"name":"opposition","path":"uranus.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.eastern_quadrature","title":"uranus.eastern_quadrature","text":"Method: uranus.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  uranus.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the uranus constant with its eastern_quadrature member\n   let value = uranus;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"uranus.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.western_quadrature","title":"uranus.western_quadrature","text":"Method: uranus.western_quadrature - returns western quadrature events for this body\nSyntax:\n  uranus.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the uranus constant with its western_quadrature member\n   let value = uranus;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"uranus.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.quadrature","title":"uranus.quadrature","text":"Method: uranus.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  uranus.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the uranus constant with its quadrature member\n   let value = uranus;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"uranus.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.periapsis","title":"uranus.periapsis","text":"Method: uranus.periapsis - returns periapsis events for this body\nSyntax:\n  uranus.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the uranus help entry\n   let value = uranus;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"uranus\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"uranus.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.apoapsis","title":"uranus.apoapsis","text":"Method: uranus.apoapsis - returns apoapsis events for this body\nSyntax:\n  uranus.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the uranus help entry\n   let value = uranus;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"uranus\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"uranus.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.children","title":"uranus.children","text":"Method: uranus.children - lists child fields and callable members available on this value\nSyntax:\n  uranus.children() -> List\nExample:\n# Inspect child entries available from the uranus constant\n   let value = uranus;\n   print value.children();","metadata":{"name":"children","path":"uranus.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.fields","title":"uranus.fields","text":"Method: uranus.fields - returns an object containing the value's plain fields\nSyntax:\n  uranus.fields() -> Object\nExample:\n# Inspect plain fields on the uranus constant\n   let value = uranus;\n   print value.fields();","metadata":{"name":"fields","path":"uranus.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:uranus.functions","title":"uranus.functions","text":"Method: uranus.functions - lists callable members available on this value\nSyntax:\n  uranus.functions() -> List\nExample:\n# Inspect callable members on the uranus constant\n   let value = uranus;\n   print value.functions();","metadata":{"name":"functions","path":"uranus.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.name","title":"neptune.name","text":"Field: neptune.name - canonical body name\nSyntax:\n  neptune.name -> Text\nExample:\n# Use neptune.name as the label in a body catalog row\n   let row = {label: neptune.name, radius: neptune.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"neptune.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.kind","title":"neptune.kind","text":"Field: neptune.kind - reference body kind\nSyntax:\n  neptune.kind -> Text\nExample:\n# Use neptune.kind to group a body catalog row\n   let row = {name: neptune.name, group: neptune.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"neptune.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.xmu","title":"neptune.xmu","text":"Field: neptune.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  neptune.xmu -> Number\nExample:\n# Compare neptune gravitational parameter with Earth\n   print neptune.name, neptune.xmu, neptune.xmu / earth.xmu;","metadata":{"name":"xmu","path":"neptune.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.radius","title":"neptune.radius","text":"Field: neptune.radius - body radius in km\nSyntax:\n  neptune.radius -> Number\nExample:\n# Compare neptune radius with Earth for scale estimates\n   print neptune.name, neptune.radius, neptune.radius / earth.radius;","metadata":{"name":"radius","path":"neptune.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.mass","title":"neptune.mass","text":"Field: neptune.mass - body mass in kg\nSyntax:\n  neptune.mass -> Number\nExample:\n# Compare neptune mass with Earth for scale estimates\n   print neptune.name, neptune.mass, neptune.mass / earth.mass;","metadata":{"name":"mass","path":"neptune.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.H","title":"neptune.H","text":"Field: neptune.H - reference absolute magnitude parameter\nSyntax:\n  neptune.H -> Number\nExample:\n# Use neptune.H as the absolute magnitude term in a report\n   print neptune.name, neptune.H;","metadata":{"name":"H","path":"neptune.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.n","title":"neptune.n","text":"Field: neptune.n - reference illumination exponent\nSyntax:\n  neptune.n -> Number\nExample:\n# Use neptune.n as the photometric phase slope term\n   print neptune.name, neptune.n, neptune.H + neptune.n;","metadata":{"name":"n","path":"neptune.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.k","title":"neptune.k","text":"Field: neptune.k - reference G Muller constant\nSyntax:\n  neptune.k -> Number\nExample:\n# Use neptune.k as the photometric curvature term\n   print neptune.name, neptune.k, neptune.H + neptune.k;","metadata":{"name":"k","path":"neptune.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.known","title":"neptune.known","text":"Field: neptune.known - whether the body name matched the built-in table\nSyntax:\n  neptune.known -> Bool\nExample:\n# Verify whether neptune has built-in physical metadata\n   print neptune.name, neptune.known;","metadata":{"name":"known","path":"neptune.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.rotational_axis","title":"neptune.rotational_axis","text":"Method: neptune.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  neptune.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the neptune constant with its rotational_axis member\n   let value = neptune;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"neptune.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.rotational_axis_ra","title":"neptune.rotational_axis_ra","text":"Method: neptune.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  neptune.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the neptune constant with its rotational_axis_ra member\n   let value = neptune;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"neptune.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.rotational_axis_dec","title":"neptune.rotational_axis_dec","text":"Method: neptune.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  neptune.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the neptune constant with its rotational_axis_dec member\n   let value = neptune;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"neptune.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.state","title":"neptune.state","text":"Method: neptune.state - returns the orbital state for this body at a time\nSyntax:\n  neptune.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the neptune constant with its state member\n   let value = neptune;\n   print value.state(time());","metadata":{"name":"state","path":"neptune.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.rise","title":"neptune.rise","text":"Method: neptune.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  neptune.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find neptune rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print neptune.rise(obs, span).first();","metadata":{"name":"rise","path":"neptune.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.set","title":"neptune.set","text":"Method: neptune.set - returns sunset or moonset events for an observer\nSyntax:\n  neptune.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find neptune set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print neptune.set(obs, span).first();","metadata":{"name":"set","path":"neptune.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.conjunction","title":"neptune.conjunction","text":"Method: neptune.conjunction - returns conjunction events for this body\nSyntax:\n  neptune.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the neptune constant with its conjunction member\n   let value = neptune;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"neptune.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.opposition","title":"neptune.opposition","text":"Method: neptune.opposition - returns opposition events for this body\nSyntax:\n  neptune.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the neptune constant with its opposition member\n   let value = neptune;\n   print value.opposition();","metadata":{"name":"opposition","path":"neptune.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.eastern_quadrature","title":"neptune.eastern_quadrature","text":"Method: neptune.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  neptune.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the neptune constant with its eastern_quadrature member\n   let value = neptune;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"neptune.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.western_quadrature","title":"neptune.western_quadrature","text":"Method: neptune.western_quadrature - returns western quadrature events for this body\nSyntax:\n  neptune.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the neptune constant with its western_quadrature member\n   let value = neptune;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"neptune.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.quadrature","title":"neptune.quadrature","text":"Method: neptune.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  neptune.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the neptune constant with its quadrature member\n   let value = neptune;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"neptune.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.periapsis","title":"neptune.periapsis","text":"Method: neptune.periapsis - returns periapsis events for this body\nSyntax:\n  neptune.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the neptune help entry\n   let value = neptune;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"neptune\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"neptune.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.apoapsis","title":"neptune.apoapsis","text":"Method: neptune.apoapsis - returns apoapsis events for this body\nSyntax:\n  neptune.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the neptune help entry\n   let value = neptune;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"neptune\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"neptune.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.children","title":"neptune.children","text":"Method: neptune.children - lists child fields and callable members available on this value\nSyntax:\n  neptune.children() -> List\nExample:\n# Inspect child entries available from the neptune constant\n   let value = neptune;\n   print value.children();","metadata":{"name":"children","path":"neptune.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.fields","title":"neptune.fields","text":"Method: neptune.fields - returns an object containing the value's plain fields\nSyntax:\n  neptune.fields() -> Object\nExample:\n# Inspect plain fields on the neptune constant\n   let value = neptune;\n   print value.fields();","metadata":{"name":"fields","path":"neptune.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:neptune.functions","title":"neptune.functions","text":"Method: neptune.functions - lists callable members available on this value\nSyntax:\n  neptune.functions() -> List\nExample:\n# Inspect callable members on the neptune constant\n   let value = neptune;\n   print value.functions();","metadata":{"name":"functions","path":"neptune.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.name","title":"pluto.name","text":"Field: pluto.name - canonical body name\nSyntax:\n  pluto.name -> Text\nExample:\n# Use pluto.name as the label in a body catalog row\n   let row = {label: pluto.name, radius: pluto.radius};\n   print row.label, row.radius;","metadata":{"name":"name","path":"pluto.name","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.kind","title":"pluto.kind","text":"Field: pluto.kind - reference body kind\nSyntax:\n  pluto.kind -> Text\nExample:\n# Use pluto.kind to group a body catalog row\n   let row = {name: pluto.name, group: pluto.kind};\n   print row.group, row.name;","metadata":{"name":"kind","path":"pluto.kind","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.xmu","title":"pluto.xmu","text":"Field: pluto.xmu - gravitational parameter in km^3/s^2\nSyntax:\n  pluto.xmu -> Number\nExample:\n# Compare pluto gravitational parameter with Earth\n   print pluto.name, pluto.xmu, pluto.xmu / earth.xmu;","metadata":{"name":"xmu","path":"pluto.xmu","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.radius","title":"pluto.radius","text":"Field: pluto.radius - body radius in km\nSyntax:\n  pluto.radius -> Number\nExample:\n# Compare pluto radius with Earth for scale estimates\n   print pluto.name, pluto.radius, pluto.radius / earth.radius;","metadata":{"name":"radius","path":"pluto.radius","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.mass","title":"pluto.mass","text":"Field: pluto.mass - body mass in kg\nSyntax:\n  pluto.mass -> Number\nExample:\n# Compare pluto mass with Earth for scale estimates\n   print pluto.name, pluto.mass, pluto.mass / earth.mass;","metadata":{"name":"mass","path":"pluto.mass","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.H","title":"pluto.H","text":"Field: pluto.H - reference absolute magnitude parameter\nSyntax:\n  pluto.H -> Number\nExample:\n# Use pluto.H as the absolute magnitude term in a report\n   print pluto.name, pluto.H;","metadata":{"name":"H","path":"pluto.H","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.n","title":"pluto.n","text":"Field: pluto.n - reference illumination exponent\nSyntax:\n  pluto.n -> Number\nExample:\n# Use pluto.n as the photometric phase slope term\n   print pluto.name, pluto.n, pluto.H + pluto.n;","metadata":{"name":"n","path":"pluto.n","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.k","title":"pluto.k","text":"Field: pluto.k - reference G Muller constant\nSyntax:\n  pluto.k -> Number\nExample:\n# Use pluto.k as the photometric curvature term\n   print pluto.name, pluto.k, pluto.H + pluto.k;","metadata":{"name":"k","path":"pluto.k","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.known","title":"pluto.known","text":"Field: pluto.known - whether the body name matched the built-in table\nSyntax:\n  pluto.known -> Bool\nExample:\n# Verify whether pluto has built-in physical metadata\n   print pluto.name, pluto.known;","metadata":{"name":"known","path":"pluto.known","kind":"field","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.rotational_axis","title":"pluto.rotational_axis","text":"Method: pluto.rotational_axis - returns this body's rotational north pole at a time\nSyntax:\n  pluto.rotational_axis(time: Time) -> Object\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the pluto constant with its rotational_axis member\n   let value = pluto;\n   print value.rotational_axis(time());","metadata":{"name":"rotational_axis","path":"pluto.rotational_axis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.rotational_axis_ra","title":"pluto.rotational_axis_ra","text":"Method: pluto.rotational_axis_ra - returns the rotational north-pole right ascension in degrees\nSyntax:\n  pluto.rotational_axis_ra(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the pluto constant with its rotational_axis_ra member\n   let value = pluto;\n   print value.rotational_axis_ra(time());","metadata":{"name":"rotational_axis_ra","path":"pluto.rotational_axis_ra","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.rotational_axis_dec","title":"pluto.rotational_axis_dec","text":"Method: pluto.rotational_axis_dec - returns the rotational north-pole declination in degrees\nSyntax:\n  pluto.rotational_axis_dec(time: Time) -> Number\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the pluto constant with its rotational_axis_dec member\n   let value = pluto;\n   print value.rotational_axis_dec(time());","metadata":{"name":"rotational_axis_dec","path":"pluto.rotational_axis_dec","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.state","title":"pluto.state","text":"Method: pluto.state - returns the orbital state for this body at a time\nSyntax:\n  pluto.state(time: Time) -> State\nArguments:\n  time: Time - time at which to evaluate the rotational pole\nExample:\n# Use the pluto constant with its state member\n   let value = pluto;\n   print value.state(time());","metadata":{"name":"state","path":"pluto.state","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.rise","title":"pluto.rise","text":"Method: pluto.rise - returns sunrise or moonrise events for an observer\nSyntax:\n  pluto.rise(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find pluto rise events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print pluto.rise(obs, span).first();","metadata":{"name":"rise","path":"pluto.rise","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.set","title":"pluto.set","text":"Method: pluto.set - returns sunset or moonset events for an observer\nSyntax:\n  pluto.set(observer: Location|Observer, range: Range) -> List|Event|Nil\nArguments:\n  observer: Location|Observer - Earth location or observer for the local horizon event\n  range: Range - time range to search; open ranges return the next event\nExample:\n# Find pluto set events from an explicit observer\n   let obs = location(latitude: 60.0, longitude: 10.0).observer(0.002);\n   let span = range(time(2026,1,1,0,0,0), time(2026,1,2,0,0,0));\n   print pluto.set(obs, span).first();","metadata":{"name":"set","path":"pluto.set","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.conjunction","title":"pluto.conjunction","text":"Method: pluto.conjunction - returns conjunction events for this body\nSyntax:\n  pluto.conjunction(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the pluto constant with its conjunction member\n   let value = pluto;\n   print value.conjunction();","metadata":{"name":"conjunction","path":"pluto.conjunction","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.opposition","title":"pluto.opposition","text":"Method: pluto.opposition - returns opposition events for this body\nSyntax:\n  pluto.opposition(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the pluto constant with its opposition member\n   let value = pluto;\n   print value.opposition();","metadata":{"name":"opposition","path":"pluto.opposition","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.eastern_quadrature","title":"pluto.eastern_quadrature","text":"Method: pluto.eastern_quadrature - returns eastern quadrature events for this body\nSyntax:\n  pluto.eastern_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the pluto constant with its eastern_quadrature member\n   let value = pluto;\n   print value.eastern_quadrature();","metadata":{"name":"eastern_quadrature","path":"pluto.eastern_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.western_quadrature","title":"pluto.western_quadrature","text":"Method: pluto.western_quadrature - returns western quadrature events for this body\nSyntax:\n  pluto.western_quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the pluto constant with its western_quadrature member\n   let value = pluto;\n   print value.western_quadrature();","metadata":{"name":"western_quadrature","path":"pluto.western_quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.quadrature","title":"pluto.quadrature","text":"Method: pluto.quadrature - returns eastern and western quadrature events for this body\nSyntax:\n  pluto.quadrature(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Use the pluto constant with its quadrature member\n   let value = pluto;\n   print value.quadrature();","metadata":{"name":"quadrature","path":"pluto.quadrature","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.periapsis","title":"pluto.periapsis","text":"Method: pluto.periapsis - returns periapsis events for this body\nSyntax:\n  pluto.periapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find periapsis events for the pluto help entry\n   let value = pluto;\n   let span = range(time(2024,1,1,0,0,0), time(2024,1,10,0,0,0), 1);\n   print \"pluto\", value.periapsis(span).first();","metadata":{"name":"periapsis","path":"pluto.periapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.apoapsis","title":"pluto.apoapsis","text":"Method: pluto.apoapsis - returns apoapsis events for this body\nSyntax:\n  pluto.apoapsis(time: Time|Range, stop: Time, count: Number) -> List|Event|Nil\nArguments:\n  time: Time|Range [optional] - start time for the next event, start/stop times, or time range to search\n  stop: Time [optional] - optional stop time when passing start and stop times separately\n  count: Number [optional] - maximum number of events to return\nExample:\n# Find apoapsis events for the pluto help entry\n   let value = pluto;\n   let span = range(time(2024,7,1,0,0,0), time(2024,7,10,0,0,0), 1);\n   print \"pluto\", value.apoapsis(span).first();","metadata":{"name":"apoapsis","path":"pluto.apoapsis","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.children","title":"pluto.children","text":"Method: pluto.children - lists child fields and callable members available on this value\nSyntax:\n  pluto.children() -> List\nExample:\n# Inspect child entries available from the pluto constant\n   let value = pluto;\n   print value.children();","metadata":{"name":"children","path":"pluto.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.fields","title":"pluto.fields","text":"Method: pluto.fields - returns an object containing the value's plain fields\nSyntax:\n  pluto.fields() -> Object\nExample:\n# Inspect plain fields on the pluto constant\n   let value = pluto;\n   print value.fields();","metadata":{"name":"fields","path":"pluto.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:pluto.functions","title":"pluto.functions","text":"Method: pluto.functions - lists callable members available on this value\nSyntax:\n  pluto.functions() -> List\nExample:\n# Inspect callable members on the pluto constant\n   let value = pluto;\n   print value.functions();","metadata":{"name":"functions","path":"pluto.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant:monday","title":"monday","text":"Constant: monday - ISO weekday Monday with Monday as 1 and Sunday as 7\nSyntax:\n  monday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use monday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), monday.name();","metadata":{"name":"monday","path":"monday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:monday.name","constant_member:monday.short","constant_member:monday.letter","constant_member:monday.index","constant_member:monday.children","constant_member:monday.fields","constant_member:monday.functions"]}},{"id":"constant:tuesday","title":"tuesday","text":"Constant: tuesday - ISO weekday Tuesday with Monday as 1 and Sunday as 7\nSyntax:\n  tuesday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use tuesday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), tuesday.name();","metadata":{"name":"tuesday","path":"tuesday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:tuesday.name","constant_member:tuesday.short","constant_member:tuesday.letter","constant_member:tuesday.index","constant_member:tuesday.children","constant_member:tuesday.fields","constant_member:tuesday.functions"]}},{"id":"constant:wednesday","title":"wednesday","text":"Constant: wednesday - ISO weekday Wednesday with Monday as 1 and Sunday as 7\nSyntax:\n  wednesday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use wednesday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), wednesday.name();","metadata":{"name":"wednesday","path":"wednesday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:wednesday.name","constant_member:wednesday.short","constant_member:wednesday.letter","constant_member:wednesday.index","constant_member:wednesday.children","constant_member:wednesday.fields","constant_member:wednesday.functions"]}},{"id":"constant:thursday","title":"thursday","text":"Constant: thursday - ISO weekday Thursday with Monday as 1 and Sunday as 7\nSyntax:\n  thursday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use thursday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), thursday.name();","metadata":{"name":"thursday","path":"thursday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:thursday.name","constant_member:thursday.short","constant_member:thursday.letter","constant_member:thursday.index","constant_member:thursday.children","constant_member:thursday.fields","constant_member:thursday.functions"]}},{"id":"constant:friday","title":"friday","text":"Constant: friday - ISO weekday Friday with Monday as 1 and Sunday as 7\nSyntax:\n  friday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use friday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), friday.name();","metadata":{"name":"friday","path":"friday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:friday.name","constant_member:friday.short","constant_member:friday.letter","constant_member:friday.index","constant_member:friday.children","constant_member:friday.fields","constant_member:friday.functions"]}},{"id":"constant:saturday","title":"saturday","text":"Constant: saturday - ISO weekday Saturday with Monday as 1 and Sunday as 7\nSyntax:\n  saturday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use saturday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), saturday.name();","metadata":{"name":"saturday","path":"saturday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:saturday.name","constant_member:saturday.short","constant_member:saturday.letter","constant_member:saturday.index","constant_member:saturday.children","constant_member:saturday.fields","constant_member:saturday.functions"]}},{"id":"constant:sunday","title":"sunday","text":"Constant: sunday - ISO weekday Sunday with Monday as 1 and Sunday as 7\nSyntax:\n  sunday -> Weekday\nChildren: name(), short(), letter(), index(), children(), fields(), functions()\nExample:\n# Use sunday in a weekday report\n   print time(2026,7,1,12,0,0).weekday.name(), sunday.name();","metadata":{"name":"sunday","path":"sunday","kind":"constant","aliases":[],"resources":[],"children":["constant_member:sunday.name","constant_member:sunday.short","constant_member:sunday.letter","constant_member:sunday.index","constant_member:sunday.children","constant_member:sunday.fields","constant_member:sunday.functions"]}},{"id":"constant_member:monday.name","title":"monday.name","text":"Method: monday.name - returns the full weekday name\nSyntax:\n  monday.name() -> Text\nExample:\n# Use monday.name as a report label\n   let value = monday;\n   print value.name();","metadata":{"name":"name","path":"monday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:monday.short","title":"monday.short","text":"Method: monday.short - returns the short weekday name\nSyntax:\n  monday.short() -> Text\nExample:\n# Use monday.short for a compact calendar label\n   let value = monday;\n   print value.short();","metadata":{"name":"short","path":"monday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:monday.letter","title":"monday.letter","text":"Method: monday.letter - returns the one-letter weekday label\nSyntax:\n  monday.letter() -> Text\nExample:\n# Use monday.letter in a narrow weekday table\n   let value = monday;\n   print value.letter();","metadata":{"name":"letter","path":"monday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:monday.index","title":"monday.index","text":"Method: monday.index - returns the ISO weekday index\nSyntax:\n  monday.index() -> Integer\nExample:\n# Use monday.index for weekday sorting\n   let value = monday;\n   print value.index();","metadata":{"name":"index","path":"monday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:monday.children","title":"monday.children","text":"Method: monday.children - lists child fields and callable members available on this value\nSyntax:\n  monday.children() -> List\nExample:\n# Inspect child entries available from the monday constant\n   let value = monday;\n   print value.children();","metadata":{"name":"children","path":"monday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:monday.fields","title":"monday.fields","text":"Method: monday.fields - returns an object containing the value's plain fields\nSyntax:\n  monday.fields() -> Object\nExample:\n# Inspect plain fields on the monday constant\n   let value = monday;\n   print value.fields();","metadata":{"name":"fields","path":"monday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:monday.functions","title":"monday.functions","text":"Method: monday.functions - lists callable members available on this value\nSyntax:\n  monday.functions() -> List\nExample:\n# Inspect callable members on the monday constant\n   let value = monday;\n   print value.functions();","metadata":{"name":"functions","path":"monday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.name","title":"tuesday.name","text":"Method: tuesday.name - returns the full weekday name\nSyntax:\n  tuesday.name() -> Text\nExample:\n# Use tuesday.name as a report label\n   let value = tuesday;\n   print value.name();","metadata":{"name":"name","path":"tuesday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.short","title":"tuesday.short","text":"Method: tuesday.short - returns the short weekday name\nSyntax:\n  tuesday.short() -> Text\nExample:\n# Use tuesday.short for a compact calendar label\n   let value = tuesday;\n   print value.short();","metadata":{"name":"short","path":"tuesday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.letter","title":"tuesday.letter","text":"Method: tuesday.letter - returns the one-letter weekday label\nSyntax:\n  tuesday.letter() -> Text\nExample:\n# Use tuesday.letter in a narrow weekday table\n   let value = tuesday;\n   print value.letter();","metadata":{"name":"letter","path":"tuesday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.index","title":"tuesday.index","text":"Method: tuesday.index - returns the ISO weekday index\nSyntax:\n  tuesday.index() -> Integer\nExample:\n# Use tuesday.index for weekday sorting\n   let value = tuesday;\n   print value.index();","metadata":{"name":"index","path":"tuesday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.children","title":"tuesday.children","text":"Method: tuesday.children - lists child fields and callable members available on this value\nSyntax:\n  tuesday.children() -> List\nExample:\n# Inspect child entries available from the tuesday constant\n   let value = tuesday;\n   print value.children();","metadata":{"name":"children","path":"tuesday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.fields","title":"tuesday.fields","text":"Method: tuesday.fields - returns an object containing the value's plain fields\nSyntax:\n  tuesday.fields() -> Object\nExample:\n# Inspect plain fields on the tuesday constant\n   let value = tuesday;\n   print value.fields();","metadata":{"name":"fields","path":"tuesday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:tuesday.functions","title":"tuesday.functions","text":"Method: tuesday.functions - lists callable members available on this value\nSyntax:\n  tuesday.functions() -> List\nExample:\n# Inspect callable members on the tuesday constant\n   let value = tuesday;\n   print value.functions();","metadata":{"name":"functions","path":"tuesday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.name","title":"wednesday.name","text":"Method: wednesday.name - returns the full weekday name\nSyntax:\n  wednesday.name() -> Text\nExample:\n# Use wednesday.name as a report label\n   let value = wednesday;\n   print value.name();","metadata":{"name":"name","path":"wednesday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.short","title":"wednesday.short","text":"Method: wednesday.short - returns the short weekday name\nSyntax:\n  wednesday.short() -> Text\nExample:\n# Use wednesday.short for a compact calendar label\n   let value = wednesday;\n   print value.short();","metadata":{"name":"short","path":"wednesday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.letter","title":"wednesday.letter","text":"Method: wednesday.letter - returns the one-letter weekday label\nSyntax:\n  wednesday.letter() -> Text\nExample:\n# Use wednesday.letter in a narrow weekday table\n   let value = wednesday;\n   print value.letter();","metadata":{"name":"letter","path":"wednesday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.index","title":"wednesday.index","text":"Method: wednesday.index - returns the ISO weekday index\nSyntax:\n  wednesday.index() -> Integer\nExample:\n# Use wednesday.index for weekday sorting\n   let value = wednesday;\n   print value.index();","metadata":{"name":"index","path":"wednesday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.children","title":"wednesday.children","text":"Method: wednesday.children - lists child fields and callable members available on this value\nSyntax:\n  wednesday.children() -> List\nExample:\n# Inspect child entries available from the wednesday constant\n   let value = wednesday;\n   print value.children();","metadata":{"name":"children","path":"wednesday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.fields","title":"wednesday.fields","text":"Method: wednesday.fields - returns an object containing the value's plain fields\nSyntax:\n  wednesday.fields() -> Object\nExample:\n# Inspect plain fields on the wednesday constant\n   let value = wednesday;\n   print value.fields();","metadata":{"name":"fields","path":"wednesday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:wednesday.functions","title":"wednesday.functions","text":"Method: wednesday.functions - lists callable members available on this value\nSyntax:\n  wednesday.functions() -> List\nExample:\n# Inspect callable members on the wednesday constant\n   let value = wednesday;\n   print value.functions();","metadata":{"name":"functions","path":"wednesday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.name","title":"thursday.name","text":"Method: thursday.name - returns the full weekday name\nSyntax:\n  thursday.name() -> Text\nExample:\n# Use thursday.name as a report label\n   let value = thursday;\n   print value.name();","metadata":{"name":"name","path":"thursday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.short","title":"thursday.short","text":"Method: thursday.short - returns the short weekday name\nSyntax:\n  thursday.short() -> Text\nExample:\n# Use thursday.short for a compact calendar label\n   let value = thursday;\n   print value.short();","metadata":{"name":"short","path":"thursday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.letter","title":"thursday.letter","text":"Method: thursday.letter - returns the one-letter weekday label\nSyntax:\n  thursday.letter() -> Text\nExample:\n# Use thursday.letter in a narrow weekday table\n   let value = thursday;\n   print value.letter();","metadata":{"name":"letter","path":"thursday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.index","title":"thursday.index","text":"Method: thursday.index - returns the ISO weekday index\nSyntax:\n  thursday.index() -> Integer\nExample:\n# Use thursday.index for weekday sorting\n   let value = thursday;\n   print value.index();","metadata":{"name":"index","path":"thursday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.children","title":"thursday.children","text":"Method: thursday.children - lists child fields and callable members available on this value\nSyntax:\n  thursday.children() -> List\nExample:\n# Inspect child entries available from the thursday constant\n   let value = thursday;\n   print value.children();","metadata":{"name":"children","path":"thursday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.fields","title":"thursday.fields","text":"Method: thursday.fields - returns an object containing the value's plain fields\nSyntax:\n  thursday.fields() -> Object\nExample:\n# Inspect plain fields on the thursday constant\n   let value = thursday;\n   print value.fields();","metadata":{"name":"fields","path":"thursday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:thursday.functions","title":"thursday.functions","text":"Method: thursday.functions - lists callable members available on this value\nSyntax:\n  thursday.functions() -> List\nExample:\n# Inspect callable members on the thursday constant\n   let value = thursday;\n   print value.functions();","metadata":{"name":"functions","path":"thursday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.name","title":"friday.name","text":"Method: friday.name - returns the full weekday name\nSyntax:\n  friday.name() -> Text\nExample:\n# Use friday.name as a report label\n   let value = friday;\n   print value.name();","metadata":{"name":"name","path":"friday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.short","title":"friday.short","text":"Method: friday.short - returns the short weekday name\nSyntax:\n  friday.short() -> Text\nExample:\n# Use friday.short for a compact calendar label\n   let value = friday;\n   print value.short();","metadata":{"name":"short","path":"friday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.letter","title":"friday.letter","text":"Method: friday.letter - returns the one-letter weekday label\nSyntax:\n  friday.letter() -> Text\nExample:\n# Use friday.letter in a narrow weekday table\n   let value = friday;\n   print value.letter();","metadata":{"name":"letter","path":"friday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.index","title":"friday.index","text":"Method: friday.index - returns the ISO weekday index\nSyntax:\n  friday.index() -> Integer\nExample:\n# Use friday.index for weekday sorting\n   let value = friday;\n   print value.index();","metadata":{"name":"index","path":"friday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.children","title":"friday.children","text":"Method: friday.children - lists child fields and callable members available on this value\nSyntax:\n  friday.children() -> List\nExample:\n# Inspect child entries available from the friday constant\n   let value = friday;\n   print value.children();","metadata":{"name":"children","path":"friday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.fields","title":"friday.fields","text":"Method: friday.fields - returns an object containing the value's plain fields\nSyntax:\n  friday.fields() -> Object\nExample:\n# Inspect plain fields on the friday constant\n   let value = friday;\n   print value.fields();","metadata":{"name":"fields","path":"friday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:friday.functions","title":"friday.functions","text":"Method: friday.functions - lists callable members available on this value\nSyntax:\n  friday.functions() -> List\nExample:\n# Inspect callable members on the friday constant\n   let value = friday;\n   print value.functions();","metadata":{"name":"functions","path":"friday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.name","title":"saturday.name","text":"Method: saturday.name - returns the full weekday name\nSyntax:\n  saturday.name() -> Text\nExample:\n# Use saturday.name as a report label\n   let value = saturday;\n   print value.name();","metadata":{"name":"name","path":"saturday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.short","title":"saturday.short","text":"Method: saturday.short - returns the short weekday name\nSyntax:\n  saturday.short() -> Text\nExample:\n# Use saturday.short for a compact calendar label\n   let value = saturday;\n   print value.short();","metadata":{"name":"short","path":"saturday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.letter","title":"saturday.letter","text":"Method: saturday.letter - returns the one-letter weekday label\nSyntax:\n  saturday.letter() -> Text\nExample:\n# Use saturday.letter in a narrow weekday table\n   let value = saturday;\n   print value.letter();","metadata":{"name":"letter","path":"saturday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.index","title":"saturday.index","text":"Method: saturday.index - returns the ISO weekday index\nSyntax:\n  saturday.index() -> Integer\nExample:\n# Use saturday.index for weekday sorting\n   let value = saturday;\n   print value.index();","metadata":{"name":"index","path":"saturday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.children","title":"saturday.children","text":"Method: saturday.children - lists child fields and callable members available on this value\nSyntax:\n  saturday.children() -> List\nExample:\n# Inspect child entries available from the saturday constant\n   let value = saturday;\n   print value.children();","metadata":{"name":"children","path":"saturday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.fields","title":"saturday.fields","text":"Method: saturday.fields - returns an object containing the value's plain fields\nSyntax:\n  saturday.fields() -> Object\nExample:\n# Inspect plain fields on the saturday constant\n   let value = saturday;\n   print value.fields();","metadata":{"name":"fields","path":"saturday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:saturday.functions","title":"saturday.functions","text":"Method: saturday.functions - lists callable members available on this value\nSyntax:\n  saturday.functions() -> List\nExample:\n# Inspect callable members on the saturday constant\n   let value = saturday;\n   print value.functions();","metadata":{"name":"functions","path":"saturday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.name","title":"sunday.name","text":"Method: sunday.name - returns the full weekday name\nSyntax:\n  sunday.name() -> Text\nExample:\n# Use sunday.name as a report label\n   let value = sunday;\n   print value.name();","metadata":{"name":"name","path":"sunday.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.short","title":"sunday.short","text":"Method: sunday.short - returns the short weekday name\nSyntax:\n  sunday.short() -> Text\nExample:\n# Use sunday.short for a compact calendar label\n   let value = sunday;\n   print value.short();","metadata":{"name":"short","path":"sunday.short","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.letter","title":"sunday.letter","text":"Method: sunday.letter - returns the one-letter weekday label\nSyntax:\n  sunday.letter() -> Text\nExample:\n# Use sunday.letter in a narrow weekday table\n   let value = sunday;\n   print value.letter();","metadata":{"name":"letter","path":"sunday.letter","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.index","title":"sunday.index","text":"Method: sunday.index - returns the ISO weekday index\nSyntax:\n  sunday.index() -> Integer\nExample:\n# Use sunday.index for weekday sorting\n   let value = sunday;\n   print value.index();","metadata":{"name":"index","path":"sunday.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.children","title":"sunday.children","text":"Method: sunday.children - lists child fields and callable members available on this value\nSyntax:\n  sunday.children() -> List\nExample:\n# Inspect child entries available from the sunday constant\n   let value = sunday;\n   print value.children();","metadata":{"name":"children","path":"sunday.children","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.fields","title":"sunday.fields","text":"Method: sunday.fields - returns an object containing the value's plain fields\nSyntax:\n  sunday.fields() -> Object\nExample:\n# Inspect plain fields on the sunday constant\n   let value = sunday;\n   print value.fields();","metadata":{"name":"fields","path":"sunday.fields","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant_member:sunday.functions","title":"sunday.functions","text":"Method: sunday.functions - lists callable members available on this value\nSyntax:\n  sunday.functions() -> List\nExample:\n# Inspect callable members on the sunday constant\n   let value = sunday;\n   print value.functions();","metadata":{"name":"functions","path":"sunday.functions","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"constant:barycentric","title":"barycentric","text":"Constant: barycentric - barycentric: origin at the solar-system barycenter; corrections are ignored\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  barycentric -> StateOrigin\nExample:\n# Use barycentric as the origin for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, barycentric, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"barycentric","path":"barycentric","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:bc","title":"bc","text":"Constant: bc - barycentric: origin at the solar-system barycenter; corrections are ignored\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  bc -> StateOrigin\nExample:\n# Use bc as the origin for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, bc, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"bc","path":"bc","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:heliocentric","title":"heliocentric","text":"Constant: heliocentric - heliocentric: origin at the Sun's center\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  heliocentric -> StateOrigin\nExample:\n# Use heliocentric as the origin for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"heliocentric","path":"heliocentric","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:hc","title":"hc","text":"Constant: hc - heliocentric: origin at the Sun's center\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  hc -> StateOrigin\nExample:\n# Use hc as the origin for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, hc, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"hc","path":"hc","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:geocentric","title":"geocentric","text":"Constant: geocentric - geocentric: origin at Earth's center; conventional inferred axis is tod\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  geocentric -> StateOrigin\nExample:\n# Use geocentric as the origin for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, geocentric, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"geocentric","path":"geocentric","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:gc","title":"gc","text":"Constant: gc - geocentric: origin at Earth's center; conventional inferred axis is tod\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  gc -> StateOrigin\nExample:\n# Use gc as the origin for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, gc, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"gc","path":"gc","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:topocentric","title":"topocentric","text":"Constant: topocentric - topocentric: origin at the observer location; requires location and conventionally uses topographic axes\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  topocentric -> StateOrigin\nExample:\n# Use topocentric as the origin for a local state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(mars, t, loc, topocentric, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"topocentric","path":"topocentric","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:topo","title":"topo","text":"Constant: topo - topocentric: origin at the observer location; requires location and conventionally uses topographic axes\nalternatives: barycentric, heliocentric, geocentric, topocentric\nSyntax:\n  topo -> StateOrigin\nExample:\n# Use topo as the origin for a local state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(mars, t, loc, topo, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"topo","path":"topo","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:icrf","title":"icrf","text":"Constant: icrf - icrf: International Celestial Reference Frame axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  icrf -> StateAxis\nExample:\n# Use icrf as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"icrf","path":"icrf","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:icrs","title":"icrs","text":"Constant: icrs - icrf: International Celestial Reference Frame axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  icrs -> StateAxis\nExample:\n# Use icrs as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, icrs, no_correction);\n   print st.position().length();","metadata":{"name":"icrs","path":"icrs","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:tod","title":"tod","text":"Constant: tod - tod: true-of-date equatorial axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  tod -> StateAxis\nExample:\n# Use tod as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, tod, no_correction);\n   print st.position().length();","metadata":{"name":"tod","path":"tod","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:true_of_date","title":"true_of_date","text":"Constant: true_of_date - tod: true-of-date equatorial axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  true_of_date -> StateAxis\nExample:\n# Use true_of_date as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, true_of_date, no_correction);\n   print st.position().length();","metadata":{"name":"true_of_date","path":"true_of_date","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:trueofdate","title":"trueofdate","text":"Constant: trueofdate - tod: true-of-date equatorial axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  trueofdate -> StateAxis\nExample:\n# Use trueofdate as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, trueofdate, no_correction);\n   print st.position().length();","metadata":{"name":"trueofdate","path":"trueofdate","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:ecliptic","title":"ecliptic","text":"Constant: ecliptic - ecliptic: true ecliptic and equinox of date axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  ecliptic -> StateAxis\nExample:\n# Use ecliptic as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, ecliptic, no_correction);\n   print st.position().length();","metadata":{"name":"ecliptic","path":"ecliptic","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:ecliptic_of_date","title":"ecliptic_of_date","text":"Constant: ecliptic_of_date - ecliptic: true ecliptic and equinox of date axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  ecliptic_of_date -> StateAxis\nExample:\n# Use ecliptic_of_date as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, ecliptic_of_date, no_correction);\n   print st.position().length();","metadata":{"name":"ecliptic_of_date","path":"ecliptic_of_date","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:earthfixed","title":"earthfixed","text":"Constant: earthfixed - ef: Earth-fixed rotating axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  earthfixed -> StateAxis\nExample:\n# Use earthfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, earthfixed, no_correction);\n   print st.position().length();","metadata":{"name":"earthfixed","path":"earthfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:earth_fixed","title":"earth_fixed","text":"Constant: earth_fixed - ef: Earth-fixed rotating axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  earth_fixed -> StateAxis\nExample:\n# Use earth_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, earth_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"earth_fixed","path":"earth_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:ef","title":"ef","text":"Constant: ef - ef: Earth-fixed rotating axes\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  ef -> StateAxis\nExample:\n# Use ef as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, ef, no_correction);\n   print st.position().length();","metadata":{"name":"ef","path":"ef","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:sunfixed","title":"sunfixed","text":"Constant: sunfixed - sunfixed: Sun-fixed axes using the IAU solar pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  sunfixed -> StateAxis\nExample:\n# Use sunfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, sunfixed, no_correction);\n   print st.position().length();","metadata":{"name":"sunfixed","path":"sunfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:sun_fixed","title":"sun_fixed","text":"Constant: sun_fixed - sunfixed: Sun-fixed axes using the IAU solar pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  sun_fixed -> StateAxis\nExample:\n# Use sun_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, sun_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"sun_fixed","path":"sun_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:mercuryfixed","title":"mercuryfixed","text":"Constant: mercuryfixed - mercuryfixed: Mercury-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  mercuryfixed -> StateAxis\nExample:\n# Use mercuryfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, mercuryfixed, no_correction);\n   print st.position().length();","metadata":{"name":"mercuryfixed","path":"mercuryfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:mercury_fixed","title":"mercury_fixed","text":"Constant: mercury_fixed - mercuryfixed: Mercury-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  mercury_fixed -> StateAxis\nExample:\n# Use mercury_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, mercury_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"mercury_fixed","path":"mercury_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:venusfixed","title":"venusfixed","text":"Constant: venusfixed - venusfixed: Venus-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  venusfixed -> StateAxis\nExample:\n# Use venusfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, venusfixed, no_correction);\n   print st.position().length();","metadata":{"name":"venusfixed","path":"venusfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:venus_fixed","title":"venus_fixed","text":"Constant: venus_fixed - venusfixed: Venus-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  venus_fixed -> StateAxis\nExample:\n# Use venus_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, venus_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"venus_fixed","path":"venus_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:moonfixed","title":"moonfixed","text":"Constant: moonfixed - moonfixed: Moon-fixed axes from the lunar physical-libration model where available\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  moonfixed -> StateAxis\nExample:\n# Use moonfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, moonfixed, no_correction);\n   print st.position().length();","metadata":{"name":"moonfixed","path":"moonfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:moon_fixed","title":"moon_fixed","text":"Constant: moon_fixed - moonfixed: Moon-fixed axes from the lunar physical-libration model where available\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  moon_fixed -> StateAxis\nExample:\n# Use moon_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, moon_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"moon_fixed","path":"moon_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:marsfixed","title":"marsfixed","text":"Constant: marsfixed - marsfixed: Mars-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  marsfixed -> StateAxis\nExample:\n# Use marsfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, marsfixed, no_correction);\n   print st.position().length();","metadata":{"name":"marsfixed","path":"marsfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:mars_fixed","title":"mars_fixed","text":"Constant: mars_fixed - marsfixed: Mars-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  mars_fixed -> StateAxis\nExample:\n# Use mars_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, mars_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"mars_fixed","path":"mars_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:jupiterfixed","title":"jupiterfixed","text":"Constant: jupiterfixed - jupiterfixed: Jupiter-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  jupiterfixed -> StateAxis\nExample:\n# Use jupiterfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, jupiterfixed, no_correction);\n   print st.position().length();","metadata":{"name":"jupiterfixed","path":"jupiterfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:jupiter_fixed","title":"jupiter_fixed","text":"Constant: jupiter_fixed - jupiterfixed: Jupiter-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  jupiter_fixed -> StateAxis\nExample:\n# Use jupiter_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, jupiter_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"jupiter_fixed","path":"jupiter_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:saturnfixed","title":"saturnfixed","text":"Constant: saturnfixed - saturnfixed: Saturn-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  saturnfixed -> StateAxis\nExample:\n# Use saturnfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, saturnfixed, no_correction);\n   print st.position().length();","metadata":{"name":"saturnfixed","path":"saturnfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:saturn_fixed","title":"saturn_fixed","text":"Constant: saturn_fixed - saturnfixed: Saturn-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  saturn_fixed -> StateAxis\nExample:\n# Use saturn_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, saturn_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"saturn_fixed","path":"saturn_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:uranusfixed","title":"uranusfixed","text":"Constant: uranusfixed - uranusfixed: Uranus-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  uranusfixed -> StateAxis\nExample:\n# Use uranusfixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, uranusfixed, no_correction);\n   print st.position().length();","metadata":{"name":"uranusfixed","path":"uranusfixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:uranus_fixed","title":"uranus_fixed","text":"Constant: uranus_fixed - uranusfixed: Uranus-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  uranus_fixed -> StateAxis\nExample:\n# Use uranus_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, uranus_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"uranus_fixed","path":"uranus_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:neptunefixed","title":"neptunefixed","text":"Constant: neptunefixed - neptunefixed: Neptune-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  neptunefixed -> StateAxis\nExample:\n# Use neptunefixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, neptunefixed, no_correction);\n   print st.position().length();","metadata":{"name":"neptunefixed","path":"neptunefixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:neptune_fixed","title":"neptune_fixed","text":"Constant: neptune_fixed - neptunefixed: Neptune-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  neptune_fixed -> StateAxis\nExample:\n# Use neptune_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, neptune_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"neptune_fixed","path":"neptune_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:plutofixed","title":"plutofixed","text":"Constant: plutofixed - plutofixed: Pluto-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  plutofixed -> StateAxis\nExample:\n# Use plutofixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, plutofixed, no_correction);\n   print st.position().length();","metadata":{"name":"plutofixed","path":"plutofixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:pluto_fixed","title":"pluto_fixed","text":"Constant: pluto_fixed - plutofixed: Pluto-fixed axes using the IAU pole and prime meridian\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  pluto_fixed -> StateAxis\nExample:\n# Use pluto_fixed as the frame for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, heliocentric, pluto_fixed, no_correction);\n   print st.position().length();","metadata":{"name":"pluto_fixed","path":"pluto_fixed","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:topographic","title":"topographic","text":"Constant: topographic - topographic: local observer horizon axes; requires location\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  topographic -> StateAxis\nExample:\n# Use topographic as the frame for a local state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(mars, t, loc, topocentric, topographic, no_correction);\n   print st.position().length();","metadata":{"name":"topographic","path":"topographic","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:horizon","title":"horizon","text":"Constant: horizon - topographic: local observer horizon axes; requires location\nalternatives: icrf, tod, ecliptic, ef, sunfixed, mercuryfixed, venusfixed, moonfixed, marsfixed, jupiterfixed, saturnfixed, uranusfixed, neptunefixed, plutofixed, topographic\nSyntax:\n  horizon -> StateAxis\nExample:\n# Use horizon as the frame for a local state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let loc = location(latitude: 60.0, longitude: 10.0);\n   let st = state(mars, t, loc, topocentric, horizon, no_correction);\n   print st.position().length();","metadata":{"name":"horizon","path":"horizon","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:no_correction","title":"no_correction","text":"Constant: no_correction - no_correction: geometric position at the requested time\nalternatives: no_correction, light_time, apparent, all_corrections\nSyntax:\n  no_correction -> StateCorrection\nExample:\n# Use no_correction as the correction model for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, geocentric, icrf, no_correction);\n   print st.position().length();","metadata":{"name":"no_correction","path":"no_correction","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:light_time","title":"light_time","text":"Constant: light_time - light_time: uses the body's retarded position from iterative light travel time\nalternatives: no_correction, light_time, apparent, all_corrections\nSyntax:\n  light_time -> StateCorrection\nExample:\n# Use light_time as the correction model for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, geocentric, icrf, light_time);\n   print st.position().length();","metadata":{"name":"light_time","path":"light_time","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:apparent","title":"apparent","text":"Constant: apparent - apparent: applies stellar aberration from observer barycentric velocity\nalternatives: no_correction, light_time, apparent, all_corrections\nSyntax:\n  apparent -> StateCorrection\nExample:\n# Use apparent as the correction model for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, geocentric, icrf, apparent);\n   print st.position().length();","metadata":{"name":"apparent","path":"apparent","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"constant:all_corrections","title":"all_corrections","text":"Constant: all_corrections - all_corrections: applies light-time and stellar aberration; this is the state default\nalternatives: no_correction, light_time, apparent, all_corrections\nSyntax:\n  all_corrections -> StateCorrection\nExample:\n# Use all_corrections as the correction model for a state-vector query\n   let t = time(2026,1,1,0,0,0);\n   let st = state(mars, t, geocentric, icrf, all_corrections);\n   print st.position().length();","metadata":{"name":"all_corrections","path":"all_corrections","kind":"constant","aliases":[],"resources":[],"children":[]}},{"id":"value:List","title":"List","text":"Value: List - ordered array value\nSyntax:\n  [a, b, c]\nChildren: length(), first(), last(), index(), push(), slice(), flatten(), help(), available()\nExample:\n# Project a field from every row in an array of objects\n   let rows = [{x: 1, name: \"sun\"}, {x: 3, name: \"moon\"}];\n   print rows.x, rows.name;","metadata":{"name":"List","path":"List","kind":"value","aliases":[],"resources":[],"children":["value_member:List.length","value_member:List.first","value_member:List.last","value_member:List.index","value_member:List.push","value_member:List.slice","value_member:List.flatten","value_member:List.help","value_member:List.available"]}},{"id":"value_member:List.length","title":"List.length","text":"Method: List.length - returns the number of array elements\nSyntax:\n  <List>.length() -> Number\n  <List>.len() -> Number\nExample:\n# Inspect List.length on a List value\n   let value = [1, 2, 3];\n   print value.length();","metadata":{"name":"length","path":"List.length","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.first","title":"List.first","text":"Method: List.first - returns the first element or first count elements\nSyntax:\n  <List>.first() -> Any\n  <List>.first(count: Integer) -> List\nExample:\n# Inspect List.first on a List value\n   let value = [1, 2, 3];\n   print value.first();","metadata":{"name":"first","path":"List.first","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.last","title":"List.last","text":"Method: List.last - returns the last element or last count elements\nSyntax:\n  <List>.last() -> Any\n  <List>.last(count: Integer) -> List\nExample:\n# Inspect List.last on a List value\n   let value = [1, 2, 3];\n   print value.last();","metadata":{"name":"last","path":"List.last","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.index","title":"List.index","text":"Method: List.index - returns one or more indexed elements\nSyntax:\n  <List>.index(index: Integer) -> Any\n  <List>.index(indexes: List) -> List\nExample:\n# Read an item from a list by index\n   let value = [1, 2, 3];\n   print value.index(1);","metadata":{"name":"index","path":"List.index","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.push","title":"List.push","text":"Method: List.push - returns a new array with one value appended\nSyntax:\n  <List>.push(value: Any) -> List\nExample:\n# Inspect List.push on a List value\n   let value = [1, 2, 3];\n   print value.push(42.0);","metadata":{"name":"push","path":"List.push","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.slice","title":"List.slice","text":"Method: List.slice - returns a sub-array\nSyntax:\n  <List>.slice(start: Integer) -> List\n  <List>.slice(start: Integer, stop: Integer) -> List\nExample:\n# Read a slice from a list\n   let value = [1, 2, 3];\n   print value.slice(1);","metadata":{"name":"slice","path":"List.slice","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.flatten","title":"List.flatten","text":"Method: List.flatten - returns a recursively flattened array\nSyntax:\n  <List>.flatten() -> List\nExample:\n# Inspect List.flatten on a List value\n   let value = [1, 2, 3];\n   print value.flatten();","metadata":{"name":"flatten","path":"List.flatten","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.help","title":"List.help","text":"Method: List.help - returns contextual documentation for this array\nSyntax:\n  <List>.help() -> Help\n  <List>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect List.help on a List value\n   let value = [1, 2, 3];\n   print value.help();","metadata":{"name":"help","path":"List.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:List.available","title":"List.available","text":"Method: List.available - reports whether this array is available\nSyntax:\n  <List>.available() -> Bool\nExample:\n# Inspect List.available on a List value\n   let value = [1, 2, 3];\n   print value.available();","metadata":{"name":"available","path":"List.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Object","title":"Object","text":"Value: Object - ordered mutable field collection\nSyntax:\n  {name: value, other: 2}\nChildren: help(), available()\nExample:\n# Store a small observation row and read its fields\n   let row = {body: sun.name, time: time(2026,1,1,0,0,0), altitude: 12.5};\n   print row.body, row.time.utc(), row.altitude;","metadata":{"name":"Object","path":"Object","kind":"value","aliases":[],"resources":[],"children":["value_member:Object.help","value_member:Object.available"]}},{"id":"value_member:Object.help","title":"Object.help","text":"Method: Object.help - returns contextual documentation for this value\nSyntax:\n  <Object>.help() -> Help\n  <Object>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Object.help on a Object value\n   let value = {name: \"value\", count: 2};\n   print value.help();","metadata":{"name":"help","path":"Object.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Object.available","title":"Object.available","text":"Method: Object.available - reports whether this value is available\nSyntax:\n  <Object>.available() -> Bool\nExample:\n# Inspect Object.available on a Object value\n   let value = {name: \"value\", count: 2};\n   print value.available();","metadata":{"name":"available","path":"Object.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Arguments","title":"Arguments","text":"Value: Arguments - captured call argument list\nSyntax:\n  args(...)\nChildren: help(), available()\nExample:\n# Reuse and extend named arguments before constructing a location\n   let base = args(latitude: 60.0);\n   let full = base.with(longitude: 10.0);\n   print location(**full);","metadata":{"name":"Arguments","path":"Arguments","kind":"value","aliases":[],"resources":[],"children":["value_member:Arguments.help","value_member:Arguments.available"]}},{"id":"value_member:Arguments.help","title":"Arguments.help","text":"Method: Arguments.help - returns contextual documentation for this value\nSyntax:\n  <Arguments>.help() -> Help\n  <Arguments>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Arguments.help on a Arguments value\n   let value = args(1, 2);\n   print value.help();","metadata":{"name":"help","path":"Arguments.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Arguments.available","title":"Arguments.available","text":"Method: Arguments.available - reports whether this value is available\nSyntax:\n  <Arguments>.available() -> Bool\nExample:\n# Inspect Arguments.available on a Arguments value\n   let value = args(1, 2);\n   print value.available();","metadata":{"name":"available","path":"Arguments.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Callable","title":"Callable","text":"Value: Callable - callable function, method, closure, or definition\nSyntax:\n  function(...)\nChildren: help(), available()\nExample:\n# Store callable formulas in a namespace and choose one\n   let formulas = {square: (x): x * x, cube: (x): x * x * x};\n   let chosen = \"cube\";\n   print formulas[chosen](4);","metadata":{"name":"Callable","path":"Callable","kind":"value","aliases":[],"resources":[],"children":["value_member:Callable.help","value_member:Callable.available"]}},{"id":"value_member:Callable.help","title":"Callable.help","text":"Method: Callable.help - returns contextual documentation for this value\nSyntax:\n  <Callable>.help() -> Help\n  <Callable>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Callable.help on a Callable value\n   let value = ((x): x);\n   print value.help();","metadata":{"name":"help","path":"Callable.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Callable.available","title":"Callable.available","text":"Method: Callable.available - reports whether this value is available\nSyntax:\n  <Callable>.available() -> Bool\nExample:\n# Inspect Callable.available on a Callable value\n   let value = ((x): x);\n   print value.available();","metadata":{"name":"available","path":"Callable.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Help","title":"Help","text":"Value: Help - structured documentation value\nSyntax:\n  help()\n  value.help()\nChildren: doc(), compact(), search(), help(), examples()\nExample:\n# Show a compact help summary inside a script\n   print help().compact();","metadata":{"name":"Help","path":"Help","kind":"value","aliases":[],"resources":[],"children":["value_member:Help.doc","value_member:Help.compact","value_member:Help.search","value_member:Help.help","value_member:Help.examples"]}},{"id":"value_member:Help.doc","title":"Help.doc","text":"Method: Help.doc - renders the full documentation page\nSyntax:\n  <Help>.doc() -> Text\nExample:\n# Inspect Help.doc on a Help value\n   let value = help();\n   print value.doc();","metadata":{"name":"doc","path":"Help.doc","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Help.compact","title":"Help.compact","text":"Method: Help.compact - renders a compact one-line summary\nSyntax:\n  <Help>.compact() -> Text\nExample:\n# Inspect Help.compact on a Help value\n   let value = help();\n   print value.compact();","metadata":{"name":"compact","path":"Help.compact","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Help.search","title":"Help.search","text":"Method: Help.search - searches recursively under this help value\nSyntax:\n  <Help>.search(text: Text) -> HelpResult\nExample:\n# Search help and print compact match metadata\n   let hits = help.search(\"moon_phase\");\n   print hits.length, hits[0].path;","metadata":{"name":"search","path":"Help.search","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Help.help","title":"Help.help","text":"Method: Help.help - looks up a named child or related help value\nSyntax:\n  <Help>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Help.help on a Help value\n   let value = help();\n   print value.help(\"value\");","metadata":{"name":"help","path":"Help.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Help.examples","title":"Help.examples","text":"Method: Help.examples - returns common astronomy examples from the root help value\nSyntax:\n  <Help>.examples() -> Help\nExample:\n# Inspect Help.examples on a Help value\n   let value = help();\n   print value.examples();","metadata":{"name":"examples","path":"Help.examples","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:HelpResult","title":"HelpResult","text":"Value: HelpResult - list-like collection of help search or lookup results\nSyntax:\n  help().search(\"text\")\n  result[0] -> Help\n  result.name -> List\nChildren: first(), count, doc(), compact(), search(), help(), name, path\nExample:\n# Search help and print matching documentation paths\n   let hits = help.search(\"time\");\n   print hits.path;","metadata":{"name":"HelpResult","path":"HelpResult","kind":"value","aliases":[],"resources":[],"children":["value_member:HelpResult.first","value_member:HelpResult.count","value_member:HelpResult.doc","value_member:HelpResult.compact","value_member:HelpResult.search","value_member:HelpResult.help","value_member:HelpResult.name","value_member:HelpResult.path"]}},{"id":"value_member:HelpResult.first","title":"HelpResult.first","text":"Method: HelpResult.first - returns the first help result or Nil\nSyntax:\n  <HelpResult>.first() -> Help|Nil\nExample:\n# Inspect HelpResult.first on a HelpResult value\n   let value = help.search(\"time\");\n   print value.first();","metadata":{"name":"first","path":"HelpResult.first","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.count","title":"HelpResult.count","text":"Method: HelpResult.count - returns the number of help results\nSyntax:\n  <HelpResult>.count -> Number\n  <HelpResult>.length -> Number\n  <HelpResult>.len -> Number\nExample:\n# Inspect HelpResult.count on a HelpResult value\n   let value = help.search(\"time\");\n   print value.count;","metadata":{"name":"count","path":"HelpResult.count","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.doc","title":"HelpResult.doc","text":"Method: HelpResult.doc - renders all result documentation pages\nSyntax:\n  <HelpResult>.doc() -> Text\nExample:\n# Render one compact help document from a search result\n   let hits = help.search(\"moon_phase\");\n   print hits[0].doc();","metadata":{"name":"doc","path":"HelpResult.doc","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.compact","title":"HelpResult.compact","text":"Method: HelpResult.compact - renders a compact result list\nSyntax:\n  <HelpResult>.compact() -> Text\nExample:\n# Inspect HelpResult.compact on a HelpResult value\n   let value = help.search(\"time\");\n   print value.compact();","metadata":{"name":"compact","path":"HelpResult.compact","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.search","title":"HelpResult.search","text":"Method: HelpResult.search - searches recursively inside each result\nSyntax:\n  <HelpResult>.search(text: Text) -> HelpResult\nExample:\n# Inspect HelpResult.search on a HelpResult value\n   let value = help.search(\"time\");\n   print value.search(\"value\");","metadata":{"name":"search","path":"HelpResult.search","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.help","title":"HelpResult.help","text":"Method: HelpResult.help - looks up a named child inside each result\nSyntax:\n  <HelpResult>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect HelpResult.help on a HelpResult value\n   let value = help.search(\"time\");\n   print value.help(\"value\");","metadata":{"name":"help","path":"HelpResult.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.name","title":"HelpResult.name","text":"Method: HelpResult.name - projects result names as an array\nSyntax:\n  <HelpResult>.name -> List\nExample:\n# Inspect HelpResult.name on a HelpResult value\n   let value = help.search(\"time\");\n   print value.name;","metadata":{"name":"name","path":"HelpResult.name","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:HelpResult.path","title":"HelpResult.path","text":"Method: HelpResult.path - projects result paths as an array\nSyntax:\n  <HelpResult>.path -> List\nExample:\n# Inspect HelpResult.path on a HelpResult value\n   let value = help.search(\"time\");\n   print value.path;","metadata":{"name":"path","path":"HelpResult.path","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Nil","title":"Nil","text":"Value: Nil - absence of a value\nSyntax:\n  Nil\nChildren: help(), available()\nExample:\n# Inspect the result of a missing help lookup\n   let value = help(\"missing\");\n   print value;","metadata":{"name":"Nil","path":"Nil","kind":"value","aliases":[],"resources":[],"children":["value_member:Nil.help","value_member:Nil.available"]}},{"id":"value_member:Nil.help","title":"Nil.help","text":"Method: Nil.help - returns contextual documentation for this value\nSyntax:\n  <Nil>.help() -> Help\n  <Nil>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Nil.help on a Nil value\n   let value = help(\"missing\");\n   print value.help();","metadata":{"name":"help","path":"Nil.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Nil.available","title":"Nil.available","text":"Method: Nil.available - reports whether this value is available\nSyntax:\n  <Nil>.available() -> Bool\nExample:\n# Check availability on Nil\n   let value = nil;\n   print value.available();","metadata":{"name":"available","path":"Nil.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Unavailable","title":"Unavailable","text":"Value: Unavailable - value that could not be computed but may be carried\nSyntax:\n  not available\nChildren: help(), available()\nExample:\n# Show how unavailable values propagate through output\n   let value = 1 / undefined;\n   print value;","metadata":{"name":"Unavailable","path":"Unavailable","kind":"value","aliases":[],"resources":[],"children":["value_member:Unavailable.help","value_member:Unavailable.available"]}},{"id":"value_member:Unavailable.help","title":"Unavailable.help","text":"Method: Unavailable.help - returns contextual documentation for this value\nSyntax:\n  <Unavailable>.help() -> Help\n  <Unavailable>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Unavailable.help on a Unavailable value\n   let value = 1 / undefined;\n   print value.help();","metadata":{"name":"help","path":"Unavailable.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Unavailable.available","title":"Unavailable.available","text":"Method: Unavailable.available - reports whether this value is available\nSyntax:\n  <Unavailable>.available() -> Bool\nExample:\n# Inspect Unavailable.available on a Unavailable value\n   let value = 1 / undefined;\n   print value.available();","metadata":{"name":"available","path":"Unavailable.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Bool","title":"Bool","text":"Value: Bool - boolean true or false value\nSyntax:\n  true\n  false\nChildren: help(), available()\nExample:\n# Check whether the Sun is above the horizon at a site\n   let loc = location(58.9666667, 5.7333333);\n   let t = time(2026,6,21,12,0,0);\n   let above_horizon = altitude(sun, t, loc) > 0;\n   print above_horizon;","metadata":{"name":"Bool","path":"Bool","kind":"value","aliases":[],"resources":[],"children":["value_member:Bool.help","value_member:Bool.available"]}},{"id":"value_member:Bool.help","title":"Bool.help","text":"Method: Bool.help - returns contextual documentation for this value\nSyntax:\n  <Bool>.help() -> Help\n  <Bool>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Bool.help on a Bool value\n   let value = true;\n   print value.help();","metadata":{"name":"help","path":"Bool.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Bool.available","title":"Bool.available","text":"Method: Bool.available - reports whether this value is available\nSyntax:\n  <Bool>.available() -> Bool\nExample:\n# Inspect Bool.available on a Bool value\n   let value = true;\n   print value.available();","metadata":{"name":"available","path":"Bool.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Number","title":"Number","text":"Value: Number - numeric scalar value\nSyntax:\n  1\n  3.14\n  infinity\n  undefined\nChildren: help(), available()\nExample:\n# Compute approximate daylight duration from sunrise and sunset\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let span = range(time(2026,6,21,0,0,0), time(2026,6,22,0,0,0));\n   let a = events(sunrise, span, loc).first().time;\n   let b = events(sunset, span, loc).first().time;\n   let hours = (b - a) * 24;\n   print hours;","metadata":{"name":"Number","path":"Number","kind":"value","aliases":[],"resources":[],"children":["value_member:Number.help","value_member:Number.available"]}},{"id":"value_member:Number.help","title":"Number.help","text":"Method: Number.help - returns contextual documentation for this value\nSyntax:\n  <Number>.help() -> Help\n  <Number>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Number.help on a Number value\n   let value = 1;\n   print value.help();","metadata":{"name":"help","path":"Number.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Number.available","title":"Number.available","text":"Method: Number.available - reports whether this value is available\nSyntax:\n  <Number>.available() -> Bool\nExample:\n# Inspect Number.available on a Number value\n   let value = 1;\n   print value.available();","metadata":{"name":"available","path":"Number.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Text","title":"Text","text":"Value: Text - text string value\nSyntax:\n  \"text\"\nChildren: help(), available()\nExample:\n# Format a local observation time as text\n   let t = time(2026,6,21,12,0,0);\n   let local = t.local(\"Europe/Oslo\").iso;\n   print local;","metadata":{"name":"Text","path":"Text","kind":"value","aliases":[],"resources":[],"children":["value_member:Text.help","value_member:Text.available"]}},{"id":"value_member:Text.help","title":"Text.help","text":"Method: Text.help - returns contextual documentation for this value\nSyntax:\n  <Text>.help() -> Help\n  <Text>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Text.help on a Text value\n   let value = \"text\";\n   print value.help();","metadata":{"name":"help","path":"Text.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Text.available","title":"Text.available","text":"Method: Text.available - reports whether this value is available\nSyntax:\n  <Text>.available() -> Bool\nExample:\n# Inspect Text.available on a Text value\n   let value = \"text\";\n   print value.available();","metadata":{"name":"available","path":"Text.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:EventType","title":"EventType","text":"Value: EventType - astronomical event kind\nSyntax:\n  conjunction\n  opposition\n  rise\nChildren: help(), available()\nExample:\n# Use an event type to find the next sunrise\n   let loc = location(latitude: 58.9666667, longitude: 5.7333333);\n   let span = range(time(2026,6,21,0,0,0), time(2026,6,22,0,0,0));\n   let event = events(sunrise, span, loc).first();\n   print event.time.local(\"Europe/Oslo\").iso;","metadata":{"name":"EventType","path":"EventType","kind":"value","aliases":[],"resources":[],"children":["value_member:EventType.help","value_member:EventType.available"]}},{"id":"value_member:EventType.help","title":"EventType.help","text":"Method: EventType.help - returns contextual documentation for this value\nSyntax:\n  <EventType>.help() -> Help\n  <EventType>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect EventType.help on a EventType value\n   let value = sunrise;\n   print value.help();","metadata":{"name":"help","path":"EventType.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:EventType.available","title":"EventType.available","text":"Method: EventType.available - reports whether this value is available\nSyntax:\n  <EventType>.available() -> Bool\nExample:\n# Inspect EventType.available on a EventType value\n   let value = sunrise;\n   print value.available();","metadata":{"name":"available","path":"EventType.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:SearchDirection","title":"SearchDirection","text":"Value: SearchDirection - search direction\nSyntax:\n  any\n  increasing\n  decreasing\nChildren: help(), available()\nExample:\n# Use a search direction in a crossing search\n   let value = any;\n   print value;","metadata":{"name":"SearchDirection","path":"SearchDirection","kind":"value","aliases":[],"resources":[],"children":["value_member:SearchDirection.help","value_member:SearchDirection.available"]}},{"id":"value_member:SearchDirection.help","title":"SearchDirection.help","text":"Method: SearchDirection.help - returns contextual documentation for this value\nSyntax:\n  <SearchDirection>.help() -> Help\n  <SearchDirection>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect SearchDirection.help on a SearchDirection value\n   let value = any;\n   print value.help();","metadata":{"name":"help","path":"SearchDirection.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:SearchDirection.available","title":"SearchDirection.available","text":"Method: SearchDirection.available - reports whether this value is available\nSyntax:\n  <SearchDirection>.available() -> Bool\nExample:\n# Inspect SearchDirection.available on a SearchDirection value\n   let value = any;\n   print value.available();","metadata":{"name":"available","path":"SearchDirection.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:FieldSource","title":"FieldSource","text":"Value: FieldSource - NetCDF field source\nSyntax:\n  field source\nChildren: help(), available()\nExample:\n# Name the Earth topography dataset and sample it at a location\n   let loc = location(60.0, 10.0);\n   let terrain = field(earth_topography);\n   print sample(terrain, loc);","metadata":{"name":"FieldSource","path":"FieldSource","kind":"value","aliases":[],"resources":[],"children":["value_member:FieldSource.help","value_member:FieldSource.available"]}},{"id":"value_member:FieldSource.help","title":"FieldSource.help","text":"Method: FieldSource.help - returns contextual documentation for this value\nSyntax:\n  <FieldSource>.help() -> Help\n  <FieldSource>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect FieldSource.help on a FieldSource value\n   let value = earth_topography;\n   print value.help();","metadata":{"name":"help","path":"FieldSource.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:FieldSource.available","title":"FieldSource.available","text":"Method: FieldSource.available - reports whether this value is available\nSyntax:\n  <FieldSource>.available() -> Bool\nExample:\n# Inspect FieldSource.available on a FieldSource value\n   let value = earth_topography;\n   print value.available();","metadata":{"name":"available","path":"FieldSource.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:NetCDF","title":"NetCDF","text":"Value: NetCDF - opened NetCDF dataset\nSyntax:\n  netcdf(...)\nChildren: help(), available()\nExample:\n# Inspect a NetCDF-backed resource\n   let nc = netcdf(earth_topography);\n   print nc.path, nc.variables.length();","metadata":{"name":"NetCDF","path":"NetCDF","kind":"value","aliases":[],"resources":[],"children":["value_member:NetCDF.help","value_member:NetCDF.available"]}},{"id":"value_member:NetCDF.help","title":"NetCDF.help","text":"Method: NetCDF.help - returns contextual documentation for this value\nSyntax:\n  <NetCDF>.help() -> Help\n  <NetCDF>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect NetCDF.help on a NetCDF value\n   let value = netcdf(earth_topography);\n   print value.help();","metadata":{"name":"help","path":"NetCDF.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:NetCDF.available","title":"NetCDF.available","text":"Method: NetCDF.available - reports whether this value is available\nSyntax:\n  <NetCDF>.available() -> Bool\nExample:\n# Inspect NetCDF.available on a NetCDF value\n   let value = netcdf(earth_topography);\n   print value.available();","metadata":{"name":"available","path":"NetCDF.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Field","title":"Field","text":"Value: Field - sampleable gridded field\nSyntax:\n  field(...)\nChildren: help(), available()\nExample:\n# Sample a field value at a location\n   let loc = location(60.0, 10.0);\n   print sample(topography(earth), loc);","metadata":{"name":"Field","path":"Field","kind":"value","aliases":[],"resources":[],"children":["value_member:Field.help","value_member:Field.available"]}},{"id":"value_member:Field.help","title":"Field.help","text":"Method: Field.help - returns contextual documentation for this value\nSyntax:\n  <Field>.help() -> Help\n  <Field>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect Field.help on a Field value\n   let value = topography(earth);\n   print value.help();","metadata":{"name":"help","path":"Field.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Field.available","title":"Field.available","text":"Method: Field.available - reports whether this value is available\nSyntax:\n  <Field>.available() -> Bool\nExample:\n# Inspect Field.available on a Field value\n   let value = topography(earth);\n   print value.available();","metadata":{"name":"available","path":"Field.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:SearchGoal","title":"SearchGoal","text":"Value: SearchGoal - search goal such as target, minimum, or maximum\nSyntax:\n  minimum\n  maximum\n  target(...)\nChildren: help(), available()\nExample:\n# Use a target goal to find a numeric crossing\n   let root = search((x): x - 2, range(0, 4, 0.25), target(0)).next();\n   print root;","metadata":{"name":"SearchGoal","path":"SearchGoal","kind":"value","aliases":[],"resources":[],"children":["value_member:SearchGoal.help","value_member:SearchGoal.available"]}},{"id":"value_member:SearchGoal.help","title":"SearchGoal.help","text":"Method: SearchGoal.help - returns contextual documentation for this value\nSyntax:\n  <SearchGoal>.help() -> Help\n  <SearchGoal>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect SearchGoal.help on a SearchGoal value\n   let value = target(2.0);\n   print value.help();","metadata":{"name":"help","path":"SearchGoal.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:SearchGoal.available","title":"SearchGoal.available","text":"Method: SearchGoal.available - reports whether this value is available\nSyntax:\n  <SearchGoal>.available() -> Bool\nExample:\n# Inspect SearchGoal.available on a SearchGoal value\n   let value = target(2.0);\n   print value.available();","metadata":{"name":"available","path":"SearchGoal.available","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value:Reference","title":"Reference","text":"Value: Reference - runtime reference value\nSyntax:\n  reference(name)\nChildren: help(), available()\nExample:\n# Use an intrinsic reference value in a forecast sample\n   let value = temperature;\n   print value, value.help().name;","metadata":{"name":"Reference","path":"Reference","kind":"value","aliases":[],"resources":[],"children":["value_member:Reference.help","value_member:Reference.available"]}},{"id":"value_member:Reference.help","title":"Reference.help","text":"Method: Reference.help - returns contextual documentation for this value\nSyntax:\n  <Reference>.help() -> Help\n  <Reference>.help(name: Text) -> Help|HelpResult|Nil\nExample:\n# Inspect help for an intrinsic reference\n   let value = temperature;\n   print value.help().name;","metadata":{"name":"help","path":"Reference.help","kind":"method","aliases":[],"resources":[],"children":[]}},{"id":"value_member:Reference.available","title":"Reference.available","text":"Method: Reference.available - reports whether this value is available\nSyntax:\n  <Reference>.available() -> Bool\nExample:\n# Check that an intrinsic reference is available\n   let value = temperature;\n   print value.available();","metadata":{"name":"available","path":"Reference.available","kind":"method","aliases":[],"resources":[],"children":[]}}]}