首页 > 其他分享 >在arcgis中使用sdmtoolbox将tif批量转化为asc

在arcgis中使用sdmtoolbox将tif批量转化为asc

时间:2025-01-08 20:30:41浏览次数:3  
标签:文件 arcgis 路径 数据类型 asc sdmtoolbox 文件夹 一致

 数据

数据来自woldclimhttps://worldclim.org/data/index.html,下载的是历史数据Bioclimatic variables,分辨率是30'。

下载好后解压放在同一个文件夹下,文件夹存放路径不要有中文

软件准备

使用的arcgis版本为10.8,插件sdmtoolbox需要从网上下载http://www.sdmtoolbox.org/downloads

下载好后打开arcmap,打开arctoolbox,点击添加工具箱,把下载解压好的插件添加上。

操作步骤

首先设置arcgis的环境变量以保障掩膜提取的环境因子具有相同的行列号和坐标系,具体参照ArcGIS:栅格对齐并保持行列号一致,方法2

选择extract by mask(folder)

在input folder选择环境数据文件夹,不要单独选择文件(也选不了),注意文件夹路径不能有中文,文件夹里存放着解压好的19个tif格式的数据。

output folder 选择想要输出到的文件夹。

Mask选择你想要裁剪的范围(建议使用裁剪好的dem,方便后续maxent软件建模使用),Extent也是范围,但是会裁剪成正方形(就像下面第三幅图)

点开additional paramenters ,cellsize选择mask相同(即dem),output raster type选择ASCII

最后得到这样的结果

如果没有进行环境设置

下面是bio1的arcgis图,很明显看到边界有锯齿和没有对齐的现象,这是因为在进行批量掩膜提取前没有设置arcgis的环境变量,这样还会导致提取出来的气候因子像元大小和dem不一致,在使用maxent时报错,产生地理范围不一致的问题(have different geographic dimensions)

解决思路具体参考我的后续步骤maxent运行报错have different geographic dimensions地理维度不一致

其他可能的问题

  1. 文件路径问题:路径中可能包含非 ASCII 字符或路径过长,这可能导致 ArcGIS 无法正确读取文件。请确认文件路径和文件名是否包含特殊字符,或将文件移动到更短的路径下尝试。

  2. 输入数据格式问题:确保输入数据(例如 .tif 文件)没有损坏,可以通过其他程序(如 QGIS 或其他 GIS 工具)打开并检查这些文件是否正常。

  3. 内存不足:ArcGIS 执行过程中可能需要大量内存,特别是处理大范围的栅格数据时。如果内存不足,可能导致创建栅格数据集失败。你可以尝试关闭其他程序或增加虚拟内存。

  4. 投影和坐标系统不一致:输入数据和掩膜数据的投影和坐标系统需要一致。如果不一致,可能会导致 ExtractByMaskPlus 函数无法正确执行。你可以使用 Define Projection 工具检查并统一数据的坐标系。

  5. 数据类型不匹配:确保操作的数据类型是兼容的。例如,Plus 操作通常需要相同数据类型的栅格,如果数据类型不同,可能会导致错误。

解决方案:

  • 检查文件路径:将文件移动到较短的路径,避免路径中包含特殊字符。
  • 检查数据格式:尝试使用其他工具打开并查看 .tif 文件是否正常。
  • 检查内存使用情况:关闭其他不必要的程序,确保 ArcGIS 有足够的内存运行任务。
  • 统一投影:确保所有数据的投影一致,可以使用 ProjectRaster 工具进行投影转换。
  • 数据类型检查:确保栅格数据类型一致,使用 RasterizeReclassify 工具对数据进行预处理。

标签:文件,arcgis,路径,数据类型,asc,sdmtoolbox,文件夹,一致
From: https://blog.csdn.net/HYQ811026433/article/details/144959677

相关文章

  • 变异凯撒-python脚本调整ascii码转字符串
    题目:加密密文:afZ_r9VYfScOeO_UL^RWUc格式:flag{}结合题目变异凯撒,第一个字符a到f加了5,第二个字符f到l加了6,推断每个字符都在前一个字符基础上+1.编写python脚本:#定义字符串str="afZ_r9VYfScOeO_UL^RWUc"#定义偏移量k,初始值为5k=5#遍历字符串中的每个字符for......
  • javascript-chapter11 标准库
    1.setclassset是值的集合,set是无序的,且不能重复。一个值可以是或不是集合的成员。lets=newSet();//空集lett=newSet([1,s]);//有两个元素的集合。lett=newSet(s);//新集合,元素来自于sletunique=newSet("Mississippi");//Misp四个元素unique.size//4Set不用在使......
  • DVWA靶场JavaScript Attacks漏洞所有级别通关教程及源码审计
    目录标题JavaScriptAttacks(前端攻击)low源码审计medium源码审计high源码审计impossibleJavaScriptAttacks(前端攻击)JavaScriptAttacks(前端攻击)漏洞通常涉及利用Web应用程序中的安全漏洞,特别是在JavaScript代码的使用和实现上,从而对用户或系统造成损害low......
  • 在Lazarus下的Free Pascal编程教程——在应用程序中使用鼠标和键盘输入
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“2.已经......
  • 30 个鲜为人知的 JavaScript 技巧,让你的代码更具可读性
    1、使用!!转换为布尔值使用双重否定快速将任何值转换为布尔值。lettruthyValue=!!1;//trueletfalsyValue=!!0;//false2、默认函数参数设置函数参数的默认值以避免定义错误。functiongreet(name="Guest"){return`Hello,${name}!`;}3、......
  • Javascript实现asp.net mvc的checkbox基本功能
    Html的checkbox使用很广的,它的状态,勾选与非选。 初始状态,默认为非选。你可以设置它是勾选,直在checkbox标签中,添加checked属性。另外,在javascript可以这样,getById('Checkbox_IsPublished').checked=true; 或者,getById('Checkbox_IsPublished').setAttribute('chec......
  • 16 个 JavaScript 简写神技,提效 60%!
    分享下16个最常用的JavaScript的简写技巧,掌握它们可以让我们编写出更简洁、更优雅的代码,并显著提升开发效率(增加摸鱼时间)1.三元运算符简化条件判断//传统写法letresult;if(someCondition){result='yes';}else{result='no';}//简写方式constresu......
  • JavaScript字符串的常用方法
    在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。字符串长度获取字符串的长度是一个基本操作,可以使用 lengt......
  • JavaScript 实现支持过期时间的数据缓存功能
    JavaScript实现支持过期时间的数据缓存功能要在JavaScript中实现数据缓存功能并支持设置过期时间,可以使用localStorage、sessionStorage或内存对象(如Map或普通对象)来存储数据,并为每个缓存项设置一个过期时间。以下是一个简单的实现示例:JavaScript实现支持过期时间的数......
  • javascript如何判断浏览器是否支持严格模式?
    在JavaScript中,严格模式(StrictMode)是一种特殊的执行模式,它可以帮助开发者避免一些常见的错误,并提供更强的错误检查。要在JavaScript中启用严格模式,你需要在脚本或函数的顶部添加"usestrict";声明。然而,直接检测浏览器是否“支持”严格模式并不直接可行,因为严格模式不是浏览器的......