-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[5.x] and up: Open dap4 or other alternative protocol address via NetcdfDataset(s) #985
Comments
When you get the "Unknown service type" error message, does it include the name of the service or just an empty string? (This helps diagnose whether the failure is coming from assigning the service or from finding the correct class to handle it) |
@haileyajohnson, I just belatedly noticed you had commented on this. The error message is actually "Unknown service type: DAP4". In both BTW: This issue tangentially came up today because developers at GSFC and JPL were having trouble using Panoply to access data on an OpenDAP server because of DAP2 vs DAP4 protocol confusion. Panoply passes an https:// address to NJ to acquire the remote dataset, and it seems that NJ is trying to use the DAP2 protocol but the server wants DAP4. |
So that means it's getting the correct service type, but not finding the right
DAP4 actually shouldn't be reaching that block at all, it should be returning a provider from the first for loop in that method. |
@haileyajohnson, So apparently the I see it is when I build |
@rschmunk I asked around and got some background on this issue - apparently the |
@haileyajohnson, I am informed that NASA's NGAP project is pushing to switch over to DAP4, so sooner is better than later for anyone using NJ to access one of the associated dataset repos. |
What is the approved way of opening a remote DAP4 file or catalog? It appears that as of a recent snapshot commit, the DAP4 code had been updated and is now included by default in the netcdfAll build. However, I don't seem to be able to use it. I have been trying to use I can access that file if I replace "dap4://" with "http://", but then I just get errors when trying to variables within. Maybe there's a problem with the server config or the example file address I have been given (I'll query someone at OpenDAP about that shortly), but I'd like to be sure that I am at least starting with the correct scheme for attempting to open the file. --
|
try this URL:
|
Hah! That's actually one of the addresses I have been trying to test accessing. It's the "#dap4" appended to the |
Okay, just loaded the catalog That's... awkward. |
I will investigate why "dap4:" does not work.
|
One other point. The client program can interrogate the server |
@DennisHeimbigner, Did you ever look at this any further? I see no related commits, so maybe not? I recently heard from a couple people at NASA/JPL placing data on an agency DAAC who wanted to know more about Panoply's (and hence netCDF-Java) ability to access data on a DAP4 archive. As an example, they cited a dataset described at an In testing again a moment ago, I'm using an NJ 5.5.4 snapshot from a week ago. That address, as before, gets back a 405 server response when Panoply feeds it as is to the NJ library. If I change the address so that it starts with
So using the https address but appending #dap4 as you previously suggested, the remote dataset is apparently successfully loaded. However, if I try extract a variable and make a plot... a
The DAAC is apparently not a Hyrax server, which you indicated might be another potential problem to cope with. In your last comment, you mentioned "client program can interrogate the server and determine the proper protocol by looking at the response". How? Is that a matter of decrypting an error message, or is there an actual method one can call to get that info? I should probably ask, do my troubles above interconnect with #1232? /thx |
Sorry, this may have got lost in my stack. Let me do some checking. |
I had the fix, but apparently I got side tracked. Anyway, see PR #1255 |
@DennisHeimbigner, After changing one line of my code in Panoply that calls NJ and using the NJ 5.5.4 snapshot with yesterday's commits, I successfully acquired a remote DAP4 file using the However, I am still getting Malformed Chunk exceptions trying to read the actual data from the JPL earthdata.nasa.gov address I mentioned above. There are also a couple other sample datasets served via the earthdata.nasa.gov proxy that when trying to get the data, the process just never comes back with an answer. One of these samples is a DAP4 trajectory dataset, and the other is a non-DAP4 file. Also, please doublecheck lines 132 and 133 of the updated |
OOPS! |
Versions impacted by the bug
v5.x, v6.x, v7.x
What went wrong?
A developer at OpenDAP queried about using Panoply for opening a remote dataset that uses a non http/https/ftp protocol, and more specifically the dap4 protocol, e.g. dap4://test.opendap.org/opendap/some/path/to/fnoc1.nc
The NJ methods in
NetcdfDataset
andNetcdfDatasets
that Panoply uses for acquiring a dataset expect aDatasetUrl
rather than aURL
, and constructing aDatasetUrl
accepts such alternative protocol (*).But if a
DatasetUrl
using a dap4 protocol is passed to one of theacquireDataset
methods, the result is "Unknown service type".So is there some alternative way to acquire (enhanced) a dap4 protocol
DatasetUrl
? Or is this an accidental or planned omission?(*) Actually, it appears a
DatasetUrl
can be constructed for just about any supposed protocol, including "foo". However the start of that class defines arraysFRAGPROTOCOLS
andFRAGPROTOSVCTYPE
with what I presume are acceptable alternatives.Relevant stack trace
No response
Relevant log messages
No response
If you have an example file that you can share, please attach it to this issue.
If so, may we include it in our test datasets to help ensure the bug does not return once fixed?
Note: the test datasets are publicly accessible without restriction.
N/A
Code of Conduct
The text was updated successfully, but these errors were encountered: