Matlab提供了关于shp读取以及shp存储的函数。

S = shaperead(filename)
shapewrite(S,filename)

常见的三种shp类型:Point,Line,Polygon。

首先先读取了一个面状的shp看看。

读取完是多个struct(这里每个struct代表一个省),每个struct都有几个共同的字段。

如果是Point类型,X字段(经度)和Y字段(纬度)只需要一个数字。

如果是Polygon类型,则多需要多个数字形成闭合,需要注意的是,第一个数字和倒数第二个数字需要相同,最后一个数字需要是NaN,具体的见代码。

clc;clear;
S(1).Geometry = 'Polygon';
S(1).BoundingBox=[116,29; 117,28];
S(1).X = [116,116,117,117,116, NaN]; % 经度 lon
S(1).Y = [29,28,28,29,29, NaN]; % 纬度 lat
S(1).Id = 1; %除了以上的几个关键字段,还得有至少一个额外的字段,不然不能生成dbf文件S(2).Geometry = 'Polygon';
S(2).BoundingBox=[114,25; 115,24];
S(2).X = [114,114,115,115,114, NaN]; % 经度 lon
S(2).Y = [25,24,24,25,25, NaN]; % 纬度 lat
S(2).Id = 2;shapewrite(S,'test.shp'); %生成shp,dbf,shx三个文件

生成的shp效果如图:

了解了以上的步骤和原理之后,下面批量生成shp

% Satellite-based survey of extreme methane emissions in the Permian basin
PermianBasin = [-104.5,31;-103,31;-103,32.5;-104.5,32.5;-104.5,31;NaN,NaN];
% Monitoring large methane point sources with Sentinel-2 satellite observations
Algeria = [5.6,31.2;6.2,31.2;6.2,32;5.6,32;5.6,31.2;NaN,NaN];
% Airborne methane remote measurements reveal heavytail flux distribution in Four Corners region
SanJuanBasin = [-108.25,36.75;-107.75,36.75;-107.75,37;-108.25,37;-108.25,36.75;NaN,NaN];
% Satellites Detect Abatable Super-Emissions in One of the World’s Largest Methane Hotspot Regions
Turkmenistan = [53.4,37.8;54.5,37.8;54.5,39.6;53.4,39.6;53.4,37.8;NaN,NaN];Hotspots = {'PermianBasin','Algeria','SanJuanBasin','Turkmenistan'};
for i = 1:4basin = eval(Hotspots{1,i});P.Geometry = 'Polygon';P.BoundingBox=[min(basin(:,1)),max(basin(:,2)); max(basin(:,1)),min(basin(:,2))];P.X = basin(:,1); % 经度 lonP.Y = basin(:,2); % 纬度 latP.Id = 1;shapewrite(P,[Hotspots{1,i},'.shp']); %生成shp,dbf,shx三个文件
end

PermianBasin变量如下

matlab存取面shp相关推荐

  1. matlab对于polygon.shp共用一个colorbar

    [提醒]当图形比较多时,为了方便比较,需要共用一个colorbar.但如果不统一设置colorbar的上下界限,可能显示了共用,但实际"共用"的只是最后一个图的colorbar而已 ...

  2. Matlab之读取shp文件函数shaperead

    目录 一.shaperead函数 1.功能 2.语法 2.1 S = shaperead(filename) 2.2 S = shaperead(filename,Name,Value) 2.3 [S ...

  3. 在matlab中将处理结果输出为shp文件

    在matlab中读入shp文件很简单,一个函数shaperead就可以了,但输出为shp文件就稍微麻烦一些了.shp文件实际上就是一个struct,因此得到处理结果后,要先将数据变成struct结构, ...

  4. matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示

    clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...

  5. Matlab基础内容学习大纲

    目录 前言 一.数据 二.文件 三.绘图 3.1 绘图基础 3.2 绘图细节修饰 3.3 各种绘图模式 四.信号处理 五.工具箱 六.提高Matlab办公效率 七.界面交互 八.音频函数 九.其他 前 ...

  6. (转)如何使用caffe的MATLAB接口

    编译MatCaffe 转自: http://blog.csdn.net/ws_20100/article/details/50525879 使用如下命令编译MatCaffe make all matc ...

  7. MATLAB地图作为底图,matlab画图——地图背景

    使用Matlab加载shp地图 世界shp地图下载 画地图 要先下载m_map插件 再下载shp地图包 如部分加拿大气温检测站点图: %由经纬度坐标绘制点图 clc clear all close a ...

  8. matlab画图——地图背景

    使用Matlab加载shp地图 世界shp地图下载 画地图 要先下载m_map插件 再下载shp地图包 如部分加拿大气温检测站点图: %由经纬度坐标绘制点图 clc clear all close a ...

  9. 利用计算机录音模拟声波,realplayer插件 声音数字化|74数字化声音试题(7)

    制数字来表示,必须对每个值分配一 个编码.显然对无穷多个值分配编码 是不可能的. 如果把信号幅度取值的数目加以限 定,量化后得到的值只能取有限个参 考值,若实际值不在这些有限个值之 内,则使用四舍五入 ...

最新文章

  1. mysql错误代码 集合
  2. 计算音频数据音量_【翻译】线性的音量推子……简直像一个个秤砣!
  3. Boost:bimap双图的突变关系的测试程序
  4. 开发自定义JSF组件(4) 保存状态与恢复状态
  5. php用session制作网站仿恶意刷新计数器
  6. installshield 脚本 在卸载过程执行_Linux下运行Jmeter脚本
  7. Linux系统中安装软件的三种方法(三)
  8. 跨浏览器测试工具推荐
  9. Ubuntu下安装nginx支持rtmp和http流媒体方案
  10. docker打包部署flask镜像
  11. .Net----Remoting 激活 激活方式
  12. 三行条形码打印样式设计 html,条形码生成及打印(JsBarcode)
  13. HTML ASP VBSCRIPT JAVASCRIPT SKILLS 常见问题
  14. 高版本IE中弹出窗口不显示IE地址栏的解决方法
  15. Linux 内核通知链随笔【中】【转】
  16. java面试题_度小满一面_java面经汇总
  17. nodejs前端+后端
  18. ajax type是get请求,jQuery的Ajax请求数据时type无法使用GET
  19. 几行最简单的代码 ,却改变了世界!
  20. python-pygame实现飞机大战-3-发射子弹以及击中敌机

热门文章

  1. useful skew有什么坏处
  2. APP - 支付宝怎么延时转账?能否撤回转账?
  3. Java学习路线和资料分析
  4. SourceTree 对比工具配置
  5. 华为鸿蒙OS正式发布!教你如何升级
  6. 保千里智联宝机器人图_保千里打令小宝机器人落地机器人+ 新模式
  7. 铁甲小宝像车轮的是什么机器人_铁甲小宝里所有机器人的名字和绝招
  8. 封号、扣钱:谁来保证专车司机的利益?
  9. java 天猫项目_2018最新Java前后端练手项目【模仿天猫前端】
  10. 华为防火墙地址转换技术(NAT)