投影变换

arcgis for python 批量投影变换

强颜欢笑 提交于 2020-02-14 02:23:49
接到的需求是对文件夹下包括子目录所有影像进行投影变换,在网上找了找,大家的代码好像和需求不太一致,自己写了一个小工具。 思路是遍历文件夹所有.tif文件。 1.用os.walk()函数来获取路径和文件名 2.用 if 语句限制读取后缀为.tif的文件 3.将文件路径和文件名组合起来 4.调用arcpy.ProjectRaster_management语句投影变换并输出 由于刚刚接触python,难点主要在于os.walk()目录的读取这个函数的了解上。 以下是代码 1 #coding = utf-8 2 import os 3 import arcpy 4 from arcpy import * 5 6 #定义一个函数,第一个参数是一个集合,用来接收所有.tif的路径。第二个函数是指定的文件夹。 7 def huoqu(jieshou,lujing): 8 for dirpath,dirnames,filenames in os.walk(lujing): 9 for filename in filenames: 10 if os.path.splitext(filename)[1] == '.tif': 11 file1 = dirpath+'\\'+filename 12 jieshou.append(file1) 13 14 #这里变量的设置

OpenGL ES 投影变换 Projection

我们两清 提交于 2020-01-31 06:07:57
下面代码设置当前Matrix模式为Projection投影矩阵: gl.glMatrixMode(GL_PROJECTION); gl.glLoadIdentity(); 后续的坐标变换则针对投影矩阵。 OpenGL ES可以使用两种不同的投影变换:透视投影(Perspective Projection)和正侧投影(Orthographic Projection)。 正侧投影(Orthographic Projection) 有些地方也翻译成正交投影。 正交却是世界中的物体按照平行的光线投射到一张纸上(你的画布),仿佛被压缩在上面,无论这个物体在世界中多远,投射结果还是原来的大小, 2d 游戏多用此种投影。如下图: 正交投影的函数 有 glOrtho 和 glu 库的 gluOrth2D : glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); gluOrth2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); 每个参数的意思如下图: 透视投影(Perspective Projection) 透视比较接近我们现实的方式了,你的眼睛发出的光形成一个夹角

透视投影变换矩阵

不羁的心 提交于 2020-01-06 04:35:21
方法一: 把视点(xe,ye,ze)平移至原点(0,0,0)的矩阵 对应恢复矩阵(即平移的逆矩阵) 对于视点在(0,0,0),对应【此时】平面方程为a’x’+b’x’+c’z’+d’=0; 视点、p和p’三点共线得: 【此时】空间一点p(x,y,z)在平面上的投影p’=t(x,y,z); 把p’带入【此时】的平面方程,得到t=-d’/( a'x’+b'y’+c'z’); 最终的最对于任意点并且投影平面的方向也是任意的的透视投影变换矩阵 P=T逆P’T *矩阵乘顺序不可交换 方法二(直接直线和面的交点): 视点(xe,ye,ze)空间一点p(x,y,z)在平面上的投影p’=(x',y',z')=t(x,y,z); 平面ax+by+cz+d=0; 把p‘代入 得到t的值;再把t带入参数方程获得p';最终整理得透视投影矩阵P P= 来源: https://www.cnblogs.com/xujiayu/p/4891614.html

ArcEngine二次开发之投影变换

匿名 (未验证) 提交于 2019-12-02 23:40:02
using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; namespace CHN.gzGISer.ArcEngine { public class CoordinateTransformation { public CoordinateTransformation() { } /// <summary> /// 投影坐标系转WGS84地理坐标系 /// </summary> /// <param name="point"></param> /// <returns></returns> public static IPoint ProjectToWGS84(IPoint point) { ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass(); ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984); point.Project(pSpatialReference);