2222)
2323from nowcasting_dataset .data_sources .gsp .eso import get_gsp_metadata_from_eso
2424from nowcasting_dataset .data_sources .gsp .gsp_model import GSP
25- from nowcasting_dataset .data_sources .metadata .metadata_model import Metadata
25+ from nowcasting_dataset .data_sources .metadata .metadata_model import Metadata , SpaceTimeLocation
2626from nowcasting_dataset .data_sources .nwp .nwp_model import NWP
2727from nowcasting_dataset .data_sources .optical_flow .optical_flow_model import OpticalFlow
2828from nowcasting_dataset .data_sources .pv .pv_model import PV
@@ -108,9 +108,9 @@ def gsp_fake(
108108 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
109109 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
110110 else :
111- t0_datetimes_utc = metadata .t0_datetime_utc
112- x_centers_osgb = metadata .x_center_osgb
113- y_centers_osgb = metadata .y_center_osgb
111+ t0_datetimes_utc = metadata .t0_datetimes_utc
112+ x_centers_osgb = metadata .x_centers_osgb
113+ y_centers_osgb = metadata .y_centers_osgb
114114
115115 # make batch of arrays
116116 xr_datasets = [
@@ -157,13 +157,17 @@ def metadata_fake(
157157 # choose random index
158158 index = np .random .choice (len (metadata ), size = batch_size )
159159
160- lat = metadata .iloc [index ].centroid_lat
161- lon = metadata .iloc [index ].centroid_lon
160+ lat = list (metadata .iloc [index ].centroid_lat )
161+ lon = list (metadata .iloc [index ].centroid_lon )
162+ ids = list (metadata .iloc [index ].index )
163+ id_types = ["gsp" ] * batch_size
162164
163165 else :
164166 # get random OSGB center in the UK
165167 lat = np .random .uniform (51 , 55 , batch_size )
166168 lon = np .random .uniform (- 2.5 , 1 , batch_size )
169+ ids = [None ] * batch_size
170+ id_types = [None ] * batch_size
167171
168172 x_centers_osgb , y_centers_osgb = lat_lon_to_osgb (lat = lat , lon = lon )
169173
@@ -172,13 +176,19 @@ def metadata_fake(
172176 batch_size = batch_size , temporally_align_examples = temporally_align_examples
173177 )
174178
175- metadata_dict = {}
176- metadata_dict ["batch_size" ] = batch_size
177- metadata_dict ["x_center_osgb" ] = list (x_centers_osgb )
178- metadata_dict ["y_center_osgb" ] = list (y_centers_osgb )
179- metadata_dict ["t0_datetime_utc" ] = list (t0_datetimes_utc )
179+ # would be good to parrelize this
180+ locations = [
181+ SpaceTimeLocation (
182+ t0_datetime_utc = t0_datetimes_utc [i ],
183+ x_center_osgb = x_centers_osgb [i ],
184+ y_center_osgb = y_centers_osgb [i ],
185+ id = ids [i ],
186+ id_type = id_types [i ],
187+ )
188+ for i in range (0 , batch_size )
189+ ]
180190
181- return Metadata (** metadata_dict )
191+ return Metadata (batch_size = batch_size , space_time_locations = locations )
182192
183193
184194def nwp_fake (
@@ -201,9 +211,9 @@ def nwp_fake(
201211 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
202212 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
203213 else :
204- t0_datetimes_utc = metadata .t0_datetime_utc
205- x_centers_osgb = metadata .x_center_osgb
206- y_centers_osgb = metadata .y_center_osgb
214+ t0_datetimes_utc = metadata .t0_datetimes_utc
215+ x_centers_osgb = metadata .x_centers_osgb
216+ y_centers_osgb = metadata .y_centers_osgb
207217
208218 # make batch of arrays
209219 xr_arrays = [
@@ -248,9 +258,9 @@ def pv_fake(
248258 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
249259 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
250260 else :
251- t0_datetimes_utc = metadata .t0_datetime_utc
252- x_centers_osgb = metadata .x_center_osgb
253- y_centers_osgb = metadata .y_center_osgb
261+ t0_datetimes_utc = metadata .t0_datetimes_utc
262+ x_centers_osgb = metadata .x_centers_osgb
263+ y_centers_osgb = metadata .y_centers_osgb
254264
255265 # make batch of arrays
256266 xr_datasets = [
@@ -296,9 +306,9 @@ def satellite_fake(
296306 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
297307 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
298308 else :
299- t0_datetimes_utc = metadata .t0_datetime_utc
300- x_centers_osgb = metadata .x_center_osgb
301- y_centers_osgb = metadata .y_center_osgb
309+ t0_datetimes_utc = metadata .t0_datetimes_utc
310+ x_centers_osgb = metadata .x_centers_osgb
311+ y_centers_osgb = metadata .y_centers_osgb
302312
303313 # make batch of arrays
304314 xr_arrays = [
@@ -340,9 +350,9 @@ def hrv_satellite_fake(
340350 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
341351 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
342352 else :
343- t0_datetimes_utc = metadata .t0_datetime_utc
344- x_centers_osgb = metadata .x_center_osgb
345- y_centers_osgb = metadata .y_center_osgb
353+ t0_datetimes_utc = metadata .t0_datetimes_utc
354+ x_centers_osgb = metadata .x_centers_osgb
355+ y_centers_osgb = metadata .y_centers_osgb
346356
347357 # make batch of arrays
348358 xr_arrays = [
@@ -385,9 +395,9 @@ def optical_flow_fake(
385395 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
386396 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
387397 else :
388- t0_datetimes_utc = metadata .t0_datetime_utc
389- x_centers_osgb = metadata .x_center_osgb
390- y_centers_osgb = metadata .y_center_osgb
398+ t0_datetimes_utc = metadata .t0_datetimes_utc
399+ x_centers_osgb = metadata .x_centers_osgb
400+ y_centers_osgb = metadata .y_centers_osgb
391401
392402 # make batch of arrays
393403 xr_arrays = [
@@ -421,7 +431,7 @@ def sun_fake(
421431 if metadata is None :
422432 t0_datetimes_utc = make_t0_datetimes_utc (batch_size )
423433 else :
424- t0_datetimes_utc = metadata .t0_datetime_utc
434+ t0_datetimes_utc = metadata .t0_datetimes_utc
425435
426436 # create dataset with both azimuth and elevation, index with time
427437 # make batch of arrays
@@ -442,8 +452,8 @@ def topographic_fake(batch_size, image_size_pixels, metadata: Optional[Metadata]
442452 if metadata is None :
443453 x_centers_osgb , y_centers_osgb = make_random_x_and_y_osgb_centers (batch_size )
444454 else :
445- x_centers_osgb = metadata .x_center_osgb
446- y_centers_osgb = metadata .y_center_osgb
455+ x_centers_osgb = metadata .x_centers_osgb
456+ y_centers_osgb = metadata .y_centers_osgb
447457
448458 # make batch of arrays
449459 xr_arrays = []
0 commit comments