1.算法功能简介

  数据坐标转换是空间实体位置的位置描述,是从一种坐标系统变换到另一坐标系统的过程。通过建立两个坐标系之间一一对应关系来实现。是各种比例尺地图测量和编绘中建立地图数学基础必不可少的步骤。两个及以上的坐标转换是由极坐标参照确定维数空间。

  目前国内常见的坐标转换有以下5种:大地坐标(BLH)对平面直角坐标(XYZ)、北京54、西安80及WGS84坐标的相互转换、任意两空间坐标系的转换、十进制角度和度分秒格式之间进行转换、经纬度和UTM坐标之间进行转换。

  转换的方法分二维转换和三维转换;二维转换放缓是将平面坐标转换到另一个坐标系统;三维转换该方法基本操作步骤是利用公共点,也就是同时具有WGS84直角坐标和地方坐标的直角坐标的点位,一般需要3个以上重合点,通过布尔莎模型(或其他模型)进行计算,得到从一个系统转换到另一个系统中的平移参数、旋转参数和比例因子。三维转换方法可使你确定最多7个转换参数(3个平移参数,3个旋转参数和1个比例因子)。用户也可以选择确定几个参数。对于三维转换方法,可以仅用3个公共点来计算转换参数,但使用4个以上点可得到更多的观测值并且可以计算残差。用这种方法计算转换参数的优点在于能够保持GPS测量的精度,只要地方坐标精度足够(包括高程),这种方法能适用任何区域。

  PIE支持坐标算法功能的执行,下面对该算法功能进行介绍。

2.算法功能实现说明

2.1 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2 算法参数

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.RasterToContourContructAlgo

参数结构体

RasterToContourContruct_Exchange_Info

参数说明

BandIndex

Int

波段

BAutoSetStartEndValue

bool

是否自动计算起始终止值

BClosed

bool

是否闭合

BGenerateContourFace

bool

是否生成等值面

BGenerateContourLine

bool

是否生成等值线

EndValue

double

终止值

InputRasterDataset

IRasterDataset

输入栅格数据集

OutputContourFaceFDataset

IFeatureDataset

输出等值面(内存)

OutputContourLineFDataset

IFeatureDataset

输出等值线 (内存)

SampleRatio

int

采样比

StartValue

double

起始值

ValueInterval

double

间隔

2.3 示例代码

数据路径

百度云盘地址下/ PIE示例数据/栅格数据/04.World/World.tif

示例代码

  /// <summary>
/// 投影转换 本例子采用的FY4A其中一个通道 坐标系位标称投影 将标称投影转换位WGS-1984坐标系
/// </summary>
public void ProjectionTrans()
{
PIE.AxControls.DataPrjTransDialog frmDataPrjTrans = new AxControls.DataPrjTransDialog(); //数据坐标转换界面
if (frmDataPrjTrans.ShowDialog() != ) return; PIE.CommonAlgo.DataProjectTrans_Exchange_Info info = new CommonAlgo.DataProjectTrans_Exchange_Info(frmDataPrjTrans.GetParams()); //数据坐标转换参数
if (info == null) return; string strExt = System.IO.Path.GetExtension(info.strInputFile);
PIE.SystemAlgo.ISystemAlgo algo = null;
PIE.DataSource.IDataset dataset = PIE.DataSource.DatasetFactory.OpenDataset(info.strInputFile, DataSource.OpenMode.ReadOnly);
if (dataset == null) return; //判断数据坐标转换是栅格还是矢量数据
if (dataset is PIE.DataSource.IRasterDataset)
{
algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImgProjectTransAlgo");
}
else if (dataset is PIE.DataSource.IFeatureDataset)
{
algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ShapeDataCoordTransformAlgo");
}
(dataset as IDisposable).Dispose();
dataset = null;
if (algo == null) return;
PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "数据坐标转换";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
if (result)
{
MessageBox.Show("执行成功");
ILayer layer = LayerFactory.CreateDefaultLayer(info.strOutputFile);
if (layer == null) return;
m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}

2.4 示例截图

图1:源数据坐标系统信息

图2:数据坐标转换功能界面

图3:坐标转换后空间参考系统

图4:结果图

  注意:坐标转换需要设置参数,可以在图2 界面最下面的其参数设置七参数,不知道可以选默认Default,最好设置七参数,本示例用的是标称投影Geostationary_Satellite转WGS-1984,七参数设置默认。

PIE SDK坐标转换算法的更多相关文章

  1. PIE SDK算法的同步调用

    1.    算法功能简介 同步调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为. PIE SDK支持算法功能的执行,下面对算法的同步调用功能进行介绍. 2.    算法功能实现说明 2. ...

  2. PIE SDK算法的异步调用

    1.算法功能简介 异步方法一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作.异步方法通常会在另外一个线程中,“真实”地执行着.整个过程,不会阻碍调用者的工作. PIE SDK支持算法功能的执 ...

  3. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  4. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  5. PIE SDK波谱运算

    1.算法功能简介 波谱运算(Spectral Math)是一种灵活的波谱处理工具,可以用数学表达式或IDL程序对波谱曲线(以及选择的多波段图像)进行处理.波谱曲线可以来自一幅多波段图像的Z剖面.波谱库 ...

  6. PIE SDK波段运算

    1.算法功能简介 波段运算(Band Math)工具能够方便的执行图像中的各个波段的加减乘除.三角函数.指数.对数等数学函数计算,也可以使用IDL编写的函数. 由于每个用户都有独特的需求,利用此工具用 ...

  7. PIE SDK创建掩膜

      1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...

  8. PIE SDK应用掩膜

    1.算法功能简介 当对一幅图像应用掩膜时, 1 值的区域被保留, 0 值的区域被舍弃( 1 值区域被处理, 0 值区域被屏蔽不参与计算). PIE SDK支持算法功能的执行,下面对应用掩膜算法功能进行 ...

  9. PIE SDK ISODATA分类

    1.算法功能简介 ISODATA(IterativeSelf-OrganizingDataAnalysisTechniqueAlgorithm)即迭代式自组织数据分析技术, 其大致原理是首先计算数据空 ...

随机推荐

  1. 十六、MySQL授权命令grant的使用方法

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant sele ...

  2. LCA最近公共祖先-- HDU 2586

    题目链接 Problem Description There are n houses in the village and some bidirectional roads connecting t ...

  3. 4-剑指offer: 把数组排成最小的数

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 代码: cl ...

  4. 莫烦TensorFlow_09 MNIST例子

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_dat ...

  5. python27期day08:文件操作、作业题。

    0.文件操作的作用:持久化存储. 1.file路径. 相对路径:相对于当前运行的文件目录. 绝对路径:从磁盘根部开始查找的就是绝对路径. 获取当前工作路径用getcwd:import os print ...

  6. BZOJ5243 : [Lydsy2017省队十连测]绝版题

    要找的就是这棵树的带权重心,以带权重心为根时每棵子树的权值和不超过总权值和的一半. 因此按$\frac{v[i]}{\sum v[i]}$的概率随机选取一个点$x$,则重心有$\frac{1}{2}$ ...

  7. [LeetCode] 213. House Robber II 打家劫舍之二

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  8. [LeetCode] 64. Minimum Path Sum 最小路径和

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  9. Magisk —— 安卓新一代的第三方拓展,systemless模式

    Magisk由宝岛台湾学生 topjohnwu 开发, XDA主贴:https://forum.xda-developers.com/apps/magisk 使用方法:第三方rec刷入zip 介绍: ...

  10. Ubuntu 14.04 apt-get update失效解决(转)

    现象如下: VirtualBox:~$ sudo apt-get update Err http://mirrors.aliyun.com trusty InRelease Err http://mi ...