使用GeoTools解析栅格格式TIF图数据

Posted Snow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用GeoTools解析栅格格式TIF图数据相关的知识,希望对你有一定的参考价值。

最近项目中需要解析发布的tif图的数据,我使用的是GeoTools进行解析,当然也可以使用 GDAL 等方式进行解析。直接贴代码吧就。

   public static void main(String[] args) throws IOException, FactoryException 
        long time=System.currentTimeMillis();

        File file = new File("D:\\\\geoserver-2.19.0-bin\\\\data_dir\\\\data\\\\ImageMosaic\\\\nh3\\\\1_20230303.tif");

        /**
         * Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER:设置经度为第一轴顺序
         *
         */
        GeoTiffReader reader = new GeoTiffReader(file, new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE));
        GridCoverage2D coverage = reader.read(null);

        //设置坐标系
        CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:4326");
        // 将 GridCoverage 进行重采样转换为另一个 CRS
        coverage = (GridCoverage2D) Operations.DEFAULT.resample(coverage, targetCRS);

        CoordinateReferenceSystem crs = coverage.getCoordinateReferenceSystem2D();

//        Envelope env = coverage.getEnvelope();
//        RenderedImage image = coverage.getRenderedImage();
	// 设置经纬度及坐标系等信息
        DirectPosition position = new DirectPosition2D(crs, 29.67236, 113.54834);

        // assume double
        float[] f1 = (float[]) coverage.evaluate(position);
        double[] doubleArray = new double[f1.length];
        for (int i = 0; i < f1.length; i++) 
            doubleArray[i] = (double) f1[i];
        
        double[] sample = doubleArray;

        // resample with the same array
        sample = coverage.evaluate(position, sample);
        System.out.println(sample);
    

这里是通过经纬度来获取指定点位的数据,可以参考 GeoTools官网

Arcgis之栅格数据转换

参考技术A 案例1:栅格(tif)数据转.img格式数据

场景: 想要将 data1.tif、data2.tif 格式数据转成 .img 格式数据

脚本:Python脚本示范

def RasterToOtherFormat(datalist, output, format):

    arcpy.env.workspace = r'C:/Users/Administrator/Documents/ArcGIS/Default.gdb'

arcpy.RasterToOtherFormat_conversion(datalist, output, format)

RasterToOtherFormat("data1.tif, data2.tif", "output", "IMAGINE")

以上是关于使用GeoTools解析栅格格式TIF图数据的主要内容,如果未能解决你的问题,请参考以下文章

Arcgis之栅格数据转换

Globalmapper之矢量数据获取栅格高程值

怎样统一修改栅格数据名称

Arcgis之栅格数据转矢量数据

gis能切片栅格导出么

ArcGIS微课1000例0057:将多波段栅格(影像.tif)背景设置为无数据nodata的方法