python 网格形变_jpg是栅格数据格式吗

python 网格形变_jpg是栅格数据格式吗在 Python 中处理栅格数据 可以使用 ArcGIS Pro 的 Python 模块 arcpy 以及 rasterio 和 rasterstats 等第三方库 以下是一些基本步骤和示例代码 展示如何使用 Python 处理栅格数据 1 定义栅格投影 pythonimport osimport arcpy 设置工作空间 arcpy env workspace TIF 栅格数据文件夹路径

在Python中处理栅格数据,可以使用ArcGIS Pro的Python模块`arcpy`,以及`rasterio`和`rasterstats`等第三方库。以下是一些基本步骤和示例代码,展示如何使用Python处理栅格数据:

1. 定义栅格投影

python

import os

import arcpy

设置工作空间

arcpy.env.workspace = "TIF" 栅格数据文件夹路径

遍历文件夹中所有后缀名为 .tif 的文件

for fileName in os.listdir("TIF"):

if fileName[-4:] == ".tif":

读取栅格数据文件路径

raster = os.path.join("TIF", fileName)

定义栅格投影为 WGS 1984

sr = arcpy.SpatialReference("WGS 1984")

arcpy.DefineProjection_management(raster, sr)

print(f"{fileName[:-4]} conversion successful!")

2. 栅格计算及数据统计

python

import os

import arcpy

from arcpy import sa

from tqdm import tqdm

设置工作空间

arcpy.env.workspace = "Pre_Jilin.gdb"

if "Pre_Jilin1.gdb" not in os.listdir("."):

print("即将为您创建用于保存结果栅格的文件地理数据库(Pre_Jilin1.gdb)……")

arcpy.CreateFileGDB_management(".", "Pre_Jilin1")

print("数据库创建完成!")

遍历工作空间内所有栅格数据

for raster in tqdm(arcpy.ListRasters()):

通过栅格计算器将栅格值单位转换为 mm,并保存到结果数据库

sa.RasterCalculator([raster], [raster], f"{raster} * 0.1").save(f"Pre_Jilin1.gdb/{raster}")

print("计算完成!")

3. 使用`rasterstats`库进行统计

python

import geopandas as gpd

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import rasterio

import rasterstats

from rasterio.plot import show

导入数据

gdf = gpd.read_file("path_to_vector_file.shp") 矢量数据路径

rasters = ["path_to_raster1.tif", "path_to_raster2.tif"] 栅格数据路径列表

使用rasterstats计算统计值

stats = rasterstats.stats(rasters, gdf, attribute="column_name_in_gdf")

输出统计结果

print(stats)

4. 数据重采样

python

from osgeo import gdal

打开栅格数据

in_ds = gdal.Open("p047r027_7t_z10_nn10.tif")

in_band = in_ds.GetRasterBand(1)

设置输出缓冲区大小

out_columns, out_rows = in_band.XSize, in_band.YSize

buf_xsize = out_columns * 2

buf_ysize = out_rows * 2

创建输出缓冲区数组

data = np.zeros((out_rows, out_columns), dtype=in_band.DataType)

读取数据并写入输出缓冲区数组

in_band.ReadAsArray(buf_xsize=buf_xsize, buf_ysize=buf_ysize, buf_x=0, buf_y=0, data=data)

设置输出栅格

out_ds = gdal.GetDriverByName("GTiff").Create("output_file.tif", out_columns, out_rows, 1, in_band.DataType)

out_ds.SetGeoTransform(in_ds.GetGeoTransform())

out_ds.GetRasterBand(1).WriteRaster(0, 0, out_columns, out_rows, data)

以上示例展示了如何使用Python处理栅格数据的基本步骤,包括定义投影、栅格计算、数据统计以及数据重采样。你可以根据具体需求调整代码中的参数和路径。

编程小号
上一篇 2026-05-03 20:26
下一篇 2025-02-03 23:07

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/47382.html