ArcGIS数据裁剪实战:从矢量到栅格的精准范围提取指南

ARCGIS利用矢量数据裁剪栅格数据(输出范围设置为栅格的范围+批量裁剪) ARCGIS利用矢量数据裁剪栅格数据 可设置输出范围为栅格数据的范围或者矢量数据的范围(默认) 利用ARCGIS 模型构建器进行栅格数据批量裁剪 阅读详情

1. 从“一团乱麻”到“精准框定”:为什么你需要掌握数据裁剪?

你是不是也遇到过这种头疼的情况?手头有一张覆盖全省甚至全国的卫星影像,但你只想研究你家门口那个小湖泊的水质变化。或者,你下载了全国的行政区划数据,但项目只需要分析长三角城市群。面对这些“大而全”的数据,直接使用不仅拖慢软件速度,还会让后续的分析计算变得异常臃肿。

这时候,数据裁剪就成了你的“手术刀”。它的核心目标,就是把数据精确地“切”到你关心的那个区域,把无关的部分剔除掉。在ArcGIS里,这活儿主要分两大块:矢量裁剪和栅格掩膜提取。听起来好像就是点两下按钮的事?我刚开始也这么想,结果踩了不少坑。比如,明明范围选对了,裁剪出来却是一片空白;或者,裁剪后的影像边缘出现了奇怪的锯齿和黑边。这些问题,归根结底是对工具背后的逻辑和细节参数理解不到位。

这篇文章,我就以一个过来人的身份,跟你好好聊聊ArcGIS里数据裁剪的完整“流水线”。我们不只讲“怎么点”,更要讲清楚“为什么这么点”,以及“点错了怎么办”。我会用最直白的话,把矢量裁剪、栅格掩膜提取,甚至两者互相转换来实现交叉裁剪的“野路子”都给你掰扯明白。无论你是正在为毕业论文焦头烂额的学生,还是需要为某个区域项目准备数据的新手分析师,这套从理论到实战的指南,都能让你告别盲目操作,真正做到精准、高效地提取所需数据。

2. 矢量裁剪:像用饼干模具切面团

矢量数据,比如行政区边界、道路线、河流面,本质上是由点、线、面构成的几何图形。裁剪它们,就像拿一个形状固定的饼干模具,去按压一块大面饼,最后只留下模具形状内的部分。这个过程直观且相对简单,但细节决定成败。

2.1 核心工具:“裁剪”与“相交”的微妙区别

在ArcGIS的工具箱里,处理矢量范围提取主要有两个明星工具:“分析工具” > “叠加分析” > “相交” 和 “分析工具” > “提取” > “裁剪”。很多新手会懵,它俩看起来干的事儿差不多啊?

这里有个非常形象的比喻:

  • “相交”工具:它求的是两个图层共同的区域。比如,你有一个“森林”面图层和一个“保护区”面图层,用“相交”得到的结果,就是既是森林又在保护区内的那部分区域。它的输出会保留两个输入图层的所有属性字段。
  • “裁剪”工具:它更像是一把纯粹的“剪刀”。你有一个“输入要素”(比如全国道路网),和一个“裁剪要素”(比如北京市边界)。裁剪工具直接用“裁剪要素”的轮廓作为模具,去剪“输入要素”,落在模具内的道路被保留,外面的被丢弃。它的输出只保留“输入要素”的属性字段,“裁剪要素”的属性不会带过来。

所以,简单记:如果你想同时保留两个图层的属性信息,用“相交”;如果你只是想用一个图形的轮廓去切割另一个图形,不关心裁剪要素的属性,用“裁剪”。在大多数单纯限定数据范围的场景下,我们用的都是“裁剪”工具。

2.2 手把手实战:用行政区划裁剪河流网络

光说不练假把式,我们来看一个具体例子。假设你手头有全国主要河流网络数据(Rivers.shp)和某个省的行政区划数据(Province_A.shp),现在需要提取出该省范围内的河流。

第一步,也是最重要的一步:坐标系检查! 这是我踩过的第一个大坑。右键分别查看两个图层的属性,切换到“源”选项卡。看看它们的“坐标系”信息是否一致。如果Rivers是WGS 1984(地理坐标系),而Province_A是CGCS2000 3 Degree GK Zone 39(投影坐标系),直接裁剪大概率会失败或出错。ArcGIS会弹窗警告,或者默默给你

ArcGis批量裁剪栅格图层 1、简述 本文主要讲述: 还是老样子,先给初始的样子: 这些都是一个县的栅格图层,现在要全部裁剪为指定村的栅格图层,这要是用按掩膜提取工具去一个个裁剪,这得弄多久呀!! 于是利用ArcGis的模型构建器对这些栅格图层进行批量裁剪。其中使用的工具有模型构建器中的迭代栅格工具、按掩膜提取工具,思路简单,易于操作,但作为新手的我硬是花了很长时间! 在构建出模型后,只花了一分钟,便裁剪出最终的成果,如下所示: 2、详细步骤 2.1新建模型构建器 单击打开模型构建器 2.2添加迭代器 在模型构建器界面里面,右击找 阅读详情

相关推荐

ArcGIS模型构建器中迭代器的使用——用一个矢量裁剪多个栅格

Arcgis10.2利用模型构建器中的迭代器进行对同一区域多个栅格数据进行批量裁剪,逐步操作。

weixin_43865642的博客 7321

ArcGIS教程:用不规则矢量多边形裁切栅格数据的方法比较

在我们从事的项目工作中,通常会根据研究需要对研究区域的栅格数据(如遥感影像)进行不规则裁剪。在ArcGIS中利用不规则矢量多边形对栅格数据进行裁切主要有两种方法:   空间分析中的掩膜提取和栅格处理中的裁剪。   1空间分析中的掩膜提取   在ArcGIS中,空间分析中的掩膜提取是通过ArcToolbox->Spatial Analyst Tools->Extraction->Extract

6621

ArcGIS Pro新手必看:用‘按掩膜提取’和‘裁剪’工具搞定栅格与矢量数据范围限定(附详细步骤图)

本文详细介绍了ArcGIS Pro中‘按掩膜提取’和‘裁剪’工具的使用方法,帮助新手精确限定栅格与矢量数据的范围。通过对比工具差异、提供详细步骤图和解决常见问题,使读者能够快速掌握数据提取和裁剪技巧,提升GIS数据处理效率。

weixin_42527160的博客 726

【ArcGIS Pro微课1000例】0036:栅格影像裁剪与提取(矢量范围裁剪dem高程数据)

本实验讲解在ArcGIS Pro中进行栅格影像裁剪与提取(矢量范围裁剪dem高程数据)的方法。DEM、DOM、DSM等栅格数据方法也可以实现。

智慧空间实验室 2985

ArcGIS实验教程——实验九:矢量数据提取

《ArcGIS矢量数据提取方法实验教程》摘要(148字) 本教程详细讲解了五种矢量数据提取方法:1)直接导出所有要素;2)导出视图范围要素;3)通过裁剪框裁剪数据;4)利用渔网工具批量网格化裁剪;5)按条件筛选提取。实验以黑河流域土地利用数据为例,演示了从基础操作到进阶技巧的全流程,包括工作空间设置、渔网生成、属性分割等关键步骤,并特别提示了中文路径兼容性和版本差异问题。教程配套实验数据,适合ArcGIS初学者系统掌握矢量数据处理技能,涵盖10.2至10.6版本的注意事项。

智慧空间实验室 7435

【重启后nvidia-smi 命令出现错误】

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

qq_44769377的博客 5216

LVDS系列23:Xilinx Ultrascale系ISERDESE3原语(一)

当FIFO_RD_CLK与CLKDIV对齐时,也就是Latency With Late FIFO Empty情况时,延迟比前一种情况长一个FIFO_RD_CLK时钟周期,也就是在FIFO_RD_CLK上升沿后一点,CLKDIV才成功驱动完FIFO_EMPTY的变化,于是读侧要得到FIFO_EMPTY为0的情况则要等到下一个FIFO_RD_CLK的上升沿采集时;IS_CLK_INVERTED、IS_CLK_B_INVERTED设置CLK和CLK_B是否反转,一般情况下设置0;

weixin_38828382的博客 900

InVEST模型实战指南:从水源涵养到热岛缓解的生态系统服务评估

本文提供了InVEST模型的实战指南,详细介绍了从环境搭建、数据预处理到核心模型应用的完整流程。通过水源涵养、碳存储、土壤保持和城市热岛缓解等核心模型的拆解,帮助生态学者与规划者系统量化评估生态系统服务,将复杂的生态价值转化为直观的空间数据与地图,为科学决策提供有力支撑。

weixin_29197051的博客 430

一体化伺服电机与施耐德PLC TM241CEC24T在Canopen协议下的应用

一.硬件组成 软件组成:施耐德SoMachineV4.3二.○1.打开SoMachineV4.3,点击“新建项目”○2.点击“空白项目”○3.项目命名○4.点击“创建项目” 三. 点击“Logic Builder” 四. ○1.右击项目”PMM_CANOPEN_ST”添加设备○2.点击”LogicController”选择PLC型号TM241CEC24T/U○3.点击“添加设备” 五. ○1.右击CAN_1,添加设备○2.选择“CANopen Perfomance”○3.点击“添加设备”

m0_46512607的博客 2522

RcisTarget实战:从差异基因到转录因子调控网络的完整分析流程(附代码)

本文详细介绍了RcisTarget工具在转录因子调控网络分析中的完整流程,从差异基因到motif富集分析,再到结果可视化与生物学解读。通过实战代码演示,帮助研究者掌握这一强大的R包应用,揭示基因表达背后的调控机制,特别适用于基因组学和生物信息学研究。

weixin_29214199的博客 228

S32K144 ADC硬件触发实战:PDB模块配置与DMA传输全流程解析

本文详细解析了S32K144微控制器中ADC硬件触发的全流程实现。通过配置PDB模块产生精确的定时触发信号,并联动DMA实现转换数据的自动搬运,构建了一个无需CPU干预的高效、低抖动数据采集系统。文章深入讲解了时钟配置、模块初始化、DMA引擎搭建及实战调试技巧,为汽车电子和工业控制应用提供了可靠的解决方案。

weixin_29174141的博客 227

BitLocker恢复密钥丢失?从原理到实战的完整解锁与系统重生指南

磁盘加密技术是数据安全的核心防线,它通过对存储设备上的数据进行编码,确保未经授权的用户无法访问。其原理主要基于加密算法(如AES)与密钥管理机制,在操作系统启动前或数据读写时进行实时加解密。这项技术的核心价值在于防止设备丢失或被盗后的数据泄露,尤其对于笔记本电脑和移动设备至关重要。典型的应用场景包括企业办公电脑、存有敏感信息的个人设备以及符合合规性要求的行业。当使用Windows系统自带的BitLocker加密功能时,若因硬件改动、系统更新等触发保护机制,用户可能会面临需要输入恢复密钥才能启动的困境。本文聚

weixin_34006965的博客 492

R语言中的混淆矩阵(Confusion Matrix)是一种常用的评估多分类模型性能的工具

除了准确率,混淆矩阵还提供了其他有用的指标,如灵敏度(Sensitivity)、特异度(Specificity)、精确度(Precision)和召回率(Recall)。混淆矩阵通过比较模型预测结果与实际标签的一致性,帮助我们了解模型的分类准确性和错误类型。此外,混淆矩阵还提供了各种错误类型的统计信息,如假阳性(False Positive)和假阴性(False Negative)等。通过混淆矩阵,我们可以了解模型的整体性能和错误类型,从而对模型进行评估和改进。最后,为了更好地理解混淆矩阵的结果,可以使用。

HackSquad的博客 972

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 基于海康彩色相机SDK与Halcon的实时图像处理系统开发实战
下一篇: 夏普红外协议(IR Sharp)实战指南:从调制原理到通信实例解析
python9snake
博客等级 码龄1天 0粉丝 1724原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值