MCPcopy
hub / github.com/pydata/xarray / RangeCoordinateTransform

Class RangeCoordinateTransform

xarray/indexes/range_index.py:16–138  ·  view source on GitHub ↗

1-dimensional coordinate transform representing a simple bounded interval with evenly spaced, floating-point values.

Source from the content-addressed store, hash-verified

14
15
16class RangeCoordinateTransform(CoordinateTransform):
17 """1-dimensional coordinate transform representing a simple bounded interval
18 with evenly spaced, floating-point values.
19 """
20
21 start: float
22 stop: float
23 _step: float | None
24
25 __slots__ = ("_step", "start", "stop")
26
27 def __init__(
28 self,
29 start: float,
30 stop: float,
31 size: int,
32 coord_name: Hashable,
33 dim: str,
34 dtype: Any = None,
35 ):
36 if dtype is None:
37 dtype = np.dtype(np.float64)
38
39 super().__init__([coord_name], {dim: size}, dtype=dtype)
40
41 self.start = start
42 self.stop = stop
43 self._step = None # Will be calculated by property
44
45 @property
46 def coord_name(self) -> Hashable:
47 return self.coord_names[0]
48
49 @property
50 def dim(self) -> str:
51 return self.dims[0]
52
53 @property
54 def size(self) -> int:
55 return self.dim_size[self.dim]
56
57 @property
58 def step(self) -> float:
59 if self._step is not None:
60 return self._step
61 if self.size > 0:
62 return (self.stop - self.start) / self.size
63 else:
64 # For empty arrays, default to 1.0
65 return 1.0
66
67 def forward(self, dim_positions: dict[str, Any]) -> dict[Hashable, Any]:
68 positions = dim_positions[self.dim]
69 labels = self.start + positions * self.step
70 return {self.coord_name: labels}
71
72 def reverse(self, coord_labels: dict[Hashable, Any]) -> dict[str, Any]:
73 labels = coord_labels[self.coord_name]

Callers 2

arangeMethod · 0.85
linspaceMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…