Miriade

ephemcc

Positional ephemerides

The method ephemcc is intended to people who need to compute the ephemerides of position of the Solar system objects. See also ephemsys method.

HTTP Request

If you are a software/solutions developer, you might want to include the Miriade ephemcc service into your application. This can be done by using the Web service method or by using the following HTTP request:
https://ssp.imcce.fr/webservices/miriade/api/ephemcc.php?[parameters]
where [parameters] is a list of parameters separated by the ampersand character (&). The allowed parameters are:
ParameterDefinitionLimits or value
-name=<string> The designation of the target Ex.: p:Mars, p:5, a:Pallas, a:1999 TC36, c:p/halley
-type=<string> Type of the target (default: empty) Asteroid | Comet | Dwarf Planet | Planet | Satellite
-ep=<string> Requested epoch, expressed in Julian period, ISO format,
or formatted as any English textual datetime
depends on the planetary theory
-nbd=<int> Number of dates of ephemeris to compute (default: 1) 1 ≤ nbd ≤ 5000
-step=<string> Step of increment (float) followed by one of (d)ays or
(h)ours or (m)inutes or (s)econds (default: 1d)
Ex.: 2.345h or 1d
-tscale=<string> Ephemeris time scale (default: UTC) UTC | TT
-observer=<string> Code or geographic coordinates of the observer's location (default: 500) Ex.: 500 (geocenter), 007 (Paris), @sun, @rosetta, ...
-theory=<string> Planetary theory to use for the calculation (default: INPOP) INPOP | DE200 | BDL82 | SLP98 | DE403 | DE405 | DE406 | DE430 | DE431
-teph=<int> Type of ephemeris: 1: astrometric J2000 (default),
2: apparent of the date, 3: mean of the date, 4: mean J2000
1 | 2 | 3 | 4
-tcoor=<int> Type of coordinates: 1: spherical (default), 2: rectangular, 3: Local coordinates,
4: Hour angle coordinates, 5: dedicated to observation
1 | 2 | 3 | 4 | 5
-rplane=<int> Reference plane: 1:equator (default), 2: ecliptic 1 | 2
-oscelem=<string> Source of osculating elements for asteroids: ASTORB (default)
or MPCORB
astorb | mpcorb | mpcorb/nea
-mime=<string> Mime type of the results (default: votable) votable | html | text | text/csv | json
-output=<string> Comma separated list of options (default: blank) See section Optional parameters
-from=<string> Word which definite the name of the caller application, or which describes the request any short string (no space character)

The output results are described in the following section, and are available in VOTable (default), HTML, comma-separated values (CSV), plain text format, and JSON object (cf. examples). Some parameters are optionnal, and their values can be omitted (just left blank the value, e.g. &-mime=&-output=). The input parameters without default value are mandatory.

HTTP Request specific interface

This interface is intended to request the orbital parameters used to compute the ephemerides of asteroids and comets. This is done by using the following HTTP request:
https://ssp.imcce.fr/webservices/miriade/api/ephemcc.php?-get=orbital_params&[parameters]
where [parameters] are:
ParameterDefinitionLimits or value
-name=<string> The number or name or provisional designation of an
asteroid or a comet
Examples:
a:22 or a:Kalliope
c:1P or c:P/Halley
-oscelem=<string> Source of osculating elements for asteroids:
ASTORB (default) or MPCORB (Optional parameter)
astorb | mpcorb | mpcorb/nea
-from=<string> Word which definite the name of the caller application,
or which describes the request
any short string
(no space character)

The output response is a text/csv document which contains the following information:

Example: orbital parameters of asteroid (22) Kalliope from ASTORB database
Source: ASTORB database
QuantityDescriptionUnit
NumAsteroid number (blank if unnumbered)-
NameName or preliminary designation-
OrbitComputerOrbit computer-
H_BowellAbsolute magnitude Hmag
G_BowellSlope parameter G-
BmVColor index B-V (blank if unknown)mag
IRAS_DiamIRAS diameter (blank if unknown)km
IRAS_TaxoIRAS Taxonomic classification (blank if unknown)-
SixIntCodesSix integer codes (see table of explanation in ASTORB)-
OrbitalArcOrbital arc spanned by observations used in orbit computationdays
NbObsNumber of observations used in orbit computation-
OscEpochEpoch of osculation (TDT)yyyymmdd
MeanAnomalyMean anomalydeg
ArgOfPerihelionArgument of perihelion (J2000.0)deg
AscNodeLongitudeLongitude of ascending node (J2000.0)deg
IncInclination (J2000.0)deg
EccEccentricity-
aSemimajor axisau
OrbitCompEpochDate of orbit computation (UTC - 7h)yymmdd
CEUAbsolute value of the current 1-sigma ephemeris uncertainty (CEU)arcsec
CEU_rateRate of change of CEUarcsec/day
CEU_epochDate of CEU (0h UT)yyyymmdd
PEUNext peak ephemeris uncertainty (PEU) from date of CEUarcsec
PEU_epochDate of occurrence of next peak ephemeris uncertainty (PEU), from date of CEUyyyymmdd
GPEUfromCEUGreatest PEU in 10 years from date of CEUarcsec
GPEUfromCEU_epochDate of occurrence of greatest PEU in 10 years from date of CEUyyyymmdd
GPEUnextPEUGreatest PEU in 10 years from date of next PEUarcsec
GPEUnextPEU_epochDate of occurrence of greatest PEU in 10 years from date of next PEUyyyymmdd
Example: orbital parameters of comet (1P) P/Halley
Source: COMETPRO database
QuantityDescriptionUnit
NoteNote number associated with the comet-
Note_epochDate of updateDD/MM/YYYY
NumIAU code of the comet-
NameIAU name of the comet-
OrbitComputerName of the author elements-
RefEpochReference epoch of the osculating elementsjulian day
RelativityFlagRelativity flag: 1: effect taken into account, 0: none-
NbObsNumber of observations used in solution-
RMS (arcsec)RMS residualarcsec
FirstObsEpochDate of first observationDD/MM/YYYY
LastObsEpochDate of last observationDD/MM/YYYY
pxPosition vector x coordinateau
pyPosition vector y coordinateau
pzPosition vector z coordinateau
pxVelocity vector x coordinateau/day
vyVelocity vector y coordinateau/day
vzVelocity vector z coordinateau/day
A1Parameter A1 of non-gravitational forces-
A2Parameter A2 of non-gravitational forces-
A3Parameter A3 of non-gravitational forces-
tauDate of perihelion passagejulian day
qPerihelion distanceau
EccEccentricity of the orbit-
ArgOfPerihelionArgument of perihelion (J2000.0)deg
AscNodeLongitudeLongitude of the ascending node (J2000.0)deg
IncInclination to ecliptic (J2000.0)deg
H1Constant term of magnitude-
R1Coefficient of log(r)-
D1Coefficient of log(Delta)-
H2Constant term of magnitude-
R2Coefficient of log(r)-
D2Coefficient of log(Delta)-

Web service

The Miriade Web service provides methods based on SOAP and HTTP POST verb which allow one to interact between its own application and the Miriade service. Here is the useful information to invoke the Miriade ephemcc method:
Web Service URI:
https://ssp.imcce.fr/webservices/miriade/miriade.php
Namespace:
https://ssp.imcce.fr/webservices/miriade
WSDL:
https://ssp.imcce.fr/webservices/miriade/miriade.php?wsdl
SOAP header:
name of the SOAP header element: clientID
SOAP header's content: array('from' => 'YourName', 'hostip'=>'', 'lang'=>'en|fr')
Method:
ephemcc (inputArray)
The input parameter of the method is an array which must contained the following parameters:
VariableTypeUnitsLimits or valuesDefaultComment
name string designation or URL - none Name or number of the target, or list of targets provided through an URL
type string - Asteroid | Comet | Dwarf Planet | Planet | Satellite none Type of the target
epoch string epoch
or URL
depends on the planetary theory none Requested epoch (julian period, ISO format, English textual datetime), or list of epochs provided through an URL
nbd int - 1 ≤ nbd ≤ 5000 1 Number of dates of ephemeris to compute
step string d|h|m|s step ≤ 100d 1d Step of increment (float) followed by one of (d)ays or (h)ours or (m)inutes or (s)econds
tscale string - UTC | TT UTC Time scale of the ephemeris
observer string - Code (IAU or special) or geographic coordinates of the observer's location 500 IAU codes of observatories; Geographic coordinates must be expressed in degrees (longitude, latitude) and meters (altitude)
theory string - INPOP | DE200 | BDL82 | SLP98 | DE403 | DE405 | DE406 | DE430 | DE431 INPOP Planetary theory
teph int - 1 | 2 | 3 | 4 1 Type of ephemeris: 1:astrometric J2000, 2:apparent of the date, 3: mean of the date, 4: mean J2000
tcoor int - 1 | 2 | 3 | 4 | 5 | 6 1 Type of coordinates: 1:spherical, 2:rectangular, 3: Local coordinates, 4: Hour angle coordinates, 5: dedicated to observation
rplane int - 1 | 2 1 Reference plane: 1:equator, 2:ecliptic
oscelem string - astorb | mpcorb | mpcorb/nea astorb Source of osculating elements for asteroids: ASTORB or MPCORB
mime string - votable | html | text | text/csv | json votable Mime type of the results
output string - Comma separated list of options blank See section Optional parameters
get string - orbital_params blank Use this parameter (together with name and oscelem) to request specific data used by Miriade ephemcc method to compute ephemerides. No ephemeris is provided.

The output of the ephemcc method is an object containing the following attributes:

'flag'
the status of the response: flag=1 means ok; flag=0 or flag=-1 mean that an error occured
'status'
the HTTP status-code of the response (e.g. 400: bad request, 422: Unprocessable Entity, 500: internal error)
'ticket'
the Unix timestamp of the response which can be useful to stamp the request
'result'
a string containing the ephemeris of the requested solar system body with parameters depending on user's options (cf. Output parameters section).
Depending on the selected mime type, the output is formatted as:
votable
the data are written in the IVOA standard VOTable format
html
the data are transformed from VOTable to HTML by XSLT processing (Miriade XSL style sheet)
text
the data are returned in plain text where each block of data is separated by the semi-colon character ';', and fields are separated by one or more blank character. The first block is the keyword '#! ephem' which marks the beginning of the data.
text/csv
the data are returned in plain text where each block of data is separated by the semi-colon character ';', and fields are separated by a comma. The first line provides the ticket (Unix timestamp of the response) and the flag of the response, and the second line provides the field headers.
json
the data are written in a JSON object.

Optional parameters

The optional parameters (arg. output) can be used to format the display of the date, or to add extra ephemeris data. The available parameters are:
--greg
to format the epoch as a calendar date.
--iso
to format the epoch as an ISO-8601 date (default).
--jd
to format the epoch as a julian period.
--lighttime
to display the value of the light time between the target and the observer.
--rv
to display the detailed values of radial velocity.
--ttmutc
to display the TT-UTC value.
--colors(<filter>[,<filter>,...])
to compute the magnitude of the target for listed filters (asteroids only). See section How to set up filters.
--thermalflux(λ,pv,η,ε)
to compute the thermal flux of the target (asteroids only) using the Near-Earth Asteroid Thermal Model (NEATM) implemented by the Lagrange laboratory (OCA) and IMCCE. See section How to set up thermal flux.
--pafParams(am,h)
to produce an ephemeris file compatible with the VLT parameter file (PAF) format, to be used for the ESO Phase 2 procedures for Moving Target programmes. See section How to set up PAF parameters.

Query examples

Output results

The output parameters of the ephemcc method depend on the type of coordinates (arg. tcoor) and the options (arg. output) that are choosen by the client. Click on the following buttons to display the output parameters in function of the value of the tcoor argument.

Col. Definition Units Format Option Note
1 Object name - String (1)
2 Gregorian Date or Julian period datetime or day ISO-8601 or decimal (2,3)
3 TT-UTC value s decimal --ttmutc
4, 5 Spherical coordinates at the date h:m:s and °:′:″ sexagesimal (4)
6 Range to observer au decimal
7 Light time between the target and observer min decimal --lighttime (3)
8 Visual magnitude mag decimal (5)
9‑38 Magnitudes for requested filters mag decimal --colors() (6,3)
39 Thermal flux for requested wavelengths Jy decimal ‑‑thermalflux() (7,3)
40 Phase angle degree decimal
41 Solar elongation degree decimal
42 Motion in RA on the celestial sphere (Δαcos(δ)) arcsec/min decimal
43 Motion in DEC on the celestial sphere (Δδ) arcsec/min decimal
44 Radial velocity (RV) of target center w.r.t. observer km/s decimal
45 Radial velocity (RVc) of target center corrected for the radial velocity of the observer (BERV) and increased by its velocity toward the Sun (RVs): RVc = RV-BERV+RVs km/s decimal --rv (3)
46 Projection of the barycentric velocity vector of the observer along the observer-target direction (BERV) km/s decimal --rv (3)
47 Projection of the heliocentric velocity vector of the target along the heliocentric direction of the target (RVs) km/s decimal --rv (3)
48 X coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (8)
49 Y coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (8)

Notes:

  1. This column does not exist when the mime type is set to text.
  2. By default the date is expressed in the ISO-8601 format. It can be changed to julian period or calendar date with the output argument.
  3. See Optional parameters section.
  4. Equatorial right ascension and declination if rplane=1 or ecliptic longitude and latitude if rplane=2.
  5. The magnitude of asteroids is computed into the HG system, Bowell et al., 1989.
  6. The columns 9-26 display the asteroid magnitudes for each requested filter provided through the --colors() option.
  7. The column 27 displays the asteroid thermal flux for each requested wavelength provided through the --thermalflux() option. The flux are formatted as a list of values, e.g. {v1; v2; ...]}.
  8. The columns 36-38 display the differential position of the component of an asteroidal multiple system, defined by its name as <system>/<component>, e.g. name=a:kalliope/linus. See the HOWTO section for a full description about how to name targets.
Col. Definition Units Format Option Note
1 Object name - String (1)
2 Gregorian Date or Julian period datetime or day ISO-8601 or decimal (2,3)
3 TT-UTC value s decimal --ttmutc
4‑6 Cartesian vector (x,y,z) position at the date au decimal (4)
7 Range to observer au decimal
8 Light time between the target and observer min decimal --lighttime
9 Heliocentric distance au decimal
10 Phase angle degree decimal
11 Solar elongation degree decimal
12 Visual magnitude mag decimal (5)
13‑42 Magnitudes for requested filters mag decimal --colors() (6,3)
43 Thermal flux for requested wavelengths Jy decimal ‑‑thermalflux() (7,3)
44‑46 Cartesian velocity vector at the date au/d decimal
47 Radial velocity (RV) of target center w.r.t. observer km/s decimal
48 Radial velocity (RVc) of target center corrected for the radial velocity of the observer (BERV) and increased by its velocity toward the Sun (RVs): RVc = RV-BERV+RVs km/s decimal --rv
49 Projection of the barycentric velocity vector of the observer along the observer-target direction (BERV) km/s decimal --rv
50 Projection of the heliocentric velocity vector of the target along the heliocentric direction of the target (RVs) km/s decimal --rv
51 X coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (8)
52 Y coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (8)

Notes:

  1. This column does not exist when the mime type is set to text.
  2. By default the date is expressed in the ISO-8601 format. It can be changed to julian period or calendar date with the output argument.
  3. See Optional parameters section.
  4. Equatorial coordinates if rplane=1 or ecliptic coordinates if rplane=2.
  5. The magnitude of asteroids is computed into the HG system, Bowell et al., 1989.
  6. The columns 13-42 display the asteroid magnitudes for each requested filter provided through the --colors() option.
  7. The column 43 displays the asteroid thermal flux for each requested wavelength provided through the --thermalflux() option. The flux are formatted as a list of values, e.g. {f1; f2; ...}.
  8. The columns 51-52 display the differential position of the component of an asteroidal multiple system, defined by its name as <system>/<component>, e.g. name=a:kalliope/linus. See the HOWTO section for a full description about how to name targets.
Col. Definition Units Format Option Note
1 Object name - String (1)
2 Gregorian Date or Julian period datetime or day ISO-8601 or decimal (2,3)
3 Local sidereal time h:m:s sexagesimal
4 TT-UTC value s decimal --ttmutc
5 Azimut (0..360° from north) degree decimal
6 Elevation (0..90° from horizon) degree decimal
7 Range to observer au decimal
8 Light time between the target and observer min decimal --lighttime
9 Visual magnitude mag decimal (4)
10‑39 Magnitudes for requested filters mag decimal --colors() (5)
40 Thermal flux for requested wavelengths Jy decimal ‑‑thermalflux() (6)
41 Phase angle degree decimal
42 Solar elongation degree decimal
43 Refraction arcsec decimal
44 Radial velocity (RV) of target center w.r.t. observer km/s decimal
45 Radial velocity (RVc) of target center corrected for the radial velocity of the observer (BERV) and increased by its velocity toward the Sun (RVs): RVc = RV-BERV+RVs km/s decimal --rv
46 Projection of the barycentric velocity vector of the observer along the observer-target direction (BERV) km/s decimal --rv
47 Projection of the heliocentric velocity vector of the target along the heliocentric direction of the target (RVs) km/s decimal --rv
48 X coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (7)
49 Y coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (7)

Notes:

  1. This column does not exist when the mime type is set to text.
  2. By default the date is expressed in the ISO-8601 format. It can be changed to julian period or calendar date with the output argument.
  3. See Optional parameters section.
  4. The magnitude of asteroids is computed into the HG system, Bowell et al., 1989.
  5. The columns 10-39 display the asteroid magnitudes for each requested filter provided through the --colors() option.
  6. The column 40 displays the asteroid thermal flux for each requested wavelength provided through the --thermalflux() option. The flux are formatted as a list of values, e.g. {f1; f2; ...}.
  7. The columns 48-49 display the differential position of the component of an asteroidal multiple system, defined by its name as <system>/<component>, e.g. name=a:kalliope/linus. See the HOWTO section for a full description about how to name targets.
Col. Definition Units Format Option Note
1 Object name - String (1)
2 Gregorian Date or Julian period datetime or day ISO-8601 or decimal (2,3)
3 Local sidereal time h:m:s sexagesimal
4 TT-UTC value s decimal --ttmutc
5 Hour angle (0..24h from south) h decimal
6 Declination degree decimal
7 Range to observer au decimal
8 Light time between the target and observer min decimal --lighttime
9 Visual magnitude mag decimal (4)
10‑39 Magnitudes for requested filters mag decimal --colors() (5)
40 Thermal flux for requested wavelengths Jy decimal ‑‑thermalflux() (6)
41 Phase angle degree decimal
42 Solar elongation degree decimal
43 Refraction arcsec decimal
44 Radial velocity (RV) of target center w.r.t. observer km/s decimal
45 Radial velocity (RVc) of target center corrected for the radial velocity of the observer (BERV) and increased by its velocity toward the Sun (RVs): RVc = RV-BERV+RVs km/s decimal --rv
46 Projection of the barycentric velocity vector of the observer along the observer-target direction (BERV) km/s decimal --rv
47 Projection of the heliocentric velocity vector of the target along the heliocentric direction of the target (RVs) km/s decimal --rv
48 X coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (7)
49 Y coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (7)

Notes:

  1. This column does not exist when the mime type is set to text.
  2. By default the date is expressed in the ISO-8601 format. It can be changed to julian period or calendar date with the output argument.
  3. See Optional parameters section.
  4. The magnitude of asteroids is computed into the HG system, Bowell et al., 1989.
  5. The columns 10-39 display the asteroid magnitudes for each requested filter provided through the --colors() option. See Optional parameters section.
  6. The column 40 displays the asteroid thermal flux for each requested wavelength provided through the --thermalflux() option. The flux are formatted as a list of values, e.g. {f1; f2; ...}. See Optional parameters section.
  7. The columns 48-49 display the differential position of the component of an asteroidal multiple system, defined by its name as <system>/<component>, e.g. name=a:kalliope/linus. See the HOWTO section for a full description about how to name targets.
Col. Definition Units Format Option Note
1 Object name - String (1)
2 Gregorian Date or Julian period datetime or day ISO-8601 or decimal (2,3)
3 Local sidereal time h:m:s sexagesimal
4 TT-UTC value s decimal --ttmutc
5, 6 J2000 Right Ascension and Declination h:m:s and ° : ′ : ″ sexagesimal
7 Hour angle (0..24h from south) h decimal
8 Azimut (0..360° from north) degree decimal
9 Elevation (0..90° from horizon) degree decimal
10 Range to observer au decimal
11 Light time between the target and observer min decimal --lighttime
12 Heliocentric distance au decimal
13 Visual magnitude mag decimal (4)
14‑43 Magnitudes for requested filters mag decimal --colors() (5)
44 Thermal flux for requested wavelengths Jy decimal ‑‑thermalflux() (6)
45 Phase angle degree decimal
46 Solar elongation degree decimal
47 Airmass - decimal
48 Motion in RA on the celestial sphere (Δαcos(δ)) arcsec/min decimal
49 Motion in DEC on the celestial sphere (Δδ) arcsec/min decimal
50 Radial velocity (RV) of target center w.r.t. observer km/s decimal
51 Radial velocity (RVc) of target center corrected for the radial velocity of the observer (BERV) and increased by its velocity toward the Sun (RVs): RVc = RV-BERV+RVs km/s decimal --rv
52 Projection of the barycentric velocity vector of the observer along the observer-target direction (BERV) km/s decimal --rv
53 Projection of the heliocentric velocity vector of the target along the heliocentric direction of the target (RVs) km/s decimal --rv
54 X coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (7)
55 Y coordinate of the differential position of the component w.r.t. the primary arcsec decimal <system>/<component> (7)

Notes:

  1. This column does not exist when the mime type is set to text.
  2. By default the date is expressed in the ISO-8601 format. It can be changed to julian period or calendar date with the output argument.
  3. See Optional parameters section.
  4. The magnitude of asteroids is computed into the HG system, Bowell et al., 1989.
  5. The columns 14-43 display the asteroid magnitudes for each requested filter provided through the --colors() option.
  6. The column 44 displays the asteroid thermal flux for each requested wavelength provided through the --thermalflux() option. The flux are formatted as a list of values, e.g. {f1; f2; ...}.
  7. The columns 54-55 display the differential position of the component of an asteroidal multiple system, defined by its name as <system>/<component>, e.g. name=a:kalliope/linus. See the HOWTO section for a full description about how to name targets.

Structure of the output JSON object

When the output mime type is the JSON data-interchange format, the ephemerides are encapsulated into a structure defined as follows:
{ "sso": {}, "coosys": {}, "ephemeris": {}, "data": {}, "unit": {} }
where sso provides information about the celestial object:
"sso": { "num": int,
         "name": string,
         "type": string,
         "parameters": {
         "diameter": float,
         "ceu": float,
         "ceurate": float,
         "orbital_period": float,
         "mass": float,
         "dynamical_class": string,
         "taxonomy": { "class": string, "param": string, "source": string } }
where coosys provides information about the celestial reference frame:
"coosys": { "epoch": string, "equinox": string, "system": string }
where ephemeris provides information about the ephemeris computation:
"ephemeris": { "time_scale": string,
               "planetary_theory": string,
               "relativistic_perturbations": string,
               "coordinates": string,
               "reference_frame": { "type": string, "plane": string, "center": string } }
where data contains an array with the ephemerides of the body :
"data": [ { "epoch": float, 
            "ra": float,
            "dec": float,
            "dobs": float,
            "vmag": float,
            "phase": float,
            "solar_elongation": float,
            "mu_ra_cosdec": float,
            "mu_dec": float,
            "dobs_dot": float } ]
and where unit provides the unit of the quantities:
"unit": { "<keyword>": string [, "<keyword>": string, ...] }

where keyword belongs to the list of keywords used inside the document.

How to consume

You have two ways to use the Miriade web service: by writting a client to send requests to the Miriade server and to receive and analyze the response, or by using a command line interface and a data transfert program such as curl or wget. For that, just execute one of the following commands in a console:
$> curl "<URL>"
or
$> wget "<URL>"
where <URL> is described in section HTTP request.

In order to help you to invoke the Miriade Web service, we provide some clients written in differents languages. Here are some detailed explanations to write a client with PHP and SOAP which invokes the ephemcc method:

1/ Provide the input parameters which are mandatory for the service:

// Client's ID: provide the name of your project or organisation or yourself
$from = 'MyName';
// Input parameters
$param = array('name' => 'a:ceres',
               'type' => "",
               'epoch' => 2458191.2412800924,
               'nbd' => 5,
               'step' => '1d',
               'tscale' => 'UTC',
               'observer' => '500',
               'theory' => 'INPOP',
               'teph' => 1,
               'tcoor' => 1,
               'rplane' => 1,
               'oscelem' => 'astorb',
               'mime' => 'text',
               'output' => '--jd,--rv'
);

2/ Define the SOAP options, the namespace and the WSDL URI of Miriade web service:

// Enables or disables the WSDL caching feature
ini_set('soap.wsdl_cache_enabled', 1);
// Miriade namespace
$namespace = 'https://ssp.imcce.fr/webservices/miriade';
// Miriade WSDL
$uriwsdl = $namespace.'/miriade.wsdl';

3/ Create a SoapClient object in WSDL mode, set the SOAP header, then call the method and catch exceptions:

try {
   // Constructs the client
   $client = new SoapClient($uriwsdl, array('exceptions'=>1));
   // SOAP header
   $header = array('from'=>$from, 'hostip'=>'', 'lang'=>'en');
   $client->__setSoapHeaders(array(new SOAPHeader($namespace, 'clientID', $header)));  
   // Call the resolver method
   $response = $client->__soapCall('ephemcc',array($param));
   // Display the results
   if (! empty($param['get'])) 
   {
      header("HTTP/1.0 ".$response->status);
      if ($response->status < 300) {
         header("Content-Type: text/csv");
         header('Content-disposition: attachment;filename="orbital_params.csv"'); 
      } else {
         header("Content-Type: text/plain");
      }
      echo $response->result.PHP_EOL;
   }
   else 
   {
      // Affichage du resultat
      if ($param['mime'] == 'text') {
         $res = explode(';', $response->result);
         $nbr = count($res);
         $newkey = array_keys($res);
         header("HTTP/1.0 ".$response->status);
         header("Content-Type: text/plain");
         echo "# Flag: ".$response->flag.PHP_EOL;
         echo "# Ticket: ".$response->ticket.PHP_EOL;
         for ($i=0; $i<$nbr; $i++) { echo $res[$newkey[$i]],PHP_EOL; }
      } else if ($param['mime'] == 'text/csv') {
         $res = explode(';', $response->result);
         $nbr = count($res);
         $newkey = array_keys($res);
         header("HTTP/1.0 ".$response->status);
         if ($response->status < 300) {
            header("Content-Type: text/csv");
         } else {
            header("Content-Type: text/plain");
         }
         echo "# Flag: ".$response->flag.PHP_EOL;
         echo "# Ticket: ".$response->ticket.PHP_EOL;
         for ($i=0; $i<$nbr; $i++) { echo $res[$newkey[$i]],PHP_EOL; }
      } else if ($param['mime'] == 'json') {
         header("HTTP/1.0 ".$response->status);
         header("Content-Type: application/json");
         echo $response->result;
      } else {
         header("HTTP/1.0 ".$response->status);
         header("Content-Type: text/xml;content=x-votable");
         echo $response->result;
      }
   }
} catch (SoapFault $fault) {
   trigger_error("SOAP Fault: {$fault->getTraceAsString()} (faultcode: {$fault->faultcode}, 
                               faultstring: {$fault->faultstring})", E_USER_ERROR);
}