int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; int shadeSet = DBFault; DBInt stepNum = DBFault, offset = 0; DBObjData *tsData, *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-n", "--number")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing step number!"); return (CMfailed); } if (sscanf(argv[argPos], "%d", &stepNum) != 1) { CMmsgPrint(CMmsgUsrError, "Invalid stepnum!"); return (CMfailed); } if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-o", "--offset")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing offset!"); return (CMfailed); } if (sscanf(argv[argPos], "%d", &offset) != 1) { CMmsgPrint(CMmsgUsrError, "Invalid offset!"); return (CMfailed); } if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-s", "--shadeset")) { int shadeCodes[] = {DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation}; const char *shadeSets[] = {"standard", "grey", "blue", "blue-to-red", "elevation", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup(shadeSets, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid shadeset!"); return (CMfailed); } if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; shadeSet = shadeCodes[shadeSet]; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input grid> <output grid>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -n,--number [# of steps]"); CMmsgPrint(CMmsgInfo, " -o,--offset [offset]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (stepNum == DBFault) { CMmsgPrint(CMmsgUsrError, "Cycle step number is not set!"); return (CMfailed); } tsData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? tsData->Read(argv[1]) : tsData->Read(stdin); if ((ret == DBFault) || (tsData->Type() != DBTypeGridContinuous)) { delete tsData; return (CMfailed); } data = DBGridToGrid(tsData); if (title == (char *) NULL) title = tsData->Name(); if (subject == (char *) NULL) subject = tsData->Document(DBDocSubject); if (domain == (char *) NULL) domain = tsData->Document(DBDocGeoDomain); if (version == (char *) NULL) version = tsData->Document(DBDocVersion); if (shadeSet == DBFault) shadeSet = DBDataFlagDispModeContGreyScale; data->Name(title); data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); if ((ret = RGlibCycleMean(tsData, data, stepNum, offset)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete tsData; delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char* argv[]) { int argPos, argNum = argc, ret, verbose = false; int layerID, kernel = 3, offset = 0, i, layerNum, beginLayerID, endLayerID, num; DBPosition pos; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; int shadeSet = DBDataFlagDispModeContGreyScale; DBFloat value, sum; DBObjData *inData, *outData; DBGridIF *inGridIF, *outGridIF; DBObjRecord *inLayerRec, *outLayerRec; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-k","--kernelsize")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing kernel size!"); return (CMfailed); } if (sscanf (argv[argPos],"%d",&kernel) != 1) { CMmsgPrint (CMmsgUsrError,"Invalid kernel size!"); return (CMfailed); } if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-f","--kerneloffset")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing kernel offset!"); return (CMfailed); } if (sscanf (argv[argPos],"%d",&offset) != 1) { CMmsgPrint (CMmsgUsrError,"Invalid kernel offset!"); return (CMfailed); } if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-t","--title")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-u","--subject")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--shadeset")) { int shadeCodes [] = { DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *shadeSets [] = { "standard","grey","blue","blue-to-red","elevation", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup (shadeSets,argv [argPos],true)) == CMfailed) { CMmsgPrint (CMmsgUsrError,"Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes [shadeSet]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input grid> <output grid>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -k,--kernelsize"); CMmsgPrint (CMmsgInfo," -f,--kerneloffset"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); inData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? inData->Read (argv [1]) : inData->Read (stdin); if ((ret == DBFault) || ((inData->Type () != DBTypeGridContinuous) && (inData->Type () != DBTypeGridDiscrete))) { delete inData; return (CMfailed); } inGridIF = new DBGridIF (inData); if ((outData = DBGridToGrid (inData,DBTypeGridContinuous)) == (DBObjData *) NULL) return (CMfailed); if (title != (char *) NULL) outData->Name (title); if (subject != (char *) NULL) outData->Document (DBDocSubject, subject); if (domain != (char *) NULL) outData->Document (DBDocGeoDomain, domain); if (version != (char *) NULL) outData->Document (DBDocVersion, version); outGridIF = new DBGridIF (outData); layerNum = inGridIF->LayerNum (); for (layerID = 0;layerID < layerNum;++layerID) { inLayerRec = inGridIF->Layer (layerID);; if (layerID == 0) { outLayerRec = outGridIF->Layer (layerID); outGridIF->RenameLayer (outLayerRec, inLayerRec->Name ()); } else outLayerRec = outGridIF->AddLayer (inLayerRec->Name ()); beginLayerID = layerID >= offset ? layerID - offset : 0; endLayerID = (layerID - offset + kernel) < layerNum ? (layerID - offset + kernel) : layerNum; // CMmsgPrint (CMmsgDebug, "LayerID: %d Kernel: %d Offset: %d Begin: %d End: %d", layerID, kernel, offset, beginLayerID, endLayerID); for (pos.Row = 0; pos.Row < inGridIF->RowNum (); pos.Row++) { for (pos.Col = 0; pos.Col < inGridIF->ColNum (); pos.Col++) { num = 0; sum = 0.0; for (i = beginLayerID; i < endLayerID; ++i) { if (inGridIF->Value (i, pos, &value) == false) continue; sum = sum + value; num++; } outGridIF->Value (outLayerRec,pos,num > 0 ? sum / (DBFloat) num : outGridIF->MissingValue ()); } } outGridIF->RecalcStats (outLayerRec); } ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? outData->Write (argv [2]) : outData->Write (stdout); delete inGridIF; delete outGridIF; delete inData; delete outData; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBObjData *srcData, *dstData; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input grid> <output grid>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); srcData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? srcData->Read(argv[1]) : srcData->Read(stdin); if ((ret == DBFault) || (srcData->Type() != DBTypeGridContinuous)) { delete srcData; return (CMfailed); } if ((dstData = DBGridToGrid(srcData)) == (DBObjData *) NULL) { delete srcData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Cell Statistics"; if (subject == (char *) NULL) subject = srcData->Document(DBDocSubject); if (domain == (char *) NULL) domain = srcData->Document(DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; dstData->Name(title); dstData->Document(DBDocSubject, subject); dstData->Document(DBDocGeoDomain, domain); srcData->Document(DBDocVersion, version); if ((ret = RGlibGridCellStats(srcData, dstData)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? dstData->Write(argv[2]) : dstData->Write(stdout); delete srcData; delete dstData; if (verbose) RGlibPauseClose(); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt shadeSet = DBFault; char *gridName = (char *) NULL; char *relateName = (char *) NULL; char *joinName = (char *) NULL; char *varName = (char *) NULL; char *dateName = (char *) NULL; DBObjData *grdData, *tabData, *outData; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-g","--grid")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing grid!"); return (CMfailed); } gridName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-r","--relate")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing relate field!"); return (CMfailed); } relateName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-j","--join")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing join field!"); return (CMfailed); } joinName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-i","--variable")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing variable field!"); return (CMfailed); } varName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-a","--date")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing date field!"); return (CMfailed); } dateName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-t","--title")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-u","--subject")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--shadeset")) { int shadeCodes [] = { DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *shadeSets [] = { "standard","grey","blue","blue-to-red","elevation", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup (shadeSets,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes [shadeSet]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input table> <output grid>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -g,--grid [discrete grid coverage]"); CMmsgPrint (CMmsgInfo," -r,--relate [relate field]"); CMmsgPrint (CMmsgInfo," -j,--join [join field]"); CMmsgPrint (CMmsgInfo," -i,--variable [variable field]"); CMmsgPrint (CMmsgInfo," -a,--date [date field]"); CMmsgPrint (CMmsgInfo," -u,--subject [subject]"); CMmsgPrint (CMmsgInfo," -d,--domain [domain]"); CMmsgPrint (CMmsgInfo," -v,--version [version]"); CMmsgPrint (CMmsgInfo," -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); if (gridName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Discrete grid is mandatory"); return (CMfailed); } if (relateName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Relate field is mandatory"); return (CMfailed); } if (joinName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Join field is mandatory"); return (CMfailed); } if (varName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Variable field is mandatory"); return (CMfailed); } grdData = new DBObjData (); if ((grdData->Read (gridName) != DBSuccess) || (grdData->Type () != DBTypeGridDiscrete)) { delete grdData; CMmsgPrint (CMmsgUsrError,"Grid File Reading Error!"); return (CMfailed); } tabData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? tabData->Read (argv [1]) : tabData->Read (stdin); if ((ret == DBFault) || (tabData->Type () != DBTypeTable)) { delete grdData; delete tabData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Time Series"; if (subject == (char *) NULL) subject = tabData->Document (DBDocSubject); if (domain == (char *) NULL) domain = grdData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; if ((outData = DBGridToGrid (grdData,DBTypeGridContinuous)) == (DBObjData *) NULL) return (CMfailed); outData->Name (title); outData->Document (DBDocSubject,subject); outData->Document (DBDocGeoDomain,domain); outData->Document (DBDocVersion,version); if (shadeSet != DBFault) { outData->Flags (DBDataFlagDispModeContShadeSets,DBClear); outData->Flags (shadeSet,DBSet); } if ((ret = RGlibGridUniformGrid (grdData,tabData,relateName,joinName,varName,dateName,outData)) == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? outData->Write (argv [2]) : outData->Write (stdout); delete grdData; delete tabData; delete outData; if (verbose) RGlibPauseClose (); return (DBSuccess); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt stepNum = 0, offset = 0, doSum = false; DBObjData *tsData, *data; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--aggregate")) { int sumCodes [] = { false, true }; const char *sumStrs [] = { "avg", "sum", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing aggregation method!"); return (CMfailed); } if ((doSum = CMoptLookup (sumStrs,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid aggregation method!"); return (CMfailed); } doSum = sumCodes [doSum]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-o","--offset")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing offset!"); return (CMfailed); } if (sscanf (argv [argPos],"%d",&offset) != 1) { CMmsgPrint (CMmsgUsrError,"Invalid number of steps!"); return (CMfailed); } if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-e","--step")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing number of steps!"); return (CMfailed); } if (sscanf (argv [argPos],"%d",&stepNum) != 1) { CMmsgPrint (CMmsgUsrError,"Invalid number of steps!"); return (CMfailed); } if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-t","--title")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-u","--subject")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgSysError,"%s [options] <input grid> <output grid>",CMprgName(argv[0])); CMmsgPrint (CMmsgSysError," -a,--aggregate [avg|sum]"); CMmsgPrint (CMmsgSysError," -o,--offset [offset]"); CMmsgPrint (CMmsgSysError," -e,--step [number of steps]"); CMmsgPrint (CMmsgSysError," -t,--title [dataset title]"); CMmsgPrint (CMmsgSysError," -u,--subject [subject]"); CMmsgPrint (CMmsgSysError," -d,--domain [domain]"); CMmsgPrint (CMmsgSysError," -v,--version [version]"); CMmsgPrint (CMmsgSysError," -V,--verbose"); CMmsgPrint (CMmsgSysError," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); tsData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? tsData->Read (argv [1]) : tsData->Read (stdin); if ((ret == DBFault) || (tsData->Type () != DBTypeGridContinuous)) { delete tsData; return (CMfailed); } if (title == (char *) NULL) title = tsData->Name (); if (subject == (char *) NULL) subject = tsData->Document (DBDocSubject); if (domain == (char *) NULL) domain = tsData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = tsData->Document (DBDocVersion); data = DBGridToGrid (tsData); data->Name (title); data->Document (DBDocSubject,subject); data->Document (DBDocGeoDomain,domain); data->Document (DBDocVersion,version); if ((ret = RGlibSeasonMean (tsData, data, stepNum, offset, doSum)) == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete tsData; delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt doMin = true, reportValue = true; int shadeSet = DBDataFlagDispModeContGreyScale; bool changeShadeSet = false; DBObjData *tsData, *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-m", "--mode")) { int codes[] = {true, false}; const char *strs[] = {"min", "max", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing min-max method!"); return (CMfailed); } if ((doMin = CMoptLookup(strs, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid min-max method!"); return (CMfailed); } doMin = codes[doMin]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-r", "--report")) { int codes[] = {true, false}; const char *strs[] = {"value", "layer", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing report method!"); return (CMfailed); } if ((reportValue = CMoptLookup(strs, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid report method!"); return (CMfailed); } reportValue = codes[reportValue]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-s", "--shadeset")) { int shadeCodes[] = {DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *shadeSets[] = {"standard", "grey", "blue", "blue-to-red", "elevation", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup(shadeSets, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes[shadeSet]; changeShadeSet = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input grid> <output grid>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -m,--mode [min|max]"); CMmsgPrint(CMmsgInfo, " -r,--report [value|layer]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); tsData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? tsData->Read(argv[1]) : tsData->Read(stdin); if ((ret == DBFault) || (tsData->Type() != DBTypeGridContinuous)) { delete tsData; return (CMfailed); } if (title == (char *) NULL) title = tsData->Name(); if (subject == (char *) NULL) subject = tsData->Document(DBDocSubject); if (domain == (char *) NULL) domain = tsData->Document(DBDocGeoDomain); if (version == (char *) NULL) version = tsData->Document(DBDocVersion); data = reportValue ? DBGridToGrid(tsData, DBTypeGridContinuous, DBTableFieldFloat, sizeof(DBFloat)) : DBGridToGrid(tsData, DBTypeGridContinuous, DBTableFieldInt, sizeof(DBInt)); data->Name(title); data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); if (changeShadeSet && (data->Type() == DBTypeGridContinuous)) { data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); } if ((ret = RGlibMinMax(tsData, data, doMin,reportValue)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete tsData; delete data; if (verbose) RGlibPauseClose(); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt timeStep; DBInt aggregate = RGlibAggrAverage; int shadeSet = DBFault; DBObjData *tsData, *data; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--aggregate")) { const char *sumStrs [] = { "avg", "min", "max", "sum", (char *) NULL }; DBInt opts [] = { RGlibAggrAverage, RGlibAggrMinimum, RGlibAggrMaximum, RGlibAggrSum }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing aggregation method!"); return (CMfailed); } if ((ret = CMoptLookup (sumStrs,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid aggregation method!"); return (CMfailed); } aggregate = opts [ret]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-e","--step")) { int stepCodes [] = { DBTimeStepYear, DBTimeStepMonth, DBTimeStepDay, DBTimeStepHour }; const char *stepStrs [] = { "year", "month","day","hour", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing time step!"); return (CMfailed); } if ((timeStep = CMoptLookup (stepStrs,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid time step!"); return (CMfailed); } timeStep = stepCodes [timeStep]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-t","--title")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-u","--subject")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--shadeset")) { int shadeCodes [] = { DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *shadeSets [] = { "standard","grey", "blue","blue-to-red", "elevation", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing shadeset!"); return (CMfailed); } if ((shadeSet = CMoptLookup (shadeSets,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid shadeset!"); return (CMfailed); } shadeSet = shadeCodes [shadeSet]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input grid> <output grid>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -a,--aggregate [avg|max|min|sum]"); CMmsgPrint (CMmsgInfo," -e,--step [year|month|day|hour]"); CMmsgPrint (CMmsgInfo," -t,--title [dataset title]"); CMmsgPrint (CMmsgInfo," -u,--subject [subject]"); CMmsgPrint (CMmsgInfo," -d,--domain [domain]"); CMmsgPrint (CMmsgInfo," -v,--version [version]"); CMmsgPrint (CMmsgInfo," -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); tsData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? tsData->Read (argv [1]) : tsData->Read (stdin); if ((ret == DBFault) || (tsData->Type () != DBTypeGridContinuous)) { delete tsData; return (CMfailed); } if (title == (char *) NULL) title = tsData->Name (); if (subject == (char *) NULL) subject = tsData->Document (DBDocSubject); if (domain == (char *) NULL) domain = tsData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = tsData->Document (DBDocVersion); if (shadeSet == DBFault) shadeSet = DBDataFlagDispModeContGreyScale; data = DBGridToGrid (tsData); data->Name (title); data->Document (DBDocSubject,subject); data->Document (DBDocGeoDomain,domain); data->Document (DBDocVersion,version); data->Flags (DBDataFlagDispModeContShadeSets,DBClear); data->Flags (shadeSet,DBSet); if ((ret = RGlibTSAggregate (tsData, data, timeStep, aggregate)) == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete tsData; delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; char *tmplName = (char *) NULL; int mode = true; DBFloat factor = 1.0; DBObjData *data, *pntData, *tmplData; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-e", "--template")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing template coverage!"); return (CMfailed); } tmplName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--factor")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing factor!"); return (CMfailed); } if (sscanf(argv[argPos], "%lf", &factor) != 1) { CMmsgPrint(CMmsgUsrError, "Factor scanning error!"); return (CMfailed); } if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-m", "--mode")) { int modCodes[] = {true, false}; const char *values[] = {"dist", "ids", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing mode!"); return (CMfailed); } if ((mode = CMoptLookup(values, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid value!"); return (CMfailed); } mode = modCodes[mode]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-t", "--title")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing title!"); return (CMfailed); } title = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-u", "--subject")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing subject!"); return (CMfailed); } subject = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-d", "--domain")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing domain!"); return (CMfailed); } domain = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-v", "--version")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing version!"); return (CMfailed); } version = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-V", "--verbose")) { verbose = true; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-h", "--help")) { CMmsgPrint(CMmsgInfo, "%s [options] <input point> <output grid>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -e,--template [grid or network coverage]"); CMmsgPrint(CMmsgInfo, " -m,--mode [dist|ids]"); CMmsgPrint(CMmsgInfo, " -f,--factor [value]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -v,--version [version]"); CMmsgPrint(CMmsgInfo, " -V,--verbose"); CMmsgPrint(CMmsgInfo, " -h,--help"); return (DBSuccess); } if ((argv[argPos][0] == '-') && (strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (tmplName == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Template coverage is not specified"); return (CMfailed); } tmplData = new DBObjData(); if ((tmplData->Read(tmplName) == DBFault) || (tmplData->Type() == DBTypeVectorPoint) || (tmplData->Type() == DBTypeVectorLine) || (tmplData->Type() == DBTypeVectorPolygon) || (tmplData->Type() == DBTypeTable)) { delete tmplData; return (CMfailed); } pntData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? pntData->Read(argv[1]) : pntData->Read(stdin); if ((ret == DBFault) || (pntData->Type() != DBTypeVectorPoint)) { delete pntData, delete tmplData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Distance to Station"; if (subject == (char *) NULL) subject = pntData->Document(DBDocSubject); if (domain == (char *) NULL) domain = tmplData->Document(DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; if (tmplData->Type() == DBTypeNetwork) data = DBNetworkToGrid(tmplData, mode ? DBTypeGridContinuous : DBTypeGridDiscrete); else data = DBGridToGrid(tmplData, mode ? DBTypeGridContinuous : DBTypeGridDiscrete); delete tmplData; data->Name(title); data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); if ((ret = DBPointToGrid(pntData, data, factor)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); if (verbose) RGlibPauseClose(); delete pntData; delete data; return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBInt doMin = true; DBObjData *tsData, *data; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-m","--mode")) { int codes [] = { false, true }; const char *strs [] = { "min", "max", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing min-max method!"); return (CMfailed); } if ((doMin = CMoptLookup (strs,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid min-max method!"); return (CMfailed); } doMin = codes [doMin]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-t","--title")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-u","--subject")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-V","--verbose")) { verbose = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-h","--help")) { CMmsgPrint (CMmsgInfo,"%s [options] <input grid> <output grid>",CMfileName(argv[0])); CMmsgPrint (CMmsgInfo," -m,--mode [min|max]"); CMmsgPrint (CMmsgInfo," -t,--title [dataset title]"); CMmsgPrint (CMmsgInfo," -u,--subject [subject]"); CMmsgPrint (CMmsgInfo," -d,--domain [domain]"); CMmsgPrint (CMmsgInfo," -v,--version [version]"); CMmsgPrint (CMmsgInfo," -V,--verbose"); CMmsgPrint (CMmsgInfo," -h,--help"); return (DBSuccess); } if ((argv [argPos][0] == '-') && (strlen (argv [argPos]) > 1)) { CMmsgPrint (CMmsgUsrError,"Unknown option: %s!",argv [argPos]); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } if (verbose) RGlibPauseOpen (argv[0]); tsData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? tsData->Read (argv [1]) : tsData->Read (stdin); if ((ret == DBFault) || (tsData->Type () != DBTypeGridContinuous)) { delete tsData; return (CMfailed); } if (title == (char *) NULL) title = tsData->Name (); if (subject == (char *) NULL) subject = tsData->Document (DBDocSubject); if (domain == (char *) NULL) domain = tsData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = tsData->Document (DBDocVersion); data = DBGridToGrid (tsData,DBTypeGridContinuous,DBTableFieldInt,sizeof(DBInt)); data->Name (title); data->Document (DBDocSubject,subject); data->Document (DBDocGeoDomain,domain); data->Document (DBDocVersion,version); if ((ret = RGlibMinMax (tsData, data, doMin == 0 ? true : false)) == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete tsData; delete data; if (verbose) RGlibPauseClose (); return (ret); }