当前位置: 首页 > news >正文

百度蜘蛛如何找网站网站标签优化怎么做

百度蜘蛛如何找网站,网站标签优化怎么做,专门教人做点心的网站,网页制作图片大小设置接上一部分继续介绍~ 一、地类矢量转栅格 这一步是为了能让地类值和影像的对象落在同一区域,从而将影像中的分割对象同化为实际地物类别。 train_fn r".\train_data1.shp" train_ds ogr.Open(train_fn) lyr train_ds.GetLayer() driver gdal.GetDrive…

接上一部分继续介绍~

一、地类矢量转栅格

这一步是为了能让地类值和影像的对象落在同一区域,从而将影像中的分割对象同化为实际地物类别。


train_fn = r".\train_data1.shp"
train_ds = ogr.Open(train_fn)
lyr = train_ds.GetLayer()
driver = gdal.GetDriverByName('MEM')
target_ds = driver.Create('', im_width, im_height, 1, gdal.GDT_UInt16)
target_ds.SetGeoTransform(im_geotrans)
target_ds.SetProjection(im_proj)
options = ['ATTRIBUTE=tyPE']
gdal.RasterizeLayer(target_ds, [1], lyr, options=options)
data = target_ds.GetRasterBand(1).ReadAsArray()
ground_truth = target_ds.GetRasterBand(1).ReadAsArray()
ground_truth = ground_truth.transpose((1, 0))
classes = np.unique(ground_truth)[1:]

最终得到带有地物类别数据的栅格点数据。

二、特征匹配

将得到的栅格点真实地物数据通过迭代与影像对象相匹配后,通过迭代器寻找对象的相应特征。


segments_per_class = {}
for klass in classes:segments_of_class = segments[ground_truth == klass]segments_per_class[klass] = set(segments_of_class)intersection = set()
accum = set()
for class_segments in segments_per_class.values():intersection |= accum.intersection(class_segments)accum |= class_segments
assert len(intersection) == 0, "Segment(s) represent multiple classes"
print("adjust complete")
end3 = time.time()
print('Running time2: %s Seconds'%(end3-start3))print("start train randomforest classification")
start4 = time.time()
train_img = np.copy(segments)
threshold = train_img.max() + 1 for klass in classes:class_label = threshold + klassfor segment_id in segments_per_class[klass]:train_img[train_img == segment_id] = class_labeltrain_img[train_img <= threshold] = 0
train_img[train_img > threshold] -= thresholdtraining_objects = []
training_labels = []
for klass in classes:class_train_object = [v for i, v in enumerate(objects) if segment_ids[i] in segments_per_class[klass]]training_labels += [klass] * len(class_train_object)training_objects += class_train_object

在实际的影像样本构建过程中,有的地物样本可能彼此距离相差较小,造成两个或多个样本落在同一个分割区域,这样会导致特征匹配迭代无限进行下去,所以我们要从两个或多个样本中取其一。

三、分类

最后利用scikit-learn的随机森林分类器,对样本分割块和其他未定义分割块进行预测,最后将结果输出到栅格中。


def PolygonizeTheRaster(inputfile,outputfile):dataset = gdal.Open(inputfile, gdal.GA_ReadOnly)srcband=dataset.GetRasterBand(1)im_proj = dataset.GetProjection()prj = osr.SpatialReference() prj.ImportFromWkt(im_proj)drv = ogr.GetDriverByName('ESRI Shapefile')dst_ds = drv.CreateDataSource(outputfile)dst_layername = 'out'dst_layer = dst_ds.CreateLayer(dst_layername, srs=prj)dst_fieldname = 'DN'fd = ogr.FieldDefn(dst_fieldname, ogr.OFTInteger)dst_layer.CreateField(fd)dst_field = 0gdal.Polygonize(srcband, None, dst_layer, dst_field) classifier = RandomForestClassifier(n_jobs=-1)  
classifier.fit(training_objects, training_labels) 
predicted = classifier.predict(objects)  clf = segments.copy()
for segment_id, klass in zip(segment_ids, predicted):clf[clf == segment_id] = klass
# temp = temp.transpose((2, 1, 0))
mask = np.sum(temp, axis=2)  
mask[mask > 0.0] = 1.0   
mask[mask == 0.0] = -1.0clf = np.multiply(clf, mask)
clf[clf < 0] = -9999.0
clf = clf.transpose((1, 0))
clfds = driverTiff.Create(r"D:\Data\testdata\classification\result.tif", im_width, im_height,1, gdal.GDT_Float32) 
clfds.SetGeoTransform(im_geotrans)
clfds.SetProjection(im_proj)
clfds.GetRasterBand(1).SetNoDataValue(-9999.0)
clfds.GetRasterBand(1).WriteArray(clf)
clfds = Noneend4 = time.time()
outputfile = r".\result2.shp"
print('Running time2: %s Seconds'%(end4-start4))
PolygonizeTheRaster(r".\result.tif",outputfile)

类在影像中的标记ID是1、2、3等等数值,因此用一般的栅格查看软件很难从肉眼进行查看。这里为了方便读者查看以及制图,我还进行了栅格转矢量的操作,这样放到arcmap中能清晰的查看分类情况。

最后的分类结果:

图1 分类结果图

图2 林地分类效果

http://www.yayakq.cn/news/636827/

相关文章:

  • centos7怎么做网站服务器网页界面设计包括哪些原则
  • 哪里有国内网站建设公司做网站的基本流程
  • 有哪些网站可以兼职做笔译电竞网站方案设计
  • 全网模板建站系统html国庆节网页制作代码
  • 国外空间怎么上传网站阿里巴巴logo
  • 大圣网站建设搜索热词排行榜
  • 怎么选择无锡网站建设网站开发aichengkeji
  • 怎样建设免费网站海阔淘宝客助手wordpress演示站 | 紫色清新商城模板
  • 免费私人网站建设wordpress弹窗代码
  • 微商城开发公司有哪些比较好手机优化助手怎么关闭
  • 网站开发的技术解决方案外国的贸易网站
  • 企业门户网站建设机构简单炫酷的编程代码
  • 石家庄企业建站网络软文营销是什么意思
  • seo 网站结构昆明专业网站建设
  • 网站空间怎样设置用户名和密码德州做网站公司电话
  • 成立网站建设公司要求湖北城市建设职业技术学院官方网站
  • 织梦做电子商务网站国外做兼职的网站
  • 智能家居型网站开发网站图片相册代码
  • 怎么建设自己网站外网无法访问wordpress 评论增加字段
  • 淮北建网站工作服款式
  • 国外做蛋糕网站网业大全
  • 高端网站制作价格erp管理系统介绍
  • 网站被墙的原因路由器设置手机网站打不开
  • 无障碍网站建设怎么建论坛网站
  • 昆山网站公司哪家好网站空间如何续费
  • 网站怎么做页游0元创业加盟代理
  • php第一季网站开发实例教程北京精兴装饰公司口碑怎么样
  • 做网站服务器要什么系统wordpress分类id在哪里
  • 在哪能学到网站建设网站上面的头像怎么做的
  • 北京网站制作合肥网站建设劳务合同