void RGISAnalysePointSubbasinHistCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBDataset *dataset = UIDataset (); DBObjData *pntData = dataset->Data (); DBObjData *grdData = pntData->LinkedData (); DBObjData *netData; DBObjData *tblData; static Widget selectWidget = (Widget) NULL; if (selectWidget == (Widget) NULL) selectWidget = UISelectionCreate ((char *) "Select Network"); if ((selection = UISelectObject (selectWidget,(DBObjectLIST<DBObject> *) dataset->DataList (),_RGISAnalyseTestNetwork)) == (char *) NULL) return; if ((netData = dataset->Data (selection)) == (DBObjData *) NULL) { return; } tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,pntData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,"Subbasin Histogram"); if (UIDataHeaderForm (tblData)) { UIPauseDialogOpen ((char *) "Calculating Histogram"); if (RGlibPointSubbasinHist (pntData,netData,grdData,tblData) == DBSuccess) workspace->CurrentData (tblData); else delete tblData; UIPauseDialogClose (); } else delete tblData; }
void RGISAnNetworkBasinProfCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *gridData, *tblData; widget = widget; callData = callData; if ((gridData = netData->LinkedData ()) == (DBObjData *) NULL) { CMmsgPrint (CMmsgAppError, "Null Linked Data in: %s %d",__FILE__,__LINE__); return; } tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,"Basin Profiles"); if (UIDataHeaderForm (tblData)) { UIPauseDialogOpen ((char *) "Creating Basin Profiles"); if (RGlibNetworkBasinProf (netData,gridData,tblData) == DBSuccess) workspace->CurrentData (tblData); else delete tblData; UIPauseDialogClose (); } else delete tblData; }
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 RGISAnNetworkHistogramCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *grdData = netData->LinkedData (); DBObjData *tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,"Elevation Distribution"); if (UIDataHeaderForm (tblData)) { UIPauseDialogOpen ((char *) "Calculating Histogram"); if (RGlibNetworkHistogram (netData,grdData,tblData) == DBSuccess) workspace->CurrentData (tblData); else delete tblData; UIPauseDialogClose (); } else delete tblData; }
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; }
static void _RGISToolsImportASCIINetCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBObjData *data = new DBObjData ("",DBTypeNetwork); static Widget fileSelect = NULL; widget = widget; callData = callData; if (fileSelect == NULL) fileSelect = UIFileSelectionCreate ((char *) "GHAAS Data Import",NULL,(char *) "*",XmFILE_REGULAR); data->Document (DBDocSubject,"STNetwork"); if (UIDataHeaderForm (data)) { char *fileName; if ((fileName = UIFileSelection (fileSelect,true)) == NULL) { delete data; return; } UIPauseDialogOpen ((char *) "Importing Networks"); if (DBImportASCIINet (data,fileName) == DBFault) delete data; else workspace->CurrentData (data); UIPauseDialogClose (); } else delete data; }
DBObjData *DBNetworkToGrid(DBObjData *netData, DBInt type) { DBPosition pos; DBObjData *grdData = new DBObjData("", type); DBObjRecord *layerRec, *dataRec; DBObjTable *layerTable = grdData->Table(DBrNLayers); DBObjTable *itemTable = grdData->Table(DBrNItems); DBObjTableField *rowNumFLD = layerTable->Field(DBrNRowNum); DBObjTableField *colNumFLD = layerTable->Field(DBrNColNum); DBObjTableField *cellWidthFLD = layerTable->Field(DBrNCellWidth); DBObjTableField *cellHeightFLD = layerTable->Field(DBrNCellHeight); DBObjTableField *valueTypeFLD = layerTable->Field(DBrNValueType); DBObjTableField *valueSizeFLD = layerTable->Field(DBrNValueSize); DBObjTableField *layerFLD = layerTable->Field(DBrNLayer); DBNetworkIF *netIF; DBGridIF *gridIF; grdData->Projection(netData->Projection()); grdData->Precision(netData->Precision()); grdData->MaxScale(netData->MaxScale()); grdData->MinScale(netData->MinScale()); grdData->Extent(netData->Extent()); grdData->Document(DBDocGeoDomain, netData->Document(DBDocGeoDomain)); netIF = new DBNetworkIF(netData); layerTable->Add("FirstLayer"); if ((layerRec = layerTable->Item()) == (DBObjRecord *) NULL) { delete netIF; return ((DBObjData *) NULL); } rowNumFLD->Int(layerRec, netIF->RowNum()); colNumFLD->Int(layerRec, netIF->ColNum()); cellWidthFLD->Float(layerRec, netIF->CellWidth()); cellHeightFLD->Float(layerRec, netIF->CellHeight()); switch (type) { case DBTypeGridContinuous: valueTypeFLD->Int(layerRec, DBTableFieldFloat); valueSizeFLD->Int(layerRec, sizeof(DBFloat)); break; case DBTypeGridDiscrete: valueTypeFLD->Int(layerRec, DBTableFieldInt); valueSizeFLD->Int(layerRec, sizeof(DBInt)); break; default: CMmsgPrint(CMmsgAppError, "Invalid Data Type in: %s %d", __FILE__, __LINE__); delete grdData; delete netIF; return ((DBObjData *) NULL); } if ((dataRec = new DBObjRecord(layerRec->Name(), ((size_t) netIF->ColNum()) * netIF->RowNum() * valueSizeFLD->Int(layerRec), valueSizeFLD->Int(layerRec))) == (DBObjRecord *) NULL) { delete netIF; return ((DBObjData *) NULL); } (grdData->Arrays())->Add(dataRec); layerFLD->Record(layerRec, dataRec); gridIF = new DBGridIF(grdData); if (type == DBTypeGridContinuous) { itemTable->Add(layerRec->Name()); DBObjTableField *missingValueFLD = itemTable->Field(DBrNMissingValue); missingValueFLD->Float(itemTable->Item(layerRec->Name()), DBDefaultMissingFloatVal); for (pos.Row = 0; pos.Row < netIF->RowNum(); pos.Row++) for (pos.Col = 0; pos.Col < netIF->ColNum(); pos.Col++) gridIF->Value(layerRec, pos, DBDefaultMissingFloatVal); } else { DBObjTable *symbolTable = grdData->Table(DBrNSymbols); DBObjTableField *foregroundFLD = symbolTable->Field(DBrNForeground); DBObjTableField *backgroundFLD = symbolTable->Field(DBrNBackground); DBObjTableField *styleFLD = symbolTable->Field(DBrNStyle); DBObjRecord *symbolRec = symbolTable->Add("Default Symbol"); foregroundFLD->Int(symbolRec, 1); backgroundFLD->Int(symbolRec, 0); styleFLD->Int(symbolRec, 0); for (pos.Row = 0; pos.Row < netIF->RowNum(); pos.Row++) for (pos.Col = 0; pos.Col < netIF->ColNum(); pos.Col++) gridIF->Value(layerRec, pos, 0); } delete netIF; delete gridIF; return (grdData); }
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; DBObjData *grdData; 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],"-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 netcdf> <output data>",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," -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 < 2) { CMmsgPrint (CMmsgUsrError,"Missing input file"); return (CMfailed); } if (argNum > 3) { CMmsgPrint (CMmsgUsrError,"Extra arguments!"); return (CMfailed); } grdData = new DBObjData ("Noname",DBTypeGridContinuous); ret = DBImportNetCDF (grdData,argv[1]); if (title != (char *) NULL) grdData->Name (title); if (subject != (char *) NULL) grdData->Document (DBDocSubject,subject); if (domain != (char *) NULL) grdData->Document (DBDocGeoDomain,domain); if (version != (char *) NULL) grdData->Document (DBDocVersion,version); if (shadeSet != DBFault) { grdData->Flags (DBDataFlagDispModeContShadeSets,DBClear); grdData->Flags (shadeSet,DBSet); } ret = (argNum > 2) && (strcmp (argv [2],"-") != 0) ? grdData->Write (argv [2]) : grdData->Write (stdout); delete grdData; return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, fieldNum = 0, verbose = false; char *tableName = (char *) NULL; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; DBObjData *data; DBObjectLIST<DBObjTableField> *fieldList; DBObjTable *table; DBObjTableField *fieldPTR; CMDtblSortField *fields = (CMDtblSortField *) NULL; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--table")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing table name!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } tableName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-A", "--ascending")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing sort field!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } if ((fields = (CMDtblSortField *) realloc(fields, (fieldNum + 1) * sizeof(CMDtblSortField))) == (CMDtblSortField *) NULL) { CMmsgPrint(CMmsgSysError, "Memory reallocation error in: %s, %n", __FILE__, __LINE__); return (CMfailed); } fields[fieldNum].FieldName(argv[argPos]); fields[fieldNum].Ascending(true); fieldNum++; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-D", "--descending")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing selection mode!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } if ((fields = (CMDtblSortField *) realloc(fields, (fieldNum + 1) * sizeof(CMDtblSortField))) == (CMDtblSortField *) NULL) { CMmsgPrint(CMmsgSysError, "Memory reallocation error in: %s, %n", __FILE__, __LINE__); return (CMfailed); } fields[fieldNum].FieldName(argv[argPos]); fields[fieldNum].Ascending(false); fieldNum++; 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 file> <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -a,--table [ table name ]"); CMmsgPrint(CMmsgInfo, " -A,--ascending [ fieldname ]"); CMmsgPrint(CMmsgInfo, " -D,--descending [ fieldname ]"); 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"); if (fields != (CMDtblSortField *) NULL) free(fields); return (DBSuccess); } if ((argv[argPos][0] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } argPos++; } if (argNum > 3) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); if (fields != (CMDtblSortField *) NULL) free(fields); return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); data = new DBObjData(); if (((argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin)) == DBFault) { if (fields != (CMDtblSortField *) NULL)free(fields); delete data; return (CMfailed); } if (title != (char *) NULL) data->Name(title); if (subject != (char *) NULL) data->Document(DBDocSubject, subject); if (domain != (char *) NULL) data->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) data->Document(DBDocVersion, version); if (tableName == (char *) NULL) tableName = DBrNItems; if ((table = data->Table(tableName)) == (DBObjTable *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid table!"); if (fields != (CMDtblSortField *) NULL) free(fields); delete data; return (CMfailed); } if (fields != (CMDtblSortField *) NULL) { DBInt fieldID; fieldList = new DBObjectLIST<DBObjTableField>("Fields"); for (fieldID = 0; fieldID < fieldNum; ++fieldID) { if ((fieldPTR = table->Field(fields[fieldID].FieldName())) == (DBObjTableField *) NULL) { CMmsgPrint(CMmsgUsrError, "Invalid field: %s!", fields[fieldID].FieldName()); free(fields); return (CMfailed); } if (fields[fieldID].Ascending()) fieldPTR->Flags(DBObjectFlagSortReversed, DBClear); else fieldPTR->Flags(DBObjectFlagSortReversed, DBSet); fieldList->Add(new DBObjTableField(*fieldPTR)); } table->ListSort(fieldList); table->ItemSort(); delete fieldList; free(fields); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); 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 shadeSet = DBFault; DBInt gridType = DBFault; DBObjData *data; 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], "-y", "--type")) { int typeCodes[] = {DBTypeGridContinuous, DBTypeGridDiscrete}; const char *types[] = {"continuous", "discrete", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing gridtype!"); return (CMfailed); } if ((gridType = CMoptLookup(types, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid grid type!"); return (CMfailed); } gridType = typeCodes[gridType]; 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] <dm file> <rgis file>", 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, " -y,--type [continuous|discrete]"); 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 (title == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Title is not set!"); return (CMfailed); } if (subject == (char *) NULL) subject = (char *) "Default Subject"; if (domain == (char *) NULL) domain = (char *) "Default Domain"; if (version == (char *) NULL) version = (char *) "0.01pre"; if (gridType == DBFault) gridType = DBTypeGridContinuous; data = new DBObjData(title, gridType); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? DBImportDMGrid(data, argv[1]) : DBImportDMGrid(data, stdin); if (ret == DBFault) { delete data; return (DBFault); } data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); if (shadeSet != DBFault) { data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); } ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); delete data; if (verbose) RGlibPauseClose(); return (ret); }
void RGISAnNetworkStationsCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *areaText, *toleranceText; DBFloat area, tolerance; DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); static int proc; static Widget dShell = (Widget) NULL, areaField, toleranceField; if (dShell == (Widget) NULL) { Widget mainForm, label; XmString string; dShell = UIDialogForm ((char *) "Network Stations"); mainForm = UIDialogFormGetMainForm (dShell); areaField = XtVaCreateManagedWidget ("RGISAnNetworkStationsAreaTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNmaxLength, DBStringLength / 2, XmNcolumns, DBStringLength / 2, NULL); string = XmStringCreate ((char *) "Subbasin Area [km2]:",UICharSetBold); label = XtVaCreateManagedWidget ("RGISAnNetworkStationsAreaLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, areaField, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, areaField, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, areaField, XmNlabelString, string, XmNmarginWidth, 5, NULL); XmStringFree (string); toleranceField = XtVaCreateManagedWidget ("RGISAnNetworkStationsToleranceTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, areaField, XmNtopOffset, 5, XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET, XmNleftWidget, areaField, XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET, XmNrightWidget, areaField, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, 10, XmNmaxLength, DBStringLength / 2, XmNcolumns, DBStringLength / 2, NULL); string = XmStringCreate ((char *) "Tolerance [%]:",UICharSetBold); label = XtVaCreateManagedWidget ("RGISAnNetworkStationsToleranceLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, toleranceField, XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET, XmNleftWidget, label, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, toleranceField, XmNlabelString, string, XmNmarginWidth, 5, NULL); XmStringFree (string); XtAddCallback (UIDialogFormGetOkButton (dShell),XmNactivateCallback,(XtCallbackProc) UIAuxSetBooleanTrueCBK,&proc); XtAddCallback (UIDialogFormGetCancelButton (dShell),XmNactivateCallback,(XtCallbackProc) UIAuxSetBooleanFalseCBK,&proc); } proc = false; UIDialogFormPopup (dShell); while (UILoop ()) { areaText = XmTextFieldGetString (areaField); toleranceText = XmTextFieldGetString (toleranceField); if ((strlen (areaText) > 0) && (sscanf (areaText,"%lf",&area) == 1) && (strlen (toleranceText) > 0) && (sscanf (toleranceText,"%lf",&tolerance) == 1)) XtSetSensitive (UIDialogFormGetOkButton (dShell),true); else XtSetSensitive (UIDialogFormGetOkButton (dShell),false); XtFree (areaText); XtFree (toleranceText); } UIDialogFormPopdown (dShell); if (proc) { DBObjData *pntData; pntData = new DBObjData ("",DBTypeVectorPoint); pntData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); pntData->Document (DBDocSubject,GHAASSubjStations); if (UIDataHeaderForm (pntData)) { UIPauseDialogOpen ((char *) "Creating Stations"); if (RGlibNetworkStations (netData,area,tolerance,pntData) == DBSuccess) { workspace->CurrentData (pntData); UI2DViewRedrawAll (); } else delete pntData; UIPauseDialogClose (); } else delete pntData; } }
void RGISToolsConvertToPointCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *nText, *xText, *yText, *selection; int allowOk; static int convert; DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBObjTable *itemTable; static Widget tableSelect = (Widget) NULL; static Widget dShell = (Widget) NULL, mainForm; static Widget nameTextF, xCoordTextF, yCoordTextF; XmString string; if (tableSelect == (Widget) NULL) tableSelect = UISelectionCreate ((char *) "Table Selection"); selection = UISelectObject (tableSelect,(DBObjectLIST<DBObject> *) dbData->Tables ()); if (selection == (char *) NULL) return; if ((itemTable = dbData->Table (selection)) == (DBObjTable *) NULL) { CMmsgPrint (CMmsgAppError, "Invalid Table in: %s %d",__FILE__,__LINE__); return; } _RGISToolsConvertToPointFields = itemTable->Fields (); if (dShell == (Widget) NULL) { Widget button; dShell = UIDialogForm ((char *) "Convert Table To Point",false); mainForm = UIDialogFormGetMainForm (dShell); string = XmStringCreate ((char *) "Select",UICharSetBold); button = XtVaCreateManagedWidget ("RGISToolsConvertToPointNameButton",xmPushButtonWidgetClass,mainForm, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNmarginHeight, 5, XmNtraversalOn, False, XmNlabelString, string, XmNuserData, DBTableFieldIsString, NULL); XmStringFree (string); nameTextF = XtVaCreateManagedWidget ("RGISToolsConvertToPointNameTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, button, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNmaxLength, DBStringLength, XmNcolumns, DBStringLength / 2, NULL); XtAddCallback (button,XmNactivateCallback,(XtCallbackProc) _RGISToolsConvertToPointSelectCBK,nameTextF); string = XmStringCreate ((char *) "Name Field:",UICharSetBold); XtVaCreateManagedWidget ("RGISToolsConvertToPointNameLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, nameTextF, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNlabelString, string, NULL); XmStringFree (string); string = XmStringCreate ((char *) "Select",UICharSetBold); button = XtVaCreateManagedWidget ("RGISToolsConvertToPointXCoordButton",xmPushButtonWidgetClass,mainForm, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNmarginHeight, 5, XmNtraversalOn, False, XmNlabelString, string, XmNuserData, DBTableFieldIsNumeric, NULL); XmStringFree (string); xCoordTextF = XtVaCreateManagedWidget ("RGISToolsConvertToPointXCoordTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, button, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNmaxLength, DBStringLength, XmNcolumns, DBStringLength / 2, NULL); XtAddCallback (button,XmNactivateCallback,(XtCallbackProc) _RGISToolsConvertToPointSelectCBK,xCoordTextF); string = XmStringCreate ((char *) "X Coordinate:",UICharSetBold); XtVaCreateManagedWidget ("RGISToolsConvertToPointXCoordLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, nameTextF, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNlabelString, string, NULL); XmStringFree (string); string = XmStringCreate ((char *) "Select",UICharSetBold); button = XtVaCreateManagedWidget ("RGISToolsConvertToPointYCoordButton",xmPushButtonWidgetClass,mainForm, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNtopOffset, 10, XmNrightAttachment, XmATTACH_FORM, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_FORM, XmNbottomOffset, 10, XmNmarginHeight, 5, XmNtraversalOn, False, XmNlabelString, string, XmNuserData, DBTableFieldIsNumeric, NULL); XmStringFree (string); yCoordTextF = XtVaCreateManagedWidget ("RGISToolsConvertToPointYCoordTextF",xmTextFieldWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, button, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNmaxLength, DBStringLength, XmNcolumns, DBStringLength / 2, NULL); XtAddCallback (button,XmNactivateCallback,(XtCallbackProc) _RGISToolsConvertToPointSelectCBK,yCoordTextF); string = XmStringCreate ((char *) "Y Coordinate:",UICharSetBold); XtVaCreateManagedWidget ("RGISToolsConvertToPointYCoordLabel",xmLabelWidgetClass,mainForm, XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, 10, XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, nameTextF, XmNrightOffset, 10, XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET, XmNbottomWidget, button, XmNlabelString, string, NULL); XmStringFree (string); XtAddCallback (UIDialogFormGetOkButton (dShell),XmNactivateCallback,(XtCallbackProc) UIAuxSetBooleanTrueCBK,&convert); } convert = false; UIDialogFormPopup (dShell); while (UILoop ()) { xText = XmTextFieldGetString (xCoordTextF); yText = XmTextFieldGetString (yCoordTextF); allowOk = (strlen (xText) > 0) && (strlen (yText) > 0); XtFree (xText); XtFree (yText); XtSetSensitive (UIDialogFormGetOkButton (dShell),allowOk); } UIDialogFormPopdown (dShell); if (convert) { DBObjData *pntData = new DBObjData ("",DBTypeVectorPoint); pntData->Name (dbData->Name ()); pntData->Document (DBDocSubject,dbData->Document (DBDocSubject)); pntData->Document (DBDocGeoDomain,dbData->Document (DBDocGeoDomain)); if (UIDataHeaderForm (pntData)) { DBCoordinate coord; DBObjTableField *nField, *xField, *yField, *tblFLD, *pntFLD; DBObjRecord *tblRec, *pntRec, *symRec; DBObjTable *pntTable = pntData->Table (DBrNItems); DBObjTable *symbols = pntData->Table (DBrNSymbols); DBObjTableField *symbolIDFLD = symbols->Field (DBrNSymbolID); DBObjTableField *fgFLD = symbols->Field (DBrNForeground); DBObjTableField *bgFLD = symbols->Field (DBrNBackground); DBObjTableField *stFLD = symbols->Field (DBrNStyle); DBObjTableField *coordFLD = pntTable->Field (DBrNCoord); DBObjTableField *symbolFLD = pntTable->Field (DBrNSymbol); DBRegion extent; symRec = symbols->Add ("Default Symbol"); symbolIDFLD->Int (symRec,0); fgFLD->Int (symRec,1); bgFLD->Int (symRec,2); stFLD->Int (symRec,0); nText = XmTextFieldGetString (nameTextF); xText = XmTextFieldGetString (xCoordTextF); yText = XmTextFieldGetString (yCoordTextF); nField = _RGISToolsConvertToPointFields->Item (nText); xField = _RGISToolsConvertToPointFields->Item (xText); yField = _RGISToolsConvertToPointFields->Item (yText); XtFree (nText); XtFree (xText); XtFree (yText); for (tblRec = itemTable->First ();tblRec != (DBObjRecord *) NULL;tblRec = itemTable->Next ()) { if (CMmathEqualValues (coord.X = xField->Float (tblRec),xField->FloatNoData ())) continue; if (CMmathEqualValues (coord.Y = yField->Float (tblRec),yField->FloatNoData ())) continue; if (nField == (DBObjTableField *) NULL) pntRec = pntTable->Add (tblRec->Name ()); else pntRec = pntTable->Add (nField->String (tblRec)); coordFLD->Coordinate (pntRec,coord); symbolFLD->Record (pntRec,symRec); extent.Expand (coord); } pntData->Extent (extent); pntData->Projection (DBMathGuessProjection (extent)); pntData->Precision (DBMathGuessPrecision (extent)); for (tblFLD = _RGISToolsConvertToPointFields->First ();tblFLD != (DBObjTableField *) NULL;tblFLD = _RGISToolsConvertToPointFields->Next ()) if ((tblFLD != nField) && (tblFLD != xField) && (tblFLD != yField) && DBTableFieldIsVisible (tblFLD)) { pntTable->AddField (pntFLD = new DBObjTableField (*tblFLD)); pntFLD->Required (false); pntRec = pntTable->First (); for (tblRec = itemTable->First ();tblRec != (DBObjRecord *) NULL;tblRec = itemTable->Next ()) { if (CMmathEqualValues (coord.X = xField->Float (tblRec),xField->FloatNoData ())) continue; if (CMmathEqualValues (coord.Y = yField->Float (tblRec),yField->FloatNoData ())) continue; switch (tblFLD->Type ()) { case DBTableFieldString: pntFLD->String (pntRec,tblFLD->String (tblRec)); break; case DBTableFieldInt: pntFLD->Int (pntRec,tblFLD->Int (tblRec)); break; case DBTableFieldFloat: pntFLD->Float (pntRec,tblFLD->Float (tblRec)); break; case DBTableFieldDate: pntFLD->Date (pntRec,tblFLD->Date (tblRec)); break; default: CMmsgPrint (CMmsgAppError, "Invalid Field Type in: %s %d",__FILE__,__LINE__); break; } pntRec = pntTable->Next (); } } workspace->CurrentData (pntData); } else delete pntData; } }
void RGISAnNetworkStreamLinesCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjTable *cellTable = netData->Table (DBrNCells); DBObjData *arcData = new DBObjData ("",DBTypeVectorLine); DBNetworkIF *netIF = new DBNetworkIF (netData); static Widget fieldSelect = (Widget) NULL; widget = widget; callData = callData; if (fieldSelect == (Widget) NULL) fieldSelect = UISelectionCreate ((char *) "Select Field"); if ((selection = UISelectObject (fieldSelect,(DBObjectLIST<DBObject> *) cellTable->Fields (),DBTableFieldIsInteger)) == (char *) NULL) return; if ((_RGISAnNetOrderField = cellTable->Field (selection)) == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgAppError, "Field Selection Error in: %s %d",__FILE__,__LINE__); return; } arcData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); arcData->Document (DBDocSubject,"Stream Lines"); if (UIDataHeaderForm (arcData)) { DBInt cellID; char objName [DBStringLength]; DBVLineIF *lineIF = new DBVLineIF (arcData); DBObjTable *cellTable = netData->Table (DBrNCells); DBObjTable *lineTable = arcData->Table (DBrNItems); DBObjTableField *basinFLD = new DBObjTableField (DBrNBasin,DBTableFieldInt,"%8d",sizeof (DBInt)); DBObjTableField *fieldFLD = new DBObjTableField (_RGISAnNetOrderField->Name (), _RGISAnNetOrderField->Type (), _RGISAnNetOrderField->Format (), _RGISAnNetOrderField->Length ()); DBObjTableField *lengthFLD = new DBObjTableField (RGISNetStreamLength,DBTableFieldFloat,"%10.1f",sizeof (DBFloat4)); DBObjTableField *areaFLD = new DBObjTableField (RGISNetStreamArea,DBTableFieldFloat,"%10.1f",sizeof (DBFloat4)); DBObjTableField *basinAreaFLD = new DBObjTableField (RGISNetBasinArea,DBTableFieldFloat,"%10.1f",sizeof (DBFloat4)); DBObjTableField *nextFLD = new DBObjTableField (RGISNetStreamNext,DBTableFieldInt,"%6d",sizeof (DBInt)); DBObjRecord *cellRec, *toCellRec, *lineRec; arcData->Projection (netData->Projection ()); arcData->Precision (netData->Precision ()); arcData->MaxScale (netData->MaxScale ()); arcData->MinScale (netData->MinScale ()); lineTable->AddField (basinFLD); lineTable->AddField (fieldFLD); lineTable->AddField (lengthFLD); lineTable->AddField (areaFLD); lineTable->AddField (basinAreaFLD); lineTable->AddField (nextFLD); cellTable->AddField (_RGISAnNetStreamIDFLD = new DBObjTableField ("StreamID",DBTableFieldInt,"%8d",sizeof (DBInt))); _RGISAnNetStreamID = 0; UIPauseDialogOpen ((char *) "Creating Stream Lines"); cellID = netIF->CellNum () - 1; cellRec = netIF->Cell (cellID); if (lineIF->NewSymbol ("Default Symbol") == (DBObjRecord *) NULL) { CMmsgPrint (CMmsgAppError, "Symbol Creation Error in: %s %d",__FILE__,__LINE__); return; } for (;cellID >= 0;--cellID) { cellRec = netIF->Cell (cellID); if (((toCellRec = netIF->ToCell (cellRec)) == (DBObjRecord *) NULL) || (_RGISAnNetOrderField->Int (cellRec) != _RGISAnNetOrderField->Int (toCellRec)) || (netIF->CellOrder (cellRec) != netIF->CellOrder (toCellRec))) { if (UIPause ((netIF->CellNum () - cellRec->RowID ()) * 100 / netIF->CellNum ())) goto Stop; sprintf (objName,"Line: %5d",_RGISAnNetStreamID + 1); if ((lineRec = lineIF->NewItem (objName)) == (DBObjRecord *) NULL) { CMmsgPrint (CMmsgAppError, "Line Insertion Error in: %s %d",__FILE__,__LINE__); return; } nextFLD->Int (lineRec,toCellRec == (DBObjRecord *) NULL ? 0 : _RGISAnNetStreamIDFLD->Int (toCellRec) + 1); basinFLD->Int (lineRec,netIF->CellBasinID (cellRec)); fieldFLD->Int (lineRec,_RGISAnNetOrderField->Int (cellRec)); _RGISAnNetVertex = 0; netIF->UpStreamSearch (_RGISAnNetworkCellRec = cellRec,(DBNetworkACTION) _RGISAnNetworkUpStreamAction); lineIF->FromNode (lineRec,lineIF->Node (netIF->Center (_RGISAnNetworkCellRec),true)); lineIF->ToNode (lineRec,lineIF->Node (netIF->Center (cellRec) + netIF->Delta (cellRec),true)); _RGISAnNetArea = netIF->CellArea (_RGISAnNetworkCellRec); if (_RGISAnNetVertex > 1) { if (_RGISAnNetVertexNum < _RGISAnNetVertex - 1) { _RGISAnNetCoord = (DBCoordinate *) realloc (_RGISAnNetCoord,(_RGISAnNetVertex - 1) * sizeof (DBCoordinate)); if (_RGISAnNetCoord == (DBCoordinate *) NULL) { CMmsgPrint (CMmsgSysError, "Memory Allocation Error in: %s %d",__FILE__,__LINE__); return; } } _RGISAnNetVertex = 0; netIF->DownStreamSearch (netIF->ToCell (_RGISAnNetworkCellRec),(DBNetworkACTION) _RGISAnNetworkDownStreamAction); } else _RGISAnNetVertex = 0; lineIF->Vertexes (lineRec,_RGISAnNetCoord,_RGISAnNetVertex); lineIF->ItemSymbol (lineRec,lineIF->Symbol (0)); lengthFLD->Float (lineRec,netIF->CellBasinLength (cellRec)); areaFLD->Float (lineRec,_RGISAnNetArea); basinAreaFLD->Float (lineRec,netIF->CellBasinArea (cellRec)); _RGISAnNetStreamID += 1; } } Stop: UIPauseDialogClose (); if (_RGISAnNetCoord != (DBCoordinate *) NULL) free (_RGISAnNetCoord); delete lineIF; if (cellID >= 0) delete arcData; else workspace->CurrentData (arcData); } else delete arcData; delete netIF; }
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 setZero = false; DBObjData *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-a", "--value")) { int valCodes[] = {true, false}; const char *values[] = {"zero", "null", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing gridtype!"); return (CMfailed); } if ((setZero = CMoptLookup(values, argv[argPos], true)) == DBFault) { CMmsgPrint(CMmsgUsrError, "Invalid value!"); return (CMfailed); } setZero = valCodes[setZero]; 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, " -a,--value [zero|null]"); 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]); data = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin); if ((ret == DBFault) || (data->Type() != DBTypeGridContinuous)) { delete data; return (CMfailed); } if (title != (char *) NULL) data->Name(title); if (subject != (char *) NULL) data->Document(DBDocSubject, subject); if (domain != (char *) NULL) data->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) data->Document(DBDocVersion, version); if ((ret = RGlibGridNoNegatives(data, setZero)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); 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 *fieldName = (char *) NULL; DBObjData *data; for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-f", "--field")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing symbol field!"); return (CMfailed); } fieldName = 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 symbol cover> <output symbol cover>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -f,--fiedl [field]"); 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 (fieldName == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Field name is not specified"); return (CMfailed); } data = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Read(argv[1]) : data->Read(stdin); if ((ret == DBFault) || ((data->Type() != DBTypeVectorPoint) && (data->Type() != DBTypeVectorLine) && (data->Type() != DBTypeVectorPolygon) && (data->Type() != DBTypeGridDiscrete))) { delete data; return (CMfailed); } if (title != (char *) NULL) data->Name(title); if (subject != (char *) NULL) data->Document(DBDocSubject, subject); if (domain != (char *) NULL) data->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) data->Document(DBDocVersion, version); if ((ret = RGlibGenFuncSymbolField(data, fieldName)) == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? data->Write(argv[2]) : data->Write(stdout); 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; DBObjData *netData; DBNetworkIF *netIF; 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 network> <output network>", 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]); netData = new DBObjData(); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? netData->Read(argv[1]) : netData->Read(stdin); if (netData->Type() != DBTypeNetwork) { CMmsgPrint(CMmsgUsrError, "Not a network input!"); delete netData; return (CMfailed); } if (title != (char *) NULL) netData->Name(title); if (subject != (char *) NULL) netData->Document(DBDocSubject, subject); if (domain != (char *) NULL) netData->Document(DBDocGeoDomain, domain); if (version != (char *) NULL) netData->Document(DBDocVersion, version); netIF = new DBNetworkIF(netData); ret = netIF->Trim(); delete netIF; if (ret == DBSuccess) ret = (argNum > 2) && (strcmp(argv[2], "-") != 0) ? netData->Write(argv[2]) : netData->Write(stdout); delete netData; if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char *argv[]) { int argPos, argNum = argc, ret, verbose = false; char *expStr = (char *) NULL; char *title = (char *) NULL, *subject = (char *) NULL; char *domain = (char *) NULL, *version = (char *) NULL; int shadeSet = DBDataFlagDispModeContGreyScale; bool shrink = true, flat = false; DBObjData *data; CMDgrdThreadData *threadData = new CMDgrdThreadData(); for (argPos = 1; argPos < argNum;) { if (CMargTest (argv[argPos], "-c", "--calculate")) { if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); delete threadData; return (CMfailed); } if (expStr != (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Expression is already specified!"); delete threadData; return (CMfailed); } expStr = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-r", "--variable")) { char *varName; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing variable name!"); delete threadData; return (CMfailed); } varName = argv[argPos]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); delete threadData; return (CMfailed); } if (threadData->AddExpression(varName, argv[argPos]) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid Expression!"); delete threadData; return (CMfailed); } if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-x", "--extent")) { int codes[] = {true, false}; const char *names[] = {"minimum", "maximum", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing extent mode!"); delete threadData; return (CMfailed); } if ((ret = CMoptLookup(names, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid extent mode!"); delete threadData; return (CMfailed); } shrink = codes[ret]; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) break; continue; } if (CMargTest (argv[argPos], "-n", "--interpolate")) { int codes[] = {false, true}; const char *names[] = {"surface", "flat", (char *) NULL}; if ((argNum = CMargShiftLeft(argPos, argv, argNum)) <= argPos) { CMmsgPrint(CMmsgUsrError, "Missing interpolation mode!"); delete threadData; return (CMfailed); } if ((ret = CMoptLookup(names, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid interpolation mode!"); delete threadData; return (CMfailed); } flat = codes[ret]; 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!"); delete threadData; 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!"); delete threadData; 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!"); delete threadData; 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!"); delete threadData; 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!"); delete threadData; return (CMfailed); } if ((shadeSet = CMoptLookup(shadeSets, argv[argPos], true)) == CMfailed) { CMmsgPrint(CMmsgUsrError, "Invalid shadeset!"); delete threadData; 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] <output file>", CMfileName(argv[0])); CMmsgPrint(CMmsgInfo, " -c,--calculate [expression]"); CMmsgPrint(CMmsgInfo, " -r,--variable [variable expression]"); CMmsgPrint(CMmsgInfo, " -n,--interpolate [surface|flat]"); CMmsgPrint(CMmsgInfo, " -x,--extent [maximum minimum]"); 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] == '-') && ((int) strlen(argv[argPos]) > 1)) { CMmsgPrint(CMmsgUsrError, "Unknown option: %s!", argv[argPos]); delete threadData; return (CMfailed); } argPos++; } if (expStr == (char *) NULL) { CMmsgPrint(CMmsgUsrError, "Missing expression!"); delete threadData; return (CMfailed); } if (argNum > 2) { CMmsgPrint(CMmsgUsrError, "Extra arguments!"); delete threadData; return (CMfailed); } if (verbose) RGlibPauseOpen(argv[0]); if (threadData->Configure(shrink, flat, expStr) == CMfailed) { delete threadData; return (CMfailed); } if (title == (char *) NULL) title = (char *) "Grid Calculate Result"; if (subject == (char *) NULL) subject = (char *) "GridCalc"; if (domain == (char *) NULL) domain = (char *) "Non-specified"; if (version == (char *) NULL) version = (char *) "0.01pre"; if (shadeSet == DBFault) shadeSet = DBDataFlagDispModeContGreyScale; if ((data = threadData->Compute(title, _CMDgrdCalculateUserFunc)) == (DBObjData *) NULL) { delete threadData; return (CMfailed); } delete threadData; data->Document(DBDocSubject, subject); data->Document(DBDocGeoDomain, domain); data->Document(DBDocVersion, version); data->Flags(DBDataFlagDispModeContShadeSets, DBClear); data->Flags(shadeSet, DBSet); ret = (argNum > 1) && (strcmp(argv[1], "-") != 0) ? data->Write(argv[1]) : data->Write(stdout); if (verbose) RGlibPauseClose(); return (ret); }
int main(int argc, char* argv[]){ bool All_Fields = false; char *title = (char *) NULL, *subject = (char *) NULL, *domain = (char *) NULL, *version = (char *) NULL; char *citation = (char *) NULL, *institute = (char *) NULL, *source = (char *) NULL, *person = (char *) NULL; char *comment = (char *) NULL, *type = (char *) NULL, ch = 'x'; int argPos, argNum = argc, verbose = false; FILE *file = (FILE *) NULL; DBObjData *dbData = new DBObjData(); DBDataHeader header; if (argc == 1) { Show_Usage(argv[0]); return 0; } for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--all")) { All_Fields = 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")) { Show_Usage(argv[0]); return 0; } if ((file == (FILE *) NULL) && (access(argv[argPos],R_OK) == 0)) file = fopen(argv[argPos],"r"); // ugly but working method to search for input filename. argPos++; } if (file != (FILE *) NULL) { if (header.Read(file) == DBFault) { delete dbData; return(DBFault); } fseek(file,0,SEEK_SET); //go back to beginning of file if (dbData->Read(file) == DBFault) { delete dbData; return(DBFault); } fclose(file); } else { CMmsgPrint (CMmsgUsrError,"No data file, reading from stdin!"); if (header.Read(stdin) == DBFault) { delete dbData; return(DBFault); } if (dbData->Read(stdin) == DBFault) { delete dbData; return(DBFault); } } if(All_Fields) { title = dbData->Name(); domain = dbData->Document(DBDocGeoDomain); subject = dbData->Document(DBDocSubject); version = dbData->Document(DBDocVersion); type = DBDataTypeString(header.Type ()); institute = dbData->Document(DBDocCitationInst); person = dbData->Document(DBDocOwnerPerson); citation = dbData->Document(DBDocCitationRef); comment = dbData->Document(DBDocComment); source = dbData->Document(DBDocSourcePerson); } else { for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-t","--title")) { title = dbData->Name(); if(title == (char *) NULL) title = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-d","--domain")) { domain = dbData->Document(DBDocGeoDomain); if(domain == (char *) NULL) domain = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-s","--subject")) { subject = dbData->Document(DBDocSubject); if(subject == (char *) NULL) subject = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-v","--version")) { version = dbData->Document(DBDocVersion); if(version == (char *) NULL) version = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-n","--institute")) { institute = dbData->Document(DBDocCitationInst); if(institute == (char *) NULL) institute = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-p","--person")) { person = dbData->Document(DBDocOwnerPerson); if(person == (char *) NULL) person = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-i","--citation")) { citation = dbData->Document(DBDocCitationRef); if(citation == (char *) NULL) citation = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-c","--comment")) { comment = dbData->Document(DBDocComment); if(comment == (char *) NULL) comment = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-S","--source")) { source = dbData->Document(DBDocSourcePerson); if(source == (char *) NULL) source = &ch; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } 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 (title == &ch) printf("Title: N/A\n"); else if (title != (char *) NULL) printf("Title: %s\n", title); if (domain == &ch) printf("Domain: N/A\n"); else if (domain != (char *) NULL) printf("Domain: %s\n", domain); if (subject == &ch) printf("Subject: N/A\n"); else if (subject != (char *) NULL) printf("Subject: %s\n", subject); if (version == &ch) printf("Version: N/A\n"); else if (version != (char *) NULL) printf("Version: %s\n", version); if (type == &ch) printf("Data Type: N/A\n"); else if (type != (char *) NULL) printf("Data Type: %s\n", type); if (institute == &ch) printf("Citation Institute: N/A\n"); else if (institute != (char *) NULL) printf("Citation Institute: %s\n",institute); if (citation == &ch) printf("Citation Reference: N/A\n"); else if (citation != (char *) NULL) printf("Citation Reference: %s\n",citation); if (person == &ch) printf("Person: N/A\n"); else if (person != (char *) NULL) printf("Person: %s\n", person); if (source == &ch) printf("Source: N/A\n"); else if (source != (char *) NULL) printf("Source: %s\n", source); if (comment == &ch) printf("Comment: N/A\n"); else if (comment != (char *) NULL) printf("Comment: %s\n", comment); if (verbose) RGlibPauseClose (); return (0); }
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 RGISAnalyseLineMSampleGridCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBInt layerID, layerNum; DBCoordinate coord; DBFloat realValue; DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBObjData *grdData = dbData->LinkedData (); DBObjData *tblData; DBObjTable *table, *itemTable = dbData->Table (DBrNItems); DBObjTableField *lineIDFLD; DBObjTableField *layerIDFLD; DBObjTableField *layerNameFLD; DBObjTableField *fromValueFLD = (DBObjTableField *) NULL; DBObjTableField *toValueFLD = (DBObjTableField *) NULL; DBVLineIF *lineIF = (DBVLineIF *) NULL; DBGridIF *gridIF; DBObjRecord *record, *layerRec, *tblRec; DBObjectLIST<DBObjTableField> *fields; widget = widget; callData = callData; gridIF = new DBGridIF (grdData); for (layerID = 0;layerID < gridIF->LayerNum ();++layerID) { layerRec = gridIF->Layer (layerID); if ((layerRec->Flags () & DBObjectFlagIdle) != DBObjectFlagIdle) ++layerNum; } if (layerNum < 1) { CMmsgPrint (CMmsgAppError, "No Layer to Process in: %s %d",__FILE__,__LINE__); delete gridIF; return; } tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,dbData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,grdData->Document (DBDocSubject)); if (UIDataHeaderForm (tblData) == false) { delete gridIF; delete tblData; return; } table = tblData->Table (DBrNItems); lineIF = new DBVLineIF (dbData); table->AddField (lineIDFLD = new DBObjTableField ("GHAASPointID",DBTableFieldInt, "%8d",sizeof (DBInt))); table->AddField (layerIDFLD = new DBObjTableField ("LayerID", DBTableFieldInt, "%4d",sizeof (DBShort))); table->AddField (layerNameFLD = new DBObjTableField ("LayerName", DBTableFieldString,"%s",DBStringLength)); table->AddField (fromValueFLD = new DBObjTableField (RGISLineFromNodeValue,DBTableFieldFloat,gridIF->ValueFormat (),sizeof (DBFloat4))); table->AddField (toValueFLD = new DBObjTableField (RGISLineToNodeValue,DBTableFieldFloat,gridIF->ValueFormat (),sizeof (DBFloat4))); grdData->Flags (DBObjectFlagProcessed,DBSet); UIPauseDialogOpen ((char *) "Sampling Grid(s)"); for (layerID = 0;layerID < gridIF->LayerNum ();++layerID) { layerRec = gridIF->Layer (layerID); if ((layerRec->Flags () & DBObjectFlagIdle) == DBObjectFlagIdle) continue; for (record = itemTable->First ();record != (DBObjRecord *) NULL;record = itemTable->Next ()) { if (UIPause ((layerRec->RowID () * itemTable->ItemNum () + record->RowID ()) * 100 / (itemTable->ItemNum () * gridIF->LayerNum ()))) goto Stop; if ((record->Flags () & DBObjectFlagIdle) == DBObjectFlagIdle) continue; tblRec = table->Add (record->Name ()); lineIDFLD->Int (tblRec,record->RowID () + 1); layerIDFLD->Int (tblRec,layerRec->RowID ()); layerNameFLD->String (tblRec,layerRec->Name ()); coord = lineIF->FromCoord (record); if (gridIF->Value (layerRec,coord,&realValue)) fromValueFLD->Float (tblRec,realValue); coord = lineIF->ToCoord (record); if (gridIF->Value (layerRec,coord,&realValue)) toValueFLD->Float (tblRec,realValue); } } Stop: UIPauseDialogClose (); delete gridIF; delete lineIF; fields = new DBObjectLIST<DBObjTableField> ("Field List"); fields->Add (new DBObjTableField (*lineIDFLD)); fields->Add (new DBObjTableField (*layerIDFLD)); table->ListSort (fields); workspace->CurrentData (tblData); delete fields; }
int main(int argc, char* argv[]) { bool Interactive_Mode = false, All_Fields = false; char *title = (char *) NULL, *subject = (char *) NULL, *domain = (char *) NULL, *version = (char *) NULL; char *citation = (char *) NULL, *institute = (char *) NULL, *source = (char *) NULL, *person = (char *) NULL; char *comment = (char *) NULL; int argPos, argNum = argc, verbose = false; FILE *file = (FILE *) NULL; DBObjData *dbData = new DBObjData(); if (argc == 1) { CMDshowUsage(argv[0]); return 0; } for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-a","--all")) { All_Fields = true; if ((argNum = CMargShiftLeft (argPos,argv,argNum)) <= argPos) break; continue; } if (CMargTest (argv [argPos],"-i","--interactive")) { Interactive_Mode = 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")) { CMDshowUsage(argv[0]); return 0; } argPos++; } if(All_Fields) { CMDgetInfoInteractive(&title, (char *) "title:>", false); CMDgetInfoInteractive(&subject, (char *) "subject:>", false); CMDgetInfoInteractive(&domain, (char *) "domain:>", false); CMDgetInfoInteractive(&version, (char *) "version:>", false); CMDgetInfoInteractive(&citation, (char *) "citation (multiple lines finish with $):>",true); CMDgetInfoInteractive(&institute,(char *) "institute:>",false); CMDgetInfoInteractive(&person, (char *) "person:>", false); CMDgetInfoInteractive(&source, (char *) "source (multiple lines finish with $):>",true); CMDgetInfoInteractive(&comment, (char *) "comment (multiple lines finish with $):>",true); } else { for (argPos = 1;argPos < argNum; ) { if (CMargTest (argv [argPos],"-t","--title")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&title,(char *) "title:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing title!"); return (CMfailed); } title = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-d", "--domain")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&domain,(char *) "domain:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing domain!"); return (CMfailed); } domain = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-s","--subject")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&subject,(char *) "subject:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing subject!"); return (CMfailed); } subject = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-v","--version")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&version,(char *) "version:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing version!"); return (CMfailed); } version = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-n","--institute")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&institute,(char *) "institute:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing institute!"); return (CMfailed); } institute = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos], "-p", "--person")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&person, (char *) "person:>",false); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing person!"); return (CMfailed); } person = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos], "-i", "--citation")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&citation,(char *) "citation (multiple lines finish with $):>",true); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing citation!"); return (CMfailed); } citation = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-c","--comment")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&comment,(char *) "comment (multiple lines finish with $):>",true); else { if (argNum <= argPos) { CMmsgPrint (CMmsgUsrError,"Missing comment!"); return (CMfailed); } comment = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } if (CMargTest (argv [argPos],"-S","--source")) { argNum = CMargShiftLeft (argPos,argv,argNum); if(Interactive_Mode) CMDgetInfoInteractive(&source,(char *) "source (multiple lines finish with $):>",true); else { if (argNum < argPos) { CMmsgPrint (CMmsgUsrError,"Missing source!"); return (CMfailed); } source = argv[argPos]; argNum = CMargShiftLeft (argPos,argv,argNum); } continue; } 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 ((argNum > 1) && (strcmp(argv[1],"-") != 0)) { file = fopen (argv[1],"r"); if(dbData->Read(file) == DBFault) { delete dbData; return(DBFault); } fclose(file); file = (FILE *) NULL; } else { CMmsgPrint (CMmsgInfo,"No data file, reading from stdin and writing to stdout!"); file = stdout; if(dbData->Read(stdin) == DBFault) { delete dbData; return(DBFault); } } if(title != (char *) NULL) dbData->Name(title); if(domain != (char *) NULL) dbData->Document(DBDocGeoDomain,domain); if(subject != (char *) NULL) dbData->Document(DBDocSubject,subject); if(version != (char *) NULL) dbData->Document(DBDocVersion,version); if(institute != (char *) NULL) dbData->Document(DBDocCitationInst,institute); if(person != (char *) NULL) dbData->Document(DBDocOwnerPerson,person); if(citation != (char *) NULL) dbData->Document(DBDocCitationRef,citation); if(comment != (char *) NULL) dbData->Document(DBDocComment,comment); if(source != (char *) NULL) dbData->Document(DBDocSourcePerson,source); if (file != stdout) file = fopen(argv[1],"wb"); if(dbData->Write(file) == DBFault) return(-1); if (file != stdout) fclose(file); if (verbose) RGlibPauseClose (); if (Interactive_Mode) { if (title != (char *) NULL) delete title; if (domain != (char *) NULL) delete domain; if (subject != (char *) NULL) delete subject; if (version != (char *) NULL) delete version; if (institute != (char *) NULL) delete institute; if (person != (char *) NULL) delete person; if (citation != (char *) NULL) delete citation; if (comment != (char *) NULL) delete comment; if (source != (char *) NULL) delete source; } return (0); }