精华内容
下载资源
问答
  • 栅格数据投影转换

    万次阅读 2018-06-01 23:24:15
    栅格数据投影转换 作者:阿振 邮箱:tanzhenyugis@163.com 博客:https://blog.csdn.net/theonegis/article/details/80089375 修改时间:2018-06-01 声明:本文为博主原创文章,转载请注明原文出处 使用...

    栅格数据投影转换

    作者:阿振

    邮箱:tanzhenyugis@163.com

    博客:https://blog.csdn.net/theonegis/article/details/80089375

    修改时间:2018-06-01

    声明:本文为博主原创文章,转载请注明原文出处


    使用GDAL提供的命令行工具进行转换

    GDAL提供了gdalwarp命令可以方便地让我们进行影像拼接,重投影,裁剪,格式转换等功能

    比如,我们需要将MODIS数据的Sinusoidal投影转为UTM投影,我们可以这样操作。

    我需要转换的地区位于UTM的49度带内,我查看了一下其EPSG的编码为:EPSG:32649(WGS 84 / UTM zone 49N)

    注:推荐大家一个网站,可以查阅各种投影的定义:http://spatialreference.org

    然后,终端中执行如下命令:

    gdalinfo MOD09A1.A2017361.h28v06.006.2018005034659.hdf (用于查看MODIS数据中的波段名称与地址,这里我们只转换第一波段)

    gdalwarp -t_srs EPSG:32649 HDF4_EOS:EOS_GRID:"MOD09A1.A2017361.h28v06.006.2018005034659.hdf":MOD_Grid_500m_Surface_Reflectance:sur_refl_b01 MODSI_WARP_32649.tif-t_srs参数用于指定输出投影信息,可以是EPSG,或者OGC WKT,或者PROJ4格式,后面分别是输入数据和输出数据文件名)

    使用代码进行转换

    使用命令行转换,当然有两种方法啦:

    第一,直接在代码中调用命令行工具的接口(比较懒的人,像我,当然直接用第一种啦,有现成的工具为什么不用);

    第二,自己做投影转换之后的坐标计算,主要是计算重投影之后的GeoTransform参数,有了GeoTransform参数以及投影的定义,我们就可以通过SetGeoTransform()SetProjection()投影转换了.

    下面我给出具体的实现代码:

    第一种方法直接调用gdal.Warp()方法,该方法其实就是对gdalwarp命令的封装,第一个参数是输出文件,第二个参数是输入文件或者输入的Dataset,后面的都是可选参数(dstSRS参数指定输出投影)

    from osgeo import gdal
    
    root_ds = gdal.Open('MOD09A1.A2017361.h28v06.006.2018005034659.hdf')
    # 返回结果是一个list,list中的每个元素是一个tuple,每个tuple中包含了对数据集的路径,元数据等的描述信息
    # tuple中的第一个元素描述的是数据子集的全路径
    ds_list = root_ds.GetSubDatasets()
    
    # 取出第1个数据子集(MODIS反射率产品的第一个波段)进行转换
    # 第一个参数是输出数据,第二个参数是输入数据,后面可以跟多个可选项
    gdal.Warp('reprojection.tif', ds_list[0][0], dstSRS='EPSG:32649')
    
    # 关闭数据集
    root_ds = None

    在介绍第二种方法之前,我们有必要回忆一下之前说过的GDAL反射变换的六参数模型:

    放射变换使用如下的公式表示栅格图上坐标和地理坐标的关系:

    Xgeo=GT(0)+XpixelGT(1)+YlineGT(2)Ygeo=GT(3)+XpixelGT(4)+YlineGT(5)

    Xge0, Yge0)表示对应于图上坐标(Xpixel, Yline)的实际地理坐标。对一个上北下南的图像,GT(2)和GT(4)等于0, GT(1)是像元的宽度, GT(5)是像元的高度的相反数。(GT(0),GT(3))坐标对表示左上角像元的左上角坐标。

    通过这个放射变换,我们可以得到图上所有像元对应的地理坐标。

    好了,所以我们需要计算对于上面的六参数,我们主要需要计算重投影以后图像左上角的坐标(最小的X坐标值和最大的Y坐标值),这个转换我们可以通过osr.CoordinateTransformation类进行,下面给出实现代码:

    from osgeo import gdal
    from osgeo import osr
    
    # root_ds = gdal.Open('/Users/tanzhenyu/Resources/DataWare/MODIS/MOD09A1.A2017361.h28v06.006.2018005034659.hdf')
    # # 返回结果是一个list,list中的每个元素是一个tuple,每个tuple中包含了对数据集的路径,元数据等的描述信息
    # # tuple中的第一个元素描述的是数据子集的全路径
    # ds_list = root_ds.GetSubDatasets()
    #
    # # 取出第1个数据子集(MODIS反射率产品的第一个波段)进行转换
    # # 第一个参数是输出数据,第二个参数是输入数据,后面可以跟多个可选项
    # gdal.Warp('reprojection.tif', ds_list[0][0], dstSRS='EPSG:32649')
    #
    # # 关闭数据集
    # root_ds = None
    
    
    def reproject(src_file, dst_file, p_width, p_height, epsg_to):
        """
        :param src_file: 输入文件
        :param dst_file: 输出文件
        :param p_width: 输出图像像素宽度
        :param p_height: 输出图像像素高度
        :param epsg_to: 输出图像EPSG坐标代码
        :return:
        """
        # 首先,读取输入数据,然后获得输入数据的投影,放射变换参数,以及图像宽高等信息
        src_ds = gdal.Open(src_file)
        src_srs = osr.SpatialReference()
        src_srs.ImportFromWkt(src_ds.GetProjection())
    
        srs_trans = src_ds.GetGeoTransform()
        x_size = src_ds.RasterXSize
        y_size = src_ds.RasterYSize
        d_type = src_ds.GetRasterBand(1).DataType
    
        # 获得输出数据的投影,建立两个投影直接的转换关系
        dst_srs = osr.SpatialReference()
        dst_srs.ImportFromEPSG(epsg_to)
        tx = osr.CoordinateTransformation(src_srs, dst_srs)
    
        # 计算输出图像四个角点的坐标
        (ulx, uly, _) = tx.TransformPoint(srs_trans[0], srs_trans[3])
        (urx, ury, _) = tx.TransformPoint(srs_trans[0] + srs_trans[1] * x_size, srs_trans[3])
        (llx, lly, _) = tx.TransformPoint(srs_trans[0], srs_trans[3] + srs_trans[5] * y_size)
        (lrx, lry, _) = tx.TransformPoint(srs_trans[0] + srs_trans[1] * x_size + srs_trans[2] * y_size,
                                          srs_trans[3] + srs_trans[4] * x_size + srs_trans[5] * y_size)
    
        min_x = min(ulx, urx, llx, lrx)
        max_x = max(ulx, urx, llx, lrx)
        min_y = min(uly, ury, lly, lry)
        max_y = max(uly, ury, lly, lry)
    
        # 创建输出图像,需要计算输出图像的尺寸(重投影以后图像的尺寸会发生变化)
        driver = gdal.GetDriverByName('GTiff')
        dst_ds = driver.Create(dst_file,
                               int((max_x - min_x) / p_width),
                               int((max_y - min_y) / p_height),
                               1, d_type)
        dst_trans = (min_x, p_width, srs_trans[2],
                     max_y, srs_trans[4], -p_height)
    
        # 设置GeoTransform和Projection信息
        dst_ds.SetGeoTransform(dst_trans)
        dst_ds.SetProjection(dst_srs.ExportToWkt())
        # 进行投影转换
        gdal.ReprojectImage(src_ds, dst_ds,
                            src_srs.ExportToWkt(), dst_srs.ExportToWkt(),
                            gdal.GRA_Bilinear)
        dst_ds.GetRasterBand(1).SetNoDataValue(0)  # 设置NoData值
        dst_ds.FlushCache()
    
        del src_ds
        del dst_ds
    
    
    if __name__ == '__main__':
        src_file = 'HDF4_EOS:EOS_GRID:"MOD09A1.A2017361.h28v06.006.2018005034659.hdf":MOD_Grid_500m_Surface_Reflectance:sur_refl_b01'
        dst_file = 'reprojection.tif'
        reproject(src_file, dst_file, 450, 450, 32649)
    展开全文
  • 栅格数据投影转换,arcpy.ProjectRaster_management(),arcpy,ArcGIS
    
    我不是证明我有多了不起,我是要证明我失去的东西我一定要亲手拿回来(“英雄本色”-周润发)。
    
    


    前言

      1. 概述

    • 基于arcpy.ProjectRaster_management函数对栅格数据进行投影转换
    • 如需程序测试数据,请留下邮箱

      2. 版本

       2.1 山东青岛,2021年5月20日,Version 1

      3. 参考资料

    [1]. ArcPy函数帮助手册


    一、投影转换的目的

    1. 地理数据必须有地理坐标参考或者投影坐标参考,不同坐标参考下,对于同一栅格数据,其栅格形状、数据的行数和列数不一样,当我们需要依据栅格行列号进行不同影像间的对应分析时,就必须确保不同影像之间坐标系统的一致性,才能做到不同影像间像元的一一对应。
    2. 不同投影坐标系,侧重不同,比如当我们需要进行面积分析时,就需要 “等积投影”

    二、arcpy.ProjectRaster_management()函数

    1. 函数位置
      借助ArcPy自带函数实现栅格数据投影转换,下图展示了该函数的位置Projecter Raster

    2. 函数用法
      2.1 函数的输入参数
         该函数一共8个输入参数,其中三个必须输入参数,分别是
      (1)in_raster,输入栅格数据,即需要转换投影的栅格数据
      (2)out_raster,输出栅格数据,即转换投影之后的栅格数据
      (3)out_coor_system,输出坐标系统,即想要转换成的坐标系统

      2.2 说明
          需要注意resampling_type重采样方法的选择。 NEARST是默认的重采样方法,该方法和“Majourity”方法适合于“categorical data”即分类数据。对于连续数据建议使用BILINEAR方法或者CUBIC方法。


    三、应用示例

    1. 测试代码
      测试代码的功能是将某一文件夹下的所有.tif数据进行投影转换,由地理坐标系转换为等积投影,测试代码如下:
    # -*- coding: cp936 -*-
    
    '''
    1. 程序目的
      (1) 将GCS-WGS1984地理坐标系转换为Asia_North_Albers_Equal_Area_Conic.prj投影坐标系
    
    2. 山东青岛  2021年5月20日
    
    3. 说明
       (1) 程序调用ArcPy的函数,所以是在ArcMap自带的Python27环境下编写的程序
    '''
    
    # 0. 相关包的导入
    import os
    import glob
    
    import arcpy;from arcpy import env
    from arcpy.sa import *
    import shutil
    import datetime
    arcpy.CheckOutExtension("Spatial")
    
    # 1. 路径处理和基本变量定义
    
      # (1) 输入路径
    inpath = '存储.tif数据的文件夹完整路径\\'
    
      # (2) 输出路径
    outpath = inpath + 'Project'
    if os.path.exists(outpath):
        shutil.rmtree(outpath)
        os.mkdir(outpath)
    else:
        os.mkdir(outpath)
    
      # (3) 目标投影坐标系   
    EqualAreaPro = rootdir + 'Asia_North_Albers_Equal_Area_Conic.prj'
      # (4) 重新投影之后的像元大小
    cellsize = 50000 # 50km
    
    # 2. 调用arcpy.ProjectRaster_management()函数,实现批量投影转换
      # (1) 获取某一路径下的所有.tif文件
    in_raster_all = glob.glob(os.path.join('%s%s')%(inpath,'*.tif'))
      # (2) 循环批量投影转换
    for ii in range(len(in_raster_all)):
        in_raster = in_raster_all[ii] # 输栅格数据
        dir_path,inraster_name = os.path.split(in_raster) # 分离路径和输入栅格名称
        outraster_name = inraster_name.replace('.tif','_Albers-EA.tif')
        out_raster = outpath + '\\' + outraster_name
    
        # 批量投影转换
        arcpy.ProjectRaster_management(in_raster,out_raster,EqualAreaPro,"NEAREST",cellsize,\
                                "#", "#", "#")
        
        print outraster_name
    
    print '*******************************************************'
    print 'Finished'
    

    展开全文
  • 时至今日,笔者已经总结了三种用Python语言结合ArcGIS10.2提供的接口去批量处理地理数据的方法。即: 1. 用IDLE、Python Tools for Visual Studio等去编写py文件; 2. 用Python提供的tKinter模块去构建可视化窗体...

    时至今日,笔者已经总结了三种用Python语言结合ArcGIS10.x提供的接口去批量处理地理空间数据的方法。即:

          1. 用IDLE、Python Tools for Visual Studio等去编写独立的py脚本文件;

          2. 用Python提供的tKinter模块去构建可视化窗体,并将其打包成exe可执行文件;

          3. 用Python脚本工具自定义工具箱。

         下面对三种方法分别做介绍。

    一、用IDLE、Python Tools for Visual Studio或PyCharm等去编写py文件;

    arcpy.env.workspace = "F:\\GIMMS 3g\\3Mask"
    rasters = arcpy.ListRasters("*", "tif")
    for raster in rasters:
        out= "F:\\GIMMS 3g\\4Project\\"+"pro_"+raster[4:12]+".tif"
        arcpy.ProjectRaster_management(raster,out, "PROJCS['MyAlbers',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Albers'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['central_meridian',105.0],PARAMETER['Standard_Parallel_1',25.0],PARAMETER['Standard_Parallel_2',47.0],PARAMETER['latitude_of_origin',0.0],UNIT['Meter',1.0]]", "NEAREST", "9660.84811813477", "", "", "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]")
        print("pro_"+raster[4:12]+"  has done !!!")
    print("All done")

    二、用Python提供的tKinter模块去构建可视化窗体,并将其打包成exe可执行文件;

    1、说明

           (1)先用ArcGIS或者ENVI软件中获取投影参数,将其保存在Pro.txt中;

           (2)确定输入路径、投影文件和输出路径即可。

           (3)投影文件格式如下所示:

    2、效果

    3、代码

    #coding=utf-8
    from Tkinter import *
    from tkFileDialog import *
    import Tkinter,tkMessageBox,arcpy
    
    arcpy.CheckOutExtension("spatial")
    arcpy.gp.overwriteOutput=1
    
    root=Tk()
    root.title("Project Raster")
    
    def OpenData():
        global RasterFolder
        RasterFolder=askdirectory()
        text1.delete(0,END)
        text1.insert(0,RasterFolder)
    
    def OpenProFile():
        global ProFile
        ProFile=askopenfilename()
        f=open(ProFile,'r')
        global ProContent
        ProContent=f.read()
        f.close()
        text2.delete(0,END)
        text2.insert(0,ProFile)
    
    OutPath=""
    def SavePath():
        global OutPath
        OutPath=askdirectory()
        text3.delete(0,END)
        text3.insert(0,OutPath)
    
    def Run():
        if len(str(text1.get()))==0|len(str(text2.get()))==0|len(str(text3.get()))==0:
            tkMessageBox.showinfo("Warning","Please choose the data source!")
            return
        arcpy.env.workspace=RasterFolder
        Rasters=arcpy.ListRasters()
        s=0
        for Raster in Rasters:
            s=s+1
        if s==0:
            tkMessageBox.showinfo("Error","No data!")
            return
        i=1
        RunButton.config(text="Running,please wait!")
    
        for Raster in Rasters:
            root.title("Processing "+Raster+" ("+str(i)+"/"+str(s)+")")
            arcpy.ProjectRaster_management(Raster,OutPath+"/"+Raster,ProContent)
            i=i+1
        tkMessageBox.showinfo("Congratulations","All done")
        exit()
    
    frame1=Frame(root)
    frame1.pack(side=TOP)
    label1= Label(frame1,text="Input Raster:",width=10)
    label1.pack(side=LEFT)
    text1 = Entry(frame1,bd=1,width=60)
    text1.pack(side=LEFT)
    OpenDataButton = Tkinter.Button(frame1, text ="Choose", command =OpenData)
    OpenDataButton.pack(side=LEFT)
    
    frame2=Frame(root)
    frame2.pack(side=TOP)
    label2= Label(frame2,text="ProFile:",width=10)
    label2.pack(side=LEFT)
    text2 = Entry(frame2,bd=1,width=60)
    text2.pack(side=LEFT)
    OpenMaskButton = Tkinter.Button(frame2, text ="Choose",command=OpenProFile)
    OpenMaskButton.pack(side=LEFT)
    
    frame3=Frame(root)
    frame3.pack(side=TOP)
    label3= Label(frame3,text="OutPath:",width=10)
    label3.pack(side=LEFT)
    text3 = Entry(frame3,bd=1,width=60)
    text3.pack(side=LEFT)
    OpenPathButton = Tkinter.Button(frame3, text ="Choose",command=SavePath)
    OpenPathButton.pack(side=LEFT)
    
    frame4=Frame(root,bd=3)
    frame4.pack(side=TOP)
    
    RunButton=Tkinter.Button(frame4,text="Run",command=Run,width=20,bd=2)
    RunButton.pack(side=RIGHT)
    
    root.mainloop()

    三、用Python脚本工具自定义工具箱

    (1)新建一个test.py文件,内容可以为空;

    (2)Catalog中找到My ToolBoxes→右键→new→Tool Box,命名为GeoStorm,在GeoStorm上右击→Add→Script,如下图所示:

        

    (3)如上图工具箱所示,在Project Raster上右击→Edit,打开代码窗口,这个文件就是(1)新建的test.py,并写入如下核心代码,可以看出,跟前面两种方法的代码区别不是很大。

    (4)双击Project Raster,就看到了我们熟悉的窗口了!!!,其中RasterPath文件中的是要进行投影转换的数据,格式可以使Grid,tif或者img;Projection是目标投影,可以选择,也可以自定义;OutPath是输出路径,输出文件的命名跟源文件一样,当然也可以打开edit test.py进行自定义输出文件命名格式。

    (5)右击GeoStorm→Save As→10.0 ToolBox,保存,在别的地方使用。

    (6)在菜单栏上打开ArcToolBox,右击→Add ToolBox,即可对(5)步保存的工具箱进行使用。

    附:GeoStorm.tbx下载

    链接:https://pan.baidu.com/s/1ZJPC5YXThUDK04ZSg5zCOQ
    提取码:xwe7

    刘一哥GIS:专注测绘地理信息教育,探索地理奥秘,分享GIS价值!

    展开全文
  • python2.7栅格数据批量转换投影:ProjectRaster_management (in_raster, out_raster, out_coor_system, {resampling_type}, {cell_size}, {geographic_transform}, {Registration_Point}, {in_coor_system}) ...
  • 为了适应不同数据显示分析的需要,数据的投影可以进行相应的转换,目前PIE SDK支持多种数据格式的投影转换,下面对栅格数据格式的投影转换功能进行介绍。 2.功能实现说明 2.1.实现思路及原理说明 第一...

     

    1. 功能简介

        为了适应不同数据显示分析的需要,数据的投影可以进行相应的转换,目前PIE SDK支持多种数据格式的投影转换,下面对栅格数据格式的投影转换功能进行介绍。

    2. 功能实现说明

    2.1. 实现思路及原理说明

    第一步

    获取要转换投影的数据

    第二步

    获取转换的投影空间参考

    第三步

    利用Transform()进行投影转换

    2.2. 核心接口与方法

    接口/类

    方法/属性

    说明

    DatasetFactory

    OpenRasterDataset(string strPath, OpenMode mode)

    打开栅格数据集

    PIE.DataSource.DataSourceUtil

    Transform (…)

    投影转换

    2.3. 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/04数据操作/13栅格数据的投影转换

    数据路径

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

    视频路径

    百度云盘地址下/PIE视频教程/04数据操作/13栅格数据的投影转换.avi

    示例代码

     1         /// <summary>
     2         /// 栅格数据的投影转换
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void toolStripButton_TransformRasterDataPrj_Click(object sender, EventArgs e)
     7         {
     8             try
     9             {
    10                 //要投影转换的源数据以及转换后的保存位置
    11                 OpenFileDialog openFileDialog = new OpenFileDialog();
    12                 openFileDialog.Title = "需转换的栅格数据:";
    13                 openFileDialog.Filter = "RasterFile|*.tiff;*.tif";
    14                 if (openFileDialog.ShowDialog() != DialogResult.OK) return;
    15                 SaveFileDialog saveFileDialog = new SaveFileDialog();
    16                 saveFileDialog.Title = "保存为:";
    17                 saveFileDialog.Filter = "RasterFile|*.tiff";
    18                 if (saveFileDialog.ShowDialog() != DialogResult.OK) return;
    19                 string pathSource = openFileDialog.FileName;
    20                 string pathDes = saveFileDialog.FileName;//@"D:\data\test\TransformSave.tiff";
    21 
    22                 OpenFileDialog openFileDialog2 = new OpenFileDialog();
    23                 openFileDialog.Title = "参考栅格数据:";
    24                 openFileDialog2.Filter = "RasterFile|*.tiff;*.img;";
    25                 openFileDialog2.ShowDialog();
    26                 string path1 = openFileDialog2.FileName;
    27                 IRasterDataset rasterDataSet1 = DatasetFactory.OpenRasterDataset(path1, OpenMode.ReadOnly);
    28                 ISpatialReference spatialReference = rasterDataSet1.SpatialReference;
    29                 bool bOk = PIE.DataSource.DataSourceUtil.Transform(pathSource, pathDes, spatialReference, 0, null, null, 0.00001, 0.00001);
    30                 if (bOk)
    31                 {
    32                     MessageBox.Show("投影转换成功");
    33                 }               
    34                 return;
    35             }
    36             catch (Exception ex)
    37             {
    38                 MessageBox.Show(ex.ToString(), "栅格投影转换异常");
    39             }
    40  }
    View Code

    2.4. 示例截图

    转载于:https://www.cnblogs.com/PIESat/p/10169177.html

    展开全文
  • (一)栅格数据投影变换 (二)栅格数据变换 1、平移 2、扭曲 3、旋转 4、翻转 5、重设比例 6、镜像 三、实验目的 1、掌握栅格数据投影方法; 2、掌握栅格数据变换的方法。 四、实验数据 dem.tif 五、...
  • 栅格投影转换.py

    2019-08-10 16:47:19
    本资源采用Python编写基于ARCGIS中arcpy库,数据数据要统一放在同一个文件夹中即可。本资源适合对Python有一定基础者使用。
  • ##批量栅格数据投影转换 import arcpy,os,os.path,init def projectRaster(rootPath): try: ##arcpy工作目录 root_path = rootPath arcpy.env.workspace = root_path ##待处理文件所在目录(相对于根目录)...
  • 1. 对原始无坐标系栅格数据批处理定义投影坐标系 为了查看数据方便,我们将地图坐标系首先定义为预定范围的坐标系(如某投影坐标系) 使用工具箱的【投影转换】工具对未定义坐标系的数据做出定义坐标系...
  • 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式 ,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据投影转换功能,下面对矢量数据的投影转换功能进行介绍。 2.功能实现说明 2.1.实现...
  • GDAL之栅格投影

    千次阅读 2015-10-23 10:22:29
    栅格投影主要涉及到:空间坐标系的转换栅格仿射变换系数的重新计算这两个主要方面。 示例代码是将一幅WGS84 UTM投影的影像重新投影到WGS84地理坐标系上。 #!/usr/bin/python # -*- coding: UTF-8 -*- ...
  • 对于不同坐标系的投影变化,在arcgis的Toolbox中可以直接调用工具,且支持矢量和栅格投影变换。然而,在平常的项目开发过程中,通常需要把地方坐标系和cgcs2000坐标系进行坐标转换,然而转换参数是涉密,因此...
  • 最近有客户问道一个问题,在ArcGIS里面对影像数据进行批量投影转换的时候,为什么只能输出到File GDB中?针对这个问题,笔者进行了测试,发现是用户不熟悉操作所致,其实帮助文档中写清楚了如何设置输出路径。下文将...
  • 【ArcGIS|空间分析】栅格数据和矢量数据的面积计算

    万次阅读 多人点赞 2018-11-09 20:57:59
    栅格矢量数据计算面积之前,都需要将数据进行投影转换,设置单位以方便计算。 文章目录1、栅格数据面积计算方法一:添加字段并计算方法二:以表格显示分区统计2、 矢量数据面积计算 1、栅格数据面积计算 方法一:...
  • ArcGIS中动态投影转换具体步骤

    千次阅读 2020-02-03 10:00:01
      在ArcMap中,当遇到投影转换问题的时候,我们通常便会想到栅格投影转换(Project Raster)和矢量投影转换(Project),这些投影转换后的坐标值数据是实实在在的改变了。然而在某些特定情况下,会需要我们进行...
  • GIS栅格数据处理常用方法

    千次阅读 2014-10-21 17:11:27
    1.投影转换   针对无投影信息的栅格数据 Data ManagementTools----Projects And Transformations --Raster--Project Raster 2.重采样   修改像元大小 Data ManagementTools--Raster--Raster Processing--...
  • 如图,原始图像经过重投影后,转换为:重投影根据源和目的数据投影,破坏了初始栅格栅格可能被拉伸、移位和/或倾斜,但是栅格的性质又要求必须是个矩形。为了保持栅格矩形,FME沿着栅格边界增加了一些像素,这些...
  • 使用Rasterio做投影变换

    千次阅读 2018-06-12 11:36:57
    使用Rasterio做投影变换 作者:阿振 ... ... 修改时间:2018-06-11 声明:本文为博主原创文章,转载请注明原文出处 ...在之前GDAL系列文章中的《栅格数据投影转换》提到过,做投影转换最重要的是计算...
  • 2.打开ArcToolbox工具箱,找到“数据管理工具”目录下的“投影和变换”,如果是影像数据,点击“栅格“目录下的“投影”,如果是矢量数据,点击“要素”目录下的“投影”。 3.选择要进行坐标转换数据转换后的...
  • gdal中shapefile坐标度转换栅格

    千次阅读 2018-03-10 10:37:54
    以下代码展示读取shapefile文件的度坐标并转换为依赖栅格数据投影的坐标米。 from osgeo import gdal,ogr def world2Pixel(padfTransform, x, y): pixel = padfTransform[0] + x*padfTransfor...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
关键字:

栅格数据投影转换