123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # -*- coding: utf-8 -*-
- __author__ = 'wanger'
- __date__ = '2024-08-20'
- __copyright__ = '(C) 2024 by siwei'
- __revision__ = '1.0'
- import os
- try:
- from osgeo import gdal
- except ImportError:
- import gdal
- def raster_value(path: str) -> dict:
- file = os.path.basename(path)
- file_format = os.path.splitext(file)[1]
- file_name = file.split(".")[0]
- valid_extension = [".tif", ".tiff", ".gtiff"]
- if file_format.lower() in valid_extension:
- try:
- gtif = gdal.Open(path)
- srcband = gtif.GetRasterBand(1)
- srcband.ComputeStatistics(0)
- n = srcband.GetMaximum() - srcband.GetMinimum() + 1
- n = int(n)
- min_value = srcband.GetMinimum()
- max_value = srcband.GetMaximum()
- result = {
- "N": n,
- "min": min_value,
- "max": max_value,
- "file_name": file_name,
- }
- return result
- except Exception as error:
- print("An error occured when computing band statistics: ", error)
- raise error
- else:
- print("sorry, file format is incorrect")
|