1111
1212
1313class Seismic3DReceiverGathersTemplate (AbstractDatasetTemplate ):
14- """Seismic 3D receiver gathers template with calculated shot index ."""
14+ """Seismic 3D receiver gathers template."""
1515
1616 def __init__ (self ) -> None :
1717 super ().__init__ (data_domain = "time" )
1818
19- self ._dim_names = ("receiver" , "shot_line" , "shot_index" , "time" )
20- self ._calculated_dims = ("shot_index" ,)
19+ self ._dim_names = ("receiver" , "shot_line" , "shot_point" , "time" )
2120 self ._physical_coord_names = (
2221 "receiver_x" ,
2322 "receiver_y" ,
2423 "source_coord_x" ,
2524 "source_coord_y" ,
2625 )
27- self ._logical_coord_names = ("shot_point" , )
26+ self ._logical_coord_names = ()
2827 self ._var_chunk_shape = (1 , 1 , 512 , 4096 )
2928
3029 @property
@@ -37,11 +36,10 @@ def _load_dataset_attributes(self) -> dict[str, Any]:
3736 def declare_coordinate_specs (self ) -> tuple [CoordinateSpec , ...]:
3837 """Declare receiver- and shot-indexed coordinates for the 3D receiver gathers template."""
3938 receiver_dim = ("receiver" ,)
40- shot_dims = ("shot_line" , "shot_index " )
39+ shot_dims = ("shot_line" , "shot_point " )
4140 return (
4241 CoordinateSpec (name = "receiver_x" , dimensions = receiver_dim , dtype = ScalarType .FLOAT64 ),
4342 CoordinateSpec (name = "receiver_y" , dimensions = receiver_dim , dtype = ScalarType .FLOAT64 ),
44- CoordinateSpec (name = "shot_point" , dimensions = shot_dims , dtype = ScalarType .UINT32 ),
4543 CoordinateSpec (name = "source_coord_x" , dimensions = shot_dims , dtype = ScalarType .FLOAT64 ),
4644 CoordinateSpec (name = "source_coord_y" , dimensions = shot_dims , dtype = ScalarType .FLOAT64 ),
4745 )
@@ -51,12 +49,12 @@ def declare_dim_coordinate_types(self) -> DimCoordinateTypes:
5149 return {
5250 "receiver" : ScalarType .UINT32 ,
5351 "shot_line" : ScalarType .UINT32 ,
52+ "shot_point" : ScalarType .UINT32 ,
5453 self ._data_domain : ScalarType .INT32 ,
5554 }
5655
5756 def _add_coordinates (self ) -> None :
5857 # Add dimension coordinates
59- # Note: shot_index is calculated (0-N), so we don't add a coordinate for it
6058 self ._builder .add_coordinate (
6159 "receiver" ,
6260 dimensions = ("receiver" ,),
@@ -69,6 +67,12 @@ def _add_coordinates(self) -> None:
6967 data_type = self ._dim_dtype ("shot_line" ),
7068 metadata = CoordinateMetadata (units_v1 = self .get_unit_by_key ("shot_line" )),
7169 )
70+ self ._builder .add_coordinate (
71+ "shot_point" ,
72+ dimensions = ("shot_point" ,),
73+ data_type = self ._dim_dtype ("shot_point" ),
74+ metadata = CoordinateMetadata (units_v1 = self .get_unit_by_key ("shot_point" )),
75+ )
7276 self ._builder .add_coordinate (
7377 self .trace_domain ,
7478 dimensions = (self .trace_domain ,),
@@ -95,26 +99,17 @@ def _add_coordinates(self) -> None:
9599 metadata = CoordinateMetadata (units_v1 = self .get_unit_by_key ("receiver_y" )),
96100 )
97101
98- # Shot point coordinate (actual shot point numbers, varies by shot_line and shot_index)
99- self ._builder .add_coordinate (
100- "shot_point" ,
101- dimensions = ("shot_line" , "shot_index" ),
102- data_type = ScalarType .UINT32 ,
103- compressor = compressor ,
104- metadata = CoordinateMetadata (units_v1 = self .get_unit_by_key ("shot_point" )),
105- )
106-
107- # Source coordinates (vary by shot_line and shot_index)
102+ # Source coordinates (vary by shot_line and shot_point)
108103 self ._builder .add_coordinate (
109104 "source_coord_x" ,
110- dimensions = ("shot_line" , "shot_index " ),
105+ dimensions = ("shot_line" , "shot_point " ),
111106 data_type = ScalarType .FLOAT64 ,
112107 compressor = compressor ,
113108 metadata = CoordinateMetadata (units_v1 = self .get_unit_by_key ("source_coord_x" )),
114109 )
115110 self ._builder .add_coordinate (
116111 "source_coord_y" ,
117- dimensions = ("shot_line" , "shot_index " ),
112+ dimensions = ("shot_line" , "shot_point " ),
118113 data_type = ScalarType .FLOAT64 ,
119114 compressor = compressor ,
120115 metadata = CoordinateMetadata (units_v1 = self .get_unit_by_key ("source_coord_y" )),
0 commit comments