ArcGIS中實現指定面積蜂窩(正六邊形)方法

2022-07-17 22:06:13 字數 1338 閱讀 3840

空間聚集研究中,地理尺度大多數都是基於格網構建的,只需fishnet下就行了。也常有使用社群、交通小區(tz)作為研究單元的。直到發現蜂窩網路做出的炫酷效果,迫不及待想試一下。六邊形可以說其幾何描述非常完美,但arcgis並沒有提供直接的工具生成正六邊形。

受博文啟發,該博文闡述了利用泰森多邊形方法生成蜂窩,但是文章中沒講具體如何去算長度,只是基於大概繪製的,並且提到fishnet寬高比為1.5,其實是不精確的,畫出來的並不是嚴格意義上的正六邊形。經推理,假設需求的蜂窩單元為**平方公里或公頃,根據幾何推導,可準確計算各個引數的值,從而能繪製出準確的蜂窩網路。具體推導如下:

現在實踐檢驗下。假設現在需要生成1平方公里的蜂窩網路,按如上推導,其各個引數計算如下:

area = 1000000 ## 

面積l = np.sqrt((2*area)/(3*np.sqrt(3))) #

#蜂窩邊長

cellwidth = 3*l #

# 漁網寬度

cellheight = (np.sqrt(3))*l #

# 漁網高度

deltax = 1.5 * l #

# 橫向偏移

deltay = (np.sqrt(3)/2)*l #

# 縱向偏移

out

area:1000000l: 620.403239cellwidth: 1861.209718cellheight: 1074.569932deltax: 930.604859deltay: 537.284966

接下來介紹在arcgis中的實現,分三步走。

第一步,生成 fishnet。設定模板範圍為研究物件,像元寬度和高度值設定為cellwidth 和 cellheight,注意勾選建立標註點,設定執行環境即可。

第三步,運用泰森多邊形工具,生成網路,刪去周邊不需要的多邊形,即可得到結果。經面積驗證,基本上為1平方公里,會有很小的精度誤差,這是由於計算過程中精度損失,可忽略不計。

在自己動手實現蜂窩網路過後,發現還是滿有意思的操作。另外,如果不想這麼麻煩去算的話,推薦乙個直接生成的工具create hexagon tessellation,適用於arcgis 10.2版本。

ArcGIS中求面積或周長

點一下柵格計算器的幫助,會有下面的解法 to calculate area dim output as double dim parea as iarea set parea shape output parea.area to calculate length or perimeter depen...

用DELPHI中實現RAR檔案解壓到指定一目錄

乙個rar壓縮檔案,用delphi編的程式開啟它並解壓到某一目錄,怎麼實現的?自己搞定了 例子 winrar.exe e y c windows desktop ghost.rar d 但新的問題出來了,如果在解壓過程中使用者終止了解壓,我怎麼在程式中判斷解壓是否 順利完成了的!winrar 異常終...

VC中實現在指定控制項上彈出右鍵選單

新增選單資源idr popmenu,在資源編輯器中編輯選單第一列,並且為每個選單項新增處理函式。在檢視類中過載wm contextmenu訊息 此訊息在滑鼠右鍵壓下並抬起後觸發 的處理函式oncontextmenu 中新增如下 crect rect 定義矩形區域 getdlgitem 指定控制項的i...