//select the grid file name: private void btnOpenFile_Click(object sender, EventArgs e) { SaveFileDialog sfdialog = new SaveFileDialog(); sfdialog.OverwritePrompt = true; MapWinGIS.GridFileType grFileType = this.GridFileType; if (txtGridFile.Text.Length > 0) { sfdialog.FileName = MapWinUtility.modFile.FilenameNoExt(m_ShpFileName) + "_grid" + calcGridExtension(grFileType); } sfdialog.Filter = calcDialogFilter(grFileType); if (sfdialog.ShowDialog(this) == DialogResult.OK) { if (MapWinUtility.Strings.IsEmpty(sfdialog.FileName)) { return; } else { txtGridFile.Text = sfdialog.FileName; } } }
/// <summary> /// Er... Changes a grid format? /// </summary> /// <param name="origFilename">Original Grid Filename</param> /// <param name="newFilename">Output Grid Filename</param> /// <param name="newFileType">Specifies the original file format of the grid</param> /// <param name="newFileFormat">Specifies the new file format</param> /// <param name="multFactor">Like Extrusion, this multiplies the Z value</param> /// <returns>Boolean, false if there was an error</returns> public static bool ChangeGridFormat(string origFilename, string newFilename, MapWinGIS.GridFileType newFileType, MapWinGIS.GridDataType newFileFormat, float multFactor) { bool Errors = false; MapWinGIS.Grid tGrd = new MapWinGIS.Grid(); tGrd.Open(origFilename, MapWinGIS.GridDataType.UnknownDataType, true, MapWinGIS.GridFileType.UseExtension, null); Logger.Status("Writing Grid to New Format"); //If we're multiplying by a factor, must //create the new grid and actually do it ourselves. //Otherwise, can save directly //Jiri Kadlec 1-28-2009 we still neet to create a new grid when the data or file type is different. if (multFactor == 1 && newFileFormat == tGrd.DataType) { Logger.Dbg("Saving directly to new format"); tGrd.Save(newFilename, newFileType, null); // ProgressForm) } else { Logger.Dbg("Saving to new format with mult. factor: " + multFactor.ToString()); MapWinGIS.GridHeader hdr = new MapWinGIS.GridHeader(); hdr.CopyFrom(tGrd.Header); MapWinGIS.Grid newgrid = new MapWinGIS.Grid(); if (!newgrid.CreateNew(newFilename, hdr, newFileFormat, hdr.NodataValue, true, newFileType, null)) { Logger.Message("Unable to create new grid!", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.DialogResult.OK); Errors = true; } else { int ncols = tGrd.Header.NumberCols; int nrows = tGrd.Header.NumberRows; float[] oneRow = new float[ncols + 1]; for (int i = 0; i <= nrows - 1; i++) { tGrd.GetFloatWindow(i, i, 0, ncols, ref oneRow[0]); for (int z = 0; z <= ncols - 1; z++) { oneRow[z] *= multFactor; } newgrid.PutFloatWindow(i, i, 0, ncols, ref oneRow[0]); } newgrid.Save(newFilename, newFileType, null); newgrid.Close(); } } return(!Errors); }
//returns the appropriate grid extension private string calcGridExtension(MapWinGIS.GridFileType grType) { switch (grType) { case MapWinGIS.GridFileType.Ascii: return(".asc"); case MapWinGIS.GridFileType.Binary: return(".bgd"); case MapWinGIS.GridFileType.GeoTiff: return(".tif"); default: return(".asc"); } }
//returns the filter used for opening grid in the file dialog private string calcDialogFilter(MapWinGIS.GridFileType grType) { switch (grType) { case MapWinGIS.GridFileType.Ascii: return("Ascii text (*.asc)|*.asc;*.txt"); case MapWinGIS.GridFileType.Binary: return("USU Binary (*.bgd)|*.bgd"); case MapWinGIS.GridFileType.GeoTiff: return("GeoTiff (*.tif)|*.tif"); default: return("Ascii text (*.asc)|*.asc;*.txt"); } }
public bool GetGridInformation() { //now show the grid form bool result = false; frmGrid gridForm = new frmGrid(m_MapWin, m_ShpFileName); if (gridForm.ShowDialog() == DialogResult.OK) { m_GridHeader = gridForm.GridHeader; m_GridDataType = gridForm.GridDataType; m_GridFileName = gridForm.GridFileName; m_GridFileType = gridForm.GridFileType; result = true; } else { //the user clicked the BACK button - go back to 'select shapefile' dialog result = GetShapeInformation(); } return(result); }
/// <summary> /// set the grid file type (must be one of types supported for writing) /// </summary> private void cmbFileType_SelectedIndexChanged(object sender, EventArgs e) { MapWinGIS.GridFileType grFileType = this.GridFileType; string ext = calcGridExtension(grFileType); string grFileName = txtGridFile.Text; if (MapWinUtility.Strings.IsEmpty(grFileName)) { grFileName = MapWinUtility.modFile.FilenameNoExt(m_ShpFileName) + "_grid" + ext; } else { grFileName = MapWinUtility.modFile.FilenameNoExt(grFileName) + ext; } txtGridFile.Text = grFileName; //for .bgd grid, ensure "float" data type is selected if (grFileType == MapWinGIS.GridFileType.Binary) { cmbDataType.SelectedItem = MapWinGIS.GridDataType.FloatDataType; } }
public override bool Open(string Filename, MapWinGIS.GridDataType DataType = MapWinGIS.GridDataType.UnknownDataType, bool InRam = true, MapWinGIS.GridFileType FileType = MapWinGIS.GridFileType.UseExtension, MapWinGIS.ICallback cBack = null) { string bgdequiv = (string)(System.IO.Path.ChangeExtension(Filename, ".bgd")); if (Filename.ToLower().EndsWith(".flt")) { if (File.Exists(bgdequiv) && MapWinGIS.Utility.DataManagement.CheckFile2Newest(Filename, bgdequiv)) { return(base.Open(bgdequiv, MapWinGIS.GridDataType.UnknownDataType, InRam, MapWinGIS.GridFileType.Binary, cBack)); } else { if (ImportFLTFormat(Filename, ref cBack)) { base.Save(bgdequiv, MapWinGIS.GridFileType.Binary, cBack); return(true); } else { return(false); } } } else if (Filename.ToLower().EndsWith(".dem")) { if (File.Exists(bgdequiv) && MapWinGIS.Utility.DataManagement.CheckFile2Newest(Filename, bgdequiv)) { return(base.Open(bgdequiv, MapWinGIS.GridDataType.UnknownDataType, InRam, MapWinGIS.GridFileType.Binary, cBack)); } else { if (ImportDEMFormat(Filename, ref cBack)) { MapWinGIS.Utility.Logger.Dbg("Save grid with name: " + bgdequiv); base.Save(bgdequiv, MapWinGIS.GridFileType.Binary, cBack); return(true); } else { return(false); } } } else if (Filename.ToLower().EndsWith(".grd")) { if (File.Exists(bgdequiv) && MapWinGIS.Utility.DataManagement.CheckFile2Newest(Filename, bgdequiv)) { return(base.Open(bgdequiv, MapWinGIS.GridDataType.UnknownDataType, InRam, MapWinGIS.GridFileType.Binary, cBack)); } else { if (ImportSURFERFormat(Filename, cBack)) { base.Save(bgdequiv, MapWinGIS.GridFileType.Binary, cBack); return(true); } else { return(false); } } } else { return(base.Open(Filename, DataType, InRam, FileType, cBack)); } }
public override bool CreateNew(string Filename, MapWinGIS.GridHeader Header, MapWinGIS.GridDataType DataType, object InitialValue, bool InRam = true, MapWinGIS.GridFileType FileType = MapWinGIS.GridFileType.UseExtension, MapWinGIS.ICallback cBack = null) { return(base.CreateNew(Filename, Header, DataType, InitialValue, InRam, FileType, cBack)); }
public override bool Save(string Filename = "", MapWinGIS.GridFileType GridFileType = MapWinGIS.GridFileType.UseExtension, MapWinGIS.ICallback cBack = null) { return(base.Save(Filename, GridFileType, cBack)); }
/// <summary> /// Returns a new MapWindow.Interfaces.Types.GridFileType that corresponds to the /// older MapWinGIS.GridFileType /// </summary> /// <param name="MapWinGIS_GridFileType">A MapWinGIS.GridFileType</param> /// <returns>A MapWindow.Interfaces.Types.GridFileType</returns> public static GridFileType GetGridFileType(MapWinGIS.GridFileType MapWinGIS_GridFileType) { GridFileType retVal = GridFileType.USE_EXTENSION; switch (MapWinGIS_GridFileType) { case MapWinGIS.GridFileType.Ascii: retVal = GridFileType.ASCII_GRID; break; case MapWinGIS.GridFileType.Bil: retVal = GridFileType.BIL; break; case MapWinGIS.GridFileType.Binary: retVal = GridFileType.BINARY_GRID; break; case MapWinGIS.GridFileType.DTed: retVal = GridFileType.DTED; break; case MapWinGIS.GridFileType.Ecw: retVal = GridFileType.ECW; break; case MapWinGIS.GridFileType.Esri: retVal = GridFileType.ESRI_GRID; break; case MapWinGIS.GridFileType.Flt: retVal = GridFileType.FLT; break; case MapWinGIS.GridFileType.GeoTiff: retVal = GridFileType.GEOTIFF_GRID; break; case MapWinGIS.GridFileType.InvalidGridFileType: retVal = GridFileType.INVALID_GRID_TYPE; break; case MapWinGIS.GridFileType.MrSid: retVal = GridFileType.MRSID; break; case MapWinGIS.GridFileType.PAux: retVal = GridFileType.PAUX; break; case MapWinGIS.GridFileType.PCIDsk: retVal = GridFileType.PCIDSK; break; case MapWinGIS.GridFileType.Sdts: retVal = GridFileType.SDTS_GRID; break; case MapWinGIS.GridFileType.UseExtension: retVal = GridFileType.USE_EXTENSION; break; default: retVal = GridFileType.USE_EXTENSION; break; } return(retVal); }
/// <summary> /// Converts a newer Mapwindow.Interfaces.Types.GridFileType to an older /// MapWinGIS.GridFileType /// </summary> /// <param name="Types_GridFileType">A MapWindow.Interfaces.Types.GridFileType</param> /// <returns>A MapWinGIS.GridFiletype</returns> public static MapWinGIS.GridFileType mwGridFileType(GridFileType Types_GridFileType) { MapWinGIS.GridFileType retVal = MapWinGIS.GridFileType.UseExtension; switch (Types_GridFileType) { case GridFileType.ASCII_GRID: retVal = MapWinGIS.GridFileType.Ascii; break; case GridFileType.BIL: retVal = MapWinGIS.GridFileType.Bil; break; case GridFileType.BINARY_GRID: retVal = MapWinGIS.GridFileType.Binary; break; case GridFileType.DTED: retVal = MapWinGIS.GridFileType.DTed; break; case GridFileType.ECW: retVal = MapWinGIS.GridFileType.Ecw; break; case GridFileType.ESRI_GRID: retVal = MapWinGIS.GridFileType.Esri; break; case GridFileType.FLT: retVal = MapWinGIS.GridFileType.Flt; break; case GridFileType.GEOTIFF_GRID: retVal = MapWinGIS.GridFileType.GeoTiff; break; case GridFileType.INVALID_GRID_TYPE: retVal = MapWinGIS.GridFileType.InvalidGridFileType; break; case GridFileType.MRSID: retVal = MapWinGIS.GridFileType.MrSid; break; case GridFileType.PAUX: retVal = MapWinGIS.GridFileType.PAux; break; case GridFileType.PCIDSK: retVal = MapWinGIS.GridFileType.PCIDsk; break; case GridFileType.SDTS_GRID: retVal = MapWinGIS.GridFileType.Sdts; break; case GridFileType.USE_EXTENSION: retVal = MapWinGIS.GridFileType.UseExtension; break; } return(retVal); }
public bool GetGridInformation() { //now show the grid form bool result = false; frmGrid gridForm = new frmGrid(m_MapWin, m_ShpFileName); if (gridForm.ShowDialog() == DialogResult.OK) { m_GridHeader = gridForm.GridHeader; m_GridDataType = gridForm.GridDataType; m_GridFileName = gridForm.GridFileName; m_GridFileType = gridForm.GridFileType; result = true; } else { //the user clicked the BACK button - go back to 'select shapefile' dialog result = GetShapeInformation(); } return result; }