根据经纬度坐标 合成预警图斑 代码
时间: 2023-07-03 13:08:55 浏览: 100
通过Python扫描代码关键字并进行预警的实现方法
生成预警图斑可以使用地理信息系统(GIS)软件,如ArcGIS、QGIS等。这里提供一个Python脚本实现根据经纬度坐标生成预警图斑的功能,需要安装gdal库和numpy库。
```python
import os
import numpy as np
from osgeo import gdal, gdal_array, gdalconst
# 输入数据
lat = [30.0, 30.1, 30.2] # 纬度坐标
lon = [120.0, 120.1, 120.2] # 经度坐标
value = [1, 2, 3] # 预警值
# 定义输出文件名和路径
out_file = "warning.tif"
out_path = "output"
# 定义像素大小和地理参考信息
pixel_size = 0.1
no_data_value = -9999
projection = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]"
# 计算输出文件的行列数和范围
x_min = min(lon)
x_max = max(lon)
y_min = min(lat)
y_max = max(lat)
rows = int((y_max - y_min) / pixel_size) + 1
cols = int((x_max - x_min) / pixel_size) + 1
# 创建输出文件
if not os.path.exists(out_path):
os.makedirs(out_path)
driver = gdal.GetDriverByName("GTiff")
out_raster = driver.Create(os.path.join(out_path, out_file), cols, rows, 1, gdalconst.GDT_Float32)
out_raster.SetProjection(projection)
out_raster.SetGeoTransform((x_min, pixel_size, 0, y_max, 0, -pixel_size))
out_band = out_raster.GetRasterBand(1)
out_band.SetNoDataValue(no_data_value)
# 将输入数据写入输出文件中
for i in range(len(lat)):
# 将经纬度坐标转换为像素坐标
col = int((lon[i] - x_min) / pixel_size)
row = int((y_max - lat[i]) / pixel_size)
# 将预警值写入输出文件中
out_array = np.array([[value[i]]], dtype=np.float32)
out_band.WriteArray(out_array, col, row)
# 保存输出文件
out_band.FlushCache()
```
这段代码将输入的经纬度坐标、预警值和输出文件信息作为输入,计算输出文件的行列数和范围,然后将输入数据写入输出文件中。输出文件以GeoTIFF格式保存,包括像素大小、地理参考信息和预警值。可以根据需要调整像素大小、输出文件名和路径、地理参考信息等参数。
阅读全文