网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容

java处理Arcgis导出的DEM栅格文件data.asc

时间:2024-10-13 00:45:40

1、关于栅格数据文件读者可用自己的作者在百度云网盘分享了一个dataDEM.aschttp://pan.baidu.com/s/1o61C7W2

java处理Arcgis导出的DEM栅格文件data.asc

2、【新建工程】

java处理Arcgis导出的DEM栅格文件data.ascjava处理Arcgis导出的DEM栅格文件data.ascjava处理Arcgis导出的DEM栅格文件data.asc

4、【解读文件头包含的信息】包括这个文竭惮蚕斗件的行数、列数 //////////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////////// public static GridFileHead ReadGridFileHead(String filePath){ GridFileHead gridUnit=new GridFileHead(); try{ DataInputStream in=new DataInputStream(new FileInputStream(filePath)); int fileSize=512; byte []btData=new byte[fileSize]; in.read(btData); String str=new String(btData); String splitTab="\t"; String []strData=str.split("\n"); int tabIndex=strData[0].indexOf(splitTab); if(tabIndex==-1){ splitTab=" "; } String []tempData=strData[0].split(splitTab); gridUnit.ncols=Integer.parseInt(tempData[tempData.length-1].trim()); tempData=strData[1].split(splitTab); gridUnit.nrows=Integer.parseInt(tempData[tempData.length-1].trim()); tempData=strData[2].split(splitTab); gridUnit.xllcorner=Double.parseDouble(tempData[tempData.length-1].trim()); tempData=strData[3].split(splitTab); gridUnit.yllcorner=Double.parseDouble(tempData[tempData.length-1].trim()); tempData=strData[4].split(splitTab); gridUnit.cellsize=Double.parseDouble(tempData[tempData.length-1].trim()); tempData=strData[5].split(splitTab); gridUnit.NODATA_value=Integer.parseInt(tempData[tempData.length-1].trim()); in.close(); } catch(IOException ex){ ex.printStackTrace(); } return gridUnit; }

java处理Arcgis导出的DEM栅格文件data.asc

6、【将运算或者其它处理完后的二维数组老揉孟阼写入到新的文件】 //////////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////////// public static void writeDoubleArray2DtoGridFile( String filePath, double[][]arrDouble2D, GridFileHead gridFileHead ){ try{ File hFileCreate = new File(filePath); hFileCreate.createNewFile(); RandomAccessFile hFileWrite = new RandomAccessFile(filePath,"rw"); //写文件头 String strHead="ncols "+gridFileHead.ncols+"\r\n"+ "nrows "+gridFileHead.nrows+"\r\n"+ "xllcorner "+gridFileHead.xllcorner+"\r\n"+ "yllcorner "+gridFileHead.yllcorner+"\r\n"+ "cellsize "+gridFileHead.cellsize+"\r\n"+ "NODATA_value "+gridFileHead.NODATA_value+"\r\n"; hFileWrite.write((strHead).getBytes()); //写数据内容 for(int i=0;i<arrDouble2D.length;i++){ String line=""; for (int j = 0; j < arrDouble2D[i].length; j++) { line+=arrDouble2D[i][j]+" "; } line+="\r\n"; hFileWrite.write((line).getBytes()); } hFileWrite.close(); } catch (IOException e) { e.printStackTrace(); } }

java处理Arcgis导出的DEM栅格文件data.asc

8、【导出为可运行的jar文件】

java处理Arcgis导出的DEM栅格文件data.ascjava处理Arcgis导出的DEM栅格文件data.asc
© 2025 小知经验
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com