STDataLoaderFromDS.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 STDataLoaderFromDS.h
22 
23  \brief This file contains a class responsible for loading spatiotemporal data
24  from a DataSource using query capabilities.
25 */
26 
27 #ifndef __TERRALIB_ST_INTERNAL_STDATALOADERFROMDS_H
28 #define __TERRALIB_ST_INTERNAL_STDATALOADERFROMDS_H
29 
30 //ST
31 #include "../Config.h"
32 #include "STDataLoaderImpl.h"
33 
34 namespace te { namespace da { class DataSet; class DataSourceInfo; } }
35 
36 namespace te
37 {
38  namespace st
39  {
40  /*!
41  \class STDataLoaderFromDS
42 
43  \brief A class responsible for loading spatiotemporal data
44  from a DataSource using query capabilities.
45  */
47  {
48  public:
49 
51 
52  /*! \name Inhered methods*/
53  //@{
54 
55  std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
57 
58  std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info, const te::gm::Envelope& e,
61 
62  std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info, const te::gm::Geometry& geom,
65 
66  std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
69 
70  std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
71  const te::dt::DateTime& dt,
73  const te::gm::Envelope& e,
76 
77  std::unique_ptr<ObservationDataSet> getDataSet(const ObservationDataSetInfo& info,
81 
82  void getInfo( const TrajectoryDataSetInfo& input, std::vector<TrajectoryDataSetInfo>& output);
83 
84  std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
86 
87  std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
90 
91  std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
94 
95  std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
98 
99  std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
100  const te::dt::DateTime& dt,
102  const te::gm::Envelope& e,
105 
106  std::unique_ptr<TrajectoryDataSet> getDataSet(const TrajectoryDataSetInfo& info,
110 
111  void getInfo( const TimeSeriesDataSetInfo& input, std::vector<TimeSeriesDataSetInfo>& output);
112 
113  std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
115 
116  std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
119 
120  std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info, const te::gm::Envelope& e,
123 
124  std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info, const te::gm::Geometry& geom,
127 
128  std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
129  const te::dt::DateTime& dt,
131  const te::gm::Envelope& e,
134 
135  std::unique_ptr<TimeSeriesDataSet> getDataSet(const TimeSeriesDataSetInfo& info,
139 
140  std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const ObservationDataSetInfo& info);
141 
142  std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const TrajectoryDataSetInfo& info);
143 
144  std::unique_ptr<te::dt::DateTimePeriod> getTemporalExtent(const TimeSeriesDataSetInfo& info);
145 
147 
149  //@}
150 
151  protected:
152 
153  /*! \brief It builds an ObservationDataSet from a given DataSet */
154  std::unique_ptr<ObservationDataSet> buildDataSet(te::da::DataSet* ds, const ObservationDataSetInfo& info);
155 
156  /*! \brief It builds an TrajectoryDataSet from a given DataSet */
157  std::unique_ptr<TrajectoryDataSet> buildDataSet(te::da::DataSet* ds, const TrajectoryDataSetInfo& info);
158 
159  /*! \brief It builds an TimeSeriesDataSet from a given DataSet */
160  std::unique_ptr<TimeSeriesDataSet> buildDataSet(te::da::DataSet* ds, const TimeSeriesDataSetInfo& info);
161 
163  };
164  } // end namespace st
165 } // end namespace te
166 
167 #endif // __TERRALIB_ST_INTERNAL_STDATALOADERFROMDS_H
168 
169 
170 
te::gm::Envelope
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
te::st::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations whose observed geometries satisfy a given spatial relation.
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::st::STDataLoaderFromDS::getSpatialExtent
te::gm::Envelope getSpatialExtent(const ObservationDataSetInfo &info)
It returns the temporal extent of the data set with observations of a coverage series.
te::st::STDataLoaderFromDS::STDataLoaderFromDS
STDataLoaderFromDS()
te::st::STDataLoaderFromDS::getInfo
void getInfo(const TrajectoryDataSetInfo &input, std::vector< TrajectoryDataSetInfo > &output)
It returns the information about all trajectories that exist in a single DataSet.
te::st::STDataLoaderFromDS::getSpatialExtent
te::gm::Envelope getSpatialExtent(const TrajectoryDataSetInfo &info)
It returns the spatial extent of the observations of a trajectory.
te::st::STDataLoaderFromDS::~STDataLoaderFromDS
virtual ~STDataLoaderFromDS()
te::st::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations of time series whose times satisfy a given temporal relation.
te::dt::DateTime
Definition: DateTime.h:56
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::STDataLoaderFromDS::getDataSet
std::unique_ptr< TimeSeriesDataSet > getDataSet(const TimeSeriesDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)
It returns a data set with observations of time series.
te::st::STDataLoaderFromDS::getDataSet
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)
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::st::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations whose observed geometries satisfy a given spatial relation an...
te::st::STDataLoaderFromDS
A class responsible for loading spatiotemporal data from a DataSource using query capabilities.
Definition: STDataLoaderFromDS.h:47
te::st::STDataLoaderFromDS::getDataSet
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)
It returns patches of a trajectory whose envelope satisfy a given spatial relation and times satisfy ...
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::STDataLoaderFromDS::getDataSet
std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)
It returns a data set with observations of a trajectory.
te::st::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations whose phenomenon times satisfy a given temporal relation.
te::st::STDataLoaderFromDS::getDataSet
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)
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::st::STDataLoaderFromDS::getTemporalExtent
std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const TimeSeriesDataSetInfo &info)
It returns the temporal extent of the data set with observations of a time series.
te::st::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations of trajectories whose times satisfy a given temporal relation...
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::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations whose observed geometries satisfy a given spatial relation.
te::st::STDataLoaderFromDS::getDataSet
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)
It returns a data set with observations whose observed geometries satisfy a given spatial relation an...
te::st::STDataLoaderFromDS::getDataSet
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)
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::st::STDataLoaderFromDS::getDataSet
std::unique_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)
It returns a ObservationDataSet, that is, a DataSet that contains observations.
te::st::STDataLoaderFromDS::getTemporalExtent
std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const ObservationDataSetInfo &info)
It returns the temporal extent of the data set with observations.
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::STDataLoaderFromDS::buildDataSet
std::unique_ptr< TimeSeriesDataSet > buildDataSet(te::da::DataSet *ds, const TimeSeriesDataSetInfo &info)
It builds an TimeSeriesDataSet from a given DataSet.
te::st::STDataLoaderFromDS::getTemporalExtent
std::unique_ptr< te::dt::DateTimePeriod > getTemporalExtent(const TrajectoryDataSetInfo &info)
It returns the temporal extent of the data set with observations of a trajectory.
te::st::STDataLoaderFromDS::getDataSet
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)
It returns data set with observations of time series whose geometries satisfy a given spatial relatio...
te::st::STDataLoaderFromDS::buildDataSet
std::unique_ptr< TrajectoryDataSet > buildDataSet(te::da::DataSet *ds, const TrajectoryDataSetInfo &info)
It builds an TrajectoryDataSet from a given DataSet.
te::da::DataSet
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:114
STDataLoaderImpl.h
This file contains an abstract class responsible for loading spatiotemporal data from data sources.
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::st::STDataLoaderFromDS::getDataSet
std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::gm::Geometry &geom, te::gm::SpatialRelation r, te::common::TraverseType travType=te::common::FORWARDONLY)
It returns patches of a trajectory whose geometries satisfy a given spatial relation.
te::gm::Geometry
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
Definition: Geometry.h:78
te::st::STDataLoaderFromDS::getDataSet
std::unique_ptr< TrajectoryDataSet > getDataSet(const TrajectoryDataSetInfo &info, const te::gm::Envelope &e, te::gm::SpatialRelation r, te::common::TraverseType travType=te::common::FORWARDONLY)
It returns patches of a trajectory whose geometries satisfy a given spatial relation.
te::st::STDataLoaderImpl
An abstract class responsible for loading spatiotemporal data from data sources.
Definition: STDataLoaderImpl.h:79
te::st::STDataLoaderFromDS::getDataSet
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)
It returns patches of a trajectory whose geometries satisfy a given spatial relation and times satisf...
te::dt::TemporalRelation
TemporalRelation
Temporal relations between date and time (Source: Allen, 1991).
Definition: Enums.h:141
te::st::STDataLoaderFromDS::buildDataSet
std::unique_ptr< ObservationDataSet > buildDataSet(te::da::DataSet *ds, const ObservationDataSetInfo &info)
It builds an ObservationDataSet from a given DataSet.
te::common::FORWARDONLY
@ FORWARDONLY
Definition: Enums.h:55
te::st::STDataLoaderFromDS::getInfo
void getInfo(const TimeSeriesDataSetInfo &input, std::vector< TimeSeriesDataSetInfo > &output)
It returns the information about all time series that exist in a single DataSet.