"""This module holds classes that contian the metadata information for a
``raster`` data object.
"""
__all__ = [
'Lum',
'ThermalConst',
'PixelSize',
'ValidRange',
'WRS',
'Corner',
'CornerPoint',
'BoundingCoordinates',
'Projection',
'SolarAngle',
'RasterMetaData',
]
import properties
import numpy as np
import collections
###############################################################################
###############################################################################
[docs]class Lum(properties.HasProperties):
gain = properties.Float('The gain')
bias = properties.Float('The bias')
[docs]class ThermalConst(properties.HasProperties):
k1 = properties.Float('K1')
k2 = properties.Float('K2')
[docs]class PixelSize(properties.HasProperties):
x = properties.Float('The X size of the pixel')
y = properties.Float('The Y size of the pixel')
units = properties.String('The pixel size units')
[docs]class ValidRange(properties.HasProperties):
min = properties.Float('Minimum of valid range')
max = properties.Float('Maximum of valid range')
###############################################################################
[docs]class WRS(properties.HasProperties):
system = properties.Integer('The system type')
path = properties.Integer('The WRS path')
row = properties.Integer('The WRS row')
[docs]class Corner(properties.HasProperties):
location = properties.String('The location')
latitude = properties.Float('The latitude', min=-90.0, max=90.0)
longitude = properties.Float('The longitude', min=-180.0, max=180.0)
[docs]class CornerPoint(properties.HasProperties):
location = properties.String('The location')
x = properties.Float('The X value')
y = properties.Float('The Y value')
[docs]class BoundingCoordinates(properties.HasProperties):
west = properties.Float('West line')
east = properties.Float('East line')
north = properties.Float('North line')
south = properties.Float('South line')
[docs]class Projection(properties.HasProperties):
projection = properties.String('The coordinate projection')
datum = properties.String('The projection datum')
units = properties.String('The projection units')
corner_point = properties.List('The corner points', prop=CornerPoint)
grid_origin = properties.String('The grid origin')
utm_proj_params = properties.Dictionary('The UTM projection parameters', required=False)
ps_proj_params = properties.Dictionary('The PS projection parameters', required=False)
albers_proj_params = properties.Dictionary('The Albers projection parameters', required=False)
sin_proj_params = properties.Dictionary('The Sin projection parameters', required=False)
[docs]class SolarAngle(properties.HasProperties):
zenith = properties.Float('The zenith')
azimuth = properties.Float('The azimuth')
units = properties.String('The units')