void RGISAnNetworkToGridCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBInt dataType; DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjTable *cellTable = netData->Table (DBrNCells); DBObjTableField *field; DBObjData *grdData; static Widget select = NULL; if (select == NULL) select = UISelectionCreate ((char *) "Field Selection"); selection = UISelectObject (select,(DBObjectLIST<DBObject> *) (cellTable->Fields ()),DBTableFieldIsSimple); if (selection == (char *) NULL) return; if ((field = cellTable->Field (selection)) == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgAppError,"Corrupt Network Dataset in: %s %d",__FILE__,__LINE__); return; } if (DBTableFieldIsCategory (field) && DBTableFieldIsNumeric (field)) { DBObjData *tmpData; tmpData = new DBObjData ("",DBTypeGrid); tmpData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); tmpData->Document (DBDocSubject,field->Name ()); if (UIDataHeaderForm (tmpData)) { grdData = DBNetworkToGrid (netData,tmpData->Type ()); grdData->Name (tmpData->Name ()); grdData->Document (DBDocGeoDomain,tmpData->Document (DBDocGeoDomain)); grdData->Document (DBDocSubject,tmpData->Document (DBDocSubject)); grdData->Document (DBDocVersion,tmpData->Document (DBDocVersion)); grdData->Document (DBDocCitationRef,tmpData->Document (DBDocCitationRef)); grdData->Document (DBDocCitationInst,tmpData->Document (DBDocCitationInst)); grdData->Document (DBDocSourceInst,tmpData->Document (DBDocSourceInst)); grdData->Document (DBDocSourcePerson,tmpData->Document (DBDocSourcePerson)); grdData->Document (DBDocOwnerPerson,tmpData->Document (DBDocOwnerPerson)); grdData->Document (DBDocComment,tmpData->Document (DBDocComment)); delete tmpData; } else { return; } } else { if (DBTableFieldIsCategory (field)) dataType = DBTypeGridDiscrete; else if (DBTableFieldIsNumeric (field)) dataType = DBTypeGridContinuous; else { CMmsgPrint (CMmsgAppError,"Invalid field type in: %s %d",__FILE__,__LINE__); return; } grdData = DBNetworkToGrid (netData,dataType); if (UIDataHeaderForm (grdData) == false) { delete grdData; return; } } UIPauseDialogOpen ((char *) "Converting Network to Grid"); if (RGlibNetworkToGrid (netData,field,grdData) == DBSuccess) workspace->CurrentData (grdData); else delete grdData; UIPauseDialogClose (); }
void RGISAnNetworkCellSlopesCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *inGridData, *outGridData; widget = widget; callData = callData; if ((inGridData = netData->LinkedData ()) == (DBObjData *) NULL) { CMmsgPrint (CMmsgAppError,"Null Linked Data in: %s %d",__FILE__,__LINE__); return; } outGridData = DBNetworkToGrid (netData,DBTypeGridContinuous); outGridData->Document (DBDocGeoDomain,inGridData->Document (DBDocGeoDomain)); outGridData->Document (DBDocSubject,"Slope"); if (UIDataHeaderForm (outGridData)) { UIPauseDialogOpen ((char *) "Calculating Slopes"); if (RGlibNetworkCellSlopes (netData,inGridData,outGridData) == DBSuccess) workspace->CurrentData (outGridData); else delete outGridData; UIPauseDialogClose (); } else delete outGridData; }
void RGISAnalysePointSubbasinCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *pntData = dataset->Data (); DBObjData *netData = pntData->LinkedData (); DBObjData *grdData = DBNetworkToGrid (netData,DBTypeGridDiscrete); grdData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); grdData->Document (DBDocSubject,"Subbasins"); if (UIDataHeaderForm (grdData)) { UIPauseDialogOpen ((char *) "Creating Subbasin Grid"); if (DBPointToGrid (pntData,netData,grdData) == DBFault) delete grdData; else workspace->CurrentData (grdData); UIPauseDialogClose (); } else delete grdData; }
void RGISAnNetworkBasinGridCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *grdData; grdData = DBNetworkToGrid (netData,DBTypeGridDiscrete); grdData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); grdData->Document (DBDocSubject,netData->Document (DBDocSubject)); if (UIDataHeaderForm (grdData)) { UIPauseDialogOpen ((char *) "Converting Network to Basin Grid"); if (RGlibNetworkBasinGrid (netData,grdData) == DBSuccess) workspace->CurrentData (grdData); else delete grdData; UIPauseDialogClose (); } else delete grdData; }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; float coeff; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; char *netName = (char *) NULL, *weightName = (char *) NULL; DBInt shadeSet = DBFault, areaMult = true, coeffSet = false; DBObjData *data, *netData, *weightData, *grdData; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-n", "--network")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing network!"); return (CMfailed); } netName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-w", "--weight")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing weight grid!"); return (CMfailed); } weightName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-m", "--mode")) { int modeCodes[] = {true, false}; const char *modes[] = {"rate", "volume", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing accumulation mode!"); return (CMfailed); } if ((areaMult = CMoptLookup(modes, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid accumulation mode!"); return (CMfailed); } areaMult = modeCodes[areaMult]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-f", "--coefficient")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing coefficient!"); return (CMfailed); } if (sscanf(argv[argPos], "%f", &coeff) != 1) { CMmsgPrint(CMmsgUsrError, "Invalid coefficient"); return (CMfailed); } coeffSet = true; 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, " -n,--network [network coverage]"); CMmsgPrint(CMmsgInfo, " -w,--weight [weight grid]"); CMmsgPrint(CMmsgInfo, " -f,--coefficient [coefficient]"); CMmsgPrint(CMmsgInfo, " -m,--mode [rate|volume]"); 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 (netName == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Network is not specified"); return (CMfailed); } netData = new DBObjData(); if ((netData->Read(netName) == DBFault) || (netData->Type() != DBTypeNetwork)) { delete netData; return (CMfailed); } if (weightName != (char *) NULL) { weightData = new DBObjData(); if (weightData->Read(weightName) == DBFault) { delete netData; return (CMfailed); } } else weightData = (DBObjData *) NULL; grdData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? grdData->Read(argv[1]) : grdData->Read(stdin); if ((ret == DBFault) || (grdData->Type() != DBTypeGridContinuous)) { delete netData; delete grdData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Accumulated Grid"; if (subject == (char *) NULL) subject = grdData->Document(DBDocSubject); if (domain == (char *) NULL) domain = netData->Document(DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; data = DBNetworkToGrid(netData, DBTypeGridContinuous); data->Name(title); data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); if (shadeSet != DBFault) { data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); } if (coeffSet == false) coeff = areaMult ? 0.000001 : 1.0; ret = _CMDnetErosion(netData, grdData, weightData, data, coeff, areaMult); if (ret == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; delete netData; delete grdData; 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 *networkName = (char *) NULL; DBInt shadeSet = DBDataFlagDispModeContGreyScale; DBObjData *data, *netData, *grdData; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-n", "--network")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing network!"); return (CMfailed); } networkName = 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 codes[] = {DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation}; const char *options[] = {"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(options, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid shadeset!"); return (CMfailed); } shadeSet = codes[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, " -n,--network [network coverage]"); CMmsgPrint(CMmsgInfo, " -t,--title [dataset title]"); CMmsgPrint(CMmsgInfo, " -u,--subject [subject]"); CMmsgPrint(CMmsgInfo, " -d,--domain [domain]"); CMmsgPrint(CMmsgInfo, " -s,--shadeset [standard|grey|blue|blue-to-red|elevation]"); 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 (networkName == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Network is not specified"); return (CMfailed); } netData = new DBObjData(); if ((netData->Read(networkName) == DBFault) || (netData->Type() != DBTypeNetwork)) { delete netData; return (CMfailed); } grdData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? grdData->Read(argv[1]) : grdData->Read(stdin); if ((ret == DBFault) || (grdData->Type() != DBTypeGridContinuous)) { delete netData; delete grdData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Cell Slopes"; if (subject == (char *) NULL) subject = grdData->Document(DBDocSubject); if (domain == (char *) NULL) domain = (char *) netData->Document(DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; data = DBNetworkToGrid(netData, DBTypeGridContinuous); data->Name(title); data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); grdData->Flags(DBDataFlagDispModeContShadeSets, DBClear); grdData->Flags(shadeSet, DBSet); if ((ret = RGlibNetworkCellSlopes(netData, grdData, data)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; delete netData; delete grdData; 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; char *fieldName = (char *) NULL; DBInt shadeSet = DBFault; DBInt gridType = DBTypeGridContinuous; DBObjData *netData, *grdData; DBObjTable *cellTable; DBObjTableField *field; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-f","--fieldname")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing discharge field!"); return (CMfailed); } fieldName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-g","--gridtype")) { int codes [] = { DBTypeGridContinuous, DBTypeGridDiscrete }; const char *options [] = { "continuous", "discrete", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError, "Missing correcition mode!"); return (CMfailed); } if ((gridType = CMoptLookup (options, argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError, "Invalid correction mode!"); return (CMfailed); } gridType = codes [gridType]; 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 ((gridType == DBTypeGridContinuous) && CMargTest (argv [argPos],"-s","--shadeset")) { int codes [] = { DBDataFlagDispModeContStandard, DBDataFlagDispModeContGreyScale, DBDataFlagDispModeContBlueScale, DBDataFlagDispModeContBlueRed, DBDataFlagDispModeContElevation }; const char *options [] = { "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 (options,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid shadeset!"); return (CMfailed); } shadeSet = codes [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 network> <output grid>",CMprgName(argv[0])); CMmsgPrint (CMmsgInfo," -f,--fieldname [field name]"); CMmsgPrint (CMmsgInfo," -g,--gridtype [continuous|discrete]"); 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 (fieldName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Missing field name!"); return (CMfailed); } if ((gridType == DBTypeGridDiscrete) && (shadeSet != DBFault)) { shadeSet = DBFault; CMmsgPrint (CMmsgUsrError,"Ignoring shadeset for discrete grid!"); } netData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? netData->Read (argv [1]) : netData->Read (stdin); if ((ret == DBFault) || (netData->Type () != DBTypeNetwork)) { CMmsgPrint (CMmsgUsrError,"Non-network coverage!"); delete netData; return (CMfailed); } cellTable = netData->Table (DBrNCells); if ((field = cellTable->Field (fieldName)) == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgUsrError,"Non-existing field [%s]!",fieldName); delete netData; return (CMfailed); } if ((gridType == DBTypeGridDiscrete) && !DBTableFieldIsCategory (field)) { CMmsgPrint (CMmsgUsrError,"Non-category field"); delete netData; return (CMfailed); } else if (!DBTableFieldIsNumeric (field)) { CMmsgPrint (CMmsgUsrError,"Non-numeric field"); delete netData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Converted Grid"; if (subject == (char *) NULL) subject = (char *) "fieldName"; if (domain == (char *) NULL) domain = netData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; grdData = DBNetworkToGrid (netData,gridType); grdData->Name (title); grdData->Document (DBDocSubject,subject); grdData->Document (DBDocGeoDomain,domain); grdData->Document (DBDocVersion,version); if (shadeSet != DBFault) { grdData->Flags (DBDataFlagDispModeContShadeSets,DBClear); grdData->Flags (shadeSet,DBSet); } if ((ret = RGlibNetworkToGrid (netData,field,grdData)) == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? grdData->Write (argv [2]) : grdData->Write (stdout); delete netData; delete grdData; 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 *networkName = (char *) NULL; DBObjData *data, *pntData, *netData; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-n","--network")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing network coverage!"); return (CMfailed); } networkName = 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],"-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>",CMprgName(argv[0])); CMmsgPrint (CMmsgInfo," -n,--network [network coverage]"); 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 (networkName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Network coverage is not specified"); return (CMfailed); } netData = new DBObjData (); if ((netData->Read (networkName) == DBFault) || (netData->Type () != DBTypeNetwork)) { delete netData; 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 netData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Subbasin Grid"; if (subject == (char *) NULL) subject = pntData->Document (DBDocSubject); if (domain == (char *) NULL) domain = netData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; data = DBNetworkToGrid (netData,DBTypeGridDiscrete); data->Name (title); data->Document (DBDocSubject,subject); data->Document (DBDocGeoDomain, domain); data->Document (DBDocVersion, version); if ((ret = DBPointToGrid (pntData,netData,data)) == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete netData; delete pntData; delete data; if (verbose) RGlibPauseClose (); return (ret); }
int main (int argc,char *argv []) { int argPos, argNum = argc, ret, verbose = false; float coeff = 0.000001; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; char *netName = (char *) NULL, *stnName = (char *) NULL; char *tsName = (char *) NULL; char *fields [5] = { (char *) NULL, (char *) NULL, (char *) NULL, (char *) NULL, (char *) NULL }; DBInt shadeSet = DBFault; bool areaMult = true, correction = false, allowNegative = true; DBObjData *data, *netData, *grdData, *stnData = (DBObjData *) NULL, *tsData = (DBObjData *) NULL; for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-n","--network")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing network!"); return (CMfailed); } netName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-a","--stations")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing monitoring stations!"); return (CMfailed); } stnName = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-i","--timeseries")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing time series!"); return (CMfailed); } tsName = 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); } fields [0] = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-x","--nextstation")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing next station field!"); return (CMfailed); } fields [1] = 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); } fields [2] = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-e","--date")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing date field!"); return (CMfailed); } fields [3] = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-g","--discharge")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing discharge field!"); return (CMfailed); } fields [4] = argv [argPos]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-c","--correction")) { int corCodes [] = { true, false }; const char *corModes [] = { "on", "off", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing correcition mode!"); return (CMfailed); } if ((correction = CMoptLookup (corModes,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid correction mode!"); return (CMfailed); } correction = corCodes [correction]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-m","--mode")) { int modeCodes [] = { true, false }; const char *modes [] = { "rate", "volume", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing accumulation mode!"); return (CMfailed); } if ((areaMult = CMoptLookup (modes,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid accumulation mode!"); return (CMfailed); } areaMult = modeCodes [areaMult]; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-f","--coefficient")) { if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing coefficient!"); return (CMfailed); } if (sscanf (argv [argPos],"%f",&coeff) != 1) { CMmsgPrint (CMmsgUsrError,"Invalid coefficient"); return (CMfailed); } if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-l","--negative")) { int negCodes [] = { true, false }; const char *modes [] = { "allow", "eliminate", (char *) NULL }; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing negative mode!"); return (CMfailed); } if ((allowNegative = CMoptLookup (modes,argv [argPos],true)) == DBFault) { CMmsgPrint (CMmsgUsrError,"Invalid negative mode!"); return (CMfailed); } allowNegative = negCodes [allowNegative]; 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>",CMprgName(argv[0])); CMmsgPrint (CMmsgInfo," -n,--network [network coverage]"); CMmsgPrint (CMmsgInfo," -a,--stations [station coverage]"); CMmsgPrint (CMmsgInfo," -i,--timeseries [time series data]"); CMmsgPrint (CMmsgInfo," -r,--relate [relate field]"); CMmsgPrint (CMmsgInfo," -j,--join [join field]"); CMmsgPrint (CMmsgInfo," -e,--date [date field]"); CMmsgPrint (CMmsgInfo," -x,--nextstation [next station field]"); CMmsgPrint (CMmsgInfo," -g,--discharge [discharge field]"); CMmsgPrint (CMmsgInfo," -c,--correction [on|off (default is off)]"); CMmsgPrint (CMmsgInfo," -m,--mode [rate|volume]"); CMmsgPrint (CMmsgInfo," -f,--coefficient [conversion coefficient]"); CMmsgPrint (CMmsgInfo," -l,--negative [allow|eliminate]"); 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 (netName == (char *) NULL) { CMmsgPrint (CMmsgUsrError,"Network is not specified"); return (CMfailed); } if ((stnName == (char *) NULL) && (tsName != (char *) NULL)) { CMmsgPrint (CMmsgUsrError,"Missing station coverage!"); return (CMfailed); } if ((stnName != (char *) NULL) && (tsName == (char *) NULL)) { CMmsgPrint (CMmsgUsrError,"Missing time series data!"); return (CMfailed); } netData = new DBObjData (); if ((netData->Read (netName) == DBFault) || (netData->Type () != DBTypeNetwork)) { delete netData; return (CMfailed); } if (stnName != (char *) NULL) { stnData = new DBObjData (); if (stnData->Read (stnName) == DBFault) { delete netData; delete stnData; return (CMfailed); } } if (tsName != (char *) NULL) { tsData = new DBObjData (); if (tsData->Read (tsName) == DBFault) { delete netData; delete stnData; delete tsData; return (CMfailed); } } grdData = new DBObjData (); ret = (argNum > 1) && (strcmp (argv [1],"-") != 0) ? grdData->Read (argv [1]) : grdData->Read (stdin); if ((ret == DBFault) || (grdData->Type () != DBTypeGridContinuous)) { delete netData; delete grdData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Accumulated Grid"; if (subject == (char *) NULL) subject = grdData->Document (DBDocSubject); if (domain == (char *) NULL) domain = netData->Document (DBDocGeoDomain); if (version == (char *) NULL) version = (char *) "0.01pre"; data = DBNetworkToGrid (netData,DBTypeGridContinuous); data->Name (title); data->Document (DBDocSubject,subject); data->Document (DBDocGeoDomain,domain); data->Document (DBDocVersion,version); if (shadeSet != DBFault) { data->Flags (DBDataFlagDispModeContShadeSets,DBClear); data->Flags (shadeSet,DBSet); } ret = RGlibNetworkAccumulate (netData,grdData,stnData,tsData, fields,(DBFloat) coeff, areaMult, correction, allowNegative,data); if (ret == DBSuccess) ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? data->Write (argv [2]) : data->Write (stdout); delete data; delete netData; delete grdData; if (verbose) RGlibPauseClose (); return (ret); }