Commit 9d68ff1de3b46007c85b45ffa0b0ad3440deb063

Authored by Elena.Budnik
1 parent 39d0bf07

add several filter conditions

generic_data/Filters/filters_info.xml
... ... @@ -8,7 +8,7 @@
8 8 <op id='ne' name='!='/>
9 9 </ops>
10 10 </condition>
11   - <!--<condition id='sta' name='Start Time' type='date'>
  11 + <condition id='sta' name='Start Time' type='date'>
12 12 <ops>
13 13 <op id='le' name='&lt;='/>
14 14 <op id='ge' name='&gt;='/>
... ... @@ -19,20 +19,20 @@
19 19 <op id='le' name='&lt;='/>
20 20 <op id='ge' name='&gt;='/>
21 21 </ops>
22   - </condition>-->
  22 + </condition>
23 23 <condition id='mis' name='Mission Name' type='string'>
24 24 <ops>
25 25 <op id='eq' name='='/>
26 26 <op id='ne' name='!='/>
27 27 </ops>
28 28 </condition>
29   - <!--<condition id='pro' name='Provider' type='string'>
  29 + <condition id='pro' name='Provider' type='select' selectList='provider'>
30 30 <ops>
31 31 <op id='eq' name='='/>
32 32 <op id='ne' name='!='/>
33 33 </ops>
34 34 </condition>
35   - <condition id='typ' name='Data type' type='select' selectList='dataType'>
  35 + <!-- <condition id='typ' name='Data type' type='select' selectList='dataType'>
36 36 <ops>
37 37 <op id='eq' name='='/>
38 38 <op id='ne' name='!='/>
... ...
generic_data/Filters/filters_selectLists.xml
... ... @@ -27,6 +27,26 @@
27 27 <elt id='Comet' name='Comet'/>
28 28 </elts>
29 29 </selectList>
  30 + <selectList id='provider'>
  31 + <elts>
  32 + <elt id='PDS' name='Planetary Data System'/>
  33 + <elt id='PSA' name='Planetary Science Archive'/>
  34 + <elt id='CDAWeb' name='CDAWeb'/>
  35 + <elt id='OMNIWeb' name='OMNIWeb'/>
  36 + <elt id='CSA' name='Cluster Science Archive'/>
  37 + <elt id='IRAP' name='Institut de Recherche en Astrophysique et Planรฉtologie'/>
  38 + <elt id='IRAP_THEMIS' name='THEMIS mirror at IRAP'/>
  39 + <elt id='Madrigal' name='Madrigal : EISCAT'/>
  40 + <elt id='University of Iowa' name='University of Iowa'/>
  41 + <elt id='ONERA' name='Centre francais de recherche aerospatiale'/>
  42 + <elt id='LESIA-OBSPM' name='Laboratoire etudes spatiales et instrumentation en astrophysique'/>
  43 + <elt id='JHU/APL' name='Johns Hopkins University'/>
  44 + <elt id='NOAA' name='National Oceanic and Atmospheric Administration'/>
  45 + <elt id='NAIF' name='Navigation and Ancillary Information Facility'/>
  46 + <elt id='ISGI/UNISTRA' name='ISGI/UNISTRA'/>
  47 + <elt id='WDC Kyoto via ISGI/UNISTRA' name='WDC Kyoto'/>
  48 + </elts>
  49 + </selectList>
30 50 <selectList id='dataType'>
31 51 <elts>
32 52 <elt id='mag' name='Magnetometer'/>
... ...
php/classes/FilterResParam.php
... ... @@ -146,56 +146,58 @@
146 146  
147 147 $instruments = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument");
148 148  
149   - for ($j = 0; $j < $instruments->length; $j++)
150   - {
151   - $instrumentId = $instruments->item($j)->getAttribute('xml:id');
152   -
153   - $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
154   -
155   - for ($k = 0; $k < $datasets->length; $k++)
156   - {
157   - $datasetId = $datasets->item($k)->getAttribute('xml:id');
158   -
159   - switch($kind)
160   - {
161   - case 'sta' :
162   - $dataTime = $datasets->item($k)->getAttribute('dataStart');
163   - break;
164   - case 'sto' :
165   - $dataTime = $datasets->item($k)->getAttribute('dataStop');
166   - break;
167   - }
168   -
169   - list($day, $month, $year) = explode('-', $dataTime);
170   - $date = mktime(0, 0, 0, $month, $day, $year);
171   - list($year, $month, $day, $hour, $min, $sec) = split('[-T:]', $value);
172   - $date_value = mktime($hour, $min, $sec, $month, $day, $year);
173   -
174   - $id = $datsetId;
175   - $chain = $datasetId;
176   - $node = $datasets->item($k);
  149 + for ($j = 0; $j < $instruments->length; $j++)
  150 + {
  151 + $instrumentId = $instruments->item($j)->getAttribute('xml:id');
177 152  
178   - while ($id !== $missionId) {
179   - $node = $node->parentNode;
180   - $id = $node->getAttribute('xml:id');
181   - $chain = $id.";".$chain;
182   - }
  153 + $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
183 154  
184   - switch($opId)
185   - {
186   - case 'le' :
187   - if ($date <= $date_value)
188   - array_push($result,$chain);
189   - break;
190   - case 'ge' :
191   - if ($date >= $date_value)
192   - array_push($result,$chain);
193   - break;
194   - }
195   - }
196   - }
197   - }
198   -
  155 + for ($k = 0; $k < $datasets->length; $k++)
  156 + {
  157 + $datasetId = $datasets->item($k)->getAttribute('xml:id');
  158 +
  159 + switch($kind)
  160 + {
  161 + case 'sta' :
  162 + $dataTime = $datasets->item($k)->getAttribute('dataStart');
  163 + break;
  164 + case 'sto' :
  165 + $dataTime = $datasets->item($k)->getAttribute('dataStop');
  166 + break;
  167 + }
  168 +
  169 + // list($day, $month, $year) = explode('-', $dataTime);
  170 + // $date = mktime(0, 0, 0, $month, $day, $year);
  171 + // list($year, $month, $day, $hour, $min, $sec) = split('[-T:]', $value);
  172 + // $date_value = mktime($hour, $min, $sec, $month, $day, $year);
  173 + $date = strtotime($dataTime);
  174 + $date_value = strtotime($value);
  175 +
  176 + $id = $datsetId;
  177 + $chain = $datasetId;
  178 + $node = $datasets->item($k);
  179 +
  180 + while ($id !== $missionId) {
  181 + $node = $node->parentNode;
  182 + $id = $node->getAttribute('xml:id');
  183 + $chain = $id.";".$chain;
  184 + }
  185 +
  186 + switch($opId)
  187 + {
  188 + case 'le' :
  189 + if ($date <= $date_value)
  190 + array_push($result,$chain);
  191 + break;
  192 + case 'ge' :
  193 + if ($date >= $date_value)
  194 + array_push($result,$chain);
  195 + break;
  196 + }
  197 + }
  198 + }
  199 + }
  200 +
199 201 return $result;
200 202 }
201 203  
... ...