麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

mapshaper系列之四 - 編輯命令

2019-11-06 08:50:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

    前面介紹了mapshaper的輸入/輸出命令,本節(jié)介紹mapshaper的核心內(nèi)容:編輯命令。編輯命令有很多,下面一一介紹。

1. -clip<裁剪>

移除裁剪范圍外的要素或部分要素。有如下參數(shù):

source:數(shù)據(jù)源,通過(guò)裁剪多邊形的文件名或圖層id指定裁剪的多邊形要素?cái)?shù)據(jù)集;

bbox=<xmin,ymin,xmax,ymax>:通過(guò)bbox指定裁剪的范圍,刪除bbox范圍外的要素或部分要素;

remove-slivers:移除由裁剪產(chǎn)生的極小長(zhǎng)條形多邊形;

其他可選項(xiàng):name和target。

#示例: 使用land-area.shp裁剪usa_counties.shpmapshaper usa_counties.shp -clip land-area.shp -o

2. -dissolve<合并>

以指定的屬性合并一組要素,若沒(méi)有指定屬性字段,則合并所有要素。對(duì)于多邊形圖層,-dissolve 在合并相鄰多邊形時(shí)會(huì)刪除公共邊界;對(duì)于點(diǎn)圖層,-dissolve 合并后得到一組點(diǎn)的質(zhì)心;-dissolve 不支持線圖層。

<field> :合并依賴的屬性名稱;

weight= :(針對(duì)點(diǎn)圖層)指定屬性名稱或JS表達(dá)代表各點(diǎn)在生成質(zhì)心中的權(quán)重。例如,如下命令估算美國(guó)人口分布的質(zhì)心:

mapshaper census_tracts.shp -points -dissolve weight=POPULATIONplanar:(針對(duì)點(diǎn)圖層)在計(jì)算合并后的質(zhì)心時(shí),將十進(jìn)制的度坐標(biāo)當(dāng)作平面直角坐標(biāo)看待。默認(rèn)情況下,mapshaper在3D空間中計(jì)算經(jīng)緯度點(diǎn)的質(zhì)心);

calc=:在合并后的圖層中使用構(gòu)建的JS函數(shù)來(lái)創(chuàng)建屬性,詳情參見(jiàn)下面的示例,也可參考 -calc支持的一系列函數(shù);

sum-fields=:合并時(shí)求和的字段名稱,多個(gè)用逗號(hào)分隔;

copy-fields=:合并時(shí)復(fù)制(保留)的字段,多個(gè)用逗號(hào)分開(kāi);字段值來(lái)源于待合并的一組要素中第一個(gè)要素的值;

其他可選項(xiàng):name= 和 target=

# 示例:以屬性STATE合并要素mapshaper counties.shp -dissolve STATE -o states.shp# 示例: 以屬性STATE合并要素,同時(shí)計(jì)數(shù)要素個(gè)數(shù)、總?cè)丝凇⒆畲笕丝诤妥钚∪丝趍apshaper counties.shp -dissolve STATE calc='n = count(), total_pop = sum(POP), max_pop = max(POP), min_pop = min(POP)'

3. -dissolve2<合并>

與dissolve類似,但可以用來(lái)合并相鄰或重疊的多邊形(考慮拓?fù)潢P(guān)系),若多邊形不相交且數(shù)據(jù)量很大,使用dissolve。

4. -each

將JS表達(dá)式應(yīng)用于圖層中的每個(gè)要素,用來(lái)創(chuàng)建、更新和刪除數(shù)據(jù)項(xiàng)。數(shù)據(jù)屬性向本地屬性一樣使用,其他要素級(jí)的屬性作為只讀屬性通過(guò)this獲取。

建議:當(dāng)使用bash shell(Mac和linux)時(shí),用單引號(hào)(' ')將JS表達(dá)式括起來(lái)以免shell表達(dá)式中的"!”和其他特殊字符。在WIndows中使用命令語(yǔ)句時(shí),用雙引號(hào)(" ")將JS表達(dá)式括起來(lái)。

<exPRession>:應(yīng)用于每個(gè)要素的JS表達(dá)式;

where=:用于篩選要素子集的二級(jí)JS表達(dá)式;

target=:目標(biāo)圖層;

this屬性:除非特殊說(shuō)明,否則this屬性只能讀取;

以下適用于所有圖層類型:

this.id:要素的id(數(shù)組型,從0開(kāi)始);

this.properties:要素屬性(可以像本地變量一樣讀寫);

以下只適用于點(diǎn)要素圖層:

this.coordinates:一個(gè)或多個(gè)由[x,y]構(gòu)成的數(shù)組;

this.x: 點(diǎn)的X坐標(biāo),若幾何對(duì)象為空則為null,若為多個(gè)點(diǎn)的要素,則返回第一個(gè)點(diǎn)的X坐標(biāo);

this.y: 點(diǎn)的Y坐標(biāo)或null;

以下只適用于多邊形要素圖層:

this.area:多邊形要素進(jìn)行任何簡(jiǎn)化后的面積;

this.originalArea:多邊形要素沒(méi)有進(jìn)行簡(jiǎn)化前的面積;

this.centroidX :質(zhì)心的X坐標(biāo);

this.centroidY: 質(zhì)心的Y坐標(biāo);

this.innerX:內(nèi)心的X坐標(biāo);

this.innerY: 內(nèi)心的Y坐標(biāo);

以下適用于多邊形和線要素圖層:

this.partCount:要素由幾部分構(gòu)成,單部件要素為1,多部件要素 >1,沒(méi)有要素(null)為0;

this.isNull:如果要素沒(méi)有幾何要素返回true;

this.bounds:要素的外接多邊形坐標(biāo)數(shù)組,[xmin, ymin, xmax, ymax]的形式;

this.width:bbox的寬度;

this.height:bbox的高度;

說(shuō)明:1)對(duì)于多部件的多邊形,計(jì)算的質(zhì)心是最大環(huán)的質(zhì)心,且不考慮環(huán)中的空洞;2)除未投影多邊形的面積利用球面幾何以平方米為單位計(jì)算外,其他多邊形的幾何屬性均以平面幾何為基礎(chǔ)進(jìn)行計(jì)算。

示例:

# 創(chuàng)建STATE_FIPS和AREA兩個(gè)字段mapshaper counties.shp -each 'STATE_FIPS=COUNTY_FIPS.substr(0, 2), AREA=this.area'# 刪除STATE_NAME和GEOID兩個(gè)字段mapshaper states.shp -each 'delete STATE_NAME, delete GEOID'# 字段重命名mapshaper states.shp -each 'STATE_NAME=NAME, delete NAME'# 打印NAME屬性mapshaper states.shp -each 'console.log(NAME)'# 為每個(gè)要素指定一個(gè)新的數(shù)據(jù)項(xiàng)mapshaper states.shp -each 'this.properties = {FID: this.id}'

5. -erase<擦除>

移除落在多邊形范圍內(nèi)的要素或部分要素。

<source>:包含移除多邊形的文件或圖層,以文件名或圖層id代表移除多邊形;

bbox=<xmin,ymin,xmax,ymax>:通過(guò)bbox指定擦除的范圍,刪除bbox范圍內(nèi)的要素或部分要素;與 -clip bbox= 類似;

remove-slivers:移除由擦除產(chǎn)生的極小長(zhǎng)條形多邊形;

其他可選項(xiàng):name和target。

#示例: 刪除usa_counties.shp中在lakes.shp范圍內(nèi)的要素mapshaper usa_counties.shp -erase lakes.shp -o

6. -explode<打散>

將多部件要素拆分成幾個(gè)獨(dú)立的要素。

7. -filter<過(guò)濾要素>

使用boolean類型的JS表達(dá)式移除不滿足條件的要素。

<expression>:結(jié)果為true或false的JS表達(dá)式,與 -each的使用場(chǎng)景一致;

remove-empty:刪除幾何要素為空的要素,可以單獨(dú)使用或與expression組合使用;

其他可選項(xiàng):name 和 target。

#示例: 從usa_counties.shp中選擇 STATE字段中包含 ME、VT、NH、MA、CT、RT的要素,并輸出為ne_counties.shpmapshaper usa_counties.shp -filter '"ME,VT,NH,MA,CT,RI".indexOf(STATE) > -1' -o ne_counties.shp8. -filter-fields<過(guò)濾屬性>

刪除屬性表中的屬性,保留列出的屬性,多個(gè)屬性之間用逗號(hào)分隔。

其他可選項(xiàng):<fields> target=

# 示例: 刪除states.shp中的屬性,只保留FID和NAMEmapshaper states.shp -filter-fields FID,NAME9. -filter-islands<過(guò)濾孤島/環(huán)>

移除小的獨(dú)立的環(huán)狀多邊形或孤島。

<min-area>=:移除小面積的孤島設(shè)置的閾值;

<min-vertices>:移除節(jié)點(diǎn)數(shù)量少的孤島設(shè)置的閾值;

<remove-empty>:刪除幾何對(duì)象為空的要素。

10. -filter-silvers<過(guò)濾面積>

通過(guò)面積過(guò)濾多邊形小碎片。

min-area=:移除的面積閾值;

remove-empty:刪除幾何對(duì)象為空的要素。

11. -graticule<格網(wǎng)>

創(chuàng)建以經(jīng)度0度為中心、覆蓋全球的格網(wǎng)圖層。

12. -innerlines<共享邊界>

創(chuàng)建由共享邊界構(gòu)成的線裝圖層,沒(méi)有屬性數(shù)據(jù)。

其他可選項(xiàng): name= 和 target=

# 示例: 提取兩個(gè)州共享的邊界mapshaper states.shp -filter 'STATE=="OR" || STATE=="WA"' -innerlines -o未完待續(xù)...


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: lutube成人福利在线观看 | 久久99综合久久爱伊人 | 国产一级一级 | 特级毛片a级毛片100免费 | 国产日本欧美在线观看 | 国产羞羞视频在线观看免费应用 | h视频在线观看免费 | 久久久久北条麻妃免费看 | 久久久久久久久国产 | 精品国产一区二区三区四 | 爱福利视频 | 亚洲午夜在线观看 | www.91pron| 国产精品亚洲一区二区三区久久 | 久久91亚洲人成电影网站 | 日本a级一区 | 国产精品久久久久久久久久妇女 | 日本在线视频一区二区三区 | 久久久久久亚洲国产精品 | 成人在线免费视频播放 | 秋霞a级毛片在线看 | 日本黄色a视频 | 青草av.久久免费一区 | 中国fx性欧美xxxx | 中文字幕亚洲一区二区三区 | 一级黄色国产视频 | 国产乱淫av片免费 | 99成人精品视频 | 国产成人精品一区二区仙踪林 | 国产1区在线 | 久久精品亚洲精品国产欧美kt∨ | 97久久曰曰久久久 | 7m视频成人精品分类 | 草草久久久 | 欧美黄色免费视频 | 精品一区二区视频在线观看 | www.17c亚洲蜜桃| 欧美日韩亚洲视频 | 欧美成人一区免费视频 | 久久91久久久久麻豆精品 | 91成人免费视频 |