国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python地理數(shù)據(jù)處理 二十一:基于arcpy批量操作(三)

這篇具有很好參考價值的文章主要介紹了Python地理數(shù)據(jù)處理 二十一:基于arcpy批量操作(三)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 實現(xiàn)一(批量裁剪的高級用法)

實現(xiàn)將給定的 .shp 文件中的所有省份作為裁剪范圍,對給定的 .tif 文件進行裁剪,輸出所有省份的單獨 .tif 文件:

# -*- coding: cp936 -*-
import arcpy

arcpy.CheckOutExtension('Spatial')

# 定義輸入文件的路徑
shp_path = r"C:\Users\map.shp"
tif_path = r"C:\Users\dem.tif"

# 讀取文件
shp = arcpy.mapping.Layer(shp_path)
tif = arcpy.Raster(tif_path)

# 獲取.tif 文件的空間參考信息
spatial_ref = tif.spatialReference

# 創(chuàng)建一個用于存儲輸出的文件夾
output_folder = r"C:\Users\output"
arcpy.CreateFolder_management(output_folder, "clipped_tifs")

# 循環(huán)遍歷 .shp 文件中的每個省份
for row in arcpy.da.SearchCursor(shp, ["SHAPE@", "name"]):
    # 構建輸出.tif 文件的路徑
    output_tif_path = output_folder + "\\clipped_tifs\\" + row[1] + ".tif"
    
    # 使用.shp 文件對.tif 文件進行裁剪
    arcpy.Clip_management(tif_path, "#", output_tif_path, row[0], "#", "ClippingGeometry")

    # 打印輸出信息
    print row

# 刪除中間變量
del shp, tif

2. 實現(xiàn)二(柵格計算器求和)

實現(xiàn)對文件名前14個字符一樣的tif圖像進行柵格運算求和:
如:XXXX_XXX_2003.M01_Mean、XXXX_XXX_2003.M02_Mean、XXXX_XXX_2003.M03_Mean;XXXX_XXX_2004.M01_Mean、XXXX_XXX_2004.M02_Mean、XXXX_XXX_2004.M03_Mean;XXXX_XXX_2005.M01_Mean、XXXX_XXX_2005.M02_Mean、XXXX_XXX_2005.M03_Mean。。。。。。

# -*- coding: cp936 -*-
import arcpy
import os

arcpy.CheckOutExtension('Spatial')

# 設置工作空間
arcpy.env.workspace = r"D:\Datasets"

# 獲取所有.tif文件
tif_list = arcpy.ListRasters("*", "TIF")

# 創(chuàng)建字典,用于存儲同一年份的柵格圖像
tif_dict = {}

# 遍歷所有.tif文件,將同一年份的柵格圖像添加到字典中
for tif in tif_list:
    year = tif.split("_")[2][:4]
    if year in tif_dict:
        tif_dict[year].append(tif)
    else:
        tif_dict[year] = [tif]

# 對每個年份的柵格圖像進行柵格運算求和,并保存結果
for year in tif_dict:
    tif_sum = None
    for tif in tif_dict[year]:
        tif_path = os.path.join(arcpy.env.workspace, tif)
        tif_raster = arcpy.Raster(tif_path)
        if tif_sum is None:
            tif_sum = tif_raster
        else:
            tif_sum += tif_raster
    output_name = "D:\\Datasets\\TIFClip\\" + year
    output_path = os.path.join(arcpy.env.workspace, output_name)
    tif_sum.save(output_path)
    print year

3. 實現(xiàn)三(使用柵格計算器刪除指定值)

1、如果我們想刪除柵格圖像的屬性表中的某個空值或者指定值,如9999或52668,如果在arcgis中操作的話,可以使用柵格計算器,輸入以下代碼即可:

Con((input.tif != 9999) & (input.tif != 52668), input.tif)

2、也可以使用arcpy進行批量處理:

# -*- coding: cp936 -*-
import arcpy
import os

arcpy.CheckOutExtension("spatial")
# 定義輸入和輸出文件夾
input_folder = r"D:\Datasets"
output_folder = r"D:\Datasets\tifclipCon"

# 循環(huán)遍歷文件夾下的所有tif文件
for filename in os.listdir(input_folder):
    if filename.endswith(".tif"):
        # 構建輸入和輸出路徑
        input_path = os.path.join(input_folder, filename)
        output_path = os.path.join(output_folder, filename)

        # 使用Map Algebra表達式刪除指定的屬性表值
        expression = "Con((\"" + input_path + "\" != 9999) & (\"" + input_path + "\" != 52668), \"" + input_path + "\")"
        arcpy.gp.RasterCalculator_sa(expression, output_path)
        
        print filename

4. 實現(xiàn)四(讀取兩個文件夾中的tif文件進行相乘并保存)

讀取兩個文件夾中的tif文件,并對兩個相對應的文件進行相乘:

# -*- coding: cp936 -*-
import arcpy
import os
import warnings
warnings.filterwarnings('ignore')

arcpy.CheckOutExtension('Spatial')

# 設置工作空間
arcpy.env.workspace = r"D:\RSE\dataset\1\output"

# 設置輸入文件夾路徑
t_folder = r"D:\RSE\dataset\t\output"
p_folder = r"D:\RSE\dataset\p\output"

# 設置輸出文件夾路徑
out_folder = r"D:\RSE\dataset\tbyp"

# 獲取輸入文件夾中以TEM開頭的tif文件列表
t_list = arcpy.ListRasters("TEM*", "TIF")

# 遍歷輸入文件夾中的tif文件
for t_file in t_list:
    
    # 獲取tif文件名的后三個字符
    suffix = t_file[3:6]
    
    # 構造PRE文件路徑
    p_file = os.path.join(p_folder, "PRE" + suffix + ".tif")
    
    # 判斷PRE文件是否存在
    if not arcpy.Exists(p_file):
        print("PRE file does not exist for " + t_file)
        continue

    print "*******************************************************************"
    # 構造輸出文件路徑
    out_file = os.path.join(out_folder, "output" + suffix + ".tif")
    
    # 使用柵格計算器對兩個tif文件進行相乘
    expression = "Times('{}', '{}')".format(t_file, p_file)
    arcpy.gp.RasterCalculator_sa(expression, out_file)
    
    print "Processed " + out_file
   

本代碼使用Times()函數(shù)對兩個柵格進行相乘

5. 實現(xiàn)五(文件夾中所有tif文件相加)

實現(xiàn)文件夾中所有tif文件相加:文章來源地址http://www.zghlxwxcb.cn/news/detail-429503.html

# -*- coding: cp936 -*-
import arcpy
import os

arcpy.CheckOutExtension('Spatial')

# 設置工作空間
arcpy.env.workspace = r"D:\RSE\dataset\TbyP"

# 設置輸出文件夾路徑
out_folder = r"D:\RSE\dataset\TbyP"

# 獲取輸入文件夾中的所有tif文件
tif_list = arcpy.ListRasters("*", "TIF")

# 如果沒有tif文件,則輸出提示信息
if not tif_list:
    print("There are no TIFF files in the input folder.")
else:
    # 構造柵格計算器表達式
    #expression = " + ".join(tif_list)
    expression = ' + '.join(['"' + tif + '"' for tif in tif_list])

    # 構造輸出文件路徑
    out_file = os.path.join(out_folder, "outputAll.tif")

    # 使用柵格計算器對所有tif文件進行相加
    arcpy.gp.RasterCalculator_sa(expression, out_file)

    print"The output file is located at " + out_file
    

到了這里,關于Python地理數(shù)據(jù)處理 二十一:基于arcpy批量操作(三)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【數(shù)據(jù)集處理】基于Python處理EAR5數(shù)據(jù)

    【數(shù)據(jù)集處理】基于Python處理EAR5數(shù)據(jù)

    ERA5是ECMWF(歐洲中期天氣預報中心)對1950年1月至今全球氣候的第五代大氣再分析數(shù)據(jù)集。 包含了四個 基本變量(日平均溫度、降水、比濕度和距離地表2米的氣壓) ,這些變量在每日時間尺度上覆蓋全球,從而可以對不同地區(qū)和時間段進行全面和統(tǒng)一的分析 時間分辨率:194

    2024年02月05日
    瀏覽(26)
  • (二十八)ArcGIS空間數(shù)據(jù)的轉換與處理——數(shù)據(jù)結構轉換

    (二十八)ArcGIS空間數(shù)據(jù)的轉換與處理——數(shù)據(jù)結構轉換

    空間數(shù)據(jù)的來源很多,如地圖、工程圖、規(guī)劃圖、航空與遙感影像等,因此空間數(shù)據(jù)也有多種格式。根據(jù)應用需要,需對數(shù)據(jù)進行格式轉換,不同數(shù)據(jù)結構間的轉換主要包括矢量數(shù)據(jù)到柵格數(shù)據(jù)的轉換和柵格數(shù)據(jù)到矢量數(shù)據(jù)的轉換。利用數(shù)據(jù)格式轉換工具,可以轉換Raster、

    2024年02月11日
    瀏覽(34)
  • 基于python的心臟病個人指數(shù)數(shù)據(jù)集數(shù)據(jù)處理——結課論文

    基于python的心臟病個人指數(shù)數(shù)據(jù)集數(shù)據(jù)處理——結課論文

    前言: 此論文是小趙的python數(shù)據(jù)分析與應用的結課作業(yè) , 未上傳論文涉及的所有數(shù)據(jù)集,本論文所涉及的數(shù)據(jù)預處理,數(shù)據(jù)分析和可視化僅以這些數(shù)據(jù)集為準,所有處理方法,結果以及結論僅個人觀點。 心臟病個人指數(shù)數(shù)據(jù)集數(shù)據(jù)處理 摘要: ??? 本論文包含了對心臟病個

    2024年02月04日
    瀏覽(19)
  • 【API篇】十一、Flink水位線傳遞與遲到數(shù)據(jù)處理

    【API篇】十一、Flink水位線傳遞與遲到數(shù)據(jù)處理

    上游task處理完水位線,時鐘改變后,要把數(shù)據(jù)和當前水位線繼續(xù)往下游算子的task發(fā)送。當一個任務接收到多個上游并行任務傳遞來的水位線時,以 最小的那個作為當前任務的事件時鐘 。如圖:上游算子并行度為4,: 總結: 接收到上游多個,取最小 往下游多個發(fā)送,廣播

    2024年02月08日
    瀏覽(22)
  • 基于Python的微信聊天記錄分析——數(shù)據(jù)處理與分析

    基于Python的微信聊天記錄分析——數(shù)據(jù)處理與分析

    本篇為《基于Python的微信聊天記錄分析》系列的第二篇,主要講解獲取到聊天記錄數(shù)據(jù)之后,在Python環(huán)境下對其進行數(shù)據(jù)處理、分析和可視化,涉及庫的安裝、相關操作的Python代碼等內容。希望和大家多多交流,共同進步! 數(shù)據(jù)分析的基礎是“數(shù)據(jù)”,俗話說基礎不牢,地動

    2024年02月19日
    瀏覽(88)
  • 大數(shù)據(jù)Flink(六十一):Flink流處理程序流程和項目準備

    大數(shù)據(jù)Flink(六十一):Flink流處理程序流程和項目準備

    文章目錄 Flink流處理程序流程和項目準備 一、Flink流處理程序的一般流程

    2024年02月11日
    瀏覽(28)
  • 數(shù)據(jù)分享|基于Python、Hadoop零售交易數(shù)據(jù)的Spark數(shù)據(jù)處理與Echarts可視化分析

    數(shù)據(jù)分享|基于Python、Hadoop零售交易數(shù)據(jù)的Spark數(shù)據(jù)處理與Echarts可視化分析

    案例數(shù)據(jù)集是在線零售業(yè)務的交易數(shù)據(jù),采用Python為編程語言,采用Hadoop存儲數(shù)據(jù),采用Spark對數(shù)據(jù)進行處理分析,并使用Echarts做數(shù)據(jù)可視化。由于案例公司商業(yè)模式類似新零售,或者說有向此方向發(fā)展利好的趨勢,所以本次基于利于公司經(jīng)營與發(fā)展的方向進行數(shù)據(jù)分析。

    2024年02月11日
    瀏覽(37)
  • 基于Python的海量豆瓣電影、數(shù)據(jù)獲取、數(shù)據(jù)預處理、數(shù)據(jù)分析、可視化、大屏設計項目(含數(shù)據(jù)庫)

    基于Python的海量豆瓣電影、數(shù)據(jù)獲取、數(shù)據(jù)預處理、數(shù)據(jù)分析、可視化、大屏設計項目(含數(shù)據(jù)庫)

    項目介紹 有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主?。。。。。。。。?! 本文基于Python的網(wǎng)絡爬蟲手段對豆瓣電影網(wǎng)站進行數(shù)據(jù)的抓取,通過合理的分析豆瓣網(wǎng)站的網(wǎng)頁結構,并設計出規(guī)則來獲取電影數(shù)據(jù)的JSON數(shù)據(jù)包,采用正態(tài)分布的延時措施

    2024年02月12日
    瀏覽(50)
  • Python深度學習實例--基于卷積神經(jīng)網(wǎng)絡的小型數(shù)據(jù)處理(貓狗分類)

    Python深度學習實例--基于卷積神經(jīng)網(wǎng)絡的小型數(shù)據(jù)處理(貓狗分類)

    卷積神經(jīng)網(wǎng)絡,也叫 CNN ,它是計算機視覺應用幾乎都在使用的一種深度學習模型。我們都知道,成功提取顯著相關的特征是保障任何機器學習的算法成功的保障,傳統(tǒng)的機器學習模型依賴領域專家的輸入特征,或者基于計算特征的提取技術。神經(jīng)網(wǎng)絡能夠自動地從原始數(shù)據(jù)

    2024年02月03日
    瀏覽(28)
  • python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解

    python 數(shù)據(jù)、曲線平滑處理——基于Numpy.convolve實現(xiàn)滑動平均濾波——詳解

    滑動平均濾波法 (又稱: 遞推平均濾波法 ),它把連續(xù)取N個采樣值看成一個隊列 ,隊列的長度固定為N ,每次采樣到一個新數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù)(先進先出原則) 。把隊列中的N個數(shù)據(jù)進行算術平均運算,就可獲得新的濾波結果。 N值的選取:流量,N=

    2024年02月09日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包