@@ -129,30 +129,41 @@ def from_polytope(self, result):
129129
130130 logging .debug ("The parameters added were: %s" , self .parameters ) # noqa: E501
131131
132+ points = len (coords [fields ["dates" ][0 ]]["composite" ])
133+
132134 for date in fields ["dates" ]:
133- coordinates [date ] = {
134- "x" : [coords [date ]["composite" ][0 ][0 ]],
135- "y" : [coords [date ]["composite" ][0 ][1 ]],
136- "z" : [levels [0 ]],
137- }
138- coordinates [date ]["t" ] = []
139- for level in fields ["levels" ]:
140- for num in fields ["number" ]:
141- for para in fields ["param" ]:
142- for step in fields ["step" ]:
143- date_format = "%Y%m%dT%H%M%S"
144- new_date = pd .Timestamp (date ).strftime (date_format )
145- start_time = datetime .strptime (new_date , date_format )
146- # add current date to list by converting it to iso format
147- try :
148- int (step )
149- except ValueError :
150- step = step [0 ]
151- stamp = start_time + timedelta (hours = int (step ))
152- coordinates [date ]["t" ].append (stamp .isoformat () + "Z" )
135+ coordinates [date ] = []
136+ for i , point in enumerate (range (points )):
137+ coordinates [date ].append (
138+ {
139+ "x" : [coords [date ]["composite" ][i ][0 ]],
140+ "y" : [coords [date ]["composite" ][i ][1 ]],
141+ "z" : [levels [0 ]],
142+ }
143+ )
144+ # coordinates[date] = {
145+ # "x": [coords[date]["composite"][0][0]],
146+ # "y": [coords[date]["composite"][0][1]],
147+ # "z": [levels[0]],
148+ # }
149+ coordinates [date ][i ]["t" ] = []
150+ for level in fields ["levels" ]:
151+ for num in fields ["number" ]:
152+ for para in fields ["param" ]:
153+ for step in fields ["step" ]:
154+ date_format = "%Y%m%dT%H%M%S"
155+ new_date = pd .Timestamp (date ).strftime (date_format )
156+ start_time = datetime .strptime (new_date , date_format )
157+ # add current date to list by converting it to iso format
158+ try :
159+ int (step )
160+ except ValueError :
161+ step = step [0 ]
162+ stamp = start_time + timedelta (hours = int (step ))
163+ coordinates [date ][i ]["t" ].append (stamp .isoformat () + "Z" )
164+ break
153165 break
154166 break
155- break
156167
157168 end = time .time ()
158169 delta = end - start
@@ -165,23 +176,24 @@ def from_polytope(self, result):
165176 start = time .time ()
166177 logging .debug ("Coverage creation: %s" , start ) # noqa: E501
167178
168- for date in fields ["dates" ]:
169- for level in fields ["levels" ]:
170- for num in fields ["number" ]:
171- val_dict = {}
172- for para in fields ["param" ]:
173- val_dict [para ] = []
174- for step in fields ["step" ]:
175- key = (date , level , num , para , step )
176- # for k, v in range_dict.items():
177- # if k == key:
178- # val_dict[para].append(v[0])
179- val_dict [para ].append (range_dict [key ][0 ])
180- mm = mars_metadata .copy ()
181- mm ["number" ] = num
182- mm ["Forecast date" ] = date
183- del mm ["step" ]
184- self .add_coverage (mm , coordinates [date ], val_dict )
179+ for i , point in enumerate (range (points )):
180+ for date in fields ["dates" ]:
181+ for level in fields ["levels" ]:
182+ for num in fields ["number" ]:
183+ val_dict = {}
184+ for para in fields ["param" ]:
185+ val_dict [para ] = []
186+ for step in fields ["step" ]:
187+ key = (date , level , num , para , step )
188+ # for k, v in range_dict.items():
189+ # if k == key:
190+ # val_dict[para].append(v[0])
191+ val_dict [para ].append (range_dict [key ][i ])
192+ mm = mars_metadata .copy ()
193+ mm ["number" ] = num
194+ mm ["Forecast date" ] = date
195+ del mm ["step" ]
196+ self .add_coverage (mm , coordinates [date ][i ], val_dict )
185197
186198 end = time .time ()
187199 delta = end - start
@@ -224,12 +236,6 @@ def from_polytope_step(self, result):
224236 }
225237 )
226238
227- # print("Fields: ", fields)
228- # print("Coords: ", coords)
229- # print("Mars Metadata: ", mars_metadata)
230- # print("Range Dict: ", range_dict)
231- # print("Range Dict keys: ", range_dict.keys())
232-
233239 coordinates = {}
234240
235241 levels = fields ["levels" ]
@@ -240,58 +246,61 @@ def from_polytope_step(self, result):
240246
241247 logging .debug ("The parameters added were: %s" , self .parameters ) # noqa: E501
242248
249+ points = len (coords [fields ["dates" ][0 ]]["composite" ])
250+
243251 for step in fields ["step" ]:
244- coordinates [fields ["dates" ][0 ]] = {
245- "x" : [coords [fields ["dates" ][0 ]]["composite" ][0 ][0 ]],
246- "y" : [coords [fields ["dates" ][0 ]]["composite" ][0 ][1 ]],
247- "z" : [levels [0 ]],
248- }
249- coordinates [fields ["dates" ][0 ]]["t" ] = []
250- for level in fields ["levels" ]:
251- for num in fields ["number" ]:
252- for para in fields ["param" ]:
253- for date in fields ["dates" ]:
254- for times in fields ["times" ]:
255- # date_format = "%Y%m%dT%H%M%S"
256- # new_date = pd.Timestamp(date).strftime(date_format)
257- # start_time = datetime.strptime(new_date, date_format)
258- # add current date to list by converting it to iso format
259- # stamp = start_time + timedelta(hours=int(step))
260- datetime = pd .Timestamp (date ) + times
261- coordinates [fields ["dates" ][0 ]]["t" ].append (str (datetime ).split ("+" )[0 ] + "Z" )
252+ coordinates [fields ["dates" ][0 ]] = []
253+ for i , point in enumerate (range (points )):
254+ coordinates [fields ["dates" ][0 ]].append (
255+ {
256+ "x" : [coords [fields ["dates" ][0 ]]["composite" ][i ][0 ]],
257+ "y" : [coords [fields ["dates" ][0 ]]["composite" ][i ][1 ]],
258+ "z" : [levels [0 ]],
259+ }
260+ )
261+ coordinates [fields ["dates" ][0 ]][i ]["t" ] = []
262+ for level in fields ["levels" ]:
263+ for num in fields ["number" ]:
264+ for para in fields ["param" ]:
265+ for date in fields ["dates" ]:
266+ for times in fields ["times" ]:
267+ # date_format = "%Y%m%dT%H%M%S"
268+ # new_date = pd.Timestamp(date).strftime(date_format)
269+ # start_time = datetime.strptime(new_date, date_format)
270+ # add current date to list by converting it to iso format
271+ # stamp = start_time + timedelta(hours=int(step))
272+ datetime = pd .Timestamp (date ) + times
273+ coordinates [fields ["dates" ][0 ]][i ]["t" ].append (str (datetime ).split ("+" )[0 ] + "Z" )
274+ break
262275 break
263276 break
264- break
265277
266278 end = time .time ()
267279 delta = end - start
268280 logging .debug ("Coords creation: %s" , end ) # noqa: E501
269281 logging .debug ("Coords creation: %s" , delta ) # noqa: E501
270282
271- # print(coordinates)
272-
273- # logging.debug("The values returned from walking tree: %s", range_dict) # noqa: E501
274- # logging.debug("The coordinates returned from walking tree: %s", coordinates) # noqa: E501
275-
276283 start = time .time ()
277284 logging .debug ("Coverage creation: %s" , start ) # noqa: E501
278285
279- for level in fields ["levels" ]:
280- for num in fields ["number" ]:
281- val_dict = {}
282- for para in fields ["param" ]:
283- val_dict [para ] = []
284- for date in fields ["dates" ]:
285- key = (date , level , num , para )
286- # for k, v in range_dict.items():
287- # if k == key:
288- # val_dict[para].append(v[0])
289- val_dict [para ].extend (range_dict [key ][0 ])
290- mm = mars_metadata .copy ()
291- mm ["number" ] = num
292- mm ["Forecast date" ] = date
293- # del mm["step"]
294- self .add_coverage (mm , coordinates [fields ["dates" ][0 ]], val_dict )
286+ for i , point in enumerate (range (points )):
287+ for level in fields ["levels" ]:
288+ for num in fields ["number" ]:
289+ val_dict = {}
290+ for para in fields ["param" ]:
291+ val_dict [para ] = []
292+ for date in fields ["dates" ]:
293+ key = (date , level , num , para )
294+ # for k, v in range_dict.items():
295+ # if k == key:
296+ # val_dict[para].append(v[0])
297+ val_dict [para ].extend (range_dict [key ][i ])
298+ mm = mars_metadata .copy ()
299+ mm ["number" ] = num
300+ mm ["Forecast date" ] = date
301+ # del mm["step"]
302+ print (val_dict )
303+ self .add_coverage (mm , coordinates [fields ["dates" ][0 ]][i ], val_dict )
295304
296305 end = time .time ()
297306 delta = end - start
0 commit comments