「java读取dem」java读取的文件忽略换行符
本篇文章给大家谈谈java读取dem,以及java读取的文件忽略换行符对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、dem用什么软件打开
- 2、DEM地形操作(geotools方式与nga方式)
- 3、java dem4j系统找不到指定路径
- 4、数字高程模型DEM有什么好的软件可以读取?
- 5、java如何获取任意一个点的海拔
dem用什么软件打开
DEM是在日常应用中经常用到的数据,做填挖方分析、三维场景展示、影像图的正射校正、水文分析等等。由于项目或者工程我们需要买一些DEM,其中*.dem是最常见到的DEM的格式,*.dem有两种格式,NSDTF和USGS。
如果是USGS格式的DEM,就很好办了。通过ArcGIS可以直接读取。USGS-DEM(USGS是美国地质调查局(U.S.Geological Survey)的英文缩写,是一种公开格式的DEM数据格式标准,使用范围较广格式的。在ArcGIS中的ArcToolBox中的“转换工具”---“转到栅格”----“DEM转到栅格”工具直接将USGS格式的DEM转为栅格DEM。
DEM地形操作(geotools方式与nga方式)
由于项目中需要用到大范围tiff的图像(全中国30米分辨率的dem影像),并且需要单点获取高程,以及实现部分范围的dem裁切与获取趋于范围极值,当时在网上查找的部分,很多都不满足预期,或者计算结果与实际并不够契合,因此单独开一篇专门讲这块内容。
引入基础的依赖包,使用中间组件完成所需功能。
由于组件之间存在交互关系,因此将其全部放到一起。
由于接下去的操作都需要依赖同一份数据源,因此在最开始的时候,需要先封装关于数据源的相关操作。
通过获取gridCoverage2D 的的投影信息,加载投影并使用经纬度进行计算位置点高程
总体来说,整个的实现流程基本上可以概括为[引入依赖]-[加载数据源]-[业务数据读取]。读取DEM的高程流程相对简单,获取范围内的高程极值操作也不复杂,主要是需要算出范围对应的格网,以及获取每个格网像元的高程值;较为复杂的是DEM的图像导出,由于使用geotools导出的dem图像存在一定的偏移与投影问题,导致其他平台软件无法正常读取dem的一些属性信息,因此在操作上,先使用geotools自定义的导出,先输出一份DEM,再使用正常平台导出的dem文件,通过读取它的属性信息,赋值给空的dem影像,再将像元的高程值写入,最后输出成一份符合规范的dem。此操作较为繁琐,但基础满足功能所需,此为抛砖引玉,如有更好的办法实现,望诸位不吝赐教,将感激不尽!
java dem4j系统找不到指定路径
如果你的java和javac运行都没问题的话,那就证明你的path变量配置的没有问题。
你说的找不到指定路径是找不到编译出来的.class文件吧,那就是你的classpath变量没有配置好。
数字高程模型DEM有什么好的软件可以读取?
ARCGIS就能满足你的需求。可以用3D analyst工具将离散高程点或者等高线生成DEM数据,然后用ARCSCENE生成三维模型。具体的方法你可以去百度一下。
java如何获取任意一个点的海拔
由于大部分地图API不提供海拔这一参数,所以海拔要单独计算。
搭建好基于Java的GDAL运行环境和相关的配置
参数 坐标点 以及 需要读取的高程数据(底图)
package com.chinalbs.qhxm.util;
import org.gdal.gdal.Band;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;
public class AltitudeUtil {undefined
public static void main(String[] args){undefined
//参数经纬度(小数形式)
Integer selectAltitude = SelectAltitude(100.3445, 37.003);
System.out.println(“海拔是:”+selectAltitude+“米”);
}
public static Integer SelectAltitude (double lon,double lat){undefined
//海拔
Integer altitude =0;
//支持所有驱动
gdal.AllRegister();
//要读取的文件,经纬度不可超过查询地图的范围,否则结果为null
//海拔读取为DEM高程数据
String fileName_tif = “C:/Users/Tysheng/Desktop/海北州高程数据/HAIBEIZHOU_DEM.TIF”;
//只读方式读取数据
Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly);
//支持中文路径
gdal.SetConfigOption(“gdal_FILENAME_IS_UTF8”, “YES”);
//判断是否非空
if (hDataset == null)
{undefined
System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());
System.err.println(gdal.GetLastErrorMsg());
System.exit(1);
}
//图像的列和行
Driver hDriver = hDataset.GetDriver();
int iXSize = hDataset.getRasterXSize();
int iYSize = hDataset.getRasterYSize();
Band band = hDataset.GetRasterBand(1);
int buf[] = new int[iXSize];
//循环遍历取出像元值
for(int i=0; iiYSize; i++){undefined
}
关于java读取dem和java读取的文件忽略换行符的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。