pydsstools.core.gridinfo.v6
DSS Version 6 compatibility layer.
This subpackage provides backward compatibility with DSS Version 6 grid format. It includes ctypes structures and conversion functions.
Important
This is for internal use and backward compatibility. Direct use is not recommended. The main DSS I/O functions automatically handle v6/v7 conversion.
- structures
ctypes structures for v6 grid metadata
- conversion
Functions to convert between v6 and v7 formats
Examples
Converting v7 to v6:
>>> from pydsstools.core.gridinfo import GridInfoCreate, GridType, DataType
>>> from pydsstools.core.gridinfo.v6 import gridinfo7_to_gridinfo6
>>>
>>> # Create v7 grid info
>>> info7 = GridInfoCreate(
... grid_type=GridType.hrap,
... data_type=DataType.per_aver,
... shape=(100, 150),
... cell_size=4762.5
... )
>>>
>>> # Convert to v6 format for writing to DSS file
>>> pathname = "/GRID/LOC/PRECIP/01JAN2020:0000//"
>>> info6 = gridinfo7_to_gridinfo6(info7, pathname)
Converting v6 to v7:
>>> from pydsstools.core.gridinfo.v6 import gridinfo6_to_gridinfo7_dict
>>> from pydsstools.core.gridinfo import GridInfoCreate
>>>
>>> # Read v6 grid info from DSS file (example)
>>> info6 = ... # GridInfo6 or subclass from C library
>>>
>>> # Convert to v7 compatible dict
>>> info7_dict = gridinfo6_to_gridinfo7_dict(info6)
>>>
>>> # Create v7 grid info
>>> info7 = GridInfoCreate(**info7_dict)
See also
gridinfoDSS Version 7 grid metadata (preferred)
- class pydsstools.core.gridinfo.v6.GridInfo6[source]
Bases:
GridInfo6Base,StructureDSS v6 undefined/basic grid structure (grid_type 400).
C-compatible structure for basic grid metadata.
- cell_size
Structure/Union member
- cols
Structure/Union member
- compression_base
Structure/Union member
- compression_factor
Structure/Union member
- compression_method
Structure/Union member
- compression_size
Structure/Union member
- data_type
Structure/Union member
- data_units
Structure/Union member
- etime
Structure/Union member
- grid_type
Structure/Union member
- info_fsize
Structure/Union member
- info_gsize
Structure/Union member
- info_size
Structure/Union member
- lower_left_x
Structure/Union member
- lower_left_y
Structure/Union member
- max_val
Structure/Union member
- mean_val
Structure/Union member
- min_val
Structure/Union member
- range_counts
Structure/Union member
- range_length
Structure/Union member
- range_vals
Structure/Union member
- rows
Structure/Union member
- stime
Structure/Union member
- class pydsstools.core.gridinfo.v6.HrapInfo6[source]
Bases:
GridInfo6Base,StructureDSS v6 HRAP grid structure (grid_type 410).
Extends GridInfo6 with HRAP-specific field for data source.
- cell_size
Structure/Union member
- cols
Structure/Union member
- compression_base
Structure/Union member
- compression_factor
Structure/Union member
- compression_method
Structure/Union member
- compression_size
Structure/Union member
- data_source
Structure/Union member
- data_type
Structure/Union member
- data_units
Structure/Union member
- etime
Structure/Union member
- grid_type
Structure/Union member
- info_fsize
Structure/Union member
- info_gsize
Structure/Union member
- info_size
Structure/Union member
- lower_left_x
Structure/Union member
- lower_left_y
Structure/Union member
- max_val
Structure/Union member
- mean_val
Structure/Union member
- min_val
Structure/Union member
- range_counts
Structure/Union member
- range_length
Structure/Union member
- range_vals
Structure/Union member
- rows
Structure/Union member
- stime
Structure/Union member
- class pydsstools.core.gridinfo.v6.AlbersInfo6[source]
Bases:
GridInfo6Base,StructureDSS v6 Albers grid structure (grid_type 420).
Extends GridInfo6 with Albers projection parameters.
- cell_size
Structure/Union member
- central_meridian
Structure/Union member
- cols
Structure/Union member
- compression_base
Structure/Union member
- compression_factor
Structure/Union member
- compression_method
Structure/Union member
- compression_size
Structure/Union member
- data_type
Structure/Union member
- data_units
Structure/Union member
- etime
Structure/Union member
- false_easting
Structure/Union member
- false_northing
Structure/Union member
- first_parallel
Structure/Union member
- grid_type
Structure/Union member
- info_fsize
Structure/Union member
- info_gsize
Structure/Union member
- info_size
Structure/Union member
- lat_origin
Structure/Union member
- lower_left_x
Structure/Union member
- lower_left_y
Structure/Union member
- max_val
Structure/Union member
- mean_val
Structure/Union member
- min_val
Structure/Union member
- proj_datum
Structure/Union member
- proj_units
Structure/Union member
- range_counts
Structure/Union member
- range_length
Structure/Union member
- range_vals
Structure/Union member
- rows
Structure/Union member
- sec_parallel
Structure/Union member
- stime
Structure/Union member
- xcoord_cell0
Structure/Union member
- ycoord_cell0
Structure/Union member
- class pydsstools.core.gridinfo.v6.SpecifiedInfo6[source]
Bases:
GridInfo6Base,StructureDSS v6 specified grid structure (grid_type 430).
Extends GridInfo6 with user-defined projection and time zone info. Uses variable-length string fields (pointers to int32 arrays).
- cell_size
Structure/Union member
- cols
Structure/Union member
- compression_base
Structure/Union member
- compression_factor
Structure/Union member
- compression_method
Structure/Union member
- compression_size
Structure/Union member
- crs_def
Structure/Union member
- crs_def_length
Structure/Union member
- crs_name
Structure/Union member
- crs_name_length
Structure/Union member
- crs_type
Structure/Union member
- data_type
Structure/Union member
- data_units
Structure/Union member
- etime
Structure/Union member
- grid_type
Structure/Union member
- info_fsize
Structure/Union member
- info_gsize
Structure/Union member
- info_size
Structure/Union member
- is_interval
Structure/Union member
- lower_left_x
Structure/Union member
- lower_left_y
Structure/Union member
- max_val
Structure/Union member
- mean_val
Structure/Union member
- min_val
Structure/Union member
- nodata
Structure/Union member
- range_counts
Structure/Union member
- range_length
Structure/Union member
- range_vals
Structure/Union member
- rows
Structure/Union member
- stime
Structure/Union member
- time_stamped
Structure/Union member
- tzid
Structure/Union member
- tzid_length
Structure/Union member
- tzoffset
Structure/Union member
- version
Structure/Union member
- xcoord_cell0
Structure/Union member
- ycoord_cell0
Structure/Union member
- pydsstools.core.gridinfo.v6.gridinfo7_to_gridinfo6(gridinfo7, pathname)[source]
Convert DSS v7 GridInfo to DSS v6 format.
- Parameters:
gridinfo7 (GridInfo or subclass) – DSS v7 grid info object (from gridinfo package).
pathname (str) – DSS pathname (used to extract start/end times from D and E parts).
- Returns:
DSS v6 grid info structure (ctypes object).
- Return type:
GridInfo6 or subclass
Notes
Handles conversion of: - Pydantic models to ctypes structures - GridInfo enum types to integer codes - Tuple coordinates to separate X/Y fields - String units to int32 arrays - Python bools to int32 values
Some fields may be truncated if they exceed DSS v6 limits: - data_units: 12 characters max - data_source: 12 characters max (HRAP) - proj_units: 12 characters max (Albers) - range_vals/counts: 20 bins max
Examples
>>> from pydsstools.core.gridinfo import GridInfoCreate, GridType, DataType >>> from pydsstools.core.gridinfo.v6 import gridinfo7_to_gridinfo6 >>> >>> info7 = GridInfoCreate( ... grid_type=GridType.hrap, ... data_type=DataType.per_aver, ... shape=(100, 150), ... cell_size=4762.5 ... ) >>> pathname = "/GRID/LOC/PRECIP/01JAN2020:0000//" >>> info6 = gridinfo7_to_gridinfo6(info7, pathname)
- pydsstools.core.gridinfo.v6.gridinfo6_to_gridinfo7_dict(gridinfo6)[source]
Convert DSS v6 GridInfo to v7-compatible dictionary.
- Parameters:
gridinfo6 (GridInfo6 or subclass) – DSS v6 grid info structure (ctypes object).
- Returns:
Dictionary compatible with GridInfoCreate() factory function.
- Return type:
dict
Notes
Handles conversion of: - Separate X/Y fields to tuple coordinates - Integer codes to GridType enum values - int32 arrays to Python strings - CRS inference from grid parameters
Examples
>>> from pydsstools.core.gridinfo.v6 import gridinfo6_to_gridinfo7_dict >>> from pydsstools.core.gridinfo import GridInfoCreate >>> >>> # Assume info6 is a GridInfo6 from C library >>> info7_dict = gridinfo6_to_gridinfo7_dict(info6) >>> info7 = GridInfoCreate(**info7_dict)
Modules
Conversion functions between DSS v6 and v7 grid metadata. |
|
DSS Version 6 grid metadata ctypes structures. |