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

  本篇博文爲博主(whgiser)原創,轉載請註明。html

  空間彙集研究中,地理尺度大多數都是基於格網構建的,只需fishnet下就好了。也常有使用社區、交通小區(TZ)做爲研究單元的。直到發現蜂窩網絡作出的炫酷效果,火燒眉毛想試一下。六邊形能夠說其幾何描述很是完美,但Arcgis並無提供直接的工具生成正六邊形。網絡

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

 

  如今實踐檢驗下。假設如今須要生成1平方千米的蜂窩網絡,按如上推導,其各個參數計算以下:spa

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:1000000  
l: 620.403239 
cellWidth: 1861.209718 
cellHeight: 1074.569932 
deltaX: 930.604859  
deltaY: 537.284966

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

  第一步,生成 fishnet。設置模板範圍爲研究對象,像元寬度和高度值設置爲cellWidth 和 cellHeight,注意勾選建立標註點,設置運行環境便可。3d

  第二步,複製上一步生成的點文件,打開編輯,設置移動距離X = deltaX,Y=deltaY,對點進行偏移。而後將偏移後的點和第一步生成的點進行合併。至此,已完成前期全部工做。內容以下:code

  第三步,運用泰森多邊形工具,生成網絡,刪去周邊不須要的多邊形,便可獲得結果。經面積驗證,基本上爲1平方千米,會有很小的精度偏差,這是因爲計算過程當中精度損失,可忽略不計。htm

  在本身動手實現蜂窩網絡事後,發現仍是滿有意思的操做。另外,若是不想這麼麻煩去算的話,推薦一個直接生成的工具Create Hexagon Tessellation,適用於Arcgis 10.2版本。對象

相關文章
相關標籤/搜索