Class TiffTools

java.lang.Object
cn.mapway.common.geo.tools.TiffTools

public class TiffTools extends Object
TiffTools tiff格式影像处理工具 每一次从影像中切片 都会进行计算,为了简化这种操作,我们每次计算完成后 就将结果存入 mongoDB中,下次再查找 就不用每次都去计算图像信息了 怎么标识一个图像? 我们是计算这副图像的md5值进行唯一索引
Author:
zhangjianshe <zhangjianshe@gmail.com>
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int[]
    calRasterHistogram(String location, cn.mapway.geo.client.raster.BandInfo bandInfo, int bucketSize, org.gdal.gdal.ProgressCallback callback)
    计算图像的直方图
    static String
    calRasterOverview(String location, org.gdal.gdal.ProgressCallback callback)
    计算图像的金字塔
    static void
    calRasterPreview(String sourceFileName, String targetFileName, int targetWidth, List<cn.mapway.geo.client.raster.BandInfo> bandInfos, cn.mapway.geo.client.raster.ChanelData chanelData, cn.mapway.geo.shared.color.ColorTable colorTable, org.gdal.gdal.ProgressCallback callback)
    计算影像的预览图
    static String[]
    extractBandOverview(org.gdal.gdal.Band band)
     
    byte[]
    extractFromSource(cn.mapway.geo.client.raster.ImageInfo imageInfo, long tileX, long tileY, int zoom, cn.mapway.geo.shared.color.ColorTable colorTable)
    从原始影像中输出瓦片
    cn.mapway.geo.client.raster.ImageInfo
    extractImageInformation(String sha256, String imageAbsoluteFilename, IImagePreviewProvider previewProvider)
    读取影像的信息 有sha256值 就去数据库中查找 没找到 计算 找到 返回 无Msha256值 计算
    static cn.mapway.geo.client.raster.ImageInfo
    extractImageInformation(org.gdal.gdal.Dataset dataset)
    解析一个影像的坐标和影像信息
    static cn.mapway.geo.shared.vector.Box
    fromGeometry(org.gdal.ogr.Geometry pt1)
     
    static byte[]
    generateImagePreview(cn.mapway.geo.client.raster.ImageInfo imageInfo, int targetWidth, cn.mapway.geo.shared.color.ColorTable colorTable)
     
    static org.gdal.gdal.Driver
    PNG Driver
    static org.gdal.gdal.Driver
    PNG Driver
    static org.gdal.osr.SpatialReference
     
    static org.gdal.osr.SpatialReference
     
    imageSha256(File file, Long userId, IProgressNotify notify)
     
    imageSha256(String imageAbsoluteFilename)
    计算影像的 SHA256
    static void
    main(String[] args)
     
    static cn.mapway.geo.shared.vector.Point
    pixelToLocation(double[] adfGeoTransform, long pixelX, long pixelY)
    像素坐标 转化为 坐标参考系下的坐标 进行仿射变换 * Xp = padfTransform[0] + P*padfTransform[1] + L*padfTransform[2]; * Yp = padfTransform[3] + P*padfTransform[4] + L*padfTransform[5];
    byte[]
    previewImage(org.gdal.gdal.Dataset sourceDataset, cn.mapway.geo.client.raster.ImageInfo imageInfo, IImagePreviewProvider previewProvider)
    构建图像的预览信息
    static cn.mapway.biz.core.BizResult<List<Double>>
    readPixelValues(String filePath, double lat, double lng)
    根据经纬度坐标 查询映像中的数值
    static cn.mapway.geo.shared.vector.Point
    resolution(double[] adfGeoTransform)
    目标单位 像素分辨率 WGS84 度 WEB MOCATOR mi
    临时的png文件
    static org.gdal.ogr.Geometry
    toGeometry(cn.mapway.geo.shared.vector.Box box, org.gdal.osr.SpatialReference spatialReference)
     
    static org.gdal.ogr.Geometry
    toTargetGeometry(org.gdal.ogr.Geometry pt0, org.gdal.osr.SpatialReference targetSpatialReference)
     
    static org.gdal.ogr.Geometry
    toWgs84(org.gdal.ogr.Geometry geometry)
     
    static cn.mapway.geo.shared.vector.Point
    wgs84Resolution(cn.mapway.geo.shared.vector.Point location, cn.mapway.geo.shared.vector.Point resolution)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TiffTools

      public TiffTools()
  • Method Details

    • getPngDriver

      public static org.gdal.gdal.Driver getPngDriver()
      PNG Driver
      Returns:
    • getMemoryDriver

      public static org.gdal.gdal.Driver getMemoryDriver()
      PNG Driver
      Returns:
    • main

      public static void main(String[] args)
    • getWgs84Reference

      public static org.gdal.osr.SpatialReference getWgs84Reference()
    • generateImagePreview

      public static byte[] generateImagePreview(cn.mapway.geo.client.raster.ImageInfo imageInfo, int targetWidth, cn.mapway.geo.shared.color.ColorTable colorTable)
    • getWebMercatorReference

      public static org.gdal.osr.SpatialReference getWebMercatorReference()
    • toTargetGeometry

      public static org.gdal.ogr.Geometry toTargetGeometry(org.gdal.ogr.Geometry pt0, org.gdal.osr.SpatialReference targetSpatialReference)
    • fromGeometry

      public static cn.mapway.geo.shared.vector.Box fromGeometry(org.gdal.ogr.Geometry pt1)
    • toGeometry

      public static org.gdal.ogr.Geometry toGeometry(cn.mapway.geo.shared.vector.Box box, org.gdal.osr.SpatialReference spatialReference)
    • toWgs84

      public static org.gdal.ogr.Geometry toWgs84(org.gdal.ogr.Geometry geometry)
    • readPixelValues

      public static cn.mapway.biz.core.BizResult<List<Double>> readPixelValues(String filePath, double lat, double lng)
      根据经纬度坐标 查询映像中的数值
      Parameters:
      filePath -
      lat -
      lng -
      Returns:
    • calRasterHistogram

      public static int[] calRasterHistogram(String location, cn.mapway.geo.client.raster.BandInfo bandInfo, int bucketSize, org.gdal.gdal.ProgressCallback callback)
      计算图像的直方图
      Parameters:
      location -
      bandInfo -
      bucketSize - please input 256
      callback - progress report
    • calRasterOverview

      public static String calRasterOverview(String location, org.gdal.gdal.ProgressCallback callback)
      计算图像的金字塔
      Parameters:
      location -
      callback - progress report
    • calRasterPreview

      public static void calRasterPreview(String sourceFileName, String targetFileName, int targetWidth, List<cn.mapway.geo.client.raster.BandInfo> bandInfos, cn.mapway.geo.client.raster.ChanelData chanelData, cn.mapway.geo.shared.color.ColorTable colorTable, org.gdal.gdal.ProgressCallback callback)
      计算影像的预览图
      Parameters:
      sourceFileName - 输入tiff
      targetFileName - 输出 png
      targetWidth - 目标宽度
      bandInfos - 波段信息
      chanelData - 显示波段
      callback -
    • extractBandOverview

      public static String[] extractBandOverview(org.gdal.gdal.Band band)
    • extractImageInformation

      public static cn.mapway.geo.client.raster.ImageInfo extractImageInformation(org.gdal.gdal.Dataset dataset)
      解析一个影像的坐标和影像信息
      Parameters:
      dataset -
      Returns:
    • pixelToLocation

      public static cn.mapway.geo.shared.vector.Point pixelToLocation(double[] adfGeoTransform, long pixelX, long pixelY)
      像素坐标 转化为 坐标参考系下的坐标 进行仿射变换 * Xp = padfTransform[0] + P*padfTransform[1] + L*padfTransform[2]; * Yp = padfTransform[3] + P*padfTransform[4] + L*padfTransform[5];
      Parameters:
      adfGeoTransform -
      pixelX -
      pixelY -
      Returns:
    • resolution

      public static cn.mapway.geo.shared.vector.Point resolution(double[] adfGeoTransform)
      目标单位 像素分辨率 WGS84 度 WEB MOCATOR mi
      Parameters:
      adfGeoTransform -
      Returns:
    • wgs84Resolution

      public static cn.mapway.geo.shared.vector.Point wgs84Resolution(cn.mapway.geo.shared.vector.Point location, cn.mapway.geo.shared.vector.Point resolution)
    • tempFile

      public File tempFile()
      临时的png文件
      Returns:
    • imageSha256

      public String imageSha256(File file, Long userId, IProgressNotify notify)
    • imageSha256

      public String imageSha256(String imageAbsoluteFilename)
      计算影像的 SHA256
      Parameters:
      imageAbsoluteFilename -
      Returns:
    • extractImageInformation

      public cn.mapway.geo.client.raster.ImageInfo extractImageInformation(String sha256, String imageAbsoluteFilename, IImagePreviewProvider previewProvider)
      读取影像的信息 有sha256值 就去数据库中查找 没找到 计算 找到 返回 无Msha256值 计算
      Parameters:
      imageAbsoluteFilename -
      Returns:
    • previewImage

      public byte[] previewImage(org.gdal.gdal.Dataset sourceDataset, cn.mapway.geo.client.raster.ImageInfo imageInfo, IImagePreviewProvider previewProvider)
      构建图像的预览信息
      Parameters:
      sourceDataset -
      imageInfo -
      previewProvider -
    • extractFromSource

      public byte[] extractFromSource(cn.mapway.geo.client.raster.ImageInfo imageInfo, long tileX, long tileY, int zoom, cn.mapway.geo.shared.color.ColorTable colorTable)
      从原始影像中输出瓦片
      Parameters:
      imageInfo -
      tileX -
      tileY -
      zoom -
      Returns: