✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 具体问题可以私信或扫描文章底部二维码。
(1) 本文基于遥感技术和GIS技术对梓潼县的耕地进行了全面提取和分析,旨在为耕地保护和合理利用提供数据支撑。研究中,选取了高分六号、哨兵二号和Landsat-8三种不同分辨率的遥感影像,采用面向对象和CART(Classification And Regression Tree)决策树相结合的方法,对梓潼县的耕地进行提取。通过多次试验确定了高分六号、哨兵二号和Landsat-8影像的最优分割尺度分别为60、30和30,结合CART决策树建立了不同影像的耕地提取模型。在提取过程中,高分六号影像因其分辨率较高,表现出最优的提取效果,而哨兵二号和Landsat-8次之。研究结果显示,高分六号影像的耕地提取精度为93.00%,哨兵二号为87.60%,Landsat-8为80.80%,Kappa系数分别为0.86、0.75和0.61,均符合耕地提取的精度要求。这一结果为梓潼县耕地信息的快速、精确获取提供了有效途径,也为其他类似地区的耕地提取提供了参考。
(2) 在完成耕地提取后,研究将提取的耕地数据与数字高程模型(DEM)相结合,进一步分析了梓潼县不同坡度和高程带上的耕地分布状况。通过对2020年5月、6月、8月和9月四个不同时期的耕地分布进行分析发现,梓潼县的耕地主要集中分布在坡度较小的区域。在坡度带上,2020年梓潼县耕地主要分布于坡度带I(坡度较小的平缓地带)和坡度带II,占耕地总面积的69.63%,而坡度带V(坡度较大的陡峭地带)上耕地分布最少,仅占耕地总面积的0.59%。在高程带上,耕地主要集中在低海拔的高程带I和高程带II,占总面积的73.44%,而高程带V(高海拔地带)上则最少,仅占耕地总面积的0.14%。此外,通过对2014年至2020年间的耕地动态变化分析,研究发现,在坡度带II上的耕地面积有所减少,而坡度带I、III、IV和V上的耕地面积则有所增加。在高程带方面,高程带II上的耕地面积减少,而高程带I、III、IV和V上的耕地面积有所增加。这些变化表明,耕地在坡度和高程上的分布存在一定的动态调整,受自然条件和人为利用的共同影响。
(3) 研究进一步对2020年梓潼县内不同种植作物的耕地面积变化进行了分析。结果表明,梓潼县种植作物的耕地面积在8月份达到最大,而在5月、6月和9月相对较小。这种变化与当地的气候条件和作物种植周期密切相关。8月份,梓潼县气候温暖、降水充沛,适合作物的生长,因此耕地面积达到峰值。而在5月和9月,由于分别是冬小麦和玉米、水稻等作物的收割期,耕地的利用率相对较低。此外,6月也是农作物生长的过渡期,部分耕地处于空闲状态,导致耕地面积较少。基于对不同月份耕地面积变化的分析,可以更好地理解耕地利用的时空特征,为农作物种植和耕地管理提供数据支持。
(4) 最后,研究对梓潼县耕地利用提出了有针对性的建议。针对分布在坡度带和高程带I、II上的耕地区域,建议优先保护这些区域的耕地,防止其因城市扩张或其他非农化活动而被占用,确保耕地资源的稳定性和可持续性。同时,鼓励农户在这些区域种植粮食作物,提高粮食自给率,增强农户的耕地保护意识。在坡度带和高程带III、IV上的耕地区域,建议通过提高耕地质量、利用秸秆还田等技术改善土壤质量,进一步提高耕地产出。此外,可以结合地方特色农产品,优化产业布局,实现农业增效和农民增收的双赢局面。对于坡度较大且耕地质量相对较低的区域,建议逐步退耕还林还草,以提高生态环境质量,减少水土流失,促进生态平衡。
import rasterio
import geopandas as gpd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
# 读取遥感影像数据
image = rasterio.open("zitong_satellite_image.tif")
image_data = image.read()
# 读取训练样本数据
samples = gpd.read_file("training_samples.geojson")
# 提取训练样本的特征和标签
X = samples[['band1', 'band2', 'band3', 'band4']]
y = samples['land_use_type']
# 训练CART决策树模型
model = DecisionTreeClassifier()
model.fit(X, y)
# 使用模型对影像数据进行分类
image_shape = (image_data.shape[1], image_data.shape[2])
flat_image_data = image_data.reshape((image_data.shape[0], -1)).T
predicted = model.predict(flat_image_data)
classified_image = predicted.reshape(image_shape)
# 绘制耕地分类结果
plt.figure(figsize=(10, 10))
plt.title("梓潼县耕地提取结果")
plt.imshow(classified_image, cmap='Greens')
plt.colorbar()
plt.show()
# 保存分类结果为新的GeoTIFF文件
with rasterio.open(
'zitong_farmland_classified.tif',
'w',
driver='GTiff',
height=image_shape[0],
width=image_shape[1],
count=1,
dtype=classified_image.dtype,
crs=image.crs,
transform=image.transform,
) as dst:
dst.write(classified_image, 1)