遗传算法 粒子群 人工蜂群 案例合集
案例1:栅格土地优化,考虑土地连续性(2022.GA23)link
案例2:
1、概述
土地优化关键处理技术
1、土地连续性:优化前后,土地栅格不能太离散,否则不符合实际情况
2、土地类型转换限制:不同土地栅格可转化的类型不一样,例如:草地不能转为矿场等
3、土地栅格固定不变:有些土地栅格不能变化,如道路、河流栅格
2、关键技术
由于上述限制,只能自定义算子,主要涉及2类:
1)考虑栅格连续性的进化算子
2)考虑土地类型转换限制的纠错算子
3、代码
下面展示一些 内联代码片
。
def writeTiff(im_data, im_geotrans, im_proj, path):
if 'int8' in im_data.dtype.name:
datatype = gdal.GDT_Byte
elif 'int16' in im_data.dtype.name:
datatype = gdal.GDT_UInt16
else:
datatype = gdal.GDT_Float32
im_bands, (im_height, im_width) = 1, im_data.shape
# 创建文件
driver = gdal.GetDriverByName("GTiff")
dataset = driver.Create(path, im_width, im_height, im_bands, datatype)
if (dataset != None):
dataset.SetGeoTransform(im_geotrans) # 写入仿射变换参数
dataset.SetProjection(im_proj) # 写入投影
im_data = im_data.astype(np.int8)
dataset.GetRasterBand(1).WriteArray(im_data)
dataset.FlushCache()
dataset.GetRasterBand(1).ComputeStatistics(False)
del dataset
def trans2Array(tifData):
im_width = tifData.RasterXSize # 栅格矩阵的列数
im_height = tifData.RasterYSize # 栅格矩阵的行数
band = tifData.GetRasterBand(1)
im_geotrans = tifData.GetGeoTransform()
im_proj = tifData.GetProjection() # 地图投影信息
data = band.ReadAsArray(0, 0, im_width, im_height)
return data