Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

arcpy多線程熱力圖

2020 年 1 月 27 日 gis开发

    起因是這樣一段對話,領導:你會用腳本生成熱力圖圖片嗎?我:可以研究下。領導:那這個需求就給你了。我:……<br>

    經過一番研究,研究出大概的思路,先將有經緯度的表中的數據篩選出表並生成xy事件,接著利用核密度工具生成柵格,最後呢裁剪柵格通過mapping包出圖。<br>

    出圖過程比較慢,所以考慮使用多線程(一張圖五分鍾,十九張圖多線程九分鍾你說吼不吼)。多線程第一次用,一開始打算用數據庫存放數據表和柵格,不過鎖表比較難解決,于是選擇了簡單粗暴地在文件地理數據庫(gdb)裏處理,每個文件使用一個gdb,這樣速度快也不用考慮會被鎖表,處理完以後就直接刪庫(跑路)。多線程中盡量不要有刪除操作,容易沖突,把刪除都放在單線程中這樣不容易出錯。

“`

MyGPpool = multiprocessing.Pool(19)

results = MyGPpool.map(batch, parameters)

MyGPpool.close()

MyGPpool.join()

“`

    arcpy.mapping導出格式推薦使用png格式,可以設置透明背景,最重要一點就是可以在浏覽器中查看(這個是tif格式難達到的,也可能是我沒找到好的方法)。replaceDataSource替換數據源的時候要設置好路徑(不是完整路徑不是完整路徑不是完整路徑),數據源類型,數據名稱。

“`

mxd = arcpy.mapping.MapDocument(mxd_file)

df = arcpy.mapping.ListDataFrames(mxd, '圖層')[0]

lyr = arcpy.mapping.ListLayers(mxd)[0]

datasetName = os.path.basename(data_raster)

dataRasterWorkspace = os.path.dirname(data_raster)

if lyr.supports("DATASOURCE"):

lyr.replaceDataSource(dataRasterWorkspace,"FILEGDB_WORKSPACE", datasetName)

df.extent = extent

df.panToExtent(extent)

arcpy.mapping.ExportToPNG(mxd, out_file, df, color_mode='24-BIT_TRUE_COLOR', world_file=True,background_color="No Color", transparent_color="No Color")

else:

arcpy.AddMessage("error")

arcpy.RefreshActiveView()

del mxd, df, lyr

“`

相關文章:

  • 獎學金得主辍學“栽花”
  • 智能行李箱裝感應器 即時掌握輸送帶操作情況
  • 新加坡|最藝術的甜點、最美味披薩、最創意中餐、最綠酒店
  • 【數碼化 趁早開始系列】冷氣服務公司逐步克服傳統運作挑戰
  • 【數碼化趁早開始系列】降低創業成本支出 從科技應用做起
  • 在印尼,等待一個社交電商獨角獸的誕生
科技

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們