Loading...
Searching...
No Matches
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
46namespace te { namespace gm { class Geometry; } }
47namespace te { namespace dt { class DateTime; class DateTimePeriod; } }
48
49namespace 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. */
689 };
690
691 } // end namespace st
692} // end namespace te
693
694#endif // __TERRALIB_ST_INTERNAL_STDATALOADERIMPL_H
695
696
697
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
Definition: Geometry.h:78
A class that contains infos about a DataSet that contains observations.
An abstract class responsible for loading spatiotemporal data from data sources.
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...
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.
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.
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.
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...
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...
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.
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...
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 ...
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.
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...
virtual ~STDataLoaderImpl()
It returns the spatial extent of the observations of a coverage series.
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...
virtual te::gm::Envelope getSpatialExtent(const TrajectoryDataSetInfo &info)=0
It returns the spatial extent of the observations of a trajectory.
virtual void getInfo(const TrajectoryDataSetInfo &input, std::vector< TrajectoryDataSetInfo > &output)=0
It returns the information about all trajectories that exist in a single DataSet.
STDataLoaderImpl()
Empty constructor.
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.
virtual te::gm::Envelope getSpatialExtent(const ObservationDataSetInfo &info)=0
It returns the temporal extent of the data set with observations of a coverage series.
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.
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.
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.
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...
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.
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.
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...
virtual std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const ObservationDataSetInfo &info)=0
It returns the temporal extent of the data set with observations.
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.
A class that contains infos about a DataSet that contains observations of one or more time series.
A class that contains infos about a DataSet that contains observations of one or more trajectories.
TraverseType
A dataset can be traversed in two ways:
Definition: Enums.h:54
@ FORWARDONLY
Definition: Enums.h:55
TemporalRelation
Temporal relations between date and time (Source: Allen, 1991).
Definition: Enums.h:141
@ DURING
Definition: Enums.h:145
SpatialRelation
Spatial relations between geometric objects.
Definition: Enums.h:128
@ INTERSECTS
Definition: Enums.h:130
TerraLib.
#define TESTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:88