TsMosaic.cpp
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 terralib/unittest/rp/mosaic/TsMosaic.cpp
22 
23  \brief A test suit for the Mosaic interface.
24 */
25 
26 // TerraLib
27 #include "../Config.h"
28 #include <terralib/rp.h>
29 #include <terralib/raster/Raster.h>
32 
33 // Boost
34 #define BOOST_TEST_NO_MAIN
35 #include <boost/test/unit_test.hpp>
36 #include <boost/shared_ptr.hpp>
37 
38 BOOST_AUTO_TEST_SUITE (mosaic_tests)
39 
40 BOOST_AUTO_TEST_CASE(geoReferencedImagesMosaic_test)
41 {
42  /* Openning input rasters */
43 
44  std::map<std::string, std::string> auxRasterInfo;
45 
46  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/L5219075_07520040503_r3g2b1.tif";
47  boost::shared_ptr< te::rst::Raster > inputRaster1Pointer ( te::rst::RasterFactory::open(
48  auxRasterInfo ) );
49  BOOST_CHECK( inputRaster1Pointer.get() );
50 
51  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/L5219076_07620040908_r3g2b1.tif";
52  boost::shared_ptr< te::rst::Raster > inputRaster2Pointer ( te::rst::RasterFactory::open(
53  auxRasterInfo ) );
54  BOOST_CHECK( inputRaster2Pointer.get() );
55 
56  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/L71218075_07520070614_r3g2b1.tif";
57  boost::shared_ptr< te::rst::Raster > inputRaster3Pointer ( te::rst::RasterFactory::open(
58  auxRasterInfo ) );
59  BOOST_CHECK( inputRaster3Pointer.get() );
60 
61  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/L71218076_07620060814_r3g2b1.tif";
62  boost::shared_ptr< te::rst::Raster > inputRaster4Pointer ( te::rst::RasterFactory::open(
63  auxRasterInfo ) );
64  BOOST_CHECK( inputRaster4Pointer.get() );
65 
66  /* Creating the algorithm parameters */
67 
68  te::rp::GeoMosaic::InputParameters algoInputParams;
69 
70  std::vector< const te::rst::Raster* > rasters;
71  rasters.push_back( inputRaster1Pointer.get() );
72  rasters.push_back( inputRaster2Pointer.get() );
73  rasters.push_back( inputRaster3Pointer.get() );
74  rasters.push_back( inputRaster4Pointer.get() );
75  te::rp::FeederConstRasterVector feeder( rasters );
76  algoInputParams.m_feederRasterPtr = &feeder;
77 
78  std::vector< unsigned int > bands;
79  bands.push_back( 0 );
80  bands.push_back( 1 );
81  bands.push_back( 2 );
82  algoInputParams.m_inputRastersBands.push_back( bands );
83  algoInputParams.m_inputRastersBands.push_back( bands );
84  algoInputParams.m_inputRastersBands.push_back( bands );
85  algoInputParams.m_inputRastersBands.push_back( bands );
86 
87  algoInputParams.m_interpMethod = te::rst::NearestNeighbor;
88  algoInputParams.m_noDataValue = 0;
89  algoInputParams.m_forceInputNoDataValue = true;
90  algoInputParams.m_blendMethod = te::rp::Blender::NoBlendMethod;
91  algoInputParams.m_autoEqualize = true;
92 
93  te::rp::GeoMosaic::OutputParameters algoOutputParams;
94 
95  algoOutputParams.m_rInfo["URI"] =
96  "terralib_unittest_rp_Mosaic_GeoReferencedImagesMosaic_Test.tif";
97  algoOutputParams.m_rType = "GDAL";
98 
99  /* Executing the algorithm */
100 
101  te::rp::GeoMosaic algorithmInstance;
102 
103  BOOST_CHECK( algorithmInstance.initialize( algoInputParams ) );
104  BOOST_CHECK( algorithmInstance.execute( algoOutputParams ) );
105 }
106 
107 BOOST_AUTO_TEST_CASE(geoReferencedImagesMosaicWithReprojection_test)
108 {
109  /* Openning input rasters */
110 
111  std::map<std::string, std::string> auxRasterInfo;
112 
113  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/cbers_rgb342_crop1.tif";
114  boost::shared_ptr< te::rst::Raster > inputRaster1Pointer ( te::rst::RasterFactory::open(
115  auxRasterInfo ) );
116  BOOST_CHECK( inputRaster1Pointer.get() );
117 
118  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/cbers_rgb342_crop2.tif";
119  boost::shared_ptr< te::rst::Raster > inputRaster2Pointer ( te::rst::RasterFactory::open(
120  auxRasterInfo ) );
121  BOOST_CHECK( inputRaster2Pointer.get() );
122 
123  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/cbers_rgb342_crop3_EPSG_22522.tif";
124  boost::shared_ptr< te::rst::Raster > inputRaster3Pointer ( te::rst::RasterFactory::open(
125  auxRasterInfo ) );
126  BOOST_CHECK( inputRaster3Pointer.get() );
127 
128  /* Creating the algorithm parameters */
129 
130  te::rp::GeoMosaic::InputParameters algoInputParams;
131 
132  std::vector< const te::rst::Raster* > rasters;
133  rasters.push_back( inputRaster1Pointer.get() );
134  rasters.push_back( inputRaster2Pointer.get() );
135  rasters.push_back( inputRaster3Pointer.get() );
136  te::rp::FeederConstRasterVector feeder( rasters );
137  algoInputParams.m_feederRasterPtr = &feeder;
138 
139  std::vector< unsigned int > bands;
140  bands.push_back( 0 );
141  bands.push_back( 1 );
142  bands.push_back( 2 );
143  algoInputParams.m_inputRastersBands.push_back( bands );
144 
145  bands[ 0 ] = 1;
146  bands[ 1 ] = 2;
147  bands[ 2 ] = 0;
148  algoInputParams.m_inputRastersBands.push_back( bands );
149 
150  bands[ 2 ] = 2;
151  bands[ 0 ] = 1;
152  bands[ 1 ] = 0;
153  algoInputParams.m_inputRastersBands.push_back( bands );
154 
155  algoInputParams.m_interpMethod = te::rst::NearestNeighbor;
156  algoInputParams.m_noDataValue = 0;
157  algoInputParams.m_forceInputNoDataValue = false;
158  algoInputParams.m_blendMethod = te::rp::Blender::NoBlendMethod;
159  algoInputParams.m_autoEqualize = true;
160 
161  te::rp::GeoMosaic::OutputParameters algoOutputParams;
162 
163  algoOutputParams.m_rInfo["URI"] =
164  "terralib_unittest_rp_GeoReferencedImagesMosaicWithReprojectionTest_Test.tif";
165  algoOutputParams.m_rType = "GDAL";
166 
167  /* Executing the algorithm */
168 
169  te::rp::GeoMosaic algorithmInstance;
170 
171  BOOST_CHECK( algorithmInstance.initialize( algoInputParams ) );
172  BOOST_CHECK( algorithmInstance.execute( algoOutputParams ) );
173 }
174 
175 BOOST_AUTO_TEST_CASE(tiePointsMosaic1_test)
176 {
177  /* Openning input rasters */
178 
179  std::map<std::string, std::string> auxRasterInfo;
180 
181  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/cbers_rgb342_crop1.tif";
182  boost::shared_ptr< te::rst::Raster > inputRaster1Pointer ( te::rst::RasterFactory::open(
183  auxRasterInfo ) );
184  BOOST_CHECK( inputRaster1Pointer.get() );
185 
186  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/cbers_rgb342_crop2.tif";
187  boost::shared_ptr< te::rst::Raster > inputRaster2Pointer ( te::rst::RasterFactory::open(
188  auxRasterInfo ) );
189  BOOST_CHECK( inputRaster2Pointer.get() );
190 
191  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/geotiff/cbers_rgb342_crop3_EPSG_22522.tif";
192  boost::shared_ptr< te::rst::Raster > inputRaster3Pointer ( te::rst::RasterFactory::open(
193  auxRasterInfo ) );
194  BOOST_CHECK( inputRaster3Pointer.get() );
195 
196  /* Creating the algorithm parameters */
197 
199 
200  std::vector< const te::rst::Raster* > rasters;
201  rasters.push_back( inputRaster1Pointer.get() );
202  rasters.push_back( inputRaster2Pointer.get() );
203  rasters.push_back( inputRaster3Pointer.get() );
204  te::rp::FeederConstRasterVector feeder( rasters );
205  algoInputParams.m_feederRasterPtr = &feeder;
206 
207  std::vector< unsigned int > bands;
208  bands.push_back( 0 );
209  bands.push_back( 1 );
210  bands.push_back( 2 );
211  algoInputParams.m_inputRastersBands.push_back( bands );
212 
213  bands[ 0 ] = 1;
214  bands[ 1 ] = 2;
215  bands[ 2 ] = 0;
216  algoInputParams.m_inputRastersBands.push_back( bands );
217 
218  bands[ 2 ] = 2;
219  bands[ 0 ] = 1;
220  bands[ 1 ] = 0;
221  algoInputParams.m_inputRastersBands.push_back( bands );
222 
223  /* Raster 0 to raster 1 tiePoints */
224 
225  std::vector< te::gm::GTParameters::TiePoint > r0ToR1tiePoints( 3 );
226  r0ToR1tiePoints[ 0 ].first.x = 40;
227  r0ToR1tiePoints[ 0 ].first.y = 38;
228  r0ToR1tiePoints[ 0 ].second.x = 334;
229  r0ToR1tiePoints[ 0 ].second.y = 575;
230  r0ToR1tiePoints[ 1 ].first.x = 465;
231  r0ToR1tiePoints[ 1 ].first.y = 71;
232  r0ToR1tiePoints[ 1 ].second.x = 759;
233  r0ToR1tiePoints[ 1 ].second.y = 608;
234  r0ToR1tiePoints[ 2 ].first.x = 496;
235  r0ToR1tiePoints[ 2 ].first.y = 429;
236  r0ToR1tiePoints[ 2 ].second.x = 789;
237  r0ToR1tiePoints[ 2 ].second.y = 964;
238  algoInputParams.m_tiePoints.push_back( r0ToR1tiePoints );
239 
240  /* Raster 1 to raster 2 tiePoints */
241 
242  std::vector< te::gm::GTParameters::TiePoint > r1ToR2tiePoints( 3 );
243  r1ToR2tiePoints[ 0 ].first.x = 476;
244  r1ToR2tiePoints[ 0 ].first.y = 358;
245  r1ToR2tiePoints[ 0 ].second.x = 4;
246  r1ToR2tiePoints[ 0 ].second.y = 183;
247  r1ToR2tiePoints[ 1 ].first.x = 590;
248  r1ToR2tiePoints[ 1 ].first.y = 930;
249  r1ToR2tiePoints[ 1 ].second.x = 117;
250  r1ToR2tiePoints[ 1 ].second.y = 754;
251  r1ToR2tiePoints[ 2 ].first.x = 717;
252  r1ToR2tiePoints[ 2 ].first.y = 666;
253  r1ToR2tiePoints[ 2 ].second.x = 244;
254  r1ToR2tiePoints[ 2 ].second.y = 492;
255  algoInputParams.m_tiePoints.push_back( r1ToR2tiePoints );
256 
257  algoInputParams.m_tiePointsLinkType =
259 
260  algoInputParams.m_interpMethod = te::rst::NearestNeighbor;
261  algoInputParams.m_noDataValue = 0;
262  algoInputParams.m_blendMethod = te::rp::Blender::NoBlendMethod;
263  algoInputParams.m_autoEqualize = true;
264 
266 
267  algoOutputParams.m_rInfo["URI"] =
268  "terralib_unittest_rp_Mosaic_TiePointsMosaicTest1_Test.tif";
269  algoOutputParams.m_rType = "GDAL";
270 
271  /* Executing the algorithm */
272 
273  te::rp::TiePointsMosaic algorithmInstance;
274 
275  BOOST_CHECK( algorithmInstance.initialize( algoInputParams ) );
276  BOOST_CHECK( algorithmInstance.execute( algoOutputParams ) );
277 }
278 
279 BOOST_AUTO_TEST_CASE(tiePointsMosaic2_test)
280 {
281  /* Openning input rasters */
282 
283  std::map<std::string, std::string> auxRasterInfo;
284 
285  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/jpeg/cbers_rgb342_crop1.jpg";
286  boost::shared_ptr< te::rst::Raster > inputRaster1Pointer ( te::rst::RasterFactory::open(
287  auxRasterInfo ) );
288  BOOST_CHECK( inputRaster1Pointer.get() );
289 
290  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/jpeg/cbers_rgb342_crop2.jpg";
291  boost::shared_ptr< te::rst::Raster > inputRaster2Pointer ( te::rst::RasterFactory::open(
292  auxRasterInfo ) );
293  BOOST_CHECK( inputRaster2Pointer.get() );
294 
295  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/jpeg/cbers_rgb342_crop3.jpg";
296  boost::shared_ptr< te::rst::Raster > inputRaster3Pointer ( te::rst::RasterFactory::open(
297  auxRasterInfo ) );
298  BOOST_CHECK( inputRaster3Pointer.get() );
299 
300  /* Creating the algorithm parameters */
301 
303 
304  std::vector< const te::rst::Raster* > rasters;
305  rasters.push_back( inputRaster1Pointer.get() );
306  rasters.push_back( inputRaster2Pointer.get() );
307  rasters.push_back( inputRaster3Pointer.get() );
308  te::rp::FeederConstRasterVector feeder( rasters );
309  algoInputParams.m_feederRasterPtr = &feeder;
310 
311  std::vector< unsigned int > bands;
312  bands.push_back( 0 );
313  bands.push_back( 1 );
314  bands.push_back( 2 );
315  algoInputParams.m_inputRastersBands.push_back( bands );
316 
317  bands[ 0 ] = 1;
318  bands[ 1 ] = 2;
319  bands[ 2 ] = 0;
320  algoInputParams.m_inputRastersBands.push_back( bands );
321 
322  bands[ 2 ] = 2;
323  bands[ 0 ] = 1;
324  bands[ 1 ] = 0;
325  algoInputParams.m_inputRastersBands.push_back( bands );
326 
327  /* Raster 0 to raster 1 tiePoints */
328 
329  std::vector< te::gm::GTParameters::TiePoint > r0ToR1tiePoints( 3 );
330  r0ToR1tiePoints[ 0 ].first.x = 40;
331  r0ToR1tiePoints[ 0 ].first.y = 38;
332  r0ToR1tiePoints[ 0 ].second.x = 334;
333  r0ToR1tiePoints[ 0 ].second.y = 575;
334  r0ToR1tiePoints[ 1 ].first.x = 465;
335  r0ToR1tiePoints[ 1 ].first.y = 71;
336  r0ToR1tiePoints[ 1 ].second.x = 759;
337  r0ToR1tiePoints[ 1 ].second.y = 608;
338  r0ToR1tiePoints[ 2 ].first.x = 496;
339  r0ToR1tiePoints[ 2 ].first.y = 429;
340  r0ToR1tiePoints[ 2 ].second.x = 789;
341  r0ToR1tiePoints[ 2 ].second.y = 964;
342  algoInputParams.m_tiePoints.push_back( r0ToR1tiePoints );
343 
344  /* Raster 1 to raster 2 tiePoints */
345 
346  std::vector< te::gm::GTParameters::TiePoint > r1ToR2tiePoints( 3 );
347  r1ToR2tiePoints[ 0 ].first.x = 476;
348  r1ToR2tiePoints[ 0 ].first.y = 358;
349  r1ToR2tiePoints[ 0 ].second.x = 4;
350  r1ToR2tiePoints[ 0 ].second.y = 183;
351  r1ToR2tiePoints[ 1 ].first.x = 590;
352  r1ToR2tiePoints[ 1 ].first.y = 930;
353  r1ToR2tiePoints[ 1 ].second.x = 117;
354  r1ToR2tiePoints[ 1 ].second.y = 754;
355  r1ToR2tiePoints[ 2 ].first.x = 717;
356  r1ToR2tiePoints[ 2 ].first.y = 666;
357  r1ToR2tiePoints[ 2 ].second.x = 244;
358  r1ToR2tiePoints[ 2 ].second.y = 492;
359  algoInputParams.m_tiePoints.push_back( r1ToR2tiePoints );
360 
361  algoInputParams.m_tiePointsLinkType =
363 
364  algoInputParams.m_interpMethod = te::rst::NearestNeighbor;
365  algoInputParams.m_noDataValue = 0;
366  algoInputParams.m_blendMethod = te::rp::Blender::NoBlendMethod;
367  algoInputParams.m_autoEqualize = true;
368 
370 
371  algoOutputParams.m_rInfo["URI"] =
372  "terralib_unittest_rp_Mosaic_TiePointsMosaicTest2_Test.tif";
373  algoOutputParams.m_rType = "GDAL";
374 
375  /* Executing the algorithm */
376 
377  te::rp::TiePointsMosaic algorithmInstance;
378 
379  BOOST_CHECK( algorithmInstance.initialize( algoInputParams ) );
380  BOOST_CHECK( algorithmInstance.execute( algoOutputParams ) );
381 }
382 
383 BOOST_AUTO_TEST_CASE(sequenceMosaic_test)
384 {
385  /* Openning input rasters */
386 
387  std::map<std::string, std::string> auxRasterInfo;
388 
389  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/jpeg/cbers_rgb342_crop1.jpg";
390  boost::shared_ptr< te::rst::Raster > inputRaster1Pointer ( te::rst::RasterFactory::open(
391  auxRasterInfo ) );
392  BOOST_CHECK( inputRaster1Pointer.get() );
393 
394  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/jpeg/cbers_rgb342_crop2.jpg";
395  boost::shared_ptr< te::rst::Raster > inputRaster2Pointer ( te::rst::RasterFactory::open(
396  auxRasterInfo ) );
397  BOOST_CHECK( inputRaster2Pointer.get() );
398 
399  auxRasterInfo["URI"] = TERRALIB_DATA_DIR "/jpeg/cbers_rgb342_crop3.jpg";
400  boost::shared_ptr< te::rst::Raster > inputRaster3Pointer ( te::rst::RasterFactory::open(
401  auxRasterInfo ) );
402  BOOST_CHECK( inputRaster3Pointer.get() );
403 
404  /* Creating the algorithm parameters */
405 
407 
408  std::vector< const te::rst::Raster* > rasters;
409  rasters.push_back( inputRaster1Pointer.get() );
410  rasters.push_back( inputRaster2Pointer.get() );
411  rasters.push_back( inputRaster3Pointer.get() );
412  te::rp::FeederConstRasterVector feeder( rasters );
413  algoInputParams.m_feederRasterPtr = &feeder;
414 
415  std::vector< unsigned int > bands;
416  bands.push_back( 0 );
417  bands.push_back( 1 );
418  bands.push_back( 2 );
419  algoInputParams.m_inputRastersBands.push_back( bands );
420 
421  bands[ 0 ] = 1;
422  bands[ 1 ] = 2;
423  bands[ 2 ] = 0;
424  algoInputParams.m_inputRastersBands.push_back( bands );
425 
426  bands[ 2 ] = 2;
427  bands[ 0 ] = 1;
428  bands[ 1 ] = 0;
429  algoInputParams.m_inputRastersBands.push_back( bands );
430 
431  algoInputParams.m_geomTransfName = "Affine";
432 
433  algoInputParams.m_interpMethod = te::rst::NearestNeighbor;
434 
435  algoInputParams.m_noDataValue = 0.0;
436 
437  algoInputParams.m_forceInputNoDataValue = false;
438 
439  algoInputParams.m_blendMethod = te::rp::Blender::NoBlendMethod;
440 
441  algoInputParams.m_autoEqualize = true;
442 
443  algoInputParams.m_useRasterCache = true;
444 
445  algoInputParams.m_enableMultiThread = true;
446 
447  algoInputParams.m_enableProgress = true;
448 
449  algoInputParams.m_locatorParams.m_geomTransfMaxError = 1.0;
450 
451  algoInputParams.m_tiePointsLocationBandIndex = 0;
452 
453  algoInputParams.m_locatorParams.m_maxTiePoints = 500;
454 
455  algoInputParams.m_outDataSetsNamePrefix =
456  "terralib_unittest_rp_Mosaic_SequenceMosaic_Test_";
457 
458  algoInputParams.m_outDataSetsNameSufix = ".tif";
459 
460  algoInputParams.m_minRequiredTiePointsCoveredAreaPercent = 1;
461 
463 
464  std::string connInfoRaster("file://.");
465  std::unique_ptr< te::da::DataSource > dsPtr( te::da::DataSourceFactory::make("GDAL", connInfoRaster) );
466  BOOST_CHECK( dsPtr.get() );
467  dsPtr->open();
468  BOOST_CHECK( dsPtr->isOpened() );
469  algoOutputParams.m_outputDSPtr = dsPtr.get();
470 
471  /* Executing the algorithm */
472 
473  te::rp::SequenceMosaic algorithmInstance;
474 
475  BOOST_CHECK( algorithmInstance.initialize( algoInputParams ) );
476  BOOST_CHECK( algorithmInstance.execute( algoOutputParams ) );
477 
478  BOOST_CHECK( algoOutputParams.m_sequencesInfo.size() == 2 );
479  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 0 ].m_rasterFeederIndexes.size() == 1 );
480  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 0 ].m_rasterFeederIndexes[ 0 ] == 0 );
481  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 1 ].m_rasterFeederIndexes.size() == 2 );
482  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 1 ].m_rasterFeederIndexes[ 0 ] == 1 );
483  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 1 ].m_rasterFeederIndexes[ 1 ] == 2 );
484  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 0 ].m_tiePoints.size() == 1 );
485  BOOST_CHECK( algoOutputParams.m_sequencesInfo[ 1 ].m_tiePoints.size() == 2 );
486 }
487 
488 BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_CASE(geoReferencedImagesMosaicWithReprojection_test)
Definition: TsMosaic.cpp:107
std::map< std::string, std::string > m_rInfo
The necessary information to create the output rasters (as described in te::raster::RasterFactory).
static std::unique_ptr< DataSource > make(const std::string &driver, const te::core::URI &connInfo)
Near neighborhood interpolation method.
A feeder from a input rasters vector;.
Definition: FeedersRaster.h:69
bool execute(AlgorithmOutputParameters &outputParams)
Executes the algorithm using the supplied parameters.
bool initialize(const AlgorithmInputParameters &inputParams)
Initialize the algorithm instance making it ready for execution.
GeoMosaic input parameters.
Definition: GeoMosaic.h:56
Create a mosaic from a set of geo-referenced rasters.
Definition: GeoMosaic.h:48
An abstract class for raster data strucutures.
std::vector< MosaicSequenceInfo > m_sequencesInfo
No blending performed.
Definition: Blender.h:66
std::string m_rType
Output raster data source type (as described in te::raster::RasterFactory ).
Definition: GeoMosaic.h:104
bool execute(AlgorithmOutputParameters &outputParams) _NOEXCEPT_OP(false)
Executes the algorithm using the supplied parameters.
Definition: GeoMosaic.cpp:163
This is the abstract factory for Rasters.
Tie-points linking adjacent raster pairs (te::gm::GTParameters::TiePoint::first are raster (with inde...
BOOST_AUTO_TEST_SUITE(mosaic_tests) BOOST_AUTO_TEST_CASE(geoReferencedImagesMosaic_test)
Definition: TsMosaic.cpp:38
bool execute(AlgorithmOutputParameters &outputParams)
Executes the algorithm using the supplied parameters.
list bands
Definition: compose.py:2
A factory for data sources.
This file contains include headers for the TerraLib Raster Processing module.
Create a mosaic from a set of rasters using tie-points.
std::string m_rType
Output raster data source type (as described in te::raster::RasterFactory ).
bool initialize(const AlgorithmInputParameters &inputParams) _NOEXCEPT_OP(false)
Initialize the algorithm instance making it ready for execution.
Definition: GeoMosaic.cpp:760
GeoMosaic output parameters.
Definition: GeoMosaic.h:100
list rasters
Definition: compose.py:3
Create mosaics from a sequence of overlapped rasters using an automatic tie-points detection method...
bool initialize(const AlgorithmInputParameters &inputParams)
Initialize the algorithm instance making it ready for execution.
static Raster * open(const std::map< std::string, std::string > &rinfo, te::common::AccessPolicy p=te::common::RAccess)
It opens a raster with the given parameters and default raster driver.
std::map< std::string, std::string > m_rInfo
The necessary information to create the output rasters (as described in te::raster::RasterFactory).
Definition: GeoMosaic.h:106
te::da::DataSource * m_outputDSPtr
The mosaic sequences info.