Exemple #1
0
        //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;
                }
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        //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");
            }
        }
Exemple #4
0
        //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");
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        /// <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);
        }
Exemple #12
0
        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;
        }