makeOrbitsArgs.php
2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/*
* Executable to make target.json files for IMPEX url_XYZ args
* is launched AFTER makeProxy and makeOrbitsList
*/
$AMDA_IHM = getenv('AMDA_IHM');
require_once $AMDA_IHM."/php/config.php";
if (!defined('orbitsXml'))
exit("orbitsXml is not defined in config.php".PHP_EOL);
if (!defined('SimuTargetsXml'))
exit('SimuTargetsXml is not defined in config.php'.PHP_EOL);
// if (!file_exists(orbitsXml))
// exit("ERROR : NO Orbites.xml FILE !!! Run makeOrbitsList.php".PHP_EOL);
if (!file_exists(orbitsAllXml))
exit("ERROR : NO OrbitsAll.xml FILE !!! Run makeOrbitsList.php and makeOrbitsInKm.php".PHP_EOL);
if (!file_exists(SimuTargetsXml))
exit("ERROR : NO TargetsSimu FILE !!! Run makeProxy.php".PHP_EOL);
$targetXml = simplexml_load_file(SimuTargetsXml);
$orbitsXml = new DomDocument("1.0");
$orbitsXml->load(orbitsAllXml);
$xpath = new DOMXpath($orbitsXml);
$targets = $targetXml->Target;
$unitsImpex = "km";
foreach ($targets as $target)
{
if (file_exists(RemoteData."$target.json"))
unlink(RemoteData."$target.json");
$targetMain = $target['TargetMain'];
$coordImpex = $target['CoordName'];
// Mercury double definition
if ($coordImpex == "HSM") $coordImpex = "MSM";
if ($coordImpex == "MESO") $coordImpex = "MSO";
// general case
$params = $xpath->query('//orbites[@target="'.$target.'" and @coordinate_system="'.$coordImpex.'" and @units="'.$unitsImpex.'"]');
// case of targetImpex = Jupiter.Magnetosphere; targetAmda = Jupiter
if ($params->length == 0)
$params = $xpath->query('//orbites[@target="'.$targetMain.'" and @coordinate_system="'.$coordImpex.'" and @units="'.$unitsImpex.'"]');
// case of targetImpex = Ganymede; targetAmda = Jupiter.Ganymede
if ($params->length == 0)
$params = $xpath->query('//orbites[@coordinate_system="'.$coordImpex.'" and @units="'.$unitsImpex.'" and contains(@target,"'.$target.'")]');
if ($params->length > 0)
{
$dsArr = array();
$misArr = array();
$misGrpArr = array();
foreach ($params as $param)
{
// if ($param->getAttribute('units') != $unitsImpex) continue;
$dsId = $param->getAttribute('dataset');
if (!is_array($dsArr[$dsId])) $dsArr[$dsId] = array();
$dsArr[$dsId][] = $param->getAttribute('xml:id');
$misId = $param->getAttribute('mission');
if (!is_array($misArr[$misId])) $misArr[$misId] = array();
$misArr[$misId][$dsId] = $dsArr[$dsId];
// Mission Group
if ($param->hasAttribute('missionGroup'))
$misGrpId = $param->getAttribute('missionGroup');
else
$misGrpId = 'None';
if (!is_array($misGrpArr[$misGrpId])) $misGrpArr[$misGrpId] = array();
$misGrpArr[$misGrpId][$misId] = $misArr[$misId];
}
file_put_contents(RemoteData.$target.'.json', json_encode($misGrpArr));
}
}
?>