| <<O>> Difference Topic HDF5DataHandler (r1.22 - 10 May 2007 - JamesGallagher) |
HDF5DataHandler | ||||||||
| Added: | ||||||||
| > > |
Background information sources | |||||||
Data type mappingsJames, Please help with this: | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.21 - 10 May 2007 - JamesGallagher) |
HDF5DataHandler | ||||||||
| Changed: | ||||||||
| < < |
Data type mappings | |||||||
| > > |
Data type mappings | |||||||
| James, Please help with this: | ||||||||
| Changed: | ||||||||
| < < |
1. Is DAP supporting 64-bit and 128-bit integer? 2. Is the datatype size in DAP fixed? For example, is byte always 8-bit and Int32 always 32-bit? [ky 2/22/2007] | |||||||
| > > |
| |||||||
| The following table summarizes the difficulty of mapping between HDF5 and DAP. It is created based on the HDF5-DODS Data Model and Mapping paper and DAP 2.0. -- JoeLee - 15 Feb 2007 | ||||||||
| Line: 70 to 69 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Changed: | ||||||||
| < < |
Reference to DAP | |||||||
| > > |
Reference to DAP | |||||||
| HDF5 reference includes object and region references. To represent an object reference: A Permeanant HDF5 object ID needs to be stored in DAP | ||||||||
| Line: 80 to 79 | ||||||||
| [ky] | ||||||||
| Changed: | ||||||||
| < < |
More about Datatype MappingWe definitely need to resolve this part. | |||||||
| > > |
More about Datatype MappingWe definitely need to resolve this part. | |||||||
| HDF5 Group must be distinguished from the compound datatype when mapping to DAP. In Pydap, HDF5 Group is mapped to DAP structure. There is no way to map HDF5 compound datatype to | ||||||||
| Line: 108 to 107 | ||||||||
| We propose to map the group hierarchy with following information: | ||||||||
| Added: | ||||||||
| > > |
| |||||||
| Dataset { Structure { Structure { | ||||||||
| Line: 116 to 116 | ||||||||
| }foo2; string h5_array_1; } foo_1; | ||||||||
| Deleted: | ||||||||
| < < |
||||||||
| Structure { string h5_array_1; | ||||||||
| Changed: | ||||||||
| < < |
}foo1_2 | |||||||
| > > |
} foo1_2; | |||||||
| }"/"; | ||||||||
| Changed: | ||||||||
| < < |
}h5_group.h5 | |||||||
| > > |
} h5_group.h5; | |||||||
| The string will store the absolute path of the HDF5 dataset(DAP variable) name. | ||||||||
| Line: 130 to 130 | ||||||||
| Is an empty structure legal? If this is not legal for DAP. Then we have a big problem!!! It is perfectly fine to have an empty group inside HDF5. | ||||||||
| Changed: | ||||||||
| < < |
Dataset { Structure { | |||||||
| > > |
No one ever asked that, but I don't see why it would be a problem. However, there may be a better way to handle this case. While every variable must have an attribute container there can be other attribute containers which are bound to no particular variable. [jhrg 5/10/07]
Dataset {
Structure {
| |||||||
| }foo3; }; | ||||||||
| Added: | ||||||||
| > > |
||||||||
| If an empty DAP structure is legal, I think we get this problem solved. Otherwise, you do need to think to create a new object inside DAP to support this; perhaps. | ||||||||
| Line: 143 to 149 | ||||||||
| [ky 2007-5-3] | ||||||||
| Changed: | ||||||||
| < < |
What's left | |||||||
| > > |
What's left | |||||||
| Need to obtain typical sample NASA files and opinions from NASA users. [ky] This has been done, see the above.[ky] | ||||||||
| Changed: | ||||||||
| < < |
Implementation language | |||||||
| > > |
Implementation language | |||||||
| C++: Build on the existing HDF5 handler | ||||||||
| Line: 229 to 235 | ||||||||
| Changed: | ||||||||
| < < |
Client support | |||||||
| > > |
Client support | |||||||
| ||||||||
| Changed: | ||||||||
| < < |
Sample Data | |||||||
| > > |
Sample Data | |||||||
| Data files: We're initially thinking of making the handler work with AURA and NPOESSS data files. Is this a reasonable place to start? If so, we need sample files. If we're going after other groups of files, then lets get samples of those too. | ||||||||
| Line: 245 to 251 | ||||||||
|
Kent contacted with several NASA people and received one reply from Bruce Vollmer at NASA GSFC GES DISC.See the attached.
The sample HDF5 files through OPeNDAP | ||||||||
| Changed: | ||||||||
| < < |
Performance testing | |||||||
| > > |
Performance testing | |||||||
| ||||||||
| Line: 255 to 261 | ||||||||
| Changed: | ||||||||
| < < |
Testsuite development | |||||||
| > > |
Testsuite development | |||||||
| The how part of testsuite can follow the same methodology HDF4 used. By using 'make check', the expected outputs from h5 handler will be compared against the pre-written outputs. Another verification method is to use visualization tools(e.g. ferret) that can act as OpenDAP clients. This will ensure that users who are familiar with h5 data can visually examine the correctness of output quickly. | ||||||||
| Line: 265 to 271 | ||||||||
| Here is the URL for quick comparisons: http://hdfdap.hdfgroup.uiuc.edu:8080/ | ||||||||
| Changed: | ||||||||
| < < |
Aura EOS5 data support | |||||||
| > > |
Aura EOS5 data support | |||||||
| Aura data support DAP grid data. So we MUST FIND a WAY to map Aura HDF-EOS5 (Grid,Swath,Point) Data to DAP (Grid,Swath,Point) Data using only HDF5 APIs. The problem can be described as follows: HDF-EOS5 data à Using HDF5 library to retrieve all information à Mapping to DAP correctly. | ||||||||
| Line: 277 to 283 | ||||||||
| How HDF4 handler works with HDF-EOS2 data since swath, grid and point are not new concepts. Please provide us some hints on this. Specifically: which part of code we should read and related documents we can read. [ky 2/22/07] | ||||||||
| Added: | ||||||||
| > > |
| |||||||
| -- Main.muqun - 08 Mar 2007 | ||||||||
| Deleted: | ||||||||
| < < |
-- JoeLee - 08 Feb 2007 | |||||||
| Changed: | ||||||||
| < < |
| |||||||
| > > |
-- JoeLee - 08 Feb 2007 | |||||||
| -- JamesGallagher - 17 Nov 2006 | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.20 - 03 May 2007 - Main.muqun) |
HDF5DataHandler | ||||||||
| Line: 93 to 94 | ||||||||
|---|---|---|---|---|---|---|---|---|
| A readme file that describes these files can be found on the parent directory: ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/ | ||||||||
| Changed: | ||||||||
| < < |
[ky] | |||||||
| > > |
The h5dump header output of h5group.h5,h5_objref.h5 and h5_regref.h5 can be found under ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/Samples-for-dap-enhancement/group/h5group.txt ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/Samples-for-dap-enhancement/references/h5_objref.txt ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/Samples-for-dap-enhancement/references/h5_regref.txt There two important reasons to map HDF5 group to DAP: 1) We want to well preserve the attribute information of HDF5 Group in this way. Otherwise, the attribute information inside group may not be easily recognized from the client. 2) It will be easy for a future HDF5 client to retrieve the information and rebuild the HDF5 file. Based on the discussion today, use the example at ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/Samples-for-dap-enhancement/group/h5group.txt We propose to map the group hierarchy with following information: Dataset { Structure { Structure { Structure { string h5_comp; }foo2; string h5_array_1; } foo_1; Structure { string h5_array_1; }foo1_2 }"/"; }h5_group.h5 The string will store the absolute path of the HDF5 dataset(DAP variable) name. In this way, the attribute information of HDF5 group can be preserved nicely. And the ambiguity caused by HDF5 compound datatype dataset and HDF5 group can be avoided since no HDF5 dataset can have the name "/". However, we do need a careful document for this in the new HDF5 to DAP mapping. Please review this, James. One thing we would like to do is: Is an empty structure legal? If this is not legal for DAP. Then we have a big problem!!! It is perfectly fine to have an empty group inside HDF5. Dataset { Structure { }foo3; }; If an empty DAP structure is legal, I think we get this problem solved. Otherwise, you do need to think to create a new object inside DAP to support this; perhaps. [ky 2007-5-3] | |||||||
What's left | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.19 - 09 Mar 2007 - JoeLee) |
HDF5DataHandler | ||||||||
| Line: 216 to 216 | ||||||||
|---|---|---|---|---|---|---|---|---|
The what part of testsuite is still under investigation.
The good starting point will be re-using the hdf4 testsuites by converting them into h5 format. In this approach, the first question is how extensive and valid the hdf4 testsuite is. The second question is the expected output files under hdf-testsuites directory cannot be directly used as is due to the h4toh5 conversion program. I ran the conversion program on hdf4 testsuite files and compared the results of hdf4 and hdf5 handlers, they are quite different.
| ||||||||
| Changed: | ||||||||
| < < |
Here is the URL for quick comparisons: http://kagiso.hdfgroup.uiuc.edu:8880/ | |||||||
| > > |
Here is the URL for quick comparisons: http://hdfdap.hdfgroup.uiuc.edu:8080/ | |||||||
Aura EOS5 data support | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.18 - 08 Mar 2007 - Main.muqun) |
HDF5DataHandler | ||||||||
| Line: 43 to 43 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Todo: Define an abstract data type for Group. [jhrg] | ||||||||
| Added: | ||||||||
| > > |
James will define an abstract data type for Group at DAP4. In DAP2, Group will be mapped to structure with a special attribute. [ky 2007-3-8] | |||||||
| Line: 58 to 62 | ||||||||
| Todo: Define an abstract data type for Link. [jhrg] I think you mean both reference and link. Reference is in a high priority. [ky] | ||||||||
| Added: | ||||||||
| > > |
James will define an abstract data type for object reference and regional reference at DAP4. In DAP2, object reference and regional reference won't be mapped to DAP2. [ky 2007-3-8] | |||||||
| Line: 224 to 231 | ||||||||
| [ky 2/22/07] | ||||||||
| Changed: | ||||||||
| < < |
||||||||
| > > |
-- Main.muqun - 08 Mar 2007 | |||||||
|
-- JoeLee - 08 Feb 2007
| ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.17 - 23 Feb 2007 - Main.muqun) |
HDF5DataHandler | ||||||||
| Line: 6 to 6 | ||||||||
|---|---|---|---|---|---|---|---|---|
Data type mappings | ||||||||
| Added: | ||||||||
| > > |
James, Please help with this: 1. Is DAP supporting 64-bit and 128-bit integer? 2. Is the datatype size in DAP fixed? For example, is byte always 8-bit and Int32 always 32-bit? [ky 2/22/2007] | |||||||
| The following table summarizes the difficulty of mapping between HDF5 and DAP. It is created based on the HDF5-DODS Data Model and Mapping paper and DAP 2.0. -- JoeLee - 15 Feb 2007 | ||||||||
| Line: 206 to 211 | ||||||||
| Here is the URL for quick comparisons: http://kagiso.hdfgroup.uiuc.edu:8880/ | ||||||||
| Added: | ||||||||
| > > |
Aura EOS5 data supportAura data support DAP grid data. So we MUST FIND a WAY to map Aura HDF-EOS5 (Grid,Swath,Point) Data to DAP (Grid,Swath,Point) Data using only HDF5 APIs. The problem can be described as follows: HDF-EOS5 data à Using HDF5 library to retrieve all information à Mapping to DAP correctly. For example: (HDF-EOS5 grid) à (HDF5 without geolocation APIs) à DAP Grid correctly All HDF-EOS5 grid geolocation information are put inside an internal HDF5 group called structMetadata. One unclear point is how different projection can be accepted by DAP. Step to tackle this problem: FOR JAMES, PLEASE HELP: How HDF4 handler works with HDF-EOS2 data since swath, grid and point are not new concepts. Please provide us some hints on this. Specifically: which part of code we should read and related documents we can read. [ky 2/22/07] | |||||||
| -- JoeLee - 08 Feb 2007 | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.16 - 20 Feb 2007 - Main.muqun) |
HDF5DataHandler | ||||||||
| Line: 86 to 86 | ||||||||
|---|---|---|---|---|---|---|---|---|
What's leftNeed to obtain typical sample NASA files and opinions from NASA users. | ||||||||
| Changed: | ||||||||
| < < |
[ky] | |||||||
| > > |
[ky] This has been done, see the above.[ky] | |||||||
Implementation languageC++: Build on the existing HDF5 handler | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.15 - 15 Feb 2007 - JoeLee) |
HDF5DataHandler | |||||||||||||||||||||||||||||||||
| Line: 6 to 6 | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Data type mappings | |||||||||||||||||||||||||||||||||
| Added: | |||||||||||||||||||||||||||||||||
| > > |
The following table summarizes the difficulty of mapping between HDF5 and DAP.
It is created based on the HDF5-DODS Data Model and Mapping paper and DAP 2.0. -- JoeLee - 15 Feb 2007
| ||||||||||||||||||||||||||||||||
| Add Group by subclassing Structure and maybe adding some new operators. This would show up in a DDX as a new type distinct from Structure, but in the DDS/DAS it would show up as a Structure and the client would not be able to use the new operations. The Group has to be different than the general Structure in DDS/DAS since HDF5 supports a compound datatype which should map to Structure. | |||||||||||||||||||||||||||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.14 - 12 Feb 2007 - Main.muqun) |
HDF5DataHandler | ||||||||
| Line: 58 to 58 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Object reference needs to be mapped appropriately to DAP with the suggestions above. [ky] | ||||||||
| Added: | ||||||||
| > > |
Several sample HDF5 files that help understand the mapping of group,object reference and data region reference can be found under ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/Samples-for-dap-enhancement A readme file that describes these files can be found on the parent directory: ftp://ftp.hdfgroup.uiuc.edu/pub/outgoing/opendap/ [ky] | |||||||
What's left | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.13 - 12 Feb 2007 - Main.muqun) |
HDF5DataHandler | ||||||||
| Line: 159 to 159 | ||||||||
|---|---|---|---|---|---|---|---|---|
| I have several Aura sample files and one NPOESS sample file. Kent will also contact with potential NASA users for the typical sample files.[ky] | ||||||||
| Added: | ||||||||
| > > |
Kent contacted with several NASA people and received one reply from Bruce Vollmer at NASA GSFC GES DISC.See the attached.
The sample HDF5 files through OPeNDAP | |||||||
Performance testing
| ||||||||
| Line: 188 to 191 | ||||||||
| -- JamesGallagher - 21 Dec 2006 | ||||||||
| Added: | ||||||||
| > > |
| |||||||
| <<O>> Difference Topic HDF5DataHandler (r1.12 - 08 Feb 2007 - JoeLee) |
HDF5DataHandler | ||||||||
| Line: 175 to 175 | ||||||||
|---|---|---|---|---|---|---|---|---|
| By using 'make check', the expected outputs from h5 handler will be compared against the pre-written outputs. Another verification method is to use visualization tools(e.g. ferret) that can act as OpenDAP clients. This will ensure that users who are familiar with h5 data can visually examine the correctness of output quickly. The what part of testsuite is still under investigation. | ||||||||
| Changed: | ||||||||
| < < |
The good starting point will be re-using the hdf4 testsuites by converting them into h5 format. The question is how extensive and valid the hdf4 testsuite is. | |||||||
| > > |
The good starting point will be re-using the hdf4 testsuites by converting them into h5 format. In this approach, the first question is how extensive and valid the hdf4 testsuite is. The second question is the expected output files under hdf-testsuites directory cannot be directly used as is due to the h4toh5 conversion program. I ran the conversion program on hdf4 testsuite files and compared the results of hdf4 and hdf5 handlers, they are quite different.
Here is the URL for quick comparisons: http://kagiso.hdfgroup.uiuc.edu:8880/
| |||||||
| -- JoeLee - 08 Feb 2007 | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.11 - 08 Feb 2007 - JoeLee) |
| ||||||||
| Changed: | ||||||||
| < < |
Main topics | |||||||
| > > |
HDF5DataHandler | |||||||
Data type mappings | ||||||||
| Line: 169 to 171 | ||||||||
|---|---|---|---|---|---|---|---|---|
Testsuite development | ||||||||
| Changed: | ||||||||
| < < |
Document how to develop testsuites for a data handler | |||||||
| > > |
The how part of testsuite can follow the same methodology HDF4 used. By using 'make check', the expected outputs from h5 handler will be compared against the pre-written outputs. Another verification method is to use visualization tools(e.g. ferret) that can act as OpenDAP clients. This will ensure that users who are familiar with h5 data can visually examine the correctness of output quickly. The what part of testsuite is still under investigation. The good starting point will be re-using the hdf4 testsuites by converting them into h5 format. The question is how extensive and valid the hdf4 testsuite is. -- JoeLee - 08 Feb 2007 | |||||||
|
| ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.10 - 22 Dec 2006 - Main.muqun) |
Main topics | ||||||||
| Line: 13 to 13 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Since group is a pretty important concept in HDF5, it is better to be supported gracefully. | ||||||||
| Added: | ||||||||
| > > |
[ky] | |||||||
| Line: 24 to 25 | ||||||||
| Reference/Link:Map to URL? This needs to be thought carefully, again, if it uses URL, it must have special tags to | ||||||||
| Changed: | ||||||||
| < < |
separate the reference/Link from the general URL. | |||||||
| > > |
separate the reference/Link from the general URL. [ky] | |||||||
| Todo: Define an abstract data type for Link. [jhrg] | ||||||||
| Added: | ||||||||
| > > |
I think you mean both reference and link. Reference is in a high priority. [ky] | |||||||
| Line: 39 to 44 | ||||||||
| To represent a region reference: A Permeanant HDF5 object ID as well as the selection shape needs to be stored in DAP | ||||||||
| Added: | ||||||||
| > > |
[ky] | |||||||
More about Datatype Mapping | ||||||||
| Line: 49 to 55 | ||||||||
| DAP. Object reference needs to be mapped appropriately to DAP with the suggestions above. | ||||||||
| Added: | ||||||||
| > > |
[ky] | |||||||
What's leftNeed to obtain typical sample NASA files and opinions from NASA users. | ||||||||
| Changed: | ||||||||
| < < |
||||||||
| > > |
[ky] | |||||||
Implementation languageC++: Build on the existing HDF5 handler | ||||||||
| Line: 117 to 124 | ||||||||
| to improve pytables. I will spend the next few days reading Roberto's HDF5 plug-in and possibly provide the help. James, Feel free to persuade me to change my mind. | ||||||||
| Added: | ||||||||
| > > |
[ky] | |||||||
| Line: 127 to 136 | ||||||||
| I'm still really excited about Python support for Server4 because of the ease with which Dan was able to write a data handler for a on-off format, but the above leads me to the conclusion that even though it's a great idea, it's not right for this project. [jhrg] | ||||||||
| Added: | ||||||||
| > > |
I totally agree with you. The unknown performance and interfacing issues make it too risky to go to Python approach. I think I will send out the suggestions to Roberto. If he wants to improve the pydap HDF5 handler, it will be good to NASA Python users. [ky] | |||||||
Client support | ||||||||
| Line: 140 to 155 | ||||||||
| I have several Aura sample files and one NPOESS sample file. | ||||||||
| Changed: | ||||||||
| < < |
Kent will also contact with potential NASA users for the typical sample files. | |||||||
| > > |
Kent will also contact with potential NASA users for the typical sample files.[ky] | |||||||
Performance testing
| ||||||||
| Line: 148 to 163 | ||||||||
| to focus on our testings and improvements. Kent will contact with several potential NASA user groups to ask their opinions. | ||||||||
| Changed: | ||||||||
| < < |
||||||||
| > > |
[ky] | |||||||
| <<O>> Difference Topic HDF5DataHandler (r1.9 - 21 Dec 2006 - JamesGallagher) |
Main topics | ||||||||
| Line: 16 to 16 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Changed: | ||||||||
| < < |
[jhrg] Let's resolve to add Group to the DAP. To do so we need to list the operations that can be performed on a Group. I assume that a Group can hold one or more variables each of which may be any of the other types (Int16, ..., Array of Int16, ..., Structure, Sequence, Grid, Group). In the DAP type hierarchy this would be a child of the Constructor class. Todo: List the operations for Group | |||||||
| > > |
Todo: Define an abstract data type for Group. [jhrg] | |||||||
| Line: 29 to 26 | ||||||||
| This needs to be thought carefully, again, if it uses URL, it must have special tags to separate the reference/Link from the general URL. | ||||||||
| Added: | ||||||||
| > > |
Todo: Define an abstract data type for Link. [jhrg] | |||||||
Reference to DAPHDF5 reference includes object and region references. To represent an object reference: | ||||||||
| Line: 71 to 74 | ||||||||
| ||||||||
| Added: | ||||||||
| > > |
I really think we should help build a python HDF5 handler at least since python is such a promising language. | |||||||
| I've spent some time learning and installing Pydap HDF5 plugin in the past few days. | ||||||||
| Line: 115 to 119 | ||||||||
| James, Feel free to persuade me to change my mind. | ||||||||
| Changed: | ||||||||
| < < |
I really think we should help build a python HDF5 handler at least since python is such a promising language. | |||||||
| > > |
I really like the PyDAP/PyTables solution, but based on our requirements, I think we should stick with the original plan to extend the HDF5 Handler written in C++. Here are my reasons:
| |||||||
| Added: | ||||||||
| > > |
I'm still really excited about Python support for Server4 because of the ease with which Dan was able to write a data handler for a on-off format, but the above leads me to the conclusion that even though it's a great idea, it's not right for this project. [jhrg] | |||||||
Client support | ||||||||
| Line: 145 to 156 | ||||||||
| Document how to develop testsuites for a data handler | ||||||||
| Added: | ||||||||
| > > |
| |||||||
| -- JamesGallagher - 17 Nov 2006 | ||||||||
| Added: | ||||||||
| > > |
-- JamesGallagher - 21 Dec 2006 | |||||||
| <<O>> Difference Topic HDF5DataHandler (r1.8 - 21 Dec 2006 - JamesGallagher) |
Main topics | ||||||||
| Line: 6 to 6 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Add Group by subclassing Structure and maybe adding some new operators. This would show up in a DDX as a new type distinct from Structure, but in the DDS/DAS it would show up as a Structure and the client would not be able to use the new operations. | ||||||||
| Changed: | ||||||||
| < < |
The Group has to be different than the general Structure in DDS/DAS since HDF5 supports compound datatype which should map to Structure. | |||||||
| > > |
The Group has to be different than the general Structure in DDS/DAS since HDF5 supports a compound datatype which should map to Structure. | |||||||
| If you think to add new operators, the HDF5 link operations may give you some hints. It basically links the relations among different groups; groups and datasets. | ||||||||
| Line: 16 to 15 | ||||||||
| Added: | ||||||||
| > > |
[jhrg] Let's resolve to add Group to the DAP. To do so we need to list the operations that can be performed on a Group. I assume that a Group can hold one or more variables each of which may be any of the other types (Int16, ..., Array of Int16, ..., Structure, Sequence, Grid, Group). In the DAP type hierarchy this would be a child of the Constructor class. Todo: List the operations for Group | |||||||
| Reference/Link:Map to URL? | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.7 - 21 Dec 2006 - Main.muqun) |
Main topics | ||||||||
| Line: 31 to 31 | ||||||||
|---|---|---|---|---|---|---|---|---|
| A Permeanant HDF5 object ID as well as the selection shape needs to be stored in DAP | ||||||||
| Added: | ||||||||
| > > |
More about Datatype MappingWe definitely need to resolve this part. HDF5 Group must be distinguished from the compound datatype when mapping to DAP. In Pydap, HDF5 Group is mapped to DAP structure. There is no way to map HDF5 compound datatype to DAP. Object reference needs to be mapped appropriately to DAP with the suggestions above.What's leftNeed to obtain typical sample NASA files and opinions from NASA users. | |||||||
Implementation languageC++: Build on the existing HDF5 handler | ||||||||
| Line: 103 to 117 | ||||||||
| ||||||||
| Changed: | ||||||||
| < < |
+ | |||||||
| > > |
Sample Data | |||||||
| Data files: We're initially thinking of making the handler work with AURA and NPOESSS data files. Is this a reasonable place to start? If so, we need sample files. If we're going after other groups of files, then lets get samples of those too. I have several Aura sample files and one NPOESS sample file. | ||||||||
| Added: | ||||||||
| > > |
Kent will also contact with potential NASA users for the typical sample files.
Performance testing
| |||||||
Testsuite development | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.6 - 19 Dec 2006 - Main.muqun) |
Main topics | ||||||||
| Line: 6 to 6 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Add Group by subclassing Structure and maybe adding some new operators. This would show up in a DDX as a new type distinct from Structure, but in the DDS/DAS it would show up as a Structure and the client would not be able to use the new operations. | ||||||||
| Changed: | ||||||||
| < < |
The Group has to be different than the general Structure in DDS/DAS since HDF5 supports compound | |||||||
| > > |
The Group has to be different than the general Structure in DDS/DAS since HDF5 supports compound | |||||||
| datatype which should map to Structure. If you think to add new operators, the HDF5 link operations may give you some hints. It basically links the relations among different groups; groups and datasets. | ||||||||
| Changed: | ||||||||
| < < |
Since group is a pretty important concept in HDF5, it is better to be supported
gracefully in OPeNDAP | |||||||
| > > |
Since group is a pretty important concept in HDF5, it is better to be supported gracefully. | |||||||
| Reference/Link:Map to URL? | ||||||||
| Changed: | ||||||||
| < < |
This needs to be thought carefully, again, if it uses URL, it must have special tags to separate the reference/Link from the general URL. | |||||||
| > > |
This needs to be thought carefully, again, if it uses URL, it must have special tags to separate the reference/Link from the general URL. | |||||||
| Added: | ||||||||
| > > |
Reference to DAPHDF5 reference includes object and region references. To represent an object reference: A Permeanant HDF5 object ID needs to be stored in DAP To represent a region reference: A Permeanant HDF5 object ID as well as the selection shape needs to be stored in DAP | |||||||
Implementation languageC++: Build on the existing HDF5 handler Python: Use PyDAP and PyTables. What types of HDF5 files could this not read? What capabilities would it support that the regular HDF5 library does not? How to Integrate Python-based handlers into the Server4 BES framework? | ||||||||
| Added: | ||||||||
| > > |
Check the answer of the first question below at the pros and cons of python-server. | |||||||
Here's some information about using Python from C++:
| ||||||||
| Line: 42 to 52 | ||||||||
| ||||||||
| Added: | ||||||||
| > > |
||||||||
| I've spent some time learning and installing Pydap HDF5 plugin in the past few days. The followings are my thoughts regarding to this issue: Pros: | ||||||||
| Changed: | ||||||||
| < < |
| |||||||
| > > |
| |||||||
| Cons: | ||||||||
| Changed: | ||||||||
| < < |
||||||||
| > > |
||||||||
Currently it doesn't support
| ||||||||
| Line: 65 to 79 | ||||||||
| ||||||||
| Changed: | ||||||||
| < < |
| |||||||
| > > |
| |||||||
| support reference, extra fundings may be required. | ||||||||
| Changed: | ||||||||
| < < |
| |||||||
| > > |
| |||||||
| My suggestions: | ||||||||
| Changed: | ||||||||
| < < |
Cons 1 and 5 are my big concerns. We are taking great risks if we decide to use Python rather than the original C++ handler. However, I also like the Pros. | |||||||
| > > |
The performance of Pydap and maintenance of Pydap and Pytables are my big concerns. We are taking great risks if we decide to use Python rather than the original C++ handler. However, I also like the Pros. | |||||||
| So maybe we can focus on implementing C++ handler but help Roberto improve HDF5 plugin. If possible, persuade Pytables people or advertise other python fans to provide a little funding to improve pytables. I will spend the next few days reading Roberto's HDF5 plug-in and possibly provide the help. James, Feel free to persuade me to change my mind. | ||||||||
| Added: | ||||||||
| > > |
I really think we should help build a python HDF5 handler at least since python is such a promising language. | |||||||
Client support | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.5 - 14 Dec 2006 - Main.muqun) |
Main topics | ||||||||
| Line: 6 to 6 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Add Group by subclassing Structure and maybe adding some new operators. This would show up in a DDX as a new type distinct from Structure, but in the DDS/DAS it would show up as a Structure and the client would not be able to use the new operations. | ||||||||
| Added: | ||||||||
| > > |
The Group has to be different than the general Structure in DDS/DAS since HDF5 supports compound
datatype which should map to Structure.
If you think to add new operators, the HDF5 link operations may give you some hints.
It basically links the relations among different groups; groups and datasets.
Since group is a pretty important concept in HDF5, it is better to be supported
gracefully in OPeNDAP | |||||||
| Reference/Link:Map to URL? | ||||||||
| Added: | ||||||||
| > > |
This needs to be thought carefully, again, if it uses URL, it must have special tags to separate the reference/Link from the general URL. | |||||||
Implementation languageC++: Build on the existing HDF5 handler | ||||||||
| Line: 24 to 38 | ||||||||
But more importantly, the PyDAP folks have already done this! Look at the info for the HDF5 plugin. I think one approach we might take is to look at how much work it will take to modify/extend this code to provide a better HDF5 server and then feed those changes back into PyDAP. This would include:
| ||||||||
| Changed: | ||||||||
| < < |
| |||||||
| > > |
| |||||||
Client support | ||||||||
| Line: 36 to 90 | ||||||||
| Data files: We're initially thinking of making the handler work with AURA and NPOESSS data files. Is this a reasonable place to start? If so, we need sample files. If we're going after other groups of files, then lets get samples of those too. | ||||||||
| Added: | ||||||||
| > > |
I have several Aura sample files and one NPOESS sample file. | |||||||
Testsuite developmentDocument how to develop testsuites for a data handler | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.4 - 06 Dec 2006 - JamesGallagher) |
Main topics | ||||||||
| Line: 22 to 22 | ||||||||
|---|---|---|---|---|---|---|---|---|
| PyDAP provides an interface to the DAP. | ||||||||
| Added: | ||||||||
| > > |
But more importantly, the PyDAP folks have already done this! Look at the info for the HDF5 plugin. I think one approach we might take is to look at how much work it will take to modify/extend this code to provide a better HDF5 server and then feed those changes back into PyDAP. This would include:
| |||||||
Client support
| ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.3 - 24 Nov 2006 - JamesGallagher) |
Main topics | ||||||||
| Line: 29 to 29 | ||||||||
|---|---|---|---|---|---|---|---|---|
+ | ||||||||
| Changed: | ||||||||
| < < |
Data files: We're initially thinking of making the handler work with AURA and NPOS data files. Is this a reasonable place to start? If so, we need sample files. If we're going after other groups of files, then lets get samples of those too. | |||||||
| > > |
Data files: We're initially thinking of making the handler work with AURA and NPOESSS data files. Is this a reasonable place to start? If so, we need sample files. If we're going after other groups of files, then lets get samples of those too. | |||||||
Testsuite development | ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.2 - 21 Nov 2006 - JamesGallagher) |
Main topics | ||||||||
| Line: 14 to 14 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Python: Use PyDAP and PyTables. What types of HDF5 files could this not read? What capabilities would it support that the regular HDF5 library does not? How to Integrate Python-based handlers into the Server4 BES framework? | ||||||||
| Added: | ||||||||
| > > |
Here's some information about using Python from C++:
| |||||||
Client support
| ||||||||
| <<O>> Difference Topic HDF5DataHandler (r1.1 - 17 Nov 2006 - JamesGallagher) |
| Line: 1 to 1 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Added: | ||||||||
| > > |
Main topicsData type mappingsAdd Group by subclassing Structure and maybe adding some new operators. This would show up in a DDX as a new type distinct from Structure, but in the DDS/DAS it would show up as a Structure and the client would not be able to use the new operations. Reference/Link:Map to URL?Implementation languageC++: Build on the existing HDF5 handler Python: Use PyDAP and PyTables. What types of HDF5 files could this not read? What capabilities would it support that the regular HDF5 library does not? How to Integrate Python-based handlers into the Server4 BES framework?Client support
+Data files: We're initially thinking of making the handler work with AURA and NPOS data files. Is this a reasonable place to start? If so, we need sample files. If we're going after other groups of files, then lets get samples of those too.Testsuite developmentDocument how to develop testsuites for a data handler -- JamesGallagher - 17 Nov 2006 | |||||||