• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅

气象数据实时获取源码

2012年年底在TM网站上上线了《公众气象服务平台》这个系统,更多信息如下:

http://tm.arcgisonline.cn/2012/1224/536.html

该系统在数据处理的时候包括一系列自动化流程,数据的获取,配准,裁剪,入库等,并且被作为一个windows服务,无需人为干预,部分代码如下:

class GDBInput
    {
        #region 工作空间枚举类型
        public enum GDBType
        {
            MDB = 1,
            SDE = 2,
            FGDB = 3,
            SHP = 4,
            RWS = 5

        }
        #endregion


        #region 获取栅格数据,栅格目录,创建栅格数据集
        /// <summary>
        /// 获取栅格数据
        /// </summary>
        /// <param name="pWorkSpace"></param>
        /// <param name="RasterName"></param>
        /// <returns></returns>
        public IRasterDataset GetRasterDataset(IRasterWorkspace pWorkSpace, string RasterName)
        {

            if (pWorkSpace == null) return null;
            try
            {
                return pWorkSpace.OpenRasterDataset(RasterName);
            }
            catch
            {
                return null;
            }
        }
        /// <summary>
        /// 创建栅格数据集
        /// </summary>
        /// <param name="pGDBType"></param>
        /// <param name="pPath"></param>
        /// <param name="pFileName"></param>
        /// <param name="pWidth"></param>
        /// <param name="pHeight"></param>
        /// <param name="pXCell"></param>
        /// <param name="pYCell"></param>
        /// <param name="pNumBand"></param>
        /// <returns></returns>
        public IRasterDataset CreateRasterDataset(GDBType pGDBType, string pPath, string pFileName, int pWidth, int pHeight, double pXCell, double pYCell, int pNumBand)
        {
            try
            {
                IRasterWorkspace2 pRWs = GetWorkspace(pPath, pGDBType) as IRasterWorkspace2;

                ISpatialReference sr = new UnknownCoordinateSystemClass();

                IPoint rigin = new PointClass();
                origin.PutCoords(0.0, 0.0);
                IRasterDataset rasterDataset = pRWs.CreateRasterDataset(pFileName, "TIFF",
                    origin, pWidth, pHeight, pXCell, pYCell, pNumBand, rstPixelType.PT_UCHAR, sr,
                    true);


                return rasterDataset;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                return null;
            }
        }


        public void Delele(IWorkspace pWs)
        {
            IEnumDataset pEnum = pWs.get_Datasets(esriDatasetType.esriDTAny);
            IDataset pDs = pEnum.Next();

            while (pDs != null)
            {
                if (pDs.CanDelete())
                    pDs.Delete();
                pEnum.Reset();
                pDs = pEnum.Next();
            }
        }

         
        /// <summary>
        /// 获取栅格目录
        /// </summary>
        /// <param name="pWs"></param>
        /// <param name="pCatlogName"></param>
        /// <returns></returns>
        public IRasterCatalog GetCatlog(IWorkspace pWs, string pCatlogName)
        {
            IRasterWorkspaceEx pRsWx = pWs as IRasterWorkspaceEx;

            return pRsWx.OpenRasterCatalog(pCatlogName);

        }

 

posted on 2013-06-27 09:43  bobird  阅读(569)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3