int main(int argc, char** argv) { terrama2::core::initializeTerraMA(); terrama2::core::registerFactories(); QApplication app(argc, argv); try { auto& serviceManager = terrama2::core::ServiceManager::getInstance(); std::map<std::string, std::string> connInfo { {"PG_HOST", TERRAMA2_DATABASE_HOST}, {"PG_PORT", TERRAMA2_DATABASE_PORT}, {"PG_USER", TERRAMA2_DATABASE_USERNAME}, {"PG_PASSWORD", TERRAMA2_DATABASE_PASSWORD}, {"PG_DB_NAME", TERRAMA2_DATABASE_DBNAME}, {"PG_CONNECT_TIMEOUT", "4"}, {"PG_CLIENT_ENCODING", "UTF-8"} }; serviceManager.setLogConnectionInfo(connInfo); serviceManager.setInstanceId(1); std::shared_ptr<terrama2::services::view::core::DataManager> dataManager = std::make_shared<terrama2::services::view::core::DataManager>(); prepareExample(dataManager); terrama2::services::view::core::Service service(dataManager); service.start(); terrama2::services::view::core::View* view = new terrama2::services::view::core::View(); terrama2::services::view::core::ViewPtr viewPtr(view); view->id = 1; view->projectId = 1; view->serviceInstanceId = 1; view->active = true; view->resolutionWidth = 800; view->resolutionHeight = 600; terrama2::core::Schedule schedule; schedule.id = 1; schedule.frequency = 2; schedule.frequencyUnit = "min"; view->schedule = schedule; view->dataSeriesList.push_back(1); view->dataSeriesList.push_back(2); view->dataSeriesList.push_back(3); terrama2::core::Filter filter; view->filtersPerDataSeries.emplace(1, filter); view->filtersPerDataSeries.emplace(2, filter); view->filtersPerDataSeries.emplace(3, filter); dataManager->add(viewPtr); QTimer timer; QObject::connect(&timer, SIGNAL(timeout()), QCoreApplication::instance(), SLOT(quit())); timer.start(20000); app.exec(); service.stopService(); } catch(const std::exception& e) { std::cout << std::endl << "An exception has occurred in DrawLayer example: " << e.what() << std::endl; return EXIT_FAILURE; } catch(...) { std::cout << std::endl << "An unexpected exception has occurred in DrawLayer example!" << std::endl; return EXIT_FAILURE; } terrama2::core::finalizeTerraMA(); return EXIT_SUCCESS; }
string KNNAdapter::classify(vector<float>& example) { Mat matExample; prepareExample(example, matExample); float prediction = knn.find_nearest(matExample, k); return getLabelStringFromOpenCV(prediction); }