国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))

這篇具有很好參考價值的文章主要介紹了矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

矢量數(shù)據(jù)在數(shù)據(jù)采集過程中由于數(shù)據(jù)處理導(dǎo)致出現(xiàn)局部狹窄的面狀部分,如下圖

矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))

1. 定義和解決方法

狹長結(jié)構(gòu)是指圖斑幾何形態(tài)上窄而長的部分,符號化后出現(xiàn)圖形粘連壓蓋現(xiàn)象,導(dǎo)致難以在圖面上清晰地表達出來。因此,依據(jù)地圖表達比例尺因素需要對狹長結(jié)構(gòu)進行融解處理。在遙感影像提取的地物圖斑中,既存在單個圖斑整體上呈現(xiàn)狹長形態(tài),也存在圖斑的局部結(jié)構(gòu)呈狹長狀分布。針對圖斑狹長結(jié)構(gòu)的探測與一致性處理問題已經(jīng)引起相關(guān)學(xué)者的注意,并提出了相應(yīng)的算法模型。例如,艾廷華等人利用約束德勞奈(Delaunay)三角網(wǎng)提取狹長圖斑的骨架結(jié)構(gòu),結(jié)合 空間上的全覆蓋、無重疊特點,設(shè)計了狹長圖斑的無縫剖分與一致性融解方法。 相關(guān)學(xué)者對 狹長圖斑提取的骨架線進行修正,優(yōu)化狹長圖斑區(qū) 域的剖分結(jié)構(gòu)與融解結(jié)果。 江寶得等人運用Delaunay三角網(wǎng)對圖斑局部狹長結(jié)構(gòu)進行分析探測,并建立了專門的一致性剖分策略。

1. 歷史判斷方法

使用圖斑的周長/面積<0.5便是狹長圖斑

但是上述方法存在一定的問題,沒有嚴謹?shù)臄?shù)學(xué)邏輯,所以存在非常大的漏洞

2. 圖形變化消除狹長部分

設(shè):

  • 狹長閾值:圖斑中狹長部分的寬度閾值
  • S(原有):原有面狀圖斑

解:

  • S(內(nèi)縮): 將S(原有)數(shù)據(jù)通過Buffer算法內(nèi)縮狹長閾值/2
  • S(恢復(fù)):將S(內(nèi)縮)外擴狹長閾值/2
  • S(結(jié)果):使用S(恢復(fù))擦除S(原有)的面,得到的結(jié)果
  • 判斷S(結(jié)果)的面積是否大于面積閾值>0

3. 解決方法的細節(jié)

  1. 不能使用ArcGIS的buffer算法,ArcGIS的buffer算法在拐點處會生成為弧線。
  2. 面積閾值需要做一些調(diào)整,由于Buffer算法的特殊性會存在小范圍的丟失
  3. S(結(jié)果)就是錯誤結(jié)果。

3.1. PostGIS的Buffer函數(shù)參數(shù)

st_buffer(geometry,5,'endcap=square join=mitre');

具體可以參見筆者博客:PostGIS的Geometry Processing 幾何處理_1 ST_Buffer&&ST_BuildArea

4. 解決方法

4.1. PostGIS

  1. 原有圖斑
--原始圖斑
select st_geomfromgeojson('
{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:4526"}},"coordinates":[[[[38526197.78691587,3946082.078275221],[38526239.096389465,3946081.883067248],[38526238.06191367,3946036.096619079],[38526272.53906836,3946035.789329056],[38526273.51750401,3946081.464537357],[38526318.149973966,3946079.913959388],[38526314.70475503,3945983.071421279],[38526269.72318699,3945985.068052262],[38526271.88954763,3946029.693470535],[38526238.0934658,3946029.695052562],[38526237.20585602,3945985.275129035],[38526191.99821754,3945985.892739444],[38526191.99821754,3945985.892739444],[38526197.78691587,3946082.078275221]]]]}
');

矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))

  1. 內(nèi)縮圖斑
--內(nèi)縮圖斑
select st_buffer(st_setsrid(st_geomfromtext  ('
MULTIPOLYGON (((38526197.78691587 3946082.078275221, 38526239.096389465 3946081.883067248, 38526238.06191367 3946036.096619079, 38526272.53906836 3946035.789329056, 38526273.51750401 3946081.464537357, 38526318.149973966 3946079.913959388, 38526314.70475503 3945983.071421279, 38526269.72318699 3945985.068052262, 38526271.88954763 3946029.693470535, 38526238.0934658 3946029.695052562, 38526237.20585602 3945985.275129035, 38526191.99821754 3945985.892739444, 38526191.99821754 3945985.892739444, 38526197.78691587 3946082.078275221)))

'),4526),-5,'endcap=square join=mitre');

矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))

  1. 還原圖斑
--外擴圖斑
select st_buffer(st_setsrid(st_geomfromtext('
MULTIPOLYGON (((38526202.49370748 3946077.055977445, 38526233.9826907 3946076.9071762124, 38526232.94869538 3946031.14199388, 38526233.12135005 3946031.140455033, 38526232.306116015 3945990.34253409, 38526197.30384319 3945990.820722484, 38526202.49370748 3946077.055977445)), ((38526276.946718015 3946030.749845702, 38526277.432169005 3946030.745518946, 38526278.40783909 3946076.291625642, 38526312.97522189 3946075.090719166, 38526309.88725189 3945988.290182704, 38526274.96075535 3945989.840491601, 38526276.946718015 3946030.749845702)))
'),4526),5,'endcap=square join=mitre');

矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))

  1. 結(jié)果圖斑
select ST_MakeValid(ST_Difference(st_setsrid(st_geomfromtext  ('
MULTIPOLYGON (((38526197.78691587 3946082.078275221, 38526239.096389465 3946081.883067248, 38526238.06191367 3946036.096619079, 38526272.53906836 3946035.789329056, 38526273.51750401 3946081.464537357, 38526318.149973966 3946079.913959388, 38526314.70475503 3945983.071421279, 38526269.72318699 3945985.068052262, 38526271.88954763 3946029.693470535, 38526238.0934658 3946029.695052562, 38526237.20585602 3945985.275129035, 38526191.99821754 3945985.892739444, 38526191.99821754 3945985.892739444, 38526197.78691587 3946082.078275221)))
'),4526),st_setsrid(st_geomfromtext  ('
MULTIPOLYGON (((38526272.18562671 3946035.79247923, 38526272.53906836 3946035.7893290548, 38526273.51750401 3946081.464537357, 38526318.149973966 3946079.913959388, 38526314.70475503 3945983.071421279, 38526269.72318699 3945985.068052262, 38526272.18562671 3946035.79247923)), ((38526197.78691587 3946082.078275221, 38526239.096389465 3946081.883067248, 38526238.06191367 3946036.096619083, 38526238.221355066 3946036.0951980045, 38526237.20585602 3945985.2751290346, 38526191.99821754 3945985.892739444, 38526197.78691587 3946082.078275221)))
'),4526)))

矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))

4.2. Java解決方案

  1. Buffer算法

使用Java中JTS的算法,其中有部分可以實現(xiàn)上述Buffer效果

            bufferDistance=-5
            BufferParameters bufferParameters = new BufferParameters();  
            bufferParameters.setEndCapStyle(BufferParameters.CAP_SQUARE);  
            bufferParameters.setJoinStyle(BufferParameters.JOIN_MITRE);  
            bufferParameters.setMitreLimit(8.0);  
            bufferParameters.setQuadrantSegments(8);  
            BufferOp bufferOp = new BufferOp(geometry, bufferParameters);  
            Geometry resultGeometry = bufferOp.getResultGeometry(bufferDistance);    

  1. 圖形計算使用JTS算法即可
序號 關(guān)系名稱 關(guān)系說明 JTS接口
1 相等(Equals): 幾何形狀拓撲上相等。 equals(geometry)
2 脫節(jié)(Disjoint): 幾何形狀沒有共有的點。 disjoint(geometry)
3 相交(Intersects): 幾何形狀至少有一個共有點(區(qū)別于脫節(jié)) intersects(geometry)
4 接觸(Touches): 幾何形狀有至少一個公共的邊界點,但是沒有內(nèi)部點。 disjoint(geometry)
5 交叉(Crosses): 幾何形狀共享一些但不是所有的內(nèi)部點。 crosses(geometry)
6 內(nèi)含(Within): 幾何形狀A(yù)的線都在幾何形狀B內(nèi)部。 within(geometry)
7 包含(Contains): 幾何形狀B的線都在幾何形狀A(yù)內(nèi)部(區(qū)別于內(nèi)含) contains(geometry)
8 重疊(Overlaps): 幾何形狀共享一部分但不是所有的公共點,而且相交處有他們自己相同的區(qū)域。 overlaps(geometry)

4.3. C#中的解決方法

使用JTS的C#版本的NTS就可以。文章來源地址http://www.zghlxwxcb.cn/news/detail-422333.html

到了這里,關(guān)于矢量圖斑局部狹長判斷和定位局部狹長部分(PostGIS、Java、C#實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 全新CorelDRAW2023最新版矢量圖軟件功能簡介

    全新CorelDRAW2023最新版矢量圖軟件功能簡介

    CorelDRAW2023簡介 :設(shè)計繪畫 CorelDraw 是一個繪圖與排版的軟件,它廣泛地應(yīng)用于商標設(shè)計、標志制作、模型繪制、插圖描畫、排版及分色輸出等諸多領(lǐng)域。 作為一個強大的繪圖軟件,它被喜愛的程度可用下面的事實說明:用作商業(yè)設(shè)計和美術(shù)設(shè)計的PC機幾乎都安裝了CorelDraw!

    2023年04月09日
    瀏覽(33)
  • uni-app引用外部圖標庫(阿里矢量圖)

    uni-app引用外部圖標庫(阿里矢量圖)

    作為前端程序員,nui-app是必備的,但是有時候內(nèi)置的圖標,組件又不完全滿足,這里就可以引進外部圖標,這里引用的是阿里矢量圖標 第一步,在項目目錄中新建文件夾,如圖 第二步,登上阿里矢量圖官網(wǎng),將自己需要的圖片先加入購物車,再點擊右上角購物車? ? 第三部

    2024年02月14日
    瀏覽(23)
  • arcgis 柵格數(shù)據(jù)處理2——柵格轉(zhuǎn)地級市(柵格轉(zhuǎn)矢量圖)

    arcgis 柵格數(shù)據(jù)處理2——柵格轉(zhuǎn)地級市(柵格轉(zhuǎn)矢量圖)

    選中“自定義”中的“擴展模塊” 在彈出的模塊中選中能選的模塊,此處需要選擇“spatial analysis”以進行下一步分析 選中并輸出柵格 注意是否需要“簡化面” 按照需求選擇平均值,或者總和等 conversion tools ——表轉(zhuǎn)excel

    2024年03月11日
    瀏覽(42)
  • WPF-UI HandyControl 控件簡單實戰(zhàn)+IconPacks矢量圖導(dǎo)入

    WPF-UI HandyControl 控件簡單實戰(zhàn)+IconPacks矢量圖導(dǎo)入

    因為HandyControl 的功能非常的豐富,我打算完整的了解一下HandyControl 整個控件的基本使用,而且我的網(wǎng)易云WPF項目也打算用UserControl 進行重構(gòu) WPF-UI HandyControl 簡單介紹 HandyControl Visual Studio 插件 HandyControl Github地址 HandyControl 官方中文文檔 HandyControl 實戰(zhàn)Gitee倉庫 我們下載了Han

    2024年02月02日
    瀏覽(118)
  • Python基于Excel生成矢量圖層及屬性表信息:ArcPy

    Python基于Excel生成矢量圖層及屬性表信息:ArcPy

    ??本文介紹基于 Python 中 ArcPy 模塊,讀取 Excel 表格數(shù)據(jù)并生成帶有 屬性表 的 矢量要素圖層 ,同時配置該圖層的 坐標系 的方法。 ??首先,我們來明確一下本文所需實現(xiàn)的需求。 ??現(xiàn)有一個記錄 北京市部分PM2.5濃度監(jiān)測站點 信息的 Excel 表格數(shù)據(jù),格式為 .xls ;文件

    2024年03月20日
    瀏覽(90)
  • Latex | 使用MATLAB生成.eps矢量圖并導(dǎo)入Latex中的方法

    Latex | 使用MATLAB生成.eps矢量圖并導(dǎo)入Latex中的方法

    用Latex時寫paper時,要導(dǎo)入MATLAB生成的圖進去 (1)在MATLAB生成圖片的窗口中,導(dǎo)出.eps矢量圖 (2)把圖上傳到overleaf的目錄 (3)在文中添加相應(yīng)代碼 (1)MATLAB生成圖像后,生成點擊“文件”-“導(dǎo)出設(shè)置(R)” (2)參數(shù)我這里是選擇了默認,再點擊右側(cè)欄的“導(dǎo)出” (3)

    2024年02月15日
    瀏覽(60)
  • 將Matlab圖窗中的可視化保存為背景透明的矢量圖

    將matlab繪制的結(jié)果復(fù)制為矢量圖時,去除背景的操作如下: 先打開/繪制圖形窗口(不要關(guān)閉) 在命令行終端輸入 axis off 關(guān)閉坐標系 繼續(xù)在命令行終端分別輸入: ax = gca; copygraphics(ax,\\\'ContentType\\\',\\\'vector\\\',\\\'BackgroundColor\\\',\\\'none\\\'); 此時,背景透明的矢量圖就保存在系統(tǒng) 剪貼板 上了,詳

    2024年01月21日
    瀏覽(24)
  • 優(yōu)化MATLAB中quiver函數(shù)繪制箭頭圖或矢量圖(1)-MATLAB開發(fā)

    優(yōu)化MATLAB中quiver函數(shù)繪制箭頭圖或矢量圖(1)-MATLAB開發(fā)

    Matlab的基本數(shù)據(jù)單位是矩陣,利用Matlab可以較方便得繪制向量分布圖,比如空氣流的采樣數(shù)據(jù);函數(shù)的梯度;曲面的法線向量等等。Matlab自帶的quiver和quiver3函數(shù)可以滿足這一需求,但是箭頭的箭型較為簡單,這里主要目的即是進一步繪制更好看的矢量圖。 Matlab中自帶的quiv

    2023年04月21日
    瀏覽(19)
  • draw.io導(dǎo)出矢量圖到word報錯text is not svg - cannot display

    draw.io導(dǎo)出矢量圖到word報錯text is not svg - cannot display

    先參考https://blog.csdn.net/a625750076/article/details/126384831 如果不行,可能是轉(zhuǎn)存的問題 解決方法:直接在draw.io上操作 第一步 第二步 然后再word中粘貼,依舊是矢量圖哦!

    2024年02月12日
    瀏覽(25)
  • 怎么把word里面的彩色圖轉(zhuǎn)化為灰度圖,直接在word里面操作,無需轉(zhuǎn)其他軟件,超簡單?。ㄎ粓D和矢量圖都可以)

    怎么把word里面的彩色圖轉(zhuǎn)化為灰度圖,直接在word里面操作,無需轉(zhuǎn)其他軟件,超簡單?。ㄎ粓D和矢量圖都可以)

    Microsoft Office Word是微軟公司的一個文字處理器應(yīng)用程序。它最初是由Richard Brodie為了運行DOS的IBM計算機而在1983年編寫的。隨后的版本可運行于Apple Macintosh (1984年)、SCO UNIX和Microsoft Windows (1989年),并成為了Microsoft Office的一部分。 Word給用戶提供了用于創(chuàng)建專業(yè)而優(yōu)雅的文檔工具

    2024年02月05日
    瀏覽(114)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包