@@ -335,10 +335,16 @@ def query_async(self, payload, *, get_query_payload=False,
335
335
return result
336
336
337
337
338
- def _get_data (self , solr_id , email = None ):
338
+ def _get_data (self , solr_id , email = None , workflow = 'runBasicMsWorkflow' ,
339
+ apply_flags = True
340
+ ):
339
341
"""
340
342
Defining this as a private function for now because it's using an
341
343
unverified API
344
+
345
+ Parameters
346
+ ----------
347
+ workflow : 'runBasicMsWorkflow', "runDownloadWorkflow"
342
348
"""
343
349
url = f'{ self .archive_url } /portal/#/subscanViewer/{ solr_id } '
344
350
@@ -369,10 +375,17 @@ def _get_data(self, solr_id, email=None):
369
375
370
376
instrument = ('VLBA' if 'vlba' in solr_id .lower () else
371
377
'VLA' if 'vla' in solr_id .lower () else
378
+ 'EVLA' if 'nrao' in solr_id .lower () else
372
379
'GBT' if 'gbt' in solr_id .lower () else None )
373
380
if instrument is None :
374
381
raise ValueError ("Invalid instrument" )
375
382
383
+ if instrument == 'VLBA' :
384
+ downloadDataFormat = "VLBARaw"
385
+ elif instrument in ('VLA' , 'EVLA' ):
386
+ # there are other options!
387
+ downloadDataFormat = 'MS'
388
+
376
389
post_data = {
377
390
"emailNotification" : email ,
378
391
"requestDescription" : f"{ instrument } Download Request" ,
@@ -381,12 +394,24 @@ def _get_data(self, solr_id, email=None):
381
394
"p_project" : project_code ,
382
395
"productLocator" : locator ,
383
396
"requestCommand" : "startVlaPPIWorkflow" ,
384
- "p_workflowEventName" : "runDownloadWorkflow" ,
385
- "p_downloadDataFormat" : f" { instrument } Raw" ,
397
+ "p_workflowEventName" : workflow ,
398
+ "p_downloadDataFormat" : downloadDataFormat ,
386
399
"p_intentsFileName" : "intents_hifv.xml" ,
387
400
"p_proceduresFileName" : "procedure_hifv.xml"
388
401
}
389
402
403
+ if instrument in ('VLA' , 'EVLA' ):
404
+ post_data ['p_applyTelescopeFlags' ] = apply_flags
405
+ casareq = self ._request ('GET' ,
406
+ 'https://data.nrao.edu/archive-service/restapi_get_casa_version_list' ,
407
+ cache = False
408
+ )
409
+ casareq .raise_for_status ()
410
+ casavdata = json .loads (casareq .json ())
411
+ for casav in casavdata ['casa_version_list' ]:
412
+ if 'recommended' in casav ['version' ]:
413
+ post_data ['p_casaHome' ] = casav ['path' ]
414
+
390
415
presp = self ._request ('POST' ,
391
416
'https://data.nrao.edu/rh/submission' ,
392
417
data = post_data ,
0 commit comments