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->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("DCP-generic"); terrama2::core::DataSetDcp* dataSet = new terrama2::core::DataSetDcp(); dataSet->active = true; dataSet->format.emplace("folder", "/pcd_toa5/CPV/"); dataSet->format.emplace("mask", "CPV_slow_%YYYY_%MM_%DD_%hh%mm.dat"); dataSet->format.emplace("timezone", "+00"); dataSet->format.emplace("srid", "4326"); dataSet->format.emplace("header_size", "4"); dataSet->format.emplace("properties_names_line", "2"); dataSet->format.emplace("convert_all", "true"); dataSet->format.emplace("default_type", "TEXT"); QJsonArray fields; { QJsonObject obj; obj.insert("property_name", QString("TIMESTAMP")); obj.insert("alias", QString("datetime")); obj.insert("type", QString("DATETIME")); obj.insert("format", QString("%YYYY-%MM-%DD %hh:%mm:%ss")); fields.push_back(obj); } { QJsonObject obj; obj.insert("property_name", QString("RECORD")); obj.insert("alias", QString("record")); obj.insert("type", QString("INTEGER")); fields.push_back(obj); } { QJsonObject obj; obj.insert("property_name", QString("E_field_Avg")); obj.insert("alias", QString("efield")); obj.insert("type", QString("INTEGER")); fields.push_back(obj); } { QJsonObject obj; obj.insert("property_name", QString("panel_temp_Avg")); obj.insert("alias", QString("panel")); obj.insert("type", QString("INTEGER")); fields.push_back(obj); } { QJsonObject obj; obj.insert("property_name", QString("leakage_cur_Avg")); obj.insert("alias", QString("leak")); obj.insert("type", QString("FLOAT")); fields.push_back(obj); } { QJsonObject obj; obj.insert("property_name", QString("battery_volt_Avg")); obj.insert("alias", QString("bateria")); obj.insert("type", QString("FLOAT")); fields.push_back(obj); } { QJsonObject obj; obj.insert("property_name", QString("internal_RH_Avg")); obj.insert("alias", QString("interval")); obj.insert("type", QString("TEXT")); fields.push_back(obj); } QJsonObject obj; obj.insert("fields", fields); QJsonDocument doc(obj); dataSet->format.emplace("fields", QString(doc.toJson(QJsonDocument::Compact)).toStdString()); dataSeries->datasetList.emplace_back(dataSet); //empty filter terrama2::core::Filter filter; //accessing data auto accessor = terrama2::core::DataAccessorFactory::getInstance().make(dataProviderPtr, dataSeriesPtr); auto remover = std::make_shared<terrama2::core::FileRemover>(); auto uriMap = accessor->getFiles(filter, remover); auto dataMap = accessor->getSeries(uriMap, filter, remover); terrama2::core::DcpSeriesPtr dcpSeries = std::make_shared<terrama2::core::DcpSeries>(); dcpSeries->addDcpSeries(dataMap); assert(dcpSeries->dcpSeriesMap().size() == 1); QUrl uri; uri.setScheme("postgis"); uri.setHost("localhost"); uri.setPort(5432); uri.setUserName("postgres"); uri.setPassword("postgres"); uri.setPath("/terrama2"); //DataProvider information terrama2::core::DataProvider* dataProviderPostGIS = new terrama2::core::DataProvider(); terrama2::core::DataProviderPtr dataProviderPostGISPtr(dataProviderPostGIS); dataProviderPostGIS->uri = uri.url().toStdString(); dataProviderPostGIS->intent = terrama2::core::DataProviderIntent::PROCESS_INTENT; dataProviderPostGIS->dataProviderType = "POSTGIS"; dataProviderPostGIS->active = true; //DataSeries information terrama2::core::DataSeries* outputDataSeries = new terrama2::core::DataSeries(); terrama2::core::DataSeriesPtr outputDataSeriesPtr(outputDataSeries); outputDataSeries->semantics = semanticsManager.getSemantics("DCP-postgis"); terrama2::core::DataSetDcp* dataSetOutput = new terrama2::core::DataSetDcp(); terrama2::core::DataSetPtr dataSetOutputPtr(dataSetOutput); dataSetOutput->active = true; dataSetOutput->format.emplace("table_name", "dcp_generic"); dataSetOutput->format.emplace("timestamp_column", "datetime"); auto dataStorager = terrama2::core::DataStoragerFactory::getInstance().make(outputDataSeriesPtr, dataProviderPostGISPtr); for(auto& item : dataMap) { dataStorager->store( item.second, dataSetOutputPtr); } return 0; }
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; }