Our platform runs a number of different pywps servers. The outputs of the process are stored on a disk that is indexed by THREDDS. THREDDS offers remote access to netCDF files using DAP. So what we'd like to be able to do is for processes to return an opendap url if the data_format is set to DODS.
I think this can be done by
implementing a DODSStorageBuilder, using configuration settings to set base_url to the DAP link
adding "dods": DODSStorageBuilder to inout.storage.builder.STORAGE_MAP
Then I think we'd configure the THREDDS server to serve what's in the PyWPS output_path. When writing a process' response,
we would declare the dap_outputComplexOutput to be of format DODS and with as_reference=True, then do something like
response['dap_output'].file = <path_to_netcdf_file>
The DODSStorageBuilder would write the file to disk, as usual, but instead of returning an http link to the file stored on the server, it would return a DODS link.
Description
Our platform runs a number of different pywps servers. The outputs of the process are stored on a disk that is indexed by THREDDS. THREDDS offers remote access to netCDF files using DAP. So what we'd like to be able to do is for processes to return an opendap url if the data_format is set to DODS.
I think this can be done by
base_url
to the DAP linkThen I think we'd configure the THREDDS server to serve what's in the PyWPS
output_path
. When writing a process' response, we would declare thedap_output
ComplexOutput
to be of formatDODS
and withas_reference=True
, then do something likeresponse['dap_output'].file = <path_to_netcdf_file>
The
DODSStorageBuilder
would write the file to disk, as usual, but instead of returning an http link to the file stored on the server, it would return a DODS link.