void DomainTimeTests::construction() { //Ilwis::TimeInterval ti("20081104","20100130"); Ilwis::Time t2("20090412"); Ilwis::Time t3("20160707"); Ilwis::Time t4 = t2 - Ilwis::Duration("2Y"); Ilwis::Time t5 = t2 + Ilwis::Duration("10Y"); QString aa = t4.toString(); aa = t5.toString(); Ilwis::INumericDomain dom; dom.prepare(); dom->range(new Ilwis::TimeInterval("20081104","20100130")); Ilwis::ITimeDomain dm; dm.prepare(); dm->range(new Ilwis::TimeInterval(t4,t5)); DOTEST(dom->valueType() == itDATE, "correctly set"); QString v = dom->impliedValue(IVARIANT(t2)).value<Ilwis::Time>().toString(); DOCOMPARE(v, QString("2009-04-12"), "testing representation"); DOTEST(dom->contains(IVARIANT(t2)) == Ilwis::Domain::cSELF, "testing containment 1"); DOTEST(dom->contains(IVARIANT(t3)) == Ilwis::Domain::cNONE, "testing containment 2"); dom->setParent(dm); DOTEST(dom->contains(IVARIANT(t3)) == Ilwis::Domain::cPARENT, "testing containment 3"); Ilwis::ITimeDomain dm2; dm2.prepare("time"); }
void SizeTest::misc() { Ilwis::Size<double> sz(3.45, 2.67, 8.0); DOTEST( APPROX(sz.linearSize(), 48,0.001), "volume test"); Ilwis::Size<> sz2(200,400, 300); DOTEST(sz2.contains(24,23,67), "valid contains test"); DOTEST(sz2.contains(700,23,67) == false, "valid contains test that fails"); }
void CsyTests::wkt() { Ilwis::ICoordinateSystem csy; DOTEST(csy.prepare("code=proj4:+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0") == true,"loading from proj4 definition"); QString swkt = csy->toWKT(4); if ( swkt == "?") return; }
void RasterOperations::testResample() { Ilwis::IGeoReference grf("code=georef:type=corners,csy=epsg:21037,envelope=-3.02456e+06 -4.55547e+06 6.47259e+06 4.39692e+06,gridsize=1188 1120,name=grf1"); QString expr = QString("aa5resbic=resample(n000302.mpr,grf1,bicubic)"); DOTEST(grf.isValid(),"making georef by code"); QString expr = QString("aa5resbic=resample(average_monthly_temperature_january_5.mpr,plate102.grf,bicubic)"); //QString expr = QString("aa5resbic=resample(small3.mpr,aeqsmall.grf,bicubic)"); Ilwis::ExecutionContext ctx; Ilwis::SymbolTable syms; DOTEST(Ilwis::commandhandler()->execute(expr,&ctx,syms), "resample done."); Ilwis::IRasterCoverage raster("ilwis://internalcatalog/aa5resbic"); raster->connectTo(QString("file:///%1/aa5ss.mpr").arg(_baseDataPath.absolutePath()), "map","ilwis3",Ilwis::IlwisObject::cmOUTPUT); raster->createTime(Ilwis::Time::now()); raster->store(); }
void test() { DOTEST(1, "one"); DOTEST(10, "ten"); DOTEST(15, "fifteen"); DOTEST(50, "fifty"); DOTEST(54, "fiftyfour"); DOTEST(100, "onehundred"); DOTEST(101, "onehundredandone"); DOTEST(118, "onehundredandeighteen"); }
void SizeTest::creation() { Ilwis::Size<> sz; DOTEST(sz.isValid() == false, "invalid size"); sz = Ilwis::Size<>(100,200,1); DOTEST(sz.isValid() && sz.xsize() == 100 && sz.ysize() == 200 && sz.zsize() == 1, "valid creation"); Ilwis::Size<double> sz2 = { 2.34, 6.78, 9.34}; DOTEST(sz.isValid() && sz2.xsize() == 2.34 && sz2.ysize() == 6.78 && sz2.zsize() == 9.34, "size with doubles, valid"); Ilwis::Size<qint32> sz3 = Ilwis::Size<qint32>(-200,-300,1); DOTEST(sz3.isValid() == false, "invalid size"); Ilwis::Size<double> sz4(0,0,0); DOTEST(sz4.isNull() == true, "invalid size"); }
void Rastercalc::addition() { Ilwis::IRasterCoverage map1; DOTEST(map1.prepare(makeInputPath("U_1001A.NTF")),"loading erdas imagine file"); Ilwis::IRasterCoverage cov = map1 + 100.0; DOCOMPARE(cov->pix2value(Ilwis::Pixel(0,0)),225.0,"Checking pix(269,339) for expression raster <operator> number"); DOCOMPARE(cov->pix2value(Ilwis::Pixel(269,339)),139.0,"Checking pix(269,339) for expression raster <operator> number"); DOCOMPARE(cov->pix2value(Ilwis::Pixel(29,996)),127.0,"Checking pix(29,996) for expression raster <operator> number"); }
void FeatureOperations::pointrastercross() { QString expr = QString("aacrosspoints=pointrastercrossing(ETH_M_TOWN.mpp, average_monthly_temperature.mpl, band)"); Ilwis::ExecutionContext ctx; Ilwis::SymbolTable symTable; DOTEST(Ilwis::commandhandler()->execute(expr,&ctx, symTable),"executed pointrastercrossing)"); Ilwis::IFeatureCoverage crossedpoints("ilwis://internalcatalog/aacrosspoints"); crossedpoints->connectTo(QString("file:///%1/aacrosspoints.mpp").arg(_baseDataPath.absolutePath()), "vectormap","ilwis3",Ilwis::IlwisObject::cmOUTPUT); crossedpoints->createTime(Ilwis::Time::now()); crossedpoints->store(); }
void FeatureOperations::transform(){ QString expr = QString("aatransformed=transformcoordinates(Kenya.mpa, utm37.csy)"); Ilwis::ExecutionContext ctx; Ilwis::SymbolTable symTable; DOTEST(Ilwis::commandhandler()->execute(expr,&ctx, symTable),"executed transformcoordinates)"); Ilwis::IFeatureCoverage transformed("ilwis://internalcatalog/aatransformed"); transformed->connectTo(QString("file:///%1/aatransformed.mpa").arg(_baseDataPath.absolutePath()), "vectormap","ilwis3",Ilwis::IlwisObject::cmOUTPUT); transformed->createTime(Ilwis::Time::now()); transformed->store(); }
void DataAccess::table() { Ilwis::ITable tbl; tbl.prepare(makeInputPath("rainfall.tbt")); std::vector<QVariant> values = tbl->column("february"); DOCOMPARE(values[2].toInt(), 165, "Accessing numerical column"); tbl.prepare(makeInputPath("geom.tbt")); DOCOMPARE(tbl->cell("zonation",1).toInt(), 1, "Accessing cell , getting raw value as return"); DOTEST(tbl->cell("zonation",1, false).toString() == "Alluvial fan zone", "Accessing cell get string value as return"); }
void GdalDataAccess::tableAccess(){ Ilwis::ITable tbl1; DOTEST(tbl1.prepare(makeInputPath("rainfall.shp")),"loading table from shape"); DOCOMPARE(tbl1->recordCount(),(unsigned int)13,"check record count"); DOTEST(tbl1->cell(1,0).toString() == "UMSS", "column test 1"); DOTEST(tbl1->cell("APRIL",0).toInt() == 36, "column test 2"); DOTEST(tbl1->cell("JUNE",2).toInt() == 35, "column test 3"); DOTEST(tbl1->cell("NOVEMBER",4).toInt() == 81, "column test 4"); DOTEST(tbl1.prepare(makeInputPath("regions.shp")), "Loaded table regions.shp"); DOTEST(tbl1->cell("REGIONNAME",3).toString() == "Dire Dawa", "column test 5"); DOTEST(tbl1->cell("COUNT",7).toDouble() == 34.0, "column test 6"); }
void RasterOperations::testMirrorRotate() { try { QString expr = QString("aamirvert=mirrorrotateraster(small.mpr,rotate180)"); Ilwis::ExecutionContext ctx; DOTEST(Ilwis::commandhandler()->execute(expr,&ctx), "mirror rotate mirrvert done."); Ilwis::IRasterCoverage raster("ilwis://internalcatalog/aamirvert"); raster->connectTo(QString("file:///%1/aamirvert.mpr").arg(_baseDataPath.absolutePath()), "map","ilwis3",Ilwis::IlwisObject::cmOUTPUT); raster->createTime(Ilwis::Time::now()); raster->store(); } catch(Ilwis::ErrorObject& err) { qDebug() << err.message(); QVERIFY(false); } }
void GdalDataAccess::accessingFeatureData() { try { Ilwis::IFeatureCoverage fc; qDebug() << "Features : accessing data "; DOTEST(fc.prepare(makeInputPath("regions.shp")), "Loading regions.shp"); QString env = fc->envelope().toString(); DOTEST(env == "33.0065 3.40088 47.9605 14.9637","FeatureCoverage: testing envelope (bbox)"); DOTEST(fc.prepare(makeInputPath("rainfall.shp")),"loading point map"); Ilwis::FeatureIterator iter1(fc); Ilwis::SPFeatureI f1 = *(iter1 + 1); QVariant output = f1->cell("RAINFALL"); DOTEST(output.toString() =="taquina","accesing attribute string data of pointmap"); Ilwis::SPFeatureI f2 = *(iter1 + 4); output = f2("JANUARY"); DOCOMPARE(output.toInt(), 85 ,"accesing attribute numeric data of pointmap"); DOTEST(fc.prepare(makeInputPath("drainage.shp")),"loading segment map"); Ilwis::FeatureIterator iter2(fc); Ilwis::SPFeatureI f3 = *(iter2 + 104); output = f3->cell("DRAINAGE"); DOTEST(output.toString() == "lake","accesing attribute string data of line coverage"); Ilwis::SPFeatureI f4 = *(iter2 + 21); output = f4("C1"); DOCOMPARE(output.toInt(), 1 ,"accesing attribute numeric data ofline coverage"); DOTEST(fc.prepare(makeInputPath("geology.shp")),"loading polygon map"); Ilwis::FeatureIterator iter3(fc); Ilwis::SPFeatureI f5 = *(iter3 + 40); output = f5->cell("GEOLOGY"); DOTEST(output.toString() == "Shales","accesing attribute string data of polygon coverage"); }catch (const Ilwis::ErrorObject& err) { QString error = "Test threw exception : " + err.message(); QFAIL(error.toLatin1()); } }
void StoringData::storeGdalFormats(){ // Ilwis::IRasterCoverage map1; // DOTEST(map1.prepare(makeInputPath("PR_2003_allyear.bsq")), "loading bsq"); // map1->name("aaraster2"); // map1->connectTo(makeOutputPath("aaraster2.mpl"), "map","ilwis3",Ilwis::IlwisObject::cmOUTPUT); // map1->createTime(Ilwis::Time::now()); // map1->store(); Ilwis::IRasterCoverage map2; DOTEST(map2.prepare(makeInputPath("GCL_INT.tif")), "loading tif"); map2->name("aaraster3"); map2->connectTo(makeOutputPath("aaraster2.mpl"), "map","ilwis3",Ilwis::IlwisObject::cmOUTPUT); map2->createTime(Ilwis::Time::now()); map2->store(); }
void DataAccess::features() { Ilwis::IFeatureCoverage features; features.prepare(makeInputPath("rainfall.mpp")); Ilwis::FeatureIterator iter(features); Ilwis::SPFeatureI f = *(iter + 4); DOCOMPARE(f("january").toInt(), 93,"accessing value of 4th feature, january attribute column"); features.prepare(makeInputPath("Contour.mps")); Ilwis::FeatureIterator iter2(features); Ilwis::SPFeatureI f2 = *(iter2 + 10); DOCOMPARE(f2(FEATUREVALUECOLUMN).toInt(), 2600, "accessing map value of the 10th segment"); features.prepare(makeInputPath("soils_sadc.mpa")); Ilwis::FeatureIterator iter3(features); Ilwis::SPFeatureI f3 = *(iter3 + 4); auto result = f3->cell(QString("FAOSOIL"),false); DOTEST(result.toString() == "Rd18-3ab", "accessing attribute value of the 4th polygon"); }
void Rastercalc::substract(){ Ilwis::IRasterCoverage map1; DOTEST(map1.prepare(makeInputPath("U_1001A.NTF")),"loading erdas imagine file"); Ilwis::IRasterCoverage cov = 100.0 - map1; DOCOMPARE(cov->pix2value(Ilwis::Pixel(0,0)),-25.0,"Checking pix(269,339) for expression number <operator> raster"); map1.prepare("small.mpl"); Ilwis::IRasterCoverage cov4 = map1 + 100; map1.prepare("n000302_sub_kenya.mpr"); Ilwis::IRasterCoverage map2("kenya_2009ndvi_cor_22.mpr"); Ilwis::IRasterCoverage cov2 = map1 + map2 / 3; DOCOMPARE(cov2->pix2value(Ilwis::Pixel(50,50)),148.18,"Checking pix(50,50) for compound expression"); Ilwis::IRasterCoverage cov3 = sqrt(cov2); DOCOMPARE(cov3->pix2value(Ilwis::Pixel(50,50)),12.173,"Checking pix(50,50) for sqrt"); }
int __cdecl main(int argc, char *argv[]) { if (PAL_Initialize(argc, argv) != 0) return(FAIL); DOTEST("%.*s", 2, "bar", "bar", "ba", "ba"); DOTEST("%.*S", 2, convert("bar"), "bar", "ba", "ba"); //DOTEST("%.*n", 4, 2, "2", "0002"); DOTEST("%.*c", 0, 'a', "a", "a", "a"); DOTEST("%.*c", 4, 'a', "a", "a", "a"); DOTEST("%.*C", 0, (WCHAR)'a', "a", "a", "a"); DOTEST("%.*C", 4, (WCHAR)'a', "a", "a", "a"); DOTEST("%.*d", 1, 42, "42", "42", "42"); DOTEST("%.*d", 3, 42, "42", "042", "042"); DOTEST("%.*i", 1, 42, "42", "42", "42"); DOTEST("%.*i", 3, 42, "42", "042", "042"); DOTEST("%.*o", 1, 42, "42", "52", "52"); DOTEST("%.*o", 3, 42, "42", "052", "052"); DOTEST("%.*u", 1, 42, "42", "42", "42"); DOTEST("%.*u", 3, 42, "42", "042", "042"); DOTEST("%.*x", 1, 0x42, "0x42", "42", "42"); DOTEST("%.*x", 3, 0x42, "0x42", "042", "042"); DOTEST("%.*X", 1, 0x42, "0x42", "42", "42"); DOTEST("%.*X", 3, 0x42, "0x42", "042", "042"); DoublePrecTest("%.*e", 1, 2.01, "2.0e+000", "2.0e+00"); DoublePrecTest("%.*e", 3, 2.01, "2.010e+000", "2.010e+00"); DoublePrecTest("%.*E", 1, 2.01, "2.0E+000", "2.0E+00"); DoublePrecTest("%.*E", 3, 2.01, "2.010E+000", "2.010E+00"); DoublePrecTest("%.*f", 1, 2.01, "2.0", "2.0"); DoublePrecTest("%.*f", 3, 2.01, "2.010", "2.010"); DoublePrecTest("%.*g", 1, 256.01, "3e+002", "3e+02"); DoublePrecTest("%.*g", 3, 256.01, "256", "256"); DoublePrecTest("%.*g", 4, 256.01, "256", "256"); DoublePrecTest("%.*g", 6, 256.01, "256.01", "256.01"); DoublePrecTest("%.*G", 1, 256.01, "3E+002", "3E+02"); DoublePrecTest("%.*G", 3, 256.01, "256", "256"); DoublePrecTest("%.*G", 4, 256.01, "256", "256"); DoublePrecTest("%.*G", 6, 256.01, "256.01", "256.01"); PAL_Terminate(); return PASS; }