首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

栅格堆叠校正绘图纬度和经度坐标

栅格堆叠校正(Raster Stacking Correction)是一种处理遥感影像数据的技术,用于校正由于传感器运动、地形起伏等因素引起的图像变形。在进行栅格堆叠校正时,需要对图像的纬度和经度坐标进行精确的计算和调整。以下是一个简要的步骤指南,帮助你理解和实现这一过程:

1. 数据准备

  • 获取原始遥感影像数据:包括多光谱、高光谱或其他类型的遥感影像。
  • 获取辅助数据:如DEM(数字高程模型)、姿态数据(传感器姿态角)等。

2. 数据预处理

  • 辐射定标:将原始数据转换为辐射亮度值。
  • 大气校正:使用FLAASH、6S等工具进行大气校正,去除大气中的散射和吸收效应。
  • 几何校正:利用控制点和DEM数据进行几何校正,初步校正图像的几何变形。

3. 栅格堆叠校正

  • 计算传感器姿态角:根据姿态数据计算每个像元的姿态角(俯仰角、偏航角、滚动角)。
  • 计算地形影响:利用DEM数据计算每个像元的高程和坡度信息。
  • 校正公式:使用以下公式进行栅格堆叠校正: corrected_longitude = original_longitude + (sensor_velocity * time) / (cos(latitude) * R) corrected_latitude = original_latitude + (sensor_velocity * time) / R 其中:
    • original_longitudeoriginal_latitude 是原始图像的经纬度坐标。
    • sensor_velocity 是传感器的运动速度。
    • time 是曝光时间。
    • R 是地球半径。
    • latitude 是图像的纬度。

4. 绘图

  • 创建新的栅格数据集:将校正后的经纬度坐标和像素值存储在新的栅格数据集中。
  • 可视化:使用GIS软件(如QGIS、ArcGIS)或编程语言(如Python的Matplotlib、GDAL)进行可视化展示。

5. 注意事项

  • 精度控制:确保计算过程中的精度控制,避免累积误差。
  • 边界处理:处理图像边缘的像素,确保校正后的图像完整性。
  • 数据一致性:确保所有输入数据的格式和单位一致。

示例代码(Python)

以下是一个简化的Python示例,展示如何使用GDAL库进行栅格堆叠校正:

import gdal import numpy as np # 打开原始遥感影像 dataset = gdal.Open('path_to_your_raster.tif') band = dataset.GetRasterBand(1) data = band.ReadAsArray() # 获取图像的地理变换参数 geo_transform = dataset.GetGeoTransform() # 计算校正后的经纬度坐标 def correct_coordinates(geo_transform, data, sensor_velocity, time): rows, cols = data.shape corrected_coords = np.zeros((rows, cols, 2)) for i in range(rows): for j in range(cols): x = geo_transform[0] + j * geo_transform[1] y = geo_transform[3] + i * geo_transform[5] corrected_longitude = x + (sensor_velocity * time) / (np.cos(np.deg2rad(y)) * 6371000) corrected_latitude = y + (sensor_velocity * time) / 6371000 corrected_coords[i, j] = [corrected_longitude, corrected_latitude] return corrected_coords # 示例参数 sensor_velocity = 7.5 # 传感器速度(单位:米/秒) time = 0.1 # 曝光时间(单位:秒) corrected_coords = correct_coordinates(geo_transform, data, sensor_velocity, time) # 保存校正后的栅格数据集 driver = gdal.GetDriverByName('GTiff') corrected_dataset = driver.Create('path_to_save_corrected_raster.tif', cols, rows, 1, band.DataType) corrected_dataset.SetGeoTransform(geo_transform) corrected_dataset.GetRasterBand(1).WriteArray(data) corrected_dataset.FlushCache() corrected_dataset = None

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python | 绘制影像地图(Basemap)

# 在没有传递任何选项的 情况下,地图具有以经度 =0 纬度 = 0 为中心的 Plate Carrée 投影(等距圆柱投影)。...有两种方法 提供矩形映射投影区域的四个角的每一个的纬度经度值。 提供地图投影区域中心的lat/lon值以及地图投影坐标中的 区域的宽度高度。...(color='coral',lake_color='aqua') # 设定经纬度坐标,图的左侧右侧显示维度,上侧下侧显示经度 parallels = np.arange(0.,81,10.) m.drawparallels...-03-10T15:08:59.369Z,"65km SW of Cantwell, Alaska",earthquake,,0.8,,,automatic,ak,ak # 目前我们只需要提取地震的纬度经度...# 以下代码生成两个列表,包含文件中每个地震的纬度经度: import os, csv fig_index = 0 filename = 'all_week.csv' lats, lons, magnitudes

6.6K30
  • 学术大讲堂 |(七)如何应用大数据技术秒杀一个貌似不可能的任务

    简单地说就是以某个点为原点,然后根据指定经纬度计算与原点的差值跨了多少个栅格,并且把经度方向的编码纬度方向的编码串起来。 栅格的划分是整理栅格化展示的理论基础,有了它,我们就可以进行数据预处理了。...设某栅格:[经度编号m][纬度编号n],其对应的KEY=(floor(m/64)+ m%64)*100000+(floor(n/64)+ m%64) 可以看出合并后,需要检索的KEY量大幅减少为:2...栅格组的KEY设计为:[前缀P][经度编号M][纬度编号N] 其中前缀P=(N*j+M)%(j*k) (j,k为正整数),栅格组按P值进行分区存储。...优化6——构建从经纬度到象素坐标的快速映射矩阵 经纬度到象素坐标的标准转换过程: 经纬度--》墨卡托投影坐标--》当前屏幕象素坐标,从转换公式可以看出,这是个非线性转换,需要比较复杂的计算。...通过重构栅格数据组织结构,把栅格数据进行分组聚合比邻分区,把数据检索效率提升了10倍以上。

    71520

    Python气象绘图教程—(十九)剖面图

    (这是大气环流一般自西向东相匹配的,所以时间经度图比较少见)。...其中x表示经度,将全球东西360经度分为了10800刻度,相当于一个经度被分为30份;y表示纬度,将全球南北180纬度分为了5400份,也是将一个纬度分为30份。...显然是不需要的,我们只想知道沿某个经度(或纬度)的地形变化如何,用ax.plot命令结合fill_between命令即可。而这两个命令,只需要传入一个一维的横坐标一维的纵坐标即可。...,说明我们的横坐标应该是纬度,纵坐标应该是高度,但是在气象上一般不使用高度,而是气压层,如925hPa、850hPa、700hPa、500hPa、200hPa等,而经度就取一个固定值,这样也能变成二维数组...]表示取第109个经度值(也是切片序号,但是恰恰其存放值为109°E),经过切片后,经度因为只取了一个值,所以被降维,由于经度被降维了,这个相对湿度物理量只剩纬度,气压层次两维了,而两维数据就可以直接绘图

    14K75

    Basemap系列教程:Basemap

    可能的值被定义在 pyproj.pj_ellps suppress_ticks:防止在地图投影坐标中自动绘制轴 tick labels fix_aspect:固定绘图宽高比投影区域宽高比相匹配。...默认为 True anchor:绘图时地图被固定的位置。默认为C,即地图中心。...允许的值有C, SW, S, SE, E, NE, N, NW, 及 W celestial:对于经度使用天文学约定(即 0 以东为负经度)。...第一种方式是在地理学坐标中定义地图边界框来设置地图范围 参数 描述llcrnrlon地理坐标左下角经度llcrnrlat地理坐标左下角纬度urcrnrlon 地理坐标右上角经度urcrnrlat地理坐标右上角纬度...坐标 通过设置地理坐标中的中心点,投影单元域的宽,高设置边界框 参数描述width投影单元中地图的宽 height投影单元中地图的高lon_0地图中心的经度lat_0地图中心的纬度 使用Basemap

    1.6K40

    ArcGIS二次开发知识点总结

    空间分析定义:空间分析是指分析具有空间坐标或相对位置的数据过程的理论方法,是对地理空间现象的定量研究,其目的在于提取并传输空间数据中隐含的空间信息。...Geometry类库还包括了空间参考对象(投影坐标地理坐标系统)。) Display类库(包含用于显示GIS数据的对象。...Server类库(包含允许用户连接并操作ArcGIS Server的对象) Output类库(用于创建图形输出到诸如打印机绘图仪等设备及诸如增强型元文件栅格图像格式(JPG、BMP等)等硬拷贝格式)...GlobeCore类库(包含操作 globe 数据的对象) SpatialAnalyst类库(包含在栅格数据矢量数据上执行空间分析的对 象。)...常见的投影坐标系有:北京54、西安80、WGS84 地理坐标系 :地理坐标系也可称为真实世界的坐标系,是用于确定地物在地球上位置的坐标系,它用经纬度来表示地物的位置,经度纬度是从地心到地球表面上某点的测量角

    1.5K30

    ArcGIS二次开发知识点总结「建议收藏」

    空间分析定义:空间分析是指分析具有空间坐标或相对位置的数据过程的理论方法,是对地理空间现象的定量研究,其目的在于提取并传输空间数据中隐含的空间信息。...Geometry类库还包括了空间参考对象(投影坐标地理坐标系统)。) Display类库(包含用于显示GIS数据的对象。...Server类库(包含允许用户连接并操作ArcGIS Server的对象) Output类库(用于创建图形输出到诸如打印机绘图仪等设备及诸如增强型元文件栅格图像格式(JPG、BMP等)等硬拷贝格式)...GlobeCore类库(包含操作 globe 数据的对象) SpatialAnalyst类库(包含在栅格数据矢量数据上执行空间分析的对 象。)...常见的投影坐标系有:北京54、西安80、WGS84 地理坐标系 :地理坐标系也可称为真实世界的坐标系,是用于确定地物在地球上位置的坐标系,它用经纬度来表示地物的位置,经度纬度是从地心到地球表面上某点的测量角

    2K11

    用Python快速制作海报级地图

    而今天我要给大家介绍的这个Python库prettymaps非常的有趣,基于它,我们只需要简单的代码就可以对地球上给定坐标范围的任意地区进行地图可视化。...OpenStreetMap上获取相应范围内的矢量数据作为绘图素材,主要有以下几种使用方式: 2.1.1 圆形模式 prettymaps中最简单的绘图模式为「圆形模式」,我们只需要传入中心点经纬度坐标,以及半径范围...,格式:(纬度, 经度) radius = 2500, # 半径 ax = ax, # 绑定图床 layers = { 'perimeter': {}, # 控制绘图模式...,格式:(纬度, 经度) radius = 600, # 半径 ax = ax, # 绑定图床 layers = { 'perimeter': {'circle'...,格式:(纬度, 经度) radius = 2500, # 半径 ax = ax, # 绑定图床 layers = { 'perimeter': {}, # 控制绘图模式

    1.1K10

    地图基础

    坐标系一般有两种坐标系,地图坐标系(geographic coordinate system)投影坐标系(projected coordinate system)地理坐标系地理坐标系一般是指由经度纬度高度组成的坐标系...但是并不一致投影坐标系将三维的地理坐标转化为二维,叫做投影投影方式有很多,比如圆柱形、圆锥形、方形等,但是都会导致变形失真常用的投影有灯具矩形投影(platte carre) 墨卡托投影(mercator...)下方左图表示地球球面上大小相同的圆形;右上为墨卡托投影,投影后仍然是圆形,但是在高纬度时物体被严重放大了,也就无法显示极地地区;右下为等距投影,物体的大小变化不明显,但是图像被拉长了图片等距投影在投影上有扭曲...,所以并不适合航海地图,但是因为坐标与像素之间的对应关系十分简单,比较适合gis软件用于栅格图的展示EPSG在国际上,每个坐标系统都会被分配一个EPSG代码EPSG: 4326EPSG: 4326是WPGS...,把WGS 84坐标系投影到正方形,切掉了南北极附近地区由于墨卡托投影等正形性的特点,在不同层级的图层上物体的形状保持不变,一个正方形可以不断地被划分为更多更小的正方形以显示更清晰的细节伪墨卡托坐标系非常适合显示数据

    1.3K40

    Google earth engine——导入表数据

    (有关使用代码编辑器或 CLI导入栅格的详细信息,请参阅导入栅格数据。)您上传的资产最初是私有的,但可以按照共享资产部分中的说明进行共享。...选择 .shp 文件时,请务必选择相关的 .dbf、.shx .prj 文件。如果未提供 .prj 文件,Earth Engine 将默认为 WGS84(经度纬度坐标。...如果要素是地理空间的,则它们必须具有由几何字符串(GeoJSON、WKT)或 x y 位置属性定义的地理定位。...或者,可以在电子表格应用程序中定义代表点位置的 x y 坐标的两列,并以 CSV 格式与任何其他变量一起导出。 在上传对话框的高级选项部分,查看更改默认设置。...如果数据的几何是由 x y 列定义的点,请务必将相应的列命名为“经度纬度”,或者在高级设置下指定 x y 列名称。 注意:混合数据类型列(例如数字字符串)在摄取时将默认为字符串。

    30710

    mapping toolbox (1)

    % 创建第一张世界地图 % worldmap函数自动为地图投影坐标限制选择一个合理的选项 % 为了显示世界地图 % 该函数选择了以本初子午线赤道(0°纬度,0°经度)为中心的Robinson投影 worldmap...% 导入低分辨率世界海岸线数据 % 海岸线数据是一组离散的顶点 % 当按给定的顺序连接时 % 这些顶点近似于大陆、主要岛屿内海的海岸线 load coastlines whos ?...% 只有一个纬度矢量一个经度矢量 % 每一个都包含许多不同的多边形,形成了世界的海岸线 % 使用NaN分隔符NaN终止符将每个向量划分为多个部分 [latcells, loncells] = polysplit...% 使用plotm函数在地图轴上绘制海岸线数据 % plotm是matlab绘图函数的地理plot % 接受纬度经度坐标,通过指定的地图投影将它们转换为XY % 并将它们显示在图形轴中 plotm(...函数可以访问修改这些属性 h = worldmap('Europe'); % 这里可以精确到国家及地区 ?

    1.5K20

    利用Python快速绘制海报级别地图

    而今天我要给大家介绍的这个Python库prettymaps非常的有趣,基于它,我们只需要简单的代码就可以对地球上给定坐标范围的任意地区进行地图可视化。...OpenStreetMap上获取相应范围内的矢量数据作为绘图素材,主要有以下几种使用方式: 2.1.1 圆形模式 prettymaps中最简单的绘图模式为圆形模式,我们只需要传入中心点经纬度坐标,以及半径范围...,格式:(纬度, 经度) radius = 2500, # 半径 ax = ax, # 绑定图床 layers = { 'perimeter': {}, # 控制绘图模式...,格式:(纬度, 经度) radius = 600, # 半径 ax = ax, # 绑定图床 layers = { 'perimeter': {'circle'...,格式:(纬度, 经度) radius = 2500, # 半径 ax = ax, # 绑定图床 layers = { 'perimeter': {}, # 控制绘图模式

    65220

    基于 ArcGIS 的坐标系转换

    坐标系 我们常用到的坐标系一般分为两大类 地理坐标系(GCS) 投影坐标系(PCS) 地理坐标系就是把地球当成一个球体来看,以球心为参照点,通过经纬度来定位某个坐标点。...长半轴反扁率 本初子午线名其与格林威治子午线的偏移值 投影方法类型(如横轴莫卡托) 投影参数列表(如中央经线等) 一个单位的名称其米弧度单位的转换参数 轴线的名称和顺序 在预定义的权威坐标系中的编码...GDAL:GDAL 是栅格矢量地理空间数据格式的翻译库,隶属于OSGeo(开源地理空间基金会)下的开源产品,它提供了任意栅格/矢量文件转换与处理。...Point pointWgs84 = (Point) GeometryEngine.project(pointXx2000, wgs84sp); // 获取点数据中的经纬度, X为经度lon,Y为纬度..., X为经度lon,Y为纬度lat double pointWgs84X = pointWgs84.getX(); double pointWgs84Y = pointWgs84

    2.6K20

    博士来稿!如何计算自定义的风暴面积

    相当位温计算与绘图代码可参考如何计算WRF台风模拟的假相当位温 假定我们要计算的区域是370k以内的区域,那么我们假定它就是核心的风暴区域。...接着,从路径数据中提取出所有顶点的坐标,保存在二维数组vertices中。最后,利用matplotlib的plot函数,以顶点的横坐标坐标为输入,绘制出表示这些顶点连线的折线图。...122度 # central_latitude=28:中央纬度为28度 # standard_parallels=(22, 23):标准纬线为26度28度 projection = ccrs.LambertConformal...( central_longitude=122, central_latitude=28, standard_parallels=(26, 28) ) # 将地理坐标经度122...这两条纬线可以是对称分布在中心纬度两侧,也可以根据区域形状重要特征的位置进行适当调整 不同的参数设置会计算出不同的面积 如有错误欢迎斧正。

    9510

    学术大讲堂 | (七)如何应用大数据技术秒杀一个貌似不可能的任务

    首先,最基础的,就是我们的栅格划分:地图上选定某个点为原点,然后根据指定经纬度计算与原点的差值跨了多少个栅格,分别作为栅格经度编号纬度编号,然后把两者拼接起来作为栅格编号(KEY)。...同时,需要特别注意,当地图放大到栅格边长大于3个象素时,子图会比较少,需要把象素式渲染调整为画笔式渲染。 优化六:构建从经纬度到象素坐标的快速映射矩阵。...经纬度到象素坐标的标准转换过程是:经纬度--》墨卡托投影坐标--》当前屏幕象素坐标,其转换公式是非线性的,需要比较复杂的计算。...2)通过重构栅格数据组织结构,把栅格数据进行分组聚合比邻分区,把数据检索效率提升了10倍以上。...4)运用射线法实现了栅格是否在目标区域的快速判断 5)设计了X轴方向Y轴方向两个映射矩阵,实现从栅格号到象素位置的精确而快速定位。 6)切片图实时生成,满足每个用户的个性化渲染需求。

    56410

    griddata三维空间插值「建议收藏」

    x = interpolateData["lon"] #待插值的楼盘经度 y = interpolateData["lat"] #待插值的楼盘纬度 plt.scatter(lon, lat...scipy.interpolate.griddata(points,values,xi,method ='linear',fill_value = nan,rescale = False ) points 数据点坐标...返回由分段立方,连续可微(C1)近似曲率最小化多项式表面确定的值。 fill_value float,可选,用于填充输入点凸包外部的请求点的值,如果未提供,则默认为nan。...x = interpolateData["lon"] #待插值的楼盘经度 y = interpolateData["lat"] #待插值的楼盘纬度 plt.scatter(lon, lat...参考文献 1, 空间坐标坐标所对应的属性(高程,温度等 )https://blog.csdn.net/csubai07/article/details/104344291 2, griddata用法

    1.3K21

    Basemap系列教程之基本函数

    当已知点的经纬度坐标时,使用Basemap实例计算点在地图坐标中的位置 如果 latlon 参数设置为 True,x y 将被解释为以 度 为单位的经纬度坐标,这在以前的版本中是不支持的。...可以传递 list 给 Basemap实例进行,而且坐标转换是一次完成的 scatter 方法的格式选项 plot 是相同的 绘制栅格数据 主要有两种方法绘制栅格,contour/contourf 绘制等值线或填充等值线图...使用栅格文件相同的数据范围创建地图 绘图之前,有两个矩阵必须创建。...即 data 矩阵每个点相对应的 x y 坐标点 linspace 是 numpy 中的函数,可以在 起始点 终止点 之间创建 n 个元素。...(20015077.3712, 20015077.3712) (10.000000000000002, 50.000000000000014) 当 inverse 为 False时, 输入点为经纬度坐标

    2.9K10
    领券