python 已知经纬度获取影像DN值或位置

2023-12-02 05:28

本文主要是介绍python 已知经纬度获取影像DN值或位置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基本上就是一个经纬度转影像坐标的一个操作

之前我用

xOrigin = geotransform[0] #-180
yOrigin = geotransform[3]  #90

这两个读取出来的分别就是经度和纬度,但是读取极投影为3413的影像时,读取出来的时投影坐标,因此在程序中多做了一步变换

from osgeo import gdal
import os
import pandas as pd
from datetime import datetime, timedelta
import rasterio
from rasterio.enums import Resampling
from rasterio.transform import from_origin
import numpy as np
# import rasterio
from rasterio.transform import from_origin
from shapely.geometry import Pointdef get_location_data(lon,lat,tif_files):size=625 #12.5km中心半径f=tif_files# print(f)tif_name = os.path.basename(f).split('_')[0]raster: gdal.Dataset = gdal.Open(f)geotransform = raster.GetGeoTransform()#获取栅格影像的左上角起始坐标,像元大小xOrigin = geotransform[0] #-180yOrigin = geotransform[3]  #90pixelWidth = geotransform[1]pixelHeight = geotransform[5]print(pixelWidth,pixelHeight)from pyproj import Proj# 首先定义要转换的投影坐标系proj1 = Proj("epsg:3413")  # coord_x = lon# coord_y = latcoord_x,coord_y = proj1(lon,lat)#主要思路就是计算该坐标与该tif起始坐标差了多少行和列loc_x = int((float(coord_x) - xOrigin) / pixelWidth)loc_y = int((float(coord_y) - yOrigin) / pixelHeight)# print(loc_y)#知道了多少行和列,就直接读这个行列对应数像元的数值大小,并把读到的数值追加到data这个空数组里面# with rasterio.open(f) as src:# # 获取图像的地理转换信息#     transform = src.transform#     # 创建经纬度点的Shapely几何对象#     point = Point(lon, lat)#     # 将经纬度点转换为图像坐标#     lon, lat = point.x, point.y  # 重新赋值,确保点在图像范围内#     loc_x, loc_y = ~transform * (lon, lat)  # 逆变换,获取图像坐标num_columns = raster.RasterXSizenum_rows = raster.RasterYSizeif loc_x<0 or loc_y<0 or loc_x>=num_columns or loc_y>=num_rows:return '999',999data_value = raster.GetRasterBand(1).ReadAsArray(loc_x, loc_y, 1, 1)[0, 0]return data_value

这篇关于python 已知经纬度获取影像DN值或位置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/444102

相关文章

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c