STDataLoaderImpl.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18 */
19 
20 /*!
21  \file STDataLoaderImpl.h
22 
23  \brief This file contains an abstract class responsible for loading
24  spatiotemporal data from data sources.
25 */
26 
27 #ifndef __TERRALIB_ST_INTERNAL_STDATALOADERIMPL_H
28 #define __TERRALIB_ST_INTERNAL_STDATALOADERIMPL_H
29 
30 //TerraLib
31 #include "../../common/Enums.h"
32 #include "../../geometry/Enums.h"
33 #include "../../geometry/Envelope.h"
34 #include "../../datatype/Enums.h"
35 
36 //ST
37 #include "../Config.h"
38 
39 //STL
40 #include <memory>
41 
42 //Boost
43 #include <boost/ptr_container/ptr_vector.hpp>
44 
45 // Forward declarations
46 namespace te { namespace gm { class Geometry; } }
47 namespace te { namespace dt { class DateTime; class DateTimePeriod; } }
48 
49 namespace te
50 {
51  namespace st
52  {
53  // Forward declarations
54  class ObservationDataSet;
55  class TrajectoryDataSet;
56  class TimeSeriesDataSet;
57  class CoverageSeriesDataSet;
58  class ObservationDataSetInfo;
59  class TrajectoryDataSetInfo;
60  class TimeSeriesDataSetInfo;
61  class CoverageSeriesDataSetInfo;
62  class Trajectory;
63  class TimeSeries;
64  class CoverageSeries;
65 
66  /*!
67  \class STDataLoaderImpl
68 
69  \brief An abstract class responsible for loading spatiotemporal data
70  from data sources.
71 
72  \note The methods of this class can throw an Exception when internal errors occur.
73 
74  \sa ObservationDataSet ObservationDataSetInfo
75  \sa TrajectoryDataSet TrajectoryDataSetInfo
76  \sa CoverageSeriesDataSet CoverageSeriesDataSetInfo
77  */
79  {
80  public:
81 
82  /*! \brief Empty constructor */
84 
85  /*! \name Operations for loading ObservationDataSet */
86  //@{
87 
88  /*!
89  \brief It returns a ObservationDataSet, that is, a DataSet that contains observations.
90 
91  \param info Information about the DataSource which the observation are from and
92  the DataSet which contains the observations.
93  \param travType The traverse type associated to the returned dataset.
94 
95  \return A pointer to a new ObservationDataSet.
96 
97  \note The caller will take the ownership of the returned pointer.
98  \note It can throw an Exception when internal errors occur.
99  */
100  virtual std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
102 
103  /*!
104  \brief It returns a data set with observations whose observed geometries satisfy a
105  given spatial relation.
106 
107  \param info Information about the DataSource which the observation are from and
108  the DataSet which contains the observations.
109  \param e A given envelope.
110  \param r A given spatial relation.
111  \param travType The traverse type associated to the returned dataset.
112 
113  \return A pointer to a new ObservationDataSet.
114 
115  \note The caller will take the ownership of the returned pointer.
116  \note It can throw an Exception when internal errors occur.
117  */
118  virtual std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info, const te::gm::Envelope& e,
121 
122  /*!
123  \brief It returns a data set with observations whose observed geometries satisfy a
124  given spatial relation.
125 
126  The possible spatial relations implemented here are: INTERSECTS
127 
128  \param info Information about the DataSource which the observation are from and
129  the DataSet which contains the observations.
130  \param geom A given geometry.
131  \param r A given spatial relation.
132  \param travType The traverse type associated to the returned dataset.
133 
134  \return A pointer to a new ObservationDataSet.
135 
136  \note The caller will take the ownership of the returned pointer.
137  \note It can throw an Exception when internal errors occur.
138  */
139  virtual std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info, const te::gm::Geometry& geom,
142 
143  /*!
144  \brief It returns a data set with observations whose phenomenon times satisfy a
145  given temporal relation.
146 
147  The possible temporal relations are:
148  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
149  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;S;
150 
151  \param info Information about the DataSource which the observation are from and
152  the DataSet which contains the observations.
153  \param dt A given datetime.
154  \param r A given temporal relation.
155  \param travType The traverse type associated to the returned dataset.
156 
157  \return A pointer to a new ObservationDataSet.
158 
159  \note The caller will take the ownership of the returned pointer.
160  \note When the temporal relation is DURING, dt must be a time period.
161  \note It can throw an Exception when internal errors occur.
162  */
163  virtual std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
166 
167  /*!
168  \brief It returns a data set with observations whose observed geometries
169  satisfy a given spatial relation and phenomenon times satisfy a given temporal relation.
170 
171  The possible temporal relations are:
172  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
173  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;
174 
175  \param info Information about the DataSource which the observation of trajectpries
176  are from and the DataSet which contains the observations.
177  \param dt A given datetime.
178  \param tr A given temporal relation.
179  \param e A given envelope.
180  \param sr A given spatial relation.
181  \param travType The traverse type associated to the returned dataset.
182 
183  \return A pointer to a new ObservationDataSet.
184 
185  \note Before using this method, certify that the Data Source exists in the DataSourceManager and
186  its "id" is correct in the info parameter
187  \note The caller will take the ownership of the returned pointer.
188  \note When the temporal relation is DURING, dt must be a time period.
189  \note It can throw an Exception when internal errors occur.
190  */
191  virtual std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
192  const te::dt::DateTime& dt,
194  const te::gm::Envelope& e,
197 
198  /*!
199  \brief It returns a data set with observations whose observed geometries satisfy a
200  given spatial relation and phenomenon times satisfy a given temporal relation.
201 
202  The possible spatial relations are: INTERSECTS
203  The possible temporal relations are:
204  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
205  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;
206 
207  \param info Information about the DataSource which the observation are from and
208  the DataSet which contains the observations.
209  \param geom A given geometry.
210  \param sr A given spatial relation.
211  \param dt A given datetime.
212  \param tr A given temporal relation.
213  \param travType The traverse type associated to the returned dataset.
214 
215  \return A pointer to a new ObservationDataSet.
216 
217  \note The caller will take the ownership of the returned pointer.
218  \note It will NOT take the ownership of the given pointers.
219  \note When the temporal relation is DURING, dt must be a time period.
220  \note It can throw an Exception when internal errors occur.
221  */
222  virtual std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
226  //@}
227 
228  /*! \name Operations for loading TrajectoryDataSet */
229  //@{
230 
231  /*!
232  \brief It returns the information about all trajectories that exist in a single DataSet.
233 
234  The information about the DataSource and DataSet that contains trajectories is defined
235  as a TrajectoryDataSetInfo (input parameter).
236 
237  The information about each trajectory (its correct id) is returned as a
238  TrajectoryDataSetInfo of the parameter output.
239  These results can be used to create TrajectoryDataSetLayers.
240 
241  \param input The information about the DataSource and DataSet that contains trajectories
242  \param output The information about each trajectory (its correct id).
243 
244  \note It can throw an Exception when internal errors occur.
245  */
246  virtual void getInfo( const TrajectoryDataSetInfo& input,
247  std::vector<TrajectoryDataSetInfo>& output) = 0;
248 
249  /*!
250  \brief It returns a data set with observations of a trajectory.
251 
252  When the DataSet contains more than one trajectory, the info parameter
253  (TrajectoryDataSetInfo) must contain the id of the desire trajectory that
254  must be returned as a TrajectoryDataSet.
255 
256  \param info Information about the DataSource which the observations of a trajectory
257  are from and the DataSet which contains these observations.
258  \param travType The traverse type associated to the returned datasets.
259  \param rwRole The read and write permission associated to the returned datasets.
260  \return The returned TrajectoryDataSet.
261 
262  \note The info must have the id of the desire trajectory
263  \note The caller will take the ownership of the returned pointer.
264  \note It can throw an Exception when internal errors occur.
265  */
266  virtual std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
268 
269  /*!
270  \brief It returns patches of a trajectory whose geometries
271  satisfy a given spatial relation.
272 
273  When the DataSet contains more than one trajectory, the info parameter
274  (TrajectoryDataSetInfo) must contain the id of the desire trajectory that
275  must be returned as a TrajectoryDataSet.
276 
277  The possible spatial relations implemented here are: INTERSECTS
278 
279  \param info Information about the DataSource which the observations of a trajectory
280  are from and the DataSet which contains these observations.
281  \param geom A given geometry.
282  \param r A given spatial relation.
283  \param travType The traverse type associated to the returned dataset.
284 
285  \return The returned trajectoy data set.
286 
287  \note The caller will take the ownership of the returned pointer.
288  \note It can throw an Exception when internal errors occur.
289  */
290  virtual std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
293 
294  /*!
295  \brief It returns patches of a trajectory whose geometries
296  satisfy a given spatial relation.
297 
298  When the DataSet contains more than one trajectory, the info parameter
299  (TrajectoryDataSetInfo) must contain the id of the desire trajectory that
300  must be returned as a TrajectoryDataSet.
301 
302  \param info Information about the DataSource which the observations of a trajectory are from
303  and the DataSet which contains the observations.
304  \param e A given envelope.
305  \param r A given spatial relation.
306  \param travType The traverse type associated to the returned dataset.
307 
308  \return The returned trajectoy data set.
309 
310  \note The caller will take the ownership of the returned pointer.
311  \note It can throw an Exception when internal errors occur.
312  */
313  virtual std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
316 
317  /*!
318  \brief It returns a data set with observations of trajectories whose times
319  satisfy a given temporal relation.
320 
321  When the DataSet contains more than one trajectory, the info parameter
322  (TrajectoryDataSetInfo) must contain the id of the desire trajectory that
323  must be returned as a TrajectoryDataSet.
324 
325  The possible temporal relations are:
326  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
327  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;
328 
329  \param info Information about the DataSource which the observation of trajectpries
330  are from and the DataSet which contains the observations.
331  \param dt A given datetime.
332  \param r A given temporal relation.
333  \param travType The traverse type associated to the returned dataset.
334 
335  \return A pointer to a new TrajectoryDataSet.
336 
337  \note The caller will take the ownership of the returned pointer.
338  \note When the temporal relation is DURING, dt must be a time period.
339  \note It can throw an Exception when internal errors occur.
340  */
341  virtual std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
344 
345  /*!
346  \brief It returns patches of a trajectory whose envelope
347  satisfy a given spatial relation and times satisfy a given temporal relation.
348 
349  When the DataSet contains more than one trajectory, the info parameter
350  (TrajectoryDataSetInfo) must contain the id of the desire trajectory that
351  must be returned as a TrajectoryDataSet.
352 
353  The possible temporal relations are:
354  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
355  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;
356 
357  \param info Information about the DataSource which the observation of trajectpries
358  are from and the DataSet which contains the observations.
359  \param dt A given datetime.
360  \param tr A given temporal relation.
361  \param e A given envelope.
362  \param sr A given spatial relation.
363  \param travType The traverse type associated to the returned dataset.
364 
365  \return A pointer to a new TrajectoryDataSet.
366 
367  \note Before using this method, certify that the Data Source exists in the DataSourceManager and
368  its "id" is correct in the info parameter
369  \note The caller will take the ownership of the returned pointer.
370  \note When the temporal relation is DURING, dt must be a time period.
371  \note It can throw an Exception when internal errors occur.
372  */
373  virtual std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
374  const te::dt::DateTime& dt,
376  const te::gm::Envelope& e,
379 
380  /*!
381  \brief It returns patches of a trajectory whose geometries
382  satisfy a given spatial relation and times satisfy a given temporal relation.
383 
384  When the DataSet contains more than one trajectory, the info parameter
385  (TrajectoryDataSetInfo) must contain the id of the desire trajectory that
386  must be returned as a TrajectoryDataSet.
387 
388  The possible spatial relations are: INTERSECTS
389  The possible temporal relations are:
390  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
391  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;
392 
393  \param info Information about the DataSource which the observations of trajectories
394  are from and the DataSet which contains these observations.
395  \param geom A given geometry.
396  \param sr A given spatial relation.
397  \param dt A given datetime.
398  \param tr A given temporal relation.
399  \param travType The traverse type associated to the returned dataset.
400 
401  \return The returned trajectoy data set.
402 
403  \note The caller will take the ownership of the returned pointer.
404  \note It will NOT take the ownership of the given pointers.
405  \note When the temporal relation is DURING, dt must be a time period.
406  \note It can throw an Exception when internal errors occur.
407  */
408  virtual std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
412  //@}
413 
414  /*! \name Operations for loading TimeSeriesDataSet */
415  //@{
416 
417  /*!
418  \brief It returns the information about all time series that exist in a single DataSet.
419 
420  The information about the DataSource and DataSet that contains time series is defined
421  as a TimeSeriesDataSetInfo (input parameter).
422 
423  The information about each time series (its correct id) is returned as a
424  TimeSeriesDataSetInfo of the parameter output.
425  These results can be used to create TimeSeriesDataSetLayers.
426 
427  \param input The information about the DataSource and DataSet that contains time series
428  \param output The information about each time series (its correct id).
429 
430  \note It can throw an Exception when internal errors occur.
431  */
432  virtual void getInfo( const TimeSeriesDataSetInfo& input,
433  std::vector<TimeSeriesDataSetInfo>& output) = 0;
434 
435  /*!
436  \brief It returns a data set with observations of time series.
437 
438  When the DataSet contains more than one time series, the info parameter
439  (TimeSeriesDataSetInfo) must contain the id of the desire time series that
440  must be returned as a TimeSeriesDataSet.
441 
442  \param info Information about the DataSource which the observations of a time series
443  are from and the DataSet which contains these observations.
444  \param travType The traverse type associated to the returned datasets.
445 
446  \return The returned TrajectoryDataSet.
447 
448  \note The caller will take the ownership of the returned pointer.
449  \note It can throw an Exception when internal errors occur.
450  */
451  virtual std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
453 
454  /*!
455  \brief It returns a data set with observations of time series whose times
456  satisfy a given temporal relation.
457 
458  When the DataSet contains more than one time series, the info parameter
459  (TimeSeriesDataSetInfo) must contain the id of the desire time series that
460  must be returned as a TimeSeriesDataSet.
461 
462  The possible temporal relations are:
463  1. BEFORE; 2. AFTER; 3. DURING; 4. EQUALS;
464  5. MEETS; 6. OVERLAPS 7 - STARTS; 8 -FINISHES;
465 
466  \param info Information about the DataSource which the observation of time series
467  are from and the DataSet which contains the observations.
468  \param dt A given datetime.
469  \param r A given temporal relation.
470  \param travType The traverse type associated to the returned dataset.
471 
472  \return A pointer to a new TimeSeriesDataSet.
473 
474  \note The caller will take the ownership of the returned pointer.
475  \note When the temporal relation is DURING, dt must be a time period.
476  \note It can throw an Exception when internal errors occur.
477  */
478  virtual std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
481 
482  /*!
483  \brief It returns data set with observations of time series whose geometries
484  satisfy a given spatial relation.
485 
486  \param info Information about the DataSource which the observations of a time series are from
487  and the DataSet which contains the observations.
488  \param e A given envelope.
489  \param r A given spatial relation.
490  \param travType The traverse type associated to the returned dataset.
491 
492  \return The returned time series data set.
493 
494  \note The caller will take the ownership of the returned pointer.
495  \note It can throw an Exception when internal errors occur.
496  */
497  virtual std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info, const te::gm::Envelope& e,
500 
501  /*!
502  \brief It returns data set with observations of time series whose geometries
503  satisfy a given spatial relation.
504 
505  \param info Information about the DataSource which the observations of a time series are from
506  and the DataSet which contains the observations.
507  \param geom A given geometry.
508  \param r A given spatial relation.
509  \param travType The traverse type associated to the returned dataset.
510 
511  \return The returned time series data set.
512 
513  \note The caller will take the ownership of the returned pointer.
514  \note It can throw an Exception when internal errors occur.
515  */
516  virtual std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info, const te::gm::Geometry& geom,
519 
520  /*!
521  \brief It returns data set with observations of time series whose geometries
522  satisfy a given spatial relation and times satisfy a given temporal relation
523 
524  \param info Information about the DataSource which the observations of a time series are from
525  and the DataSet which contains the observations.
526  \param dt A given datetime.
527  \param tr A given temporal relation.
528  \param e A given envelope.
529  \param sr A given spatial relation.
530  \param travType The traverse type associated to the returned dataset.
531 
532  \return The returned time series data set.
533 
534  \note The caller will take the ownership of the returned pointer.
535  \note It can throw an Exception when internal errors occur.
536  */
537  virtual std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
538  const te::dt::DateTime& dt,
540  const te::gm::Envelope& e,
543 
544  /*!
545  \brief It returns data set with observations of time series whose geometries
546  satisfy a given spatial relation and times satisfy a given temporal relation.
547 
548  \param info Information about the DataSource which the observations of a time series are from
549  and the DataSet which contains the observations.
550  \param e A given envelope.
551  \param r A given spatial relation.
552  \param travType The traverse type associated to the returned dataset.
553 
554  \return The returned time series data set.
555 
556  \note The caller will take the ownership of the returned pointer.
557  \note It can throw an Exception when internal errors occur.
558  */
559  virtual std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
563 
564  //@}
565 
566  /*! \name Operations for loading spatiotemporal data types
567  (TimeSeries, Trajetory, CoverageSeries) directly from data sources, without using
568  DataSets. */
569  //@{
570 
571  /*!
572  \brief It returns a coverage series.
573 
574  \param info Information about the DataSource which the observations of a coverage series
575  are from and the data sets which contain these observations.
576 
577  \return The returned CoverageSeries.
578 
579  \note The caller will take the ownership of the returned pointer.
580  \note It can throw an Exception when internal errors occur.
581  */
582  //virtual std::unique_ptr<CoverageSeries> getCoverageSeries(const CoverageSeriesDataSetInfo& info) = 0;
583 
584  /*!
585  \brief It returns a time series associated to a point of a coverage series.
586 
587  If info contains information about raster coverages and its associated data source
588  supports raster data type, this function is executed by the data source.
589  Otherwise, it is executed in two steps: (1) creating a CoverageSeries type
590  and (2) using its method getTimeSeries.
591 
592  \param info Information about the DataSource which the observations of a coverage series
593  are from and the data sets which contain these observations.
594  \param p A given point.
595 
596  \return The returned CoverageSeries.
597 
598  \note The caller will take the ownership of the returned pointer.
599  \note It can throw an Exception when internal errors occur.
600 
601  \\TO DO: (1) vantagem de usar o DataSetCoverageDataSet é ele fica armazenado no driver
602  \\em memória (stmem) ao invés de toda hora gerar o CoverageSeries para cada ponto
603  \\que queremos extrair a time series.
604  */
605  //virtual std::unique_ptr<CoverageSeries> getTimeSeries(const CoverageSeriesDataSetInfo& info,
606  // const te::gm::Point& p) = 0;
607  //@}
608 
609  /*! \name Operations for loading temporal and spatial extent */
610  //@{
611 
612  /*!
613  \brief It returns the temporal extent of the data set with observations.
614 
615  \return The temporal extent of the observations.
616 
617  \note The caller will take the ownership of the returned pointer.
618  \note It will NOT take the ownership of the given pointer "info".
619  \note It can throw an Exception when internal errors occur.
620  */
621  virtual std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const ObservationDataSetInfo& info) = 0;
622 
623  /*!
624  \brief It returns the temporal extent of the data set with observations of a trajectory.
625 
626  \return The temporal extent of the observations of a trajectory.
627 
628  \note The caller will take the ownership of the returned pointer.
629  \note It will NOT take the ownership of the given pointer "info".
630  \note It can throw an Exception when internal errors occur.
631  */
632  virtual std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const TrajectoryDataSetInfo& info) = 0;
633 
634  /*!
635  \brief It returns the temporal extent of the data set with observations of a time series.
636 
637  \return The temporal extent of the observations of a time series.
638 
639  \note The caller will take the ownership of the returned pointer.
640  \note It will NOT take the ownership of the given pointer "info".
641  \note It can throw an Exception when internal errors occur.
642  */
643  virtual std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const TimeSeriesDataSetInfo& info) = 0;
644 
645  /*!
646  \brief It returns the temporal extent of the data set with observations of a coverage series.
647 
648  \return The temporal extent of the observations of a coverage series.
649 
650  \note The caller will take the ownership of the returned pointer.
651  \note It will NOT take the ownership of the given pointer "info".
652  \note It can throw an Exception when internal errors occur.
653  */
654  //virtual std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const CoverageSeriesDataSetInfo& info) = 0;
655 
656  /*!
657  \brief It returns the spatial extent of the observations, when there is an observed value of geometry type.
658 
659  \return The spatial extent of the observations.
660 
661  \note The caller will take the ownership of the returned pointer.
662  \note It can throw an Exception when internal errors occur.
663  */
665 
666  /*!
667  \brief It returns the spatial extent of the observations of a trajectory.
668 
669  \return The spatial extent of the observations of a trajectory.
670 
671  \note The caller will take the ownership of the returned pointer.
672  \note It can throw an Exception when internal errors occur.
673  */
675 
676  /*!
677  \brief It returns the spatial extent of the observations of a coverage series.
678 
679  \return The spatial extent of the observations of a coverage series.
680 
681  \note The caller will take the ownership of the returned pointer.
682  \note It can throw an Exception when internal errors occur.
683  */
684  //virtual te::gm::Envelope getSpatialExtent(const CoverageSeriesDataSetInfo& info) = 0;
685  //@}
686 
687  /*! \brief Virtual destructor. */
688  virtual ~STDataLoaderImpl();
689  };
690 
691  } // end namespace st
692 } // end namespace te
693 
694 #endif // __TERRALIB_ST_INTERNAL_STDATALOADERIMPL_H
695 
696 
697 
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation r, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns patches of a trajectory whose geometries satisfy a given spatial relation.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation sr, const te::dt::DateTime &dt, te::dt::TemporalRelation tr, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::gm::Envelope
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, const te::dt::DateTime &dt, te::dt::TemporalRelation tr, const te::gm::Envelope &e, te::gm::SpatialRelation sr=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::gm::Envelope &e, te::gm::SpatialRelation r, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns patches of a trajectory whose geometries satisfy a given spatial relation.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations of a trajectory.
te::dt::DateTime
Definition: DateTime.h:56
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation sr, const te::dt::DateTime &dt, te::dt::TemporalRelation tr, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns patches of a trajectory whose geometries satisfy a given spatial relation and times satisf...
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations of time series.
te::dt::DURING
@ DURING
Definition: Enums.h:145
te::common::TraverseType
TraverseType
A dataset can be traversed in two ways:
Definition: Enums.h:54
te::st::STDataLoaderImpl::getTemporalExtent
virtual std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const ObservationDataSetInfo &info)=0
It returns the temporal extent of the data set with observations.
te::st::STDataLoaderImpl::getInfo
virtual void getInfo(const TrajectoryDataSetInfo &input, std::vector< TrajectoryDataSetInfo > &output)=0
It returns the information about all trajectories that exist in a single DataSet.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation sr, const te::dt::DateTime &dt, te::dt::TemporalRelation tr=te::dt::DURING, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations whose observed geometries satisfy a given spatial relation an...
te::st::STDataLoaderImpl::STDataLoaderImpl
STDataLoaderImpl()
Empty constructor.
te::st::TrajectoryDataSetInfo
A class that contains infos about a DataSet that contains observations of one or more trajectories.
Definition: TrajectoryDataSetInfo.h:60
te::gm::SpatialRelation
SpatialRelation
Spatial relations between geometric objects.
Definition: Enums.h:128
te::st::ObservationDataSetInfo
A class that contains infos about a DataSet that contains observations.
Definition: ObservationDataSetInfo.h:71
te::gm::INTERSECTS
@ INTERSECTS
Definition: Enums.h:130
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, const te::dt::DateTime &dt, te::dt::TemporalRelation r=te::dt::DURING, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations whose phenomenon times satisfy a given temporal relation.
te::st::STDataLoaderImpl::~STDataLoaderImpl
virtual ~STDataLoaderImpl()
It returns the spatial extent of the observations of a coverage series.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, const te::gm::Envelope &e, te::gm::SpatialRelation r=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
TESTEXPORT
#define TESTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:88
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::dt::DateTime &dt, te::dt::TemporalRelation r=te::dt::DURING, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations of trajectories whose times satisfy a given temporal relation...
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a ObservationDataSet, that is, a DataSet that contains observations.
te::st::STDataLoaderImpl::getTemporalExtent
virtual std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const TrajectoryDataSetInfo &info)=0
It returns the temporal extent of the data set with observations of a trajectory.
te::st::STDataLoaderImpl::getSpatialExtent
virtual te::gm::Envelope getSpatialExtent(const TrajectoryDataSetInfo &info)=0
It returns the spatial extent of the observations of a trajectory.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, const te::dt::DateTime &dt, te::dt::TemporalRelation r=te::dt::DURING, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations of time series whose times satisfy a given temporal relation.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::dt::DateTime &dt, te::dt::TemporalRelation tr, const te::gm::Envelope &e, te::gm::SpatialRelation sr=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns patches of a trajectory whose envelope satisfy a given spatial relation and times satisfy ...
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, const te::gm::Envelope &e, te::gm::SpatialRelation r=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations whose observed geometries satisfy a given spatial relation.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation r=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations whose observed geometries satisfy a given spatial relation.
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, const te::dt::DateTime &dt, te::dt::TemporalRelation tr, const te::gm::Envelope &e, te::gm::SpatialRelation sr=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns a data set with observations whose observed geometries satisfy a given spatial relation an...
te::st::TimeSeriesDataSetInfo
A class that contains infos about a DataSet that contains observations of one or more time series.
Definition: TimeSeriesDataSetInfo.h:61
te::gm::Geometry
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
Definition: Geometry.h:78
te::st::STDataLoaderImpl
An abstract class responsible for loading spatiotemporal data from data sources.
Definition: STDataLoaderImpl.h:79
te::st::STDataLoaderImpl::getTemporalExtent
virtual std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const TimeSeriesDataSetInfo &info)=0
It returns the temporal extent of the data set with observations of a time series.
te::st::STDataLoaderImpl::getSpatialExtent
virtual te::gm::Envelope getSpatialExtent(const ObservationDataSetInfo &info)=0
It returns the temporal extent of the data set with observations of a coverage series.
te::dt::TemporalRelation
TemporalRelation
Temporal relations between date and time (Source: Allen, 1991).
Definition: Enums.h:141
te::st::STDataLoaderImpl::getDataSet
virtual std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation r=te::gm::INTERSECTS, te::common::TraverseType travType=te::common::FORWARDONLY)=0
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::st::STDataLoaderImpl::getInfo
virtual void getInfo(const TimeSeriesDataSetInfo &input, std::vector< TimeSeriesDataSetInfo > &output)=0
It returns the information about all time series that exist in a single DataSet.
te::common::FORWARDONLY
@ FORWARDONLY
Definition: Enums.h:55