本篇博文爲博主(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版本。對象