使用Arcgis对landsat7和landsat8进行配准、裁剪、导出 |
您所在的位置:网站首页 › arcgis裁剪流域 › 使用Arcgis对landsat7和landsat8进行配准、裁剪、导出 |
一、安装ArcGIS10.8并在pycharm中配置编译器
1、安装ArcGIS,网上有很多教程,大家自行搜索 2、在pycharm中配置编译环境 (1)首先确保在安装ArcGIS时已经安装了python2.7,找到该文件夹,我的安装路径是默认的:C:\Python27\ArcGIS10.8 (2)打开pycharm,新建项目,选择“文件”->“设置”->“项目:XXX”->“项目解释器”,点击右面设置,选择add 修改完编译器之后在pycharm中“import arcpy”就没有问题啦~ 下面的代码是使用arcpy将多个单波段合称为多波段: # -*- coding: utf-8 -*- import os, arcpy, datetime # 读取和存放文件夹的位置 layerspath = r'D:\cloud_dataset\Peizhun\boduanhecheng_input\landsat8_2' # 波段存放文件夹 path = r'D:\cloud_dataset\Peizhun\boduanhecheng_output' # 输出结果存放文件夹 # start calculate time startTime = datetime.datetime.now() print startTime # set the intermediate data folder intermediateDataPath = path + "\\" + "IntermediateData" # set result data folder resultDataPath = path + "\\" + "Result" # determine if the folder exists if os.path.exists(intermediateDataPath): print "IntermediateData floder exists" else: # create a intermediate data floder arcpy.CreateFolder_management(path, "IntermediateData") if os.path.exists(resultDataPath): print("Result floder exists") else: # create a result floder arcpy.CreateFolder_management(path, "Result") print("-----------------------------------------------------------") print("Under calculation......") print("Please do not close the window.") # 这段为数据处理代码 # function:按顺序拼接字符串,作为波段组合函数的的参数 def getInputParam(files): ret = "" rets = [] layers_num = len(files) i = 1 for file in files: # 拼接其他的 print file ret = ret + file + ";" if i % 3 == 0: # 这里的9代表读取9个数据进行波段相加,如果你要合成3个波段,修改即可 ret = ret[:-1] # 去除最后的; rets.append(ret) ret = "" i += 1 return rets arcpy.env.workspace = layerspath # 栅格影像所在文件夹 print layerspath + "路径下包含以下数据:" arcpy.env.overwriteOutput = True files = os.listdir(layerspath) print "-----------------------------------------" input_param = getInputParam(files) print "-----------------------------------------" print input_param for param in input_param: print "------------param------------------------" print param print "开始波段组合运算!" print "-----------------------------------------" # landsat8 resultfileName = param[:37] # landsat7 # resultfileName = param[:21] arcpy.CompositeBands_management(param, resultDataPath + "\\" + resultfileName + "_StackLayers.TIF") print resultfileName + "计算完成!" print "Finish!" endTime = datetime.datetime.now() print "Time use: " + str((endTime - startTime).seconds) + " (second)" 三、使用ArcGIS进行配准、裁剪并导出1、配准 (1)首先,将刚刚合成的tif作为图层导入到ArcGIS中 ps:小问题 进行裁剪时,显示“ArcGIS出现:ERROR 001566:创建栅格数据集失败。原因是:裁剪要素超出了栅格范围。”,原因是两个图层坐标系不是一样的,解决办法: (1)首先右键待裁剪图层,选择属性 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |