void addOutput(std::shared_ptr<terrama2::services::collector::core::DataManager> dataManager) { /////////////////////////////////////////////// // output QUrl uri; uri.setScheme("postgis"); uri.setHost(QString::fromStdString(TERRAMA2_DATABASE_HOST)); uri.setPort(std::stoi(TERRAMA2_DATABASE_PORT)); uri.setUserName(QString::fromStdString(TERRAMA2_DATABASE_USERNAME)); uri.setPassword(QString::fromStdString(TERRAMA2_DATABASE_PASSWORD)); uri.setPath(QString::fromStdString("/"+TERRAMA2_DATABASE_DBNAME)); // DataProvider information terrama2::core::DataProvider* outputDataProvider = new terrama2::core::DataProvider(); terrama2::core::DataProviderPtr outputDataProviderPtr(outputDataProvider); outputDataProvider->id = 2; outputDataProvider->name = "DataProvider queimadas postgis"; outputDataProvider->uri = uri.url().toStdString(); outputDataProvider->intent = terrama2::core::DataProviderIntent::COLLECTOR_INTENT; outputDataProvider->dataProviderType = "POSTGIS"; outputDataProvider->active = true; dataManager->add(outputDataProviderPtr); // DataSeries information terrama2::core::DataSeries* outputDataSeries = new terrama2::core::DataSeries(); terrama2::core::DataSeriesPtr outputDataSeriesPtr(outputDataSeries); outputDataSeries->id = 2; outputDataSeries->name = "DataProvider queimadas postgis"; auto& semanticsManager = terrama2::core::SemanticsManager::getInstance(); outputDataSeries->semantics = semanticsManager.getSemantics("OCCURRENCE-postgis"); outputDataSeries->dataProviderId = outputDataProviderPtr->id; dataManager->add(outputDataSeriesPtr); // DataSet information terrama2::core::DataSetOccurrence* outputDataSet = new terrama2::core::DataSetOccurrence(); outputDataSet->active = true; outputDataSet->id = 2; outputDataSet->dataSeriesId = outputDataSeries->id; outputDataSet->format.emplace("table_name", "queimadas_test_table"); outputDataSeries->datasetList.emplace_back(outputDataSet); }
void addOutput(std::shared_ptr<terrama2::services::collector::core::DataManager> dataManager) { /////////////////////////////////////////////// // output // DataProvider information terrama2::core::DataProvider* outputDataProvider = new terrama2::core::DataProvider(); terrama2::core::DataProviderPtr outputDataProviderPtr(outputDataProvider); outputDataProvider->id = 2; outputDataProvider->name = "Dados locais"; outputDataProvider->uri = "file://"+TERRAMA2_DATA_DIR; outputDataProvider->intent = terrama2::core::DataProviderIntent::COLLECTOR_INTENT; outputDataProvider->dataProviderType = "FILE"; outputDataProvider->active = true; dataManager->add(outputDataProviderPtr); // DataSeries information terrama2::core::DataSeries* outputDataSeries = new terrama2::core::DataSeries(); terrama2::core::DataSeriesPtr outputDataSeriesPtr(outputDataSeries); outputDataSeries->id = 2; outputDataSeries->name = "Hidroestimador"; auto& semanticsManager = terrama2::core::SemanticsManager::getInstance(); outputDataSeries->semantics = semanticsManager.getSemantics("GRID-geotiff"); outputDataSeries->dataProviderId = outputDataProviderPtr->id; dataManager->add(outputDataSeriesPtr); // DataSet information terrama2::core::DataSetOccurrence* outputDataSet = new terrama2::core::DataSetOccurrence(); outputDataSet->active = true; outputDataSet->id = 2; outputDataSet->dataSeriesId = outputDataSeries->id; outputDataSet->format.emplace("mask", "S10238225_%YYYY%MM%DD%hh%mm"); outputDataSet->format.emplace("folder", "hidroestimador_crop"); outputDataSeries->datasetList.emplace_back(outputDataSet); }
int main(int, char**) { terrama2::core::TerraMA2Init terramaRaii("example", 0); terrama2::core::registerFactories(); { //DataProvider information terrama2::core::DataProvider* dataProvider = new terrama2::core::DataProvider(); terrama2::core::DataProviderPtr dataProviderPtr(dataProvider); dataProvider->uri = "file://"; dataProvider->uri += TERRAMA2_DATA_DIR; dataProvider->uri += "/grib"; dataProvider->intent = terrama2::core::DataProviderIntent::COLLECTOR_INTENT; dataProvider->dataProviderType = "FILE"; dataProvider->active = true; //DataSeries information terrama2::core::DataSeries* dataSeries = new terrama2::core::DataSeries(); terrama2::core::DataSeriesPtr dataSeriesPtr(dataSeries); auto& semanticsManager = terrama2::core::SemanticsManager::getInstance(); dataSeries->semantics = semanticsManager.getSemantics("GRID-grib"); terrama2::core::DataSetGrid* dataSet = new terrama2::core::DataSetGrid(); dataSet->active = true; dataSet->format.emplace("mask", "WRF_ams_09km_2016012900_2016012900.grb2"); dataSet->format.emplace("timezone", "+00"); dataSet->format.emplace("bands", "UGRD;VGRD"); dataSet->format.emplace("iso_surface", "10000"); dataSeries->datasetList.emplace_back(dataSet); //empty filter terrama2::core::Filter filter; //accessing data terrama2::core::DataAccessorGrib accessor(dataProviderPtr, dataSeriesPtr); auto remover = std::make_shared<terrama2::core::FileRemover>(); terrama2::core::GridSeriesPtr gridSeries = accessor.getGridSeries(filter,remover); assert(gridSeries->gridMap().size() == 1); //DataProvider information terrama2::core::DataProvider* outputDataProvider = new terrama2::core::DataProvider(); terrama2::core::DataProviderPtr outputDataProviderPtr(outputDataProvider); outputDataProvider->uri = "file://"+TERRAMA2_DATA_DIR+"/saida"; terrama2::core::DataSeries* outputDataSeries = new terrama2::core::DataSeries(); terrama2::core::DataSeriesPtr outputDataSeriesPtr(outputDataSeries); outputDataSeries->semantics = semanticsManager.getSemantics("GRID-gdal"); terrama2::core::DataStoragerTiff dataStorager(outputDataSeriesPtr, outputDataProviderPtr); terrama2::core::DataSetGrid* outputDataSet = new terrama2::core::DataSetGrid(); terrama2::core::DataSetGridPtr outputDataSetPtr(outputDataSet); outputDataSet->active = true; outputDataSet->format.emplace("mask", "ventos.tif"); outputDataSeries->datasetList.push_back(outputDataSetPtr); auto seriesMap = gridSeries->getSeries(); auto series = seriesMap.begin()->second; dataStorager.store(series, outputDataSetPtr); } return 0; }