日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Arcgis】基于泰森多边形求流域面降水量

發(fā)布時間:2023/12/29 编程问答 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Arcgis】基于泰森多边形求流域面降水量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

泰森多邊形(Thiessen Polygon)法

泰森多邊形又叫馮洛諾伊圖(Voronoi diagram),得名于Georgy Voronoi,是一組由連接兩鄰點線段的垂直平分線組成的連續(xù)多邊形。一個泰森多邊形內(nèi)的任一點到構(gòu)成該多邊形的控制點的距離小于到其他多邊形控制點的距離。

1.1 原理

在開展流域水文分析時,往往流域范圍僅有少量雨量站,為較為準確地將雨量站點實際觀測的降雨量反應(yīng)到區(qū)域或子流域上,需要進行數(shù)據(jù)的鄰近分析,而泰森多邊形方法被廣泛應(yīng)用與計算流域平均面雨量。
流域上各點的雨量用離該點最近雨量站的降雨量代表。用泰森多邊形法計算流域的平均降雨量,是以各雨量站之間連線的垂直平分線,把流域劃分為若干個多邊形,然后以各個多邊形的面積為權(quán)數(shù),計算各站雨量的加權(quán)平均值,并把它作為流域的平均降雨量,一般來說結(jié)果比單純算術(shù)平均法更為精確。

泰森多邊形法特點:

  • 每個泰森多邊形內(nèi)僅含有一個離散點數(shù)據(jù)
  • 泰森多邊形內(nèi)的點到相應(yīng)離散點的距離最近
  • 位于泰森多邊形邊上的點到其兩邊的離散點的距離相等

面雨量計算方法:

  • a.先計算每個泰森多形內(nèi)的平均雨量,就是該多邊形內(nèi)的雨量站雨量乘以權(quán)重,權(quán)重即該多邊形面積值除以流域面積。
  • b.把所有多邊形內(nèi)的平均雨量相加,再除以多邊形個數(shù)即是結(jié)果。

2 操作步驟

1.首先,如下圖所示,在ArcMap中導(dǎo)入站點.shp(含降雨量數(shù)據(jù))和流域邊界.shp。需要注意的是,二者均為shp矢量數(shù)據(jù)。

2.接下來,利用ArcToolbox工具中的Create Thiessen Polygons工具(Toolboxes → Analysis Tools → Proximity → Create ThiessenPolygons)進行泰森多邊形的創(chuàng)建。
點擊Create Thiessen Polygons彈出窗口后所做的參數(shù)設(shè)置如下圖所示,在Input Features中輸入RainfallStation數(shù)據(jù),在Output Features Class中自定義輸出路徑(一般選擇之前已經(jīng)定義好的默認路徑),在Output Fields (optional)中選擇All(即輸出所有屬性字段)。

3.設(shè)置Create Thiessen Polygons里的Environments
輸入界面設(shè)置完成后進行環(huán)境變量設(shè)置,選擇Create Thiessen Polygons窗口下面的【Environments】按鈕,進入環(huán)境設(shè)置窗口,設(shè)置Output Coordinate System,選擇Same as Input,也可以選擇與untitled_poly保持一致的坐標系,不過選擇與與untitled_poly保持一致的坐標系很有可能生不成泰森多邊形,因此可以先選擇與輸入一致的坐標系,后面需要修改坐標系的時候再修改一下就可以了。
然后對Extent進行設(shè)置,設(shè)置生成泰森多邊形的四周邊界,此處選擇Same as Layer untitled_poly,其余保持默認。如圖所示:

以上需要設(shè)置的地方都設(shè)置完成后,點擊OK,在Create Thiessen Polygons窗口再點擊OK,則生成的泰森多邊形如圖所示:

【另】報錯
ERROR:Input RainfallStation does not hace OIDs.
需要進行一步操作,先給降水數(shù)據(jù)表添加object_ID字段!!!

4.現(xiàn)在生成的泰森多邊形是一個將untitled_poly流域包含在內(nèi)的大四邊形,不能直接用于untitled_poly流域的面雨量計算,因此需要按照untitled_poly流域的形狀對新生成的泰森多邊形數(shù)據(jù)進行裁剪。
采用ArcToolbox工具中的Clip工具(Toolboxes → Analysis Tools → Extract → Clip)進行裁剪,在彈出的窗口中如下圖進行設(shè)置:單位選擇Meters

點擊OK后,裁剪后得到的圖如下圖所示:

5.接下來計算裁剪后生成的每一個多邊形的面積,打開裁剪后的Rainfall_Station_CreateThies_Clip數(shù)據(jù)的屬性表,并添加Area字段,并計算面積。(添加面積字段方法:單擊Table Options → Add Field…,添加面積字段后,右擊Area字段,點擊Calculate Geometry…,然后按雨量站名稱類別顯示如下圖所示:

各子區(qū)域面積如下:

【另】出錯

【另】出錯長精度

6.然后將屬性表中所有數(shù)據(jù)全部選中,右擊如圖所示位置屬性列表條件field——幾何計算——導(dǎo)出dbf。

點擊Copy Selected,粘貼到excel表格中進行面積權(quán)重的計算,最后根據(jù)各雨量站點所測的降雨量進行加權(quán)平均,就可以計算出untitled_poly流域的降雨量了。計算結(jié)果如圖所示:

另:利用MATLAB計算面降水量

clc close all clear load('P.mat') load('areaRatio.mat') % 求各站點年平均降水量 % ------------------------------------------------------------------ % 按年劃分降水 PAnnual = cell(nStation, 1); % zeros(nyear,365); PAnnually = zeros(nStation,nYear); PAveAnnual = zeros(1,nStation); % 按月劃分降水 PMonth = cell(nStation,2); % 元胞數(shù)組(月降水數(shù)據(jù)) PAveMonth = zeros(nStation,12); % 元胞數(shù)組(月平均降水) for in=1:nStationPAnnual{in,1} = year_data_simple( yearStart, yearEnd, P(:,in));PAnnually(in,:) = sum(PAnnual{in,1},2)';PAveAnnual(1,in) = mean( sum( PAnnual{in,1}, 2) ); % 多年平均降水PMonth{in,1} = month_data_simple( yearStart, yearEnd, P(:,in));PMonth{in,2} = sum( PMonth{in,1}, 2 );tempP = reshape( PMonth{in,2}, 12, nYear);PAveMonth(in,:) = mean(tempP,2)'; end % 計算面降水量:各月降水占比和年降水量變化 PArea = sum (PAveMonth.*areaRatio, 1); PAreaYear = sum (PAnnually.*areaRatio, 1);

成圖如下所示:

參考

1.CSDN博客-泰森多邊形的matlab實現(xiàn)
2.泰森多邊形計算流域面雨量

總結(jié)

以上是生活随笔為你收集整理的【Arcgis】基于泰森多边形求流域面降水量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。