主要内容

结合矢量数据表连接

矢量数据从一个文件链接到矢量数据共享属性与其他文件,导入文件表和使用一个表连接。一个表连接结合两个表由行按照国家等关键变量的名字,字母数字id,或者联邦信息处理系统(FIPS)代码。

这个例子向您展示了如何从两个不同的文件到不同的表中读取数据,加入表,从加入表创建一个等值线图映射,导出表到一个shapefile加入。

读取数据到表

一个逗号分隔的文本文件读入一个表。文件包含农田统计数据对于我们每一个州和哥伦比亚特区,基于国家农业统计服务(NASS)农场和土地2019年农场总结。有关统计数据的更多信息,请参阅[1]。显示表的第一行。

农场= readtable (“farmland.txt”TextType =“字符串”);:农场(1)
ans =1×4表StateName NumberOfFarms AcresInFarms AverageFarmSize _____ _________________ _______售予“阿拉巴马”38800 8300 214

从表中创建一个地图,你也需要空间信息。阅读包含多边形形状的shapefile美国每一个州和哥伦比亚特区的地理空间表。一个地理空间表有一个形状为每一行包含形状信息的变量。显示地理空间表的第一行。

州= readgeotable (“usastatelo.shp”);州(1:)
ans =表1×5形状名称LabelLat LabelLon PopDens2000 _______ _____说___________ geopolyshape 32.283 -86.921 87.6“阿拉巴马”

形状表包含的变量geopolyshape对象,多边形的地理坐标。显示的属性geopolyshape对象在第一行。

states.Shape (1)
ans = geopolyshape属性:NumRegions: 1 NumHoles: 0几何:“多边形”CoordinateSystemType:“地理”GeographicCRS: [1×1 geocrs]

连接表

加入表,使用国家名称变量的名字StateName的关键变量。加入表的第一行显示。

statesFarms = outerjoin(州、农场、LeftKey =“名称”RightKey =“StateName”);:statesFarms (1)
ans =1×9表形状名称LabelLat LabelLon PopDens2000 StateName NumberOfFarms AcresInFarms AverageFarmSize _______ _____说___________ _____ _________________ _______售予geopolyshape“阿拉巴马”32.283 -86.921 87.6 38800 8300 214“阿拉巴马”

outerjoin函数创建一个表,其中包括行关键变量的一个输入表其他输入表中没有匹配。结果,输出表可以行比输入的表。创建一个表,其中包括从一个输入行表和附加行关键变量匹配值的其他输入表的关键变量,使用加入函数来代替。只创建一个表,其中包括关键变量从一个输入表的行有其他输入表中匹配的值,使用innerjoin函数来代替。

检查加入表

不匹配的关键变量加入表中可能会导致意想不到的结果。检查加入表显示的行数。

身高(statesFarms)
ans = 52

每个输入表包含51行,但加入表包含52行。因为国家的名字是关键变量,这个结果表明不匹配的名称。

表的农田统计确定了哥伦比亚特区华盛顿特区,它不匹配的相应行表的多边形形状。改变农田的名字表中的数据表中,这样它的名称匹配的多边形形状。

dcRow =农场。StateName = =“华盛顿特区”;farms.StateName (dcRow) =“特区”;

加入表又加入表中显示的行数。

statesFarms = outerjoin(州、农场、LeftKey =“名称”RightKey =“StateName”);身高(statesFarms)
ans = 51

输出表中匹配的行数输入表的行数。

加入表农场的平均面积和显示前八行。

topkrows (statesFarms 8“AverageFarmSize”)
ans =8×9表形状名称LabelLat LabelLon PopDens2000 StateName NumberOfFarms AcresInFarms AverageFarmSize _________________说___________ _______ * * * * * * _______售予geopolyshape“怀俄明”43.033 -107.56 5.1“怀俄明”12000 29000 2417 geopolyshape“蒙大拿”46.867 -110.58 6.2“蒙大拿”26800 58000 2164 geopolyshape“内华达”39.177 -116.4 18.2“内华达”3350 6100 1821 geopolyshape“新墨西哥”“新墨西哥”34.291 - -106.18 24800 40000 1613 geopolyshape北达科他州“47.469 -99.5 9.3”北达科他州26100 39300 1506 geopolyshape“南达科塔州”44.272 -99.679 9.9“南达科塔州”29600 43200 1459 geopolyshape“亚利桑那”34.345 -112.07 45.2“亚利桑那”19000 26200 1379 geopolyshape“内布拉斯加”41.504 -99.435 22.3 45700 44900 982“内布拉斯加”

创建地图

创建一个等值线图映射相接的美国农场的平均面积。

图行= statesFarms。名字~ =“夏威夷”& statesFarms。名字~ =“阿拉斯加”;:geoplot (statesFarms(行),ColorVariable =“AverageFarmSize”)geobasemap地形

添加一个标题和colorbar。

标题(“平均每2019年美国国家农场大小”)cb = colorbar;cb.Label。字符串=“英亩大小”;

出口表Shapefile

导出表作为一个新的shapefile加入。

shapewrite (statesFarms“usastatelo_farmland.shp”)

引用

[1]国家农业统计服务。“农场,农场的土地,平均农场规模-州和美国:2018 - 2019。”2019年农场农场和土地的总结6。美国农业部,2020年2月。https://www.nass.usda.gov/Publications/Todays_Reports/reports/fnlo0220.pdf

另请参阅

功能

对象

相关的话题