Skip to content
Snippets Groups Projects
Commit ca66f488 authored by Carsten Hinz's avatar Carsten Hinz
Browse files

rename of parameter

adopted test to use function of Grid class
parent 601e40fd
Branches
Tags
2 merge requests!11Creation of first beta release version,!4Resolve "coordinate ranges do not match"
...@@ -4,36 +4,27 @@ from toargridding.variables import Coordinate ...@@ -4,36 +4,27 @@ from toargridding.variables import Coordinate
from toargridding.metadata import Coordinates from toargridding.metadata import Coordinates
import numpy as np import numpy as np
from pandas import Series from pandas import Series
from toargridding.grids import RegularGrid
import matplotlib.pyplot as plt
def coord_to_index(coord : Series, x0_axis : float, d_axis : float, binWrap:int=None) -> np.array: print("Script for visual inspection of coordinate results for longitude and latitude")
"""converts a coordinate into a bin index on one axis
Parameters: lon = Coordinate.from_resolution(Coordinates.longitude, 1,-180,180, True)
---------- print(lon)
coord:
coordinate for conversion
x0_axis:
offset of the axis
d_axis:
resolution of the axis
"""
binIDs = (np.ceil((coord / d_axis) - 0.5) - x0_axis / d_axis).astype(int)
binIDs[binIDs >= binWrap] -=binWrap
return binIDs
print("\n")
print("Script for visual inspection of coordinate results for longitude and latitude") lat = Coordinate.from_resolution(Coordinates.latitude, 1.9,-90,90, False)
print(lat)
lon = Coordinate.from_resolution(Coordinates.longitude, 2.5,-180,180, True) testGrid = RegularGrid(lat_resolution=1.9, lon_resolution=2.5)
print(lon)
testData = [x+0.1 for x in range(-180,180)] testData = [x+0.1 for x in np.arange(-180,181, .5)]
testBins = coord_to_index(Series(testData), lon.min, lon.step, len(lon.data) ) testBins = testGrid.coord_to_index(Series(testData), lon.min, lon.step, len(lon.data) )
print(testBins)
print(len(lon.data)) for val, bin in zip(testData, testBins):
print(lon.data[144]) print(val, "->", bin)
print("\n")
#lat = Coordinate.from_resolution(Coordinates.latitude, 1.9,-90,90, False) plt.plot(testData, testBins)
#print(lat) plt.show()
\ No newline at end of file
...@@ -278,7 +278,7 @@ class RegularGrid(GridDefinition): ...@@ -278,7 +278,7 @@ class RegularGrid(GridDefinition):
return pd.Series(id_i, index=id_x.index) return pd.Series(id_i, index=id_x.index)
def coord_to_index(self, coord : pd.Series, x0_axis : float, d_axis : float, max4binWrap : int=None) -> np.array: def coord_to_index(self, coord : pd.Series, x0_axis : float, d_axis : float, maxBin4Wrap : int=None) -> np.array:
"""converts a coordinate into a bin index on one axis """converts a coordinate into a bin index on one axis
Parameters: Parameters:
...@@ -289,12 +289,13 @@ class RegularGrid(GridDefinition): ...@@ -289,12 +289,13 @@ class RegularGrid(GridDefinition):
offset of the axis offset of the axis
d_axis: d_axis:
resolution of the axis resolution of the axis
max4binWrap: maxBin4Wrap:
this is the maximum bin number. If it is set, thw bin numbers wrap around, like for the latitude this is the maximum bin number. If it is set, thw bin numbers wrap around, like for the latitude
""" """
ids = (np.ceil((coord / d_axis) - 0.5) - x0_axis / d_axis).astype(int) ids = (np.ceil((coord / d_axis) - 0.5) - x0_axis / d_axis).astype(int)
if max4binWrap is not None: if maxBin4Wrap is not None:
ids[ids >= max4binWrap] %= max4binWrap ids[ids >= maxBin4Wrap] %= maxBin4Wrap
ids[ids < 0] += maxBin4Wrap
return ids return ids
def get_empty_grid(self, time: Variable, metadata: Metadata) -> xr.Dataset: # TODO make CF-compliant => docs def get_empty_grid(self, time: Variable, metadata: Metadata) -> xr.Dataset: # TODO make CF-compliant => docs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment