From 0d6be73ca36a0e4515513267791928fd4b4e95b2 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Mon, 20 Jan 2025 12:25:38 -0600 Subject: [PATCH 01/16] first pass converting old vagrant based wiki to sphinx same as nexusformat documentation, still need to check and fix all dead links --- .gitignore | 5 - 404.html | 10 - CNAME | 1 - LICENSE.md | 10 - README.md | 1 - Vagrantfile | 100 -- Vagrantprovision.sh | 7 - _config.yml | 20 - _includes/head.html | 29 - _includes/sidebar.html | 34 - _layouts/default.html | 15 - _layouts/page.html | 8 - _layouts/post.html | 25 - _layouts/wiki.html | 1 - atom.xml | 28 - .../active_projects/ActiveProjects.doctree | Bin 0 -> 9660 bytes .../codecamps/CodeCamp2020-2.doctree | Bin 0 -> 20437 bytes .../codecamps/CodeCamp2020-attendees.doctree | Bin 0 -> 13890 bytes .../codecamps/CodeCamp2020-topics.doctree | Bin 0 -> 32066 bytes .../.doctrees/codecamps/CodeCamp2020.doctree | Bin 0 -> 204227 bytes .../codecamps/CodeCamp2021-1.doctree | Bin 0 -> 19774 bytes .../.doctrees/codecamps/CodeCamp2022.doctree | Bin 0 -> 30767 bytes .../codecamps/CodeCampJune2023.doctree | Bin 0 -> 32251 bytes .../codecamps/Code_Camp_2015.doctree | Bin 0 -> 56629 bytes .../codecamps/Code_Camp_2017.doctree | Bin 0 -> 62939 bytes build/.doctrees/facilities/Facilities.doctree | Bin 0 -> 56707 bytes build/.doctrees/faq/FAQ.doctree | Bin 0 -> 38061 bytes .../2014_How_to_find_default_data.doctree | Bin 0 -> 20455 bytes .../2014_axes_and_uncertainties.doctree | Bin 0 -> 103679 bytes .../.doctrees/html_static_pandoc/404.doctree | Bin 0 -> 7299 bytes .../Archive_Definition.doctree | Bin 0 -> 65742 bytes .../Associating_Axes_with_Data.doctree | Bin 0 -> 16408 bytes .../ConcordanceDiscussion.doctree | Bin 0 -> 43940 bytes .../Connecting_NXdata_to_NXdetector.doctree | Bin 0 -> 39241 bytes .../Containers_and_Inheritance.doctree | Bin 0 -> 22228 bytes .../html_static_pandoc/DLSraw.doctree | Bin 0 -> 160242 bytes .../html_static_pandoc/Design_Issues.doctree | Bin 0 -> 32597 bytes .../Detector_Geometry.doctree | Bin 0 -> 17950 bytes .../html_static_pandoc/Download.doctree | Bin 0 -> 17447 bytes ...ension_of_NeXus_Coordinate_Systems.doctree | Bin 0 -> 32707 bytes .../File_id_attribute_for_Nexus_files.doctree | Bin 0 -> 14540 bytes .../html_static_pandoc/GenericScan.doctree | Bin 0 -> 34645 bytes .../Group_Attributes.doctree | Bin 0 -> 13453 bytes ...e_extensions_of_the_Nexus_standard.doctree | Bin 0 -> 25230 bytes .../IndirectDiscuss.doctree | Bin 0 -> 170423 bytes ...ect_Time-of-Flight_and_Coordinates.doctree | Bin 0 -> 19084 bytes .../html_static_pandoc/Instruments.doctree | Bin 0 -> 53090 bytes .../html_static_pandoc/IssueReporting.doctree | Bin 0 -> 11240 bytes .../html_static_pandoc/Japinotes.doctree | Bin 0 -> 97769 bytes .../html_static_pandoc/Java_API.doctree | Bin 0 -> 19902 bytes .../html_static_pandoc/Jnexustut.doctree | Bin 0 -> 80348 bytes .../html_static_pandoc/Latest_News.doctree | Bin 0 -> 144782 bytes .../Linking_External_Files.doctree | Bin 0 -> 36052 bytes .../Membership_Dates.doctree | Bin 0 -> 23107 bytes .../html_static_pandoc/Metaformat.doctree | Bin 0 -> 27401 bytes .../html_static_pandoc/MonoXPSD.doctree | Bin 0 -> 44708 bytes .../html_static_pandoc/MonoXSingle.doctree | Bin 0 -> 35646 bytes ...utron_and_X-ray_Powder_Diffraction.doctree | Bin 0 -> 7862 bytes ...ic_Neutron_and_X-ray_Reflectometry.doctree | Bin 0 -> 30744 bytes ...-ray_Single_Crystal_Diffractometer.doctree | Bin 0 -> 11976 bytes .../Multi_Method_Instruments.doctree | Bin 0 -> 31884 bytes .../Muon_Time_Differential.doctree | Bin 0 -> 8840 bytes .../html_static_pandoc/NAPI_Routines.doctree | Bin 0 -> 429262 bytes .../NAPI_Utility_Routines.doctree | Bin 0 -> 201659 bytes .../NXaperture_and_Slits.doctree | Bin 0 -> 21704 bytes .../html_static_pandoc/NXbrowse.doctree | Bin 0 -> 15541 bytes .../html_static_pandoc/NXbrowse.f90.doctree | Bin 0 -> 139319 bytes .../NXdetector_2012_10.doctree | Bin 0 -> 40203 bytes .../NXdetector_documentation.doctree | Bin 0 -> 25986 bytes .../html_static_pandoc/NXdir.doctree | Bin 0 -> 35699 bytes ...NXshape_-_documentation_and_review.doctree | Bin 0 -> 36687 bytes .../html_static_pandoc/NXlrcs.f90.doctree | Bin 0 -> 72629 bytes .../html_static_pandoc/NXmeasurement.doctree | Bin 0 -> 16727 bytes .../NXmonoref-NIAC2006.doctree | Bin 0 -> 56056 bytes .../NXmonoref_example-NIAC2006.doctree | Bin 0 -> 43556 bytes .../NXmonotas-NIAC2006.doctree | Bin 0 -> 41399 bytes .../NXmonotas_example-NIAC2006.doctree | Bin 0 -> 53996 bytes .../html_static_pandoc/NXnet_Proposal.doctree | Bin 0 -> 27652 bytes .../NXtofnref-NIAC2006.doctree | Bin 0 -> 38192 bytes .../html_static_pandoc/NXtranslate.doctree | Bin 0 -> 15410 bytes .../html_static_pandoc/NeXpy.doctree | Bin 0 -> 151576 bytes .../NeXus_CIF_Integration.doctree | Bin 0 -> 28954 bytes .../Nexus_41_Release_Notes.doctree | Bin 0 -> 23248 bytes .../Nexus_42_Release_Notes.doctree | Bin 0 -> 30894 bytes .../Nexus_43_Release_Notes.doctree | Bin 0 -> 27122 bytes .../Nexus_4_Release_Notes.doctree | Bin 0 -> 29312 bytes .../html_static_pandoc/OO-NeXus.doctree | Bin 0 -> 37010 bytes .../Object_Oriented_Interface.doctree | Bin 0 -> 15117 bytes .../Objects_or_Interfaces.doctree | Bin 0 -> 99904 bytes .../Proposal_NeXus_Coordinates.doctree | Bin 0 -> 21045 bytes .../Proposal_NeXus_Errors.doctree | Bin 0 -> 17080 bytes .../Proposal_to_Simplify_Nexus.doctree | Bin 0 -> 40800 bytes .../html_static_pandoc/ReflectDiscuss.doctree | Bin 0 -> 212804 bytes .../.doctrees/html_static_pandoc/SAS.doctree | Bin 0 -> 49549 bytes .../html_static_pandoc/Scaled_Data.doctree | Bin 0 -> 22665 bytes .../html_static_pandoc/Scans.doctree | Bin 0 -> 17794 bytes .../Storing_Event_Data.doctree | Bin 0 -> 23163 bytes .../html_static_pandoc/TOFRaw.doctree | Bin 0 -> 545342 bytes .../html_static_pandoc/TOFRawScan.doctree | Bin 0 -> 65089 bytes .../Thumbnails_for_Nexus_files.doctree | Bin 0 -> 13018 bytes ...-Flight_Neutron_Powder_Diffraction.doctree | Bin 0 -> 10852 bytes ..._for_NXflou_application_definition.doctree | Bin 0 -> 16958 bytes .../html_static_pandoc/Utilities.doctree | Bin 0 -> 42100 bytes .../Workshop_PSI_2010.doctree | Bin 0 -> 15333 bytes .../html_static_pandoc/XESraw.doctree | Bin 0 -> 23113 bytes .../html_static_pandoc/index.doctree | Bin 0 -> 25144 bytes build/.doctrees/index.doctree | Bin 0 -> 28826 bytes build/.doctrees/niac/NIAC.doctree | Bin 0 -> 84859 bytes build/.doctrees/niac/NIAC2006ILL.doctree | Bin 0 -> 56439 bytes build/.doctrees/niac/NIAC2006LBL.doctree | Bin 0 -> 63308 bytes .../niac/NIAC2006LBL_RoadMap.doctree | Bin 0 -> 33922 bytes .../niac/NIAC2006LBL_attendees.doctree | Bin 0 -> 36255 bytes .../.doctrees/niac/NIAC2006LBL_photos.doctree | Bin 0 -> 15878 bytes .../niac/NIAC2006_Scanning_Group.doctree | Bin 0 -> 48274 bytes .../niac/NIAC2006_Synchrotron_Group.doctree | Bin 0 -> 43584 bytes .../.doctrees/niac/NIAC2006_TOF_Group.doctree | Bin 0 -> 64474 bytes build/.doctrees/niac/NIAC2007.doctree | Bin 0 -> 93978 bytes build/.doctrees/niac/NIAC2007_Minutes.doctree | Bin 0 -> 192464 bytes .../.doctrees/niac/NIAC2007_attendees.doctree | Bin 0 -> 56218 bytes build/.doctrees/niac/NIAC2007_photos.doctree | Bin 0 -> 28376 bytes build/.doctrees/niac/NIAC2008.doctree | Bin 0 -> 45338 bytes .../.doctrees/niac/NIAC2008_attendees.doctree | Bin 0 -> 26753 bytes build/.doctrees/niac/NIAC2009.doctree | Bin 0 -> 84308 bytes build/.doctrees/niac/NIAC2010.doctree | Bin 0 -> 69108 bytes .../.doctrees/niac/NIAC2010_CodeCamp.doctree | Bin 0 -> 64802 bytes .../.doctrees/niac/NIAC2011_CodeCamp.doctree | Bin 0 -> 164004 bytes build/.doctrees/niac/NIAC2012.doctree | Bin 0 -> 309268 bytes build/.doctrees/niac/NIAC2014.doctree | Bin 0 -> 173648 bytes .../.doctrees/niac/NIAC2014_CodeCamp.doctree | Bin 0 -> 48425 bytes build/.doctrees/niac/NIAC2014_Meeting.doctree | Bin 0 -> 74905 bytes build/.doctrees/niac/NIAC2016.doctree | Bin 0 -> 10648 bytes build/.doctrees/niac/NIAC2016Minutes.doctree | Bin 0 -> 66718 bytes build/.doctrees/niac/NIAC2018.doctree | Bin 0 -> 34199 bytes build/.doctrees/niac/NIAC2018Minutes.doctree | Bin 0 -> 109207 bytes build/.doctrees/niac/NIAC2020.doctree | Bin 0 -> 54176 bytes build/.doctrees/niac/NIAC2020minutes.doctree | Bin 0 -> 75500 bytes .../niac/NIAC2020minutes_concluding.doctree | Bin 0 -> 77436 bytes build/.doctrees/niac/NIAC2022.doctree | Bin 0 -> 125251 bytes .../niac/NIAC2022_fall_minutes.doctree | Bin 0 -> 41013 bytes build/.doctrees/niac/NIAC2022_minutes.doctree | Bin 0 -> 177919 bytes build/.doctrees/niac/NIAC2022_spring.doctree | Bin 0 -> 76268 bytes .../niac/NIAC2022_spring_minutes.doctree | Bin 0 -> 118479 bytes build/.doctrees/niac/NIAC2024.doctree | Bin 0 -> 100212 bytes build/.doctrees/niac/NIACAPI.doctree | Bin 0 -> 11281 bytes build/.doctrees/niac/NIACActionItems.doctree | Bin 0 -> 41886 bytes build/.doctrees/niac/NIACClasses.doctree | Bin 0 -> 42965 bytes build/.doctrees/niac/NIACDesign.doctree | Bin 0 -> 27639 bytes common/NeXus_Logo.png | Bin 0 -> 29193 bytes common/NeXus_Logo_dark.png | Bin 0 -> 28878 bytes common/NeXus_Logo_dark_square.png | Bin 0 -> 1295 bytes common/NeXus_Logo_dark_square_nogrey.png | Bin 0 -> 1270 bytes common/NeXus_Logo_square.png | Bin 0 -> 1301 bytes common/NeXus_Logo_square_nogrey.png | Bin 0 -> 1275 bytes {public => common}/favicon.ico | Bin content/2014_How_to_find_default_data.md | 62 -- content/2014_axes_and_uncertainties.md | 303 ------ content/ActiveProjects.md | 18 - content/Archive_Definition.md | 238 ----- content/Associating_Axes_with_Data.md | 48 - content/CodeCamp2020-2.md | 48 - content/CodeCamp2020-attendees.md | 18 - content/CodeCamp2020-topics.md | 32 - content/CodeCamp2020.md | 318 ------ content/CodeCamp2021-1.md | 50 - content/CodeCamp2022.md | 47 - content/CodeCampJune2023.md | 41 - content/Code_Camp_2015.md | 145 --- content/Code_Camp_2017.md | 151 --- content/ConcordanceDiscussion.md | 180 ---- content/Connecting_NXdata_to_NXdetector.md | 173 --- content/Containers_and_Inheritance.md | 74 -- content/DLSraw.md | 523 --------- content/Design_Issues.md | 72 -- content/Detector_Geometry.md | 58 - content/Download.md | 56 - .../Extension_of_NeXus_Coordinate_Systems.md | 121 --- content/FAQ.md | 128 --- content/Facilities.md | 70 -- content/File_id_attribute_for_Nexus_files.md | 40 - content/GenericScan.md | 113 -- content/Group_Attributes.md | 34 - content/Hierarchy.gif | Bin 19613 -> 0 bytes ...future_extensions_of_the_Nexus_standard.md | 99 -- content/IndirectDiscuss.md | 364 ------- ...Indirect_Time-of-Flight_and_Coordinates.md | 60 -- content/Instruments.md | 132 --- content/IssueReporting.md | 21 - content/Japinotes.md | 319 ------ content/Java_API.md | 66 -- content/Jnexustut.md | 297 ------ content/Latest_News.md | 305 ------ content/Linking_External_Files.md | 119 --- content/Membership_Dates.md | 64 -- content/Metaformat.md | 167 --- content/MonoXPSD.md | 146 --- content/MonoXSingle.md | 121 --- ...ic_Neutron_and_X-ray_Powder_Diffraction.md | 14 - ...romatic_Neutron_and_X-ray_Reflectometry.md | 112 -- ...and_X-ray_Single_Crystal_Diffractometer.md | 27 - content/Multi_Method_Instruments.md | 111 -- content/Muon_Time_Differential.md | 19 - content/NAPI_Routines.md | 754 ------------- content/NAPI_Utility_Routines.md | 280 ----- content/NIAC.md | 232 ---- content/NIAC2-22_fall_minutes.md | 113 -- content/NIAC2006ILL.md | 220 ---- content/NIAC2006LBL.md | 164 --- content/NIAC2006LBL_RoadMap.md | 95 -- content/NIAC2006LBL_attendees.md | 31 - content/NIAC2006LBL_minutes.doc | Bin 138240 -> 0 bytes content/NIAC2006LBL_photos.md | 32 - content/NIAC2006_Scanning_Group.md | 197 ---- content/NIAC2006_Synchrotron_Group.md | 109 -- content/NIAC2006_TOF_Group.md | 200 ---- content/NIAC2007.md | 316 ------ content/NIAC2007_Minutes.md | 754 ------------- content/NIAC2007_attendees.md | 41 - content/NIAC2007_photos.md | 36 - content/NIAC2008.md | 141 --- content/NIAC2008_attendees.md | 25 - content/NIAC2009.md | 168 --- content/NIAC2010.md | 106 -- content/NIAC2010_CodeCamp.md | 95 -- content/NIAC2011_CodeCamp.md | 328 ------ content/NIAC2012.md | 776 -------------- content/NIAC2014.md | 201 ---- content/NIAC2014_CodeCamp.md | 147 --- content/NIAC2014_Meeting.md | 310 ------ content/NIAC2016.md | 23 - content/NIAC2016Minutes.md | 253 ----- content/NIAC2018.md | 97 -- content/NIAC2018Minutes.md | 388 ------- content/NIAC2020.md | 54 - content/NIAC2020minutes.md | 89 -- content/NIAC2020minutes_concluding.md | 136 --- content/NIAC2022.md | 170 --- content/NIAC2022_minutes.md | 483 --------- content/NIAC2022_minutes_freddie.md | 355 ------- content/NIAC2022_spring.md | 90 -- content/NIAC2022_spring_minutes.md | 189 ---- content/NIAC2024.md | 214 ---- content/NIAC2024_minutes.md | 121 --- content/NIACAPI.md | 38 - content/NIACActionItems.md | 107 -- content/NIACClasses.md | 164 --- content/NIACDesign.md | 127 --- content/NIACOrg.md | 85 -- content/NIACdoc.md | 55 - content/NXaperture_and_Slits.md | 70 -- content/NXbrowse.f90.md | 415 -------- content/NXbrowse.md | 86 -- content/NXdetector_2012_10.md | 174 --- content/NXdetector_documentation.md | 31 - content/NXdir.md | 100 -- ..._and_NXshape_-_documentation_and_review.md | 158 --- content/NXinstrument.gif | Bin 7598 -> 0 bytes content/NXlrcs.f90.md | 212 ---- content/NXmeasurement.md | 47 - content/NXmonoref-NIAC2006.md | 187 ---- content/NXmonoref_example-NIAC2006.md | 132 --- content/NXmonotas-NIAC2006.md | 149 --- content/NXmonotas_example-NIAC2006.md | 217 ---- content/NXnet_Proposal.md | 82 -- content/NXtofnref-NIAC2006.md | 132 --- content/NXtranslate.md | 50 - content/NeXpy.md | 597 ----------- content/NeXus_CIF_Integration.md | 95 -- content/Nexus_41_Release_Notes.md | 77 -- content/Nexus_42_Release_Notes.md | 117 --- content/Nexus_43_Release_Notes.md | 92 -- content/Nexus_4_Release_Notes.md | 103 -- content/OO-NeXus.md | 114 -- content/Object_Oriented_Interface.md | 40 - content/Objects_or_Interfaces.md | 412 -------- content/Proposal_NeXus_Coordinates.md | 77 -- content/Proposal_NeXus_Errors.md | 64 -- content/Proposal_to_Simplify_Nexus.md | 138 --- content/ReflectDiscuss.md | 557 ---------- content/SAS.md | 187 ---- content/Scaled_Data.md | 67 -- content/Scans.md | 106 -- content/Simple.gif | Bin 5920 -> 0 bytes content/Storing_Event_Data.md | 83 -- content/TOFRaw.md | 675 ------------ content/TOFRawScan.md | 147 --- content/Telco_20150114.md | 70 -- content/Telco_20150203.md | 88 -- content/Telco_20150218.md | 65 -- content/Telco_20150302.md | 95 -- content/Telco_20150318.md | 105 -- content/Telco_20150408.md | 40 - content/Telco_20150506.md | 52 - content/Telco_20150520.md | 71 -- content/Telco_20150603.md | 52 - content/Telco_20150617.md | 120 --- content/Telco_20150630.md | 64 -- content/Telco_20150715.md | 90 -- content/Telco_20150728.md | 62 -- content/Telco_20150811.md | 56 - content/Telco_20150827.md | 53 - content/Telco_20150909.md | 147 --- content/Telco_20151001.md | 97 -- content/Telco_20151014.md | 56 - content/Telco_20151104.md | 79 -- content/Telco_20151116.md | 24 - content/Telco_20151202.md | 89 -- content/Telco_20151215.md | 53 - content/Telco_20160106.md | 78 -- content/Telco_20160120.md | 83 -- content/Telco_20160202.md | 93 -- content/Telco_20160224.md | 66 -- content/Telco_20160315.md | 73 -- content/Telco_20160329.md | 69 -- content/Telco_20160412.md | 74 -- content/Telco_20160426.md | 77 -- content/Telco_20160510.md | 77 -- content/Telco_20160531.md | 113 -- content/Telco_20160614.md | 78 -- content/Telco_20160628.md | 61 -- content/Telco_20160712.md | 60 -- content/Telco_20160809.md | 54 - content/Telco_20160824.md | 65 -- content/Telco_20160907.md | 84 -- content/Telco_20160928.md | 28 - content/Telco_20161123.md | 78 -- content/Telco_20161213.md | 105 -- content/Telco_20170117.md | 48 - content/Telco_20170130.md | 87 -- content/Telco_20170220.md | 53 - content/Telco_20170308.md | 73 -- content/Telco_20170322.md | 45 - content/Telco_20170405.md | 56 - content/Telco_20170426.md | 60 -- content/Telco_20170517.md | 57 - content/Telco_20170607.md | 65 -- content/Telco_20170628.md | 68 -- content/Telco_20170711.md | 89 -- content/Telco_20170725.md | 68 -- content/Telco_20170808.md | 60 -- content/Telco_20170823.md | 57 - content/Telco_20170912.md | 50 - content/Telco_20171004.md | 58 - content/Telco_20171026.md | 48 - content/Telco_20171107.md | 49 - content/Telco_20171128.md | 53 - content/Telco_20180116.md | 85 -- content/Telco_20180130.md | 47 - content/Telco_20180220.md | 50 - content/Telco_20180313.md | 55 - content/Telco_20180403.md | 67 -- content/Telco_20180418.md | 57 - content/Telco_20180502.md | 56 - content/Telco_20180515.md | 51 - content/Telco_20180529.md | 67 -- content/Telco_20180619.md | 65 -- content/Telco_20180814.md | 47 - content/Telco_20180905.md | 64 -- content/Telco_20180926.md | 48 - content/Telco_20181015.md | 43 - content/Telco_20190207.md | 46 - content/Telco_20190312.md | 44 - content/Telco_20190424.md | 62 -- content/Telco_20190621.md | 57 - content/Telco_20190715.md | 51 - content/Telco_20190812.md | 55 - content/Telco_20190911.md | 62 -- content/Telco_20191107.md | 61 -- content/Telco_20191212.md | 59 -- content/Telco_20200224.md | 45 - content/Telco_20200323.md | 48 - content/Telco_20200424.md | 106 -- content/Telco_20200527.md | 48 - content/Telco_20200701.md | 46 - content/Telco_20200904.md | 92 -- content/Telco_20200930.md | 53 - content/Telco_20201208.md | 84 -- content/Telco_20210120.md | 59 -- content/Telco_20210303.md | 56 - content/Telco_20210505.md | 60 -- content/Telco_20210628.md | 49 - content/Telco_20210728.md | 52 - content/Telco_20210915.md | 42 - content/Telco_20211115.md | 59 -- content/Telco_20211215.md | 76 -- content/Telco_20220131.md | 57 - content/Telco_20220225.md | 68 -- content/Telco_20220426.md | 89 -- content/Telco_20220527.md | 14 - content/Telco_20220602.md | 57 - content/Telco_20220707.md | 45 - content/Telco_20220824.md | 69 -- content/Telco_20221026.md | 81 -- content/Telco_20221202.md | 77 -- content/Telco_20230119.md | 155 --- content/Telco_20230213.md | 81 -- content/Telco_20230314.md | 83 -- content/Telco_20230419.md | 76 -- content/Telco_20230524.md | 71 -- content/Telco_20230724.md | 40 - content/Telco_20230814.md | 50 - content/Telco_20230920.md | 57 - content/Telco_20231019.md | 59 -- content/Telco_20231121.md | 54 - content/Telco_20231220.md | 66 -- content/Telco_20240117.md | 64 -- content/Telco_20240214.md | 63 -- content/Telco_20240311.md | 58 - content/Telco_20240415.md | 77 -- content/Telco_20240515.md | 61 -- content/Telco_20240626.md | 67 -- content/Telco_20240717.md | 81 -- content/Telco_20240820.md | 35 - content/Teleconferences.md | 431 -------- content/Thumbnails_for_Nexus_files.md | 39 - ...me-of-Flight_Neutron_Powder_Diffraction.md | 28 - ...pdate_for_NXflou_application_definition.md | 57 - content/Utilities.md | 88 -- content/Workshop_PSI_2010.md | 36 - content/XESraw.md | 78 -- content/index.md | 35 - content/make-new-telco.sh | 91 -- dev_tools/__init__.py | 0 dev_tools/__main__.py | 58 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 182 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 2802 bytes dev_tools/ext/__init__.py | 0 .../__pycache__/contrib_ext.cpython-311.pyc | Bin 0 -> 1320 bytes dev_tools/ext/contrib_ext.py | 30 + public/apple-touch-icon-144-precomposed.png | Bin 3723 -> 0 bytes public/css/hyde.css | 250 ----- public/css/poole.css | 430 -------- public/css/syntax.css | 65 -- source/CNAME | 1 + source/Makefile | 31 + source/__pycache__/dirlist.cpython-311.pyc | Bin 0 -> 5378 bytes source/_static/RUSS_logo.png | Bin 0 -> 229540 bytes source/_static/blockquote.css | 23 + source/_static/details_summary_hide.css | 5 + source/_static/rubric.css | 15 + source/_templates/google_search.html | 35 + source/_templates/layout.html | 7 + source/_templates/sourcelink.html | 46 + source/active_projects/active_projects.rst | 26 + source/codecamps/CodeCamp2020-2.rst | 70 ++ source/codecamps/CodeCamp2020-attendees.rst | 22 + source/codecamps/CodeCamp2020-topics.rst | 84 ++ source/codecamps/CodeCamp2020.rst | 744 +++++++++++++ source/codecamps/CodeCamp2021-1.rst | 64 ++ source/codecamps/CodeCamp2022.rst | 94 ++ source/codecamps/CodeCampJune2023.rst | 78 ++ source/codecamps/Code_Camp_2015.rst | 184 ++++ source/codecamps/Code_Camp_2017.rst | 245 +++++ source/codecamps/codecamps.rst | 27 + source/conf.py | 138 +++ .../content/2014_How_to_find_default_data.rst | 42 + .../content/2014_axes_and_uncertainties.rst | 304 ++++++ source/content/ActiveProjects.rst | 16 + source/content/Archive_Definition.rst | 87 ++ source/content/Associating_Axes_with_Data.rst | 33 + source/content/ConcordanceDiscussion.rst | 104 ++ .../Connecting_NXdata_to_NXdetector.rst | 52 + source/content/Containers_and_Inheritance.rst | 54 + source/content/DLSraw.rst | 101 ++ source/content/Design_Issues.rst | 52 + source/content/Detector_Geometry.rst | 36 + source/content/Download.rst | 40 + .../Extension_of_NeXus_Coordinate_Systems.rst | 79 ++ source/content/FAQ.rst | 96 ++ source/content/Facilities.rst | 130 +++ .../File_id_attribute_for_Nexus_files.rst | 28 + source/content/GenericScan.rst | 29 + source/content/Group_Attributes.rst | 23 + ...uture_extensions_of_the_Nexus_standard.rst | 52 + source/content/IndirectDiscuss.rst | 117 +++ ...ndirect_Time-of-Flight_and_Coordinates.rst | 45 + source/content/Instruments.rst | 96 ++ source/content/IssueReporting.rst | 15 + source/content/Japinotes.rst | 277 +++++ source/content/Java_API.rst | 45 + source/content/Jnexustut.rst | 185 ++++ source/content/Latest_News.rst | 391 +++++++ source/content/Linking_External_Files.rst | 89 ++ source/content/Metaformat.rst | 62 ++ source/content/MonoXPSD.rst | 45 + source/content/MonoXSingle.rst | 33 + ...c_Neutron_and_X-ray_Powder_Diffraction.rst | 11 + ...omatic_Neutron_and_X-ray_Reflectometry.rst | 51 + ...nd_X-ray_Single_Crystal_Diffractometer.rst | 24 + source/content/Multi_Method_Instruments.rst | 74 ++ source/content/Muon_Time_Differential.rst | 16 + source/content/NAPI_Routines.rst | 305 ++++++ source/content/NAPI_Utility_Routines.rst | 155 +++ source/content/NXaperture_and_Slits.rst | 40 + source/content/NXbrowse.f90.rst | 219 ++++ source/content/NXbrowse.rst | 60 ++ source/content/NXdetector_2012_10.rst | 74 ++ source/content/NXdetector_documentation.rst | 35 + source/content/NXdir.rst | 55 + ...and_NXshape_-_documentation_and_review.rst | 86 ++ source/content/NXlrcs.f90.rst | 127 +++ source/content/NXmeasurement.rst | 32 + source/content/NXmonoref-NIAC2006.rst | 43 + source/content/NXmonoref_example-NIAC2006.rst | 44 + source/content/NXmonotas-NIAC2006.rst | 32 + source/content/NXmonotas_example-NIAC2006.rst | 45 + source/content/NXnet_Proposal.rst | 68 ++ source/content/NXtofnref-NIAC2006.rst | 42 + source/content/NXtranslate.rst | 31 + source/content/NeXpy.rst | 329 ++++++ source/content/NeXus_CIF_Integration.rst | 57 + source/content/Nexus_41_Release_Notes.rst | 42 + source/content/Nexus_42_Release_Notes.rst | 59 ++ source/content/Nexus_43_Release_Notes.rst | 57 + source/content/Nexus_4_Release_Notes.rst | 57 + source/content/OO-NeXus.rst | 79 ++ source/content/Object_Oriented_Interface.rst | 26 + source/content/Objects_or_Interfaces.rst | 357 +++++++ source/content/Proposal_NeXus_Coordinates.rst | 31 + source/content/Proposal_NeXus_Errors.rst | 28 + source/content/Proposal_to_Simplify_Nexus.rst | 86 ++ source/content/ReflectDiscuss.rst | 148 +++ source/content/SAS.rst | 53 + source/content/Scaled_Data.rst | 44 + source/content/Scans.rst | 47 + source/content/Storing_Event_Data.rst | 51 + source/content/content.rst | 88 ++ source/content/index.rst | 41 + source/dirlist.py | 173 +++ source/encoding_convert.py | 37 + .../2014-CodeCamp-Schedule-MTW.png | Bin .../extra_files}/2014-NIAC-Schedule-HF.png | Bin .../extra_files}/Axis_Limits_Bar.png | Bin {content => source/extra_files}/CIMG0434.JPG | Bin {content => source/extra_files}/CIMG0435.JPG | Bin .../extra_files}/COP_neXus_slide1.PNG | Bin .../extra_files}/COP_neXus_slide2.PNG | Bin .../extra_files}/COP_neXus_slide3.PNG | Bin .../extra_files}/COP_neXus_slide4.PNG | Bin {content => source/extra_files}/Dalek.jpg | Bin .../extra_files}/IMAG1085_1.jpg | Bin {content => source/extra_files}/Mars.png | Bin .../extra_files}/NIAC2006LBL-PRJ3.jpg | Bin .../extra_files}/NIAC2006LBL-PRJ4.jpg | Bin .../extra_files}/NIAC2006LBL-PRJ5.jpg | Bin .../extra_files}/NIAC2006LBL-PRJ6.jpg | Bin .../extra_files}/NIAC2006LBL-PRJ7.jpg | Bin .../extra_files}/NIAC2007-PRJ-CIMG0432.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0433.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0434.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0435.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0436.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0437.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0438.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0439.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0440.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0441.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0442.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0443.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0444.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0445.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0446.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0447.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0448.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0449.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0450.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0451.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0452.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0453.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0454.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0455.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0456.JPG | Bin .../extra_files}/NIAC2007-PRJ-CIMG0457.JPG | Bin .../extra_files}/NeXPy-Simple_plot.png | Bin {content => source/extra_files}/NeXus.png | Bin .../extra_files}/NeXusCodeCamp2009-logo.png | Bin .../extra_files}/NeXusCodeCamp2011-logo.png | Bin .../extra_files}/NeXus_narrow.png | Bin {content => source/extra_files}/Nexpy.png | Bin .../extra_files}/Nexus_wide.png | Bin .../extra_files}/Niac2008-attendees.jpg | Bin .../extra_files}/Niac2008-hotel.jpg | Bin .../extra_files}/Niac2008-view.jpg | Bin .../extra_files}/Nxbox_image.png | Bin {content => source/extra_files}/Nxcone.png | Bin .../extra_files}/Nxcylinder.png | Bin .../extra_files}/Nxeliptical_image.png | Bin .../extra_files}/Nxflat_image.png | Bin .../extra_files}/Nxgeometry_uml.png | Bin .../extra_files}/Nxparabolic.png | Bin .../extra_files}/Nxpolynomial.png | Bin .../extra_files}/Nxsphere_image.png | Bin .../extra_files}/Nxtoroidal.png | Bin {content => source/extra_files}/PICT0004.JPG | Bin {content => source/extra_files}/Pinhole_2.png | Bin .../extra_files}/Pinhole_2D.png | Bin {content => source/extra_files}/Slit.png | Bin {content => source/extra_files}/Slit_2d.png | Bin source/facilities/facilities.rst | 176 ++++ source/faq/faq.rst | 140 +++ source/fix_encoding_warns.py | 86 ++ source/fix_title.py | 63 ++ source/img/NeXus.png | Bin 0 -> 13469 bytes source/index.rst | 62 ++ source/make.bat | 35 + source/niac/Membership_Dates.rst | 63 ++ source/niac/NIAC2006ILL.rst | 233 ++++ source/niac/NIAC2006LBL.rst | 203 ++++ source/niac/NIAC2006LBL_RoadMap.rst | 105 ++ source/niac/NIAC2006LBL_attendees.rst | 93 ++ source/niac/NIAC2006LBL_photos.rst | 46 + source/niac/NIAC2006_Scanning_Group.rst | 193 ++++ source/niac/NIAC2006_Synchrotron_Group.rst | 131 +++ source/niac/NIAC2006_TOF_Group.rst | 215 ++++ source/niac/NIAC2007.rst | 379 +++++++ source/niac/NIAC2007_Minutes.rst | 885 ++++++++++++++++ source/niac/NIAC2007_attendees.rst | 120 +++ source/niac/NIAC2007_photos.rst | 94 ++ source/niac/NIAC2008.rst | 171 +++ source/niac/NIAC2008_attendees.rst | 73 ++ source/niac/NIAC2009.rst | 54 + source/niac/NIAC2010.rst | 134 +++ source/niac/NIAC2010_CodeCamp.rst | 174 +++ source/niac/NIAC2011_CodeCamp.rst | 414 ++++++++ source/niac/NIAC2012.rst | 991 ++++++++++++++++++ source/niac/NIAC2014.rst | 400 +++++++ source/niac/NIAC2014_CodeCamp.rst | 135 +++ source/niac/NIAC2014_Meeting.rst | 351 +++++++ source/niac/NIAC2016.rst | 31 + source/niac/NIAC2016Minutes.rst | 338 ++++++ source/niac/NIAC2018.rst | 144 +++ source/niac/NIAC2018Minutes.rst | 591 +++++++++++ source/niac/NIAC2020.rst | 183 ++++ source/niac/NIAC2020minutes.rst | 279 +++++ source/niac/NIAC2020minutes_concluding.rst | 318 ++++++ source/niac/NIAC2022.rst | 326 ++++++ source/niac/NIAC2022_fall_minutes.rst | 159 +++ source/niac/NIAC2022_minutes.rst | 663 ++++++++++++ source/niac/NIAC2022_spring.rst | 203 ++++ source/niac/NIAC2022_spring_minutes.rst | 493 +++++++++ source/niac/NIAC2024.rst | 262 +++++ source/niac/NIAC2024_minutes.rst | 163 +++ source/niac/NIACAPI.rst | 44 + source/niac/NIACActionItems.rst | 119 +++ source/niac/NIACClasses.rst | 157 +++ source/niac/NIACDesign.rst | 142 +++ source/niac/NIACOrg.rst | 93 ++ source/niac/NIACdoc.rst | 65 ++ source/niac/niac.rst | 283 +++++ source/niac/previous_meetings.rst | 143 +++ source/pandoc_converter.py | 45 + .../2011-10-20_NeXus_manual_in_sphinx.pdf | Bin .../pdfs}/2011_10_20_nexus_heretics_v5.pdf | Bin {pdfs => source/pdfs}/CIFNexus.pdf | Bin {pdfs => source/pdfs}/Elements_for_Muons.pdf | Bin {pdfs => source/pdfs}/European-Formats.pdf | Bin {pdfs => source/pdfs}/Isis_nexus_016.pdf | Bin .../pdfs}/MantidNexusWorkspaceFormat.pdf | Bin .../pdfs}/Mark_Nexus_NIAC_2010.pdf | Bin .../pdfs}/Minutes_of_NeXus_Committee_2010.pdf | Bin {pdfs => source/pdfs}/Muon_V2R7.pdf | Bin {pdfs => source/pdfs}/NIAC2003Minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2005minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2006LBL_minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2006minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2007HMI_minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2008_minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2012Minutes.pdf | Bin {pdfs => source/pdfs}/NIAC2014Minutes.pdf | Bin {pdfs => source/pdfs}/NIACMinutes.pdf | Bin {pdfs => source/pdfs}/NIAC_minute.pdf | Bin {pdfs => source/pdfs}/NeXpy.pdf | Bin {pdfs => source/pdfs}/NeXusManual.pdf | Bin .../pdfs}/NeXusMinutes-Oct2004.pdf | Bin {pdfs => source/pdfs}/NeXusOBJ.pdf | Bin {pdfs => source/pdfs}/NeXus_Proposal.pdf | Bin .../pdfs}/NexusCodeCamp2015_map.pdf | Bin .../Proposed_Data_Standard_for_the_APS.pdf | Bin source/teleconferences/Telco_20150114.rst | 74 ++ source/teleconferences/Telco_20150203.rst | 86 ++ source/teleconferences/Telco_20150218.rst | 50 + source/teleconferences/Telco_20150302.rst | 84 ++ source/teleconferences/Telco_20150318.rst | 102 ++ source/teleconferences/Telco_20150408.rst | 48 + source/teleconferences/Telco_20150506.rst | 68 ++ source/teleconferences/Telco_20150520.rst | 81 ++ source/teleconferences/Telco_20150603.rst | 62 ++ source/teleconferences/Telco_20150617.rst | 119 +++ source/teleconferences/Telco_20150630.rst | 73 ++ source/teleconferences/Telco_20150715.rst | 101 ++ source/teleconferences/Telco_20150728.rst | 73 ++ source/teleconferences/Telco_20150811.rst | 65 ++ source/teleconferences/Telco_20150827.rst | 61 ++ source/teleconferences/Telco_20150909.rst | 153 +++ source/teleconferences/Telco_20151001.rst | 109 ++ source/teleconferences/Telco_20151014.rst | 61 ++ source/teleconferences/Telco_20151104.rst | 89 ++ source/teleconferences/Telco_20151116.rst | 30 + source/teleconferences/Telco_20151202.rst | 90 ++ source/teleconferences/Telco_20151215.rst | 59 ++ source/teleconferences/Telco_20160106.rst | 93 ++ source/teleconferences/Telco_20160120.rst | 98 ++ source/teleconferences/Telco_20160202.rst | 108 ++ source/teleconferences/Telco_20160224.rst | 80 ++ source/teleconferences/Telco_20160315.rst | 89 ++ source/teleconferences/Telco_20160329.rst | 84 ++ source/teleconferences/Telco_20160412.rst | 94 ++ source/teleconferences/Telco_20160426.rst | 93 ++ source/teleconferences/Telco_20160510.rst | 88 ++ source/teleconferences/Telco_20160531.rst | 142 +++ source/teleconferences/Telco_20160614.rst | 94 ++ source/teleconferences/Telco_20160628.rst | 77 ++ source/teleconferences/Telco_20160712.rst | 72 ++ source/teleconferences/Telco_20160809.rst | 66 ++ source/teleconferences/Telco_20160824.rst | 79 ++ source/teleconferences/Telco_20160907.rst | 104 ++ source/teleconferences/Telco_20160928.rst | 34 + source/teleconferences/Telco_20161123.rst | 93 ++ source/teleconferences/Telco_20161213.rst | 127 +++ source/teleconferences/Telco_20170117.rst | 60 ++ source/teleconferences/Telco_20170130.rst | 102 ++ source/teleconferences/Telco_20170220.rst | 94 ++ source/teleconferences/Telco_20170308.rst | 125 +++ source/teleconferences/Telco_20170322.rst | 65 ++ source/teleconferences/Telco_20170405.rst | 81 ++ source/teleconferences/Telco_20170426.rst | 81 ++ source/teleconferences/Telco_20170517.rst | 76 ++ source/teleconferences/Telco_20170607.rst | 89 ++ source/teleconferences/Telco_20170628.rst | 91 ++ source/teleconferences/Telco_20170711.rst | 129 +++ source/teleconferences/Telco_20170725.rst | 87 ++ source/teleconferences/Telco_20170808.rst | 76 ++ source/teleconferences/Telco_20170823.rst | 84 ++ source/teleconferences/Telco_20170912.rst | 69 ++ source/teleconferences/Telco_20171004.rst | 75 ++ source/teleconferences/Telco_20171026.rst | 57 + source/teleconferences/Telco_20171107.rst | 75 ++ source/teleconferences/Telco_20171128.rst | 84 ++ source/teleconferences/Telco_20180116.rst | 110 ++ source/teleconferences/Telco_20180130.rst | 63 ++ source/teleconferences/Telco_20180220.rst | 71 ++ source/teleconferences/Telco_20180313.rst | 84 ++ source/teleconferences/Telco_20180403.rst | 91 ++ source/teleconferences/Telco_20180418.rst | 87 ++ source/teleconferences/Telco_20180502.rst | 77 ++ source/teleconferences/Telco_20180515.rst | 72 ++ source/teleconferences/Telco_20180529.rst | 78 ++ source/teleconferences/Telco_20180619.rst | 83 ++ source/teleconferences/Telco_20180814.rst | 55 + source/teleconferences/Telco_20180905.rst | 75 ++ source/teleconferences/Telco_20180926.rst | 58 + source/teleconferences/Telco_20181015.rst | 50 + source/teleconferences/Telco_20190207.rst | 83 ++ source/teleconferences/Telco_20190312.rst | 58 + source/teleconferences/Telco_20190424.rst | 99 ++ source/teleconferences/Telco_20190621.rst | 93 ++ source/teleconferences/Telco_20190715.rst | 68 ++ source/teleconferences/Telco_20190812.rst | 70 ++ source/teleconferences/Telco_20190911.rst | 93 ++ source/teleconferences/Telco_20191107.rst | 89 ++ source/teleconferences/Telco_20191212.rst | 87 ++ source/teleconferences/Telco_20200224.rst | 69 ++ source/teleconferences/Telco_20200323.rst | 61 ++ source/teleconferences/Telco_20200424.rst | 146 +++ source/teleconferences/Telco_20200527.rst | 66 ++ source/teleconferences/Telco_20200701.rst | 83 ++ source/teleconferences/Telco_20200904.rst | 134 +++ source/teleconferences/Telco_20200930.rst | 103 ++ source/teleconferences/Telco_20201208.rst | 142 +++ source/teleconferences/Telco_20210120.rst | 109 ++ source/teleconferences/Telco_20210303.rst | 87 ++ source/teleconferences/Telco_20210505.rst | 124 +++ source/teleconferences/Telco_20210628.rst | 112 ++ source/teleconferences/Telco_20210728.rst | 105 ++ source/teleconferences/Telco_20210915.rst | 71 ++ source/teleconferences/Telco_20211115.rst | 88 ++ source/teleconferences/Telco_20211215.rst | 112 ++ source/teleconferences/Telco_20220131.rst | 110 ++ source/teleconferences/Telco_20220225.rst | 105 ++ source/teleconferences/Telco_20220426.rst | 203 ++++ source/teleconferences/Telco_20220527.rst | 18 + source/teleconferences/Telco_20220602.rst | 85 ++ source/teleconferences/Telco_20220707.rst | 73 ++ source/teleconferences/Telco_20220824.rst | 119 +++ source/teleconferences/Telco_20221026.rst | 117 +++ source/teleconferences/Telco_20221202.rst | 97 ++ source/teleconferences/Telco_20230119.rst | 269 +++++ source/teleconferences/Telco_20230213.rst | 125 +++ source/teleconferences/Telco_20230314.rst | 111 ++ source/teleconferences/Telco_20230419.rst | 113 ++ source/teleconferences/Telco_20230524.rst | 92 ++ source/teleconferences/Telco_20230724.rst | 47 + source/teleconferences/Telco_20230814.rst | 61 ++ source/teleconferences/Telco_20230920.rst | 72 ++ source/teleconferences/Telco_20231019.rst | 77 ++ source/teleconferences/Telco_20231121.rst | 74 ++ source/teleconferences/Telco_20231220.rst | 108 ++ source/teleconferences/Telco_20240117.rst | 89 ++ source/teleconferences/Telco_20240214.rst | 94 ++ source/teleconferences/Telco_20240311.rst | 90 ++ source/teleconferences/Telco_20240415.rst | 142 +++ source/teleconferences/Telco_20240515.rst | 91 ++ source/teleconferences/Telco_20240626.rst | 106 ++ source/teleconferences/Telco_20240717.rst | 119 +++ source/teleconferences/Telco_20240820.rst | 15 + source/teleconferences/Telco_20241127.rst | 51 + source/teleconferences/Telco_20241209.rst | 131 +++ source/teleconferences/Telco_20241218.rst | 102 ++ source/teleconferences/Telco_20250116.rst | 44 + source/teleconferences/Telco_20250127.rst | 53 + source/teleconferences/teleconferences.rst | 763 ++++++++++++++ 810 files changed, 32232 insertions(+), 31062 deletions(-) delete mode 100644 .gitignore delete mode 100644 404.html delete mode 100644 CNAME delete mode 100644 LICENSE.md delete mode 100644 README.md delete mode 100644 Vagrantfile delete mode 100644 Vagrantprovision.sh delete mode 100644 _config.yml delete mode 100644 _includes/head.html delete mode 100644 _includes/sidebar.html delete mode 100644 _layouts/default.html delete mode 100644 _layouts/page.html delete mode 100644 _layouts/post.html delete mode 120000 _layouts/wiki.html delete mode 100644 atom.xml create mode 100644 build/.doctrees/active_projects/ActiveProjects.doctree create mode 100644 build/.doctrees/codecamps/CodeCamp2020-2.doctree create mode 100644 build/.doctrees/codecamps/CodeCamp2020-attendees.doctree create mode 100644 build/.doctrees/codecamps/CodeCamp2020-topics.doctree create mode 100644 build/.doctrees/codecamps/CodeCamp2020.doctree create mode 100644 build/.doctrees/codecamps/CodeCamp2021-1.doctree create mode 100644 build/.doctrees/codecamps/CodeCamp2022.doctree create mode 100644 build/.doctrees/codecamps/CodeCampJune2023.doctree create mode 100644 build/.doctrees/codecamps/Code_Camp_2015.doctree create mode 100644 build/.doctrees/codecamps/Code_Camp_2017.doctree create mode 100644 build/.doctrees/facilities/Facilities.doctree create mode 100644 build/.doctrees/faq/FAQ.doctree create mode 100644 build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree create mode 100644 build/.doctrees/html_static_pandoc/2014_axes_and_uncertainties.doctree create mode 100644 build/.doctrees/html_static_pandoc/404.doctree create mode 100644 build/.doctrees/html_static_pandoc/Archive_Definition.doctree create mode 100644 build/.doctrees/html_static_pandoc/Associating_Axes_with_Data.doctree create mode 100644 build/.doctrees/html_static_pandoc/ConcordanceDiscussion.doctree create mode 100644 build/.doctrees/html_static_pandoc/Connecting_NXdata_to_NXdetector.doctree create mode 100644 build/.doctrees/html_static_pandoc/Containers_and_Inheritance.doctree create mode 100644 build/.doctrees/html_static_pandoc/DLSraw.doctree create mode 100644 build/.doctrees/html_static_pandoc/Design_Issues.doctree create mode 100644 build/.doctrees/html_static_pandoc/Detector_Geometry.doctree create mode 100644 build/.doctrees/html_static_pandoc/Download.doctree create mode 100644 build/.doctrees/html_static_pandoc/Extension_of_NeXus_Coordinate_Systems.doctree create mode 100644 build/.doctrees/html_static_pandoc/File_id_attribute_for_Nexus_files.doctree create mode 100644 build/.doctrees/html_static_pandoc/GenericScan.doctree create mode 100644 build/.doctrees/html_static_pandoc/Group_Attributes.doctree create mode 100644 build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree create mode 100644 build/.doctrees/html_static_pandoc/IndirectDiscuss.doctree create mode 100644 build/.doctrees/html_static_pandoc/Indirect_Time-of-Flight_and_Coordinates.doctree create mode 100644 build/.doctrees/html_static_pandoc/Instruments.doctree create mode 100644 build/.doctrees/html_static_pandoc/IssueReporting.doctree create mode 100644 build/.doctrees/html_static_pandoc/Japinotes.doctree create mode 100644 build/.doctrees/html_static_pandoc/Java_API.doctree create mode 100644 build/.doctrees/html_static_pandoc/Jnexustut.doctree create mode 100644 build/.doctrees/html_static_pandoc/Latest_News.doctree create mode 100644 build/.doctrees/html_static_pandoc/Linking_External_Files.doctree create mode 100644 build/.doctrees/html_static_pandoc/Membership_Dates.doctree create mode 100644 build/.doctrees/html_static_pandoc/Metaformat.doctree create mode 100644 build/.doctrees/html_static_pandoc/MonoXPSD.doctree create mode 100644 build/.doctrees/html_static_pandoc/MonoXSingle.doctree create mode 100644 build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.doctree create mode 100644 build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Reflectometry.doctree create mode 100644 build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.doctree create mode 100644 build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree create mode 100644 build/.doctrees/html_static_pandoc/Muon_Time_Differential.doctree create mode 100644 build/.doctrees/html_static_pandoc/NAPI_Routines.doctree create mode 100644 build/.doctrees/html_static_pandoc/NAPI_Utility_Routines.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXaperture_and_Slits.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXbrowse.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXbrowse.f90.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXdetector_2012_10.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXdir.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXgeometry_and_NXshape_-_documentation_and_review.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXlrcs.f90.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXmeasurement.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXmonoref-NIAC2006.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXmonoref_example-NIAC2006.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXmonotas-NIAC2006.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXmonotas_example-NIAC2006.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXnet_Proposal.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXtofnref-NIAC2006.doctree create mode 100644 build/.doctrees/html_static_pandoc/NXtranslate.doctree create mode 100644 build/.doctrees/html_static_pandoc/NeXpy.doctree create mode 100644 build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree create mode 100644 build/.doctrees/html_static_pandoc/Nexus_41_Release_Notes.doctree create mode 100644 build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree create mode 100644 build/.doctrees/html_static_pandoc/Nexus_43_Release_Notes.doctree create mode 100644 build/.doctrees/html_static_pandoc/Nexus_4_Release_Notes.doctree create mode 100644 build/.doctrees/html_static_pandoc/OO-NeXus.doctree create mode 100644 build/.doctrees/html_static_pandoc/Object_Oriented_Interface.doctree create mode 100644 build/.doctrees/html_static_pandoc/Objects_or_Interfaces.doctree create mode 100644 build/.doctrees/html_static_pandoc/Proposal_NeXus_Coordinates.doctree create mode 100644 build/.doctrees/html_static_pandoc/Proposal_NeXus_Errors.doctree create mode 100644 build/.doctrees/html_static_pandoc/Proposal_to_Simplify_Nexus.doctree create mode 100644 build/.doctrees/html_static_pandoc/ReflectDiscuss.doctree create mode 100644 build/.doctrees/html_static_pandoc/SAS.doctree create mode 100644 build/.doctrees/html_static_pandoc/Scaled_Data.doctree create mode 100644 build/.doctrees/html_static_pandoc/Scans.doctree create mode 100644 build/.doctrees/html_static_pandoc/Storing_Event_Data.doctree create mode 100644 build/.doctrees/html_static_pandoc/TOFRaw.doctree create mode 100644 build/.doctrees/html_static_pandoc/TOFRawScan.doctree create mode 100644 build/.doctrees/html_static_pandoc/Thumbnails_for_Nexus_files.doctree create mode 100644 build/.doctrees/html_static_pandoc/Time-of-Flight_Neutron_Powder_Diffraction.doctree create mode 100644 build/.doctrees/html_static_pandoc/Update_for_NXflou_application_definition.doctree create mode 100644 build/.doctrees/html_static_pandoc/Utilities.doctree create mode 100644 build/.doctrees/html_static_pandoc/Workshop_PSI_2010.doctree create mode 100644 build/.doctrees/html_static_pandoc/XESraw.doctree create mode 100644 build/.doctrees/html_static_pandoc/index.doctree create mode 100644 build/.doctrees/index.doctree create mode 100644 build/.doctrees/niac/NIAC.doctree create mode 100644 build/.doctrees/niac/NIAC2006ILL.doctree create mode 100644 build/.doctrees/niac/NIAC2006LBL.doctree create mode 100644 build/.doctrees/niac/NIAC2006LBL_RoadMap.doctree create mode 100644 build/.doctrees/niac/NIAC2006LBL_attendees.doctree create mode 100644 build/.doctrees/niac/NIAC2006LBL_photos.doctree create mode 100644 build/.doctrees/niac/NIAC2006_Scanning_Group.doctree create mode 100644 build/.doctrees/niac/NIAC2006_Synchrotron_Group.doctree create mode 100644 build/.doctrees/niac/NIAC2006_TOF_Group.doctree create mode 100644 build/.doctrees/niac/NIAC2007.doctree create mode 100644 build/.doctrees/niac/NIAC2007_Minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2007_attendees.doctree create mode 100644 build/.doctrees/niac/NIAC2007_photos.doctree create mode 100644 build/.doctrees/niac/NIAC2008.doctree create mode 100644 build/.doctrees/niac/NIAC2008_attendees.doctree create mode 100644 build/.doctrees/niac/NIAC2009.doctree create mode 100644 build/.doctrees/niac/NIAC2010.doctree create mode 100644 build/.doctrees/niac/NIAC2010_CodeCamp.doctree create mode 100644 build/.doctrees/niac/NIAC2011_CodeCamp.doctree create mode 100644 build/.doctrees/niac/NIAC2012.doctree create mode 100644 build/.doctrees/niac/NIAC2014.doctree create mode 100644 build/.doctrees/niac/NIAC2014_CodeCamp.doctree create mode 100644 build/.doctrees/niac/NIAC2014_Meeting.doctree create mode 100644 build/.doctrees/niac/NIAC2016.doctree create mode 100644 build/.doctrees/niac/NIAC2016Minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2018.doctree create mode 100644 build/.doctrees/niac/NIAC2018Minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2020.doctree create mode 100644 build/.doctrees/niac/NIAC2020minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2020minutes_concluding.doctree create mode 100644 build/.doctrees/niac/NIAC2022.doctree create mode 100644 build/.doctrees/niac/NIAC2022_fall_minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2022_minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2022_spring.doctree create mode 100644 build/.doctrees/niac/NIAC2022_spring_minutes.doctree create mode 100644 build/.doctrees/niac/NIAC2024.doctree create mode 100644 build/.doctrees/niac/NIACAPI.doctree create mode 100644 build/.doctrees/niac/NIACActionItems.doctree create mode 100644 build/.doctrees/niac/NIACClasses.doctree create mode 100644 build/.doctrees/niac/NIACDesign.doctree create mode 100644 common/NeXus_Logo.png create mode 100644 common/NeXus_Logo_dark.png create mode 100644 common/NeXus_Logo_dark_square.png create mode 100644 common/NeXus_Logo_dark_square_nogrey.png create mode 100644 common/NeXus_Logo_square.png create mode 100644 common/NeXus_Logo_square_nogrey.png rename {public => common}/favicon.ico (100%) delete mode 100644 content/2014_How_to_find_default_data.md delete mode 100644 content/2014_axes_and_uncertainties.md delete mode 100644 content/ActiveProjects.md delete mode 100644 content/Archive_Definition.md delete mode 100644 content/Associating_Axes_with_Data.md delete mode 100644 content/CodeCamp2020-2.md delete mode 100644 content/CodeCamp2020-attendees.md delete mode 100644 content/CodeCamp2020-topics.md delete mode 100644 content/CodeCamp2020.md delete mode 100644 content/CodeCamp2021-1.md delete mode 100644 content/CodeCamp2022.md delete mode 100644 content/CodeCampJune2023.md delete mode 100644 content/Code_Camp_2015.md delete mode 100644 content/Code_Camp_2017.md delete mode 100644 content/ConcordanceDiscussion.md delete mode 100644 content/Connecting_NXdata_to_NXdetector.md delete mode 100644 content/Containers_and_Inheritance.md delete mode 100644 content/DLSraw.md delete mode 100644 content/Design_Issues.md delete mode 100644 content/Detector_Geometry.md delete mode 100644 content/Download.md delete mode 100644 content/Extension_of_NeXus_Coordinate_Systems.md delete mode 100644 content/FAQ.md delete mode 100644 content/Facilities.md delete mode 100644 content/File_id_attribute_for_Nexus_files.md delete mode 100644 content/GenericScan.md delete mode 100644 content/Group_Attributes.md delete mode 100644 content/Hierarchy.gif delete mode 100644 content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.md delete mode 100644 content/IndirectDiscuss.md delete mode 100644 content/Indirect_Time-of-Flight_and_Coordinates.md delete mode 100644 content/Instruments.md delete mode 100644 content/IssueReporting.md delete mode 100644 content/Japinotes.md delete mode 100644 content/Java_API.md delete mode 100644 content/Jnexustut.md delete mode 100644 content/Latest_News.md delete mode 100644 content/Linking_External_Files.md delete mode 100644 content/Membership_Dates.md delete mode 100644 content/Metaformat.md delete mode 100644 content/MonoXPSD.md delete mode 100644 content/MonoXSingle.md delete mode 100644 content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.md delete mode 100644 content/Monochromatic_Neutron_and_X-ray_Reflectometry.md delete mode 100644 content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.md delete mode 100644 content/Multi_Method_Instruments.md delete mode 100644 content/Muon_Time_Differential.md delete mode 100644 content/NAPI_Routines.md delete mode 100644 content/NAPI_Utility_Routines.md delete mode 100644 content/NIAC.md delete mode 100644 content/NIAC2-22_fall_minutes.md delete mode 100644 content/NIAC2006ILL.md delete mode 100644 content/NIAC2006LBL.md delete mode 100644 content/NIAC2006LBL_RoadMap.md delete mode 100644 content/NIAC2006LBL_attendees.md delete mode 100644 content/NIAC2006LBL_minutes.doc delete mode 100644 content/NIAC2006LBL_photos.md delete mode 100644 content/NIAC2006_Scanning_Group.md delete mode 100644 content/NIAC2006_Synchrotron_Group.md delete mode 100644 content/NIAC2006_TOF_Group.md delete mode 100644 content/NIAC2007.md delete mode 100644 content/NIAC2007_Minutes.md delete mode 100644 content/NIAC2007_attendees.md delete mode 100644 content/NIAC2007_photos.md delete mode 100644 content/NIAC2008.md delete mode 100644 content/NIAC2008_attendees.md delete mode 100644 content/NIAC2009.md delete mode 100644 content/NIAC2010.md delete mode 100644 content/NIAC2010_CodeCamp.md delete mode 100644 content/NIAC2011_CodeCamp.md delete mode 100644 content/NIAC2012.md delete mode 100644 content/NIAC2014.md delete mode 100644 content/NIAC2014_CodeCamp.md delete mode 100644 content/NIAC2014_Meeting.md delete mode 100644 content/NIAC2016.md delete mode 100644 content/NIAC2016Minutes.md delete mode 100644 content/NIAC2018.md delete mode 100644 content/NIAC2018Minutes.md delete mode 100644 content/NIAC2020.md delete mode 100644 content/NIAC2020minutes.md delete mode 100644 content/NIAC2020minutes_concluding.md delete mode 100644 content/NIAC2022.md delete mode 100644 content/NIAC2022_minutes.md delete mode 100644 content/NIAC2022_minutes_freddie.md delete mode 100644 content/NIAC2022_spring.md delete mode 100644 content/NIAC2022_spring_minutes.md delete mode 100644 content/NIAC2024.md delete mode 100644 content/NIAC2024_minutes.md delete mode 100644 content/NIACAPI.md delete mode 100644 content/NIACActionItems.md delete mode 100644 content/NIACClasses.md delete mode 100644 content/NIACDesign.md delete mode 100644 content/NIACOrg.md delete mode 100644 content/NIACdoc.md delete mode 100644 content/NXaperture_and_Slits.md delete mode 100644 content/NXbrowse.f90.md delete mode 100644 content/NXbrowse.md delete mode 100644 content/NXdetector_2012_10.md delete mode 100644 content/NXdetector_documentation.md delete mode 100644 content/NXdir.md delete mode 100644 content/NXgeometry_and_NXshape_-_documentation_and_review.md delete mode 100644 content/NXinstrument.gif delete mode 100644 content/NXlrcs.f90.md delete mode 100644 content/NXmeasurement.md delete mode 100644 content/NXmonoref-NIAC2006.md delete mode 100644 content/NXmonoref_example-NIAC2006.md delete mode 100644 content/NXmonotas-NIAC2006.md delete mode 100644 content/NXmonotas_example-NIAC2006.md delete mode 100644 content/NXnet_Proposal.md delete mode 100644 content/NXtofnref-NIAC2006.md delete mode 100644 content/NXtranslate.md delete mode 100644 content/NeXpy.md delete mode 100644 content/NeXus_CIF_Integration.md delete mode 100644 content/Nexus_41_Release_Notes.md delete mode 100644 content/Nexus_42_Release_Notes.md delete mode 100644 content/Nexus_43_Release_Notes.md delete mode 100644 content/Nexus_4_Release_Notes.md delete mode 100644 content/OO-NeXus.md delete mode 100644 content/Object_Oriented_Interface.md delete mode 100644 content/Objects_or_Interfaces.md delete mode 100644 content/Proposal_NeXus_Coordinates.md delete mode 100644 content/Proposal_NeXus_Errors.md delete mode 100644 content/Proposal_to_Simplify_Nexus.md delete mode 100644 content/ReflectDiscuss.md delete mode 100644 content/SAS.md delete mode 100644 content/Scaled_Data.md delete mode 100644 content/Scans.md delete mode 100644 content/Simple.gif delete mode 100644 content/Storing_Event_Data.md delete mode 100644 content/TOFRaw.md delete mode 100644 content/TOFRawScan.md delete mode 100644 content/Telco_20150114.md delete mode 100644 content/Telco_20150203.md delete mode 100644 content/Telco_20150218.md delete mode 100644 content/Telco_20150302.md delete mode 100644 content/Telco_20150318.md delete mode 100644 content/Telco_20150408.md delete mode 100644 content/Telco_20150506.md delete mode 100644 content/Telco_20150520.md delete mode 100644 content/Telco_20150603.md delete mode 100644 content/Telco_20150617.md delete mode 100644 content/Telco_20150630.md delete mode 100644 content/Telco_20150715.md delete mode 100644 content/Telco_20150728.md delete mode 100644 content/Telco_20150811.md delete mode 100644 content/Telco_20150827.md delete mode 100644 content/Telco_20150909.md delete mode 100644 content/Telco_20151001.md delete mode 100644 content/Telco_20151014.md delete mode 100644 content/Telco_20151104.md delete mode 100644 content/Telco_20151116.md delete mode 100644 content/Telco_20151202.md delete mode 100644 content/Telco_20151215.md delete mode 100644 content/Telco_20160106.md delete mode 100644 content/Telco_20160120.md delete mode 100644 content/Telco_20160202.md delete mode 100644 content/Telco_20160224.md delete mode 100644 content/Telco_20160315.md delete mode 100644 content/Telco_20160329.md delete mode 100644 content/Telco_20160412.md delete mode 100644 content/Telco_20160426.md delete mode 100644 content/Telco_20160510.md delete mode 100644 content/Telco_20160531.md delete mode 100644 content/Telco_20160614.md delete mode 100644 content/Telco_20160628.md delete mode 100644 content/Telco_20160712.md delete mode 100644 content/Telco_20160809.md delete mode 100644 content/Telco_20160824.md delete mode 100644 content/Telco_20160907.md delete mode 100644 content/Telco_20160928.md delete mode 100644 content/Telco_20161123.md delete mode 100644 content/Telco_20161213.md delete mode 100644 content/Telco_20170117.md delete mode 100644 content/Telco_20170130.md delete mode 100644 content/Telco_20170220.md delete mode 100644 content/Telco_20170308.md delete mode 100644 content/Telco_20170322.md delete mode 100644 content/Telco_20170405.md delete mode 100644 content/Telco_20170426.md delete mode 100644 content/Telco_20170517.md delete mode 100644 content/Telco_20170607.md delete mode 100644 content/Telco_20170628.md delete mode 100644 content/Telco_20170711.md delete mode 100644 content/Telco_20170725.md delete mode 100644 content/Telco_20170808.md delete mode 100644 content/Telco_20170823.md delete mode 100644 content/Telco_20170912.md delete mode 100644 content/Telco_20171004.md delete mode 100644 content/Telco_20171026.md delete mode 100644 content/Telco_20171107.md delete mode 100644 content/Telco_20171128.md delete mode 100644 content/Telco_20180116.md delete mode 100644 content/Telco_20180130.md delete mode 100644 content/Telco_20180220.md delete mode 100644 content/Telco_20180313.md delete mode 100644 content/Telco_20180403.md delete mode 100644 content/Telco_20180418.md delete mode 100644 content/Telco_20180502.md delete mode 100644 content/Telco_20180515.md delete mode 100644 content/Telco_20180529.md delete mode 100644 content/Telco_20180619.md delete mode 100644 content/Telco_20180814.md delete mode 100644 content/Telco_20180905.md delete mode 100644 content/Telco_20180926.md delete mode 100644 content/Telco_20181015.md delete mode 100644 content/Telco_20190207.md delete mode 100644 content/Telco_20190312.md delete mode 100644 content/Telco_20190424.md delete mode 100644 content/Telco_20190621.md delete mode 100644 content/Telco_20190715.md delete mode 100644 content/Telco_20190812.md delete mode 100644 content/Telco_20190911.md delete mode 100644 content/Telco_20191107.md delete mode 100644 content/Telco_20191212.md delete mode 100644 content/Telco_20200224.md delete mode 100644 content/Telco_20200323.md delete mode 100644 content/Telco_20200424.md delete mode 100644 content/Telco_20200527.md delete mode 100644 content/Telco_20200701.md delete mode 100644 content/Telco_20200904.md delete mode 100644 content/Telco_20200930.md delete mode 100644 content/Telco_20201208.md delete mode 100644 content/Telco_20210120.md delete mode 100644 content/Telco_20210303.md delete mode 100644 content/Telco_20210505.md delete mode 100644 content/Telco_20210628.md delete mode 100644 content/Telco_20210728.md delete mode 100644 content/Telco_20210915.md delete mode 100644 content/Telco_20211115.md delete mode 100644 content/Telco_20211215.md delete mode 100644 content/Telco_20220131.md delete mode 100644 content/Telco_20220225.md delete mode 100644 content/Telco_20220426.md delete mode 100644 content/Telco_20220527.md delete mode 100644 content/Telco_20220602.md delete mode 100644 content/Telco_20220707.md delete mode 100644 content/Telco_20220824.md delete mode 100644 content/Telco_20221026.md delete mode 100644 content/Telco_20221202.md delete mode 100644 content/Telco_20230119.md delete mode 100644 content/Telco_20230213.md delete mode 100644 content/Telco_20230314.md delete mode 100644 content/Telco_20230419.md delete mode 100644 content/Telco_20230524.md delete mode 100644 content/Telco_20230724.md delete mode 100644 content/Telco_20230814.md delete mode 100644 content/Telco_20230920.md delete mode 100644 content/Telco_20231019.md delete mode 100644 content/Telco_20231121.md delete mode 100644 content/Telco_20231220.md delete mode 100644 content/Telco_20240117.md delete mode 100644 content/Telco_20240214.md delete mode 100644 content/Telco_20240311.md delete mode 100644 content/Telco_20240415.md delete mode 100644 content/Telco_20240515.md delete mode 100644 content/Telco_20240626.md delete mode 100644 content/Telco_20240717.md delete mode 100644 content/Telco_20240820.md delete mode 100644 content/Teleconferences.md delete mode 100644 content/Thumbnails_for_Nexus_files.md delete mode 100644 content/Time-of-Flight_Neutron_Powder_Diffraction.md delete mode 100644 content/Update_for_NXflou_application_definition.md delete mode 100644 content/Utilities.md delete mode 100644 content/Workshop_PSI_2010.md delete mode 100644 content/XESraw.md delete mode 100644 content/index.md delete mode 100644 content/make-new-telco.sh create mode 100644 dev_tools/__init__.py create mode 100644 dev_tools/__main__.py create mode 100644 dev_tools/__pycache__/__init__.cpython-311.pyc create mode 100644 dev_tools/__pycache__/__main__.cpython-311.pyc create mode 100644 dev_tools/ext/__init__.py create mode 100644 dev_tools/ext/__pycache__/contrib_ext.cpython-311.pyc create mode 100644 dev_tools/ext/contrib_ext.py delete mode 100644 public/apple-touch-icon-144-precomposed.png delete mode 100644 public/css/hyde.css delete mode 100644 public/css/poole.css delete mode 100644 public/css/syntax.css create mode 100644 source/CNAME create mode 100644 source/Makefile create mode 100644 source/__pycache__/dirlist.cpython-311.pyc create mode 100644 source/_static/RUSS_logo.png create mode 100644 source/_static/blockquote.css create mode 100644 source/_static/details_summary_hide.css create mode 100644 source/_static/rubric.css create mode 100644 source/_templates/google_search.html create mode 100644 source/_templates/layout.html create mode 100644 source/_templates/sourcelink.html create mode 100644 source/active_projects/active_projects.rst create mode 100644 source/codecamps/CodeCamp2020-2.rst create mode 100644 source/codecamps/CodeCamp2020-attendees.rst create mode 100644 source/codecamps/CodeCamp2020-topics.rst create mode 100644 source/codecamps/CodeCamp2020.rst create mode 100644 source/codecamps/CodeCamp2021-1.rst create mode 100644 source/codecamps/CodeCamp2022.rst create mode 100644 source/codecamps/CodeCampJune2023.rst create mode 100644 source/codecamps/Code_Camp_2015.rst create mode 100644 source/codecamps/Code_Camp_2017.rst create mode 100644 source/codecamps/codecamps.rst create mode 100644 source/conf.py create mode 100644 source/content/2014_How_to_find_default_data.rst create mode 100644 source/content/2014_axes_and_uncertainties.rst create mode 100644 source/content/ActiveProjects.rst create mode 100644 source/content/Archive_Definition.rst create mode 100644 source/content/Associating_Axes_with_Data.rst create mode 100644 source/content/ConcordanceDiscussion.rst create mode 100644 source/content/Connecting_NXdata_to_NXdetector.rst create mode 100644 source/content/Containers_and_Inheritance.rst create mode 100644 source/content/DLSraw.rst create mode 100644 source/content/Design_Issues.rst create mode 100644 source/content/Detector_Geometry.rst create mode 100644 source/content/Download.rst create mode 100644 source/content/Extension_of_NeXus_Coordinate_Systems.rst create mode 100644 source/content/FAQ.rst create mode 100644 source/content/Facilities.rst create mode 100644 source/content/File_id_attribute_for_Nexus_files.rst create mode 100644 source/content/GenericScan.rst create mode 100644 source/content/Group_Attributes.rst create mode 100644 source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst create mode 100644 source/content/IndirectDiscuss.rst create mode 100644 source/content/Indirect_Time-of-Flight_and_Coordinates.rst create mode 100644 source/content/Instruments.rst create mode 100644 source/content/IssueReporting.rst create mode 100644 source/content/Japinotes.rst create mode 100644 source/content/Java_API.rst create mode 100644 source/content/Jnexustut.rst create mode 100644 source/content/Latest_News.rst create mode 100644 source/content/Linking_External_Files.rst create mode 100644 source/content/Metaformat.rst create mode 100644 source/content/MonoXPSD.rst create mode 100644 source/content/MonoXSingle.rst create mode 100644 source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst create mode 100644 source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst create mode 100644 source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst create mode 100644 source/content/Multi_Method_Instruments.rst create mode 100644 source/content/Muon_Time_Differential.rst create mode 100644 source/content/NAPI_Routines.rst create mode 100644 source/content/NAPI_Utility_Routines.rst create mode 100644 source/content/NXaperture_and_Slits.rst create mode 100644 source/content/NXbrowse.f90.rst create mode 100644 source/content/NXbrowse.rst create mode 100644 source/content/NXdetector_2012_10.rst create mode 100644 source/content/NXdetector_documentation.rst create mode 100644 source/content/NXdir.rst create mode 100644 source/content/NXgeometry_and_NXshape_-_documentation_and_review.rst create mode 100644 source/content/NXlrcs.f90.rst create mode 100644 source/content/NXmeasurement.rst create mode 100644 source/content/NXmonoref-NIAC2006.rst create mode 100644 source/content/NXmonoref_example-NIAC2006.rst create mode 100644 source/content/NXmonotas-NIAC2006.rst create mode 100644 source/content/NXmonotas_example-NIAC2006.rst create mode 100644 source/content/NXnet_Proposal.rst create mode 100644 source/content/NXtofnref-NIAC2006.rst create mode 100644 source/content/NXtranslate.rst create mode 100644 source/content/NeXpy.rst create mode 100644 source/content/NeXus_CIF_Integration.rst create mode 100644 source/content/Nexus_41_Release_Notes.rst create mode 100644 source/content/Nexus_42_Release_Notes.rst create mode 100644 source/content/Nexus_43_Release_Notes.rst create mode 100644 source/content/Nexus_4_Release_Notes.rst create mode 100644 source/content/OO-NeXus.rst create mode 100644 source/content/Object_Oriented_Interface.rst create mode 100644 source/content/Objects_or_Interfaces.rst create mode 100644 source/content/Proposal_NeXus_Coordinates.rst create mode 100644 source/content/Proposal_NeXus_Errors.rst create mode 100644 source/content/Proposal_to_Simplify_Nexus.rst create mode 100644 source/content/ReflectDiscuss.rst create mode 100644 source/content/SAS.rst create mode 100644 source/content/Scaled_Data.rst create mode 100644 source/content/Scans.rst create mode 100644 source/content/Storing_Event_Data.rst create mode 100644 source/content/content.rst create mode 100644 source/content/index.rst create mode 100644 source/dirlist.py create mode 100644 source/encoding_convert.py rename {content => source/extra_files}/2014-CodeCamp-Schedule-MTW.png (100%) rename {content => source/extra_files}/2014-NIAC-Schedule-HF.png (100%) rename {content => source/extra_files}/Axis_Limits_Bar.png (100%) rename {content => source/extra_files}/CIMG0434.JPG (100%) rename {content => source/extra_files}/CIMG0435.JPG (100%) rename {content => source/extra_files}/COP_neXus_slide1.PNG (100%) rename {content => source/extra_files}/COP_neXus_slide2.PNG (100%) rename {content => source/extra_files}/COP_neXus_slide3.PNG (100%) rename {content => source/extra_files}/COP_neXus_slide4.PNG (100%) rename {content => source/extra_files}/Dalek.jpg (100%) rename {content => source/extra_files}/IMAG1085_1.jpg (100%) rename {content => source/extra_files}/Mars.png (100%) rename {content => source/extra_files}/NIAC2006LBL-PRJ3.jpg (100%) rename {content => source/extra_files}/NIAC2006LBL-PRJ4.jpg (100%) rename {content => source/extra_files}/NIAC2006LBL-PRJ5.jpg (100%) rename {content => source/extra_files}/NIAC2006LBL-PRJ6.jpg (100%) rename {content => source/extra_files}/NIAC2006LBL-PRJ7.jpg (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0432.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0433.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0434.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0435.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0436.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0437.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0438.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0439.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0440.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0441.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0442.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0443.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0444.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0445.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0446.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0447.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0448.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0449.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0450.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0451.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0452.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0453.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0454.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0455.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0456.JPG (100%) rename {content => source/extra_files}/NIAC2007-PRJ-CIMG0457.JPG (100%) rename {content => source/extra_files}/NeXPy-Simple_plot.png (100%) rename {content => source/extra_files}/NeXus.png (100%) rename {content => source/extra_files}/NeXusCodeCamp2009-logo.png (100%) rename {content => source/extra_files}/NeXusCodeCamp2011-logo.png (100%) rename {content => source/extra_files}/NeXus_narrow.png (100%) rename {content => source/extra_files}/Nexpy.png (100%) rename {content => source/extra_files}/Nexus_wide.png (100%) rename {content => source/extra_files}/Niac2008-attendees.jpg (100%) rename {content => source/extra_files}/Niac2008-hotel.jpg (100%) rename {content => source/extra_files}/Niac2008-view.jpg (100%) rename {content => source/extra_files}/Nxbox_image.png (100%) rename {content => source/extra_files}/Nxcone.png (100%) rename {content => source/extra_files}/Nxcylinder.png (100%) rename {content => source/extra_files}/Nxeliptical_image.png (100%) rename {content => source/extra_files}/Nxflat_image.png (100%) rename {content => source/extra_files}/Nxgeometry_uml.png (100%) rename {content => source/extra_files}/Nxparabolic.png (100%) rename {content => source/extra_files}/Nxpolynomial.png (100%) rename {content => source/extra_files}/Nxsphere_image.png (100%) rename {content => source/extra_files}/Nxtoroidal.png (100%) rename {content => source/extra_files}/PICT0004.JPG (100%) rename {content => source/extra_files}/Pinhole_2.png (100%) rename {content => source/extra_files}/Pinhole_2D.png (100%) rename {content => source/extra_files}/Slit.png (100%) rename {content => source/extra_files}/Slit_2d.png (100%) create mode 100644 source/facilities/facilities.rst create mode 100644 source/faq/faq.rst create mode 100644 source/fix_encoding_warns.py create mode 100644 source/fix_title.py create mode 100644 source/img/NeXus.png create mode 100644 source/index.rst create mode 100644 source/make.bat create mode 100644 source/niac/Membership_Dates.rst create mode 100644 source/niac/NIAC2006ILL.rst create mode 100644 source/niac/NIAC2006LBL.rst create mode 100644 source/niac/NIAC2006LBL_RoadMap.rst create mode 100644 source/niac/NIAC2006LBL_attendees.rst create mode 100644 source/niac/NIAC2006LBL_photos.rst create mode 100644 source/niac/NIAC2006_Scanning_Group.rst create mode 100644 source/niac/NIAC2006_Synchrotron_Group.rst create mode 100644 source/niac/NIAC2006_TOF_Group.rst create mode 100644 source/niac/NIAC2007.rst create mode 100644 source/niac/NIAC2007_Minutes.rst create mode 100644 source/niac/NIAC2007_attendees.rst create mode 100644 source/niac/NIAC2007_photos.rst create mode 100644 source/niac/NIAC2008.rst create mode 100644 source/niac/NIAC2008_attendees.rst create mode 100644 source/niac/NIAC2009.rst create mode 100644 source/niac/NIAC2010.rst create mode 100644 source/niac/NIAC2010_CodeCamp.rst create mode 100644 source/niac/NIAC2011_CodeCamp.rst create mode 100644 source/niac/NIAC2012.rst create mode 100644 source/niac/NIAC2014.rst create mode 100644 source/niac/NIAC2014_CodeCamp.rst create mode 100644 source/niac/NIAC2014_Meeting.rst create mode 100644 source/niac/NIAC2016.rst create mode 100644 source/niac/NIAC2016Minutes.rst create mode 100644 source/niac/NIAC2018.rst create mode 100644 source/niac/NIAC2018Minutes.rst create mode 100644 source/niac/NIAC2020.rst create mode 100644 source/niac/NIAC2020minutes.rst create mode 100644 source/niac/NIAC2020minutes_concluding.rst create mode 100644 source/niac/NIAC2022.rst create mode 100644 source/niac/NIAC2022_fall_minutes.rst create mode 100644 source/niac/NIAC2022_minutes.rst create mode 100644 source/niac/NIAC2022_spring.rst create mode 100644 source/niac/NIAC2022_spring_minutes.rst create mode 100644 source/niac/NIAC2024.rst create mode 100644 source/niac/NIAC2024_minutes.rst create mode 100644 source/niac/NIACAPI.rst create mode 100644 source/niac/NIACActionItems.rst create mode 100644 source/niac/NIACClasses.rst create mode 100644 source/niac/NIACDesign.rst create mode 100644 source/niac/NIACOrg.rst create mode 100644 source/niac/NIACdoc.rst create mode 100644 source/niac/niac.rst create mode 100644 source/niac/previous_meetings.rst create mode 100644 source/pandoc_converter.py rename {pdfs => source/pdfs}/2011-10-20_NeXus_manual_in_sphinx.pdf (100%) rename {pdfs => source/pdfs}/2011_10_20_nexus_heretics_v5.pdf (100%) rename {pdfs => source/pdfs}/CIFNexus.pdf (100%) rename {pdfs => source/pdfs}/Elements_for_Muons.pdf (100%) rename {pdfs => source/pdfs}/European-Formats.pdf (100%) rename {pdfs => source/pdfs}/Isis_nexus_016.pdf (100%) rename {pdfs => source/pdfs}/MantidNexusWorkspaceFormat.pdf (100%) rename {pdfs => source/pdfs}/Mark_Nexus_NIAC_2010.pdf (100%) rename {pdfs => source/pdfs}/Minutes_of_NeXus_Committee_2010.pdf (100%) rename {pdfs => source/pdfs}/Muon_V2R7.pdf (100%) rename {pdfs => source/pdfs}/NIAC2003Minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2005minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2006LBL_minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2006minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2007HMI_minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2008_minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2012Minutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC2014Minutes.pdf (100%) rename {pdfs => source/pdfs}/NIACMinutes.pdf (100%) rename {pdfs => source/pdfs}/NIAC_minute.pdf (100%) rename {pdfs => source/pdfs}/NeXpy.pdf (100%) rename {pdfs => source/pdfs}/NeXusManual.pdf (100%) rename {pdfs => source/pdfs}/NeXusMinutes-Oct2004.pdf (100%) rename {pdfs => source/pdfs}/NeXusOBJ.pdf (100%) rename {pdfs => source/pdfs}/NeXus_Proposal.pdf (100%) rename {pdfs => source/pdfs}/NexusCodeCamp2015_map.pdf (100%) rename {pdfs => source/pdfs}/Proposed_Data_Standard_for_the_APS.pdf (100%) create mode 100644 source/teleconferences/Telco_20150114.rst create mode 100644 source/teleconferences/Telco_20150203.rst create mode 100644 source/teleconferences/Telco_20150218.rst create mode 100644 source/teleconferences/Telco_20150302.rst create mode 100644 source/teleconferences/Telco_20150318.rst create mode 100644 source/teleconferences/Telco_20150408.rst create mode 100644 source/teleconferences/Telco_20150506.rst create mode 100644 source/teleconferences/Telco_20150520.rst create mode 100644 source/teleconferences/Telco_20150603.rst create mode 100644 source/teleconferences/Telco_20150617.rst create mode 100644 source/teleconferences/Telco_20150630.rst create mode 100644 source/teleconferences/Telco_20150715.rst create mode 100644 source/teleconferences/Telco_20150728.rst create mode 100644 source/teleconferences/Telco_20150811.rst create mode 100644 source/teleconferences/Telco_20150827.rst create mode 100644 source/teleconferences/Telco_20150909.rst create mode 100644 source/teleconferences/Telco_20151001.rst create mode 100644 source/teleconferences/Telco_20151014.rst create mode 100644 source/teleconferences/Telco_20151104.rst create mode 100644 source/teleconferences/Telco_20151116.rst create mode 100644 source/teleconferences/Telco_20151202.rst create mode 100644 source/teleconferences/Telco_20151215.rst create mode 100644 source/teleconferences/Telco_20160106.rst create mode 100644 source/teleconferences/Telco_20160120.rst create mode 100644 source/teleconferences/Telco_20160202.rst create mode 100644 source/teleconferences/Telco_20160224.rst create mode 100644 source/teleconferences/Telco_20160315.rst create mode 100644 source/teleconferences/Telco_20160329.rst create mode 100644 source/teleconferences/Telco_20160412.rst create mode 100644 source/teleconferences/Telco_20160426.rst create mode 100644 source/teleconferences/Telco_20160510.rst create mode 100644 source/teleconferences/Telco_20160531.rst create mode 100644 source/teleconferences/Telco_20160614.rst create mode 100644 source/teleconferences/Telco_20160628.rst create mode 100644 source/teleconferences/Telco_20160712.rst create mode 100644 source/teleconferences/Telco_20160809.rst create mode 100644 source/teleconferences/Telco_20160824.rst create mode 100644 source/teleconferences/Telco_20160907.rst create mode 100644 source/teleconferences/Telco_20160928.rst create mode 100644 source/teleconferences/Telco_20161123.rst create mode 100644 source/teleconferences/Telco_20161213.rst create mode 100644 source/teleconferences/Telco_20170117.rst create mode 100644 source/teleconferences/Telco_20170130.rst create mode 100644 source/teleconferences/Telco_20170220.rst create mode 100644 source/teleconferences/Telco_20170308.rst create mode 100644 source/teleconferences/Telco_20170322.rst create mode 100644 source/teleconferences/Telco_20170405.rst create mode 100644 source/teleconferences/Telco_20170426.rst create mode 100644 source/teleconferences/Telco_20170517.rst create mode 100644 source/teleconferences/Telco_20170607.rst create mode 100644 source/teleconferences/Telco_20170628.rst create mode 100644 source/teleconferences/Telco_20170711.rst create mode 100644 source/teleconferences/Telco_20170725.rst create mode 100644 source/teleconferences/Telco_20170808.rst create mode 100644 source/teleconferences/Telco_20170823.rst create mode 100644 source/teleconferences/Telco_20170912.rst create mode 100644 source/teleconferences/Telco_20171004.rst create mode 100644 source/teleconferences/Telco_20171026.rst create mode 100644 source/teleconferences/Telco_20171107.rst create mode 100644 source/teleconferences/Telco_20171128.rst create mode 100644 source/teleconferences/Telco_20180116.rst create mode 100644 source/teleconferences/Telco_20180130.rst create mode 100644 source/teleconferences/Telco_20180220.rst create mode 100644 source/teleconferences/Telco_20180313.rst create mode 100644 source/teleconferences/Telco_20180403.rst create mode 100644 source/teleconferences/Telco_20180418.rst create mode 100644 source/teleconferences/Telco_20180502.rst create mode 100644 source/teleconferences/Telco_20180515.rst create mode 100644 source/teleconferences/Telco_20180529.rst create mode 100644 source/teleconferences/Telco_20180619.rst create mode 100644 source/teleconferences/Telco_20180814.rst create mode 100644 source/teleconferences/Telco_20180905.rst create mode 100644 source/teleconferences/Telco_20180926.rst create mode 100644 source/teleconferences/Telco_20181015.rst create mode 100644 source/teleconferences/Telco_20190207.rst create mode 100644 source/teleconferences/Telco_20190312.rst create mode 100644 source/teleconferences/Telco_20190424.rst create mode 100644 source/teleconferences/Telco_20190621.rst create mode 100644 source/teleconferences/Telco_20190715.rst create mode 100644 source/teleconferences/Telco_20190812.rst create mode 100644 source/teleconferences/Telco_20190911.rst create mode 100644 source/teleconferences/Telco_20191107.rst create mode 100644 source/teleconferences/Telco_20191212.rst create mode 100644 source/teleconferences/Telco_20200224.rst create mode 100644 source/teleconferences/Telco_20200323.rst create mode 100644 source/teleconferences/Telco_20200424.rst create mode 100644 source/teleconferences/Telco_20200527.rst create mode 100644 source/teleconferences/Telco_20200701.rst create mode 100644 source/teleconferences/Telco_20200904.rst create mode 100644 source/teleconferences/Telco_20200930.rst create mode 100644 source/teleconferences/Telco_20201208.rst create mode 100644 source/teleconferences/Telco_20210120.rst create mode 100644 source/teleconferences/Telco_20210303.rst create mode 100644 source/teleconferences/Telco_20210505.rst create mode 100644 source/teleconferences/Telco_20210628.rst create mode 100644 source/teleconferences/Telco_20210728.rst create mode 100644 source/teleconferences/Telco_20210915.rst create mode 100644 source/teleconferences/Telco_20211115.rst create mode 100644 source/teleconferences/Telco_20211215.rst create mode 100644 source/teleconferences/Telco_20220131.rst create mode 100644 source/teleconferences/Telco_20220225.rst create mode 100644 source/teleconferences/Telco_20220426.rst create mode 100644 source/teleconferences/Telco_20220527.rst create mode 100644 source/teleconferences/Telco_20220602.rst create mode 100644 source/teleconferences/Telco_20220707.rst create mode 100644 source/teleconferences/Telco_20220824.rst create mode 100644 source/teleconferences/Telco_20221026.rst create mode 100644 source/teleconferences/Telco_20221202.rst create mode 100644 source/teleconferences/Telco_20230119.rst create mode 100644 source/teleconferences/Telco_20230213.rst create mode 100644 source/teleconferences/Telco_20230314.rst create mode 100644 source/teleconferences/Telco_20230419.rst create mode 100644 source/teleconferences/Telco_20230524.rst create mode 100644 source/teleconferences/Telco_20230724.rst create mode 100644 source/teleconferences/Telco_20230814.rst create mode 100644 source/teleconferences/Telco_20230920.rst create mode 100644 source/teleconferences/Telco_20231019.rst create mode 100644 source/teleconferences/Telco_20231121.rst create mode 100644 source/teleconferences/Telco_20231220.rst create mode 100644 source/teleconferences/Telco_20240117.rst create mode 100644 source/teleconferences/Telco_20240214.rst create mode 100644 source/teleconferences/Telco_20240311.rst create mode 100644 source/teleconferences/Telco_20240415.rst create mode 100644 source/teleconferences/Telco_20240515.rst create mode 100644 source/teleconferences/Telco_20240626.rst create mode 100644 source/teleconferences/Telco_20240717.rst create mode 100644 source/teleconferences/Telco_20240820.rst create mode 100644 source/teleconferences/Telco_20241127.rst create mode 100644 source/teleconferences/Telco_20241209.rst create mode 100644 source/teleconferences/Telco_20241218.rst create mode 100644 source/teleconferences/Telco_20250116.rst create mode 100644 source/teleconferences/Telco_20250127.rst create mode 100644 source/teleconferences/teleconferences.rst diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 299b5a7d..00000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -_site -.sass-cache -.jekyll-metadata -.vagrant -/.project diff --git a/404.html b/404.html deleted file mode 100644 index 9703ba81..00000000 --- a/404.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: default -title: "404: Page not found" -permalink: 404.html ---- - -
-

404: Page not found

-

Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. Head back home to try finding it again.

-
diff --git a/CNAME b/CNAME deleted file mode 100644 index bbc4a0f3..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -www.nexusformat.org \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index dfaf9380..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -# License for the Hyde Jekyll Template: https://github.com/poole/hyde -# Released under MIT License - -Copyright (c) 2013 Mark Otto. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 96de586d..00000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -This is the source for https://www.nexusformat.org (when hosted as Github Pages). diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 258cf93f..00000000 --- a/Vagrantfile +++ /dev/null @@ -1,100 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -Vagrant::Config.run do |config| - # All Vagrant configuration is done here. The most common configuration - # options are documented and commented below. For a complete reference, - # please see the online documentation at vagrantup.com. - - # Every Vagrant virtual environment requires a box to build off of. - config.vm.box = "debian/contrib-jessie64" - - # The url from where the 'config.vm.box' box will be fetched if it - # doesn't already exist on the user's system. - #config.vm.box_url = "https://downloads.sourceforge.net/project/vagrantboxjessie/debian80.box" - - # Boot with a GUI so you can see the screen. (Default is headless) - # config.vm.boot_mode = :gui - - # Assign this VM to a host-only network IP, allowing you to access it - # via the IP. Host-only networks can talk to the host machine as well as - # any other machines on the same network, but cannot be accessed (through this - # network interface) by any external networks. - # config.vm.network :hostonly, "192.168.33.10" - - # Assign this VM to a bridged network, allowing you to connect directly to a - # network using the host's network device. This makes the VM appear as another - # physical device on your network. - # config.vm.network :bridged - - # Forward a port from the guest to the host, which allows for outside - # computers to access the VM, whereas host only networking does not. - config.vm.forward_port 4000, 5000 - - # Share an additional folder to the guest VM. The first argument is - # an identifier, the second is the path on the guest to mount the - # folder, and the third is the path on the host to the actual folder. - # config.vm.share_folder "v-data", "/vagrant_data", "../data" - - # Enable provisioning with Puppet stand alone. Puppet manifests - # are contained in a directory path relative to this Vagrantfile. - # You will need to create the manifests directory and a manifest in - # the file base.pp in the manifests_path directory. - # - # An example Puppet manifest to provision the message of the day: - # - # # group { "puppet": - # # ensure => "present", - # # } - # # - # # File { owner => 0, group => 0, mode => 0644 } - # # - # # file { '/etc/motd': - # # content => "Welcome to your Vagrant-built virtual machine! - # # Managed by Puppet.\n" - # # } - # - # config.vm.provision :puppet do |puppet| - # puppet.manifests_path = "manifests" - # puppet.manifest_file = "base.pp" - # end - - # Enable provisioning with chef solo, specifying a cookbooks path, roles - # path, and data_bags path (all relative to this Vagrantfile), and adding - # some recipes and/or roles. - # - # config.vm.provision :chef_solo do |chef| - # chef.cookbooks_path = "../my-recipes/cookbooks" - # chef.roles_path = "../my-recipes/roles" - # chef.data_bags_path = "../my-recipes/data_bags" - # chef.add_recipe "mysql" - # chef.add_role "web" - # - # # You may also specify custom JSON attributes: - # chef.json = { :mysql_password => "foo" } - # end - - # Enable provisioning with chef server, specifying the chef server URL, - # and the path to the validation key (relative to this Vagrantfile). - # - # The Opscode Platform uses HTTPS. Substitute your organization for - # ORGNAME in the URL and validation key. - # - # If you have your own Chef Server, use the appropriate URL, which may be - # HTTP instead of HTTPS depending on your configuration. Also change the - # validation key to validation.pem. - # - # config.vm.provision :chef_client do |chef| - # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME" - # chef.validation_key_path = "ORGNAME-validator.pem" - # end - # - # If you're using the Opscode platform, your validator client is - # ORGNAME-validator, replacing ORGNAME with your organization name. - # - # IF you have your own Chef Server, the default validation client name is - # chef-validator, unless you changed the configuration. - # - # chef.validation_client_name = "ORGNAME-validator" - config.vm.provision :shell, :path => "Vagrantprovision.sh" -end diff --git a/Vagrantprovision.sh b/Vagrantprovision.sh deleted file mode 100644 index 1bce0188..00000000 --- a/Vagrantprovision.sh +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/bash - -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get install -y ruby ruby-dev -yes | gem install jekyll diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 0eee35a4..00000000 --- a/_config.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -markdown: kramdown -highlighter: rouge - -# Permalinks -permalink: pretty - -# Setup -title: NeXus -tagline: 'A common data format for neutron, x-ray and muon science' -description: 'NeXus is developed as an international standard by scientists and programmers representing major scientific facilities in Europe, Asia, Australia, and North America in order to facilitate greater cooperation in the analysis and visualization of neutron, x-ray, and muon data.' -url: https://www.nexusformat.org -baseurl: - -author: - name: 'NIAC' - url: https://github.com/nexusformat - -github: - repo: https://github.com/nexusformat diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index 4b9a7c0b..00000000 --- a/_includes/head.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - {% if page.title == "Home" %} - {{ site.title }} · {{ site.tagline }} - {% else %} - {{ page.title }} · {{ site.title }} - {% endif %} - - - - - - - - - - - - - - - diff --git a/_includes/sidebar.html b/_includes/sidebar.html deleted file mode 100644 index bca2f792..00000000 --- a/_includes/sidebar.html +++ /dev/null @@ -1,34 +0,0 @@ - diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index c99f6e63..00000000 --- a/_layouts/default.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - {% include head.html %} - - - - {% include sidebar.html %} - -
- {{ content }} -
- - - diff --git a/_layouts/page.html b/_layouts/page.html deleted file mode 100644 index 4e0d4ebf..00000000 --- a/_layouts/page.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: default ---- - -
-

{{ page.title }}

- {{ content }} -
diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index c0274776..00000000 --- a/_layouts/post.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: default ---- - -
-

{{ page.title }}

- - {{ content }} -
- - diff --git a/_layouts/wiki.html b/_layouts/wiki.html deleted file mode 120000 index 2b84491d..00000000 --- a/_layouts/wiki.html +++ /dev/null @@ -1 +0,0 @@ -page.html \ No newline at end of file diff --git a/atom.xml b/atom.xml deleted file mode 100644 index 96c9681c..00000000 --- a/atom.xml +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: null ---- - - - - - {{ site.title }} - - - {{ site.time | date_to_xmlschema }} - {{ site.url }} - - {{ site.author.name }} - {{ site.author.email }} - - - {% for post in site.posts %} - - {{ post.title }} - - {{ post.date | date_to_xmlschema }} - {{ site.url }}{{ post.id }} - {{ post.content | xml_escape }} - - {% endfor %} - - diff --git a/build/.doctrees/active_projects/ActiveProjects.doctree b/build/.doctrees/active_projects/ActiveProjects.doctree new file mode 100644 index 0000000000000000000000000000000000000000..62dfec6df36177c904a1729617981c96f1212f0d GIT binary patch literal 9660 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/CodeCamp2020-2.doctree b/build/.doctrees/codecamps/CodeCamp2020-2.doctree new file mode 100644 index 0000000000000000000000000000000000000000..807332878f29c32178ffb79d95d26ee06d7f3a28 GIT binary patch literal 20437 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 KD3ryQ*ZvPXPm%)w literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/CodeCamp2020-attendees.doctree b/build/.doctrees/codecamps/CodeCamp2020-attendees.doctree new file mode 100644 index 0000000000000000000000000000000000000000..dc9f799037623b360ae76320f555f85f0ac6418a GIT binary patch literal 13890 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/CodeCamp2020.doctree b/build/.doctrees/codecamps/CodeCamp2020.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e914067ad0cac0a6a1df36ecded90cd889d10285 GIT binary patch literal 204227 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

l|v6+Xa|jt5){~Ml?o_c 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/CodeCamp2022.doctree b/build/.doctrees/codecamps/CodeCamp2022.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4c2b1f54a1ca5afe106cdf0d7c39f67e5ab16a76 GIT binary patch literal 30767 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/CodeCampJune2023.doctree b/build/.doctrees/codecamps/CodeCampJune2023.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9c1fe4e9b3b2ca60f275c5e1cea87aa6b2dbd43b GIT binary patch literal 32251 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 K3gaL@_x}U49N)eG literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/Code_Camp_2015.doctree b/build/.doctrees/codecamps/Code_Camp_2015.doctree new file mode 100644 index 0000000000000000000000000000000000000000..82d8579877063fbcf1650d5ed4dd4dd8c5e6988e GIT binary patch literal 56629 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%0D!pF3#8?^HmxT$4Xd`=GFES- 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 B0MP&d literal 0 HcmV?d00001 diff --git a/build/.doctrees/codecamps/Code_Camp_2017.doctree b/build/.doctrees/codecamps/Code_Camp_2017.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7dbb9781ef58d1bdb05fcceecd9302d300c5e873 GIT binary patch literal 62939 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/facilities/Facilities.doctree b/build/.doctrees/facilities/Facilities.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e1a063c242a4eec63887ee595ca77393c5261c55 GIT binary patch literal 56707 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 NEM?l5e8#lf`cH?O@2LO) literal 0 HcmV?d00001 diff --git a/build/.doctrees/faq/FAQ.doctree b/build/.doctrees/faq/FAQ.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6c886cee4760a0d2f295e9731432559128164719 GIT binary patch literal 38061 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree b/build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..18f7e7ace0b6090801083859c6a9e27f90d70327 GIT binary patch literal 20455 zcmeHPTXP)8bp|g0u?rRmlA_CYNM))-rvV7qm1Mc1f@sAID-vm1kRmfG`avGd&h+lg zaxUwc9sp~X^PInuzmbRhu6(C2bHgt7#-hlS@IdbL^qf9@`a7r3IelU4jD52v|Jbc; zxvFD_o)f-!x8$b?0CNfPLudGp;3{oeGc$!%$AEi8_I`P1YoMDohZ~B32 z^&K||0}=2HZD%Kscxs76f2;{Q zf?I=>-Vd{)k>rtM> zmgfkkBSm)dG>N#Dtab8LAfDzuBKJ)?aN;0Sq#pS~jIyI{cMu3a?{(ZH>Po5ilQeRK z8I}L}Z|jqfKKax-Iezx|iS>y7?f4=J={@sr{J{Jz1vLPLU6~4$5(dD@r5LyXfR#so z#i3t*+?N~lg-3kia4$U8GY5LNGSXkDk)A$~^-)}H2v-@uB?oVbky~)sr0(qcEw-VA zSTVS)U9*i!%UUqyyw72}$&_pJ?yvjzr4F{(^%wk{>^@tU!lqwx0@xTi_(m|_VlBIv zAN*@;D{|z2|@EZ}QXt^e)U13Q!MU{v@7> zQ>alLfb6Ni?_cvjJoXPrI|`H3}MJD6@W>b6F4gJ~V`q!%6tGGR^eZj#UIRkFupTZp?^|heB z@c%7RUj!~veWj1C9eeE|`N`R#NDisip{{jEN^WY&iTB8&W)4LlLe<#rSsDnzV++o@ za?Pd1_?mMW&qz1DT2i>|dy?00Vs0UnK*&MOoJ5HTPGwYpc+3DSa$*D?ok~d1Nzy^L zQnw&VM2L}Mu06?uXarVKJ_-||cv_I~2a1OIp5hG^-Mm1cbb?UMUilGm}G#a2cUm+QbqvUd9c zXjo?mtE>n%JAfptRDk6mLOi2(5Tw%}q*laTpW?oVs$f_Nv0z}g zmw>~J3t8FYh)E+jf_pL&9XWW1>P@M3ED}G(-LW7d)UNLc{DWU;9x*dQQGBSdAY<(G z6yhN7@C?B@NiG8Qphp4rm}n5MJ&s~jqxOn8{>&LmTv3Olu#{v$9q9)|?)@>X9euNZ~-Dhyqen)6MtOBm!*CtRz-_J%mJogZ+Ii6kB6& zf8Q#+do#3Y0=y|p07C_w(qL-AkVir|mMAp%mE&C~nnJ^=6Xw8#8a#6BK~dA7;WVF0 zq<84W1P*CamX`1ws zG-?rcBogSOB3T4Qmv+aX_XQlsLgwWlW*G8t4D4qvVm6o`%I#S^sOfrqs3|hpWQ2;fw)FCI0 zs)PrO7ZROGc#8C5)C&d}pD{k=MkrB2lPD$#ps7?=eond5>H1yMBgMdU{ciSenqt>f zNvr3=-GaPRqvDlrNwuA)S9)UBGM><>x5zrE*rSqwZAt%hem`^$C-i872fB*;S@Atr zcRVM0oyKLH>F_mu*~u;^tnUK;rZ(I&+a^5D;cNo_t9hE$S#DuB^96Zz#xs(Wn(>6@ z@iA9-Fs1UZ;$5!lT3+f`R#!5BzlygFTf|)(zRTZk!F1T58Rv;EubQo*iB8=6tuHu4zBALb2oWzwq zL_)^`?qOA5>%QRx$8cq@uy6@y_=5$4w4yhGOr4zN3>rYM;0dng2F}pYW}jv|fGc}{ zE4qG7WAj$1w{-V*{a+MW^am7wOieVJ%=C;}l-8x?w>^JKR+s&JT9Q(&)3J7$omBbM zOTVZrn$SWXt1RS|YZ6DxyO>%^4_UiLV_NpQvIcMBY)yV5BctXs$V)QVQ(8fryu(@D*5k_$vM z%hx=8q;0Tz@&72AEEM!QiJ+A0@L^-%D_A`Lu_R^i`q82zRq5A3qhGTDJ$Gv+Jxqvy zJOlBw6AcFRawOz*^7r!gUaSgW;zI%$tNvy;IstfE(y;xyMyrHvQxx;T_A_8nF~2Hom&rDg z=vP@usCa|zDZu@a*^*o>j@)_0{xXMy-;qM@zBw2gTMJVE(5Qy2E0f(_m1~#k_Ynd4P4ZH=dHqb-rqNnyP=(C!j=yA z{?s6HxfdyY)V(3KEWKq`_d(tvu#^&LigCK9QO&6x!-@G?is5pJ>2UG)vg#s=H!bqe z4&7>d6;|1(pmr%JNKH$gG_~zr=*%P)`&&ahmQpd+AaXfiw2D#7lT_?&mt?6|P1((- zSKmRe&Sc*&7t?ILGVxd4L}~fGfiOv)k-wlIZv$78klqAo9qIFhv&-O|+Lbte8^YN} z2j)ZU_Y}@9irDF-hijlUyg~%)u`FgBie>9xvg@=BN^O8@9=Jy3x(?w+1zfcQM{RQb z+5yyhGu16T#U&2@_v}4fM-ykEJZ54eP{cJenYzSbT_nN@+4D8lHg&j%$DAh7D{R}% zah@y|c5xxZO;e&ShG3h>E72KFTrqUJxH1UGZ>R$vV;kSo0WiGO32(N6D}P40V8?7- z9$CeY)_~(yAx9)BJwW9-vd+;64_m5PtYE~i@YvRmc^cA_NL-ta4$@n+ur6I&#_sfS za1H01c;)5uEBF{^oZ>vP&*{((L&-Lh@xjQ(@i}=Y3MBtQm6&5vHl5S7&Gi=4zWPAl zcX7;a;-(;6?qi2^_Yix2m9>2b2l4geI=hWSC6FBs=Hyvfx{mvi@&TIL#-Ya;vO^8r z`xBw0g+Xv}dy@MK659@9NXo{o9yo49iw3P+^bbEfgl%H%e*LA5bAL%{ zAcq=2;vSx_;-)EfH^t%3l!8!9c*tV17)`PN$ zT@3)TwwFgEy8t2tD+}}uP$3b#B}*j4Y52>cQO0vGvCkud)DF&BCKdxC(-f#A0lS z8al$Za3xpq2#DS$Edz4m0e~0=Q6SjYJ3z*Wk8F9^ldgQB&fKJu9+JE^DF^mg>YZUI z&N`zp4x`5Mh&E&QsHS89HEpc@VR!_FV-w|vzxwD?u(6%?-3ECoDarqnAy4x&LG~3- zI{_Dc*#=!wLHAa4fmq@6phceW+4D{I0GN#ILOqKP;LZz)5Vn(zamU!X?cTF5=arSdLCR8u`1(~o!iRLPnKV4w z4iI`0H;DVdfH4er$W&x`uTd|E2)tq9C~c&xaiFFXD3*i170~HZ Yk3cpcLxJrku#Qq#?3gmexQp%o0QVR)zW@LL literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/2014_axes_and_uncertainties.doctree b/build/.doctrees/html_static_pandoc/2014_axes_and_uncertainties.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3474b478d9a0d8346923ed249df9a6a18275e731 GIT binary patch literal 103679 zcmeHwTX)>Xm9AuolGyT+C0`OxE)Ftw+!W0wCE3bF6MLlCv8`xKJF#LbV=GN`H%Op` zZgc=NFPZU79?$!Enzbft@%8+Ov(8$4I6owR;QWR2?Yf~*0J;J6h4PH#HrWK~vhTHP zSM93iO7rZQvuEgE^Mz>Sdc(s_yVn~AJtt~5FZF`%c;F1 zU8mVRgA!fW^LwE)Y(B=zD^x!A{Ag1&u-XlVvF#0=P_^K$JbLB1GiNq8E%ols9V_yB zPR9;gQS5b}95ou2WfhdLJHa?+1$dco+zGudn%LQP9*raGms{`cwA<7G|959-51c#J z&^a7OvKlYxMOM$*cl==F^ej8F?4jiiV<#Niu@?+&--=>;*t5f))j6`Ft_M1JQ5=b; z@yZ&7!Cq(&22L1Rp)(4dh{_E2tbyGRLRn|m>sq^Z*YmyDb0YL1TKM%iMAsYEy~wli za~#E??bBCkdOHYX*Sd$My{?TqRuJ}_(24_5Su|+Jj1hE~sx?M+6qosWZoBPeU_eB{L+ zk2}=dr{SJG^djEWFWopEMR&Hg_Pp2~cQ(7hV2e?GHwXuIEV**>zpPs~ZoOmeY~R24 zzV%D`x#`9OpWZj!i;tV`WiDzE6v$?gpd?}dIhiN}83CA?`!lk>KHuvxy)wsh*0(Bvxi}jOXW?H>=GEX_MYb{BS#wvL7dR0$gWGJRY$MmQRhV*T*MaFK zQ!dQAyW;+U>ELSf{6puE?0$2F5u3iT0pP;OMxD6nTFuqA8Xw$q%?n~!*lwQpVey;W z(Y)C8?I^-Sd|x38&AwggjYr8J9lQGkAhI{->2U(f z1w0>zUbA_2t2u67jO{)4-hIuz?tTybx-E3(Zn4J6@HcJuCM?U_`h(ke@UzFwvHPz3 zDyqHgzU5wUHy)fBcR<8dU}?j)k6fUw?9oe*(r2QV86&trz47Q7d2)wPsX7p{kKJ|m zocq?cyFuEaq*My0tI6bt?psZFYcPzrx?AH29>!M33HL%Vx^8tsd)RfIXzRdx;M$qPs2Mtn!amPtP z)oe)5j19QZBj}J0Ce^wMmH9|2Nwc%G;p0cD&*$|%g*Z0Plh>jVzf+F*O<`+zb@w0K zUy_L+%koFy`9|}srM3A-y-ha(=;zW)syb{+;9nA6mR?`$cVF+fSdb(xqP3L6)^z`& z`PyWkjTy%T^M)MKH9(38@N%(#_eS$Pd3{HvRLd5=1zX$dw37JB7=0dc>| z1vg!|c}0plpNQnk`}3ymHZO{5`Q^{)=xI(*^PP-)JF@p2Ir~x05Gk)k%1ds%l~P{e z)C=#3%Cu0Xm0N}lxpyq;q7{3w&pTQ>2)#IVh8Em(?vyiI@rmQGnGAE#^(V?%zs}&i zk9h*0MA5v5<{Ud+d-(ai&y(2`H5|o3$RQ}Ew4pL%SjV>N*L^<_*#P^yO^yy z2SNCR!-qbd!`5xt%K;|AV5S#2y-n+WY+>Gr8SW^+-{7nr;|Crcc)o9SFt@b!0+18Y z0?cbMUF1_!<{p9QcnW#g^_@enLo?qayytw}^}t^eI+`^fAbjAU7tEZ)eX3!z*>TX> z_X14jM>ZzGyJ0ZkRnbJg8t`eVJ`? zlx7`0vJUX7gRVzm0XF|9qY>;9Bus}6AdHqBc07a{!XryjgQ5}^F(%ryKC?qO4rAXA zeRz6kg=&M1u!t1dU`j;c4*$p^u0!Jy$mu$x7#&$3fAC?_DrqsA6p|q+X*qV+rLq#h zP3xhHc?gNyFtEDz$QBXdyrA!Ir4)zwmXooB$9!itnN6Z z8H}VLAd#vm%|XxEwb2KsnSz4Rhlqi2kdW_Wb|b|b+6*NMfb}qlEmAcit#G%fGVBCG zJ2v`{ym-uv1&ID3Y@~B&lMUJ6&@;kvNU2&ha=IQONxTACH9`u#@zQrA4^trj-J6yI z36vZ%AUceLn3Fw$9>eE@5+P<3j7Ow>V1?}?fYdv(T&RCErU$a^P3sR%tYiQPk)DHI z+mDzu>9R-QO0p5*2~VHGU3ig&A2LV=gcJ>qCp6Z;^z)G3 zI0r^+uqZS~JwS*sLgxcmE04sDYZ;W0L?9Xko==@+R7eUIN99YvN_uVk5tJan_(<_S zrqT>(8bt{}^fLe#l<YOOXW!)z)g|{rQav=)32uD5*z|{U!14B(SE>rtD z4YITrh}~1DQ(gR%0j)zKT}x>#A5hlU?_rQl9$KRSE?VqCeve2vXzs?WF)N4n(D?C&WV- z3n8>*Ef_aP&~RapHrLmgl&!CGzO1j`VSoRtwX<__O#gABM<>T1*~u}5Yfg@XUGb+N z;mNU3@6DYZB2!ZP-pMi3M_I>1L%fZ3(wg;?W2Ro2dTS0w0w+`rqdxv1TZoyu;RT@mZpMIDLgh&;zLBE8v$Ib9pB#6v&U26v z50lzo!j=L}5)AGFNDvs@`?lwkKOq?hLMvY>MP4P>$_2q|h{T53A0z`kq$md%iHeMD zl2IgWaKo8h2D?v=i8jJr5U3Hv7#C;_39(ipix*|kz0dV6q)zDvAxfOWPxQb9ag96x ze8)2~aQFuL!&F0G2rF-Z*<*BlgVEi@MsR`iUeH}*HvAC+77Yz(#@QqAxYA|$mbD-E zxwQg7WTXmpkW9D~HguJeZ&jE1JwP8GH5vjD2&zO&nPwCqmw>87OV}*VEVfL?8&%=!$1(3jHY|P1Kug3S*mc2eM56I5;2!0G4^u+=_7l zb=9auv;h$YUPNkz!sP9q9FwibJWagCS^<`RApt#;It1Fleu5exo(HSeahPWB!T`kr zbZ+w)afxJ1kRQ5ZdP`;|J%KhmP%5RXI(^^4Kl+)k_6k9?kB&O+et_92J<nqVcTM)h2;pfQV!9yog@QQ| zgjl>TXi%0?47piE!Mm|DVEY=-W|`7}Ocg85ErIn8Gi`7heox!mT0=xvLr0jY3x4JyPtvQC!Mo=}|qE#|xqS=iZEH73ZxT^eIb71SH&XeZT*Bv!8jfWYgoZr|9rT__EZ z%A2wf#PQZUg(dZtIW)XpVFjI(tY~3LqKE{73Xxdo-sJD~b$xn?eb6i#tE_B4#z4X1B z+FI#ROU0S7Bt%HwM|@e|#!1d00>c!fM~D%mLZ}lPWX1AWLMy~T*)~-)0k4rq=P0m9 zf3P-C6;vTliN)j*=e5|pRu+ojRa=p3k67>=RF^f`Vu{8T77t|s`|$wVPLC|a_|h#C z9yF(uQ9_FMp+QXRumFkWP+DD!Xokol=pxRp#k~*EC<~`Ez!MxPxKCkxxhz9#3u3)S zk%>)YfUAdzBO=-n1u-ExVGwbQXg+3%tzazHO=}jw0CPb^a!EL7eUOP8g~dA#@UZqA z>?fuzth7w|K3^gcOH~xUcLWX5atc^#1)vN91lfaKTJgr}l#f2(w>n`Mgb|z|u_Piu z#(cdSZ<2=4be1iIL>wC6&FWZqj+h8SE*8a~ZA{p53hgtNV!K`N35Gjx71?>5Hox}*WvSIPh z*!t|`C5YBdMvI3~8r4gSP2r)FE*9G@irJvIgxu68%~dRBJD`O74qMz6az$t%M4PRX zqBJ;;g|H4^H{dlHIWeP$!Q=h0a2yeU1eoG(Sj>ZPV<`^{=P-f;u?EFsrhJur2Il1DSe^ z(AH*=w(L_9r*+cZgVrxQAh!jeQU|A&#h$hU~LKQ?OqzoMW z?ZldBwgfOL=y=Q@%BWVtW5^g^K4@9AYC;xI2kj0P8UBR_t2DH+d;$PbL*PfH(y!_L z7qoN4T$`A@u)?)g26KTe0-efBpfIWy{iFaDdNHGr0;E*59s$820%cXYt;ik85+(6_NKMOs;!(>)6y)gRDZ#n_x+e-6_WMi|XnjD%R$&1WM z;&rMKAlJkY+sIy#(W_-;+DT9F+A)TNY=}U!!X&NJh(ldyw2~%?jm0PmBPA^u8ew}D z*xDCtwXA88ynjH6ZxPVGeFTv6xeqqksdG9F6w(%1p+J1I#shf!IL|8{&h z$w;{Kx+ll^<~g@dy^*`{C%x2i$!`L87zIP3pIQ(Lu#s~jL3xu{(ql=BJYxW!W;dD} zSn#t_D`&%!Fhve*98xcj2q>0=IX95B0r}Z5s5vSlw{Ib%AWejU|AoDYK$3>2F(f8a&kF}5qvo>ZEC!FAzL1)J@+gcOU|XUyufFnz|R zVOfW7wD+PGg;Xe3DPs+o&{J58#YIGng*QNxYE0VYL>4X!k8aX56LCvKrU(WyDzZsF zi+p|4l3SdqVYXok+gA6n2bea~u(%iC(w^|yJ7&pUkI)mo5S~&Rg%%7^^G-3(&TlTAD z1#EbRnwF%0lVvfL%~ld1P>?P^Rp|}`C7q`$A;*t$ z2}lLYWV5Fp&7OC}l!K>3R82a{q)SxHI8p?!m2RYJPfZ2jc>rpoFN;{fGC!m^%}j|# z^|OqydR95bD4pI>HNQv<&vlcFFvu}4u6kxs8f@mcl}#&Bu^t&@qBYNZGb9w1%O)bh zm?@PgqZnAZV44c>}V=SX!Zo5Ib;XX&ghb< zL8-i;B%n5V?MmNFOpC~ft0h(M(H3=N=*i9gw7r{_)vzVm%m_*HP0vM z>LJ2KSSy#I7@ndc7vwPqpj1}aw}K>}q@6`&_#{0nBE2VRU0F1p_VisXWx%dyQ~C_T z(H@(k+@7Q_YIY%sJ^EliA*)9W>4hmh98$F`p8%dD^CZtGpvxVHlr57n--V{}q@iG; zWwHbM@}9mIoeEUV;mPSj+h?AOGU=#VDyo#dlkF_ERlFz-C^vP7x3vr=Y7UX&y2*wL zxjI=Q+?5FvYD+b3^3ExzCB958n%dZ%+nmWqnV*yGSi+~c&XaSp1vLPtm(5Mf;cYIC ztw}0Q7W(X7|8$zw*D#iPz6VkwxT*VV9ev@rZ_NvHF z3Yyz-enN+U@F`({Zryas%gtidIHFUU(rmKS%jDSP6fqNQvPDdOrL$|Y#rZI^CBxLpgrS)2Y-upS zZ^j%L7Sf$90R}+Kp8Y~w7-mX+NtDdYdzn4yg;vJJ(MXjtUS>{rA*mMe0fgaoTf-Lt zCj`qWPl5zYO=s(*xXhg2(w#B6rF>?~9MW0@rEBE0=$xq(awjgy)fKq|h%IkaOJ$io zk41?|sU()7E$2xqg&8ar(^pcPz0KSexpg}krzc1LWu%QCK?LQRlC_ew%VTOnK<1XR zqVMeHeJySh0^BFe+z7J?2`UL8R5*au(2TAgq0u&dW@}PKHC0Pxn`Fxt?GDYBM3?!E zE_@a+XTnw?4-1dg;lVuUT4V#%0(g>mm<&SLutKNV(GJ4~4Q^u38IsSc*adATubyyH zHroVUl}R;8nI4VGdhe6+Oo)>#$)uv0O6|6*o?epZ1~*#8xh4NC&ClKR4(`f1Bnf$? zDXgNgb5Oi20BMZ!@hG$5kM37p%*n)Hc_Ogei1O* z!1!!j$_Yj;L_LTZv*dwfnfy%QR1!$m0z9<}r%%$#=X;14UfE<1Ou1*x^pM+hG2@r% z29%vqJI7-l2_6iPdvZ%bjqDDdBY{v+UTOzxeb&5=nn@j!#9F4tk;oh=o6#YY8gjCD za?&|ihjYv2n4HL=i~Qs)4z(vxb97TF91qLnZ>+h0r!G(WJ{|qUPfekXm`S^EP~>$) z6U)#|K6KyOb+_OmpXPUHO*)(I!LMa&Hj*o8_ysx>%4;`d(XDMw?bf#B3aUHx^FH^!MWV}B_-i`9l!*m{wl5_)vuMC&Pdr38|jG&&B{zz z2(|`iR~lsD5=_%Rg~q$D7MOh~sozMMnFOf*Yn91wGzI#9RGI$y>5>Kkn~iT}>SRLP zG{?)iAaqG3xgd#GyU7<`aj0df>`Teu2pKp`%Vo>7rsky(?9iL&%dD+{TIyp4A&Bi2o{ zL)&7WB~h2Wq48-+qLv!6Y%j3~|09Gq<240VG`(+Q+OUxtAfyBe~UX-Uk^ldXSU)-fTS(%EIqA#lT%{UO;Ai zFx*2C6=c86ZfK<_!}_{p%0=ASN>8Y*g2swnO~_QAb$y-vV*cd|{NyrzRWMG+pU`kQ zZ}S7enPggZS=-Ml@kl)@gG=)=pAfNKvD$pccwA~a6Q9OW6B6^&>AVby-J6e_Me+LI zWc2NKpUwT`3`wFzG(9T;KFJW^4+}fyL(*Y^JN8q0YUaQRp&iZoN9Y5$kL90@X-3#u;$Jhd}>TVYb;9khErOqnU}6=(nl#^*;5@oXbXXQMcBn3EE_F z+US3Q=E_sH{CQ0hXT_8XRS6v~D@Ro*BRYt1r`(voC5oz4^aGHE+e z19kag6$|Xpfu!h?PYIJmJ+=PlPS>(}J6+26B~K9BS>o|&+;(7m`DwlWiJ~$RVVD7o zITw8ox5C*z%19M&UegX#BAc|cBgLYj4qBScRuLSCao`uTRTt0T{HDL2u_l1Z3M&ZL zc6P4IQ}c}Tw$gXFNWkAHQ+z`A6P235rtq04aAo!XkCNAmIWbSk)H`+h(dcycTzX(h zvkB+OvBTt&gV*E)K^?%>aeQ1%mq^%~e4d1OsMzPBBMi{AMx}9A%`P=j{)K^KTAQwDW?9pi#3t*p z;d@3?rL=afcKy@=pUcxd7`7ybK#Bb_6aL-~wx5VwScR?PY)l$i6Z> z%Xt!@zUGOUP(?eG;`l^`)a=mo8Sby8w9Ishu~e%$wYFdlf%x&*)q+l3meg2yKMSVQ zSCUQ(I5%3-XrX;9m_BMMvG9|xm90gbhKsK1QnN!V=O@j~*<50MXNNfv+Qc=nky=v? zqp67_6Ep5`Ca8Zlmv}A}*D=9D2#R)ybbM!k`}Vr%RRwvTOW>lf^p8)Ze_RMp^PJba zl`KNLV!gS!5<0tHuSu_OQffv2N7RG_GCdxBNaNAY4&6I3%lYI|rhheiV;btW3Q^D5 z9Fk_m#9^YWKcTD`5orNut}EHjn{|9>AfM*jOF1A(CcIz(t5I~@Xtb1Y6C^ppodM87 zx#{w}QwRbH>^qa?`E6aEIb3PFyujs|UHTW|P-97x%OsfMsYZ`K6#_Fs!gA;V?V_hq zr(cc;&BA_(2tS=ngxe*F;Cmekb{j+xPc2ZPrnom&jKEc-S?ug?R$TAdLRz{<7UDH zd7`l@E7&_3hEk|lKUP$~8i8c3;>9mYbbeISQ&w<(XHYjSI2bVilT^O5hZ>3g*{E1b zWT>|?B9notn#lN-U=t#vV0+yZnVh?7G(woL&P7&U%WyDtgOB9Mv|@=wH>;4OtVG{8 zp-i0=S>+lbiO_FKwa873q1Wu(Rct_nu5(+rVB|kGK}}udQQ_VriF<~c*#`3vpDdko z;`>CQ*1WZOJ3FrhKei98B!hb zFU8%FVwLKyI=>!d_+|PViRl1H&Nog{EU6+j24aQmqH|_4fV)Uw1%fs;V0QyJAR8aXLk-~E_q-9ksU<_5 zJF`jyUR31NVQ-nbls64iSK=z95K_kX?108|W)X!Hu|XX_e3xzrz8XSRLdu@C%r!fNFzBrFwZd z{`2y1%uK8@(-nSudm6(Ewes+Dmxo_Qdvb3&Ph(fQP9ARii@>e4Njh~`eooj^GfQ;k zmj`u`pRSpYq9S?HhG)xz{nT7}1H~d2u#PKlG+od2Ln9?!d8511dTk8H)XWt1P#fpv zpqz2#_3axQ+D_Rc{{64C2T*^`oH*Jw`&VTyXZ7t3auhLkh3)H5y|Ss{*+X3)@LhV3 z_-ZseD^sWY^G1gg@Bl##Jc<@r7KFz{kG?z}5E28ABmAv@BtOnwn#b%4kWF9g;)|Oo ziY>+fC2!FcqEwy*uPg%edQu z>gGBNqPBx-qr~hfTRab=Pfin~qh#f(3`W`Fc^G}QJd85_k2xQ_ee>2v!JM#i-8@{q z<>6X-4x~A*rR(J3cCb9$GHW%doogH5;$zc-l&zA78J?XYZbxca4w6|8w}L85#I5wu zaq9EkIdPVnnc~prE=_6Lm-~LPJSzcp(PUNwyr{^j!(M6!p%Y_p&YKm@vUX)iRgp7G zI|y0-AeBbY^Yl=s9==O&9AAyb>&=ePNXaR$(OqfPHhd^*W{QT4GZAQW2jM92?XYbR z_k5>~lZkKzUBO(JU3%3Xjt58%EGPo$$YXo`g)W0oMNIz=_PFJskrsg$vqhFB5Ywm2 zB{8iuSG%%0k7*_#)2EsFb2YJ*xg-`i-776kX-++_zbxR9wFumBxMEIsd>#ta<}`)A zwFuDj*-{R4sBM}7XE$@mKrH@X&Y(}5J{$71Ktq{Xpt`FIp_-*-W}TJl=~R`Y&)0QH zT759c4&J&+3_JS@%^TUtX!Xi@*!Gu)?dzGLFTGPVi(<(dd3YTz53j8ZUOE@~5S}p7 zRP7qI^YF#9xQ6;B<{%#50xR*4**12YqoJ`W5e!toe>>` zy1s6$Q*G2l4fXvwPy;RMAL;4gS=}*H(15%1XhclN&gM;5 z#8k}as?YN8IarA(f4V5HFYExu1r8&#*bqBPer zup_Hme=fKTyz(vI;#8Yx(~SrI>!Cy2(U2wY4fk4!S{}8!!C({&@ggEs5z52(P;@Oh zis>Io(eD`)#TDheSRyx_#Ur6`U??o7!#ryIy+Ms~u|c#XE=0$-{u^k661HE10uyzm z`U<+LZi_fjdgv-Cn&|L8uBEl2E-Z5F?Rs5{QqHVh&v!N~FScO)?I;=#V4dkubItr8 zS#~EF#|<3a0DJ9^9V^&H8HYE3dNA~~A09P5bb(J8+DEcbgo9$N$hAjK1A~C9wrM>? z1DY&TahqBk53B)dcO0YHMg-~i6$BxmwQyROw~uaj!(f0RXrGQSvl6ACkcKu;|92&U zk~Msh;`R@-{t{dz^ z-HrpnvG$xHNe3Mov}wIR4nwr)ACcRG>xfB2xlE(k6qp3WAc$hT1`O!N_t82Ia&p2j z2qWwQqprFxsSg2*cDwN=c~%`Kidpj!;0PhjRKdbS59fIT>du%jigA#Ue*{71gdpva zMF=7o_rLw+KO)UFJR%)aT0~4>E|dGlGomk%=y@u2e~~K1JN%NQIxV0~kH~Gu^n}z( zGtH3`Texw;bwW}?CN&MH6U}0nMufPsU7G%$w~HZR>|-1lT2TOf=t9LJD;h(#?Wo}# z;xeQm$!ZH%B0hl*kfNf82r?d6b{yL%NOFmExl(gHDjG`cte6mwhN z6T8%fM4E;gy1m7V$K+~nTK8j`?+$1vf}>=!>+A{K1{;yAgJA6UXfzr+4uP=?yU%9V zvb(GT{I^0qPYlNs#ZV7~;OJ^J;HndmO86rv|1aPfhG^UR)0oCrgg1yQJ*NYHV+41= zW-uw=kkNCzZwT{cF?KqZxHXyy(5CgJWBHD~?{JxbIp#eKafcUyD+cM)hXfF)k8}p{ zV6NoPnyBnW+UQdwO743FC%%*g6-8glT)v%awhD_G@>MdX2L96pd(2XJn3s^m2y-=J z@`iyqu|Jqnk>8pOmKe7i4uWE+$Ywz_v`RtK#_Y7rJwzA!gsh>)UQD>85h6I)91H`y z=z)fILn=YHZzBeEL}Yej@{8?c!jNXF^nJj2Sb!efG48Ar3o$I+0lb>j&(uyG)KRC~ zKg0f2rNS!eUha%B{fXN?CSjzfUvH`le93Pt-lk4CUG>y$_8EvRmjFsUoEPo zD)E%7RaFiz^iOrZzF@$odSbE2%Np!@KlonU)wh$AvS6 zOLytiYCbbQIi^)EaV)VWKgl`PG^@#M#9CM%dGuVXO;7D0(w|TxQ#Pf3Eh)z@&{8DQ zE+xjji^JZ@u?r_!5RKfHlVcV;#!Gf_CjIU0ArPU+oFU+%yUL^EPv=j^a(YNA_bX)h zO;EGOy10QMS_kOd=H@I7_Wy}+NaiV*WGx+Ee3z=YT^HrPScLlx8mKVl%twQtCpnb2 zHYjp18*jeS@s>#U>LRW0+_R~XDf*I|#-MR0_kAA3;j$nu%3sicE-I1-H=ZpE^6WN8 zb-b3k9f=H9{!aH<5*!Q+$%)F#)~$C$ve9@YZ-iMC0tbzVmCI@Sc8%^zo3E;xk=@Nm zylI;`4u>*-A4qT!2c`qbmp3@nQ{b^)pSncVQ_4vUh*XApJ)0pBL_^l|HF za@?1@IXSsCcj#TNR{u%oEI3gwU&%5X0`r=g7xR!|&Hz!8!-j`*c!nqXM~({rb=jBM z>Q2gn&40UoV8>s*ja15$WBkl)1FTeU&LpjBP%@`D9VVHd#TZtob;|fz2HXKAfU! z_{1P*5vM9ThLO>14K5L6Ww>NwurMxF@(nb@P^n&?wZOBw@)Bw>@w2iaj)+tell`WHJ+2$4Rf}sm0yg zw;ZV4RoA>V({@5wq!M8ZPUtkm(&{>G)uDY0n!&Va=7~)ajYi8-tHY?sHeEP}SZ8Ki zDpWB*!)13ZhuJ%ehEnUD)`P3AMH_~d$eouC_2a2@RdBEn#t*a0(i#^~R{vHTKM*Ox*hkgP@WoQODQ&l$%sGn9_d*0pb34 zC@Rdii%=76W&RTe1n^@bR9XUsI8Bp2wEHVzuCeb!Gvb=HSr>c8`EFaSjNE3~Kr2G6 zvl~S2&D^|dz2r`kuZVV<;mEg1uNGmex?=+V9SvWNCMcwTq{wxRuFFe}SZO8Lg}7VO z$gTr`?-B+R{n8?%j8=ohp0>i5m0nF|6Khwl-wA?Gwv%$CL659hC7Vz50Yz<7(P<+I zgJ*TwqeydA!Bjm~*_AWRiCa>(A88VYEfiwkd+`>P#5v3CuUJx#^Cq?yRTey(5?xid z(eW)S3C*-UD;eUHue3z`$|=npw~`0~m)}exDrok#vXSFWR4^_|{a%?t{mk_M&2E^l zmdNn@8|rfRjA#JozCU%Si`D})z>A8UI_#&kY`|3^<*ne+oOYI6xRQ2+$}1{|fjf_h zM>1_+i7~pCwq<(ARuE*0!9T_2gVzkAlB1o+uZqhDZyL?k;1xk8e8-8LGBH>npPrsQ zCGQ#ZEn-{c;QEI~!!;O3u$5t)iNgXJ_o?(%)n*`UMbI-mw7HP6El4YcEa&`9Lbt0m zKY8Wkj|K;dSo;dwEM$TQ_0`6wYiTt32~sGcK5{a#Yjj$J?F4rjwww4ZknNQg?liJh zs;6j)FOr=9R+pUB$BqiCKN^M=YUSaFXUoH|%JPqfVwGyAj^jK&zTCwAK;Dplm#CZ&U?L^H}E@kfQ5dX0N$;H$m|mPe9w8kU*HkN zMScY6_{4<`uSLXfq=W%=HS(`2F~M{FQx<~>8M^`=4MG-Xp6IXx1cL_)bOGMW*MV*@ zW{29fqZo%k;#`JqRKn8C-dG;_FTPN7UR&K+_)R`FxY47h$7KWgkYF{!a%xYb>CISu&$+q0W@3OXq%F|&wnsMQn z6;XR8({gtr_@xYsM)!$k#U%X#jS7ZjeVmrxBL};1dUkk3R)xNl+3h}aTi~VoNO6Bu zm+aL|%Fpv@QDjo!*DlUk*)`BE66wlOk)hFW4f8>;m6;x!ILt+iOE;3*tX6$Z&|G=Y zth4z_$t=D|vBlTAgf;}1nwb)G&0TcR0M31X>QEQ0IB0+u6*+a-Pj6Aekg6iP0LOy1 zcbLBad3vZ*58vk?vH}Y3JD0Q$=-I%fv}#w^kW*Zi$l_VVvx*B7*@kP_a^6T8Yo6_H zf&8izw$uzprFy_fedeG9)ur-j$#A%MH9c)B641)d#tTNnH3XDkDaB%q*gjkFTc|&3O@Ra`ThJmhT&6DN@e4 zE}}g!I<29&1a}$5HSt@Z;?`PP&?LN8{X9|c)+KLsWu9S4LBo88R`T%w)AI0t>X#+{ z-JnI0e$TQfVRTVLn+Zyx&BaR+8B}Hs8A5g@f{ynT1bhd-s{{?-MtLo0$Z;#8`%FQ@ zX$X`G8)~$l7&bJ?zd%bm`|^QiTxM?!WL6*PFwH>v>Q?sYUX93-qDa_ltVd)UuVG$z zBU24bwy$}td6qFTKSkG7Ow4VR*G!DWuZZraZ)7Bdr4~I6iY?I4%)F+c*_oN!0*%y1 znwgibrRUD2g}=Iyd79QIer%v!B-oWh2G@;-OVd+8fEXmfR%Yg5;xHF6F5O6KeIn<& z%r_qfBdq1KI~G3hqV70~=*k6l7&=nBKf`r3L1g<7NKM4cS5ktEFH)92nn-&Td^2V+ zwQ%o4tEXUU1;ZBI&C%kQm@t@9wz6W)8kYzB6OQr66(e*<6uWpw+~C8(rMo9^lL%Hc zBf3=p*^>NfO*-};TPAR^6+tiVXt90cRR4K5ok#dDClY>wlc@4<-c$KE?9liZoFQ(Z z!^K5TuhdENq&!FxNFP=3=rd&cvPqX$p1(LhfL|Vi`#{7o|GS=pn_s**a{S%RM&tEOi>?Aw_aU*? zdg;RK_S87EhtV$XeqhYS$p;O~!p(fFu?Wl`d0;%c;a4y5c5$Hz-IIqqSxG>kPm$Nb zcb3V^oN%chYC_C*eXkn>Prwr5;C>7DN)0@wzEJ~& z=K7jepd;#XSeW!C>%u1Wx+-_{k!LRn16 zp3SCRWN&n;#zNZ9;~SpM%()MUbN|jbSII4)^r!3nf8{I(AQ?-CXCb?is-`uV(G=ul zQU7V_;D832BXKJI0|fPvJ_#PoEH@vL-0+4ff>j7COGQ6Iy}@)8ex}sw%DzhcxTS5Czq`;leQjy`oX7n*tMHv=J^DM=Eu0M zvrCuo0SL`cC{sL-3@^V}H*6-)+50V|or_hPfPA)$KF^OZM`a{?`!NA+5ThZh=ed$7 zf03D~A#KCA-NF{m=_dr_0g|nX1}{XxIP4N|?icv+GMl^lh(!d$Hi9U7bQ3(DGnv8f zl{ko5ROP`L{MC@99m=tJaApiObI;=Il`g-MyRBN^#?$BJQ%qB-M|yS%hX7LGgF3zwi9pom3hs9GWe2PLs&LHw#ap^% z43~!5gOPY}nFERF#PErD)DVxxAw{*QO@t4+?T+1jLZt*8E4b(`6qi7}xElm9h8QPR z=m8ObJ<9N6A^A@gM;e~#XF4Sgsr?+v3 zbq`D%}i;+3lx@Nq+vAmdeAf7 z5x-)O{4$jOE0jeJQxMROFte(&bSw}4+m1f zuR4ctxSh7y3X{`r+}=kNEm5Ku+7xU*}|4VgUwpag6~RB7+x z_HzR2G5*KrJM=fYkLc=iSRZFd?F;?K`^%wypgm+tbd4+tbN;*;OYIKC)=waLS_FNzT3++1Z2W&co63<5i z8%E<#W7sXC5dXZyp7MunKj_*iHvO>cViwtjsB!xNjxi>nr6*%Dsr+*VSTHlJtR8>f zz;kc73(3=s;frJ#^@cqU>K(UZJKS@a z>3+=XT>}d2VsR$GJ!hAQ`VD{gV(J~;F{r&nAG^k*3uF{}TA7PfAbGOpzVF^8k)Z$k zA0j^9f1iHfFYVW596Qs$L_hExS+Cl!RsI+K3Ncyl2lNA_v|kV5PxgOHKd!-?_OIZ_ z7$sH-5{fEF=l}~IyZ`rpFgWm4KtbOK0`Ua>i*M+ZzEQv8iTFl6(i7?rzsK$tk#7x{ zeox`b(ENplBuda<5>5JklQMi)@#0E!6hUd*Aa}%_Fg(OZcOcvq8EVZ5e{J1o@{M3U zMBetXh5(gm(Qt+M0u9d?iY)jk;?XAB)|}EBwK;tJCr6$|j6e|G!OL?Mvko5lV;}N} z6Y;K-uEnU7a^rQ+wEq@pNEsR{DW~Fm5>C4K<-Ol+-{1a-!%8|ycJTp;i0)R3fDj=d z++@~t|HmYcBl>{~c>9bc5PYIXF-!UrSt95NYARlk8JofjYO}v1*dTsAu*n z6fau#lyiU{YDdvuMOH3eM{38WcI8RC5vcHAz(j)Vz<7vENvbY@~ndr2($ zS!I^6xftz@V{QcRf0b2jLV1HtH6U+?PcSYQFAq?r&S4=*365k-q}nGFtJF_D`pSsEzJ`f2$!+bhh#kQayRhl zz%yV@?c;OteL9^;zQ==a@PB^~KGlP(qR8)f$t&0nh5(V6F-q{*E*z8=Cd&9lBV3=X zYM=DEPZC6Pp%+#3&1?=YFRPa-ws6@ScKvaWq8$`F6@+hK4_km8bU+3Vw`m$U?ri>l DSeW@X literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/404.doctree b/build/.doctrees/html_static_pandoc/404.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2f78bef3bc941bc7a7bcf4fac816b42330d0d8da GIT binary patch literal 7299 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 F`(N>RQ$PR! literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/ConcordanceDiscussion.doctree b/build/.doctrees/html_static_pandoc/ConcordanceDiscussion.doctree new file mode 100644 index 0000000000000000000000000000000000000000..81a19f25892429be500f678d8e41545f31371bb9 GIT binary patch literal 43940 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

m{V|<43Gmdy;5OQc0jO- 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%0A!+YfY0SA7H|8{L88+U)84|>l`eq2XfcJ~^6 zkhdd0Zb32Z{uUn@TO(NFre_VC0-Yrs95Pt{PvPupClV5$L%RyYm z{zh_d#}IK$Fx?U A8vpBvlo)lT9U0~zN+h?_!uFK&oh>g{Dok@`}I6R6<_Vbn=wEWW{y zYg9iEqpYb3)chpQy)c$(Ng-I-e(Q}BCz?&C{O#U7Cks2W?WK(@5B;5kdfjoHDK)%y zQsi7g)k%wX8u}pdVoPopnRCDOyBDrY1k~TX*c-@uPAvC}%)F**hMCimyE00Kvg3G} zcl-~ z;PsQ#yweSRr|bD)6y~AK(1xb)s7TTDy7M3lJ$x2fo_Y~|CDL0-ng`AUkPdwh?>I@? zk*Sj>`ejYf%cavxCH_mnPmoKw^YlUkgA4-&N&Vt(m=$Q|-&DP%3(gdIn#AkQ zek1h`RO^ExiJgv@drfB9i!YOb)SPu*d=chf7HuN;hqUL#VWvpk5AuAN-D|aaVICCi zrk@O2%=K=P4!qn*<$wRj*|@cF*LktE`QV{*pFW#GK8Wad5uE)-1m~2hK~coXsftpm z0rccZ9XO-_OG|%A(JwCd#e_b$#3zb-Zdt!l&^Ihe|4vDIx*$iTxSR-=k>7&CTR?Ji zij8gOMo<%H6ca6nE9xV@QCV3Hu3UB{TsOIL?cRfx;40f-O`Luv_sQ>z6=pVl;{b4G z=;57Q1dgb=Wqb%ui8DGZY>CqmJigc}+McL;d7g&tB1br(@Np{aWC#`FtRHz5rk3_FEi1U`;Dl%jkt+q^i zsgAC#cIw4`AhXt9xD&c6b89IJY*9FMk-Q+6a))qsiQjr?^03TBfx8(8NGy=v__CR1 zFy{5gb+Un?Ek`;f>LxMccndRv3E91*w=TkBzA!c-+CN$J_@Hd_yxpeOMsb>w7K``o z*?2Fst5L59p9J^GLy%+n7UR4oPC6FNZ*7`E)uG>-Bx&BLX*&O=PO|Lxt#)_qcBku+ z8H=VilCO#26Y>7hDI5F7YUFhj(XEb5W5AW^>D@JPnvyUDI#Rwj>jPe(O) zTw!5W!E>nlMWwi-mBpG-cZEYH>-+g}(-mj+Ym@7rvWI8oJmUPJ>~`q&qyax=E>zhr zrSXnsyE>)UxlxIyvIgok!pg=?Jr26}9BQSJhk2yh`tV_qQb>;uoUda78E6n#r0@v_ zISpqoj3TEk9YpmVAf-HEXweBXzsNFFA?ifZ*$ZS09JCwCJwjCID=@$?lDX`B$fJ4| z0E%!`jg>MdNcMn02)Ox45dmt+Sa!qQ>88m5B#3s>?n@tT(73Qhk`fjJ=0PJvU@*@Q zs8?a0IpisU>bgik81RHV5`wU*6c7x9YdW7FI9?Pbdj!_nUM8&U)# zg-p@ER5}Bh2T3Ob!@b-g>ca#qZ$nbRd;oEhh!fC5u9kXAU}%Rrq&kVN135Z_1jM#~ z{}qq5qZ!U@;?WWn78fH)$3q1p6?(~Jc?6O%FA%1(qxx?{uO~8M9GC^+5KPGTB$UC@ zRc^piWgt|K+QpxezviMY(>k46R2!PAt=X*UrDkOKso^ykbv6t=BKR^KKtXT6WG(#h zhyU6v)#Aq={@d0JW->%b$?2dSL4?##XHZ12m!bn^cAY)%fF}WpjI@WiuLc02Yt3_X zcH49w(3}Dp)3^$fc&TTDB+EfG2eSyKLsNj^p-j{enOF+zvGisg)`)olOwq95yohLo zv4YrSu6sd9)>=)suX(Br{_ zoq@*;@xaU$9%&%NS6g@va7I$l^oruCGHU3iF=gt6nNI;w}SoBc_Awkr7!c4u6nH2JjT;^m05+aS6sAWYP zZNe=TG@%2Rz6On8;jtTvpRGEb2E4QL&iYQoU}B{INwT^V(46 z^=GYnP+*=;lTdJ$4!ThV4H`1B(rRkFTd*D@CnIMEJ`VjNLn#?Wo*ENw@c}a>q=17E zpj~p)+3Zp~@bG9!vy60;v?&`(KkSCAkR3Uc2!0d=*NKoz+OIfJw7Wt1$H@?eRT-3HGRhx^Mj%RxjlUNNrnG0c6^Z%H{$H3AMSAUjly(qyS0Q3zy+?15Mf;+S5BxZp!&)P zVplHmu>8KBD8Ev4l_P}$Q&yqHr%lOMc~mKwnWUE)!Ii`t?SlppZy2%-mb*oknpIxs zu9Dr;fZcZ$7@5)J`(Z~NXd7`6ft(T{q7z|Sof61WHbhbL(J&FbQ*o~fJMdTt^SfaJ zw_N2<%2%UpB4TyH3e4ISvjSz7B*_aRRwps%bWjwO@J>;W0x6#%L1rnVaPH$ zS)3KGl-ja5Seb-WC^uXZrckI~5~IuwP>utgROuXYEzUhdho2c3?;q=2!x7EP*!6IOc>JBQT>;uU8;r zafD%aWo~$ZMEV%8#S*{*IpE@`VlhauG@h6bOxP})Q@(kTgvs`;3`=1T%Xiy^m&OoE zD+xd>j2^1AenIG9=A9PC4ReDATTYZX9!7jeBL4Ij;@iviOAqFeBYxJRe?Z|5Nr+@Ph9Lll1Cmh-)ov z_&N4|DH&eZGOQxX=TEE!!g98Kvs(J*IAet!%!YdP5mav&dK{!)IXdyV4M7%L(NvL) zH?tiNwV7hvs+q1({Hlo+UQ@-0b$F)`v?8u@DYj!j{KFqz=Chkc*xY@)`Nyp@l(ffjH$w*mQVCE!PThiZ}U*NgJ9bkr#DLdv`)4HoVpZRv3CXbg#^4mC~;eWD_@IO8*{GZXRXDQd8Q=co5 zZ7w9T`-eoPbB&Fc%#S|pE1xOJ*qA@b*q9^9P~`jni0*tZ`q%JZKfp)Uzm88ao>QpW zlv9K{r}#6f&687nKF*l!5ENd|elM`6W|7%%lPJ7qI`&B{vXN;ardQtNJ8drWMgM;q zHySbcNf$AU3;&5*t=RVO3$g97W?KcVAKU9B)e5tga%npYy0mY`UE21$@Sv|3tEVnjYqNXJCf@KnolUd& zlA~OwJFb}GPk*Uh0@uVTkfsi+HU7TI3rzZN9k0DT_x5Gur!S1{d$!tJ!L2ltlgM!n znPatwh~Z4?yA)cc?4vfPRC#E8nD{+wTlIwf6VsV7dT!NTLZJnBbI4UH@r_m%r)ia6 zZGIR(%6({+9v3xW%Lb0cOs+qAw6!MQrfq_BQjVtm-D-n822ySUxq;0?W-ZA%dbJ2k zO7`T>O8;$2^l72V-0v_hn*RH!(f@!x9DInGmySl9{ijd`mB03X4Ju%%TDH2`zeP%- zP7vdcn+j)`esI&C#nyh)dIREMjuq{G3&j&yvhi{nOZ42A#vKcc-#MCq_RBOD1GVFQ>93saUczH%oRZmW=u`+wqkb z&;-xL6+Y;u4kWw0s~hLB`2w1iJjuOCJU$`nrjG33u^_*BQmpyvEWBG@W^>+@s7r0c zDh>kB9bedhb*a4W45v!TOLnky{oIQRtUeouC(huQ*RaUNmRR8<_xMs%$8z%|r3YTE z&b`4959d^~E*-VUV_iQMX+%$X;=6Py4*iN2R^XP?10gPVlO&ImTv|UqK8crcDljev z?mnIM5-3^2LF91g;*IQ_2UxH-k1OJm+z)fUdZfsz(iPn8R`k%^8je85;2mmUU+@4WH3-4S&2Rn=IJOqX z;FL=zg*&JvM6JlXjo&u15Z|wk{^-gyO;R_&dOyy4g74H-AA1KbD1KX1R+x$q?~VO3 zMxrmEqGCczzB>BD*vsM~jUfZ00^$*An2=W^FXw&tGV4UQujLj9eqP1NR2o#kTFriK*Tv*CkRogN2ur}vNC8++=C)U zIJugO-(Q4g4CT-*udAZLoTm~x@r(@}kr2N!H<_R~YYq=^Z9?2k(q2o5x2Ps}05#nl z`zPTSAdXd(H?H5hi*Br?U4M)`l~m+^ZOGG}SyI^@nKnb2cexF^V28G-ps`x+wP8h_ zJP?mp#e2}nfm@nqIRM<(!x|zkW(PRhz3&ELFNp9D`g=M`NcGR-us00ty8?Di-sDYw zR*!C!_?~9%dp-`+;#9OumA!$>%tE}qQw;GU-O0#~NBaTNp2Vk^wS-oQUg`cR#?`qjZmzaR{5pN zBlK}*KFui@y){lt|AN2_cc<@)fP?UpC{j8EeLDM4-5~+Z0@KA4@(doX%W!dlTn0}| z4dV8;wd^2+p_@|FG^sYOctdVg7VWx&mTQ`L{5!v1bqCN ym7{UG%!GMwxVT)#DkC=5o^xd}dx>*l>_@nV1zxE~4x-+naLOt!w$$2s^Zx<7p057^j;ec0H2-~X`R$y;4IGb^jRY5;BY zM39*2uF5=_dGh2rCo{kA?_d1KfBNie&(Y7~+sSkoPEPmyet#16gJik*MnCG!#=#_A z{(gD+H_Io>ON$G!f09JAxECxJ&*6#QFdX&cV6uFGFJGhQ({PmRi2^S4qDkt9lOR?l z3}3we!>>R0+}@t2zPo05AbK=*-;$!P{c0} zg8Q??>+HYx%Wjtn;6K+V{y4bqO@h-|B46WAhKbh?9tERl8uUFs@%)JwPSPNr_-PnT z{E?TW{-p26eedYZOL`&tAxzRl6pgREX&en=e>@K2#EXMz93=G2WZ;ecucBDKa~$@( zW4{-U!ZZvL)FDc^GmBC6u6HvDef)oxq_IDuU#aMWC{BmoO%xsWe7xgDaX*N?G!ie1 z0{t}b262FYV)Q49i<$8BLOKjkl0Q02&`=a9UVIcLGgR|y{#uHou07V31AQqs((mz+HV4qtn=6(3$@JDP8URb# z_VTw&z5u*5_3=)+9D0ijU9~<8pI^KrmW6}G3nN(k<-zR8U%cX{X&fHSQYrmwO{WN$??le~~OS`|TV3*);p($nQObi0qpe=wl@d+87+q;&8e6+WvC3cscb4 z?EB%L4KEM>1oaNDpt9jUE1V4f(jQ)fWqCXQ!8`ciuO2LC!*_>&jMsiJd~^8HaQDOK zW=H763uvVe+dduU`sV)kp`}~ZTUjHxLcPB29{mz3rw)|tgW(&)=Z9||40maEC@q!B zIn3$g`@=UEhx_A6y5HNMCGarzkAip*i`8}iDE244VUX;fgb%|m_uTgR4BV&Xv-m%3!+WC8D>!gW2&na(!ML zo!d(BA5@*+%GW70Z}9>-D7k(-zY&rbt;?L~v8MA{~%P+hlm+zb;rXKi# z*_V5L@d9~xxkCO^z2@-OA^!#CDdt5js&H9jF^7g8$kFnQ%?Y~{S}(c4$jFdgwS z{_YL$|NQ;$-}C-9h$F-bh(IQ1-kbchPbLBTD2fB`2LI?PeQ-_Io{z*v{$wztvZo^i zZYi7qZx{}SBm9RT<4PROgw*i=OTM{!PR3dCk$!;qO!qAw=-fCRkGw}Pa0t5I-MO}R zb;pBG67>;By}R@Iz4x#DWaq|vqVag1UitGYR|+3|{@F*@`B$Xm2tiIxPWD*rvFA@l zdxPlFe&P8${V9*gsAYI39-+#B&If z5JLIh?a&`b2-`lQZt@OUfb3z=yaRGSyyI{b>=lZ+a;4O!gZpt5rR>QrIWzC>%-_db z9{o;rL~%F>DJta-2$lF`r%)vC0go4vhOCI&6d;nnOMg=_^q$wFh!L{e3Ybk1{{>xB zIdI>&uwHKnjX@=;*BeENNhl_DR}J(03qIf^5^vDWPw#qI=lT@7p2X-{gwYhjS{nMn z?f0`1Z|FM%&%9Il(EX1;s(gkGw?FFgXcnV$m&PCC!9SpXY_hU0k7B$hLV+`yfg*w6 zoebfK^RW@*oCf_Th9=D>;jd;vH|(P@{yTpYDHLQMj>8~+vh!YU3Ua;Z9Nfp(@flMn zym=t>ihZbifxSjk?XD=d$K(8QkouGw@X9JI^{>OM(tGner)eWe1pste?ZN&dslf3k7iaBv`zkBP0o1cC804-{|aTwdNY6m%kIwCf&(w z3|}v6@!f-aw&ou2$1#)eGHF%PLnV(QSGET%3E5aH7TQs_~usGrGK!oHM^+4KGk4UQo8 zl^#-i2o1=%@3NF+)C-`^lYv%F>g-8yf(3%733u6F;RKmTmiEmrbKK1BV$I+4%&q24 zs%UW+sX;cRbz1Hx=qfpnN$6N~21X{>8|=XbBDztZQtOMoak)}#DVIen#p25{npmlL zr=YWqN||#MimlCDp84&2x8+|RpZiaCJoq%Q()d4(G(Eu=LVefLKo%`Jy<(hynNa%T zI)042{v%AK%*}arq+b=z(27xn>F{i}p)8t3{-NR3Q@|Rby*-YOdHH^80!jB!p)X!qJG8ol7tH_`rs(+m2xHF-+M0wLLQpidS zGN=w$6O5L74~|`$yt|VGh|T(mt!r+}5rdt`$pfn>NB>GrFD@H$Fb?hdmXN_+(09JE&gOe zdMDV?OJ>Owy?{Ez3dt6VG#ImeGN=zLmK-MvVT?VKmCELTWv+e}U<2=ncKXhgzoMNS zQtS`>M@*mKWt?CWZjfJ7Fk{bXrkzBzu%!sIJWMuvd=llKD+ZRbWclws6z%tVP?8=( z4(`z87A^`w9>G&qesJcj!Ug3LSXMi`6YDCp~Zz-WM|kS=^YHB?HMDYmf9wS4vD zxj~{_IU@gB(aXlxQfc|#7mm$!@BKI$(>Sp(W7p%6Ip$58dz?)U=AD_GvvR8~YJ5jU zU`mUPo!JkuH9n;sA9qLg!{7``jaeCukz*468?xDB?61ePy?}qBNi@cI7#!`B@wW$LJLPny|0gEZ&91>Wya1X+U3k5oC~rwF$z5GC(9{0$t~WxrpH@x5tYCw!!jEV!K!n2ESO(BZD@h@vaQT-F(#b?&7t1$-_%7+ByOi&X zd=@SKc$>ZGU7AqjiZnNNwvj{NUm@eg&oQaLt+rMtmZ1gMKxaujcd2Er5x$3*OUEl*c@bj?)tyUQlbA_DShC3FiwbY0M9vU4gO0c`*;ZD)XTkrQUXA#syeuSyBRNg^q5zFFZof-r<_eaS!mVjjG3sZ(PFPpxm4&{sxlXmNQ z8Zyf*-uBqrYY3RH-KJw6CB1QikPMbsqpeDC56d~vwa}>2M1>8Z;Ahu6i)Kj2ag%~5 zz=uMS8Zt+Ke&O!$6o(FojvAdLN&OyiaeKE9l_ZRB85`AEpB5 zpHD(cb9$cz!fRc%(QbmFW_?w(LsIT%Q*=W9O``QxjnKmN&8@2hEmECPw;`Lh%O7ES@N z>wdz`paq{KgU@nw-xwi>d}S{ z>PKt|!xh6I;7oKJp-V1KV>s5~6#3n70&hAE2b9~q=#6oVnvy2sFgEOqv28S1Ji22x zEIPq*CELncs&^&i7=Ho-9HXbFIH?UchslM3fRVj!t&-lqm_-NygoY7(IKhCN3}N4g zIIzt}Z0y6F7PA7o)kX8vGCR`IOE0nziOzy#4l^CRKMn^nZHT>ObYC<{cJ1vw$R&Ic zcZxLdMd6=yp>UJl*+m3A*s6np9|of-HEa;zZ;aqs<-$NM#i5OSRwJoctL~zE*eXJE ziryzRNgVWKmo$hHD(HS|mr@$NG+N0}HhzGKJ5dfcUy`}zNF~wzdoLmd6`Cgw>a%4U zCp>U?WEx=$Ql;vow_R`X!e&34FnqC^)9)}**Xk`(W|Ky(Qf?os2&QBT6~eYTa{y>q zuOeXdQ%vFU`~GPiiLz=evINM~W{!}P*4$yQxbz7t+)}wT zf?eueoS~_wy($xOgy_6aJ8M|-JcKIpXpzbyVq1t#8Sq`AVG!B_8Cilj7lk8>aMgG` zBn9?xmyUFNUo6KgVjwZ>_CTyKaNFP%aKEHfnK-m0W5?tShH1QKvkg)t*@u?y&Q0Ii zot-xoD?M%U9r?^CR;!nast$7lJ8U0@4o*uix(qIz)8gjsL zvpjTiHa?0*iQH<1eKBk%QswmX)}D9A$L2_}0E*|1aZ(~WLD`s_zIU+~%_eZadH!tA zyNL$l18d_@Jlb{f8lo7!^BaxB6g{H%{g^oT-`iApGDTv9ohW6uvv4s460ulF`Z!)d zVq-4?mV$*jmqZh)MB-h9GjFT`m+iv*m?eb}1Npd?8qKEEAW;u)zLHDG4hgeUzWgE? zL=BQ%a^9;1fhwi6(+Kgo#ipyTR0nG(?|v2pP!*(Rxe91M+OO>W5Q0#kE(e#Ke_4gB zn>&8EyoM8UEZxt7P1>BJOT<-epxraJ*@UOLY9PdsBdPoMojvdK3EWL2@M(LPt1Xv- z-3UfG2qAoE%!I;MmR#sXG55#&c*`FDqDqt-;+zldzGBv6O2soA$cS+M0PXY7tkm{;@Uzbzqxr9EAZ+Mf3wYk%9aiPI(Ul6bfC8S(dTq$4B@SN+M$SJ@4)@ zGV0>fsw%`wd8t*PcHO(hKA(6Wh<{nrSnaAy)xB)pFtE@3(RAn^1uUUb=os`LpCv_+ zS+nwTRkcCMLRka~Nie!o3lv>QhLikxPYTRmtsY)>}|iG8DQY)KDz7HZMC@okb`p2sit><%%a3{X3IK zAr49ujz?FGKOM}$CKUy~I8ja65>hrw)KC@@seX78ezB)vwN*WKYefRmZ6hSy;bPM& zmIT3=tPrL9v6_*ZA#siz5v@;Al0vmnH}?1-2`%RQ*UCnS6AH8=3Z;NAkvk)l1<+nZ z2cHt}65Tz*HgSYwD7}cBreOaZx~*(PuolDSwAv>v=*bCf*2vAt#GBxgPg`2iF? zB3{J5;yPSK$_i;s?B~<@WpR3NOzAN4G;1W6E=FZ_6AT{EM&K`UB2@FeBT3x7+>SF@VI%Go!Q9p|agafnUCgGv+GIt)o&*Fu9 zz~2y`SWCxUS#+V^PVfd{w6TAL(v%P3*v$g@>oEiVdQ6yKkNH9!P0XZf z7u#I)sI_~k4qnurhtLR72~W$AX^=Oa0-P-%0pO=6ArgqkbYqwfaj+<6Hl@YOudb#L zz1mzzlBu&Vn_D&X$T{Zj3Kx6$&blQ5KTc^=Vvq6beQ6gDS0gZsuY=us2H3yns$+T zR+jB&pM3JsotpDMC@|Hh&eh3S*>RAn4`;9OUqia0{0@-M*jObAzC7lgllH($Y_A};lP{+*G%c}!wpP;;3RFrSjhjdl7@!Qa8&CNa^5^Mh1@bO*bPIq1luyq4Hh73t#1PNe z&A7GQcv&o#%u>!(H3BY)`2;=9(+=PFR&$71@GmD16r9Vv%Bx|sotJ_M#XI#1zXphM zSX!PR4HFxo=EHtW9&{)+;>}9J9-_0UI5`eS2-nweN%e@KKfo!|HJm{x4b|+`}@4;i_Jz-40oTyK*2a7bKKLXmR(hTlU?0EiZ0N9^7 zb%@LUHcsI59(HjS4e#8=88qC39#PoIckpqKlfG9U&?&V6qRX=<-X$*8(Nk zPgXkfX|#-sUDdt}EFo*4Yubwxbsy*bW=QYRLA`jNQbnWvAnonJI@6(BwslhJwiFIY z8RrNa5E_NrlJ0yEyzLE;m+zfnByhrK=P`Zq>EUg}Ui2HT^GnT@bVOv&iagaR-u`KwfA!hqqJFt$pvKgPjBG7~c5R}9KzKJJ*zX5P! zU;;Lx&v%O#A7sBfXbU%#qA?X3e%i&AaR9}LCca&2Vrf=CeDhkiNM5`8iz{!_hISA? zrr+PUD4Z{=@7+W>EErL+)iRTFJJg$UBiQdp-CY=&%H~XepaK0W!F{o@M(97ZQ4$pedhg2F?XXdji zO<@(Wlf!&N5w0D8nAkydE(1TIiFRV668}RX4tk`-uW0DmA9h1?;@ccOG7BBKqgozN z=}}1UOOA}Nbh~m=-q@AObHl|n$eroR!IE-Sj1+Q6e%yt>oIkD1RkEcPd`dOq@B(VA zY(!4Figx(F1}Go`ywSO~<)*CFu{|XzE83Jr+2v&3Hy50A(u)5r$TZ%1u}6;Cm&LoI6zHP3s-amZoRl^TdeeK^F^vqWkZ-)6FX24L!2uH@nklFv;j?mf(^`kb?vPj|6Ew zT7_5+@&tE1_{LVHs&I)a`W!C0r zZv!01GhqD^xST)5xl-6G<^?5}u^{7KUGC%&raMq582%@PeYy74>kQsHb9*R(EKQ3^ zgT?-eV9GF~5lr|^9%PDjE><9z)kSEQJvUJ$n2cUea%4n4{ zGP%sTv2@ZzuaHPDWQ6V!XPQijSFJkp+tj8nXcxt%VmPgf=PU}va@pncQD0t1o)IqV zIvruIiyA*aq`QM@d^*V{i!8l&g((&r2|hcaQ3^$Z?a4F6ll-l@p5NmKrTJUz z@;wJ>lo<-;U*K*jKkG=fSPU-!04djR!S%z=n%o(bt_6>Lud984>*z^i=9EHg#zPCQ z=iQyFkFoK>_+q+)C?X!MyGT!;QV($!8Typ>lhZB?+3=N;m|@Qs}bGVyHAu5J&KX-D`QpB1}?J|>R7_c(E9MpOQy5#x5$a5!Ek3whnk z2pq3#*c<vhR(Ijdkf7iz{F)qDEJi#v(;y6a0*Ybq|YO zBg~8hfXqT}n48<={E>IVZfY~LgQ;wzWn^zR$;sF_A!8*QV>K0HB@g2!B#cclFmhBY z;51wOzcCliL1U0%^SH>=R~}?3G3o!l#8+#l=G0`^JLdV z*5+Fz4-w0N@Pj!}qJeDDooTTy&EouEBaTHNGb&og;+jIvn#ZK6#jZHlt$@51Bd;Q9 zR6SC~4z3N=WK^6tPN#@g<)qN|9$Z{^BE>mwj*91-Vo_{}LXlc(8XnXy`&iJcsMjY?^;7E0_lT0S=?OjPi-+%Oy15)s!a21K3etx^$| zhUMu9y(*SYc%GBZ8u(0zUKYxvRQFt25gFv~20kiz;}G>8C|QjCx~6;Qq5R{b4L#Uh>79IlXlJ(9)is#YDVW;rtM z+4da{qFQ(l=eH$#Ieh1w7G`c4N1M%pf%LnkutSkrma@r zAa_<&0vE&AlB|fEuo+SUD)aq=xH&4r&VISECPlsDNMcCGf@(1s&ILDMBlLv~=Rs7j zvqO@APgzOphziN-uoiaqMHQCXYw;D%TOcb0{8f`og{sYFn!=9Y40N1IhielQVu|MO z>iR!-LYofxyHgX+8|5V=H+Y33u|i(eakjm~3`rYjutnl}V>-fuv^pts#DGdl>jmQZ z;aV(&6e20gL!BUb5#jb6=VoiN-CYU^lI}7Dv`viv`x<$^(Z^(Dp$T)r~n;#0D+Ps zNfXVs?Q;OV(3P%=)WOZR>Hk>fldhU$($wMpTbuZ=#3P4AqZ!t}i#%z{j)OHv`PVMr zAN6`2vcHy@{wOtE8lDUQat)e4tjV~5Dm08R-OyaNlGfz-(=IgFPR25XpSzIvbp)%KTcE{8(vh|gwOcv+z!tDBVc)ziTOZc4Qe}o&)5!?* zYV?RZNgqYPk_gZwLQQ(Uxf3@ZTrZ;VGu5dQ1vEWt@s?$Yf+i{X-&=eV8 zE}tR#&D6g|KD-*Lm7nhJ9DIeDkKxpaMJFIhXuWSIG3(_iCvi{Cbd{s-x^!EnAajw9 zs6ro(+Lt2!YCW|*bmZDYPM1BY??q;20nEbqwj^~@jp4lqUqZf4SW7^>P#GSal-h`5 z4|r_sC=FH#M}ED=$o1M})7oq$>M9)SGF?bw%Tee3Tk!CHqyl6Xt?8BwM)iifg;o=$eTCKj^{*;$Bws( z1-d>j9@fb_ZAMs25t6@ z@j|RFJJJ|kolcN-awr?I)ahENQ6*X@<&ToPnu5lf{GsyJ;E!mJmachDI!Tk)Fd02&T7{B~+lm0iM&1X|68K9Kw0dac2{5bAq{oSPtxRo&9QRIet(k z>oMDba%FhiCzZ>t3)mIZbUH_hx(1irTu;Te8IfFvp>o^QV@(RV`CXoo(hKd*9|u#; zIP7d9W}uQ{Q^&NKBYVHZazO`E7_<>gkjt8#)n|~3IhIz!ILZU*eHoImO{zGpA4rwL z7c4Sm$sICzU{4aD@u11*6H;09(<$+^WpkOQ4h((AU*`X>OAiNoS7fEDsAF?txVh{U zH&!@M-Qcz%k^J%JtK^eRFRJe-;ZvpE)OQ7f87ZR}I76ycc09sD!9rIhT{aIK=N*&G z%rH||&a8feq%;p@hx5iG(39;f{L2HO0@b2a|6DlaPW`rq-#%Z9^sU;}ZG!G?UcvQ- zD+gAhw@x!GZ}UouH*^Q_$r<#4hP=}Rx!b&w*$rMHk;qvEsm+t=Nj#E5`UZnS(_VE z+j=x@b4j@-<*_^1@@ZS&$aSpN>RDJhkpe5)e9PMDv~FUZQNXF>SG~JawVIcFRmm7d zy;M)StY$->(Q2uRtl(m^`>$=Xu(eFVW^<2a-)D!KrElO!zSaQq+PoRsHH6?5oNFCA zsJ{W>+Pq!1H9~?Y$!AgPY~-|=e&!eCplA8aRC!zpvTHfM&Pw2y(2B^P8K2tY))>}s zX5;D8t8on4N^UhA=wNu3)M45mhPwMKu&UK+P$i!l5Tn%HbhRE?uXD@ZnUgkd%A{60 zN23pdsKzw{m!0z_P&*IyG#OV}dP8A!ih#I z<3flAtx=C>BK2&nWd+u@9`g zV{E*|>ZjFFv5R0~95e47(D7-OL~WmIESK#iRF!I?G3~|xwsV-g<%BVzkyTQRwazc* zp9TrebA!I?Ns)BQom|X?Sqw{>Ii=e}2q z^3w3d#Y?w8I*k1j&Lj4^`t!F-{=ntozYO0PK0kc(V7PlQJMxED=(YU^%f(BaNo?s4 zui>v(rv4zfk`kXGK6$(F{W}kq!@qj4oDJU{{_*hg@Slfo4qqDXe)!z%X!tiuj(66g z9+P6f^V~YbWy`FU|4rXYY8$m?m}|rPkpBzF|08M(+K`d2{ojC*uQBj5;Bm&+uX{yG zGYg+tEi$v*;_6Og=EPx^BQV>Ty)0Wyv4U>STebmdS+k5~&C-?GxymYt%IqvT)AS7#%jm(vb3=W9m9smRo`Z7EY zSC3BCA|cy^feesxM*6Xu++(Z6W4v%Z>lkTE4a%{)d}9rhjS*aX#&?!m$SE-ik~T>j zR*hfSG{;yI1Y^`XJ-e7{nI!Vc9Ao3%pq6;WG9jfbS_|aPD0VJ%V(K^(H>El*F-lGz zv!x-LtZ3FMT~}!Y8e|c3l66&}6`9LCT~Ar!vN&3`apMfj7_%5dtK_f(g?%+)m}HdN zge@%d;F#SZ(~}d48y_1_SUr+3WO0oQVI9?Whg$ErbA!?8YtF*9qE@N{m63I21>2Ys z3{%v=2ZjTi1!}BJ*WJm$+F=6A1Z#o@j81+Q8mgT|H3-1kWdEX!rr&FW`l~(OF9fNz zNxwAapv-`k>7#kQZi(xQ4j5(5Zev7W4lG~fTRKsE)#LYSj@%3OL=lUv*g1DvFDZ~S zr~}JVDJJS_|aF`!uAl-27@RL6Hbpr=&FED00dx? z&iZF7r#-QF>bbk}XOe3WcQwe`MGmJr7A-|s(TLnL%81Yfd+l~-#x;^*3~ol&RS5L7WuatC*RU|0nO8Hsn~E0&MoL~ zjs|Q+AA0rJwv;5|z1mb;EK^jht4Yqd$N<;beF zs^Ki_7M$Y14KRC|lG-H;WF*tdR<|6!Jh``7 zMNf2f>{BIWeP^|U&#F|p?lF3Fa{?_bdlu!P%e}W6(is7DTuHMGj9Hu0WwpeW)gDon z3riNx1Dh$bSi<~s+>EZ`$7+`xYb|E1^=Pq5q)W|kVzoes)gl`f85w6PtTuVD8YRJM zgaK=HQNV^JF_1_I8T#FHdAJV1q;fb|;RsWw(ZrSY$_zExslj*E4%t;ZOjn!ITp{i< za9piHaOKQyRUo+0EyXo?t>!MIR#rxX27CFjv9tG0|3KaWqNmPX5yZVU;`=&?H+`lT=l?KwtEge##u< zoKMKoWi`5U4Th@1?9~t}(P=vpR1@n-ENZ!Ea3EAY%wDZUqK_UFC zWP$1w>5=|WS}&!xkUs(T-XBbYH0+s~pW3B;YINLP2%qQ(rJd~wq$t=a2RB-y1HHjC zb|QJAEnO~ld2y#$o7b+1wrNGZtC*TV#uTJJ8B0w>OoonvNnoQkOYF2MtJA7YM&7w3 zWeq+jT~eVLGAEU{&V;MEOSwLWlde@|O`#E%KT6gLCJ1vrol2?;qu3H@Q^Sl+ZO}Dg z4b~jZk)u(YsA&zBCUz*~h>l;#T8sZ~$j{U+ITJT5G*yqt^~_#rB;G7A%W~%K=evL^)*P9$WfCu>8uBH zB(UsaD9-NsPxE`BPeJUdd9-}o#jNBQF zfUD}q<7g80j6EUO7ByQaIc1+M>XkawK-H^Q%@wTV21@3YT6{$=YZp>Ug;hx#zFS)b*zKr!`>oaxU7t59u9A<_Ykjc+-{&8(HA$2ngz zp>yHAnKwiuRLvpuln8{LnO>x=2^Z?1YTh7_TQy0la}JC;PIN&Ha|NACvz%ChOuKSl zHcb&!%@5?X_cf9XJSw8=a>k~{<#nM2Vi^-DkueA@5$?1uxhorxGZj$X*tHQ7psMJV zt$sPWopQIkwHStd;$Ej16wm$1mqm)0$UpVmnz$F$0JR0#$>d&0w+rpax znWEqKQXrCBHX>CmrXm~V_}P@;r<&cTF>0ThygqKEJ{Z(8lTK-LcjW1U-q@ZxTaV61 z`nq{eA#ECp&G?pxeCo6K&|aT~!l%;?e@|`l9?WbDb5C2eJ@q+zDhYcit%Kx)Na;AT z_0XxIuonVKq1L;i-;kJZE?eVZM-Trp3E3^|>5WlGyJ z6Hg{NgR!lk;aN?87w48byU9ei6Y#XlzOyOyP9^US)*eGb^ZXch{$S{KuukcTleNM`tHX>en{j!RHu{vosmsRG2b@jk zA7A>TuRTXU!@{8BK%^n(==7as4Q zOM`SS4RX0yh+J$eE*1)x_4r#hCvU06+yXV=Tm!VTl)H$+J}lF=kVZ?4%?i$z^$1(m zWov1Rs>O+?1uIu2NsBu}%i8oTfI`x9v(zDGDY3HfGBuPeqzSHkEVam3nq*=jP+kKK zi()FtJPJMHd7}g@8?&!ai!{_Lsx^}9#HCe!g1h+~mYPuGP7ty3qW8Q@EMh$l<0Ms| z?&7yAxj1jvyX+M%h-I=#DT;v%sf;7t3bIC$;-u7)rua)#6k;G+p|p_{LHZ3Wj_#~7 znmjcTS4Am`TBb62YJ!#pSyc=NLY0hNq$Zn+B;#0{N~ILi)*w--!JvXvnw~zznLB0f zN}NJRJT?Rl+prCO2%ojF-HoWNV5>6kgarOM`?{3h4M=+ z@S?Otic*^qr97+aa-q!IAVQ(D5}7yI3=2vX1qvx!HUCKs@)Jok;`JlICr*Sr!Jvk4 zJO6Cg^YKqKiN^Rfz&wZs_yr8umy4NkSOz`qNym}%M9Setc%oQ9ii@bI%aQ7&S)LQ@ zAv8mBqS~foIB}&nS&Q2Q%bJGRB!B!-Qi_zklfo#l9gLsFVSuyJGobOuY{R8ES#|;b z&>PMA;bh=p(7cEdv4oF;WJRqc*kUx1l^1HuOQ)pLlbK{#?-|h5223X8b}FuwqD(n{ z5has>!=yHW3Ayfi_L5rECG+)pOK{f3L|T#|t>$P#D!ZUrx{@4(X-|6}^DQ60ip9l6 z>e6TYokX>YzT7*)k z<&G*P2lT)ZPK+WtI*|>zMA{${X^BOol0pQ>3Jv@r%%XgbyL(p1trnR>>eGg-!5Pv# zVMx<#A#G8Gkd<)b32BWaq&bF=&FMi(1{_;r1ph9t_tEd#D}6dsy|V5X)_ztj9Sn1% z1To;3Ig^33zy#6)4ai0uAP8M_1R!CnEqXi<4 z)>t@Nqu_Am-)N0|1I~6^%p2{|ZnVd_(H7wbT$Z-jHa4c(K>DtVXG6Q^V94*Ym_n^U z*~WudfL0hb%)1I~NzE}^RAn()&2L@Bs^G_d51AX_x1R=mPk?uE0dNsU?P0J3Mx$VW z0|%vT7`~e4>MrJe*w>WU6boM+N)4=AZSZNdNv6>blSYd)8XIwFG)bVrQqLQ+XOvO^ zO#5=Y6WP3IfH#BBlG>yhZj2ceyqW1TTIR}Vj4;8OB?Hl%og$-UevIZ@EJ-g+%ovrl z7%g&QG}qcnHVirrN1PD`?vECDFxH)x)eIQ4hp3^ypm3E}S`Jug-Mg!pEbPP=6r^Q$ z2U&c`ZQcJ?+?igg>IL6`) zFkPsP;9TY9PB2C6YZ6>IXBDXPm3%g83xk04el6s#HW)3Mq_b$8%L1#TiO8ZJi$z@u z3wDga#9v{8$x+Y<7G#7LnJc($YKyi)9DNa$tY-R{GSdk_Ghu}unOEXTeEf4Wo`eHc z1xC!sQ_%oPMS&B-%20ve(LztL5jRCa2rDs#ot2^JGqRmBXcB97p$c>$kWZji~ditv&7_lP4Ng}p%I zrc-Nb`J8q6B5W?(W=s)gng}yT#Kr^>Hg*U!)kqDoAuoiD6at=(krAR69fTVf1UXhF zB8Uc9AZk-USot6HE~e4)&NpO!usWSJIUk$|ALuHek?mm(s)w394^<=&br~KU=^ZM# z9qO(ug;iz6W@^`!iZ!LqdSY2iTxF?PNmMaiz6`i~UF{G!w8q|`cjq!nfb#lS$=k3I zX~V{h4K})l^|=~aBWj>a4pl4-6c=RUQOcV#UnGZCR)RE<_-oq3oa|kGjp01W8L%(> zG?^JH=?t)SY=AI(76=&}#kWu~)ZKO`HJOuMtxv*G+Ktx*tF;{Jo%7>fXqR|FdivTP zk(2ispj^mb;3NDLDVizaB)_+jEdbeG@Dcc@Ve;9720pCF(Sj)e+>g{Q%;@ND!P4whB(DpZgv zG|8yYHt#?+mqL?73hlS1nnJ;}G1M%7LIrsO)~kw5nDe1cm{)Qpu*`y$FrjmvYzcEG zssuNlgjxaN<_rne^gFE|og5=Ud2y=Ajj%2;0^EfPR)hvA5t`#eK;&OVh5)B@4JL#P zzrTV8fgDg#zBZB7903AE8u@29o}zptfXEGCO@f$EI{b+jJOTil$#EJ+qdvJsdMO8f z(v|0G$|{&6yg2gX#IikgTXILBIJjK=n2t%He3g2kxUZKd8z_mUyfz!%!F&y_0~*yb z)xv6`hRxkJSPp7Z9MGndiQk|Na)Wxz2AHEJT7yDRK6w!sdV143(XO6X?*kS`^0UJeO8cSI=`U)B0G@j9Y zi=v4k;DB=2Ne2{}Lbgd$kjwhf&2k$@K`F^woG$A49h2C?PS7GX!A86Uc2WW?61sHW zInfdPVQ>*(OH5Bhpn&pAOZrn~A!wh1U_<_a47Pv8V^SU3HuJ#Rv;&#&TF!xNty6>p z^bx}pX04^aIMo1S7`U)_briz+^+#Q1T9&_GUjEJU$@0?h#ryx|Z=ZY4kz0USSr=A; z3Q7USC$IsT09jI)&rN6q*5VLoia?+#_5c%gfRQ)AL>jOLW59-V0q$G@7-)`_UD{P+ zAJV}fweFL8y08SSK@qSPKR_$w0M*O@SV!!%0FImh>k$F~7e&Jc;7kRO=KKBw+b#Q?_;^c|2KyHPk5F(;D3dapRM2;)c@un|2M8io1KM3VKF=DiERKhj$gTE8T{#BszOq1*Rv%fA$=qlYyQU*Z2mw?|LVN>DzO zs9bn%uJBkcokLj?S$XDeW*+;4)lk2$UZ+IK?Pm(@E!>?;iV+`3x>T)#nNeeCiy0IRRsvx2Gb1gKvhO&<$R z8A?BYd`&{xmpp^4w`uQZ-UNs~IZ+DXMOK^DlNU+}qk+%Q0E{yTn{~1C3nJx2$>G{7 zQFIsk>Otm{8?3?0cL&Q~7bzbn9JDa`8F*n1p5ETz1_APO*nqj}bEDt{jh{bOSAmPK z2gN6=T8)U`3LJieSonoiF^@f88crD*%Kyz49vp+#@{a{MNn_i>s;>!DUl*mm zVTk%h@#$Lurzh2OK&Ed8mcAiO`V9f;^TrmNE(B;S@14=_tGAbQW;HVzr2X`xmSI*P zLLes)daY?C#C2tVblxTo$JTf+38ui5ObJX92LxA`OT4Cm=hsJ_hxfk% zIbREJzJPiydMKBprrxt4%{#-)S76K=0OsqX%ez9$!+KkB&^Ax<8gd49i7XI$A$O8~gCgIPy@ z608EjHG>?V3k^k|6fIMJ-Z*vG%?$pXfS!IegIn0gPEU9ot^&pvW)X_d>ZXGkBoJIQ z@)tLQ->Vdf#H!f(xbxHhlFnf z58fFJep4j)7GU6Exm_^e+W>&CM1OA@`n?_8_jW+voeGiSxmcu}LEP`PfZ*O5e0vMn?QH?KuaDZ^7-Tz3o^FQM zo{x~3&gUS{Go9ZQsh!WfdNAz{80{1V835YbL}zaXy4wwx9l?QAfBW&e)f$^2)ik^y2>x+sx3MK8t!2VxuaR!L(&&Q=b+(b!lEoW zGxzjtX6H30cD8i zn9Br+zCIdyp>8u2x&;Tl1_*k42*6UI5YBeL{T@|PSHwkT>M>B5RiL)QYXdEUWb+R+T6`TB6? zj#%cf3obzBYonOEL72PYm)C`u1>JzaASchx2_qay87pkLvwD*blvG?oaMlpUrtVg# za_-}9j8pFJ(bYmIH@Za|V3Qkw$qlIFn?aHr@yO9IJs9~WNaRKsa`+T_403k>atHKr z@?5mgjRye_zS9b|DUtavR< zaTh>w8=816J72Kz2&0SK3&kw}(g2%%)X^h7oQA2wxK&yd7w8It6aU1t(uR>-v0pkIj-CHc%Sm1UfZR|JdV1u4I1h|XTCh+fCJF}z?o4|gTHf&dnp1X5;UTEJf zLVZh@d9@ehe08J>D`RBs!k_qpSFKLfo*Cu`2G zsI5J1>h4Sc#IFVejbV7V3VB_D-rX2Fg-oECQEOXjJ*!@VOnpxgC(X-J`4xF}cm@V&*H-BhhYTU?&M*w%j)HZw4HTP1pmy2Niv(%%eN6VT82H3x3}`WC{PtPYU+KtPZJkAn_J5J0KNFq+{!KFKKg zwh-1?Uu+?)v0uosTMq8CyJ25GD4jIhLRhQKf-QtK$Am6wOj%#N&jfTdZpV`yq6{;$ zMSWbDPa}Z-T*-Ozy9@*<>fz1=c)3(pQyj5{u#Vy}kddNE!AZ_gq)X$FgJs)7Sfkf6 zFK7#44aZ;~H@QnN!`?|W8})If)0>322!qKv^dDtNb_KP|5T}LO>5~9k2+4Fwtg{gNE0;`x}A&Q9* z9s#I$a6TRn2>OCYCMdHVdn>~xeY!Sik&lbY^t7$M00NMU5 zjVSelL>WNFV8{A1u6>^GjiM9iBaRZy$QBmVaSLJ1r=E ze~z3{aSt?ul=Gq(-_cC0gee z!deAHalN zzOe&t-^oMV2=I^C>Ds`X`mmQc0WN8EbeTKqV;3;!;{0YKLy~aVlgyZMP|R@mtKEk; zc1JfJJm%7UnSG*A=J@V>yHalyV(Qfe%OJ;39k)O#1wg9!**`&;3+R;^{~~gSQaYTEn)5unr~(R&{OXaP`8sU52oY zpsJM0pm`3CPC_tLI*yR+OG5aj*lX0~pvdz(xC8#kNB%G6pL+zVV)Pwuu@ZTh#3Da| znX46Y3t^p#^WK$R#V++?2vwmJ6z4@wLk>5W zTxLL`GV3Aq!4F3X{Ync)4!|$b&!&}D6!RYp+jR?J%@kt`VeJqMZXv8OpWofN`uN%o zP7TLN+8sm@jvs@3pdXylykwtx^r?p>au(zue~Wf#3t>%;ipG#WB?#-^E`PK9$G^Dn z9Q%2)99|y&@8rlIUU{;-G~9o%9A3kJZ{xpr@ZVoOST0^fQmq#(f46vzE;@|xU)uHK zL9%?ZTwFLEkFFvsF#+r;k(2CHGFgU#c=n-9aQ^2 zXQgWM5Bqr;=*?H~#{Ve4acS{AS=ALlrcj#wG+i#ft11oRD{(Y~Ac3yDf1Vu$g@!L) zn3B}m%Kvk@^2N)v)dA;F|NQgAH-^s--#i%Z9+a!e%d&WhW5FzkUo3u*;}_~OI3b)$ zM?YU$yqHF*KU#kH+~O7aOwh-lGwPbJEnX9c?7E_?gT=SxC)i{NmIsS(Agz_+R8WH6 z=|??)d5n@hq`9a8{pI4NFK7-Y%ik|A|AtlgQZ!4avlMT>n1<Osh(BlX2!FkrM!oKl-+M^kqWTxnWAWK?@x9|HO3BB_efiKF$tywOAn*aSH)wv1p?;uB`n_`G3`b9+}x-dgVV}{W1FUwfMMK zDxN;civJ5)JZ=4v%03L@y)a0RSsgF~`@?iRLS+|H{|K`P=QWleeq-^c(8+OEO;6Q; zF1Pf*TYM)uo233}SDD%6;sqj?TrR$qAS_6`znan6Rdm$%+28z6To8jJ&%5?ddpL%H zE1E&f=NpESbs^qII5q98r(4MFlPL81i(lC6FOa*0^$UtS!A*>kCZ8T)4 zNTe5-Rf5joa&aG1_zWTpgCIpEKkVVDhuvU|V595z`*aD2iTzzcR0Cxl9donxyT$Xt z`JAM)QX4Q~zqdiZa{f1NEZ(5IBOVC%y0);|pY?H^{teOkQ#diW>9e;xkI zZ1HM-=vY~=_ChEC{18$X{t3-c`5YHI{|SE%a{xm4Z_BC46?Y_x}Ju>a2loGmDWZ|Y^rFAvSdfGVoc(=sioPH_hL9MYve_;B+9lF6~~DJqPx)qsBWNx zMIWByV%m2;G6*vw}_-x&0SMt(IXJB_*t$ zA4jYJFB8PQ!0iLX?zX)XhsIX-%U#nX0Q}#kXN~Pm!?O?LP*&q5-Ow1=FYS>(u?L0~ z8kT3cUStQJ6}i4=jf^m|ynz)AjNXwE_Fc%q4Wm$iMwT%N{Jp>$kL@5d0(%nJA(ip= zjIp)v2eQu4?Hfa@?~dHawL{<#5Wa~6puTC`30({KIE(^oM2`e|+YchgxC78`-$EV3 z4+eH%M82pj09ui4>;*Rd1du1d1&nyA5IHs=S)-#6i~^*n_|gqyp!pjw=MN#7I0}64 zrg7K_tRs$n9Q&Rzup(=NiEQ_tKemNrjot6u=w93-aF2sM%X32xYRieDNx0eV?zxc@ z_cr?exXYwI^n({xx*O~ISVgZZn*Ne&x?GW2EzYLGS@buh@}|&S zL$$HCv+gXl7r77>hudytd?RmVOK|1((1zMNu+_Ty(D~bZQ7f0w$sQWnW4nlMl?X&%n z6^2N}^8$Hj_H=F#PtqSftN#KdvYa!NoYJz0^f++a?UUVh+&&vwdo17ijdRVp0=!NK z$eb<%PL98AIk(|iK2{SxMZ)LL+p+Vn&bz4gwsXT-bZ$O45%(a(C2(oMw@)0fo%o}R zu+m>luh2*Q{eS)&Mnm@xc773&wi|_T)aw;~ti$N;IoF-j&W&y7Cbbq=Elck*S>9&% zkJkH}LdxckD&oem4#ge{_3xuosBFx7!OWukYAl_rQJOnmn%S^7h%K z&elX|gGkGqz!m!a?$>tc?s?|@FpTYRBM2ivM^k7~vxs}PhAtFn$(W6G#YnKwzNli3 zSc0;OM)ln_Wa4^-|Le{I?!DLF(EtlK&2{Jf0{-(V{-mVy0Upm##Dl-;#RPql!T}TQ*igeCUxT?a&vjk5i z8@FauQUoHwGYKpup)m?6%<7t>zU9G9IM2|IS9uH6RRri2*^c?x3n>*1`Mlmuq0(6a zrn>%VRYZvYP#PB(;lfV$d?DVSSbMe{4kpnd_g4n@S7KZv0z`~k;mSHLb7eA%1sj_N z!RkbAG~y8N4~-)~HXQ3E21-UavHLC!)xx;9Z}%e_p7t>qq~RP5rFg&3$1)f<5|*0; ze=@SI5C8@P!;LULV}*zQXyhMI)e(k_H2R{!WPm3Ow+F1IvpH9~dw?1zm_} z;PTxG#)>x?Cvn6Phv^Nb2C(+(k+^5e}-qv(d9f!I3Hx zp7S-v`>J^EgrVPe5hs9?JBQ%v00Vo$K59^LV@oMyQX!KHnUq(+y!+IN$2|`=5i(;| zc^@)$ZKWkln2}(G<)zR#vAdLNLhi``qYS1fXeI@Z1^uLNjW8v|8RS2590?k>cgDWw z_npAU1P81LA{X*;Jv2KPIzYSH$`vzF%v1`btWo7mn*iL327%l{Yj_ItgExZJaTjPD zIBwtJPR{cqqi5T28xah002U+PXJWIAkq<3L?%3unlgyi35SzPGr;qNdjHM+QPfA|G z6HIRB;ghF|XnwNe(CUqBIMJc&VNML~LfGc+AMqP4ko`$O6x{#aksp$NN<9V3FNlVC z+TO7+N5)zuIprsqlLNjqmGQw+6ZA$$>U0cWPqU%Gjrle5bIjlDgn&W}8rwS)=+#I6 zA`IkFJc?Z7ksUey06vDCHvs@jmSgf9xS1rU30j2a9$KCJM(zl=9zX7| zrv$Pr|Iw}6pP0hWKobKK3b8=2IbbcjGCKo|F>BFm=)?~(Z%REC^%(@gVAFhK+a@<6 zG5;V+ZgLta8UOD3nB#OY`$|q&7J(1Itgfl#Wl(cFmGz7#M`2`-Q9UhhinKztZ=_dF zJB_rKASr>D6ecg5C#e+0eQ)3f6iYls!|M3M&bK3X&tbNr<5?Crv&ETBrlh4IffVQV z&YpDY+zLYnR*se@r)T&CE%F4`z<%kXmxtZUiVVm04y$N(l6f6gk>&9!1tETIN8k_o zPP&yXnPkeOLZv@WU|}}**E_=zVlZnm8DXBAe1RY_bq;U`tUPzyth}j|C#w~1q=1OG zfV=mTSrnykc?|fT-<3I@Et|@32Od zOyA?TlpH}5#Y|p|I{vgk3KwmJz<%w=6&M5s^ zC@h(jQSg6d&+GK(m zqX#iQ%MT`gUS@-d@);?01?fiyRl@=_ zlcr+=YFSec2&nR`qX9J>meD%~gYzE;fLQ68)jni}+C@`$G87Teec7JoYD0 zX;{ylz8v&4i24c4F(JQz)*#*|pvMRMR4Nz3%WzhS;+bbvM+2F3Ri~a##Uu^qCp-#)(YDRXD%|J+Dc5CMhJ!IScz8&PFks6 zv`%%B=({XbpEgb>;4Y1lyrAO*~GuwNdx+!MLcZjl|RNlEJALh7-WLF*xJ8Rsc>Vb8W14 z^i6e}hTfbq8C~awiVfoKb>~;vS$ss~t;_^{8luwzS0N8+$yIADg@9zH`H?{D`y5Iu zo#kigY)w*MCAUyXy8uv7*$0qYvfS~o{{PEJAXzMU10w;_2isb(&Q?e9^PfWgphLY% z%vQ5X`@0%rxP)iMaw}aLQc>c$1nV>_u~{T+`Ejkd3!`vKl{8(|I z+J_Dd^U{9H~XFK9L zPVgF9$`8%zW*b<&Fa?w@^6nZ>xK4IB?fVx%j!;k`&q_4L7cJ)fY8W z^FS^vG4F?owv3sUR7bhwk`^cGHnus^q1;*6fe<*H2JW(s7#{JZ2nsutRfg<3MEykw zkjMqNuJKT32u@Ohb@(y~smV1@v27?~tLV-37ILRVB2$P%BaN?Sg`P?>9~mGgYphrF zsulW3B#(z#g%1$QHd{Sjw)%yF%=5jkkfvMPLOJQn@W|S8b8mJ_F@xH*W$S5%cK>gn zasNMvQ1~Imjj1%u)scOrU-hfMLud?l&II7tyG8Cka)S3 zrbV=y8bRFbR{HTQR$A57ZC5Vn3PYhk*ydSd_a>MvwU^h1DsMgK@M^Q5f<{08BFLv5 zm;5z2WdU5OQfERfg44Kb1|-GJRUyyX(TDY<4DiyN7C~QwEk6JoSnr=34uy_?%r zL&8Z1^SW%5NG_?iuu^R(zKV|=WcJ`AEkA9nFLUgiaWUxmx7m09fILME^8uJh4G&Uq zc&rp%ow5FxQoj`=q;>reX*a*YN!h{Fcz2U-Yf~!6qMF_ua@{+vU(L#T${P8*E4iIw ziXf4zUbCtmu$0&(hZp;|3x4kXlr-%wH2{<@4v)-HvB5oUqE22(DN$}c#_BmRB0|oW ze8pqw>Aa@oLT~f$lx(#_tD*!1nhcS-s|K3JD67%s-ii{gfec;BV^$h;;Rm?e)~@*$16v_*mopRZ0wV z+3AaRASd6JnX}%&+jq^BsbdUjxp1Uji&b6sy?Hnaz3bkcag%YmfW!`C@L$>oygB4L z3*VZB^^`5L^mog4Y9mj*q_y9egSA)TWEOw5@;y(GC9S>KH9c%rx1O5Db9%d=W7K)I0FuzF8X5l} zN_1}O+xZA3<(5qJYUO(xD4<@_R1fB0s>dQ`Ci~k;^4M!6AW+(I$ZV1I+3i+s-Rn3c zNVB=HM`#;9qo-a&1`qYx#-02Q{Z{7f5V?K7;uRP$Tx#$0gsvI5kyz6yuwP4J`gHf~n77TQeANtW>otsw z*N*a7yZL?f8+L+c)sFByUsI|kLB1j}ZfevkvDXE(T?UZ27JT=@oK+KQ%l z{g9+pwuR!2pv@cJ(wR&r)Rym4>fXInI0qlomR8QyAXqW_9buG9KoZ_Ue8%X7-m-t4#49MoQj1J6ZF*-B?1ZmEu_%YIhEX+JG2* zi=MvkLn0?%`B};an{})CnIF`Ye)C2%155^~&tSamW_9Zs??$utn@JK{Ke+!W)p*_* zlq?#pT`0U!jYRd5%Km8%%GM%d%DgPe$bMc4gh*vQZYJDeKS2yjnif zd*xtUuUcfhA;fvZiBg*)!&$F>u|DM1Zp7l@ZV8-I0x_MT7o$pI1~b2qx}=ATVRPXaUlJ}Zq7vj%rb``I%T zQ!i;Cb0XvSt(gXVbw155kw_ zT?*$;WU}dPt!1K^dd*qKWhl9hwYm9OLe9rDI)1L`xZboA>`L(v4O~mU;5v{R>wH`QkGJYTcbA~#aOlDOEm$&|?Q&oH9! z?C#2((UdF9Xua--X^3lmM7*?+4AJw7RkFwjtzatwy$bNIRL}yRuptEv} zOnK=FP4Q!|ph`BcADd|+(PAH3eAKLNJuTj9`VFjd?FHr9Q?f{VYsK$wm1yo@4w}Mg#KHOL|QK zV8$-33MT*PszlbAk9M0gh1@i^kg(w>czTj^vAnJ}P_ z^GDWrA`+H4k@%>Q_d+DKL{c0OuLQFd`F)cP^P^INjs_azV2dCjYf=tc=&aRF31h|z0iyaz-k~o)@ zXeP`{PR@DW6M&g!g?=Tpa2RmR*7e{iqL_WN00%h zqBXL-y%xxiHDdz9aL|dzj($QOu1i#dk%k&3K4k_I zh=jV&A+PiMTb~FbSAt<*gOXCSC_j`a;fyS5Rxj*e!?mL!!%N2*(g}xMPQX%R^>8H7 zAfis@!8zQnqP2|iw!CmT36nS_F|ke*TMdtJ`pu!~;J^-cXa|RPhR(_1kLSZNPSi60 z8pCsug!pxlrSe2`t)i_XzzjyUmqJiUc< zI!7x>W_nyBCy7(bv^Cr@HL{U!r9Os^XBBQ})gJfk0bJD)$aHW>OG3gWya{5xFl{=* z%fvBb)R`%4ULc%gXrVnCO83tzpSHc1c*22}xS!+BmH8^N-&I!}iDKe7v^_ggWOD&5 zz}zGBVStNe5z2do|G3sNd2}3>k_jBcToRoRi<4$k0B5N{nzHWPb-p5#p#S?T^lgk~ zy5SdQSN31gO+52IG5#zOjOb{R;06>VJOB5e3<4fSoy=40bcu;|;JcDwWXR~dgd7#U zXIjM9QjJvMrPX)o^iBu~T&n5h`(zzTe~$mSE~x3Uj>vNj2Z5wJccBfMM&`CeVj~(#=`kn?&DNFZgvD8*V(&jJ`!H>bliX9 zPb)a}4*m-E5~3ZbWF@X$lewH^CWgE0di_y6pr%CaUx*LiAx2Ndl!3%;n&-mF=l>7R CBowv) literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Detector_Geometry.doctree b/build/.doctrees/html_static_pandoc/Detector_Geometry.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c3890d889beff3f278ab7900ae8d384efa45d0b0 GIT binary patch literal 17950 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 B(2oEB literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Download.doctree b/build/.doctrees/html_static_pandoc/Download.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5d7b2d3066db79f96c5033929397f8d334d859e2 GIT binary patch literal 17447 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 K^qLa)tp5$(_t6Ca literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/File_id_attribute_for_Nexus_files.doctree b/build/.doctrees/html_static_pandoc/File_id_attribute_for_Nexus_files.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7294381668440c019be91ec7a5978c3c9b8d3de1 GIT binary patch literal 14540 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²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 ak?+&Hv`}9QC!&=5sS1GGR9)g1BmW1pn&v_P literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree b/build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree new file mode 100644 index 0000000000000000000000000000000000000000..171a0448fc4d4a6e890e394f7c2e1028ea6bbb67 GIT binary patch literal 25230 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 N6z=k*1pdo_{{sX@vlIXT literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/IndirectDiscuss.doctree b/build/.doctrees/html_static_pandoc/IndirectDiscuss.doctree new file mode 100644 index 0000000000000000000000000000000000000000..be9dda5a360e574126c7eb7a0f61cd82f12466c1 GIT binary patch literal 170423 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/IssueReporting.doctree b/build/.doctrees/html_static_pandoc/IssueReporting.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c64896d63c1f8c5d847d44000ba99778588497b2 GIT binary patch literal 11240 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 mr{{ETRGpO*5*PC(0!HU@zERQuyH=Klc7N;b>@ literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Japinotes.doctree b/build/.doctrees/html_static_pandoc/Japinotes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..59be9b7527c60d7da744a73e0eaccaf3ccdbbaf2 GIT binary patch literal 97769 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 E55@K88~^|S literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Java_API.doctree b/build/.doctrees/html_static_pandoc/Java_API.doctree new file mode 100644 index 0000000000000000000000000000000000000000..08ef0c250daf35b4edc67f0f39a07e0ebb654c8b GIT binary patch literal 19902 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Jnexustut.doctree b/build/.doctrees/html_static_pandoc/Jnexustut.doctree new file mode 100644 index 0000000000000000000000000000000000000000..68b3567db414e61bb25534f19d32905fa0375e9c GIT binary patch literal 80348 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Latest_News.doctree b/build/.doctrees/html_static_pandoc/Latest_News.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0551be3fdc95b00ab0bceba883e60c45b6a70a5c GIT binary patch literal 144782 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Linking_External_Files.doctree b/build/.doctrees/html_static_pandoc/Linking_External_Files.doctree new file mode 100644 index 0000000000000000000000000000000000000000..964de9d5247ba3da1c92b155dd648eddefba8ad7 GIT binary patch literal 36052 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Membership_Dates.doctree b/build/.doctrees/html_static_pandoc/Membership_Dates.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f0e35f101b44f140705cda71576d62bafb9779b5 GIT binary patch literal 23107 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Metaformat.doctree b/build/.doctrees/html_static_pandoc/Metaformat.doctree new file mode 100644 index 0000000000000000000000000000000000000000..df500548a16338adaa68d5cd662ca2e162ed6b59 GIT binary patch literal 27401 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/MonoXPSD.doctree b/build/.doctrees/html_static_pandoc/MonoXPSD.doctree new file mode 100644 index 0000000000000000000000000000000000000000..234b55e3409d7e71d3fe7271dccf7bd716b8b424 GIT binary patch literal 44708 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 PWb_jIK%eP~C;R^o$ASa7 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.doctree b/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fbb50da5d8ce757066d8cafbe7855b9ecddd41fe GIT binary patch literal 7862 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 n`6d?BN+>XKrXd$rc*ewjm6o^MA^z`w)Gb^1Q> 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 LJxU4T^49+YTLHfN literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.doctree b/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.doctree new file mode 100644 index 0000000000000000000000000000000000000000..49e6d4bbcd1b91397069edbb1c09d104819ff880 GIT binary patch literal 11976 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 YCPhTBFeVG_M0B1xM~e?=ODHz}9~Gds>;M1& literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree b/build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree new file mode 100644 index 0000000000000000000000000000000000000000..64fcf3bf4faa310243416de35df0ba7b2faed17f GIT binary patch literal 31884 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 TG4=a;31zxEDbW2W{#f8Y05PrC literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NAPI_Routines.doctree b/build/.doctrees/html_static_pandoc/NAPI_Routines.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2ce2ba5d78f8bffcfe0be91fd2f0db50b1a406d7 GIT binary patch literal 429262 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%0DC#~5zlqz41>-oy=?LfanMcFKBVrp({Bl-jI3QX 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 YdNEpx7hCOWx87>fdvvzBw=nyE0U7$fmjD0& literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NAPI_Utility_Routines.doctree b/build/.doctrees/html_static_pandoc/NAPI_Utility_Routines.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8b70d935bdf0734df2ae64d3abbd16aa6abc4cef GIT binary patch literal 201659 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXaperture_and_Slits.doctree b/build/.doctrees/html_static_pandoc/NXaperture_and_Slits.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a5ee9f5e1d84193e2c7beed185ce517fba4e969b GIT binary patch literal 21704 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXbrowse.doctree b/build/.doctrees/html_static_pandoc/NXbrowse.doctree new file mode 100644 index 0000000000000000000000000000000000000000..89e76c039bd5f522d9e9dee76d0391d4e29c326c GIT binary patch literal 15541 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXdetector_2012_10.doctree b/build/.doctrees/html_static_pandoc/NXdetector_2012_10.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fab130b3fedcac390dc647b895570c990be2d06c GIT binary patch literal 40203 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree b/build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3961fa973726bf7566ad033762dbe1bb67a45ff0 GIT binary patch literal 25986 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXdir.doctree b/build/.doctrees/html_static_pandoc/NXdir.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9700749d545d6b008012cab833bc74d453fd7621 GIT binary patch literal 35699 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXgeometry_and_NXshape_-_documentation_and_review.doctree b/build/.doctrees/html_static_pandoc/NXgeometry_and_NXshape_-_documentation_and_review.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c4fad28a531b438dca469e413fd59b9c42e1396a GIT binary patch literal 36687 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 G-TXfUg)LVA literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXlrcs.f90.doctree b/build/.doctrees/html_static_pandoc/NXlrcs.f90.doctree new file mode 100644 index 0000000000000000000000000000000000000000..10c2255451b55ba5a2b8c41eb5658d2851d891aa GIT binary patch literal 72629 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXmonoref_example-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXmonoref_example-NIAC2006.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4ff77e371a8df870f4a304d26463c9400ebe04f2 GIT binary patch literal 43556 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXmonotas-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXmonotas-NIAC2006.doctree new file mode 100644 index 0000000000000000000000000000000000000000..367eb40ceecd1e2375829c02a4aeb4cd294d17e1 GIT binary patch literal 41399 zcmeHQYnR-_nKsyCGlP$@4df&Q62;4IIl(h+bK9Ir!^Q_l@F7fM!g730mI!sLx}}U- z>gY0_!T9_BmHiw0VSm>?Zr2~10Md8^(_z4bhjitRAQE{T8GE6LLH z!_x!Db;HQz31ct0(KK7|Fh!wXGxnU_WxKKSG>Ni!%25v`rk)?TF%Q|dxOs!hr+$ze z(%1>;Pip!oic`;eh^GCigF03eyF9ki zD6gD1=%n15#~lBOF`sBI7Q$17)Z=K$3C6iwz8Py8f9H{Z*0(F`+_rEwJAvrhM8 z=S=p#$fD44ozyuHQ}*5G(SqkQYkl`eKm9zLP;-Bd=T7J+vZ=9`rpx4TG@ARVmrV|) z(PAWKeHO(FCskVc-~X}Rz5nj})^|sb9)4nt>E8!lx(Mh#^R9i%yqBe^!BE%>t%g#X z0qmsH1{wyivGzAq{rY-ePw9g-ZdCVRU9VL1-HN6^mYQx?WL=A!sc;kht*N{l*#7e+rd$rgoy=)huoX-?Gg6$ona(z2?2+UG?sLaVeW%5_d652eEzWVc11HdKFfB zVS0@fOy>sN8RFCc*-A@Z?MUawrc#c=<|BD&)f>x z6-rhrb3W-e=PVB~vby&>Z%mPa0?OYp&bQeMR;A6qSKIVTfqtu!qoJ#%68_aZxvJK$ z^m|h6x7~i!Sn}3tc^dP6$9~bBs)?9bj(kt80|V2pcvUSsmi< z7D;1O(z*rf1`BuczJa;ll!jX`%x)-im-`R1yPVt6e&C zt~NbI4%GD7JcU=e(5dq2(08Wf)9SuhTn{a3bwBmfK(_task2xH{E$k0S2S*OdASG- z$jMc(Xxu9@btP6 zJ3G@|6d3<%e?K2Fe&L`0{OV7K;tw)!Y(${m4DEa-AF?>Q18Q_}+>2;NStaJoi5s z-T!d(;C<`Chld~BKYZ^4YdKq5pPeqPw`+}j&7maP)?sVrSaXiOGxm=%>zMfgSKDUV zX69Qr><#7S%|fmP4evXrw6~@0+y4H?l_|yKK)J}?;xmg9rjPDCJHmgcD{=Ap9j!FV z3;VG~AJ>G$b(hcl5Ib6I6fy4~-D#b3Kg7mXpa@BG-tTD5lKM{M{C;%j!NGk9Bs5z2 zS7Dvno$;s?Nv}1=Y8a<>>SM4NieB^RNg`Y$pA`AS(Dj%mtvMH%jSN#^Pk9g+??y3! z2V$FSV=El{r^aHkU%OJ;SPbS7a{Gi&VWjqbD?M96kw;JLKm6&>55Ioz-M_u}twD6l zdiE8c`amqEglsIGDaS-p6QuoR>@OS`1=8vO7fGo(f{;v+!NUY$ZKB`j+T3C6qq;!) z+@nOTz=N$woN$C5fHPZ>`GHC1C~#sMAq_4^+D$&X<8nYP{7zH;!+YVfWzzpb%>aI( zW-!qN%H+286fg-UJXvDGf$NA{6YeZ9^HZQs&?PM*czTPE`VZ)IvbyO9YI!2q*8h2nPORieySGg)N=S z`o@l@@fk9XAn&<0C&u{NH4jp~Y7J_!q?Y9etNx!ch6Tci>(6GfGflyD$QGLcjpkI| zYYqzcT)+&VF^~!5R{b!XBejbbP180G62g3q<&2U6EQzYEd{GReg-@JInSq$)D}*qL zSP#fb&enCiZPlh^$+#5MG-(#FE<#gEVYbpd3^%JLUD|D)7}mUL4fD^NDeRt_=rUr1 zdkaG8d${GMvJ?&VmZs)Xs=Cq8dU#VKY0hJ@ITm%fkp+6o;?C4V(g3mzb7QuPUXEpm zG;qASNwqF+CfV1qHkYSzZ!uKIs$y=q>Ze&p(6H5mR3PTLWm7O{n8qO%)OD*jX(MQkk_=x7(#(5svrKQA zw*|yN7?7b|f>m-CR2yzuMw-q?5QxU9eh_`+>#p4U znzZulFZ2uoYE$FZi4$b}!1~$)8nkfEtO*_nP@8^#W}V?N4uK}c5fFiBmOcfurwK|1 zhs57hkXYa>fO1WFk~py+oLT4yNkYC`mQ!VDIKdVg!pOZdDS!|%Wes8~ z@W=!rHcI$0zz>?U1VKCwe1z|2q6&yZlrflt0G2du_0-j036m14N)$BUhpvC(yEMjp zI_T*edbk9TpnoDJn1&^Ljb?_ii`!6{m{ll#=JUX{@J9^91dpoV*^-371}Bv(mqdT9 zqbET$7bqZ}Q86@2MgY|=g9vbttDp&F6c7f85-f|Xp^#qM$2|+oujS)^rY1?ZF%;^P z(xu84PIzWTkXLw_(25%gBS@e{j;0Qb>Jjr{&`x1Wb$9Bipih+{<~eF*d^PPTFA%f- z2(ayho&&l^=B1wXAwN?8kcJAupcoM0fJfcjdFZZiTxAo|^vvT{&FDj?*pmksO_zu~ zVs7Q0i2gLhk?~{CI(qn*N8s^~30lNx;xjZU6G-g%4dD(8=i}qfTE{K5g3el4_zhXn zSW6SSn$U`x+so4t)2Pdp0tmBAjYhI~M^nVV!n;lF3B`=W{jLU-ZadmgMY@{Fmmp&+ z`Mr@agN|u7R<2Bo%6#+Pqd^?89K+bOwU#amP-)cT+_ z*k(-V9vYE3SxNkma9*#@?0;t}eqQ`9RdC3?;n7;4UW8-*Qrn&x)MA%jz?&7|E=j+%?8y2HJrZNV@&)P`(O zA4h2-9&3|8!U%>~lEOHK*^;W22S@eOpoko4**5XBiuD=im`yVZRPxf5A;8S{m~v+| z0~?S%t0G86@aCwrsf z#{vwM&acQ81D!*?LK{sk2l2~9FrUPB$9o&!Cz9c~6mXD(Z9xD-VUtPEnv z3QA@TK4uLvhBmP#zCxyjBYFfw&r2Gc(2n{mX_)brI2hT^x&%yKTPe^uBa*>UMGVs- zMq=kHhOvqKUJLc2_H3rQ7r18RAo%QOVyefRx=46+N>1w07HsrX@jo`v+A^caz)5OIZl-8uS z&V|=%CAA96D)2Bfoz=!=VWe{D$%iU`)HW&x7ORcITFGCnB(Lg(P#@;1iS%yz%9Tb0 z-LK{sb@}=bR$cO~%T{R;)~KqDc`DOJJGYU|Nvc+cYD0SJJh&-ZSB>w4jYl2(XB|XZ zhmvYRJEaz?+xaepbKH}OT8D*vRMQ)}*(aTP>d!l^(Nm3a>Q6VV(Nm3RY9#o> zS*AV|lfpy|{1PRs(zq&+4wi;84c1q}@=k3z6bw$u?&P%q)YN>bj(Qd=7lB1af~A8{ zBFW4CYLQw|K5ar2(05&cRvwAEYLZBprTz?(d318qrohAg+)-cRNGZNLI~!6)8}LP~ zWYN&TNoZ1iNJMTAeWj=~f|7AHVSQ4$ftisGRJZLx=9xE8*k!xH8G2XS)D8MCn&=@x zA4aIt+WT`s?Pk8}wV;)TuR$%k1@@Cs=(x9)C|rGjo>Y}Qkg1=V@hfC!tDH|K;bUfd zhUK3I7dAX2rG~sN&r@4{s`(Rf#H|d^hAHX!a69e9PIp#{P^MfNG zdQKlEhui`4t@vz?9Dk)H|N0HY>%{o#W!BGS&OdOI#;uGqGqcs%@!yc z13xoX2=_p8=Gmv)W@ffP%a}MBiU&F&gJ{sj#tfxmhVn2&Ntnh4%|sc<>`nhrgvMK_ zMcULr8HZQA0Js(vYleBq6-zWr2>in*XubXZg|l{LEanU z-3_qYh;(lPbDs~!4F~K4aBJxH_MvSvuC0OE21MHkXJb&(3G+l*{wULA9mqDK*xe9z zH-23QhgX8vP26ZBJ)!5J9h9JRPsDj> z2PM|r$YTZq%_~u61-R%CGp*6mQq;1ISY75jdAwfn+5)PWV7Hnl)KQfZ*lj{lZJ08N zT6R<5i|AaUVgt}*ESIM5TTu@hj!Z+VA!@Zjl`EJDA6Ge5w=Q+8v>j9{e3`Hj2~8KX zunB6sE@W)Ri-*Ru23Xt@&uSB2n~M5-48@cPd(qIp7E6^LP&d*3=9bs)!e(3gEpXk^ zuJJ*({yi7Z_JG<=QCc0MT??PxGB~>_GTVS<$+K&iEd06^kR61^4uWC_;joR(iwQ%O zNm3UGtJX_X?J{h3A+R|FI{4c|dA$PfH%TCrQoPtu1&{OEc|0Bjys907sl&>URl?SI z(4DNMgk0%Y6>r^TdpL9tXW|9+B#5TRc#2v*?f!(ldg+otS~r1N>lkYjU|kzsJqKtN zezX!-t%9msMpO-OY86Y>fz&373i+iAnIO~}e%b_2JCM^3*t8B#c4MYZz&+7hs-*C+!O`j}Luw%aCffrLFY`b5>FK+R>yfyKK3ZT!48vX2^Uz zDL}#tFc0hFb3h7Wf7pU_)axBEMQ%@3val(Z6@PXR2|R-Bw-g zjz@_0XvvN>nGr9JNL(^qvz-!kvPw~Sq(FXhT_E2j?+yOH2HIRg$G<*v5CI5#qpCE0`)H|1UTwdT(}A!D!7amKN0yL^cwjnNH`Eyg@t zg$K+qOw5Sy!eaT%KV{xkcEici$SyCj7kwDno|`R}c43H^SaE^8HpZ#+)Zi=PiZF3f ze|c${@XU>D#2b{l$xoM2!tH8JVI|YlKJgPGrKv63^%G|ja111u@|toGINNm$CV@)` zZ$t6DycivXgTWyf{Dl5OCkc;*NAi$b!$8=}vGWwFl0RXhx5&$2Ids4_ykOy{?8}?5 zj3r;%m=rpZ8;5G6lk0S4;y`wC4)#+oO_#~xXoSnj!SXEiqVOP!=Oe~mr;b`Osn$GQDVzT{)jTmdWU|LRKJa-u6MY~IjJ$LaptIf7nZS$O z)MH<~#NL8UF6_cRivbAK1tPGU$yt~>r*;u$5jca0O#gbaz&X73KQs6>MUz*>Z~4>4 zGvPS8T1@R*Q_q1sP`vav%(9q5)IQFZsCWa?iNKS`0kWQG>W4GffC>z^DO4ocL@Vbn z5W~@#Bfas8h)S@T#f0N|4|_1>uATGa1$x zyUfEAhFH#ClHmmY3sa<1s^J`|jngXTIMFewW=^`>b1Bm0L4lU=Y;y4b-GWop literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXmonotas_example-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXmonotas_example-NIAC2006.doctree new file mode 100644 index 0000000000000000000000000000000000000000..bbd7979f56565d8a6b69043d66235e98b5479b10 GIT binary patch literal 53996 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 T$>`S|+H*E@3N(eMz0UstIt8R1 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NXtranslate.doctree b/build/.doctrees/html_static_pandoc/NXtranslate.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cfb9d82f23d85ada2f787d527d234599a1534403 GIT binary patch literal 15410 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree b/build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree new file mode 100644 index 0000000000000000000000000000000000000000..bb335f6f44688227dd5803cf42d6fa1139f75cc5 GIT binary patch literal 28954 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a8df5368937fa40c19eeeec17a2de723f166202c GIT binary patch literal 30894 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 z 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Objects_or_Interfaces.doctree b/build/.doctrees/html_static_pandoc/Objects_or_Interfaces.doctree new file mode 100644 index 0000000000000000000000000000000000000000..208196ef12ea87cdd8548aa5318a1019ccda5490 GIT binary patch literal 99904 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 Yi93E;a0bOlHUSIZ+ien!ytDoP0pH72XaE2J literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Proposal_NeXus_Coordinates.doctree b/build/.doctrees/html_static_pandoc/Proposal_NeXus_Coordinates.doctree new file mode 100644 index 0000000000000000000000000000000000000000..421a97bef5d425bb52c2709adc07aed96832cffa GIT binary patch literal 21045 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 Z51k+zkS-gMT3H*=A}rS{no`#9{vS1S6d?cr literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/ReflectDiscuss.doctree b/build/.doctrees/html_static_pandoc/ReflectDiscuss.doctree new file mode 100644 index 0000000000000000000000000000000000000000..16636a31d378cb3b93a715278681f00e7961ce2f GIT binary patch literal 212804 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/SAS.doctree b/build/.doctrees/html_static_pandoc/SAS.doctree new file mode 100644 index 0000000000000000000000000000000000000000..14a2630201bb05d7f55795e59f6105829446b070 GIT binary patch literal 49549 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 F{C^@GIs*Uz literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/TOFRaw.doctree b/build/.doctrees/html_static_pandoc/TOFRaw.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9ff280b271ec21ade461928f9d5653f54db34fde GIT binary patch literal 545342 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

EXuHS74PEUBCSO5Y0 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¿!kl4p)M*l!&OFw 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/TOFRawScan.doctree b/build/.doctrees/html_static_pandoc/TOFRawScan.doctree new file mode 100644 index 0000000000000000000000000000000000000000..baaf5fda7208ab886c5ba9cb3f727a13c9db2941 GIT binary patch literal 65089 zcmeHwZIj%_k)|lVPLn}VFW!~CvKO(|E{5W~nDp-1M@hTK6GdCg^=MCISlpGlEp!9j zz_1%=18B~SgL3%e{e_FTi?~l4aX;eXBKE`m5dVSu3->%(RY0NNrW=hJQrem5=>`f_ zS(#Z`S(#OdD)*x6y06Kf`$jejqxf*g^ZhvSgUofW_(^v>4B{M_Zo2L_?xwqudIwoD zPP+lhAxAfi27VgE?o&Lx&ir{a$aXYUK9su0U^BjUNmPg%ZN3E9QICFA%on)L#29+lrchaZ}5MS>FPsW+^(eB@V-EI?r`nwx@!{DwH z2Z!U#6jM2)%<+Tg!5|q0zT;(%7dug$2Wjl(Q4)ItC(FIq_fp^K964Dx0w1C*&opQ} zaz<&=PrczVNHZr5Mrn{SPuzEg-hPsrGQFtl^t^5~i1H}NP=|)_={QBzTh6^K^6)** z^3)sflA!mJG!LD703CHblyQ>O4^k&jbYTt9%LAvM2KY(APk>7Wc^1gS0Fb=FQ3gT* zQWtz4Wn)zHJC!f#fivSgP2w%*a69#mRPDoY5<9+^dpp9iuYZ{g1I=0I>t96qFUK8% z`#kM?ag-@gABA~7%I@y&_MBxvh_F z=uNAo|5mm1{D!Qy;(ATEPW#ntyc#XHVzWu#*$g+_ONxn>!gX5}-Kcum22^>_3!u8G z%C&kAFNW_)AKY*+JPr=2_uY%aY+lI#aB1YBOzwt`yU{Mjhw!|6Ne>Hq?u7v~zPmT> zcy7zf^EB#=a||aOKF&vehM~f}+#PsXhD2Onq=uHOEB<&?-gLa~GoUC>E-<;o=+cHOaiIrsYVJp563GyDPS4YyHQxGTV^_+2l&4bAdXJK=AT@Uy4xIQ%$#7scKQ zZ-tk_t%t9TJ7D4lsPv%QM zx`7_@3)3gu&Z&(Se_qsi&8|~RpL>BuipA^Ba=do6YEi|*55teB5vWN11$4geo^vdi z|6;=oON4%IjG|RXNrU{`+NiS2TlGG->zyw*h87L2VxPI;hwhISn`oj7OUhej1h){G z$AEX{n{)5G7ii>JK-|@+QN@A&Mqw=4m{uitQee@I!e2w&Zz#d7W_GU|aaVrFYzN$@jZTsX&kIonRut}Fe^sYlF+j*1^ z6s)}`gz)8~Pn>OfD5E5Ue}ln1h%@*#8GHywXW=DsJcsk;c#e#01pPP~2HT(awjT_l zewaH@9L|0C0?vbI5IEE!&I2*&r!fC4h9}{VyY!z7jvScp(y=O^NF5>FFYR8!59`5X z$R@C)2lI6Xe+t#6V}YoA3Fjllqr!0@A$|at?Et<9{4Nh<(#ren(PxhwI7Lz7JNeNl zV9miH6X?}uABvNd0Yf^Y&*{98K~T5I9>O+qywPZIt%u*9B*27KE2DYRSQhF1lfKdjMmwOdrp1;QA@Hc>Yy=)ATseY(x2r?DjxHAkVhj( zaJBAin(dF#j?V474p4cKnpHW;QnQ0K-d#KmQPaFh3n;^R@-S5XcsP(`*BKhdX zkl@}CT0R2itUm+3g9Kd4lfFn6sY4meRlxT5Is+PWru=Wmn0$e7S#Xrhc0(`jlh;0s z?zpcRE0RpA*y+&NPUt;nCSU^JpKgLf#G^bIa@Iq*K%4~cd*}rHzU~|7)z0Sao6 zmCk2M5D@E9`XCsnUL>_!Eg!``=3>xK3&PdI&D&efoh`!n=@zQ|*PCcS2)4qVG-W|f zrmz?=f+lOn;~}g$(giG;-iu(CNg2WsxLe>{A#(jO#0ryBX!$r1Xpp1cAc7JR+P(P5 zNdSnGPEdXX0-mBO3Mnh#rK*(}jpGQ4$syl8ryoJ{2_v0N_TGfTFKAe75@Dt;zo~lU zt!@6PZ@HYfE1#Gv^Q&^-Vg)apFFxh>9$QWSy>RXsml02-vrEojOQXJU?u+IdiB5e% zAh$l|pZb=|iM#TNxiY^hx5nfrySGu_BXI9Gzk$q2o&WYf@uU8Lwn;S1&5vqBam2 zO(}%yV1nKPJ*%;<%M-1}qQKv&&y&ZrQ`GQT9|&kMeXu?d-Fu-h)@b5V*Q^0VT36{l zMULv)6CK=Wg^FS@dCYG`8R#yk+nql}UsE?Tx*!SCs8m_2Ibby$6Jg1oDV(Li2eBk##@$+2>RAl1lu zlEZj1%_&rusOu|eH`;Jwh)e(}^5Wt+AT-Nlh-Kco?Gx<;J7zGh4Ft?E#%6s?l%vjbtPqh1xF?J6PPIE)c3J68{L^vmhDp>7vb# zAU=Vyu8niLc&XR}ZObduhf(+_unNEcLpbJxp6AN3UJC=S36PN%LH}uQ{riwar z8EKmh!6i-vh+hLBaC(I^@D%x2EpltuSa}TM)MBEAlL=5>@RfllugKwo!Yxc5XnTup zlP2)v+w@h45ZTf5GOQ=%EOcaeExsYW7gOSncsI=Iq;L2;8k&! z2Izo?6BW=;^Mg?k`x%<2NA%Jx5RXqLc0i9>oM+=4C1b<_crt;cy;GPL+o%Lw(zWEl z02%~2iHvgA@z9WCYLAR-NH?BsE?@x+mY{?M49u*UF%5~uBw?j=6-*{QsLyi{?qNJr zVnX=jrw(h78MFdb;Hf49s*(pWKz{%O55i<>_6B5w2y$c}(GAWB(+dz9wzqQI0T5oT zp9~2B%;(Hj606B0Mf{MC?a)hEuB3zn6cXbc$mEvH8puQivQiKt(;+c1Y43ZIKqMa| z=`)9u7pfUhyOvfCuWFjiOz87V5i^&eK=ScSoloe?Mm3qDgEiRESWjR7Y1BMy@Ssea5cgX|>4pAJ3dTP*~lQdB{_T=83?Xu9eDYR`(WUBa|57_bVQq2fU zFyRaBCv%Y52q8KWze7<&)iPCCOskR{U`_(~TxnUQ0?l9#HGzq2#QAUN2n=>cZ&FvtZEMaqeMK^Uxb&o>li6G$y8rW9g#@ zm|$XyVtSm|s5xkKfg^O%5oSaL52!yir5Ow**a%|_XPQta=_q?B$20%7fg zAjhEkh_m--Aqz21w1cZTbdA+Oq9BF=^;47yCY(H`sj=lCIs$W^g0C;F2it&SEZFBm zAF+)QlE{}(jTuo&U1<%|EKWKFFyK@8;6{mNRyy!8 zrj!Q*iA$5A5j#GrX|h>FLzFyv znExEz2n%wux}n|05EIG{M@pOLS>VYWdFg|p2`NjWcSH=Kpwuk?w!7NvD*d zv8)=V37k4y3Kr+;0!0bPr4Vgg5fF)_ zD^kK>y)-;!s$G;ZQ2Zy@MZygAL`~SM@zNV`?1geb)1w%LpCXJOh$=cBz-i!E#)_1Q zIT|EbX2C#CcUg8EK8ux4O{K}Gt6;oBMs zX2G-{`din-NR0&&s0kkf5VSScM_|3miVPZ6+XNO64T6KqAn|0ahE_6_2Ew4A@D&jD zYG}V0Gy7;G8LG+C#4x#tC)M01LNM24p$PoZd>hiP>WZ#G4I_B+JDLx+FbE%j1H_SD zg(y{|vFDp{QkMpQ=z%z4a-iv;FmPOCU?>I~=o@VdgMSdELDDan&_L$NJZCWtTzmHtfd8=a-pnCfDxLM4z`{e~XEsx;hQ$OT z6aR%9q8S}@NTra3AgxwNg*dh#m_wQ#a=gPR+x0}7szGe;iPU1Zkg)-jAI6}?9dX%3 z!&26jacZC&Y}!I1kkMq7P9)nNfe(mbkZiMh@A6efhOvX z2cA;1s^uY-qDiP*U}yDVQ4m-UYs|?3af}1$%SPOY0~CpbV+6h$UpU!Tosw7gcG|2w z$VJR#n!YkukHi_Nv-9b>Ag;<)SLW2coi-~Eaw#0Ren$z!`kkqcWZLAtS-N5M)vy?4WicIpCUE;ur!tw|jpe{=l}TAunJ_j#kKnpU zFbe}J;0*B{3pl1)EfR{hAk-9_S}DF$=uvtaG6F!V9JSCZ-{p0Ar5>w$JC&7if!bc4 zE*GcG(lj#3pIV@{mZw>K&DyylW?4CA<(c(iE$qQRe17loS1}t?teYvHRfco(D57o) zlK+?(d@8zF6rjioQP#l=%vrrrkW@NGn6|X%1dU%sTT0v}(oMa9NidBymRb?M_q%8a z9~pmDjEg=n^}r_5rYrOYuMl1L;Zh-r8=|#hhqV>xXWGP~jY}qL zWR2w|$*sp+6j(6|mUDA3`D%y2){lR+$y(DQzURh^?b8TQp|{Fz1KuAt4zEqGe|IDOr%V&(ec*{4muci zK_n}U!L`Cz8;M~R*J7;zRv47)M6cQrz9Oq8bai@=nrBrSJJS4WOS3g?LUJrD{et6z zR;SIrdB&bG`^>L04Q~O5^}|)w_-&8k6JvTY?3+B3v8r_-6afshAV3HI41Bq%+?7wv z)nt@v9SE>t^juY49H0`g#-s7AMMX6@wGI_xJE&Q&nw;b^6|^_|SxpG#Ok`aMGF2tP z?{y(qa~YtbiT=HQ9I9zgH5;WTTC}|I$4GN|H5r6zAXtU0Qf0aFN=<&15vX+_RKri} zK&Zx^)`3tBJbhX1xmQdPg2P1*SM6CR-n0%U%BeaVhgBq^8fjVw2QE73cbY6dtb&6w zi(RCw4jg_`ec<5y4B;yZOj19G>JL(38>h<&W zqC(NlRu2iqLPyOovS=dD@1buSgni282Zn$Ryv7QYCdNvT{X-87Z zE95JNcv9!D7vH&la3_}ZWe8j&vU8oV&IK`@kDCeTTo5R^d^D#4vO*}QDRO&8kSL-% zmXG7aLIDh++CiL#!%IhSB4n+J@J)<<#kz=ju}7-@5XaK~SOV~{%+CnF_ z8VIIbB9d~Q*ur&UDA%cXh3Lt3s+nl2B0dr#s(sY>ut;pJ88Nv`xFlt&s$o=$mM!%o z-*eN^)7fhF)=ab4xS3~Opd|ZFwa2RzNv>#uYPuaIskG9hZbEa(-%{zKwTQ=>@sWm{ zb%G?`hzR@rZ18-06^W;8|FK z-)6)UARB8MhrHmBDIS!w!6$8o^IMPI?P5D@9iqE%J8i|=!X)1Ji8v3jdVf_wCGovl z#Q!Y3x!*y_$-@dJM(+Ku3H|2&Q^~sT;m2^sJy`D*iXzC4Z{)7>{=@_m-RCa{57SRx zR`sO>e8VR3%`(?su=S6H&ps?j^i~-HE!mVADj0Zg>gj zJ&k+3bkFV3Xx;ycNGs>3=nry&+u7SO5{Xvs@cyd49iuzIS)t3mj9%_0gKQK)IZTYPm6N6HVF;&&CWC{>&qMd& zMXC-#{HFZiWE9?+F-cXk6r@&TkghfcX`?Ynmm7mL%_lVQMW`sxpKihp_k5ZhOr_I& zx+pubO+B)X27CRBPtBOhOa93`<^DMw0K5A5b|2##W#c#t=U8bfh9{g%g;&80j_Rhw z^4;24@_^e0vD_$LE;OiGDJ8zUwej6*7T*i>3k|C3ro{3=Z7e@&7R!sWY-P~YcO{-r zYvcLP&Ek30+ET_~TS+T%&THfR+f{L%Z#PaUs>Rl5rMHSE>LmUVXsQkYn=^)mS!tH~ zIge#B!!Wrn8Rgbu)B`G@6&NL1XW(t&xbaB6QWp6JQ%QM^N6-*mtuS9QzUDO58P2zm zSMX&qv6s~O9fneK`&}b5zbD56wLVn``?Sm}&scLSj-6^1?;vAs4zJ|2toMP{t{@U< z-zs0xZJDY2i+jC)LkjBqn@Gmz8~ktL=w@2$xP*GC zq~oUbsHOCbcrnbQa=u?YgT^t>RAKe4K;PWooJLtm>TQMVNwZRGEf8<< zuuPoAyk9lKyuberFmH#dOXRGj_7ue?8EEJ%;yALQ9#p)Rppm~PJ#YZvN;5_NHBHQt8Sg62Lp}me^i7>Cq(o*MHyetz7 z4&vgBiSq{LFZRqn6D?7T+?p5m9p2icT5MVSH?;W5fjM2a*i)fZ?2RB+Aq#=uR)d^O z1+RGHemm9cg$vVmB^bSeg6TrJo&%IqRjt<_bz9aR7FF?6520Jt(P6gS;M(YgKWl{Y zcTbk`Q&X&nm}>J#x+*8FRGW*2g&#J;!k>RfSa=t2@eW~HYJKUq^tLChJZf1d*)jA_ z_7Slh=_=RP12n6lzG|eQo~+wYYpBSTio#}97N1PqFIN<7yTC;y{64(I=|o&8?^j*a zQEwrNBBpA>HGaZClLu!zx4>-RfqxC`+yXWm>*I{M@OI176q{i#_*;C8?nlDfN@ajm zV8EHtMUaY4e6}A?vD;1SY(E}zP$PU2&gh)_ems!LLd%@Vr#iayOg^U%5`BsC39&3b zO)BbauA+VdTjp$=Dm8o3^fpzt!a3tJ%*E`)_+0cFTr}BneqVH)?^h?!QO~Bl$*{!6 zW0oAOSPa>V&$48pfGck}9KXLAvU>L7prgj9Z67?>Ri=LJ5G)P=-%EpdwAoBB^$pEh8*=C3ONb9rB4&@l@6WQ$0>OoJ= zgbs60<{b4ip*vBbvsJPga$diVWps-PqICF=wriVT+xY)C#jY z-Hk>&9es$ao$+80cv`>OQ`|vF|EB1ET**9*aVhAB=FwL9bkc? zHlHV!#uVGX%KJNaOyG0cVxvPyM#HBgJM5<8VvQoL1v6X)7H zI4_dlf6v^|n)%xo!JV_gr)BFP8#Q zLLkSNE`z+q$JoFxzpx-Oq+8&&GHDn zMh^P$&||ux7f0EUdqi?a{Vw*qvfR5g;&vXHvl(DNrT`sIqFm|vot>HxjDpz5P^Jt} z8kJN<;4GOfIh#Yy+1AIZhx0j9Qx!;?6z8GhjpCFVI4{@7T=BQ z`Psp(s=in9m=LQUzS>w8ZH9{zYPN;1CN6w<%nPy0ywd}+iv6l^{qX$c8wp}SFT`T0 zw|yt;dE=DoIW2l*S1k}(yvcDwd^;_A-dw$X779rNqFTY|y-S=bURdQ)a(M<+^AI6D zC&<&~9EnO}d|z6a+bf}49sinWNd~ePoe!SH>@}=~l5>o(POl}Mo7iSR?tw?~F+;~b zh+6M8dw@h!_3JXnU!vbk(wZ+_G69(Cb!5d~|975Wx<2ex=t5RD5%H!d5Z{P!nG z`O30ZkDVK8t0;J4RaREgPnM0UK~|Y-K?yauEkpAuG4g(~!GM!T!ys#^qt#mWA-Py+ zX;n@>D|aAJo3&Kipec~Ac=Odz$lmHb59(Kiii$#Bu1+v+{`;{4XZ0~b`$yBE@mI{@ zb5$X*lj}4j%3O&L)hSB2o{U|uKC1>Ahsy+~`=@a%UX>-MRb?G^FNoVNwx=OAI&OF2 z*uU`MF^0i1S`TBW}SxePDIjLG?Lts>`#)*@vrRqAKR4uY~^NG{4a=WY} zp3`<6HZBHrPDh5I#++8?) zPVS$BLRWEq(uhYbjnfHTGx21WIJT}dGh|){oLcH;IjWbjS}TIO9N6ix_zg^ZJotyt z?>+u1=A6+}z_B#ijHk1h`awfXb-$HNt=(2N^pR=im25TT@hgqAT%D+9j=z7crb3+S z?YH)xn4`+8vR8dDOYEYBVuuo~@)&g7O?v#3Piy%69$p3@_Bo@=;yzQ$cAGf!r|MSNQ*B*#okO^?JY`29+H8uFXg7;~5CD${ftSKl%-OcLlSK9>K` zjP7A;oi?o%U*96Ql3tLE3q$p58_k%hFM(#`@LS}Xq*;{yX+xC012}aJ@>+6Sc>5Ni zMcOP%cN(Jf)@f6E?S6p8<}@1RQ8KaF_vE8lbbs0q-T!%Ax|g$kC*7(hbjI8{fW@Q4 z;-{0Y@&16z`DGBm+<=F;p$2(Yw?RTFxN!KKBo2ag?H`lYz)Ra=Xye`@b@I_HF+^HJ zbSp@;l+7}fFJoO+gmf98)8p`4#`ACCHTqf3|LhEBtW{%laRSQf!BDEbYG|Y2_T4BC}T_Z(^TD>$G@@!7L?hg7a9?Z)!iwj6=hz|-< zEzP-%EYuXR+Ujkkf<Ooed@ji`+_U%P)5P0}`ANcRT;8w4M2(d2VS!1F zxIad(Ml1R{?e!p558qCMZj$d(aC~dbcjdcC461? z#(9E6cFJTVz8>jb(DKK_QQPV<1ae&xu{%bP#-1F9#MCz=Rr)7I&(yDyM_DlTllI}z zNcWB4aFk?0dlHIBYBz5`kFX(V(SzP-VYHCVWjco?lJ90| zflZyE3H+Sn%fl=9`XPGDuwAH}g2;9@Dx?$HZe&Ms?j5$ns2>jSulv`9L9uK0wQPu! z#@oLgLvxji^=(O2iS0qs^(xKuL+m91j3H`DgP_Hv5di7gnEF(Gu7e8E!G+#a=`Ey3 zaSxJbtHZabB(rg6W{GIXPR6}q3LSGnD{4|13_F1jRdob3!ywR9;>q{ADD$ix47~_5 z2foj7%p&tm*2yt03kE%-`4y7qgZMeF_QoB2Us1|cbQR_I248bW_s-k7m-Yiu-dcp; z1PKuL9K#pj`azFO{RaQ|yj6J?dw9jBe26-F6G@k-6nrbsWo9T-Hp5TC|3s0n|M&kC z@#6dM@aymS^$UI>4|Z9%elXw6JN`U}t+Sue;6cI$Yv3^grdHI!3jXhZWgP;Wzl6+R z`~$AO0x(_?9)8E+F3H{mhCi_J6F7oit3dDL<8UN;`wSW(j@aH@kF?;A!ISCT2wjP6 zpGc=RHD#FJG?krh%IIh4IKxgdD0-Mx?45~66D2oh)U;tRv%tJnsT~7yO0gA{_Pxm( zil=033*!QgETN{y9X?kPtT0f5O!)X*{=|Ncgl|+jzIjq4KG#QH3JnMe%+RxJw2HxE k#>1<{!=fu(jpFWL?6Y%nuz#w+w|tI$h03Q*I_~WJf8$r-b^rhX literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Thumbnails_for_Nexus_files.doctree b/build/.doctrees/html_static_pandoc/Thumbnails_for_Nexus_files.doctree new file mode 100644 index 0000000000000000000000000000000000000000..57f43d0df3eb2d756985671c1e6d17565f972034 GIT binary patch literal 13018 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Time-of-Flight_Neutron_Powder_Diffraction.doctree b/build/.doctrees/html_static_pandoc/Time-of-Flight_Neutron_Powder_Diffraction.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2dbd3012c3c900e5027da31cead87c62d079496b GIT binary patch literal 10852 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 Ai~s-t literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/Utilities.doctree b/build/.doctrees/html_static_pandoc/Utilities.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3b7d3f174fe19964388914e77eead5a78446209f GIT binary patch literal 42100 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/XESraw.doctree b/build/.doctrees/html_static_pandoc/XESraw.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a32b96a59f6923785e49db67252ffe03b48f46b6 GIT binary patch literal 23113 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 lVWd!eEiL8-ykRR2 literal 0 HcmV?d00001 diff --git a/build/.doctrees/html_static_pandoc/index.doctree b/build/.doctrees/html_static_pandoc/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..02816750ffd53d445108727ba0366beb8cf28864 GIT binary patch literal 25144 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/index.doctree b/build/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9b1cbad998e9ad7e769619100218a0c0ff40f4aa GIT binary patch literal 28826 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 QGH(f1zI=UoFR#`WXs_d3~+QR}#Q~?qR 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 JS;?fm_J6xDA8`Nx literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2006LBL_attendees.doctree b/build/.doctrees/niac/NIAC2006LBL_attendees.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c27eb82fe6f39823cabf69a24e89cd81c6e7ea89 GIT binary patch literal 36255 zcmeHQ>vG)2m6k1$6d@HwS(o)XzMyQykStzg%XYl7oS2quOCm)pqU>^IR~cdkO#&na zn8igDwd4HGW9;93hfQr&wrU??Ut?ckztb0>0nBg)Ge}IOG6l|neK~#l+`4hlr`wvb zzV4skAM0G)bG_jCitRW-=&;zbPCH>I?Xn=TEbE$O{bXIW<|F$c4%4W^Eb9bHbX?DO zA{JOrk-0$S6VH!VB!Kx&7$mkAuqcDz&ir`k)e|RHR?IB#)-5yk9M-m@W ze%NDuD6kVR3~b+w6FYG1$T8c8X58^W2QN-y2^v{uFA8@fyW3?^Y(}gX zv6#vPyJpwk3nNu$$Lp9ocE|I*#A7kqkPyC3BQ(8auEm~>?=(&#+oxLsy%|P{Ypwyb z*RfH@3?qj{W)jNE5}=(hb2no6i9k<)i#YOBA#oWX+5TaSjsm2t_{@t_H1k4~3wJ=7 zG>O7s$$Y*X*@vR_ZW;!rV<+|sC)xJBu*)Q6&Fyc!b86j#A z6zi3tf|82?&{ho-kKFe)C{g=6l|l=vU!+tw!>h$$&^d;?#{SxavhwvPCa4I$?jV- zoY-{72Y}h0jXH_tn$~lO*!mX@cQ|hL4k;6Jw~b z<~qI|$4JEe3|VM?ciKsN`9E#Dvkw$`&M8XHahXMW8hMuW%Bq!GbBVpn^WC@IYwjCp z*IhIt79;a5+s)cwMJ9n~(n*WFonY5hdn1`+4cOB=Sm=c3!0 zJ-PrX{k!N@#t0!$SAP6Ec?J%lN_8M)_uLQMlkW9RcZswklTsy|t|pV;xYw;GtKA@3 z?X0FTW*Dn&7VSoIbX{#ncF=KIyn5j6do3|@TNN6(8hCbRl?K+2Zru2EmHGFG`3?snB;d8kw)+rK14Tx2*H=;VwpU-BB zI;KSlE(v;DTeTq(lG)mtXPUQWEkAKU__;5R-6d=u8e+`v9^1Su=jthSb(C5#e^lg~D$mC#+s)e_BfVY+A2~u+(CAsg}ZboQ@(uB&p{E&GG z?85T>0Mnr)O^&8_gT32+#Nfo#KT4RKXL!beZ}yQJCS2=e#&Fa0KnKI`1&_o~04Hm- z8wSA`(!{zR=&VLxU?|D4$u$?g;p}sy5cEyfdca|o#WJ7VC`d;FYLMQK?9?~cp;a$@ zNp?xrL4BK0nv@VRnhf&Kk-ekL@<&wIk}i1e!RAFK1XMHu1nEdX4bpr2QS^d!nPx91 zr}w%a#^FJ{?`6~yy{Jv^OtJ-Tt#wI`+VoZkmF4?qr1wKR(umDD&Bd4t{uZ1jQG^kP zJ|pePddOfdI=ry>D$+a8I8vJW=00AZ$f-P`m(e>1pzcNh5(w?HGQCyx{P##eP0II% zosvgbZ<*8kaf-*l2ycHJl_lvtbTY8Pq7+`?j8q#^D%W~FpNSzrf;zHueRIVZkjhlj ztnQM4Gy;&qJpUCH*m6EG83Rz0K)rBrPFdoiuc3LI$n3;ohiA7Zmpu~ zP;$sT4LZM-v$)lRgM$?>iB~$dp8$!KNdYk@UHwD1+rblb5YsEc$pAG;@5i<_!=_G4 zvfjtL;sC<>DD`7ZQu2(Ueu3{|I5hHE#baA`Zd1I0l@F{Wm_ykh9(N8~0#sSN)$}GG z$wvSptcxE}LDLhNeI%eJ$xX9CVV$#YD8 zA3mKdPi82Wo>oIh_oE1pIe9AXB;SV2y`Mxjt>OS5mdp=7`{)MB3qUOAo5b#DDt#Y# z&+wwfOAgJoXKaNU7JynDC05~E0ZIPPk$h`VO&)krXl|u1(rhXysrq2~ksaw17G-3KzR{HT zx^Fh&y6&4z_^tb96He<|p6OwpY@%-??rOYDXuwz9H=A%&XSht|rEW@o8}d(+`7M8h zNv`FbZmL(?jku-zW)nW?W*pMP30%h;-57lv@k95`CY;cHvk4FMaQfD9KQ~3+h8)ks zJ5|T)+*GF;@;CR*2W3km=c#p^&2SJm;Aw8g&D<1$8*(rYmzp}>&f!q%xH^YJspIEt ziogwdl>25A?&N;{Y&?Z88FL!x*)BgD|11P<#)S+5H{d^R#(CT~oA4YrCc%yPjQeI2 z4&!FL#ltN`9anK<^lipT+&7!>5cka{+`|~-8t@G_M&L%g!hN#|mvG-~!XG?bfa^FF z8>4R{ZeZnc)hBAy&%Rm52Mp7hI}#^$04rRk^Zp()E;Zux1!WrW_`*KqT$? zcq}7d*DRJ_4==8TQc!r0rG@w8eRy}Y|5$ZsoT8(9_b&DBXdkrbDvwnfuk;Z;%_B9s ze^tk}6qYO2`AW0HLIJdZimT%;9ap?LUs-BCtd-H>69Zr&`e0ELcK(Et1tC~GP~>A; z#a`F_KMcuYoWii6hIdG+d9d0{Vq+mXpefx%AR7hJA{H>&jl#57$)Y&HxlZWEJ=UpY z7J`EG))DO;`UjqqxYqgw1j_8qA|B4Yws#UgX?t%DKP3!Q7+yKRNr!Z@F-R{5P9XgZ z7RK04mGJY{$tXOiq!YJhXnFQwB}X$tbutsiBm#xEE1Oq5b<6eNwCp< z7^b*231H-FVN}2Mq`bSWNpW* z_8UU-+TQJ&t=$sUgq3vX(bi1T4xK~Xi0hj85m?M{j} zP5JuLkgp$&$_qr5lfMi^HCO`rey0d;4{6jRk$DCGEsB?;3Wnh$O}|9PuBnP8sYb~W zEJFz%rzv2{*0NWr)SCM_zLYtU!8?T@9AuN&AihyzA;S8QJfdw~*f4FaUt8%Kn&NUJ z%nkm-B?yyod~89KCTJXxRbjYTh_Eum+X{fv7&@$oz*>Ay%hbO;!fKYSNX}x$AR?Z{ zjyPp&k8(9-a~@D?$aPsVYa2pfC`7t3Lv_Bg4xmWMf%$_7x->OGm!a&}CL`$kyjp{b zJ{n+E&0jA^_8D>sM3JIL6&pm@jYbH2|D_@9xN`$(k_D%ZfhJv*Yfp^g+7Y7?m6(ge zfN`FfosaWp#Bvr6QkMs|;y8r?6+hXvrE#Z@9hjq87?CsWx& z!wo3P?+on}qhPDRFsH~&{;UslO8z~K%PWT3B4-mSM;)~A& z+Jqk&sYPj|D2uxZk*4euZtID9W}!ZrMp0C=4O*#jKvwP4r+IL=QHt(1ib2|jzSa$m zX^J&D5WvYUrG%GHPCM-;)?5IT$)?>+4&=G6$zauW>mwCBHX8q5box5ggXYd zYq7jSvPi^1*@MXW!_?%w1v%WBjGT{nwFb?@XnIfl*lrYg9H*$mLc)!b0By0{Pm6pq_AL6M`?qgrHt+_0S?ZjrVm&xR7hg(l{Wi zI)8JmxWR{XMP|En7%D6hFILq~U_{=W#}h&TknEaP6!Zt0mysW#v>cq3naT_kb+%7d8j zej`kH@1GlgJqEh=sR}tTvXB8I3yD|D{*B5K{#<0r!}afo@wp*CFZamF!Ryk3 zd!@DiGLgUlfHq#M#`5q7!jm4~-%^9N>QbRcD4>S!AL~h6HgJCnlkt7Mx@y>d%&RqM zGDZVDmL`LEIj!X;HV8Nq*zVDEtEuIGA%MrgY<##)fi#AUf-x$aAQ_dI6mUhFg|fwv ze9vvhxe{y?&@W{%WW6aD9q`7oaGrezsN7<_AuWd3)Tz)N6jA0v;7~)>GJ~-(jijn( z8#Ef@fUKI0%Z07C3^m;VFl`JNUI^u~Yg)GI^YxdJxHWBy;@2@S220yA=*y@?Z5fsQ zx^mGd+kwk7g_*;-63|Rg#ElY{*QwUDHb4cfN&E>%{mtY?p%=(i>VFZ9Pon(4h4P=T zS69sz7I?J=6@N6qs@i{$?*M10E!?zcd2`9gV&jOGxoNLgQE*y(D}H}D5x;fgK*ayz zB_@9Ez}E<=N|BF7C5F+c#3SZHTsB(BA=>5=epYWo z=LPPS49iMWS}op^isJ-GZnCb34gV^ADs%~jl?4;1Ok%@+fExWYnMAzc)f%*6qXAZJ z*qq!}ktmn5PfJBcc1_DU-Tn~aYLi`=|It0IIgj`Y0Xzokesvq6yhbGs*QmtQ<`OVc zyRrI4fy`t>+)OJWfTDRas2v$XOxV$6=l4O6Xb#yHfhX*I?HS!Gah z@svjJVn#+i+$aKm&KaF^x!RBi-&vJP zN59Lo(=kiv*jH)<*LgZDKJol`Wd~;{(t*?>ef9_2Pnj%)Bz?C5{5u<_NiQV=Q9CpI zOk4TS{4T?Zb#y|kN^oo(G@oFPb(wHRAlU*|`!dOpNohoVC74DMc3O1UJe49m_+$sa zukD0k5`GGD9DPwjpL70y|WSPg;CP-8IHH0CSJvt;o^jyJZT0==h<@)>`3e+jf*)m z4r`~oC_-&49N19+cA#X$Y{HpR=fUR=qyFI^aV>ZO2;Rc6i=l(^B5^)Vc9uU|jy?JR zo5eyc9I6#YEf;}2IC@D`nWav3h;z8k2{x9X&Ty!r#9O5j6_Df(hc(6bf@rOXp$_ZK zVu1=Mz*wX{LmgrlWcEP=fra7Q!EOqj1{WQf_9~y8BmY9gIyla%<**)|ryk&JO2w>M zDDn;`4yUT;K*iXO_Z+p{S$r+nX%e>dWF)@oNgXhpwA*WG`obB;6FsO(6xiI9QR+FK z%C(b3Pqi9InJ`*ntz<+`-yN&!ak$s>gay2?n zMg)=^>_Sm|uj`QvJzTW#z0hO576{AuS<$NVXDPL9qn|>nQSfzj+Bve~mEK|E!b22B zyQ|2Ryf3J#be11 zZx_~Y)lIs-L|`6!cEJ*0FD+oRei~nIL0h`5%;aR9Y{k7yI#FyfJ`583dCSH5$UdEs zj5J)Q{7|Xt*|>|7m0SOs!g3LX#C3tEio}*5;-D^_O>cEv8yG{>garY|I1>PAKP77_ zt_AdhTj0#@iF5<$Ua$kn)6L;)WF+IXJ+Ow?B_;DioQA6qKPAmHU@o$5n>jF5hd|TC z@!=T?mpZ7k-(p?c^INuqV}GT|6eZ46nmJ!isX0E z3mgyXowO1=+GX5$KNa=PqYL6pRD$cU9U|&aBJZ_AUSM}QQDr9D*eNB=l2LFp0CQ9z zPr2&eala&y(En2WKTqY7!(Ij-C8^l|{L%g2Kc?;~HF*_P-_R@4JykYzsnQxZIvymI zdIhxfbTU?|4y7wf=;^AC%!6EZ+o7KcuvYD2DXUa-en3m}3NsDNYlYS^-bEx8++tiR zw~*!XxeUy1CrrtZq5`fnm>T**P6$4(xjTA35`Gft_u%h}74}6J@7j>%Tak;CGN{v$YfI}mvTWE+5I1O(R;iK(O<A&LV1(MRY5N&@<=kqt~2(6ZLnJ6Jx}8-@i}8Bz~PG^Y$ZHm zPf)l<{4xmBEhC`j$C31ch$n>vvHbYTsS_u*ww$8u{(UD6TD<8co2d-^gQI%gahwqx zUNg?5V$eKE)=UB)BA)K?$64w;Y`p)}bxDB!yB~R7e&31sVV36AG-r@HE&hy$agVng zFLk`g2_ngp$df@Fd7+a^FKT&7%V{1tsUN@&K`K)t8bwYoi93nc?eZjb65dOAN<2}= z>3aKdlGkYmzSH*nAPi){Q?y|u{3=V(^iAhc8hAKosZ6|(Zb|fBoJiq3g6P2aP{)ar z7Ec@*o61I@C%Mx}I4%k732}*1o+?PeA;}AmQgjp|O~q$HnxUCLYreP*%VaW%qnpm* zX5t;`*1K68IW13mTgqflKaRWHSk`&^Q6N9gnk4Siq~k?Fszp5%QufmOjYcPsB5Q8> zakrtY-j0*5Cv&g-`ybBjTer8Jr+dG7^r7>R&RaruLn>!t^$8Pab*Ldw*vXNB(hmc~ z$=Dbe3V?;Zzo6^q_xpTKpV{M;?w;A#6CJ%_dHQ|r>CuiXdvP%rF54A@!4M1^jO`KG6|ZQL^`4LaXM(FNEK|=54|)65%=tG(G6{J z3eATOg6w1Q3vpW9*b_HtbQDpV2dA)N^4H=9`+cJu$%fy^Qp_+KO`dcTlU*Cl#EX2v z)5i1QAaM1}t)WL?BMLmfL5cPDty?>v{PGjGCt?|=TS66yG;{!Y>B2PmX({+S(zD7(bdHR@sO~9Aml6b z^BOzpSTet|Ws1H+_wwn`tobol{*swa+4Zej+neJMp|iR#>4~m=J?5(LcxB| z>v`_B6d7fJ%cCc9*Vqz8p(TXP)*D?N>eq^CqOEB;f(HW@14w*{a9`JfTV`f!dARE* zj_PGNq;ASUhQqQyQyAd1lep_pJD7#v+HpMT03gb(Xvv$zxk*s6Nt~OW+(fhERNnmT z^WSc7?e{umaU`NpI@#YQ2I6>cj=#JT)qm@csvjg8T~LiXL6^*m!kt^UdWTOoEQ1!> zIp2Q$w-GgUwQs-v`}KttBmwr5$$%zzCfe!F%d^v+Np@1&RoThZ{O;_uGto{vFV9Xp zlkB9ltFn`+`Q6#+?nFD?eR+1eJIPK;yDB@Gn#X4+omH(Bge8T%6A*SRyxyne-z&g$G?Fe1qYLR(A7hmQK&!2y(Q~2Jhpm$1X0=sj z0L_K;8fTRPE~~Agv2vl-hpm#MWVKahfXIdP8fTRP9ILIOk#V8chpm!hVzpIf0K`S~ zQfRm#UM(JLDj9$mIPQA|zqo>Ui3?!l#!H*{{W6dzGM zM&BA+mR>U~EfB7l1;Q2CN#d*rt@7}~`We>mX$^AKkHfUb{h`9rnuGnshBrxZ_&jJy z!FIRlIh;{2;5mFi`cwi|Z2{DWX52a&(uEW~oy5;83zo6QnGDylmOow{9`xIKB9yyv z34Y0p>{T^+U_qU?Nr00n)+1D8wU(MZ}q+x9+CdDtj(#Vg=;V^y}6ju z3lFq)D!kCQL`_+O9zpXcvM7ChAJ47t7qjX+gX71u)<|bHs7Ld$B|;9id&(NY<3~h} z6a8c{h@NU>6x9lvnAz`xbR z#=b&<5oKx&RF(l@OLY9Gz)>?5N1^G^wMl$hs6J~|^KJ~f8$9&x2p6o&(|O1;HWJ^k z%t4VlRqY&?!L02##vXHuq%k&~E(W^`U5?FfBVc*bgAx?6oI1Y{$SDqOisSM4&6n-* z;Stc!0cGQq=tXC7^MmW}+~GKVMV(&?Y?`hjY^72Tt~%-9W*+|vRgccV+*gMnY%uMp z$6~6Y;h4~C6bp)qBX{fD_=0LQY=M0+SJ9I{$n+W<7maA+*sL@_U`J18RImSv9KXt) zEK2h1#Wjq%s|daMwN919m@N`BuKu^1ruiXO>u~ul;zb$clYFuog!i zG>^vyjU5?y?@Mi|S%97E-i4{ZP^O+a(|xY0>8Aj#nO1AIDG8LxQ>PX<-5{rGCd+-Q z^?2DiZql+BnYZuC5jk!OA%&B1llvLB3wwGSp8o56p8m^3Paki7JC?p`o9X8`+)tkW z#J3vsi10;hV;&0C6;(UkurZrA)Qp>Mri{aq<2d-y+>Q|T*jLpzglNgH3N z5gZqaeL(n#j5|gV>3T$9ga;zo{W>6fZZt^ z8+5uoLpZCIbfMLOA=M2jOQ^3Tvo2%brSHm#i}X<7jqAmB9Lp${yi~eNR;Z`kmr>Sr z4{0L{2#UIf-8wZpA4Q@_{_C2`L$0Xqb8Lli&8O~$rEV(f@81pa9Ci<3!;c%% zek9O#PvKM-UTBe)LAt;X1GqzaGE4i+RI-fyQyEQ!NR74UUJ}6_;Kbe_(wV3=_}RxU zE1&G6kF_9z!CmYDh+E*-#9AiXoA)-;!2G^iW^#Fw#EC1giz4LY4je1gDW5!tI-@LYrK$_+)H`ZirvF*9^32uuotJ?9h9OX)t4^z zlLYp` zgxyYko>gM#Q#Qnh;sZ790L$RjtYYVv+nCJkH|PZ3{w2e&8cCH$J!KeD6>>@7f4&j_ z{f5LE8FWWt3`O5%qM@sNAYL0(A^)B0fQoomrL~~-=V4Xqc0^kpuloT;30V{-vFQYq zc^#tXUa;wT9aDxe(QU?IF?g(Mmj{XlYSt=Rs^ywlVlI|iN3KmMA{AO)8El~_Rr4r7 zz8`0_g%}lZoW;BBP{%0A$FcgMT@JzvO~?6jeYb{Bh)a=~Y_*C!P*HfcC@iA< eY!LZj)&jW3l*f(v>McrZ${8T;(K`fe)%`!k-0TGa literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2006_Scanning_Group.doctree b/build/.doctrees/niac/NIAC2006_Scanning_Group.doctree new file mode 100644 index 0000000000000000000000000000000000000000..44fca062195954d65c348cd4bdf55a4035cc054d GIT binary patch literal 48274 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2006_TOF_Group.doctree b/build/.doctrees/niac/NIAC2006_TOF_Group.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a56820d0233419bfe1de4ec2e1124a349458b6a5 GIT binary patch literal 64474 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%0Apb?f`+G^1|B57aRM%M9&0z77{(3 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 D?f*4g literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2008.doctree b/build/.doctrees/niac/NIAC2008.doctree new file mode 100644 index 0000000000000000000000000000000000000000..238600871b6e855e6d687d5bcd2b791c521749ae GIT binary patch literal 45338 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 QRyG6>YTTsgK4~}p54!YtmH+?% literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2008_attendees.doctree b/build/.doctrees/niac/NIAC2008_attendees.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1db2b78d69dc7ba74ea28618d843bc0b569ed471 GIT binary patch literal 26753 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 btcO)7qV0|(pV6cBpECo6+w^1x{}S_mmdoAW literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2009.doctree b/build/.doctrees/niac/NIAC2009.doctree new file mode 100644 index 0000000000000000000000000000000000000000..05af33ffba5efe77ef64245e8211ee6cb7120d5b GIT binary patch literal 84308 zcmeHwTXWn-mZoHhlvq;eYPa3Kw9&R~kQS>*in1lq@`cvLk|k1VQ?@nT?JlCKKmx@g zPy$e*=w;7%-{xWez(njs?9)VS#6Hj4#zxFUY;5cg*dO3OFn?jclNTU?LRA4MP@>(g zC>DXdoIJNYc{1}Lp-<>14jn#3AN{o7wQT2E&1kh8w`Kaee!S&2d)uZH=(;|m>wnd! z^(oKT@!g)+Gjs%-Q3!(R5VQ+P{L@qy?_D2@ zje9dq)+X+n1F#_9ljE?39hSM^&$A;s-CgSTi@=vj@B{)qsCaae#hN51!uMO zFYVw?uR-7*c$N7XU$>5ZuUjX$szFh7Xy!;YK!Kq;(5C=nOMgt!7ngf6q34!(saVd@`!g1tRPqa*XqqzkXSPj&PYo zde5_U{qUUL(~kwlCd;>eXU$lzqg|_t#;iF8oD9EiSPQT$i)zA$NVxL7-m^ZjUPHB) zt&7&AHGA(+uK^}bfl33my=#H&&>o$Kmj0@GePaYys0)vOWl!o5D!UGp?2h$;b;P>3 zYRyvb2(?ryr={rRZR?``<=nOt%r)nFK0J)MhUsm3VsxErc!txoOn+|2-m>f5bDQHm zaL%!f<{S;Im*(fM)jS`ab@pC`biCIvV~y$+>3A`>3f%-E(~8#SY?_b5=2b648jcPU`|Ewxg6WKlD6fzI~}vNiFsh)x*ea-zc3rdgfwt5k=z0b_NGG=8xA9e%{omV zvsbu4f*7#c32NFSv^#`90M4ebJ0?*{{5Q1@=Cp(|93ITQ?JgQ2Bp@g(0W{&efsLRz zu)tRuYlwCtgmJ1tw7^m26KDd*5Ybw+N`RTA;qeLN^lfO%whN%Pv*8jv(m###4~+#L z=GQ2TwFHp!rR#2XOr~Ey{rF$QazFj}&(tj7h*SeYb&y)qZV~am=J%SGq-y=v!@D=u zr~-8bR#amXRLoCzc6Mq;*RL5)r?%-noin?3)1TWmO`5vhx{TZW+7CUL!r+?T5O&3H3JOU|}vOjS|&P{zcD+j}9GLp-$l?aA}C# zD(3Ahm#VMXm?>~Q0Hux_kbZ(Ah9+1i6@Q}#?INQ#i&C0|MIZz?$lc+*^xe)=v&D5p zMem{7wI5N}j#DMOeih1CWnG_92=zxdw;>o91t^;jYXa2_S5HXIJ=^u{U>AfKpujSB z36l*Q%NQ160xTamom~Nh6>9c8n(-jfd`6u`tgQ$fH0S{OK3Z#-&>sRo#)|bCPT0FO zZT0cZ`w$#A2{%n@j@gm>hO^nDF#)w$v2F)^t%9cz8`g5LP6I%^+JF3y{|u$00&Izi ztVLMuDN2$8v8rluk>Pq_(G9y}Qe7%ahHMu-n~aDnngK_}6_R8&)y4-ac27;P)T?Rt zU3Uux72Utdd4p9$LiI6bjh@jYL2edO2$Vgqgk7$0+6a)O|wC46I%SJutGW zdG@9ikO6|_`;0&llx_zm5c2#C1{yffGTl?tUlO>jKK7sVAO;C#7Pw&Sfbt8lvoIY0 zA{%2%h1-UMr7)31cFf!nq{GCtLMiz$G8(N*nlLgD{-dv#Z%8qlC{s*3P zuwu6>N{9wxIco;Eiz2Cc%%q4M)*4n>wH22P4H<6M8fD+XiUAF=Wb0dojZPtnT4GH2 zr2nHOl9KmoHZ>907$OrNJ{EOZr=cvU1FcIlv!K=&*U2W5_i7bt^4ik;JOr{ZzqIh7 zw!Fd`msXA4;D>rOja<_9Fy-d92f4f|194e`5PZ`b(8?{8nT7@J^w3Ras7=)1B~j@T zwf}G>w4}&ppAl`cYN$?Fqc(jyJxmMP75{NJHhdUF8f4+kbWHE3AODFvNN~6q8dSNe zEh;c_qQR;XghfUJYuDJI9_oT!ocK8DtY}sHP*BZkkFH~ z{7KM~svJb5YSSK)U55$oq&p2=nH}>QQ~=+aPA_2*VepVdE$wMv05R=5{6KTGZyZ=g z530MXJ?t1iU{~bUQw$gZZB*R7&nql^IKQB+Sthm@9Br9_iWTc%9n!VoV16`zX?~%4 z`SQX?yy7Dl{Jrg&ruH=)2Jb0z>is3{>im3l@#;eL($&RzUh=l_49Sbc-uED zC=q6m4`7P!kmEG{;Om<+OHgt#s?+A1pac+P@fEwZgTZKe<>q%N+`>GHCh<|Z6}z)z z^tMc}>$|(!iXC7WBQe`1Joo99d$*_-{5Pifkpm$)!dh=K&(On;Wg5aD8U}4G;B!DG zRJJ#`yp8^|B>@G-GdotBMrN8V8q+x7IS%L#A z*cv2rAOJ9@bkoJW0}_bf8Dl zAV5+QawsMt%828N!oWJwMkO|TpV_1~v)V$Hdef!Lm#Yg4SFUK&MlW#T|C@3j5-s?< z=};8 zAbe$R+lIr~!HHRJ!LBxe=tCF-Qg61okNs$G)5Q>?tulmR^zUPd7`w}^#~esr+1!Q; zxTLiiQ0>okBlzx0pE<&jw)T1cHW~2)PZ{h1U@bbwZ-jfNNpsfcf!hRW9@nvD-lN z6;Jjp&)n>F46O5*WJ;z7`6M%;Q=)nuqB&Z*Bgd3(Rn5Njq-S@@;}_+GAk8qD(l1tX ze_~Z)Hvn~!fbOxS09<7M>}i;ZA`k?=3)SDTT$(gI#iE}7nYPC;O>sa+BwbYVV>ieU zn2MJ% zy4y$d+MOR}VHgllwTo4w#VS+-t2|hoLH8mrripkWA0qdAWSl9s>AA`uM&HERj)oa& z69ED=spz^p7*Y+a*U-?K{Or-nu49_C$OKHK>EOloQ~uxC)!R0$#W=u}4c$r968C*P zC8u6~_6bw6DXO`As4V7F9zMcis>}S$$|gE!_S;xVX@H`3NlFHE3lVL6)dsh;+(nCx z^x4Dm9zzEAdm6?uA6pPM7WX)dRBH$OmiabTQed^tJRjC7wY$FjaE&$t1RCM$8^=nl zc`*$C?Z2@y?1!PXC;TVv`Zt)^0aiE-qycg-Dot1Ft$NKV+|#`G7MBULI(#w|mirO3 zl+G-@jydtFi=mwWQ>m15{TwZ3;#GbmK5Mj-CeA>z@(sek2 zb&gz2UE)2MDW=3ektJ*cusVn$T*ZQeM4YVO>e{0Ry!U|Zn6o!A2xCyiXHQdlUhGEN ztUCrmtmS7tI(8!& zzk(e;{|9r&-@>F~FSeJBTeg@K!IoF)YT6F@zG|Z`c0Plmou|1~4-o^X*k{OXEK78r zt=;xPl;MhjT_5p5=Yi)Ce)8JCd;k8gPBbCI7^X;Z81vG&h3!BDIu?GyA*^K^+qs7@ zi}Wh$g-(n6e}#G>r?3v}teB7(g(1Flp^8ntmLddF2TFuI=2dyB=Y19znHv8nW~mgx zO!0X%cU?+}d{pPUX>ok4-msWQ6@U`(C@0A>+A&k8b{`$mSW-M=zF@`@A{oaGV^q6M7{e$!jR;`G{zS&;MHN^Sx+tK@ zxJ9*4TF{~>E~5;i*n@Gy6$i&Eswh274OEn7L}aqvcM+vnLWtsc@ri11BH~a+MkcZ{ zIl~fJoeVLFtX$!MM6Ah<8I9N%ipUU>0fX4;%^Qc9F$j^GQ6ms>pELZBAu3}JRfSXo z4}}`a0KG~DeRELAA+nV1!a?zdC>0ASu;!6$kz58necw(h9J?jfmQ;2vs@irPbwLLqyoS0r9fr9TYT z6ATcMdVoB3n4TJ=2Y7|-v52J@5S<68H%5l$p^)Ne%eXwGW(~?i(a{lkC^U9BUKop~ z3MdwcCxoO#;l;uL;=u!h?qXG9H!NJN{P??Ah)9Yvmy#5#61zd+iE83|(0PbQoYtiJpteZ;a46FuI($xjn6%pgDw> zloBzAsWXoU95Y;w;Zwp6XNdwUCrWOQ9oaH|h}<5+s>_Iv+rzVN6#X}Da2&(uU&yPPjSt+4y5EvtD z+_*M8kW)%fTZsZIC!B3hD<_tX_AjFG2UCrLfou?1DN$^AtfrI@wvq(K;@76F--gFg z9+xNf$D5H*dfSo^8;Tgq9hd`U9aFVj}|*2jE-T} z4}YLry04$aNobok4%?_RFs~1$2cl?QRYLu#v@Aj?j5 z|21Y3=bk_&mA{pkNzvVZ6}~(M^>0e}p>1zhaD=*gUhd$-ja4IZA!$T({cke_mvy6Q z98>K)U;0Ua+_7oDmXM%wEcRV-?CSWD%F;VH&ChWS0V;TC2|NaCk~}7x1B*_Cr6aNz z)li3whr-I!s2MBRq2ZrZ#*3_0$V##|euDL&QMM{NNaPewu=s4rM{yTP@#BHq(2E7lFGI3Q9XXVIhtZ# zRV4389zrikmbVd29@S2L{eV8nqwN)uM=3*O9yNX@8JaKA=+B4{qPP1DK|o?k&N zEpG^tkRb5XZg|5b?KITy8Q?ATWQ_(kq?k?eucfT&3ZkJ z2p2Nc9ha^zVP>hpj24*}jT1P(`Z(XyFGC2<4{KZo+!>z%7gisSew1ej(b?*cOX%J4 z3Ds907kd_I%m7P6yuvKo3; zH0}nzqXg{_csh0nWm#&EOXPRs6L~)N6fb|ccL-If#m6P%@%UuC5+g%Cj68&p0Tsq2 zbt(o!8_i^QH5`1-#bqXxqa{{mEFk1aYPU%PR4ye9#;>-k&RrYrKvXr-}9;Firq?Gv$ii@3=ppZD% z!N@0!k%MA0 z^}ZZ9LoxU(q9npm!VAH6u&p3rw25sq?ad54FnLklSD0Ql+*ZGmO}DpDFfP*R;bK0W zII%)grO{m^$sF~5yyuykOSG|fnmxGn}w zuEUI&Kz~?~GAJTmWbEpk`}?YZrxT|vN#*NHAD48K2H5PR^PfOeiHRb^>jo6>CDhE==dvhXXyFE1yf+Ku`rC4G z9cIpQS-i!<6wT+QXn)l%eym%lc8TOj?bZqrz6rH^n4RzyR&=<%JDqqdt3Xn)l%evD+Oc8TP1)y{q)YBxDq!~q~&kDz8&2Y~ga;a%j_0Wb2F z>>ijO@%^pBw7i~|mK+K^$3vt*5hrRJQ{Gj-Gx2cESCi%Tu zE_~Vf$_5)rLN6qVCy)fy9A#Kyx<1%$v4D)|$C`|;$&#hUyPWMiT39kGB_|8L`q{3R zIFMKgg-OjE9228FAwIzlGM31RyG#g8up^HZB*KIt4NvKnj_sIr_9AgKld!SYlrKDH-@tWW7@MC(8hJ$W#ioQ=TD}LB9elTXWTX-Qj-sk4bYIpBT5^~kaLMV0v|KorC zPdv^G=K?f78|keisWI z{fufDIq3I7aR{gxemOcJ(uv(r6q~l@SbM{GASld5{e>(?SfhP~+^khX;&Ac8=sVkY z_I8|@)cga1`R|p-3>!PWu+QPO(mxnAY*o)il)N3+>h{zz=GssJQqWAG(uh7maB?dn zAWb4F5hn!Tis3?C^mpi!#{iEH2FMv#rD>qZ1V);I84JbPxdQl)FRx8D;9jAlebbLx z2RNm(lnj|8&VOZ}dasa>NF?&W1wvUe=eKcHLe}||=0;Arw+iR|J~WT~~3 z+;Z}sB#`19U=lH?*O1CWG)O)}ejQp~X z@z1AWJQ@xpPQ{7jJP3cK^u9_+4-azlGJ=!1S=}%G5SHZw4@ty@r1I+ol@t_(>=E_~ zB^0ao2r#78Bd+xtnax$aTefer+SzbGi}F$78>||iIC3H*8R0&9(*n-@mIu#2z#BU5 z7&vAm^)(Ah!2$1BK#8I+SO7}AA50_EEs5`OiEUVl>8zT}tEd$b(gqgfAHDhvV|$yk zGPmJ)FB4xQni7Q5utgL^b~ZD>G;RoJxkvMUesD-R#&M~W|1d-+eo)s=!kBVmwH9s|mO7DP6KJuqyWm^347M>bFyt@ri*7ttuDdBj_2 zLeZt!*)vJVVQFS>)3TqB1o^W=ye%<|NvAD+gwv%p$;ytD-tm4m7;zqDuk?I4m)mau zTFgpkt2jdYC9v}J|M3PMkPxp?BCRj_4kdC`dRWtH;7m34S|%;9j6mCTO0v_NNWvftn8jT!swxqUN&oBukra7n ziDW#YBua!|DXwlIaRH37ZsL)s#Ag!H5)!UqaSpI@ssI>QoyU)g1+EXA3S`r~ z5fdlwsmWja-fxQ;<5(}ZMSbbRj(oFi zD7~~f=jjA$VPR&sQgYJ-d2TB14rCJ}jZU%M()KC9DKZbeJ`OJ2 zX`Itb;@rE8bD8-rHxD$<@YMO}OnwDR8DgiiLW#scHYQKCG`@aX5?`0b;cGSSD0}tw_)cfU@T2F?Qag# zR#YAAl*W0MfODvB1cyGr`&2r$P4_9_sNbIra~5)U)f^lv1pH^o#>H`rSBfKXDL=eO zF62@a18~53U&a96<`y{{D8dqk zGBkYa8BS*lG|LUljz&kj)21l)O21jVu&{7#&apSG086l49N+&8Z#N6fS=t|^ll)Pz zf`^QpO>?F~+opvgYb$u8|9<-MUuG&Hf72$2w@N`fY=U_krNIQ) z@GA$HbCr@NqkuDXGMYZN-Y+Jc5t2zUh{d9yE2#~|#ZxlmP(rwnLefhT(z{GZx!ofz zN44Rmt9^=r%56MPuxjZl^!GPhXT$VNr)g>%rn$r{#E0{9T|6M(R)vX_|2lj8V6i zGRroxmh>fO@cq0o4OsFDnNO^ZNJ>s2{z8~W6Nr?GY4oj^MBkqoeVMrO##%*5XI%*|fM@L>Inj;~D*dUkk5+p%FI;iak1AXl(oVmiJVnaUJV z-zudE@L#bprNKO)O2b8#P13`aX5gyj)U78yySvRFYE@VpOE1D6)R{6B*vaWdB6H*v z<2p`;NRP&AFAvO`=BGAu{JFC=A)|V;K5-MCVXP=R)J2+0(MyIQbmfP*0@} z>DU;^M}BH=DjUV=y{UOAX5c8jY7vDMRg*~^gbHY;J$0fS_h%At@>p$gr1KG0jUNP~ zA{Hr8!V5y7<4<~q6X3~pTq{(n$sCjl5bumBiPE>8AElKY%hfPFe`@0-?$6@n_T{C~ ze5E9sFONfWHuFk-QXGeUC}(TpXlyWmn+seF>}cYAY|gBN!OGdw+aQp~Q zwknscDyp%At?@s0v^DM-l&0lb?KOc!AxtyI4w2^weY)K!jhuC^FOj zbf_3n{A4!{Ke;>8pZ_!2pgE;%p8SEyr0ngPUqTBf_MJ=WCYF%H^VnWGq3AW#T(Rk|IOR-M&jGLScc*ZbHsrGT4|2+z)u$RkafS6t@P z@q|6dU0=FDvf>aYD8(kczrMV>_UHjEMh4xAT#Tf5c~;0e){NeWIqmO>$&p+p7&zdf zex*R(EkPh*1I#CVEgD&|90{x?(r8{v$$HT+WiANvg`2{w+!U@Dn1TFY?)Y1~m3C+lSM5r3s~+Z6wszYY z%;Qs1fT$CmW5zKALJg>DgKOC%pB2&^08mUMYfV#H)2KDpJ>L?BlJJR$k~E=|?4vfNin)&aWIqYcO{csX`q&v9ZBgZK|-qfm2we< zbNgJVr$|P&z+`b=F_jWy6qgdDZZy>vR(PIH~!-F#L|o z=YHF{kM!p>bfeX}5Wp91H!rQP7~WRp-oO8=<5bM%mMM*9WtlSS_goXbzv_RdL%h0^1{0+a429h-&%i&trPBH zG6%D=Q|tP6t!WJx(b=Yt4i*{|qFyWAa%e)!pz#!)Z6XF-}P_ADfKGBY^Qd1U=;n2;`reG6GJbHnYv zoeK#fd)s2~LRL&!wM%YMC|xI+1t{TH+CmOl)!fX;4Pb0`{)iR*k#;GC>VnS9k#j|y zLsGqX(B2`y$>H{8w!kTr=5S@COkXdF%2)S`%ACFnSCH&_wNLvNm)0M-4cqW5U)xRW z)<#_+!ERNt$dGQ7L>Vc!E5;&pC|MoDcD+j|8W+ zOzm`yO&Lp2p6 zQJMzN_FEPneXx;cU$k_DAw2g8xgVR1$)#|{s*8K_|-Bq~6M^&wv-ovhJS z06B?+>^*+A-M6@X8AoY2euq6OT1V91CcWqq>C6?t|B1j23<}7+cL+ZfS(@z^-#gSJ z$_^vrRI}&dME;;2LSIGdNtxQQ9a2+DJMNo7fQK}x5q!_K+$PkhsVU~xO?_JVGY6qjI5Ko>i*fvHW?G4cKom(GQu+^H5`7UBm`B$04}BZ+uS zXGPK zPuUI_UdQ&A+v3mIQn_BRQN3FAZ32hyoAE+*)AL-fj#sm^I?Mw^kx3$|Ns`0&G#6t6 z>I8$zOT3jR(Fd~q?)gKcnx}YMar{(BZ^jGs0RoIOL@_#pZ-L1jaDd}b>EPWmJs2j) zuqD!7VyCAf|Ga0?iC%R)j0@#O^L8k|NqScTV-4e}-9iUL5G%7-lY}z8PrR-sBk?5} znE&b8s>{%2VoTmdg4jDPBCe>zlonTYt7KHTw*XXLo(Go`k~m zv>DW&;u({u_nfZd;6DSwz#v|s=2+CzEwUpg!2k>ij(p~v(5i?kbv%sDnDRXm@%;_m zqj?0YvjN0(2)^j}$Uos3J5ULk$U4zkG9l1oXA|9|V{hA}K`Uo;{GRHX-8vY{UkM_K zKS`+#19b8}je^YQrAJYa<=48q0bcS`bG^+uK(m zLSNaghXyAkvhH_7?L@IN{;m@k&*~Q5k<_90Bq0soqaB<)$1hLfWhO8hPkOLh#3BAY z&r*3}z2o9wEmcf!;hjpr7^=qY2PDRX07zRsvZefc3RE!r8(KY{UO~F;Y(Vo=V|b2C zB;1G88f^3jB1U9kjtV0Um}kuGhS`Fl!nu0BWtxIYQgnpjjMQLq^evZRK zZcoq;+ED({OK;kD@Y6&36yYE2c0(?K0wi1i`yZ|U_m6};Lz?~*%Jd(9X;;8d~EEuyl3koX@8cNW@olx2$0Y2H(HSjDp4n6AW*G z+0p_Wc1g#>b}bL~R|~C{25-a*a4@C^2Lf*nf&J|T8b(c#R71ncYDn3jIc5Bp3vH&| zMaNO6H)#{4^tsh-c=Ow+opj+DZwGD#wb#LU12{~?{I{c|&m6O3-z|T=dUy3pen;ky zGU%xj)pMt5vBcCingY|tTEXf*0nG`Uu6$J_#Sg;IWe|UrFMQ&Bqag$W{m5EtpnOw|=C86HVlRG9eK$q6|94Qo1p2Jhm#0HYhaOX3ptMY zvDS;m<{lO|u_~7wN=ty2CXBhUgfUxG7_ zW3Wh&!{z`q>pK@N=_b8ZWS$5!!v(7ow$tqNT39D_Y2EL8{Nao939v#PF3i$&x7Vos Ee?iW0GXMYp literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2010.doctree b/build/.doctrees/niac/NIAC2010.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8919bba8acb6d72fa55e58722b37010b6222242b GIT binary patch literal 69108 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

XJV~z+<)^#fr-}-mdz}MZ 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 yzoke@=~#G?hHvb1vjVqu4 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2014.doctree b/build/.doctrees/niac/NIAC2014.doctree new file mode 100644 index 0000000000000000000000000000000000000000..91636c37c3cd6b0eaed951a7c31cc8f3345166d0 GIT binary patch literal 173648 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 ss+yO~1CNa^H2?qr literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2014_CodeCamp.doctree b/build/.doctrees/niac/NIAC2014_CodeCamp.doctree new file mode 100644 index 0000000000000000000000000000000000000000..96badb814940fbf92abb5b9b99d0594aca4975c4 GIT binary patch literal 48425 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 Xc?}Wy8qfe2UK^iQ?9dz}Y;XJ@u1P`* literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2014_Meeting.doctree b/build/.doctrees/niac/NIAC2014_Meeting.doctree new file mode 100644 index 0000000000000000000000000000000000000000..938396ae9ee565fc92661503766dff9ede1b8907 GIT binary patch literal 74905 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2016Minutes.doctree b/build/.doctrees/niac/NIAC2016Minutes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4f01bcae89deba98e184a98d7155f59905b5c290 GIT binary patch literal 66718 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 PX379?i(csxcUJ!&*s3*0 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2018Minutes.doctree b/build/.doctrees/niac/NIAC2018Minutes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b640363ac4d136c4d009b43794083d0e514bd75a GIT binary patch literal 109207 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 T+~$!~1l>lf0aV)i%QOE!k9!ir literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2020.doctree b/build/.doctrees/niac/NIAC2020.doctree new file mode 100644 index 0000000000000000000000000000000000000000..feccd86a8fcc8a512bdf66d7f6b2f8433686ab6a GIT binary patch literal 54176 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 TqtwU53c^6*1Dbutoz?#X$!-`9 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2020minutes.doctree b/build/.doctrees/niac/NIAC2020minutes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0f41978cbc6885f6ba00f9f464bb91d4f14426ad GIT binary patch literal 75500 zcmeI5>v9~&mFH!Nl*E>TqGZY8of+8`A$v@XK!B7;kt1tnO;MuAl}RZ`%4W=r2PkwG z&_#B4wX3ReafBoMab95~W*%T4Vq+ur!#=`3fL~x=VSoRVnbp;WZm=(qEseow0*$(4 zo;-Q(c~0if&i?G&bKiST|Nh_q`k${A!)`h_SdTlMLDoqMF7bJ}leI_vWKg<4`T4H< z_IrL^FI-cHyCC+AG#;9h_@tgECGBNzN1Q zQ}3aB_VHWKKlj}FdQ?64(MM5{c9QKlzf_cI`{`k;6-CjEC*tjFRN4dXnS8XJr)`?p zx}Q8A7175V|G2fesRrD?j|Oo+`6wDB2csgq=AKN8sFUm^y=<6tqPU3SL6i>4Bp<|O znhoM!RFv_c6X%_1`!FinDL6}uvhYoFD;nn6ZXWmhNnS*GGR%`g&kS~>e*7fM!#g`^ zJKBlcX)i6)q@WMq!e^tLuGgZQMH=&SRFrw#(^oZpKg-K*bd#pjcFa3bmUogoDl`AG zZ!j*CXg5#zm4i>3%MEzFP<9hqihG9z1Eop-;$B*e=;n9sxoii_jLJM4tVIWx^7zp8 z-XCRys1uj*x}j|APS#I6W}~go)AG(}Tg`o$@5Y0)a7}&OEz4o?(Z+P(+ zVOZbE@_t-~S^3}pBYOYx`&Xl_`*&~NiayrQ^={ek=|0rbeM!XCeWgJ%T!XHkNfJD8 zEIk|{hLtH{MKV~P29_g$g=c^2)Gs{mb4~iiBeVXGZq8><>EwK_Hkqr;21bDv2r<63J%igLm8qh3CjCp!rWASebdO}^j#o7&T79wi539mBI{ zZF=}p|NNdmq)A>J#;Zq}tTaRIiI+R0Ve`^<+#&(kL=H7DH*v{iY zyPFgn`{~nk(^;__j{i3XY24nB(SQ+gxt|Wi^XqwGl4I?QmKbBSolJp+E?dFMG#io& zvE#KSfNJFeZ1wph1M$N4pHv!Xno$>GmZr)WU5uTRw`^=A|+% zdq-P-m=pyLYjiWbBEH3?c9$>32Fjx@Uf{mGT)fugQa?$|Q7yBmli@Amn#$o#%F!^w zUyF*-c9HycBx6sl`nC$Z!w7df*}>i2OOyQw|8c*Y;A-YkS|>c+UsNix8pF4Elr zo;6)?U#+yWJWtwX)tbT6j&mC9M8T`CyKrG-pG+UwwvFs7=XQS--T7oKx_xsk`s&tN zbmwz^|F^a1-WPb*T>s?PYtf^7Ytci#KlqYsx9#1phj^)S*wdmI;Vv7@3XT|PZj4E1 zjj`E zfeCwwwO^*V+2*=4Ssv%1Z-NndNn1&r_YR#~e(#HjDKhNI*+-LVJ_JxFDM56WZ|>&V zXb5m}ZpIT8IRMppH{N61ywpjC$)HngW&{8Ds2CN{gtHiT6SPa2A4c180TBJ9kH#+6 zqepILkLh}C5}w|6#+^I?U-Pep3pqB-Lz&zW?+y` zx(77~2w~SSO+d*Z9!}8&?-L5q{6@s!U@=6We(@)QHpu0FL|GPV}zzNCTd-`&j|G4+)qJ^OWgYhdZOT1+FYGwe{75 zcWzvMKYB(GX`_?un6SzQ#l~>d>uvB-h%5m`8+Ic|2Hfp#JlIW`hEIOYT7ITqumWr!P@YkRL7jWfgnLl;$Zfe>;heom!e@_Eo`tE!p2XU zhC!Es4x^-(NS>+d{UDSaZcH*iA?m2+Yp?LA6ED*w@h!E_Kd-fdj%ha~F@jh)y7Re+ zlc|32C1M$Atm(M<&}*cmrbQ~s6t=~#Jva#oaC65(o86>sGY47)0ik1be@X0FflE(j zqP28TjCMe)M7S4H5)q2anqG_bc8+FCbEfY7jSrBZSw89u+jLC)H1dl2%8kft;?RED zWBL_SRU1h^PJ7W_M*P)gg4yn7DST%(5OR^J*$;0JIw#OA38N=TDnK5+C$bC(K$#5 z6-;2n>0AKebz#da0w;4l_vpp3%yGguf)JzO2w)C1h!CeSDB%zAxUY#Yaa$j8mB$z6L(IG^$BN#3%8ccGW$Fj5^4+#0M*MjluS-y)b zm4#-(_jg!3kjw`Iml}Nr=_N+XZ<<=n3l+sh{ z0t`uD4U|%IimlNGCSk@B3M(yv(1m-a@W7po$IP>Lu6-~b)AU6Kiwtbo)5XTM4+Og; zw%Q;%Cwx1h+>fzjfHE6+dn<`H3u`VTLDcFPYJ@TAH@cmjYnMiyoiH6(>QNr2p8t{MZ5G|2dFgJMUq#X;lv;u#kSmq< ziK7}kl`xCxU{B!e8qEk07$(3%Kqx2}=18M*oHDl0E&d}DA&=WqFES9#;-M8*;TUDH zrbeCZTM=jxef{Y6r5n-3{cg&TCE;a1bgvB$9e`L8@0x{RA}%$q9AqW!GiU8!(B8lK z)m_9&u0>L;yH1uAgFpV^zgLfe11wSVI0VGldT9?1_E@@;xeMLN!!RtuL;G<)U}}&l zgKThVRPNje<4_AGUYtcBXGUybv|EgZtTKv>G@V9^Th1;q%Ew03+eG4=?v2M7)Ab5z z71hz68eC_-jeSkZsOb&3XX9oEcXZ?o^wUz>gL#g&%r?+dC|z+(g`jzama(J5!+lmz*6OlIS^?*tHq|#RtxcVq__hq!bHeo!VFyfZ^@J-mhyp%z;)7xBn=2E!7AVT}om<=4Tgb#-Yl5rUSb zm>08Nc}uMI)nVDq2J6usz>$E%qEmxX0p?4)nH;}Sz{2}7$%<48MXefl+JF?k*~jV3 z;e6a1q@KMlL53W|6?9?)H?$V0$Yc;JyyMU(5;b&I&>M=8k}hh24+DkC8ov4P*4?}G z=Y819E5@EiNZK%*pDQ4w-ST7?#e_UPkUd~QDf0u>C0__DIj={IqG?5ddY?osK{$Ax_P24%36Aw^^jWOKc*?T5^Ko10*&e za|jP?bWkOni}miZTs+zYNu}dOnhaS+PECkK7Y76vTu4FWnH&(!aWh?e>RmTiaSvWp z5)qL#=H9sj&?JG*_;AAigkR~ic4zaz$f|yYK-VM0uA0C~^tG2qP#mXEP)&pD=~h z2-B?V_aA@yOXe|_c!EO}lM8{;DCHp(y=*2u3QPxl)wFs-EhMgSLlNjQKGvhpK_B*Q zh^N8D1DWjf)k$|u{^H*f`}E;CXRs0N5^5`A$fB)0Q4H34t;ucX(BTE2S2(!2^)_XUz4>kSF@fX00b1rG+!L{w=)yVj2MzMN#dMhGS0AKCiL#2;W2OE z-?)4^82Fcj1*Tg<%;^G?&L9AvxeBa_zDZQ$*DjBTxV|KoS`J%W@io^pJ_>T6mzeIq*@omaMO7eAPyvyk>Zb=Kp#}4Q@x_wfEyB&wUW5;y zMfhv&@SM zjo9(O+3OPd!p1hr5+Bw)cUmxOPcE4aw@{40!mln|!gCna8c}f2Vmma1Ymfi|C?4D9%Jdn7C^kU;e#DE&2ybDAu$*^kr-WpS=rg^~ze(4qxa3v}6^T)&7IGQ(VixrD{FIiW z+fy65v|}$U(9Y-6+u5D;)rbTWB*rr%NPOqM+%=pw=dR(m;jTUS#9sKcqF52*mIxE> zzW;dh)0>Yz+kABQ-e(xYMtDrdKsRpPx%og^TwqAHKE#lY!8ubYQ13qc^2Udkub5FG<4mBeDM}ig9od?C zpJmkni%xFUWh^5kLd~nF%y1vgi*A`YV)~9O;aw-w03tyZ(vJxSKP>oLLY%^1k zw$9)iuUiTX7a9?izk}c57#Hg>l>v(6<-{)3JgCNon6tox$#69?HuDuJ?4eGyt_glv zW$h~r;@uP{iw#v~xdvwN>|Mf^8qjSdqNq>2X*MquXl|7W6{mnI zp<+QZU?-@cIIP~+>it6Gb={Pw!}fN0#k(QOxz%S z;-0{8fO<>H1^4{0^_HPyA3H7ESMwc|9}eg+!?&ne%6`#K$^i}*Q?=8)joasg=Ozim z(u*{Snil1YYsUiD1sVwPxn&18b*>-QGvZ#`nQRyd&`)^SFE?o@ch#Jl4pLhEI{SOt zB!v+K=iGCPR`ErbUPjZE2jA900`c4Ez2NuZ5p^vv>~SIC7Qrk%(GWm ziFc6<<6eg*Uz*|kDy{d({896)DtC#P0bsZak3du=T55JT; zL_r$2?~Vv^NbE5;X0H)_akzf}G7EF)M}>^VuPl)Bm>TiHHixYV9qR8WHAR~6Fwv4H z&V}OuH?C?jWuJ$oMcBZxySTYyzDj{Z{%fLEN}I4o%$~$ zaOkbw1UuG=2l&{b-Xc`Q2(Owx)Kgm3lB zFDNlv9SMf1Inp+3=tzKfK^QNUk#-IsS(2V&HK~kDYbaVq)^Nt5BO8s->iscW9Ms=+ z_el1ru30BAd*-O4A!>M_3KoW#uqi*S_2T1N6SZyxNV6v)743uhP>9)h2?DI8+!zGL zpY6o5AZ#>b_9)sL5M`ucgGjo?1cUg_)c#dj-5QfKL~UAqgT^B`dQ~hbL|X$x3lbJEWhD~ypG*_7S#s^m zorXXO5NphQ^P`3#w=Ew*-Seo67d!bi&1bu#{`fcP{9Wpra>ko-GDv|3iu^jGN}Z{B zqi`oCqMT^s@5SsR1%(0o-@C+jjJF_)T~cMcEuFy(I=Lu z<{F5J@Z*<3sIrdntYrGS7-d-Y0XV-PT3dHhv&8z5JeUU|ztxfx$LmEh&1_NGh}17N z2Rl)CQAmN15mNIo+M$*cmgz*Fe|=ZZB}>cWmF5&#rEo3cg=wnIr;EpE zl4}al!fal>)l4W`?KnaYju0H-Jyc8&&J1QfhJf4+@HH?pNoD`%T5c8YACO~fu_l{B zbbvFqdA3@$mqgV{zmuShz{|K%Sgv5wEV}tEC4t{ZFko3IUE59Mg}*MV0y^5W*4*Ql0DjmiNeaCH`&fle7S(nLXsf z_}fYqtxZcHAwg!rsH5cGm`I4qrxHW7kcdpSfDVzd%fSu6jvfBsjarI}A6|uB$#)H= zZ4QgvIFX?INm&{G=^zTAP+84mUE|jWY*>a8D!^T|&)i&*KG(%2xk{Aj4O zGE-{ieF*0`*IGDI!}PoebvSRygqTgPDjpCi<9YxIi_nvaI^{R>gl5PmPiw||S%!tJ zCU)X9cd`r><7QT?@@8vVey`a{nqw!VwIE_~0lkc@-ho|^mmP`}=tJErqJ+%XS6450 zB&y~a*^NLIb>m=B&SneB@vsy;wrh|~K~6i}Ss$Dmvh&l9ARNJAljA}{s4$BanWjYw zDsW>iStw+%Adt{vxuw>c!xdAd@tES%~76!H;AlZ%uK#-)m#%7qYRIi z8OogKpW3!8*PZA~iXq4lm~BSg6_)tdFr!ivSdI+cs8TOEs=LW@@)ty+2%v`<|}RF=xK>yBU!M2zUw z1?Sx&c%Wt(!n%hjpC~%QUtX=^=mg4*oJnAMDP#wPvY_K?jZ78zYy#AQlfhQ874kCc zPlOhgeODAMEY78?j834$NJ7(Pz=aV*|5{C~7KJdhFu}0QFqS69Q58a=N%5nQwsRC0 zoj_%g;kTZJwrE)qvdu-o6gpVErfAiwf)@R+QcW~{5`>jd4P+C@-$zS{f=?q#ml9jB zj%aL9EAttZqxI~?iin6?2TEJIf@qo$weq2c5T$mgCPbfAIP?g7IHM%kmu8#_v5Fqf zt{PHkFU0kO>FT}IXO#?vDDu+vLaP=Fty(E$X4q9Dfam@()jKf4s--&>^vBoj z1i86l(au+^R_vTaxsGx8YPC8Fl2~MJi9#K3Ut0ddqE$Ks3zsj^S-n0-3TR3R2@ZxU zci@XJN3l!;-(kotYpq_mzSBG-~ zML6<`PND**s<=>S7Vptj?bv#*_G37<{HD^ro*3t>y{Q>COBCLWm$MeCx~Y}X{PQv; zH>=m%5FZvdFJEkP0+lvl4I{*N7Adn?y~ajbzsWO;71&hOHC{WeSX#4kUCnAmH7i%t zNFlCRPUDtj{C?R>)Y7b2NaL$$wjQ_=lST>6Nz~6cQ@bifF#21xc;*BuX9z?iO;;(K zk?=5e@6#MyxIk;N+#%p7V&K~`H8U1X!ZNm~qB&!W7R*=+OIORdS|B2tvrA>BcpSb? zX42)bBAIEGEmInBjk4yWkaK#(i%T=u`QnIpje7(wiF>@gy1j}9hv=Vn( zVO@5)N|mqxVHoz&J0D953yf~DDw?lGr3wHpl-l-TRiLtRb;|0cDXZ6|cx#ogceVbt zP*I9ydSXF|^cSp1S+yLc&LxVPEMAL(sQ}z76{4(Mg))w#REfi(4nsMq!fV~zkilwV zMwJ`B1f?M{c%w?}oU8t%*@tLivEmb7g%N5n%m*S5b-v1zFx;ifPMF43Yfe@!I1vu( z)h5&YA1gI!I55FCMzw_36>XW$zlsF=Z*_S#s-(7e+yTMoIr_)C8Gv5uVrt@jKt_OFp*hW12Z*B_9oQhI)^xHbD^j?MD_W_E@pfL+L!rlzCk2{+A=i zMZIpmX8q8aaaD*82by}H>(ytjlY-RHktz```t$7g)*7E)W7oq8cQamVoEN6k?s%d208NV7~1<}5?K}P>3aP$7gW4Zk=HhV%%nYca|znJ zUM)Q>c5)KH)JS55Ru;y|JTvvT)l5z0w(nrsRfX@1cHZ7ERvkhe?R@vt_~b0dgHD`v zc8;4bVW+F~zk270j(J&DmCR}$sgcDQU98@6UqVl>HF}!wBt8z5d(zUI?;5E7^uecp z!uq!v!)YRJ+NpKNA9tt2G->?kk&}=A?#y$~ofh4h;qGhq#>ZtT&ZpSNw4=RFi|#BO zds=koOFjQGitdmhP6Rtm@q_7-V}=;}Swkv6InRY7;{MGEUbLdrrs%&g-Z$Kp(az{_ zqtW5QYCsTsHSnWI(jY`X$WL^o&@EqYJOhIHhJ1eVaKsA9rj1+Ua}#HDa`Oa-dCi77 z_sNVtJ!l4C^Ns!lC;Z_FV&eI=8OIJknQvHcP0(?ulAfH~*K36Ao|u8j+`udT*0#+L5i4y3^j+E9+ z4t;Bkum7xwW?QFkcGrfL5VwTqcd~T&GowQG7qq32P>i5lib=b7rBQy1`S6$Q2{b;3 zm(`zDHq4k4N!=eGF$sUMYK=Z!*CGcmx}$(+z{BOGWH#@eQEsSfcHD;@T>rrW=O%_z zhiS+kac>rfw?lui>b@ZkzUpTPnarmfzs0o5h|CoDi*dxNDdfwnSzJ6)v{prmj)_Cx zqRSdXRdHxtuYUqq7oMMt{7pJyyiovOXsk7q=R2&D2tK2~H3*r#oZ?AHdb&t&`(7DoDiD85&u>yMe34ah!Hi z^*im%Hu+^^)=Q1uyzH#K(;c!LK@q$-=^e75*ZK;_kB+C@84T5Kh=J(}^9@B&hvi|r zo9%LLL6@V1tKKd2e}3}zjLx1mI$KzY3R>@7-qIdV7826Q@vWt{rkergd^lM#vi$oK z#6@eotKLdOGM~A@#m$*!A)xWZj4ru+fKYS4v8^rtS2oa@C+-+MDnU!@`bCjEk$}rna=H;*jzSHvMF~O=hWXeYGagH)9I9++dI?47<67ncZcZWX||ww*r~n zoG4_6n5kf+HDB3wZAY-c8-Adxj*K zK4@MH5`nKwfVUvm+*(=KMdtWTUwO0s3GpV^;6$qE(M6%_Ta=StYX#z&TBF_@wc}zh z-{^LBu3Z{+cH}(Kcuo4YCK{;&!}kEsb1xhhzMd7PqJi3sSVtA93kc!mspowYply2yBjwU)W){xtJ8*m|JdQr((9V{ z+tdpFs=M|@ubP#{>a6PyHCFAB^)1^zyuzki2z=uxsCA6-J|quw)y?7E!*cT z%QyWtHqDUNYmNIey6ZH$n@>#fazYHulY(OAt?b^Z7)!32Wj=0fp;E4&cI zV-5c^#bXnfi;Ks>EJl3%4h2s4Pj|{6`i&LYrQmd@{L`KC-RZ8UJLO~5xt;PQ=ge|) z`tZ$ZB7NG1^vL+v4-YE(z-T2{^Swftbb+?b;@*n76SMy9a}>8HT`_f zNAj;;t%Jq)*^n(W2@~BI?w5$*T{9q$&cWlm#CFzOr>C(fo@S^0ou0#TZqfgx2 zwxIPz5lP=4-zt~e&Iyg9!KlwE$gOZ1%iMf0-HCWb2@+mMO|sfc{`%Y<%*SXow}FlZiQ^O@%R`^B4vU}o8&+Y>u2S}Pud1(Y?{W@Eu_=N{vHlTULsFLZ8T zB8LMFMIp>3iZJEL9d(kpI5U*Vy+$x#achV+X4*qPoFU9l&nLr4VK+^7{pG|#m&$5e z_V?3+a+JICt#47E+q)IBMf_eg!j#H4i*`oJtG0IePjEh&=%yCK`eK^WUy@E}y8a0f zjSB?V>z4l%krg5>s~v$?4b4`deF%gm>p<~6!1cohT+4`=iB6V{v)s6R8L)x~5xTS% z<;&Gtr|0^$z76O4%^;#Cai6Rpe+fZ;dYs^)I}b>Q{jEiD)>H&?apV-e~!qzd0k6zna-q&AUsaSG{rcN#vedlb*r79zJNA)L5A4Y1*{fbm9^!nVU7O(ZvN{&{f>e8&#v1hM=%ebtD$ z!m_T{KY^B?1seA&RPOS}Ogy`rOW=8&?>EOWwm?uD-J-AZcJ-MT0gKK}BVF)uj5YXa zm4qgn=k(~^-Ng3uu){t(t<$4-{qcbm>e~7$$B_2Y-7Y)P#(QQCr+so+y76F_U`J<^ z>smZ$)sEh+*uroAGD&b1&ATtNDSwKS&nw>+daVX&M(rcNL+yzkU_CdcCRP3{89{Tk z=;k62TOrr6M{Y;%$Za8I(JamnZ}3(yodx4W>|#B-pFAEBX4X-xz5V!*WPmuu70YxS zV|4f7mp4AVd_{$J5e0Th330APh0c?tl7)|saciBP$UPX5RRPZaoF{TKxAo6##$V02 zZmK-`MCsi=Jq)~LNq_q=!md#)qn+k$N>gZ)5FCWc9J*S;0tf{#nT1GKiH<1qdqML=a+4XuHo(5{#3@K!+ z#mefFw6zU&bbRpx=bJ|ZLX+cD?F!P-#Ft`2@g_k_csA~IY~3mDwX_8+yAs6%i>q{$ zuH$Vny&^S8uH2xL?W^rhmUVgwS#^YAEaiX;Jt zinlB&6p9@(3$~oIJ4!oAFCD-L@ot`QiygB~lf8fW$_-_Yhr@icfgTG5Qf^*)r0EQN zW`pO$s2g|0h|ytE!dD50ks4J7<^*2T2XjxT#je^6TL5(kE`2g|$Ct8paLH;;U1ydq^6 zvG~DsU}li^TW2TN2BxrC*vDz9aa6!rq`~j7bX8t+{S(;!?FKZ{)WZ|)@pj-ojDL#pIg2M(*5`ZNcZ^eCwC-Tq}F(1f%nFks&}y&{zNld z$67#{AUU~p$tj@|#Qr0#66}nW-KJ=O{0oc8MYp1xU)_x^-sk7LlLd7PN$U^Y$@Hk; z-I$cqV0k0B^Sw0L4}B8QE3^DC{Fx4r-#c;JIo|HTkXC`j@1;8_Y$Y&vlL2RbnuP}7 zj(17rA4KfGan;m~p5pZGf$h}A2D$Fk>|V+#<8-BDq zVFp3AC3-tYC37s|(d95@Gw540`e!Dq-0)67t!Gox3QWPRN9-IHJU98zHitI7jMtj+ zLxmXqV41n?L&G7@MQ+!eO3642?aU+Qq%II^YUI}qnK;EB+y3U|Sp~3JZR?B4&lw}z zY>aFf+iosMLf9kGmOBeufFIV=*)yj@RxlMt- zn%j3wQrMkIp3aPW0Q=ps@|ZWOWF?)7J~LU#-CQ(T>G69kD6p-%lcxjpZ<%ME zQ5BGsO;TH4iH3(|HyZ@IP!{1Z&P#2K8-gq!EM&G{{lFYsPAx={$I(7V3k-%hFearob!)Z*tLC%j_M3;HT}*&Igt?XMV76%Oy2^-hgKr)2ZIe!bZ_m!4|?|4nMUL z9bAG_HiDnN6KurnRiD`uznYe6hGKLI-$Qm3%<))5o(AzrtrH{QB-V4Hh9q?4(aldx zQa<>EU5*rnFlkGOfxVk~kitB^r@J`K1S5z$I8PnH<6V@|kn(liM7};j_7zV2-~%4E zhDnAS%^mC5mdip=)3uABqZoECbqHtRLj7{;CET3M_Fj4AqI!pu z6>I0b+OilI_wA5a0tkw!ZtUkN%jZs8jI@<%w4IgRx)3!vFM#YMj-#rmA#;)Z3Nzs1 zqE-;)3RM^iq-7X`{7(;KWPqtpzqZbLJBrDVszRqC2(7j)Gb;s0N^x9)09TISMw_pKm89d#Y+*N_ zI+gnKTiV`x?t4|4MpM?^K-S%4?R`irx9!5W>Nn22d3A7mg~TL^A8YY+mE_c4(;l!H?F z)DQY1=KwH;`(!iEfJy`B7NOZZ7BcFz=I(C#?k!6k((0l4yY36!_wIMs?vJ+T7Aj#6X4ixt$Mez0a}Q#Qce2Rh z;57w2YcsjElX4O=994 z=TJJ;HKUX0M6vK%Lp{#ubl#CIy^G}gCpxN+mRId7B47!b|LKVi{r$ylk`;%1VUo9- zto>@8wP$qos}n`R*WZ*;Rfm4Iq+dAZaj!Mo4frQ_+E26u9GR$3wRv{S66j!8n2akrBOJ`)c59(MxJjSuUl5{d?cW1>%09?1nH3E6! zY6!N;^dN9-0Scl#E>2z_lN%`({V|5}aSQ5$28nv3;)uEXgXuF>kONXotc@f)iW|Ai(S_&I_Z^AYdLcDDl zkn{L;_|BPzknSnFRQvWja&$ifQ8tNXaRK<&OabV6B35XAudCO=WV0$B)w{C9lnw|7 zTSBN$WOg-sl2$~96)LqfntGNN>sn-;`J-ZjN8L+ySbG|h88;$#ieRTglDa(ubKY{k11sV6N^=J8lGuNNp%|+Lr9Y`)P{hY1_0x3o!fPDAuYZL9GHics3m zf}KQ$=%y@_#8MQGQs{RNeusDWb6!%IwIx8ENPkih=`vJ~<-G!v*mK z!PWlIUwFjGk9wWmZa3D~j>Mx^uRZkfF^N^>H3WHDFeFlF+F4}4}W=-hmHM?poD#Dw*JS>t?C)+&e2LivqHZ&B? zY&KglI&GJmmabhf(QBJ5CB!76Gx*wQUK%reSK{PV5WteT(yTLKM!>fGE1S0F%!S|Z zpU)5UH{G*Jtf!fMweN?`{a08nsa-TCdR>wPIv(u8CcPAW#e?@Q{EVOHhskif(hvs! zs;UCJRBQ$585Op|iQ`qk;C-Ll`?aGjiE%T44!r&O}r7ccYUZFr@>SqYqK zIc2k89o&P)V;73UK^Y%xcG-i-_91fZo#|x*&zP?klxLKiza1gBgdz9&zFl<}H+va- zGT2Q&O>g6P0x`COlON2OO@azNMiQy+bDmMS)t(^r-1QdM)4>juR~LqFDCeC+9jCrQ zHa|?(%VJf5xK_@1S@L3Ie2-6Zicggb9h1r|Tuv@;nuS>Tr{s}1vYpJxv< z^>%{rcg??$4EFfOLJB`$cA_;2`r`td15h#sOO$cGo0#bKxOtr+R3*-k{*I9Pd)MY0 z6ZdQrg7HoI*lApnx0!Zo4ZNfW##b(OZ*_kml9=}Y$=fUhKlv;D_~HeA+|iFs(#W6u zi+=oGKYphlyg&I1ci#so^b7ml{~GbvIYCe!4h@MK7BKL$`+xqe`+xsUU|6^Mtxok@ zUFx?w)NlTeztNSyMmKyLbvIn2zv%wev_V-9Hl_<2n2ky2Ia@0kT>%Z%p)#hR?+bCMDl$_E6mw+FPg^Qg&1n#$SA1X|vmfPX%ySUb#68a+cA~E_eA@igxVqDNz(xHc3eoV0-rN%-x;4 zoS8eCduJaG+$w2O(Cq*z;0@3KO_882iY7pi6ls&94U#xWf)q&60u9ih2#PvIfubqk zf9oPZf4}cL=iW1ScHT?MmY1+syEFHm$M=4o^Zt>aKXmA!L;TlyDsEQ8#`c_FsWhTW z5bt&#uSDf`J!mAm-`qX%Q@dZ^o#`BH`CD<+Zk2=G&LKQeu7->CSlinqGs#pMui2;(F+L*py2*^1U%e!U*FVy_i6TS3fc z8tY!&--ufFowcy+t@-7!7A9d3V-7RIm39kL&w3Z)(8teqoV5HJf9252Q7fr>7cg{K z_VJDvwJJf&OCs~K8PHDxZ@m@ZKP|u$!?k4bd?Bd@7|E~g#Mmf?G%s$3aU0WoO`nU_ z0GW2uiW;-tcCqE}=S4Pb^lx^)I}|lZ&UlmE~&}E_t8h&$((+ukric>SJHo ztv;co215BWQ07oFzykwmpoaja#{QJ3pB(R#A$@F&?}_fQaXl2#GY+OdubA$S$Zjl7 zhr(&_HzD#Sz}%Q<6W*Dr9_>7;Ky(Cd=UA6)R4zLTQ68)X5Zw^vR=ih_RG$+bJlZ*Y zJJ_b&?;H_e@BZwrDu73uKHf=ot6t}5Db)|vM>>xhwXobdT!X~lU2d=Xor0evt#GxS zK%G#1JQ7x7sEW>G<(ePI_z=Gzp@f#-9cRLTw z@3uRSCH}g6UwyuMqWVe9TPbwk2!N2QQ7a&GkLcC8!qtwDKgMDYO7fAK()u3w`onzJ%6GID(1Ez7;#kZaY zkGyKNbZ7N}>5EUNb3Wx3ijuElpD%VE@|-ch z>W*2>7Ie;s+j`bf+?L~K~-6Wi+Sa4GHZP5GEO1a$+caB?nSJz{2 zf`2m4t)0irYkNQch`T+<%=!9fdkos9zaChBCpCY#OPa|iy-O+Edbff&hGXL0P>weC zyfuu#^F_W<%ox201^k57!ExBxMZOu8x z{9M#p7YUP^?i{-w)FGo{Zwpohd?WFO&U?2m&3aca%zCd~ob_(v|6hC^&JO>J&o90+ z>%H?T{=PNq-M%r)L2lsdn{Uo~H?HHAR|PURU_?}dE${WH0sm>{#_K1%E%k zcHm=px1-e%AKwhiRk%ayx!kV8`QgL#hBC-_1~Oi>#yMrP0`Am_>9=7%m2TRjC5h2F zMziKO8gL|&$cx+cy59=pKxP$O^1(8kYOn0qoA4Fmb}bRF%&SM6fd?;H9J@*wm)n9f z{SsSjCEjKvP9;#!UBH*Z_V7JspfvZcB|%-5VBV%Ti|Ozde#1+Cg7*N1dJxDsTVbu{ ztp;8#SW7&(j0!!Un^+6!_ihEjU4f`9J;iD@Qp`4@#Pe5c*j>b745IlLA_p7=s|;H* ze+;+PYxx8P>@|Ge^4@C);Iya_&sjnS5@cf-Xfur9rDF(#pV(W0waE|sO+T#3tRtbw zP<)Chp`+V?UPxe>l{@gtgNPKoQiHosU?yCEdbM6U``%uzFvUFL0vka&iRTwyC`Yw+ zy-{3PIJLC&%Hm1!f;rs9cQP^o(O_k*pbWd(Te$=>xdbZVQ^L@T*`#|>rF~wX&325} zFCaRD2nQoL8v7`E-qmm$dkW(ic*tTAE7p=9$(Nt61fUdzGl0f<9qJ43{dgF^bn1fq z^>Vou#X$vszI5t}tZU(9apBy{HU@xY1l!nREntj+p_3>Mlc=SEA1oXXtgHtJ8!^6N z9wj{V-&$D1+J|AnnPI-!uGQuj&e{1f3};vk$Vnd2Ofdp7l2qf?>}+lmWr*~;0ag%#z?|SYifZ4> z#GnW1*z&fjkYTMhu`ar0ou4*{Gcr!O-J(azB^ZGva&FEezXQs^Zi1*J;A|P5(Yp0E zkka*nh+K}61hoL~8Rs~jh0wsO6_0|C(B@FSw;8q)MACE!s-t$fDs%P@;mzE>bi!;P z_II#q>}PTQ6iLq40U80gQUoerw=$J#&94OSwaEt#RPbQp--Yb0`Q-pY7|-GRpbU+G z{X#Ve6%jqsPS{Bw0slk&!vU8$3B;fd`6{d+l3x@7SHdwM#StdNrtPwBv= zsUK8i=R_c}xNyds_ZAoVzJ1ibno~xzz%BH(fHy@|U}1xWaSURWYEGzwyTp8im0Bw~ zbQv%ca-#M4G6$hbtOY)lt?#Ni>?~?9UcsG`qMT5x7c}Cwg0dE@BWRlJSgXR)YRtf> zRc#J}Ff8%=UOQ^F>#`)vB{|}fb!}AxY}G8d9p0(Hb0^qQQJOZpnm`(l;%q}B7EO{%Rc~u|T3W6|fY(}+BY|CTd3elwXE%6K~gZrZhqTBqQpEv7*L;Vq&|g~dGerpSks7=*cDp@J!3$&jQ$ zu*4QtQ9&L<&@XVNFe1#>flMJyzzkqY&9p|Ft_03$P7E2+5=4sR=7(ERL&+>$0}TP3{whp6k>s(!j07ccgB8Y1i`cOw93T|H4xvO^ zZEzr^E5Km3!vu>nlsAJFa%W}@ehrzK%8u0;SgtG`-U|W4DWg`nPDTZxmm!=0*+$e} zS2d!7#~SNaXsMhAfg_kB-XK<^K$sJ z?*v|46+HVjvKDfCW`u9Q{|i72%p-vj$H52$KEzF#3~$IPmDyx$(N-!Z3^~&D2UYWZ zE*VN&91`QhD7r6zt1>1Rvhe_lS}0Vi&JeOv-U?*#X0QWv#fmB>+dL)%v(-s(R%ff% z+pth~GHZn7io_(t!B{A~C~;z&A#!HaeVVJ9r?onN^5nw8>CDaJfWYjH>)vPJ$ud=_ zz<`ruY!43+Iua{M-iyFD8YQMRG((%{gt)dMT4^}Im&FK`0N8**NVYcuJ#IIfNc@Qi z0I7+*vMkM2AS9iNDj!;X9R?T>3)0c~#s1n7jDl(_kTRaXMw}y$2trdtsJTSQr5-em zN{l1ES*&Pr(`w!JD^Y1ISF!z&fQ;Hrv7R8tf||`Vn#csA4K#j>YWy-hVP7r+4@G^s z2wp4d%iL$?wntzLHJ-_tGGcl zA`1&}t9XIj@?(f4vLDa_1rLFO$td4B2FE9%*CPlY(X+_)@^!fS>up3&;u9XED122Y zBRVTG5F;p9qAZT1U;r*0{Lzl_jyF>m4@?&9*P0N5NU=k`>k_|Q5=A%X&BE^~2Th@F z@CU}$z>I_hxCj_H00w`Pz0RHRE~I8{uubJF@&V$HtHAQ%WMN%oQjjU2g;lLW_^42$ ztb?eAIM@;%C9eZicV#v5JV(jKjqy4a1jr1uFDY^Xppo%Wgdza%waZt}c(QU(hw2WF zg3vYK0Cs@}X!&K(r^pjUr&t|ZsZ|fuVEj2mjKFu4WSalSC|sdsKk*+ag781fL)?*J z%eNY#1Ydv(p&aPY>xvrDN*I-crGrpoh?ar`k@sdcL*IMr_SJJ5c#<6{C^-r!nsSmN zLg{iw_DwnEgYm3s0FF=929jdnXEBU4A>u%Cf@8!HYEnW0n1V8e zpTb5HPSaW|f>CGVnuvhWz!MaJYGIaR1P~Q8vC39M{y3_CrcC5yAP>XL2#BlS_+dPA@Dj*%%e)w7g}VMKO)5Sm=(jArW9P2m2He zYtd8?6EJbPa4=(cBtwW^Jy zxGmcY$ePQ9)`y2+9W=7H*%s*5c^Jyf`fQN&A^2w|j@AGuvm@otDYW#;9t?H%%&A3XC~jjJG0yW) z0cns-a(QCm!2OUY1-NSm)-OnuA3M{`0@R^cQlPR8)Nldt%F}3U9I#F-k+(D4 zLOL)kPbxM$H{*bM;Ae|nX+mn*OF~1~ml&6<)Paby2&?VPdA9=H!HU{xYWG5;4Nvg6 z+U4{sJv#Z+xl;&sxY~t)T9N!7s6jL-fNF^juqUi6>c%n%_MCii@zfqkAV**;MjcOz zlmR~#_6ovPLM)(G1u>Tf2ueyqOPP&F;aImY`Bg|8<>|PxjF@l;`g_m-Ays9jyOb7T z$4ZEooa##$RxFNe!5m;MM3I%S_==d1{A?tHa451)yOPTd(p;gLt0V(6h7;nSksVBE zB}E}8e#bADBPdww{6ka0UZp$3ug11nmV|sn#*iW%QWiw?h`KLcyR4BT^_Mja7S*D4 ziN|NlZbC3gkVv9-MfW+b^R*yE4(!!G_}8tkh3nqB=5|033=FF1CEe1dQ_BKOk8mcO zFvJ^XxCXIg$flrpNDP|y8lsMvKdES(|3aAo&ro9i*VrE*RraiZz?)pg%>aQN{ylT` z!nK+=!*}Ei~L@pu`n*w9V6BwyJEE0wR zj7CcZE#axSqMJ?WEGZb~Uv08N1wSNi_K}KUD0~=E?J~yXDvSeO_Nf;b3CW(PgayN@ z9+gz$W>of9nSRwuQoavsK~@LJLz97FHRxMJ=U^+;v3@4#YIrRnpdk#I{6qXpiwIPI zV8bvMO-u^rXSmLC90}b}pe^6I{D#;!5a2R}>J&OXhzv6EFAg}hxeZx~Ces{{B#Y%W zBcd%SRVay=OTnN7AvXg7M7Uw{bl;T|G~6S9cFcQAiq66ZdX!VYCniQwg`I5 ze$JjUg9P?BcWxNln7kd~I1S`%(W z!bNM$9FY$BwxN2!o7HXWpb`?4h*6M-m{U8DEwU!eYzkZWre6Wsp}kI*NqOYNz3NzzgPDLyo7h}+2e`Y-|LD_*c*0|z$};qF)b1TijsW1 zO=%Amg~Cr1IAj4Cj*WjtqKU6v z5b$>zOxT>}77%=s=mmKZ@{yCXDj{khbdT&Sxrr|k5>ih|#$nt*+~YR9J2jmM3|)=j z*hbYvx{9Fy=%?WZK8#3&gacS2+E`~W1X&Hs)0|Nx*_Am|av+nx6SdW1F>B!nOsbX< z%cCj4(mk6=K?WbVg9zeEmhYsGiI4-l@exZAIiwm9G+VOuXNWNVj~FBRgfkim7y1*< zpXHo7!Wc5LHYc?Ok3d8W2Qw=~0ttZb160QqEUO_OZK#biQ?eci1 zz8WDeZHOBa`luE{L`}*!cOV)NEyK9NSTu<_1m~gcWN|Jgmn?)(g++y75G!Ij7P($1 zZbsXrJP_4P!ZNaujM4-a)Ipfwgcy#Pg48NyDN?FK;j;JJ0wg@i0DjcK9FWAABrOt&k6X)Gh&R6^iHy9=pk;LJi`nP3McLwi)N zTtJKmmcn{1S_Q9RkBtyTE_9|$B!CDunQqRAe}-CNkmAjveY2=<7PB{tNmOiXV;obq zejD4=R3R-bP*5v^e+;le4BxtBy*%t7i`A+&g3^;wO4-=de3C4dZO71O+=a-`?&Ygx ztft4s$mN9+>4 zc3YmdyWvhV@5NL`870Dz1odcBgg__$__o6nVjg9U9at-HHy?|O?a`Two%$uoU zB|ljoECIVd2ZSa2N){8~iZm6GX6`7aZJ~o}ezDvRl}vV@uy6RX6C-C9&3G{;87|Rn z>H4XF!mt_2VxUdx@(g5C*Nbc+{W1#d{JIHAva#4)kRuL-Dp^?G6NqNJ!I&Cxm#5-+ z4L{2+pw3PHfIAUBym$-MMnKEOH{QB(>-xL+L!+r;pJ_#48rA27u8$_z6|ZP&cmLeU zUTt%B@$6#O8{ldi-JhDB%wobQ)u<(QWms1pDas?o>=CXQI`-Bj*o>xvuogucc8U;r zQ7bI7k+pCSjBJAOjC*hl{JR=d;4BM=+ zbf}4)gF&qB!>?G@7hk8SbQ4b%SQbD$qjh3HiuC0uv}QCtZ7c1Za89-sL_ukBnD8|y zgYPoPYXAY^Dr=UQAHRdX>4{^o5OW9XE=vi_Eb=c=C2f&uqFaz;tabQ3QQlk92A2!z zYHyr2`dl!sBm72f9Hbjzst{FGBK!{1OKN~A^H&0d0=fK@k5Z4ke|W_7>!op#*rqxl zmrubcTZRsiVq=zm&Ux?B10dLd?x2<0b?OeFDjDj!i2@r`$!Q%j_Mf^iJLt!5M5;}d zPVF;>aMCBU`r}z{jNsQ8L;P8Aq`?rpN&w$r&J_NJEfj$pOTrAQrV$D&QJjb{mXi=7 zwuhFyW-q42uO}DJW;H^b$cq92F|DGx3xSYj=D*DjMr?N@3g%EJu*p~?QJp3AX7=jAP#fP031rKKt;%HMI)8y zXC9qlHGBpc1|y>&f>C9{gx$3nu~N0d41sqwVr#8=71Q%Y5)xt(tP;YGA+&9uhAFy7 zrntMWRx4npYN`cfk)IM0roxt>RvKa$p`+HI!nD(7Cf7*VKmdU!NH`LKq^lYj%!O=+ z1E4%i=$5Q#Y7qb{>}MD42rabQ6FZpbE}4E?eKy-=ck?V%^wr+Z*_8*^Hj4!q*GsH{ zENf#U4=b8Hg0*3uGwMM+)(ixFO3<9K^WCzTd1YX$EENJQu_^jwImIPY=a29Ygf|zD zaZRhh(B(T8kS>3ChwS}okL6x^dSfSTj0LBGfh2Tqxr_yh;`WZ#6-&u$MU*-M0Be@Z zv8+3&CAK@a1s4Pgv|9jBocY-8HZ$R8?7 zkWUz+n^ka@7Wz)m%1ZtR?xeDC>^|11n^>(`JXr^;Hhn?dP1C+gB>^-bYA`|XD%f|A z#?=dH;FE5F#*W78S~ZJOCz;MWBFy{LuZqaVbj_-!#%Iz_RafFn)TU}XJ_hxux4_@n0#^_GXyxoafQw6fq^rcF66p6_xno{vL=?!+|WF4tc`I5L~j78jN z{sOmj)OJ*pGo7Xvbsrj0_n`}wLdBA5+C2)e+S)w|UX#y#Yp)hm8xGVwS~>#FeaY%U zA`I(4g>;g-C$PMRuE%aZWpO)`GmMDinwquLsMbuXbjbp>(De*R=ekWzr7L)dXJL%pYRcFxPT!cO z&vd#b(*Yf(vgI@+v=8m2w0*??OgWw$gUzG%0|5i3?b1i~>MfnRv2@C=QcGoYxhH8U zouZ#qT^?yBMfmJ~bdtLIQ+hj{?ofEhFx#cIkbxK*?H<%aN<>Nq$>A?!Iw3!|vd`V4 zoGtHJkJma1Yk2IwQ5R%`n?|j5(cM_;*5rvD0be4mH!ZAm^IxAp9r?-jwhitTrS?%( z0zo!rqbQ4Fr|l9&X$HG#8Fa!vC5B~=FBzpp)P?mmr`glgMQD`Jwe%c9MGA;Mw{(3B zXbzQib&)HU%-{-$%c$)kouO8Nqncu}wopjG{p$&xwjp$yZqQ6%AU-%zD`;AC)xQsP zG!Ai=Vi{#v6X-H>I#YIlg2cyb|8xobrmf8|6&Tt=WrRptxZyN@s;!q*66rIjVI%Dh z?fTq@mQTYr!Yy!r$L;q_dyq`UiBtz6(@*zEsxF!D+N;@fA38lLi6(6G%t&j(9#1&^ z5{4P6!IQzFp_va?9}Mp9q&^^dtPE=HG=#Jd)24l$(A6e~;mBH35t9WMNdf(uIsr1N zJ<_5tW3@XrB?xd}N9T0yoTis^MH@LsGRB4?CF|mJ#XxThrx5}9{>^^Pn`2uLJ)N6M zpaShe!Cl+no=vmPK@FSx(5-1Gc*0iAN&7U%2Woed=F}aU5({APeX{nYizaCk%cQd96peZ^rZLpZhTn!Hj7W( zVmVfS<+RO}!U^Qc6&Oq`9T{6i4{oazWIBgAkJVE-MMLF;-IUX{QktMjT5w>~{3G^J zDh8%%q9i8!bx^vJXYBS#W221OJ4x)Tw>3%Q%^1FvwJHc4mRNqZ!*@hKZ5nM;_aJCewj z76Zd8nuPas1B5soNgmJWtv4Xxk2raGapwaUZ%JA&aJIbrjDc%NUN| z=Qwqf;{+X!F6mtuv%S#}BeMac_coFf$8T)hqa|v|lr|V(Vpc^_8p#W$LRB)#OJ77m`VBCl9MW{dDo2qqD9gZoK!;p?emqYuu zD;iep)2j#tICZ1q^j(U!MG>o+ygxCEnIkg<7Lt0v{>_P)Ys${Vd|RT64yPy4ARui> zoUj`)<%khN2Ya_7j@X9?z|bDT-RjdcA*Q~=kPbx5HcI>9{q8-SrtvV>b$EHtmc#Dg zZvUvyo~WBG3~x4^seZzC8+KllVi-0W4Y=3SUI;td!{%CUTy6T>?wzCA4Y8dUc^&Yu zt3maG>`ozTP}GY}M}FJ6xtOb_;S-<7=2kyN@alRi6H7pjHsq_1ae^jD+dgI7e`i-o=XF7A8>7sX3;iH&C? ztb5QF`{8bjO@+w|BVgWPoA0^==SY}ylQvCTUU;0^hRP7b>$gt~ z6FQtuL|!U*zDvP#=S!GZx~IVq2hH63)XbgXwc3w}F0b(DnkgH;EkPaY8Y`Q9<8O>j zRU9h2)0sEZpB#m>+*Wj#!ba0Je={$qJ3k|_4LQOP-YoLOSte3?df?@z-Tf?Lxi6jU zsoe0?oep6yn#`(JQwfvzG5AMVW#aiZkeb7sxpY?Pe z91ezlGDkuV8E-sjsJ+-Z)^)Onv&_GfTjp>|&kY4Sf7{Y|ABpCK%uEII7vB5vFn;OO z1&PDIT(0pdNBsHHsVl+`3nz;U=Uz@F9YHy&q&rnTv9Tr3_umPeosBm4ePW{}k8W(@ zKb8kNf9f0_!l+S%tMwwDiijZ6o~M#bcO(f%?SCE#Jgw;tBQe4^W1Nrgy*(=x`+c3d zlpFt)p!>1vBh{CetFz1P)q#Lcy~;Cy_Ae>4-*cdCBu+O5-s}bQR4~rVj{7tIr!56- z{98f@f)pa+<2}dN$W9y%{GE}(X@e#`W1@)!*OpV|EDm8s2lw_|oRrP}jbLXqY%T$t z|7!U2md*a9Jlc)qcl%NO{*Zh%qxd`bYbK?u4DbJqs8qavx(`d+%{c_{-}%-^{A3BB z&){qy5@9hBB`hwcl<*hBF`M%BE1-lwAO3tdCG7~;t zj&BUdNs7ZS0EgFxKX3J!IuQNIW8)EwwQ-mOb}KVDD&4uFJKw-V2$`AYGG1GjUR``} zKwi16r>`Qed2m1;v?1;?k&9Wf&JwBqV~(W2V&rKL$TQOWfG810FWAEl*)Mf)YNMPt z`GK6;=xCG}!qPQo1}fZCxL@oMx@R77h3>&oklJz2zC5P1Ea4|SaS%UH@h>-uB9Vks zk7$)290iGsO!R7tI_gMmdJPv2GW%w3pPTb;$a#f4P89W?BBa0HkAk!c;(&n)2WP4B zJkEo&R9Qtn`dO-uGW)5Cl-Y8RGW#>c%9wO-pr#gm$PhL3y`{J5;DAHkSVLXA?5e7dukudmjk1%*2!rlFG4a$huH(C8C6d!tXRV`^unn0ny7`- z-L;+@M1Vxn|3~2m;0S65O?k@eAKpYzGj*;5BZ9I9k@@bNij(}<`ylI-!p40sD^B>m zz7*D(FYA>oMLld07lql>UtC0Fr>M6J77;zuLl(7(gth*YygEt;$(=ub)Ge$(IDz}% z1nz?qxN+<{&bGR6>(aGr=B(991RsWn_&~Es9kU#1t%9H56%J0|J~)B<-~?`DeOf`y z-`2w;aq^`cDG!gA*EbjL_X*tA)V=e2hkpQd+M$xP1I>A}xUQ}oG?N0dw+FXMh(iKz z-txepY%Zo^%-~GY|eyfDz3;oBOL*aPgcOT&8 z6V^3){Cv+)0tTljEayZ_iY=mKNIwZ3ZWZ>GCWBdyFKbfu&6 zRYa=_j9tr_0(uICoW^}{!G<1I#G;PT)Vo6i1BjP>bo+k~hb7a)9NbyR{~4PYb%gs= z^rvJuT3Dmm6V~|Q0r!ho01SL43s)RQ`N7_044oft^uM3P2~7-nY?LrW=i8Dr3buI< zYFcxK@CYx8`;gprV$IXe^Mm*5(Co80+&Gf|&3(QA#!}5;QkJuX=WWib!C(3$ZPSM;QlU?RF8D3_iT~@1)%Sj2vds1t*8LUd^Ghi{rbGRvLk;27=Sl*x{Vj_GWGgBXGR6 z&Bo#QzH3W4p0E&({~f6(wI{#utVJmSyUF`Gt|>%;PZPgnzoM zgo8__=6GuLmrK0)>IBo0*`aiMU898qhcy;ga2jg9?=G3L67|k+Smkp-6h8cNRD5n1 z(woN)eUB1_BNe}v6E}{|duKEg!Xaa8P!7JJ%!}N6v0=udlKN{PVsG=scr0 zg7Lg)y{ip<^S(Wuu+O(6DaT)dax}Fl?G}1-65I!4ZXY|i#;%I<38XBk>+&duw0H(A zkKQlPz&yCd4wf{FmRP!L$&*&JA*AfMqY>PXy>HJm*Vv`%`@cecACRp89GMAR#l|}+ zVw@Bm%z5v8|C6nw=zl9G6dgr>XT=`-To|bn+zlG+O=hU2`}|6&WX1KduJN5k{cdhi z!&QDdl+?B}CozuS+jq68&L^0}?>#DhFNnf();j=*jR$)Xr3LK^BV2#!Y~VkS4e&t| zSPi#7Xn<_WpZAYDc!5mRq7&~OF_t#pOKS5Iv`L|q%_~qQp!*!+^D9z#*hj`1beqTD75*D{C zs`2AE^}eOOW$ZVw_Zbg>&S--Ck9(-`ll|}MwNM)LNJgbs`vR@=$^O^;IutwjsZpr+ z&U;|YgKL9%*Q{g{B60o%!5|`J4g7Ld%6#FRGmM&Es*YNrdR#cTHu&J$VAI>g;|WH+ zHaHdLzxMsbdX6xCJ14swRdaC#Wg3YevP@%qZ6g}%Qs4)7kPEoR5+<2Jk!Q-$ES&$ae?H8>Tg{cJGau$B$-;wtn6Hn`<5T!BeV3k^ znmfYw{RNHd7yd<$)%ffs=bm=YT;p!#+}>Yii2Y_?NOYcsi0rxl-LVn-eLs?QxP*Cc zgMSZhl7}=yQNgN@Lv)Z!hb2gn?}Gl|CVA)n-T5wWZGmA|i1r8<#~<7zkGx5GU|ZqC zdy{->R7F%l`JX?1SNVR*5b*9b6JLKuRAkH>3r%&*g$z%ESF}y zP%#%Fmh?~;H|_94{ibo2`K!5Q_SZQ!c(>Q6xbELw$`CVAyDL~LEdUI|@b0cI`mqfr?TjE&P zK+f!Jg4{bOYHJOu#wf5$uE6PaYN7a`Wa%JQT zXU{GyomyCOdGZNobZ0?-Ha5V_KobSg`>wPHig*4VxKEi6hxfhLj#}+HvR?1CLtL-U zGgs(+`s?t(ZSMqlkRN%tHzW>MYXLez%`t#G5;k3Hw?KO>IYpD_QN@U#BAlxA5zy-i z$^&aPdq`lAAR0F3$;C*(pl@Dd3N6E6-?TgxgFSYAWpCx-56Rb+{?&^{h|5>Hd0?s(D&g5TuP zf*!jx=i%_9Roo0N;066MDgkN*$+J=x4pn2l9mZ83%reVi4A2WH(1pn`FG%01uH};` zyoHB=T(69R0$kkRUSahNzvKev3RmX9KjE6U6ScAIP5oH72q$y~Nl?b+J~)}C-AK?( z=_jZ~O0X`TYl;H*!t$N;8F58G68H#@$#{4T4Xk>PwOw{bE3Dk9MP;aES&lOlE1z(r zY8lrD8);Av5?_Y(SJ5;r&+D4z3h#so8fEpfJUJ@7#AV#V5sciUt|^<>-9j9-TbOjq z_TA!GBi;yu5(02Qw8|^zys#4EG(1FzL`O=%h)JF}z$5^vAXN19>15P>M6tFTvs|TE76(#k8gqf97G6i_($f%~V8|3?L zPvG-Z$=y7Bl!y0DF*mztfu(Ae>k zou-H|swQvd7Ubis_ZoDmoE~yz8=4HwR3|8hBsw2djEqUE$~S(5%hX8jq$6f~eqo|L z7qI7zPvg}gRVMb1jOXOh?%TgE-G)G?;xzI+uh<9zH6KtC3%%38!`4g_&m^8JsQ67m z)44ePnAW`8kD)R!pPvZKPY}#!#|3kLGq~SXBsYl9?z>1j6IWI(E%o|S&4p2Po2Ws!;xW6L%ea^0yR4h@sm!})@$y-s%s#UUB2tD z<7^ED!=OhpdTR6qOUE6csB;wU99f^k;HO6N4rY;$z4@lMPKz4OE-TbwscCDdT8=Bd z+bx)-j2Ch_Co%1Uo%CabtE(= z)vu}hjW$F~b{0*$2|HXB3Ic1jHv9l{YhtW2s35*f^-Oa|q_(?D_Ao@XHldKsi__^i zoE}}rveYm}X|WfYgb zeHtH13^YJfnF-~ssC5^Pp8>4gS;WzI0>2fj9%E76^Mk3zi3$C!9GN>23i|1n9hFH>Lm8ck?Kw43y%`gH2BDXH_*in_! z_TV~z4jwLoO|rsLwr)n807r;&3c(nmB*I&Q8Qp-MmD(jgDO_BBgEAMPG6_ORIE3L9 zyb6)Jh4@yAocKIO!lZE->LRSjT$lxK7i1kG;Qd;R;>iY|(+}HidDL!#8_d#R3{7J; z6UdRMN?fiYk}d1!tBxkDi7#1uiil0-xYB zc`BaQGp1$nrgsKQDTv;^cizU4IvUXa}G=xx}(TBgmAqVWId96L1rn zHA(|g2Q+>_eK`9a8FCr>s*hYe9Y zbssB|PAOasDk#wq(S7r^D{ssq0i?GM1r5pH8r95^aGE!KSmUo<4pu`LAE~=Q0?H`& zduUNFcD^?jlabJO`jXHf`EVMfyzy7VY2Su7|Cc=49o`JS_&S~IX3cL%ZVhBoX+=#~ zH0)}TM4ve8#5VI#dSF(i`$!;5Ac(9`<$FOLrkK(AFk|9Gc_|}?2RZADod+~qhR(-v zTgGTbHLkc{B03M_)ghv65IV0T+#%OaNdlQjlR}Mz{f*gOyohtaQMeqG175#2>s6wt zf|O7*g4GNHSi^s#t)8g$>-#shm96_ZWCnh3BJjUL@IN;$`1`xOeWTc9TZv+48tAcG z?RwqMT-)^TY*Xj^ZmRQGY~IfFit|x_P2x!Be|*7I@}RGcG@(@wEZ8xXJV;vMre-)N za_$0RXDb1^;4+`&bHmFC7xmVnv<@<+>A?$&P9d$dj3}Jk1-N(;&w1~%K7f)W1P!+| zQO20u!r1F{!eOuHK>Q>yJGDNhTMnSE$dpJf;%A*z;4c0qAjYDXd|RhO3$j>3F7%iq)}!y z-0U-j^cjB@l^J5k%`(nQIjD|j{8?D_d2RGy=Y6sBz~;+PmyAqyF6u5(BsPU$`qL?1 zuo|f@k9Hdv@3#Wh{sDu;f?5XUuvKo?O!A_j5pvveRj-FQZa>I!E+buwmc5u>kalwM ztdv}ffXQR~Z-2lGlJ!uQ{m9UTIC7(tL!cwOzIuNFXhqsnl0V9z?JRCLx48bqV%@=> z!64RNvtn&pw5PI;KpXK`yc<_Y>-Xe^{>$&7_5LETulgrb<&xOft_C=cb`9kr4vSscmnB+G>T_Ji zpXTQ8PllF@^2cRNWf*Y#Vilt7jxgxc3pC=l;{eRrmF zB#9CjUe^zG3icU9hpr!Lb9E1Oj+;A!N@lF(&Xe{N@MW;O+<6?8x~v_JcRL@cL}g^% zYw;YsYHpyi+j;bDzXmgV_nW&Xeo7{M6h*Ync7ivLBw-z~w!@^vKvFxl4;|?osRXO-b&Pj>%Wp9-fhSNfQO74ofrN6vP3_+6 z91k0SR0*ZE5jlUibF`hT70(sp5Whdy{bdPNz)`D&VgNY1Ex?^iEhoF3rxf1KC`V+J z-Oi_S-{gka`1E6k4t0*}xY-))+s}1>k$buGH1`0Ci>ovQu&3S5F@#~(+h7Agyn??U z4jQ|ikG9~uw<@Jd(BzeajdCcEev}S9wh4%Y6;Nz|1ATX^k9Lmx?Ic1@$bQs$I0TU$ ztF-IQQc8#btb8CPDX8Ql>YkEMgv5#d?4xEJv@20*yH1jNI@m_TNKkU$6e=kvCAk|( zNc5=^loyk6*oax>W0pa{Y)@h{EQA+s!=T5^V z)?64QYcdDKzDkeKv_VDx9_%_ znBq8ACxXYwfp36%qH@?+0}WWg@C-!-%5iefg>@2dE%KEc^==%{3|#vPSa=6Zs0KlT zNj_G_Q+G?^5R{N2q_~x3e}p4b2($1<#o9MIj|7d)-R1Ub=W!J$;9rm;{XH;8QqrPK zA)Jq3QEBTt$ZU;5yz@-gr*d>AKgMWl=^u}hg(~v+WBgEmpQ&D|{zUbUs^8l9Q{>|} z{yl$uHS%zIDfyeISBlezB6JonnwdFVXs_>pF literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2022.doctree b/build/.doctrees/niac/NIAC2022.doctree new file mode 100644 index 0000000000000000000000000000000000000000..52b7c852ae573c011edd8e0ed426e106413e13a0 GIT binary patch literal 125251 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 T!v|?mFbySVUub$5uh{(mE$`o_ literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2022_fall_minutes.doctree b/build/.doctrees/niac/NIAC2022_fall_minutes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7a4efa2cfa44c2c577d66278c2e7be89700dbde0 GIT binary patch literal 41013 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 dm5)1K&5i5istsy}S)7OL2dUV literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2022_minutes.doctree b/build/.doctrees/niac/NIAC2022_minutes.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8f53c6ad402c418164affdff7dac826f1069bf63 GIT binary patch literal 177919 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIAC2022_spring.doctree b/build/.doctrees/niac/NIAC2022_spring.doctree new file mode 100644 index 0000000000000000000000000000000000000000..23754c2638ac7d67adcf2d33f0f295010a05e412 GIT binary patch literal 76268 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 JI}~Yq8Ow15frSl zgFGpSsiL4Y9#DNijuK{NCYUhnhEi&{BrnocCj&!cm%cQI?&1pOVU=)yI!Lj8M*jYg z@)m7gcg)|3kk=@lbi|Q!ZP&KISstDz9ZHA=^`KCOBvc}zL?39|M&ZlOeZQ`3gp7yN zNz*Y__ANKyom)lDFa%E#p-HR&IB3yAI)28P!L?ys8I)H6I*QA?aEX!X8YD*3GXV|| zNDpGU%nxTYAT7*m?($bSmw~LY09KVHWIWW>D7ZF=_mr6KcjDu>Gze+~2R`wLnlPBW zbKb&bTmz1wD+B%kWu;9yeX5e86X2Kz(cr!dGW_@ov1Y!X7vx z{c3{xc-2&IOFPi*=&mv;??gf%DTSsM+ys;Nh1o1yzxPEOaxuj)i-{*$Tr!1Vc#Oqi zmcY?7Ec_?EY(HXvg{8WMRx`I<_+ql@6 z+;J6?%&OQlk!D_x=>}C?n{`Tsv|+f#EF&t!zl~nSa;BJ1v99<($pEPN7)`;EZK6Ow zQZR{z;_wYoY_O0Kr8vyJIN>kG(GT#*QeJLg={!EPW6bbogbY?Ogd_tMIZGvKs zeQ@ju3A;Y{aNMg+H9umi;SnU7U;tTd#iGB7G>yah7Wg3% zMb9K)pLjw<=4YFFJcPOFXPgZ&!(fOa03bT4h=*SpJj9o4TVHQfR-6u56dFYst>NHU zg~QiEzsp8KVCl{_52DbX1@FkD!ypcBIrsWwb%PV$2A_HigzJ+t{S1fzD>DP88vubK zVzj3AX>zFnGK91{p0d{!qVx%W6ODeDeeQ#m<*Q^J#x%vy2V9l2PJED(Z+AS+xQ9>^ z851EOVFqGSl;T5QJ~Tiw#^^Btg&*@ioC`J!zh!&CTRRvkiR03K;Q>B4wc z-BT)zN^nlr$)`COGez@Mnwe8VMYI!)a=;GM>lQv$1VduqRx51o=s6C=Hx(EjzJbs9 zh^~R#_h|E5WM_p3?mqx#ry?N$zp?}fF5i3f^16I*0hrsGWSR3 z5HUZ9a&uI`CbBQqE?an1sFjah00(EAxnLCq$fU!fK}Szp7>NcQK5F6cXi%YGXk?Oj zHfLe>Aq(SASU4&=lXc8GI9_3cSm&g(6>c9rSRwdL-=?VwN)aFu2OF_s>Pbf`Vt2@}mtxQ}?BZD;}# z!{UJXq=?BTCd@i6!9fef5B{zIj_M*51sY>k!c2n_W|)$YrK(9;on%BpG1N%jla9efAa8nvo422uZ zS8Guccj!0+pfkfPgZy*T4Kfgadj?Ys5P`FdFqnOQ!R*5eW}aLSTx>&Q3*gooRpUdO zuwOTe$wkI8*P+TKHEH?4%mNC@eIBw$uki;KJcDTkHU(kYQ3YyOAfD&yR!Sy$3)#UY zhXUIeZ%Bds^=g|l)r10blFdAxAS4OvU|d=;ao5cz*i2_0OduZW%0A80_4K}y=2vk= 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIACAPI.doctree b/build/.doctrees/niac/NIACAPI.doctree new file mode 100644 index 0000000000000000000000000000000000000000..159228c0367d83ca286e3dffd47b8efe075bbe7c GIT binary patch literal 11281 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 literal 0 HcmV?d00001 diff --git a/build/.doctrees/niac/NIACClasses.doctree b/build/.doctrees/niac/NIACClasses.doctree new file mode 100644 index 0000000000000000000000000000000000000000..32b8df30e30151bb1b9b78fb64cbbf595b60e6a6 GIT binary patch literal 42965 zcmeHQU5q8iRbG2{c0IG+^*=JfjvLrGYkOwydi|^Mc$3ZU+Pm3gY}spTq{M0W?c4Wu z@AU1y?w{G2EQ`!TgdO@RxgZ2YfB+>CLJ$d&AOwhjEIC3#A|eR#0Llw*yz#~Z->K^A zuKvCE_U&2QVOH|^cGam<=Tx0j=Tx2gd3)j4fAGx%>|b<;KQb+6XI1O<9Jgoqx@p-x&v3?XAoDoE2bS%x#t0U5*9kPs zF}wtWxv+WPtp^UQt}031+M429J)^66D}G?zcoi28f%JU?1a83#vv_V=^5LG?T(C|qWOyED3%i#o}&ep>u9#( z2b$B*9W6O85i8P{1DZAnZvn#v`iRyuCuJ{ta#ckuYDN0j?&Wt zZIw0In-|@o5x1=J=8INvG3*k$m%M@ISUyL!ZU(`~U+Z)RR$zwRRoxwSSgZG4Z>R;L zSHAyk<@Bl3PbzP2TsnJBS*O3NW-zoVe{3FkV{9Jfq6R_vms=_YB^3k6Nv#YN1Yqvo zpR?+d%C(Kv%NT97tYgv4Lh$v&&}9vOm|M2i_u}; zh|+)?9m|Z3T+0?QlpB2mLpO$UF}#}#<^xOz7o$U0j2#;HqXpL38{^P?-n<{h?lm7X51Y%E4}@Jb;v%@zFt(3Osckmzft2oxUcp9i zfjY6@Jmn@-s1AheqWP$K(0pveTqf;Eq*Mr}Daqsu=3~)kJ3}Yv=$+7qhtcU8-oT5k zYp3gJj&2%$=bE);soZnxa1HD@mZo>eu%6>ew(9xN*X7GgB<5k)$kZDh6TTNSsn8T? ziA)HUx)VzAqA<%*_of+$hmtyPm+OoLE;>YhiPXH^>6$l+M-yJ$e9l~_L4d}NFM-b! z(JhLE^Gh;LGbQL*;RnrX7zOe7#D0`qUaEInuD4oL1TQhRj7v5)pNl?T@0GFPFXeo3 zNmy-(lByQCx7vj}5gj7=laTz{Z0zvjpnoxO5M@%cBAl04sE+wMu9w>OQBW+-a2~OhgNZK0v>B8ZGF2}Y~WU$XQh48Ed zR$!N7Q_dT@kE6`~n4s6s7W%{P>|w3v8kqmhk?3@hI=`j&&a5J=nI zH%(7>0>!ijrj7qF>09yKFcv2?LT<{Oz%jhY7a%sQmv*iyG)c|nnAf!FybQOwys`|>3P=DA1G zaLt2MWA=}kcd@eC_PKceglgrhBJU7V*LT^T0?Zsw&Abx!E9(~7#Rao3!ud6YnL{zEYlDCAFad4*i>Km z+)HP#D46aj8Z?!`#vkrA^f=*lFjmnDjjhm-P#n*$U=aox&|Szo6%Zqa#TTP;8vDU0 zd)jeAQZBGjZ3CJvb!E9EFbhPTcm2XnU^qQA3`=6%GR!wvFDG#2XwuPM$*J7=E9XTL zH8;HAm?q`5S3V~Q#!u2oz!uR%8YJaoq!MQY&pAgaPGd?$K~niRMx0<(&kVgJ31Qm(xLe>cxK7WP8s)qw?)Il^4^dw=MaB+RJ<-HYpkfgj>#u#w zU>eN3O!}K8`P{{`uYBPRi8kH=rRb___d-YIQYlM=+#*!=`UVqR5;+v0@z>X}-0TOg z$4p0QTLk2EF$v|ArB&6FqwnglrBg9WC>eM)#(0gJ`2j)?h1R{y*S|$_Ry{f2T+vGT zi!pQaNsgC+I0225jB&2AWISXFs_DdX^AILNrL`xyYAlPh423ev>nf!#tv`>s2u?}~ z^JDnDV)`ZdqH-T5P~}KA5W&DozHC(~;YKQ@Y%Jwq)orn{>1(h#+*cEw#gmGtczPW& z$?D3Ki9s~YE+S9!>M9tz7&OS5LRtj50(+cSL>*_;;iU*hDN>fvwOxIyh?nvTNaJQ_ z+Q>4g|0GXkV>9J6HTW3)5PS(R1M9;9g+D@GY3v>LUE6lA(Fi?&4?p@)xC84l8)u3l zx=tOW_$Fdgd|vRAx4&^+>vlb3+k)culDR?J7&icN<~l2fMv&6iJCs;f38a?=7&|4I z2pDbZ-Y%@9U6tLl{4G^C-4V<}6%5wBhgK~RRYb8t-3oS9OfE6^b<5Eabg4}BtWBfMQ z)Vf#}fr^syz#zWEcK*nXs@h}J-G(G z&`m_Wbc{1`Odp#SXk)|B-KOcT=MKg6HKU#=in+#$+h1WW7F!l0KZgqIUIz53HQ^UQ zt}SN^8xydOh&2@YAn_U+fku-!YA#`3QRpn$O65~*#psKV5@4#-=r0$atVV81#iAo7 z0yfqulZiXz-tuTrkgefa4!p1v{`p{ez`%o;Muj2}?W5hIKvWc8JM3B?qJ6{CM zGt_DDgWQpOjdq8WQpkWtuFqCnYk`CtR)q$=kgV$pm}C``FNd98J(X?BXD)vJ(po|o z$rugMQmdXs6ieTV*P)o_PXLzxNT$tVG<<=T=1^kN#gF+mNG1HKLSMa zuzzVg+wcX7g;7(m_G-YPqa}43&CZ=Wujm-KJVl-$p2Jn_Mto>=7vvqA+YBNnl`eCkXe* zb~B^V<6s{&qM;}z1a}v|Xjh$rvB$S))P;vSB(>0Vv?w2s)FE~n5+_V!t6EjCj%8LZ zla4!Np$A?cP_ki=%^~rzWf&td%@UA(JKV{)%un9_9dFQOVh97gtnhCwlVJMfx(^Hi zfbSH52uC4(xVt5Qh(Cma62i!XW4j6=Z~^+440X~4d=X4YKNZDp95jgX1R62c3Eug- zYhzBt+LJdiEqKvT6n7R?a~kX8MCvM!FsIw-e(*6CgsciSmPZ=bO2UltRy(Gq^)W^X zaczKczUX54_&`hX!b~=fD;9!^4KSipGZ94zMdNUygrg>w*fh3~D_4jUvi!;rBCV9P z8$TplSRd_U*0Mf$$dI%XIjjjAwiz=disRKO8fT<`(?$!Y4i)Y}oREtFbIdX;aA}IP z@>UZhj2GV02%#kVO~Zrp#RkPhZPvh`MEDhq)|FAgocc{263mrrq_%1AJkOV$uV0uV z5=ecNg!dYT0SSjRD`-0gC@B*y-(KIKg-ke7oZ%@0fJ9>&pW`!k-b_uRf3t=DsBRIR ztFIYz@!GgwpiPNf-gC=CZc#k^XCZewG`PShV#LQ_4SNN7Gq(WEtzI2nOT~zkfd}1#@4c9 z>mg7#2;y;)*<`Z}Bg>dNf){haMtjD9JU5U752;zMjNKIjcR9;@lPoqu2WgLGS9lQ@ zpf=mnNFA!L3ezF0GDe5I`T!jOCPn7}GEHa>U{!HBWMM{K9h5_UO+*g47)i>*aa6J{ z7Ki-WKpf$&j=~|gIs}JIv4D~buCciTvP*++g~*%as5T0_k#{S(a`3V=tj{3gfK}b4 zr4LM5hyXT{U@2#|INKfs+15X>2-|u^ceS7ot23WiMztli|OS{hOl$}?*` zO)3WmzB-sD;HHnHNhKPD(Zr%R#gJ+9Ykdq&)HNx9Cc&MZCVG~GFAJR&K=N@j0Z<(@ z%RrPy%rX$gaG8`nb*wBYGe@8-hoec9EQdmlM8qMoN(fZ|F*yz2O1#EL z+r;6@Oj>+&9j5`mCm+*G4^>7-=@49eWR0H{kCxK&b^OR*9!NT?OXtV`Tsl9V()JMR zhw3nypm!o%%ES8=JUlevARp(8oq?YMw1&I%An@yZ6S)(OvRCNSw*0s9wyZdh%?_15 zM17q(4*hbhYt7Fu=HiTk|Mn55od4JCoc}_B^Ro>&&&ERqt1VzkdHbK)dHY0xx6eqt zH4M}W=Gs7&aCh|}E}@v6!A}+#JRvby8ATQ>Ob472c~>JMABl-fw=V1yuZqeBw%Bq) zc`%x7^#)=&q!8ajnVN$lvTkcTr_0U*DCy*pJeFFyUB#Wa&?R{m+w}%yO?8n@2xi=*ows zuB_Q1Ct7Y=@RZOmG$QnDVN&wr!-Y$o64_;Y%qLDtQnyr0CN50cXGcb2u1$7?KnlyY zy2DNyifMaAvPp;YInDMuqOPUAb%jl3Dc=0%6{=Nif0K7q75DSi?y4))C~%h5C$_lB z^|i8}u0VyTsf>!!-EZ<_uhngI)Xsadhi>`}bb^F7ZpR>8d$Dz{jeT=OTYh(2qK`9g zn&XNMl(jqNsLnaI%Te*U_R4Vtb8nR6XwpqpE$))zs71uMY(v|uTjV%KwhgWf9m|+* ze;i?wZ|KUedyIs+t6cY()tpg{&21T#-V;MMrxhc*Qd1)j??rR+YR%gJZniC+R8488MCEfEDMHk` zg__$u5mhbOrYQ^))z;K1QQ77uiI<+w9&sG)8zYXlHA}?N&25GVO~D3TJ&6gM2=i|q zgBjwr&17z?8D76OiP&|W)DU7)(#&p!BnuIN=ucyMe6lxLJvUP~@ zUan(Kvr?#8)RC>Z-k`K$O{fi9HYL;85mD`YMuf1mYeD8SA4E?Zwqugvpn4iv4Jz2s zWbmSM*b9!JWn;mSwqq$cuKCOa;V9S$^TfVkz)}shO*)LrgXz9uNLID>4MQ6TNJ-T8 z4Z{p)LiyO&=wer1bl))4U(`yilraoR!1OIlAeshDudbo+)#vEXI{wr|M_)vAbO?}{ zqoYX_y+Ua2i(-#f{On}mor{{#91cjP z9#rN)?H-?|Ma88@X^~!jjusg;hiH*odx94E6OYdVru6JA(yI^7BD3n$EVAHummHa; zGL`3Lky(9MmQYrlltos>F-be+%A2{44X>AI z`)-L3=wgY|TO~d;S4zxzpTy0)OhViwk#{s-6Vh4kXf~0)Rz>fFkh`MLeK;g;9&x*A zvX&9FtkZfDvIhG;vrM%oP&Zwga-#GhkfX*zbaNyqBR+7C_hn{ZX6SD7x<^P7nMoY+ z|F|iR_^-kd|8a>=J<$>W*OEf5I^s_YM|`&HqJ)dxw0P<~AHYyQyYu|D>a!bQ1RFxC z?ynMrCucV%fTx5WZ$#+0Kn@0}IwG)Is!^Kc_({;t5xhQv$@SK$g4 z+eVu*{$wM@|GvO@Phxz}?(7xKadRq58|gER8tJ`4BfTUwQX5wei}q+8Z_4`1jaYww z66Ys zbTM&sh;F9lcT$_uHO+K4)}Ix&pdZ219j{ggVZNtuY`z}d%bqs2 z*;BSEI|qUn)N#Mq$!H;P1I->^J`gPl7^8>J5SNLWw?xPF(DOiv8splCZWk%^Zv1#7 zx(#nY2Y9>A$7NtWR}TZr_E+)jJTcH4M~7e6?9lL&D-)x`ZWxTh03{dL319qJ92gF6 zSHxB|`oMWJ1E->fBYYg?)vEN;JU*A=&(O2+bu4gowX5k{>{0r0w7`xSkE6T$t{c#4 zKq>R`EzvO_?_A?CV|9m~cpf9=xQ}O*M=BjqL{T3oe~zaZw!uhNk zLmMJx5uKnL#MJnm=(y#erBwF3FraYPTNw0Lo?Y=R{C*&tsT!W=dMaMA@7acjb|+Hx zU>x1S+grl2z_5&?2Xi?&6j#3k@sEykyeSQ$^aI(9T;b?W;sMVt`zD&mX7|?}6Bo## z#e2BK?pDJYNB7`KZ`bRoc-$NEf@&<*u!o@meXxlZv3ihLqi^ku&BM`gEeu>d8ZVNf zTP+CLv0gYFsfi$>VOauu!r9Sm>Zv(EANr@h) z+w}T16VW^9<#i2@V}p^H$|FKSplr8;86PUav<*m)#bE3e41bKl;AiMOD=P8hHFv`y zY&~@OQF=s2d_qL;A}xdDI0FbGp1!hz@#pXSWORIFj8rs=0o~NOBvK09rKgf|ME9FP zF!I+r9VGj!qus!ComJNxbjHzr1jz^hq$*xCrRxQa(aI-IJ&E=_?)CK?dP+&rKP=GG z;ZPFUEyG*2jG)izz%bA;gQ1Pe76YvdE$Rj4`0{PhgOJIgny6>OfXZ(;d^ft&-^E70 z9W}X`4Fjj`lIY*=4>c&-TOmE`hlaX`ee+M%cJVqrlF_se;yroLgF_2k-_Xje2~m10 z9ML6x2ge@jMr9hk)k&1ms05iAc8wlXco!s? zh7q8W`*4@4wxt?F&9YT^et7eO28?&2y9hI00Ee*JeLk$c8yz&9?eRv~jc((^3G^4D zNH4fUIRX{8&I}9;PvGt@5Czc+FvXN&zx4j7!(D%4&Tl0stu|XQe72E9YMAWlMux-Im=|=IV_1=4`G)JqEcC6|4SdTp zqS*2sD|C#;rV-gLaB!nI%1Gmp(FucAXtmocjEs7^iyxv>b+u5DqA5rhs4jX1~#X9TU78Lg1v zebJsmnZ$JJCYD-g0A}H0JD}T^Fb~gRpJIN-972 zrg3rp;?u_MrR$4VjLYm0}o_G22*Sq|rR5d8dzaQOJQ3^GHo($E2k^<~n`nwc; zb-7m)`p6O=DDIJEeOE!B(1)EsU) z-Qydjl}*BxvnGSs0Nj)gICmmBG%nePw$ zSUQny3rp#k2an%fN*Y!=WyNvmHj)_I32h(8TqnX-ksh}_D~iyF-^a;Ai{DN-NvHVG zu919Y$4BkSO z=|IU|)U~maHS!Ql*?+)5+)glj-$(+mGvZJ&6!u)Eg{ph1u>}Z-ka_a~9Rt z-Bs6=ky~9_VBL2uyG|SHRTjA|e=dw*uCq6$NXwH3>zOv4R-u>JQDG=B5}gkkbs9GD zg4&hS#=h+jkL7co(&xtM`RLnn+g;Dx=ZQeC~-t9F-ttF$@6OncKC(}oV2W7(h6)T^dQk%BM$#w`l zxP1iocsfSvrxE$H(Uv2Jga64qKGa$5RpEY(h2`+qpzo)p=Js|@XOzCnqsCx`KhG5pX;Qq(-1>=-B7;_h<5igpI+jQ>1`Z#Br#YhXIh-2QgEqsl0vubOXS9P5M;wMD zBu->;&~a^A6ZU4YCZgt9n{*@u4G?U)9*brT9<1X41R6N{V7wFfjLt-2y4jpun4mMA zjf^Od3z_A{n^69ym3YK}2m2C|hoUjQg{mmb8Z=MNYNmw(`=lXfFBy^0m!)Ng z#n4Ys0G_UIdkMf1CM3*M=npJW>9s{P;ZtgHP$Sm@Geh#H697^&wg!vW8PpJDNeRfo z6f^Yb(>z3f9V!BG8*6Uh%pStw{dIg+Ji@I~{B1sNpS2s#BmnFq(4`0!OA zm&7~>-8)zXvR7muy2jD8HyG<+R$)48a5W@BKWQV%gx`gi$4KQg40|oAUB8;mORUj< z9LkB#aJtO0xdwgzOafw@30Gkj$S*m_wvqKAhd9`#p}?$7E5wRj-yux{^pHG!xWI~N zfxS2gN?Cb8jlJlGJ_6GH)TGYs0$eEF1iW#~*8B&~cGqRkMw zRxhWPd(vK^KC@s@Qd4Y0OUp>P+N9sKfo8u0II$BL&(kdA8tfQLAVxbLGQvnS1hy*x zZh?aiT40dUTy!atZ(mxDa6%FbSf?!qxmA!)VA(xAFJhm8G6`MNJXsI;01lf=6DBR@ zi(CSzpGwdn&j}DR>!nS5pmW6z>N`OgDVLq?c(irAv~wC(3(0r_Mje#ybkwleX!Rtzp;kg)huK8(f;?g%}g~FSi&D$YhK{@8^sw zA}SRT$;J5#Fn{4ONYN=$CmfKe10qR|70wiDhG9s%QiKlK@L*>l*tIZ(@e@t_%MOPiLT%KjObyJ+p5(SI z;T9>{Q(+6m3es7k)fD5!*=x}wSBw{RcpHZ79vK69R2oWQwA?x2nN$EiYlyKX0hxG~ zIK0SBD#}g_QFa0Yy2K?}8f*Z4`*kT(4(Kc*7n_Cjwotq#%O?{{@i!?pp_gIUl<=Ag zjRnAPvtkyB#a*1)A{4h5M^fb;6yY&$tph(&@ocwWKy-$U8Ni6vf;p(1f{Un<-W5IF z=vknKrcUTWb2jlw_3sN%`saTUwk+N)5^g?iBnnx_$f96`br1}BK6Jol8j7Hld1CLT zty%EZI}gQ)7-t!X6eN99p0^6w(kccssq;vNdNZJaia??zQeuF-oYE2TMpb=4fZ8N} zh&Uo-4_+O73$N5el^mxs|D5t4lIMTZ6pQc~WG=3F-?(vFq-(ZG%M8rPEQlz)HzA|%ox(Cl%f@K)jFgHIapmsvFuP8|>^cLZ zV^>PQWXSX#5|#6-n0UE+)3P+61QwaYvQ8Qs84iwb$7>S-1= zedQd>kOWIcyK;7=FSVk`!JSmgt6;m@T~eig6VlbXaylhb|BAU3B|n%+)kF%;MtK%R zBUdqnQayj7=7xMLB~M1qoM;nPOPkQ24^Dk#j<`6M7I}}1CwdE1E$Jb5>d`YE+Qik;9i!wr)MON|ixj|)5*>Y64vk2q z6o+;!uaMv9O>QV&c9Pl1`rb9Iq54(GX%wl8stJw!9EPK&)zi;mr+rYy48gGIh#7-EZArXs_O4zsx| z$-h*}QB+S*C^=!~YT1e1rzW<`ODMrqOiGk85{e$Vw@T@Vs=0`B{5SI}Pr_`kiVGL& z&XC@e-N(com+$G9Pl~HT=@eb&fW{#)Bkw<^Q^mCrd5@*9k9Pfxu0;O5b|tdlOWZ6Q z;ev@`e&lh*3V*cC3dK#g5ppCF25}9v!q6e;6qn=v=~o~Nqa^k#v6e!Mel}Q(wz+&M zu8=)OR)9-^h4xSPB&8HmeXYfu?+uy|)#M8|5p{Rs#3q8MwuUeyLJAULjI(bfF_Rwp~VgsZyd}izO-(*ip=( z%!ZDlyMLje0NrD%1<;@07U*Fi#d9TNyrY~lmc7p}J`_d=$wC3BTM5v`5}<(s6y9w= z-sUJ2_kG?1y7fxXT`fV^(4f0V@1+!4`!Q7k&|8%NdZ7f6qXBf!UaBdG_GhvJq<1QT z^t&aH-q1kWpLc=^u>+X7fbZ*-;JaCZ?^_DK_rd#31^oMp=R#!Pt|YRTOCoz$6WL*V z%d13msCg_z^8HF8xm6NLzQ5eNciRft{g|o%=wB)Uv|Iw{Bbm+)e=)DtxWnEBn?I|> z=I2XnE-E%FUkp%7*aJ$%^4_boyw^+1`yFk0RW2>4#qF9-v9$lGv^2A{v}pXENFE z>m&-11Dn5q{lnYBKJ47?mehMygYsTqkWujM>zoB-^-7R=CCIKQ$ml(I#cMtaianuK zEb-Y&OAJa&{Ia&h1HOc$kUC5(6@cHU1bA2i{9_96yWg}@fQ&MvVEFecF}zk{_=$|+ zyIl8D%WRY&%gpA+HE(p;Xbbqwwh)%Gp3phx%@zg6I9ia3R32 zZ!5rI0otFGjOsJWsP^o7r9$-{P%f7L?Mlo4a>-D}=(?xkSbiub`Tn+(q+@h1R5KCv zc}E7ap$ufdual~U9vlM&xIftz++hm*mn8-Mss`rax*@C3KExar;`onB;`mBQ981cd z?9HuUh2dV4Ef)S?l@|Wh(!yi4a5}c_>-A+6Pdu2(3lM)<3B zVt%JwAdu?wp!~(){yhZ(d#BOK=S6h+Yw3epNf1+18b{rmE)~%ok5Mnk>)tq$PN_c3 z!N-K^SRPGh>;&Z{{MgJ3@}5#HRL!Wnl%7Ck2dYz!67Og7lIBMWI0$E=9 zHl09yy-pHi+*d|pp zqoEXN&5bsN;P|_v;IG&zi8!oUzMW!TDoyOB~ z)Td8cpf|H_g;bmnJ*d_US|%X`8`bOW)$Ue0CzH5Yd!~k4_}%p3 z-iNXRhe<_oJXFYs@Ub>K?xy!kyfrH0f=V}ir0+=|iIvO8jvPs6MBF@J^uxUm`Ua<` zX$>es6LCP~VNKn1+C%Z11ZDul9elnImHyKQWRXWxeoF~UMb#YOFhMn|uuLH0I?z}Y zqT1;4iF5|F$O5xyO7C-_WYbR4?$GTnsfYkpG-MU{JtBC&Xb~z-;xC#y5lfuFM5#pd zI?XolojHd35VD>WbrV`*$0llMyHZ8(H&Gsk>i%IN8JEYEfxy^KVKJzODNFx@z;xEl z6!j#jO7(BhZwXP(;r~?Z)oS(;rP|I;>;n zrL>64Q`AD2yi78V^aH9^E1ILZ&L)b(_;W$ns&~_esHb26Jxx?#f_P$x;{@7kADMp| zc+P}PyN^7z6y%>!|J%SDAJ2Y=K;6e!%-vD0aV<57CdW(T{iO z$B*g9KjTM|P7)QWc_j7`er1dQaEt$Ri~nLv(AW~=x5U^jF>Wj2b*iNPDgHss_dU$_ zBmQ&#o}7%XF3QR1)rg#oPV-{26*{sc>9npmVkOfyisT6>usYd7{z3JVkm)U?)S?xN z)@}q|u8X4a!M?`4_hb*nNj0k&bhd{+TzweR-ttgCt?UW*S$HoyNXWx<(~~yJUO~tZ zCw8#oSF-kZAg8ywufP&fJ03QT8i5gXk0zwD{4=uBnQG2ASCrhJppyINvBT=h7r3J!h97W$cd{8;m@}f0!z>4p|ILT#BO#nZx%tw d$*g=af}R$|A5*C9h{DsfU3HfTL;P)~{|AOK7c2k( literal 0 HcmV?d00001 diff --git a/common/NeXus_Logo.png b/common/NeXus_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4c3f02ce6a2242d5244a2eb6cb5ba2f536bf3785 GIT binary patch literal 29193 zcmeEtWm{EI+bu{+E8T)3-QCg+(nxoAH%fRbXJ?$YEe$8IcjeD^?K@I`H31N9j*4 zFfe?dp8vtdI}_03j2z9F9GorEjs=KdVBWyU zh>NIsrXNB)Jk`{1k)S6drjtHzU%m{6ffYSzla8a5_}Cm`Z_w3TQPEbWSDiztf`cpa zLFB_5*Vo>tIfyS_QoJmQmv`t8{wGFDdo?E5FtYg|FfPh_&VL}5^$Bh38k8i~A2nguxysYxa zepqJNwe-({ge4mOj^_Hm9}bod48;7u?Zs}nV|1)e)B4=}C75XKkYebE;u#$5W$TGZ z!M{}x?;?Mn|0!07Ufk?RakF&d)4?n+YkT_GVBxHyI+Wx4wsIn)K|>le;0zp?ukY?U zbq)}O4H)lz>!6pDZ#q|yV6s(8v34~tI&xl2)8Ud}P{U+T8ir2o1^4U)FB^WDF#R%Q z8!}-lR5IV~E!)5ZC-*EgjI6nI3Z9Lw^!0_ZJEc^Q$JduRqXUrFHzOQgr zgFXZpz$4r~KMSn?GBWh+OGg&>i~H8Kqay@|lb;Qd*)S^|bL^=MRr91UFl}9EMLiL+ zd4%RQxaLu$xKHHCI%Vo2&3)!!^R_|DmS0BA!@$>hoWw+#Mf>&JH=L++)8IMYaHIYPrVTQZ4v!s9;d~C#~ADj|?YKZN21E zkl8}YFVh{I2U1T@l%lDKdmBC!q40PAD)*rK)B#IawMoC5v-b0k1eCPL@^}dc?wHrc{v=yp~p=4ac zySePu=xEue zZ+Eg779s;FGsIhzEB+Q^H8s46?1XV>YWT1pv94m~U)&Mbv)9|6hrhKfSyzFpIoyVj zMD<>LunpmVF2btw(>ce+ghd@`$-82W;>z> z`Bj+ew4-Am`N=GpaI#mmd57t39vfWvGH4jNR}cGMknlMXzOPaL<>zfRy*pn*yHFb* z)L}4F653@M+GiXF5~Rx%1WQoEENUKNU0&!5aW;>0+b>%-S2JDsUd|3d4ZQJpU2{_O|Gh7;t@+2Q;KcA)(b%sfpd+?BH-^7S6kG-XTj&dp1>Iujk^6R@BkU7K}rKCy! zWF2`n*ed6|X0@pYj4V5F<|~wtDL9o$d7XPr7LXIOoU+D529$Qz4JseIZ%#eXZKEu9 zmT1>w1m=FNOrAm_1#`Yx%%)5S^6RgrMV7#33wyIh!FR@%mwhzTJLq3Hgl~^OwaYJjMMEY z6X;z->{@h@RMc%tx5UCLvspjr)?)9(1 zG^sS8c=c_%^nim1x4G7a;nriNd%YNN`dyDYnQc zwbS7+ZGTT8y9SmEH5Mbj)qL%5i7vrcJef+``rYt1%5&sSQp9L`a_oYjWISJo&I>Pn z#S+xU$PD;0(;)?-52Z6KI!fgld1g}t<_E8G#nDZ=p`C()RBeSb<^x^WN$=VU|CVu` z^67KRgm-onqT|^4i6R?C1Y)KnoH6ip%t)a&Nb`Ld$F{5^>K&-ExtOa}-dyQ{e|c)^ zfoT<+4MQ$dxo1_Psfju)@o8>ODoQhxL<0Pp!afLG0-5&)=5rt=>5odtxFz?6l&CIz zP2KmjDrQ4!@re6}R#tOqB$>(-|IHWaisQS-JFa|jUdKOaY{oNKkt0qI_2-Z&#BD)d z20N5O_V3RJU^h1t+5Rd#OjN~fGXve*#4D*q64UBC_GM%HRWe24~bf|*5(4?p$ zTg}3-{WzK8h_x)hX8Yi^Xm~Qs^|y$zK6_2>U)o34hHK`rP5d+=;Z+~ZZH73JzF_eN zBixx-KH-2n+NNOi;IF~qG;J)2VSBO(80Q5{C1Kn2=QKjp4*8wUic7%C7LhV6^4c; ziAsWjRCCd;TTkj8R7LdtmXhOd))1dQ5$AgDJZ>fSI>vgg*q=(`J1<^NUY{HoDzn3> z#QcQjD~_q{H{f0RS==abYln(XFDb-j!2)Hsih8yUL<1C}b^V*H(8ili15#p494zgP zl#Er-cyfIFu_XUy-h(IOugA2Xk}&w|8fE;0uA>8Ft#EcalfD$9;ddbY5DT^rPd3XR z4rmlJ#x2?_icZhWrefIMM;0Q--Uq*@BR9U9i&U*$$<&5HCs{di@#cz!X>_RH( z;A^l0DS-a2>Bod=-|1A-cipH0^hNe>nuF$5hK||H%bwn7=&#=ed%~j#nSOlVJv899 z!mtvt&empm(84clz@?hHw;43;fh{HDaT|ARUZM#KuW;G&fGH#BK_Gx58ZBinz~>R4 zKhM-%RdR4HiHdjMC{}v`$&k!5W}{)G3*;O9c5C5H6jjwAJLbY3{3(>^~W?!PYi-UqE-WAq6f=4WGUTQkG z7{EZ>f|;Il=zaX59PiSET;hT(c**o$ZxTm>-ff|2$kuGq%<=j&7Xf>|U=S%-QD+dS ztR*TH_8b9DbYI`^y&x;VPNfv>+YVkTQ*b6xNgasr&p7YFhcDucSi3X0qI^oNnr*hz z?p*^okMJlQOEe)W5Hlh%ipQ|(eMld!)~!zJ=A1fR7d82s+L_2;`7!B)%(+d%J{pft z&WG~@sMDJBD-Amy2Fqx~xGv9)J=Qm0<&Iw9Y@>s%2ioC$;6w~EMXw-;S5_v3ot3t`&z7)*n!?B53XXeK;SsLGAJ-zW zJa7T<;lC>c7XUE1R_tGvzi*Q*65V;lIO!gwfVMF9q|Z?*7;Bvj+>zENQu2FsI$X-` z7c4$1@#k;;bsS3@Ut-7yN<->ot6=IJoFn3y)A2+*s3l zjqEBNfqy|1#_s$sBgyq`)J!O5JLJ&$LD%sc^Rkye!;5=Af)lXpOK=F}uS@B#p^r}* zQFMtYN~0t%%76GBNPw-1g?G0ssmy&_Jjz7jM#!(W)a?SUBSy^>-YH)J2Mdi7)sRY(lS}=TO_1+rkQs7VRV9mG8lgETF64{`Qx%XpcorimEc7QkL;P zqmTKVhiP3?stf9Y7lK)%YXLmCnqxsWS|62nLIUx}3ieLRU)|;na4^2UwO}9<0U$h; zGe*)m9&vZ6p0!)71VW4I*UTXyuU56%6=4$>PT7o=Ycjr*g?c5g^_EQE}CYJP+3FyVr2{W>3-+-#M>+6RkQ5dG7WwX zBJ}>)-QW@r4~uhdN^#$iKEBOu+_yW{tdVl`${O|`WW1=r3`xT{mnZ5VE>Z9j#;|VQ zh+|eS01sz3tP=(dlh+h1ok%j#xf2aOa_4&sqUUP!Iv{7On;Z0pnZB&cA0Q%{H#rS8}Gwiw^^4S{hL*COz8zxOiTe zpUv5BHY)^RSV+1TD=$(mogv^X&M3Yx^TAYC;7|Hxzn&M8W>meP>wO%~zhF4>?eeQf zzU`-^inS8%015D%V6Rz~yTXxCKWI6^hz2=0{4@qnz^3!`)L{pPTo!_nKkBI;^^IJ4 zXO3HNeOP@z=rpu68P+Wr{rdYchr7$Ty4$o~#DS#;?2>79x8*NU@V#k$mu>S>=-+A$8dR;RK zI6q-+&y}Ksfc&+XQCzmsGf{4(pDz3S2FBB5VK)zrYSGE;$Vp8NLC-$ zoBfhRAWZLWd;>c4n!nlyT-BdZp!% z%#2-}UR;3j3I3Lb6xW1Yl8t?Tcm0QWL<_osk(5b{jr(;ji^y%U#NF>re?%KSpf)CG zm~@ZrrguRp9Mh-4s+CN`JDnC(Fp?dntA2Zgb4fbd-TrpR=|(ngN$01=iv8p`5kOd? zW_+p{u_b%x`_*?Ro$Yz^>D$3j&VW-cfUJ<0wQrq@qh$+3)d(_tr3iwe+L-|1!yIsqwCrc3+xC0PVk>hkqZeHW!`x^)csaK`01`;HfGe}R<6Kiuhm-a=I z4xfHZEa*XEPe{_{ zNflngIGQ6O_DJsqbN7$M7ckHK72=guNU+xUxRb|)DF83Mi5WVBQE<#G%ox6H1A|8%W;)UEKhhQ(~Y&@QCOzvxhb zWFA3^{V8Q={U8q%Rb=DbK%=^OC#DvdW|TGZ)`Q7HiS*q$tlY+gr;>%}T5WV~uEfI2 zi2Ju2@)-WwE%+S{d}u*3*L#W6_kMoR)ocG>x@m!!FP%_@tRH`Xb|oNqr#RwkPkTnG z2nZg4t^2~5mw&tJQT=M+S;>c;@d?ib0psAm5Mt*u-gr)-gmRz~YqD^ykBpMt<>-sP z8~2qt=?G9oRhU|w^FB0kwW}L*!kFv6?i43G=*JM0cqtEDBdOy8lLPp&Yhw(QDA#Z_ z%vQ#Sku^udQG)^K&E!#QWa-TxOEt?GwRu_@397`v%oWNK*a8K)-ebqrD}}JC-K3*I z0S}4eBjkUb*X`loXcKjtWWJFVm&Fj0!|eOQ%7ml$B(ScxmXPu}y)3b^5dWkjbI8;_ zH1QR)Uf!G@4@}ZXnYUy*SLqtItFUUL_YlPh&T z=J$M8w`$EwTFQsbOko%Q*M1|5OR^hf9x*X9+g3bd{grt3Rn7a0S4X!B#8N%un&88t zpX}TdoTP^;6!=4m61`r8^+X7(#v1>fep*Z64sgBe>{%H{Vy8y`c65v5D_xx4GlZ1X zg0FgV9Mg~fR?BveD~lOCcF?^ll}laBo5(;+^JfyP)&kGubeJQValO{q>}XKN>%Fy4 z;Dp#hkKEg_#poI9=Q%sM@@^L6I15(iLq|u$kRKuh(e{^Sm?(am7%?KMN!>j`)Q3c zr;J&-pdxeh{-rrhmhot2Fa_TkObPIHJlrPOw1X1gDBJeZfO#dvt%Mp!eXgr7` z{4T~bY1g3RVvD_J>UNTYx;t0STXRu=%o|h0mKi7H9y+9(STJ#hRoV& zJh|bB-4(rQl7Rz7{7cW;LYRIkJoCuf*WaFZQRp;uxIb1HlJ0FLF{RGl{Wm?Og`HtB z!h&S@XHeP*vzQ@c2fUy~j|=)zYjdi)+kN>?#ToOO>e}*PtxIYn^i^&K(TpY_#taxC zfe63rp+75Uif48ga%e-(?SjURzJHr+rQje@@|7E=1Dpg3+xRx+hCGw|iSTHN*iZVx zX!18ccMd2*@6@_;RwozJ?wlR~@Ba4a55hJ(7MQMu?%mnjyNh=aZ+Wl|Alcu-P*d}Yc4Z9+mW{yjxnXZv@;NK5+ z@c94Rtsq!xNnEv=v#3_47@4!hA}qU(r^zV~PbAZAN;64GIvpVvhRRl=puX(%+qg9z z{;MAz<9OsE>S_7r*46HdkX|X`S8sW zgpQ!I-bUN`{LtN?pp@}p=)cKqhlU@!i{(`MDf}2VT%^5$HK&B?U}xr`w>rH?*6tXP~abq zv^@3r_F7`>(`vf;OrsHe=!HYHenz~tU2%3P$C_imSsBC^M@n(KYQa7u@P+U0v{*KU zpDJ`zsU^GAbYzHJ{n-h8mhnskycESpNKRpegHhe6_ zel_qD+c>y z)sN&Mr%|v5K?vy59te90w6x4rUIK#-7xLyhCD%Q*9KGM3zE{U^mMe72Ge^#NB=4S- z>!=C1%knI#5v;DlSka#{F zC;;lc%`NjE6=!5`_Y))*v=1>x=;+kAW|T)JG5zrPQ}k=%(5PmAzlk?&1Q31>upJPj z8_Yo0XRe&0qk;>xI+1Zj1uuiB>CE`r+yC_f$Pd2!;HJ$H{mQN$jh=d3ANTwo2lPJL zPwr!!^4{m{o4Q;63%pexHuonXGJj~^jXHlknbmrn-#}h-G_jrjHWse-XNSP-9(5M3 zuV5(Q6?X@Sr+1e*-~Bg>bL0UQ_buJz^N_2RPZ5pNXT#od;)gCW2wc zkj#wK^{Ba`Y$JJsnuEJLFO%hwuH0pWd~R>|e)OX^!_7d|x>t!rih-I_u%6PJrBZC_B=rLGDMbL0U9Op{~dGU3skQp_vkO>Pxx+700Y zb0=egNt#C&-Ba(+<1M9@Xbub}f}E^sP@xCzZlwTq60la4{~oU#1*oA>d-u@=!`3}a zj+(rpe!LVDNP_w|*B-V?!a6%9NaxbeaUGh)eE0U?vV2{_kG*g;D1+&Uh#g(1(uIda zn&0=!*@m1OB7;_Y(Ah>B$R*)ej65~`SILa`4k$B{dwtu0Q?y`i7Gl&XP{}d-UdxG; z`N4t3sDBF8kt)llt6sLC`|c?t@J-011MC_n>^vF9Ye@eHh-N}a8hQY z+_YM_KO{Bcm%WxW4AFq<0xmshg&q(J#WmiftiFSG-Dc8e6#I;Zz#!k#Th%?)V_gWN*?JH^3cTLHAmy+(%+7kqC%BB(M>h%&Gnk@sauD% z9&ZF{Z^vn`RyMrxKU4$C=M@vX5KL#-z_+e_`0KmXwYy$k{Y8&+%1Ul`Dz-E|pX#E( zvqj!?#pk|~Pg-$jK?z98%28rQZwz3g0RzY&)W7Eci>pDXX5;x1Y0k_2G;1P;Pwjb;9B#0pbYa7O*E>(6i1%(~< zId%6iqJZ6<33-r79J1}p`MO}k19oirX`6YBUGS09?hRjl_=E3uox5=p$ST(xr8DFT9zDLQ94E*`h&SDCXfCo;*o3fJK9CMy2#5#B@i~ zc(oGF|0AlD$(poRsOieIL`EX#lAP!;d`gU2X&@;*a{{}~3|KF8%7T)VHMYU{N+4cO ztEj)r6aT5a=mPaE4`?@4C;Epn%u~+k`+@i?*<@y4y)>iN<8iYXg?r(j_}Ic>MS4{L zSiayd-wh)JVNIGo|j z!_d~cEc6wj;sqJEtO9=zFHGCr7{=}blkyTe(QR{@i@FBSBYK z45^D~Dkfc~?npNz-ts9vUJRvCq7i4Cd_;LAp#&k_s_d^*Fte$aZ5);hgM!EX^j%l< z?r+XWp2m#z^@+|;CRBn+BQ|F1yI3c3c9%5L>$gP#RRmkphuAjJy;rTTe;70HKISkI z%myQ~Eo1f`>+upgyhRK&5%jbs6F9#2N41%V5ir~|mV_CS@e59NQU>^d zoc)fI`QByqno4Bc;XBq##ysN0%nEsn&YdXkrt_uQA@sEqYX4>ydaE$|Oqb~zRhK?< zJCH%J6@A+<*%!uFj1!h>p5C)q$|z<^>Ft3E{Ol=}^jxSJzKw_4G6?#QyB=D+@{}4S zYM#eAIo~}H`JA-1R_=+t0NHLS8(@AAw-4d0%Ag6^nJLgOhxnoql1%CWr9t1<82;f{ zt~hxjItYj;*%LHpaC2@*2#DmPX;mF1yCv;nOrWWCQePXYpE>E3nzIscUSDD$Gx*;0xG%%CZJImhtfmWnzGoM&QX43D>h9EM z{8L|0>(_VWPF;lgLw7WD2}$8~Z$_%(PomeZCxb$qhC7dGCok}l_D&(pK0JaRW1B*| zqSX4|Oa7$k*$4TT{!mENJ27hD_d>5LQv}rISNDy1*F;GMy{6w=I|EVEg34(0kJ24S zHV~X8vSa{Z9gkcQV6@Ti@}_xJZzKM}YHJ#;-}PO_ZBfzL$=X)Uq_;?I+^wgVTqd#4WsP-5{O)GXwb8L@_vGnmFSk5>q3QB?2?twh z@=9M;g6eRRDpB7y(~Aic$am}BC_;^&n*7PpBY*S!Cdfk9ZoA5*Nf2awq4B1^Tp$|9xPx3^4?hDJ*)LV49Ps@ZZeY-N9Q_osk;_1n0phKyh}YN7WyPhPe>ekW8KYARi} zBErjkZJ~&widX1>BNk0W3q5arLyLMc|8;iw+UUj`AJSM_V+N*Y1 z`P6j)k94!%hTl)?{~-l%sA>dEqH8zDK|6p4Jsrwz4hZ%0tMxofVMT^|WW7*T>iVfH z?pfTyz%6u*rEQz}m*ut4@^IQ>HV3GH-!k5o(HB*G_nD1M=Q?V9=-1f@9aba+RNo8d zEMMKL&GRqNGcyAi-)9-+$u0P%*_egkCd0Q_oh~?RdORKz2nkPqO>vrc3qD~U-?w@e zD-ST8_6^mDpM?@X|MYc(TEQ7TxWy0U=6AOq$Ho+oS2L1;fttDbYq5=%7|9X?$#prL|djgz#OgJmkORCPy-GNrh z<*0;OstAO)WiR`(b>UXeU&YWjt|y)K(4{?BV;^q_wec0&L2y@_4r?3NT1B#y`v*I1 zI$!8=4tA1tx^R!W%d3SQpWKW)#h3aU(_UB7v`_zz2tAE&SzM*9z7~hS$>(qgZwaGw zXf$f`Fgtu z(wfQc?T7@ABx8_$b@N?K%g(Lgsays?isgqZExL8JXVsDN$ni)1oV*oTSlGz{^&aQY zXa#Of$&Iw~^=Q!kg7Dc)prX*enyz*P`zK9=%6KqI+j8-rG3A$qz~2}hml-AV+axdP ztbJ7kWulj+oUB`*4Hl-pAVcK#)v?F$R%gR+X*KbOva4%bC%U4s4|65| zp?5^UN;+)Bpos{(IH8N4-q>K%LO+I+k$!)Nek~Sw54{y2dPl>J$4O3?C_6zuV&{%D z8LNv`8>(F{In_UWWSEbG6l-9}2LA~lvvHBNy5LRs=bW%9)uUAu`usC*k5z0T>er=( zTz!|Z*;J(-ny-z}zDXJcFeK?J>h{y6F5fppGVxs^L9nYOWv#S{Vf#K@`dJcS_d9Be zBS%Z7N9=HVf%<%L>8dKDCC{xCj;`uzGu=a&q@064Yuuo$o4gsM1DUW2-BSs$#rrWS z_Y>GS27%lxZ*EWSS*Jf~)-{?rjikJGc(QLW#M}o4uawH)k(rYf)@F4Jr}N*BTC+T^ zGA1*m>bQ!D`@&vr0imKp_`O1>AK(5m%lmS%^7{xJps!GLBGAI zTC<2>5q-XT6vSYEe;%4@&P$`>Dvs4$i+i>6EK*}C74TtF(a^FZGj$_=))-CDu|0O= ztG@aM^~Ov+=~5V*F*dgW?1gXjH8bdIK*fxOu`csoDU+iw?sabUXnz{27cF=m7{f=%1fV=0}89L98l%Bh$=RsrQ4l~#0PW+Pi zt$Z|&(fW5=V)w1-qjOOyc2Q+^zWnu`BDOWcsEof6@6?4xncP6v zM)$tk;3&;C7GV}X32!7>R=N=KqyO^AoS^6WYY@6d?G+#Im4x<{pw-uNZLO&PX6SGc zui^?NO8!HNJFE)IvjA}&*oj^MNE-q$X`H*1);=IsYsajxCEZ2Xtu=oVXrhK7k%M@h zD0r{&O=1FL)Q4B&6VtZm;!o z%O2*xt1Xk8_ieiJ8F8GJz6vj+M%Y1+;Ja^P47xg7sE9#ca` zR;>WKaCo%J<+(c*ODcmrpB{vce}^d3+m7%MO$8pf5OX(FrK#tlb_9F)BH1|W@<%?O z1VDcK>S+=xXz+Np(jZ)WMLE;ui~rU*ak0|q|F+C1@pp6-kYNH3v$Fbdm?n8*&}G!C zRUlnq;TSS3 znxK%MGtGz*2{wsyFW9^x({V@5szv`;&8umgC4XOUB&_d!g3ky0Dm)M~j<#)kqq#6T zkHy_mYWskX1jG0G$XuTq!+7GX?5dc#Z(F$0bARI3Cx&jZK7RGTt#>$NJ~z~x2Bmkv zI$O~FO{g5&Gr-Prw5$)Em7S|k4Hqj=F+$#$idEeSQ4)M_TP@x4dSf#a0kDpCd-p05 zHk0qZ1Y$D1xbJnydi+hk=efDEa#}$_^_0CTW_oWewE5sZlKK~km2xv7b8Prop&Oao zic%D^*Zj%8TB(=9B-r4w^RB<8#29!$*Ba7JXLka+ZA*L%%>XV-ei{~Uy}l0jo_Uik zWC$5q1vJ^;qkk*N6zV`Y237%NZLxy_5o2HYJkn}6s5nL1xD%CIK&S_4RZHK5y6x*%o6K)gMPn0C<4Y~;W~(2p*XPk`=*M%TRkKG^ zgn2#lDo^38r?6v%s$# z=M@8iVWX56saAAkNuH)rxx5-nt&(kevAY>WU#AV6*;b(g=6ZCUZ7xDx>$v>lw9Z$i zpy&+lx&FKDJSvELLa3D*c>he8pSjVWoBKX&C~hD8>$=)}OUdvdKZ7P{-neIBbU@eJ z9_UxE2`|&RQ_8QM=iLP^|0xZQRtlo`06v{IuVuaHrpD<6s`y>L=l#FE*_@YC7g}|K zRNZ=8ynkx>7{4d*t^h^Y_)26=uL1@*u(OCPpjgDC$DtB>BY5=7*RGsoey2V-F9rHa zm3H-X!~t+A(>QKAS0TZ5KHdB(f(*3?*f9jEC<*US01pYh@8YARgs1z0`u_41jms&= zPfcp~A~FC?dY=`HzFV<6MZR|Zx$47>y=3+R@)!Fu)W2?-nqDrZkN~L$M>$CHb1BGd zS{L)*6%RXJ4epgM!KfYoo#8>|+5phXgPRT2o_!c}k~^ORF<+g^G`&c`_7x9CGz9wO z$ebG>s?P7qtLC?E`ZhD%x7OH&f~VKcO+TK*X==qJ2|vP(Kbc(WEv8ki2fe$@kvg;Xj1DwFlX|*~t7YepDj#+KJbTaaEJErmd_fNdfy_RC# zktf4*qvj&LIpef0ai>a_5+jG2T$?$X(uM-KxJZT@du`h!oz_NXe`5008KwOk(%hb> zPliH^JRgs;zG;4>JJ3%6BGRkVBihRJKY7-nJ*|X6;wcZ+uIfbbIdZ=FEVJHOTT z`l=4P1L1LG&`GHC$j@3!d@a{Y!EtRlN%LB}{J!pc!>x_Q`>6_RbV4q@VsLv3;-cxT zq<_HK1C5H6urJsv-BBkGq8D!(KzRTL4d1DXgo`7~9|X|=U4zyJD31HSl99P`)T~ty z_E^@K8SiZx_^Z8=4)nAZ8e~`f+JGm|aivw_+V-?wJB5&O}sm}Q}I z2@c~q4EN`EuoJVDz(sG6-x=yi4el`KPeLisfmrlFYy7(Bov8@w+Q`StEInPLx&`Rj z0>={TnnLT<40-W%+UD|iN}7YIim)}}y`MPOkYu5DYGXnrLd4I4NHtYEAMwuIY`LzV4}y_OB{O(iDIwbPsnROsfT;rX+jH+~8!^4I14iK-D>%^qTR z$a3ey=G)1j#lu3BK@ZK+8B2&j{p>)3CPB65mj2S+?%Xpu;Z{GU5RTgOlt~_jY0#=! z-P0Y;0YuZsyEUTaj6L1ztB-he=Nvg&OkQXUhji6{ef@qO(3a0cL}94wY6SC#+hB!$ zQtiDtq!d>M48nsY6{4aqs&J)3X+uW!F15Be5OiC~Dpf2~m11LLayKFPID1v+4X)b< zv%yLW>Iq?r+zncGfBpVkU>6mF7#B!v)Yby1OR2ASpra22qFZLg^E^1T2lpI?yA#UG zFGO@Lm2wI4hz-UBn9|jX)OG{1<||Zp}g0=k{e%J-Nz+e36%pAAFwH>MjX#lXp4nJNfAhe{Y9l!kR!C$Z2Kk>oKX2J z(x&rl#4kM1C=wkPoEcQL@Fn5#m-(Z&r87lBqDcL$(vs`MzCCip+oAmJ4~ah=Iix_w zICt}6_631JFsh+OG{Qo}$dX#ll2Q)h%827rHn-MCE0!KZ4lxIoyh%gJg04Uyq3?@vVM%CK~u(Vr7?A*E-6vl;PuE+ z?jycWHgC~2KemM(+&}n2=hLQGwyMWd0t~c<1UwL?vh+VI+NG`DNJ-_$@vqq(LSTWo z3M62f?G*Qd>3B>SWXy|!vWPY?Xq3y()h%XRyDHNO`I!ao20Y0MUd6{+VxkL8Vj5tb z-)~2#!?i`q(w**HqLnELuBq(&V*hmGxqXxvc*IEYkHPO_wtg#gY~0zQKqE{^w>Mu(xF?*SZ*^WuijrcsM)e!* zHC9B$WH0}uhPVFCF2zx`*%fWlj@b0(^`7p1-2qPMrJPaoaXFo5`hw^BP}tO-IG{KJ zXKAJgq3d@x-`qEi%clkpR6gd%7eIbt$wX70j->N%Er$*?X{dZj622wX(1DaYJaO7# z0r%#55g3&eXrD|DoPgi-o6k&5VC+VbOI(Hy5G$-}=$C@y1V1{Kqh&EH(OhX*Z@KaT z2MTii@la=aNf7jpUl5Ku$N2YO!bi=l?H6P)+0egmfB;k)Z^zarx+H!uo(KN7UKN%c<16Ji$V>-^G)10543&pi#m_g+Gm#>l?H7&Le_UYuc8jbPK z+$uLzOLH|!uwHF@bxGYS8x@gV#Kkt?XJ!h*R|<2cEhip1WNyZqGdu>`dPUhZ zlF5eUAjA!;uRr_~_a_*W2s6FTq(;0iiE;2+Gz&lI0Yn!;Kg9qsD~1GJU5ch7dletl zr+3Qq)9THgT9puz5xp7Si&?_3(EZ_qYEK2`LW6c*1mMq$_n{}V8v5xvW|u|YT135W zpUlmXErnXxk!K94dq30i-GHvx>ci)b*xdbp{wuy^{Tv6N=URSW)qWJJn>TZq+|7KJ zv+NVK+kjavRM88mxST~yc!rXe&W-A5STGRtnGj541z_Nr0b^Y1ZZdgIo+uEA z>EW%sK5Xvs=4?s5sbLKdoJIjQlrVrS6Z27Z{AyjEcmeI+zgMmBnv&)5$JFfV8v|fR zGpx_5!AEtxG={CYkUrW^eNY9%bzI~SPSwJpR?CfLbbt_;9i*+ub|x35%{56f7CF22 zLzMEwWKEhHx>G79!@VjQdukk*uEJ^e0QBrltflvODFl-Z##OZaQKpNvW{{Ot=4Y<} z@Vqg*=w01#)o9O$BZa7IRS7TqyQ6^(?lnPu*mMW?u=8>ogzotCM~m4G9hbtpTR+sr zHOGAOCNi~?YQ`fp+2Nl`6gJ?T8;D4!y6mNbx{|-T0@V{a*IT6lYioB%Ei)FCD_n;I zgH|US@;`i5-T_q^?)VH91}0XR1x5t+@NBi?&MY?S$)B@ym35JF0WNAZHfuQ1 z2Q_jI@FEPit0L!z(`v`%o@MK7g8IGzj5{AZH?!R>Gjt#HHiY!j*cH?vzwU4p1d_u4 zC~C^`#ogPPjB@`zCZB_|u3Olu??%rJ)Pvxyb^ewMvLGjmD992BL{z456BeOx{uk+V zB9>)%rg)`*U+{cyzMdNYfCvR_D28JR{v&go1dPuJywFBN!&&$y{2VOUIqv&|Yfm2v zHU=!PdEe5fVHnf;vjGTrw#V|-*#~dtBXU1Hv#VgN1Afd9aH26@u&NM{E31Nnr(tB2ur4}82ao}Mh>P*BTN@jI{Vr*D?I|tsOZTru#+6j0p-%U% z_R;9rME$`=hT}h~w2zp~L}5MzA)^T8|EY0d<9dL;AR}49B;qcqW+fQ)JnTC;J=3<| zE0q;<5fXPUPYCF08XgVAgdqS{?8k+~2<)#yOZrKv?ucS{4U$(F3dv=fLpz&2a8ngy ztb-O=0CABuRd%epf%|08xO-AUuS|Vc!JVALt^N3zx@;&J^0-~8NyJdhk^E8F%9x9T z1)N@e@^U5cb}O91V11VAZsxOi+%kQB!X(Ad09A40+RDAi+lHIG=emWjMd1w7!%d=d zC=8eujeU7~AdU80q1uXq{qA9sd7}DX#*Nkk z;`RVxSYSgEE^I|a3-y^r^;edmD&j?Pv%(tMW=aRO&9}7;zTglTl+|_>Kr08&B^k0D zjM8>fUx}Nvrwqu*NLg&x#KJVhdCo}GfoBK9Mrfv>jK<67^EfRS=^OXg6-SLT2^S|5 zBnAwNOvNsf(LgM#dfJsZ-%ai{6?Eorn+R0NIIwfidmD&Fu=?9ks)Ckg(rCPEKcEoX zxQ8WQY37eEMf}oR!Naye(psyy&+029J*m-1r?VC|AGMk8+f?O&r05V(500-2C36&l zlhbQo!6bl_xUc8Ut|ohh(f)e9o5jjhlR+nA%oRd^Q*ga^1?LGRTkH6E(X=?zWXq-J zn~)Hoi`xlL`F%$KuWjOmUdSr|aNqSyeN=9O*KptqObj5~cGamI{9iA?z2|?*+)#O% zzM3bN_B+m14*K9y;4xK!Qc!mFAmDxnr#gGqi1^tRv;GhhDa_n?Wkz*{X_SgshG+f0 zdt0GeqDH{qN`HG{8RF5d6~#%6$=1?Efe5JgB;jk^YIMxu$(HifS}u z;@Qv=L-uqpzm3~`c@>R<>iXLjS?TpFyl_nY)W{jsEYZ2kVa3rpev;&?eHGnym3LPf zJUOdk@Dc?Tq*F~U(3}}-77spP(g4c+SyDcVzLZ0iqqnYfm2j;++e1PrYEmWZC+g1F z_rBQ2V`lj4GfI!EoDI+QAzsRD%Ppf_FYOefU7oH;4Z6_RXTh-P1zd|bLcUDJl4Egy zj9m@&RU2&-#dsfAOQ!pald*+*`A#JRftc~-(!1kf-= zjN--$cA9K}3m{{WtN&a3VeI`glm)#vaQ2Tn5wBo{Nd8XSYE5(0!Hyg?LU3B{q-^W; zBN2hZz4>neR=YQ~+WuVuzcGf)Mpyj3qkwt)jJ zPv@>Tt=+w^FP=<^$LjJO(2(CEx_AD_dJK9J;>GLwGAtj#|HF$g%72;ZifbPnzClKb z)Rk*-ZqR6%@ml}#1^K1%lN@irsm89CYgw~8)j&L^5mqg0~wwRlkJs;fP-(3 z569LxcxOJOt$7xxNiB;PN8oYtR2;euTG&!5WPT#I5q`&_b|@;X3m`3bA{$Ak-4MuVhWeM_<+=f-ts(m4lUxgdYdWLwQFx> zGZ@FlvYZ$S^8v2v=;vVTBNzU*&NsPkx}P z1og(q+S^tZ*pZ~stB%T;`)R^9HH1{M49>8hZv6tfNRdhji^uI7Pu9USytfzDD-*W5 z%_<|lkXu>HqS9ck8$}^5`|)C~f(5|F0TNmLj)a0cKr}G%(;s>3LJiGPr1|@)0G69$ z{a;0smAV}Uvj=mbftdZef)`M6)d5$0Gw*Y7(r%rTB5BUmMN+jjah<5gL{kr;p_x#n z!*mC4?c(OZt8Ti@9&EK`*7r_RayuO^aheSQFHkSliJLH`-_>Dj+mhjr`aPn`fv1+! zP!|^WSRZ8KEWCe7SUh-Zks?ja^9R#Gh#$7Y_lB9nfzp6(_U6#HZ|os^HHcO7Ku{n~ zqqGa~J}FX9&9d0-k52eI11=f%6)GiIdq!}GmAIO0I#D()#wr0gKx4mu(r9sAAO=Q1 zaPocj;X@2C1bDld3#Z&yW)x+YI<_f(xfioc)0=e@)Gfa`(5mBhrtE=ZHIr{3%1Sy| zcXfe5K2NHw%B-4b(!(y(xo61q0mNwQmX&(P-RCM+1mm3NyW-dL`iVh%O0ZDLdFIA_ zBoOhI+J)!;RCg6jbuG)9K=1^2+kxN`AZT#6gy8NP+}$;JaDoH~?iyT!LvVL@cZcwX zbMAfbH@qr#6}4*bwR(DHx_i36uNQBE`J9qTIsZ8qc0G1{CHF0LUM#8|%&)Gm-}zMc z&&-z&`aF}C7qQ=7{sAdZEwjth+Lz>I@&ue_2Av|8` ze+m$i?epkR>Db|Y-V--+*95+jkqdUW2bsL{U;MVK|GujD)YXW~zdyCPsam@! z$P&ZIJO(Xd6Bu~!K|Ht!^@hkLweLvejW`f24<=>V&eF!HJP=lP2`kJF|Lq-OXfNB} zKN9O;JEWBoD3Zx3WGzSLQ*|05J336+Y%JgZ{o#9Bk#fPw#)V)e>&%E5Tdj1WaYlX> z2KN;Wi)WjbCIdY#*6+S(J0)$s;wxUU9QoA{_~U%G9MxW%X((?luxJUY31o(dz8alF zL<2+yEdky}aU;SKi4QNUs%Y=^{xSh@GR7@O03X*|mNoQszfZghdTzbK@V$m!b!DT5 zdv(-cw!_-e--QI<^e3CV#KhE%-da8Xlse{05^BAgXK2U|K_JJJ`l{SiP2 z%aFG+#i?wq5*C8ZuY!Qr)$IilXt+4?j0VlIZg|N}qU-`k4fnaDGr(mu2UVIq*z@+} zFOTP@s3=w*jwmRqs~tM%$n$StC#+Y?Od}Go-}ZXKh&<^&QyjmQ%vK#YD@hA)Nh}7y z0S7V$2SN5)Kn%OQniac_JoJ@7p0V%||?=o;yvgUYo>` zQ;*;xFQ-Qw5zlh`sY9P07LW&aF~cttNpx$9rVoI3qw$8lu6pv8^8lkv`TolS@(?fG z4U@(UDlCsXY5Hxl$So)+|2&ogW)oxVi+ut_AK)%se(b*q0CjIAIQ6HIO%aCM0a}Tr+6j+E8eF9OH(k zUZP(S)jhiBI(W4#sowmxaIlD_o@0xf>5BDg$Io<&Y%pzRbuq&Mkrk*r(rYxA&GD~m z+Z?H}@L7;KY=5xNhyo(c0?_|eJ~f;EMi^K(&97+#CAYS1b`geCDA zSg&1`Ge;N_xv-pm4*!7^2CkXaAmi9EbD9ks>HosvK#bX<{? zT*4KGZkOr@X$B13et&@^;Hcq&#tB>drK-;5bB!^YW)N_$C*!3*lnP&2m&m;*w#3wH zdC&uB0fc>QelHO!R;%8>oxdo7cbAa-hHZ2x&HcW}vRTT^m{mVaIWHvvpqs=~7wX(G(s)b%{78YrGveb3I`OVr9*GZUTM&T!%6*I73~}%0j15AC zb*O1L8oh^qBk*=VRDkdj_RFLXQ#c?4%b}lT?t-@&LwT8?m$e)Yj=n2l`S#^53leQ7;7oN?&g&u2n zh7#$@J7DjhJGS2GQPEoEpXaYI8L?B!-;tc@W70)fPy3!{7JrP(0_EH%uR7(EABpS? zYfSmySw**MLnBZGL5~!5vsbJO)DrJ+_!^GZV5sQ-M1T4s~@U;Rl>sNa+Ac6Yoh5<7iC zs%1vgkL8pA+>8ZmM6~~WCSc1SU;d+=lnB4MIlMxAqJ`$HFF!n>lxV)Le|0vfRNgnV zH6}p>9P+n9Iu=mBwPlVorAa1VOB4P&lwY;sdWO#o5sULwYzYsr0-jQjs76Zf7eMMQ zO11v20vOlEpLPay#oJjwhKtchYI?SKX*)|)Rr4Z-Rnb)ddA~vmO~*+>yx=D26;d!x9!@QxaKeOaQ$SfU@4tU=!*)HADMsnxh6c zv^4hD(>9IAk95PcskJykh7@D19H)QR>`d{E=CGZY#Uuaa&0NVc{xY<^cvb!GFvf5u zr0&6^d9)D!DXx|9bz>H9)?&Fhn7dD7rF*x?LqGaF(MV_?$v*>Nosi!Hd28tm=;eaG z!nkCU@qA?8n4Mon2zIAom|o{UF4G(1QUPFDRb z=D8T1B2PN**Tf`BNi{DX(w4?Bg%A)C5lJsb!rn+{2b2AzZp@sSc2u({+TZ)4;p{lw zQ0&Nn9EwC6>L5!KdLgmHE8vEZEl4^3rG-DH4uK{%$$scZ(n9P0nox{_wu14{dCT!R zj~rh*Aui@OU$wK>e>Toh&^OLt6BkYCh=)=zjK>Uy4k}`nIr!K$6Qo@N&>(bxUkufB z*XH~q2U-8~cf#QzjlfDf(Ao@2_W(O-XHi-^q9qOqRxG&g^3VFI?xPcW0zJ+OR4^c{%fce73T}t+WX%HI*%Gza&NVAo9Q30F?a8e z0+%)UiD>bqp|zx1-XfEcM2bgIN_|hbH4p1X>F+H6J9f1Es>>r1PXDPjb$~ypY>H`@ zUG;IlbsylWn55sbnPDHr2*$V?h@qg@Vhnw?6rVM$K@{2$h87TwSBu)O<0W}Gj8LLB zC6}l(c93~>X4|ObKW4xE$ORF|ia;P&(<)x3qcMy*W^@GgK`j@{vgU%V}(?||`_IwuDrap}lDp0)=&8wp=fK+kgtgf`rv&Be(c0%rxjMzAl>5y0hwEK#`Il>UV@B=1)Xbbt6!pVOn@I2Cg_-vt=}>Bz zz_{hTSs=IasXCbF)qK$u+&Xym&S}LYdiaICq#7HE`)QF_D~JDGwtn}9?_U&DfyJxF zP%}M}fb*Abr3lzT-*7X2Zkz?#0)SiD^uep&!JV6@E;bj2`-PHXqIjph&C{W*WO~o) zOB0}j2o0hIhFa|+)_MK7L1jA>a@iElkkyqqk)oght317;tkhSPf9 zdh7Vv$FqI+e8<%u+`7OoSq@hlzs=w$-Lm02n^jn1VlkQ3rUCH`3oYz#ZEZVPsSwgM z*(4wBxc)4rn0;}GddBUgOl!-)acMVsF$dqAPx^K3-_?>2Fz$I0f6q4~<;XaQUivVq9D_zM8kr{f z=B|kxr^HdZdmE4@vPu%PvEN(qy&E z)+7b#WU20>47`S;NBU7J)4AKOozY_#5R&4{Fmg>`M#6mQJA?No%+6PMqooi`OFyv^ zjKe!SCTcp-@+4ks%f6v5-bhA^D)(}tL+b8!#4sYRJl?1hhcks&|jp8Hb zwAe@wUQ^V9pkqF}^o^O_m3~CRDx*lab=L}I( zzye>j$34$Qzy}bqb??gS)XoCGEh<+P>luHJt+H4Xku|&e#gaKG+nsdMEe9MZR~$ULx}2{^_~|%LjFd{qptr{TigHk| zCZ}TyOE|o!|71)}LyP@xJF89SsTrx~GaGM#UTO7e1T5icXMev<+rrJ>{)z8yBAaFK ziUDRJ5fcTqDs!S|#o8H?QAE=9s(RD)u3NPD+ZJo@naFl!)>5ydXu_x%EX}g6 zS9}i>3t_tElN0adDroGF@#y}98woXz3|`mGY%n)N+v$Lfe~n|=U4r_AOISnvdZ+Sc zHWb z`mAYn-WXV9#c;@KX0z+3Z+iNb(qxqlYV;4go3$ZN!?h|ao6aijhbTjR_cWtA)RoNWE!=%lE1pXJx|(fW$GY~BU6xS zTM*c&H|P8}EF%CX%mmnI}0EF@TxR%>YaSbb5#u&DV`DBbxZ zg%>GIF)+3B{j{VMvRyV8IaB# z*{m@#dirDL1s1eB7ZjEDib#o{lB{IE>6)U0y4gq}CQbP`5%Wu$+ztK@Z)?5$#qoV0 zfgat%Eb(W0%sN>SrrGk%pVLK95j3%+&I&Z@;y!PEUqzJ}3hED&9~_OQ z9PmDL4vs)sl1j}uwIX~oZ}%C=Yp|)^?qV;Q`o>XM)L7m9Q~C(*$CrEL3kiOaI|y%c zza58l(K*4oQMc;X%v4Zt<7!med*7;RI^e}%W<}5NAw}!C;k{DdsUpC;AV>`7QY}FN zH4#O{>CC1|xICnx)tlW)W$PS#cTtXq&A%a}zu3ADoz|_bOWRuB24-sN6ezAuz0tlj zVe$|lU^T-g`fQ6#ij`i_{_@<5s45k{B&u%4Hq4r8`c6xt30ly-1MC5ok;tIkZ|zOqzb( zS@`;1UGp_U71(*4Dr){e{9&IZmtCoyM(s}JK>gnIsv=SQ$%fZ!!S++tek9%mY$}F< zNMnm)JK!MiCxwG(F3hVe@MG@GrsGF4`W~TZKTv6OQcux;B`Lg>pD)qK~tJ! zfZvyk7Nd7Lyxv)4Q1gop`KZ0BgZ9B`?-i01Eo|#in(!KrMIZ*)?)9~im-k$!73h}l z>iKEggYT^nOP5{=g}vff>Ef5^SY#0o7=X#>S#L{$SYtJ}cE;IyiZr*xiJ=TdZSdWK zCUEm`bUJF5zKq1nbS&sHL-k@KB@KfG=%(^t&P&%_uE!z5g(2D>`81m( z!GeSf7#SW67Stklr}o^Am8Pb~@v4*>f`0t*V~iPx@xc_>M^knePNH{m5JP^Qq=@aU z5(~^`et-`tck{2Se^>ANv1g+`sN&nfBIYJ!y3PQL)*N|*zo1<*1z_BFfPJl z%VXGd*ZhNxiFc_MdH&U zY8DD;Qi=iSYKz>VHPy%ZxC87w7Z12M_gM49M3fqcnDr}aRBZ;{^Lu|pga+y=e|l-p z(c_Z!EaXErp|XpVEl;4g5vjb{I{o7Rz z_1kTy2Rlx?p_gOEFy^WUS74wp=EYZ&;LAD;7`+(whAW8-v%A+v-FvdkgLyBK7@T;eZtzw2yXv5y>gWFmdR3xf3|hCW@Euyw$L-TVhP^n3Ia**q6vNf|(^He2to=39PW6bHV!0|YlSVQ12Zg}) zF(e{B<$w;VP*0@xEV2lf(_t27FU6gW8LdKTc*v%b@dl8(YtKip%vU+xq{1MXgk!`C{#x&(1e0AolL3<0AYoL3K)!7w5x{xiND2bX{x@(;x zm?vf!z`Q|HlboqYd)mvZvfe_)Z|cbVSd)BiTcMGQB3Lr%E7LlQzLSAqX3{$3vQug+ z_-pXD2I#|{PQUn#qR2T+oAOG2+q~FiwPf<9^+T-QNPm`2cbp7FG;9OF*`g8F{7`10hr?#(W`KEi&j{1iuxa~5IwHPSAB+% ztiXw;1oaUYgkeI;k>mhJL&h^8%kRWZ^qFIzn!Qfb(VP3nyL?3{2T4<^c}p=B)MHB5 z6I*5wfN6LQbtR-fU615Un?@~=5=dTp$Lv3mI|d8Z(QtARs7Tx_&9$mf@jRViC5HRn z&q=T`@6rVd`Qj!0MbSRkqjNXdC2+mWj1h9kMjYnzfGH)O<{uG`7D;){cLkW_jw`E? zYb;7G+p&<7rLbSnyjXn;uH!ZjVFwKlK-)$>S85=lJY~LTe8j33iODOYi7_xp$BBxG%>(eypig+g%C5?^8}X(knW+#}+r@)2&C@YNWxmfZRlTHrfTrW*w-zQkCUz5Xzedp@ z97Ji-cUgft_hAjmg(oel@bmby81TnLVXaLU5h^`YouXAqC8kRamUps-xz#=A*2Q8G zvjjVS_1aQXZE>o|RsnjAdxGhD~B6?Z;mt+Al&LMVcdPH_)2I#FNqROTlIeV#*>} z)#D0Cx!8%ph_rp%0PE(W-FVxOffpD5b$i=00#X~MpvF1^!f49yJ%91zMx27aLug*2 zzUtW(m^05ooPha7C+JAHj=MaAg_ENjul`k>NX!2C(qxuw>n~0B*BU2djr--t5_&&_ z#YG;$_S=Y>(&H< z>-z=LgtFM!n|JK1_(2uWW>aI=qY{XMz9Gu(B%(!R-?a)C;EAZ`xeRz;@)2=q2VC>d z`zY<(uf*K$#c%+@#ZY#?@-KaO@#vNd=f?SB+}J;I25s4HT=^WIq{*KCikQZtLeAj( zL=DIIN(o4`4Y+SndNkfLEos+D;>3#+kUIx=U#{P;H5A=RO!0i8%{b|vBgzTi7W#U5 z{3=!s-rn-$qM3PT^Zuu6&6*$e>+5G_MI43jFL0?l(WUBN{ z5yuH``MN+`lwmh|6upe!o{psXSRGhdcx7JP;N~+X^Yuo|e@>fc zlrpB|%hM91#+OvjtQMAWfgS_kPu8HK&C0pM>{o|H1u$}L`qdrsPs`OfgvCyIDjypO zs*!3x5ik5HlQ02yKfQUxJk4umFlBev8z}#TD30y%&vH2M&3NQ8=-XSoant(zn`FR2 zolWfZZfKu@TZYVac9hm=SQyITV@pBb83SSIWInT<%~$e4g20h#d-om3vl33H2Sv4h z_-c8(Ad`V+PkK0`93(GG(woM!3}9SFKaebrV~&*kmC<*SQJ)+Xb?BnR1_r9{=E`Tm1jKI@q;KR0&3 zYIrijeV>n*y9+@{Swsv2V)X|S*lTSTs)xNs$(!GvJ?OQ8u}Wp1$g|IRuV*MD=oeYH z!_+B~gobGZ3@W;w7%{7v(WCpP#r?{DHIDj;pHq82paxUYg#t`BaCG^6)`FL?{YD`J z;1GVj_1IA%F zSDE!;wB#dMgQH~U+t!ru%Cqy{C3g&s%E+~zLvdLTv4`ut1P4j!-)si=Yjd`bb$>uo zgU|!YQBZ7qV@3cqYmz{U0q$d8mjGybpjSReq}sGLO>qyF($)ey7n47dz8)p7u{5!t znnKXZNeG6=(>S`tvc1%Z06EuKK=BbVbCnK3DP9ywx!a>Js7tJ8saT6^%fSvM=-e1V z3+9ar6e$Z9DYcp0IQpO?0E3Q_cmKUFGCBDPo2q<#nhs!k!3{ye zBy2p8q3kQnrF75OT$Y9#^qBnIWPH1HFpkGs9`M{oo^Rw0YDn2=l&^S00}%MQD7sg= zB_El+3{lm}&R9pxlD&S&7sd7N5JiHGxiia#4iXll?ogivM)?=p6ghPd%sQ;g9jcXjHzyx|xu!YZ|@2B7WDIu}(ovT>zFN1&BDU zD-I0783>5_<^wYUe!=O^IIrYYsx!?+$*cp^lZW#n`1Jrszd|)cDkd2C^H>a$*;~5+cLlA{V_oJ_D?-*0HfdE-svznc2%?Tc<8jIu0m3pA$06 zv!MfXu&L>3#BEI}kUrAdv~)NA03aS;l+#fO$xvZ4c_R6kxeWU}my6vgnhiqeP~SHA zKpv0+Y#*Z)3D`#`#GVU;+W?ug6%T0!dUh%hvCJHNrpERe{VAL%7sM1>I@pRH%j3#J zLe$6Wf5OC@`8I-7iC2R5%TQ|1p#4(o!Maoq#y(#fa)df;(0HKVnpC2>CDRUDFapP$ zcXKauA+3cDyQJ zQG)ZWbEVo%#^+1(E%WK5dyQlZ@)eOlMgom^#}}2^xDig#Nv3u29n2`BBz zj00Y-RQ36cL13k*lU?2DeIiXf64-`l_(Ll~Qf<700wN+Jl@$gu>uuuDkb#hV5`R=O zGP1Ljj#Z(dwg)l(Y2OH~|GheYJyT!?AZ!Wd8RuVe+gU zEEMHi@btot6@Tzm4`uTT15gziBr!1T5F;z>`S)s#?LD)qWrRw-8JgAFA9(ahy%Rw& z1U`-X4qu$e(fztJK@mqh4>WZ2Xc?rBMK&uYwqZRqw^f27mp69LgXL3e+=b#HkpWk+ zkPyX$McRD+5xF{fejU7t2Nl*0PXxQf*4?=XD4XMGIU5Z_YMwXRH75L5XX1nxgUS$ua@uJU~Id}*s_abdeH-%XPq`t>z| zNdFDr`BE^nd?hopgPE$`IF%kZ9+EoEg?NGg$ShY>tmO{Po^svzx>z|cIEyq>xBZ`S zs~g>(y)EHdGByCi{m=NO&(4c%R|M3GhE{fAA*SngHsl-De`6&Oa9JA5A$rj6cXsEncpw|D)&R}7Q z;~VbAneB6Y4>UO#I0%@BiQ>a~WZl|E559Ep#s5e@IM?)Hxa{1KD_-C&km%nzPjRRwpa6#PimguS>-Zv$Z$m(B;bI;N75rLa>NPydR`EiLB^#ys}4! zd%6j1o*w;~E!CZ=u{2NLWcL4aBTz+{l;XKwzzZiy4HXT$TA!(~GpVM{&J#CSsB`#~ z9QPti4s%BjBRc%w=PKi~!?-K3kp~<1?4?S;KbaY9-f7bl}(|^{UUc?x?aoQ1+ S*@4$MLP?5#7AY0d_4^-*P!7KU literal 0 HcmV?d00001 diff --git a/common/NeXus_Logo_dark.png b/common/NeXus_Logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..223cde5efda15a92db0d63f927602eceaff240c7 GIT binary patch literal 28878 zcmeFZg;!P08$XJYB8{|kgM@ThJk@WmH8m?5e5d96b9x66A}Wr@+EYM0sQgG z?t``?3=E(8^XG*cd{Z&FNZ=%?<)mtB=HzPZ@EOL{)s^{+4aD)2vE658TL<&hLjgh< z7%~_c2~jn-wEZP#H#N;$#N(s7E>sFCxK|iRhqy2E>#8TeG#=C}Ay*$jD{zpVR~oF+ zYt#z=cIDS$Q+V9+#i&Hv5W)ArmnE?N|BGNC{y#V% z*$JMo?|4TbS^lzz*8k0WjBr9GbceH@)wpKyj;#N$W?Qg#E<6JsJn4U>5Tn^tq_SkYeHf&o=}A-*Yig;}8`?#CDvVtR1DGBdFh>frps6 zzBZ5N6A8Y*kEXMz5X`RVHwPSo-#u0J-F9Xi&qFm-9nTE+i}@SI*SC%tBl z-PrD}JQ?ao-&!shK4}&2Jt6;lkyX}yJLBOIPC{tCewRo-3X^~w*;c3WI$h0`>~ z(%zA%HH1X}AcV@A#**$f)L|ouxfHF)&Nv#A>R`C-Uj8v`?WVDeB=iVB%(;mCicrXD zi4S`*y2AkmEV9+r0~O`PZTHB-jZgviUe=i9qn;dmfaJ>c3Lhtmnc%q@u^J&xm{OAQ zL{DRkH<@AB3WXTbYJ@*JL8P}Eokzrx*I19dC_;q05t9EroY6_;p6Pr_g@iNm9slt$ zHUka@7Li07VyuLP6-Jq_Cj|!{+=1+bqse!ZfM_3fPooWe*o|cbmemvT9Ucyn%$0lg z;e1sXF(ehVqMI0%q$;!_ADchU^gDv3sez3u%%#i1pG-^rZQ(+FcR2(^$G#%MbY5Bn z_}Nu1F4z^1M3~ms{>3RZ2*`+Q>}^IBL#juDCuKv9u(&}yi0A!+6p9va!QHQ(s7ii? zE1{yP&2okNff4f!4%rp1z{g+e9|-3R4z25O_B)O`f>Nj*Y(YC`7HbQZck1re+eyTK z=OOR;h#cyYr^g#SynY_#=wKW0tEipuO*(UeCsAHPVRM#-cwa+=Y`o`d8+BZ@fo6E9 z8r}?<_wM`pTCj%kPDZ?NNsTtNsFvK_UfvFW=x$kIlUR;*;3a1EI*B&KSja^cGkIx@ z_MY>pi-C-+JtBF7&WSJ)CS9e$);@SCbe%|%($i1~Om?FMD8f-fFozecT27;cRpm1a zzwZh3i0h!H%$cv*qOcat)xQfB*>tSR!j zdL^MX%LI3d+AHgiKD6)Jwd+_1RR23-HYRLFh$U_xwYTFRMo;MkRYr=4Te}>r5s0yw z1D81Y>8wbw|bQi1J6`SYJFmx={ z316TXPijRNPN%u5>oE!eF>z2I9gnySOYF@D?dWD5%oe52+oAoh*Fr6>`%t)4q2(ae zg|5bwxr+x;WPy;8-!lub&BCM$E%U)gW-MKD0m9w>cS)hQu0gN!r@fCq7eoG#W*)XB z)js$m6fd2<#@D%8MoSacpxWhpMIOiqI+6+6me1)6j^UtWKG#9R4y0GE%y{Knt-6xB zo(uO6IVB1q@t|k2O{aA}-(EL+K%9iGDfV-uyqpZ3wQ zB=Y6wa;0H`2>l4`gfj-c4gcWh1)Y#;w^eBqisfe+o#0zSA{XyW=3UOlyqX^PvwN=} zvhY=VQyTHrNy7_%?Qy40G?alDw#vuk*tQM&`j(x<516s|{YKoS(qFh58ByUeZI03qpBM zn}`(w;&`#o#;BFmVTzUflH?M*ma>-Atz#ESlf^BX&gLy!_2*tCZtmD;&acQNtloI_ zisYZROdaN9A$F2~Ho>ETR3l7D?)#%B((46Y`!i)81x>8R?|bOqXKj{|i$s&G^Rw$$ zHss;12$!dQfd&0H78%SjD;$2-bUA-n@^R+}v$lxVV*1bQI|Ih9Ip=!tan(pCIQiQQ zcBU6HePwtPg2*p0ar??>zhz)IvRb39mGhrGzz!&DD-T&IfZJg`-!2$gslGwkC=Xs! zfFpkQ$77hfYf*(G&Uc{~G!pb&-W5d5p$HbmlMItoxTO@-uoTr!;9xa%VwE zMvk1I(5?AWHcvFxXCj5Jp0|7h-^GX4dgi?tl5r%sN3wX((6ya(zJ_ss8pqFFy~o0q#G$_6*@>`MDiy*) z3zT!!eCSGk8Z66xLccAlEc2EHW9B@zqj8K+(y9li!93T48G@C=zxxXdW8zsQ`UFvx z&|WYs=ex=Bf{g!2pHGZj?12BSCuciN4tglnjLEMf^`#V4+>+vQleUKeix@KUPL}6; z{PstO!N2OYgOj>-`T8^2iqpy;o$rRMbSaVLQr4xESxDn5dkPZc!JSH84%UURK$AbA z9){RG!t;2B<9p!)M02%+G&X(ZtQZ{EH_;Jx=5#8mQ%hOQrjkghaG*LfMoe9g#wc!k z5D=40Mgu8zhrCv_jw|c_h9TA|)fS90NWKP73Ns3k)pWw2RGfrdv*G^IOn`sB3wJ>W zwf2dlmKW zbvHCNCi)P`8}Uf|tBVZ2L#S^)%oH;|2}blS=C{Y?UvCN*Q$rx~NaP>E_Jx3psdHe! zkmF7F?IFP0*WGs&gD0~?M}5S~0L*zw%ltR*RbQte!Ux^BcBpS(^u^kI!Z+S&q=a(rQdC#owwTxcH zsu8n+2&4&MGxV|yn2i~AhNRIdMo>>1Yzr;REVrERR?Rw{qOl(MysBiv{=}r-A?f4_ zK(SsQ8X`ys1dNq|*QkGf4YdoBBtjQm!>R*9`hn_%Z;C=l#z(zHadactzB@)UD#Q}4 z2$}%aPh=3mMo!<6<^w$9<+}25GJcY6kpOHFfEr=NF)d116? zOssZB*>;lh%~C7yI+MbdDTsOcM2xT*_5t`jT3a77Pf*H$h?2Z>2S&lMo5la53ct7!_!nBtY<=o&@Db37_|OaYjYf zc}!3m2*^TI-J2Wh54$U&xPB47R)O!FX&-aSDh$q38O6L3s*6YvaY=D52pJOCK0;{( z-edhFJKBzVtM7`ux4bZHCmo2fM)W)+)K#0iTg-UM>RORgPfHB_7enMydN<|e1Sp(>xM*$j}67T`z7gBnxCu2C$1)vD}d5Ks|?m7jx&kvE$(R z>+r%8j|A6xRIN2-33H|APT+GU?cZ%dKozS>j!o%@_pw|*7zDQ+P^Bk1k(Y{we;J8B zY49m~F8xCT6abYLA~D56qO<;ro0uuJ1(*Jw${B!vm(ob$LUcDB{yaNdul7dAbySW; zL(KVGaB7eBAfq|!qi!nDv9wsgc_i+Xp$2*H???buB1zz&EK*(dRz zS$7oA+xmMY>|x@hG$*Tj3)+V0y}({HEc+@RNLrjQ^bS-x8J*9(YLS zcKmg*m?>sj^N@68hT(!I@Z%CO?O_ES7ENURJ}FMOq8woU?<3X@Bfe28y>y8JM^csGE#fBQ(bPE4=6P!?PFFi>oS#@V*{vfq(WMO!QK$9J8{ zx-UgJQ;;n7e_3O{vblG&rhge%?HJ#({~0A{zH25u`>VYFz}c})!p!mLV_}TUB?cK4 zGaqlqxA0po30N)+0KdOiMo*VPOjijX$~+LYu2(;_#*UiQ;mnE487-6MSo7>A`w1bE zpa~?WARpX2x=7R#V{Uoc=Pe`Z9wG@f+ti;r@qtu&t{Ueparf?}Ix9W*FhCsv5SG+_`q*6HBH2TJ(Bxq~ zouLPcKjS1S-gYDX;ptyl;l~%*_M%9U*hd^Cyq1y3TNt^3ygtsH|M|1$3B~~YYBL(^ zFd7ptU40a9Evq0YUco9*K{cl2;KJ7rc9j?(1*9lc(rTtA2adq2dJmKGhI8{ty_RAN zgHr8Z;)?v@lv~eX@#Ex_5*iUj5mb=lt%~c}m8+dCrEP&M{QitO$gx zhhvxq%{A|8u>debi9)!%@RX(P4sGWCS8NT?DZ>@l4;-*1zF*3PD~)YtiEb#Mmp2N8 zr~lNLGjNQy!`1|wgVnLQ{9RXiT22@OTF)!{l#|u+xh0?bD@`u)FQ%RyO;(!+K1GlUocj>X`< z#$S2?S(&4mzg6fKdz$t{fpy|-!GU!sSC!mnP9>n< zsY7kM)maStJam!5(WUNFJ2OqR0j7t~fqs{+-mx;3U@k`0Zb&89(g=?AXLM878&t<8%4Smg*}V2?Wo46c+y=PsZ@Nh(%6V z6{3dkCe9*%ufzadvlL20D=<}f)r2!iBQm<@h>oW`UnK#$K7!!_qUJL9%M-zTmPxZO zOFgHrHLz@bdsU9x5{C=B zcIE<3{)Xv}I)23KLLd=YH;C(T`R++1)Hn9`&mk##XpPU>A0B+3^SW(DDjK9OSEySL z4NVbZ?>s!1sBBW9T0oK8AZ2pUy;^gsD_>uL)w-*3Q!*SOWqgJpRTn|yI~=TzZme_P zD?JmuE7sA~EO8J9cS7-81pWDi>W8;sqXBu;XnqQ|nko1zE|y{D1tS6*T!5DYX3dbWUjwrJ$MX0L2b^hUEjuFb{F$n2wglNA zQFhPup!Dd!8Bp_VYx76iY}u-*Eq95!#-1_Zi zKiUuJb@!q$+<@U?uZuDKm>Ypt{C2qJ z1tNz;Kb*ayMkDBXfGVVv&VYe;TGf^_f!3}!&dI5`XOMh6{tW)IF>R%yxLkR~c-O6G zA=)yKe-AUDS$*&}RCl=rSzp@e{NKf;2Y*~x&o|*krans=ANqE==l3+hH}T%*)@BiVK9rx)A-4j zpm%`Iw50~CaB>-*bka;SIZAxqc&m6F6Q8=I?jv*d?{ReLGg|&uIXtH8o$o)8s-?Q} z(u?SO{X&&~o_a(Mz~5g^>TKjOHr9yr4U@9qQeP|IM!KgCx0?ySNoT-3m@KRwC#*_7 zKjM(TbtQz}>J)T@V(X3=J)KhaF2)A!i@V!72%Mlsl#>ZjBb+pw#EvrJF7;69bH%15 zaFW`HDrlF|K^y@a2z*H)u;K(Tuw}(*_0SFuw3uIEd&wH4vdI0w!caD1_-&o{((+Y+EM`!i^+k4GK`yXsTa zoLW!2E>_njhz!G?N#rW(dI6L~Z1$$&G=9Rtdr>~I0*%71V5}ks&5a05@H$yE)lIp^xX1&hxKzI3QOB9%DklKAy z)nQ=U11jg!+}@tD;lSnH3}_0m7qoV!53k<2S-tUv2I4J+A?9PqRl5rzb z8%&P`*wrIMrJ@acYW0`Dc1e$!>u{?eGef;h@uSN4gNi7g8g?&#E~tMtjx@}88A{*c z%3oTHjQd!>sIWzDl>A`Y)wj!7I`)$xbOBd3FGH|$Sof(Eh(oUEY($~p-F znriv>l~~I&dYH0xU*VL=oiO^h_`d1o!deO2{qZrfhpo{c@^%=_d_+H+@wKVh0?+W;j3pq!td%u;43Z4}b#8JtT4yB6 z-uRE9gpOCY+fKSv$wHp>vGUfy;A_uvSMYKB&K1=w0p<-Sp5JHNu*vM#Oja4K;a7Xy zUNyv1`KQw!96(~A&~psAne^hI?_=)ysdVj2=`iN0!`%vb|4(6Fy~`b0s7|)g7Q?K` ziJGG!(U!)l8dZzURZuAHMv#r$+}*h-rkWP-Na+a|bd=^rCfAP&pDtbbTV(JK^0MT9 zxK0dH&IeOmFduT0G8eoS7ChxgR!Vep7IffMI>Pe;?@PyHFzBQ(9q2MT!0VQw_z6Db zA4b$uNdw}6XOF$l&@{Z~$(V3UK&fKO-23T&9$vh6=1rbUnuWz{myUg)KKrk@LYvqR zL1+6Q0$2ODV}U+DRd^x1J#OFJw@~fRM!`h#lTl0@x1$il8-uDsI8X}g2KeFcuh382 z`Zeux@JZ#L&>DSskdjnqm6UX?VO#1wf77iz;W1#jKTPKU0U#x{QbN0N0soQdy*dLZ zv9YEM5vaQ-QIxGf$DK}|JKqahn8S^?d@S=;1R86160bcTc>k4cRdW$j9%m+8kx_iT z`(l3EpL^|aDaJ$Gf8D}&?1^BIdi~0>UvS25|NaJs;dO!|DS&knFDdIcn>|y7HZAP_ z))q`7wZuBo7OCQYTbfR~X>b@zxkg2U^$QdDaWaM#sSycTNel5|7p(OuUvmZNf&XOz zgj!Begz6uq<4u#;8+}00$ZeHkU(o-pclx{?efOPsg#_dCQlQUoR!563KG{GZ-F9y9 z1UjYFqZ9W^DJFUqLJfM|Fn!Z9EX>*+QtEewwqV!xHL+t~xkCv%-NS>4@R7tdUstb@ zdgn5=;h)=U&3mo>x!IfX-uaXNr=BLt_Fsk_4(D%wIvQEqP%T*EN6NNu5#AQbRrlmH zjZqZ(Q84z!?twpU6i|X_Lr<_4a0d;Lb(!uc_ez%Pa}bcW(deGcx;4`lJrchh&qW5v-FCx83ZWu_K?HePX1al7!=jvcq4)w=#tv(X^`E07TN>=;T%l?e)`cWh=mKdM>-8`WL}hB<6Z7~Ubka(-zilr))3C0`c}=24BkPF%a+y{mgYLmt zRQ`%iv}=pne4r35k~Tpns8Oi(#qU0A_hy?Or8|3*)QX9Bnk|*D)Q2KqwXTGZ8ezhM zfI4DFz>4IS=`z)+qaK|A4P_Uh0XzljP?R8HzLDtwuiRG853~)j=WqAd*w>tVfZAI~M;}=_*J2nIa{4gpF5#)DG{%o&84SEd2b~FH*R?yu#O!y$ z<1Ae!$ZV{-#Z--Nr>OgP{!OG^FSmazb9m!Zkt=~sA}@LLs;|jl-Jzj;BcYn&ASC@( zhv<@7$Z4(z(!Xc-_bQidzwq-LuMdHa^9gvRE-VQE>ax|Q;WS0@$7PVfH{)?)%Vx8m zjxg5DEU4(xJSme<0|)rmNR-rwjJ|-6wX;3y)=D*!GgcK9&fdtE6&8Y=l7%1YNt0`{ zw-bXiQv}r{+a%9|r0*m0FuP!4YdNO5%O>kA@fWltUM;;Fv1V!h?5-_D`s=^B-bXz0 zzF|)yTjvSVDt5AS`V&7)Nm~S}Ek|q-;ms#QzCI7ELgT3#N9WYI``X|muv8`Hy#tb= zj5xNZVT{N{^gVZ20Q+|P?R^yRNe4LR{@OBLPOaP)#q8?5O6Kybm*p>p?}Ebmk9kq> zO0-p9uF%AQGF(u7`QQNunoF;VZXP_%H(%ETgQFK5XvR1c!T#vOKt^~xd6c(kPNuFr z2yUj>|3GDPs2bnk3uL+W>VHqDGq5SfEmTO#eE#=i`h{iW-KR({ z8BBZ^PhrJ9Q_|j^HS<)K4XXWQ{0uKs#-?S;cS6Y%Fw7ko-wli(Fi#{O$0*G9I8}hS z3D(bcJUlgMTbW*J9}9|Gsm{aOrl1k)=jMiK>fh9%;i|rqX=E>iN0)ei@1iJL512L3 z+@ucdwl5o^u^Y}{nTdI=4A^o3&hT@HsN>hVzJd&skDDFu#Fgo|KpFauz)8@mfBH9S zBoA*a!falvO)W3w0 zhHZQ)5AbK#NEvp%GFP@Ciigs=W?eqqGD<~GT(p#^HLTrwV;nEBexu$WTcy(2CU#{p zVPnZOJcrqIt&49J9=Uh9g0H*i1&+9GPbZ7Na-VN-%nt3^8L#Ft?jE%S2ByL3(OoHj zHTm|3vmh?`2bI!k)El<>(5KX6qoSDtOJ3=CZ-1BUnsmz8*{d~o$)4JB=&w&;k-vg- z*mr_27rcQXJQH($qEj@u02GqVHkyvh76D}(^}{E*rM=}eq}M&&uYxt+_RKYpU*c#& zCT%iZJRw86x+*a;)g&gx%w=t%3i}IMG=_7#IZx;jRYv;(;=Ii+;2U<|6`QC&f%Tnw z7MpuKhi4i2V@6rd^^}e7`fod6@yWiZXSWw!b8AjYZ#sH)5e+VXW9!miTTH!cQWTmc z%`fwC45#BB1xio1Q0GB#{m0S1VApP8q3>tE!~&+Grfg+bGzGwjqTt%>MrN4W@P?Nf zGE^#$kRE9F3SBU8a3NWLe=Ji-WurxvLOallE)|YsG91lpjt4R(tFGK`*VchYZP0sV zEqlRqFFSTG4PQ}V?7W@PUjOC1j*wJDz4PBiYlM=nyTF-zskgBI(h9WhNzH}wwM~V= z8F)V+V~I2xv^ThXkTKsP^$K}kHJ0Smm_zw(aWVC5#`eJ>({!nnxikL`7jN@M{d)66 zeR5S^jP|h?YtxhFCain1IB)V2Bxw3NG+{x9K4E{DlZ*O%99w+MtSq)Cn1)7+tVnnD z^P|l8AwId$>6G12=)4?Kr1obDC`@}BHh1^16^l)%57LH;#1T3s!2G}WWfB|v z^--#k!fXHLhBXbXMjCCbPo?hPCL<;x(Z&e`Pq;E_tG<`25H;1rF~2}B#UCYPcT8%O z&|MnHG2N}Gbwve#IbTxFruT-*6toKDu6xnkDHc2%*DuPrZKDu^3ws{GG|e8jp{Y!_ zthJHLM-O+kS8v+Kflar|RS{DTSd1|o6@uH)+9@uhJMO!#1!eYjY%$hz+`})%hoCTy z50>O&a*tE-d^Ox#2mzo=F8lTIgymj5b<*VaTnt`eRKX}d;IM8Dd(5%v6yi9T2#}D zVcwt_PbVTr_dD~JQ#3~YKOgDEwtv0l z7sBrVJ&G`;%J=ZC)cK+RRmt``^d))_&u@CUalh7@60{XzkpQ^OZju$YV z_17NImxL?kBaB{tIap34<0K3Ssxgr-5U8TD4CFpAOSc8Xy<1&0GyZS^%X+2!!sWqE zIlh`!kP}&lWqwXJ2&h+kYz(ogMg2ihwmeMk+2*OktI4M&+hS{5Y1fpmNr&|OzVADH zYoq|6T5uu zp?ky3`j(@d?H@ftJ>PhR3}R#jXRI6XH^P0r4xcXQvZy$Z25=>ZU4 zqY>l{yV`SM{$Spkf(xwWy2o@G15_HvdOuXs!%l8jmdg~O!_vNtp#9e)OLJg5mYzum zW@6rF%gC^^@^4!t&?mBtERKMN}_*K zREXmr&1m3E89k=A8ZR|2tU8RdB2pLiLfd~?n@cuJt@eE^I#UkuLkj;(VFlBxV%Hoj zTPij))(%NQR#fKZVy3{JUGlYXB9!-u@N9H%M};S)Sm#{tpt07>2SSyk`)R=xg!Lwc z0}RNY#;si7y=t`&eQ5S1JDNFo;uNpQwgSv*rb&n-6n4$6^|JS0oSW^x+TKNq!$>Af zn=7S#+6-=cuybDT9C0v;l563lGS*M1i?!mz*_Aw4y{h)#qTxt9km>5xMaVgexs;!= zI-tA8Ab=8(a_#!!GXuBlAH-^K=758P1Sr`6n!S0dDxPLv@*3Q4V?{XSCvf1^|6u5% zmq)BG50ro{$oklWtk3T2>P?ON`&n79r$20yiBq9f{O#jF9G2KitGNho?iH5ZWt7Dv z+;&F@r*%mc9}Al8(?n9Le<>0-#H$RMYGPBYQ~sr1_s{_`M%&V8l@kED9Mk*pvb;=M zl~}_d=c7>eyHDe)znW~#y7E50@L;dKO{FQ_+@Pf5!+0=r*?wp!X|AUmDSl%tjW}Ot?`-7uok!(M8fl3UixdzFXCM^dK!>%v~r$c4|`KZ}s00Waer# z%G+k}x6DO1QSR$TB1mYlZauaQ&RiremjufWJt+KYnWyRh6@wMoU>>7c$u^!8=BsM^ zihZ>PTDHY`T>h>A%W$P0Nm!ujEhlxUqgXSPzx7HoXC!Ufv?@_^)_hX~iei zc?v2WH%o0}vryCB(iVAhEa-ySi2ah?0^-bZLp0eTXyI%IUo_d$ykH`mJAAz@BkAIr z5SJ!XZ$!jxRSFod#7z8wdCk2Hb>!9OsdpRF+|erYyh5>uto`?g#*e37(FUpwY}(rb`Fi#gmwlb(M0cyxu4O;5 zF~07&Dw#GR4}TWm67nrU;&1u9!mM7ZVtm{5KFsaoAMWcy3+guMe@n1Ud>6gEP9#%Z zYg3))KgMxfy?u$rJ_)X*)#*hRus#uA;Y_!-!d`kX&|Eq*Mq*vS8 zifc223)04E;0J~|E#k##`#w)tg^DOx&s29ppj6!Wbr;x=B zPcT}>o$f;?`9VJGuhDUnfB2AgzTOL`)3$_xT`})cj_My{GAeGC2UZcy=5=(EhmRm{ zi}_3KuXD#i`M?u`hlwgK(8o<%%7CDJ5{+iw!c6Ls(I%~)?OQts_#W^>l%NK>iK=~7 z+f4um2KGp=l^sFF-NXh2=MOGi?oW0}n%ukaW`%rPsV2%py|iWy%Pl=+13$$&P)k+5 z!9AxT1{kW>wDiX~pJiH`xOSP7ej6~$ZQPt04(~3_;3Qx1cR>_D*NJ`Ki&UE7$=obQ z&aEPsxc~$51ZU2kN^(-cq6f*)0i2bZR-El(iTO~rJo$ZKmAiTmL|YrV{)+`D)yn}_6Tj#T8&1F$A_kir>(mr;r%1~{cY0hct(JdsAL?ih?3u=($9ue z%~>rtBUZl>S@Yxh3BfvI{Zd&x8VB-knn5XVypChjnUx63cxMBN4AR4RiH@XuUYu0y zw`l^lm*Z#W6J#bUOZvRO%^{wqK#8X4Q2;R=@X}|F@Ct}NdnEFba6u9GBDFbyuzarN zwR6e5vONToYak$^(;o9K0o5PUzb4$h~nQ0|HG{f5@wNr1Ybs7 z5UM8UzUrog*meLTESrtEM^!ifY%HLzz%eb=8(@1X%I*@t8__lEw93f5Q-lTnJa{QW8*x9uyF;bE6=k8h;@3h5i_YwG?PXD7sn zI!8Z?y;Ogc9f6!?i#=?cK-@IO>gC*(!9)2O#=e}t0q98sLBzs`ah^mlgrp7m%Unp% zpTb{L&S=`-Sj2nEg#k|@d+;Avpn-*%vxUBiFoPjO#{=a>e=eZ1xfn1 zu8z0=^s{+kOb@njy+9W8JY^Xby{ryivzcRh{maZR>$z*AZda|Fe`YF#Bp53g85sV+ z*a()?EiaJ)Z4s+}^jA?axN%>`#8X3&wSUnqej()o(XXI)T8;#R;O_6l9=19Zz+t zJ9(gQ;-7HOh3FtA`**gY*|WSeaAWo|_;%`#P97<+NYAgCUFe}~sPbJkO8v+N7^O+C z!jS)zaQ|H2gpH=Ws1Yr#Vb|EZSC<2HXCw|isHOGoiknn?(;dhc=7Id(O~X)j9J&aI z8ZF=-DWxGt;c znBdj>4gspyPvTG{;nfo$$N^_~?WYgOv6G})9CtbNnn5bpT8UJCI+NesI7*wA^^l;+sLinF@*( z;ecqxjx~5e_2K5c^>_dlw^v``+gT$wai)QXF z{U@rK(Q7|I722YX#^>HixrJJgGVEM*nfJfZv|9G`a0rj&Xj1V?S(@b@7YMotj z0sp?+NgpH#p2zzv6)()^^wXOC!~ql*p)o@C&H3$pt|Sbh(#5U*5;4GUS4EE6RnseVjj;)fkmNnENc=`^B{L{Az z8(VM*714v%^vVd2mO43e=h2N zQ7I68Bwk8Fh+ncj)6ofbX%OG!23z- zJYyR54v+YA!(o0zTPgpw@-IJT${={sL{@AwZyp?(U!hEjlvh*$kdlwxD$IH?U&Mv+9U6 zyijpp72(%VnO*Akk(h-%#!q4QeDKtZ@mQ+-VWFX45!6*E-a0&y6Lgw+@=CB zxdIVM`}uB+^evY2;w^=ewNCqW?$6I1>f&|uJYN9yNw`}h7I8Xi@5D%mh zwZ3+4co|O$f(JlEtnuk<@vY(Q3}GZ8?Dtxt@v>CcQ^YF@vy@l}*ZU5a;ZY@ps=<#t zq8$u>#gcp38u3f*PXt~M1y_D#57ZiTqx1UK#zSH~pR_q405}u`l9HE8#6{qqGGp=h zd`m*cYyv9-Q^$buv9&jEjn*mU3m_#CeS875)<3$BUe_3n6JJf_y2(a z&ZOZus|p?8#+yx)gexZHkWDncd2d-cu>2G1vQ{mVnbjU_R&f4y29@Q|2QC1*OL?V{ z3=BjnFGQ4=$0^(?-32jwDbV7N#jMWD_$s#sXS_Fsy;ten)MXqxoM$@3zMBp&8h!Z! zqoFqjv67{aWbRh9Ah?!1F@tNGXtbb-msvBNs2f|&7(C}=@;w(L?roQq;5ZxZ1&OS? z2C$4+cfMr|`S^4o@(T`2S)x_X;Ye>qy%Wg1BvCx-OY~$+O9@b@+dCsV9*KsYh12f> zR^3So5n_(7-+VVQ8BAl{C}A`jIn)~K89u`L8(BE*1T%G9YW!WQiE(-Uuj-XShs}O)y)LPk-c^l*tt5zsN~|dyuR=7M zs$MxK?4SLGx>?Yjtq2Rzk|rSY4V&jb`0>=&X1M`9vb|BYwF}VIjpeWvWFQz#2dnZT zwtM1|NV%{pMY2z4n0QQ#LM%0ZxG~2bUp`Klx%QSUgTrO((v5$e>Y8jA^)fVf4{DGQ zL2|_>)T-DpxTA&R?%!_UYp^0q*7DO3;cso8dUW^hELgA8Mpi= zTlGk@>Bj*8C9KG;v_sTknvPIRtRBQk*ZWR%IaX|ggy9d^=y|G{hzeZO#Ft~+!yoB+ zb)&`|aSEAgb6UE)P0>s0^&)>^f^${L4ceg}%qQ1=UKQ9K)@l6rW4N9kKkDlRRNl=x zHv`LU$F-V=IJ~#(K7T^}?(z2!mpsTg_GIJGW=%nwWIGW29E9axXyoLkDz5E*wKX~D z(e>IA8Z;VPU$(W8`ez*g#z~V7U7Tt;Uq7@QGxk8+4XL@nSzJt*i@R3gBMpu5Qw|Cc zkHY&rnk+3#&fMumf>Bgyl47Q*N)s~>G`8^P6}Juhj22ci+OHbpUV^eEvQ_ z5+JL@3Qu5+{CKz04dT9{kuSmk{rdCa^~>CsM#x-$-kLO7#OROhetcKwOAw}bb48_1 zoqT-#fhzi-^JY)UW>Z7e#Z8@tMj)1<&~ZGdeJ$Xb1LZG=_5w|fdU5|^kMWez7>9f* z2^zB_;zTsjcCZ~**&ow#j_=ofL~pB(du=%2nm@o76M!ex8cjZP)pfz5ASF_FoSAO& z@t0cNVSZmBwAy$giGOn$%^Vae8D0O{6uP*f_q>MJPZZsj*>DwCbkhbKH!mcq#W8du zA&f`7FvFo>-*hh!fH$p(`hFUn`ZBpl%tts4^@T^Wcm!+k4`ru{_^^Huc=>67@4hQ94+_in){c5jz z;cX#(K8G@IogTB*oev8dR4@u+m>dY+At-DL8x6BijbZVA8YO;9?eFN1PY$-h*hM!O zUu(O@nMuD??+tgOyXF8Ybmpx3#EAjoDSWvwix45O+c3Bz(BR>|sw@*v@OrZz6ooEr{Tbipc6$`d_)ik$ls)F_77;9f7Sk7> zrR)~yRV#!URVaE_v%T&PWs{_pUcIfQJ^8Vq>QM6*#4Qv&jzm(AX1`E+q@r@SG+}x^0sV-F58@;-tY#r{ve$Ew$LhMT0e)XO~JI@%|)J-+({Dn*+wc0Bvt(J5IV5gez=0R*5?CVzw1fLs>xA2WU5a9vDdOD z+dvRk1$kmjxE?t73%;c2DmO@9SQ1xGO~iv?f1gsc|NGH9l6yUf(0%EwUcLsoyit@h zwyY|J9yp7;c-rR#cjkrUxO0VV;9C31`_>qREo)}7On!zcGBCp{BzAeA2NWjf!k>-t z>Cxw-$a_lqeX}pv z7C;>s%YjlY>h}Laj8ZGx-olVFPSQuNb)Z|uXzS{1CN5y+D?`BQD}B|J`gU?=_V|v` z*Uft=g43!X9rn*(?dBBcF$!O7w)NbiLaFI9Ga)FUv8ho}Z2tn%!E<$SUFZTX@N?Z+oUI z6`EiEDVAhCd6yG#^i%Ikl_g4RGjw4jpGEN7Sx*@AU0nbhmh z;pe&HiiHvc&t~Gi<;MF-SQxQptIF5PL%}Q#yhPgp0&_>sR`({s`&UksHY8+w z7rJ6?h@X}-Jg#$vA8U2vcgHk^*dk^E7c~TznwT2@c7WuI&9^G%=T!GWDt43QQ5^`J z@>KE%_X!Oj4oE7{FR0-pAP;R_V?PG|{F<1)F7y;c4eDs@3eDxN9%vg7u1%$05y|P5 z0SUfp9OvYxQK;MJMd@Ba9kKhz8qUj($F1fXNXlWt&v*yQ5rt`k(zbC01U$r%v~oY!8R{WdW;4H-B0V1r+d zkU+Mo)MZdTe!tV5VMDs1hO4$7{d8b+=`0rZY|$mQeX0#8_CH8EN* zOTuI&|5c0b+9*O%h}i{1+b>!Afti}Q+qc77NL&Ej^!TKvsx#1}C~5N*Wuoj|HjNns zbESaY(thGjwJ8Hqbvsl#n0XjBb|Gs%ne$Z5;S>X(Jux)kILC$aSIl?izwiaCZo1b2dL++BjZyX(fe z%{k9_|HJ*j7>wR6RjXIkvN=}|jz~rf>qgt-KyV`**^9;*l*4PiQ)i76?u9L&O2mVv{2n(t$y31vFpRp4q{|X#Oo)W_*Lc`+%_;+A5O$~l3aBskqwo@SUf_b=67j_hh z?#F*WK~O(&xFA@L8g=zj{PBY9x#Bb$^Yywdcnio+#5yUr_}-c18$fkbEeQzklaC@R zVJH3gN+UirGXQ?*#&EbFj{%4;o=>E>f6bE*1)r9xM}NP;F+b8tacf<(YBjFF$N*to z-}?gn`=*aq^W!hT15@s@rg7Utt_DN1>KDvB4xte2<7K=J0S3=oKvijI2zbgab|KZ( z&YLleJcRSV%K*NjnAjTr?$IAyz=6=gm0N)mc(k_5~>j z^3I3@rkCJye6oPpr$-k+GTR$o!A9E~uN9n$0UP6pI(bl$ZA#P1Bpb!xv$lk_~!K*J$>#p?7u zkn7R90RV!x+WuW==&HBax`a-1wL=z32>*lL*`%zZ0)TZlsYI~l3SFC>J5iHygAGi! zB4*vU=nO?D7sZ0VU!CN_G=DOsnlwwOGPuxfUyR9BJ5~}%e~ShIhEi_XiiKy*(rjtI zhi9$g`ACjc-^pV7)axR4-HE4%*WVE)3tnz^Ad)abx)mDFR20&g&GBnliowgIPjdfs ztd6a|5vYBY+Mwmi_bc4SNCXg-m}d%%@;82t>M~DLWC>cDfv`I44xr&`h%`F#n*QhkN9vRr7gq`(z7u9rO0^a;d zVRw|q<=uz{(5HARv0}-O=j34EbPJuP5VC=U!N1M${2d0eB#P5Zacl}m(o+;>ogm(@yNUu-0r2Bg{U0YFGkPbYVaB$aJ&95=~l2)zDf$Qc>KXD;!g1$xFLM^!OjCF+aL@ zhMCwro3K>Y2aVj3XMSI9VIf&!^c~irn?EFc19^_j4ht2HOp(9o)GybWA%L8(^{@=L zt5gRKkl!EAS>Ht|9lG=lXT|B2=!HOOm|&Fxd|$_m9PTMKL%#yZPwmAE%_Ml0A_N|?QR2KnpZOKgeRgCGCg_pw%{!%(N0QRLDFYFwt-umK^ zNd`xDv$=x`Y2UrPe!uzHC%}pgz#HCIs_EMGF1qz(d>eZMR3_|z+)8+#vYsV$m$It9 zfIr9qL_K^L$d2tI!)0mJAy8`=S;0(mEhvnSG1nH8XH8*269TyT%D+w?Z%FZE4L#J) z32|V*0uJuD5%=+=8xNIOj5d@=xvkG9G7(dTMxf%wel|=NPaI6NmeqA&{an4?BH9Bz zdJ6-PaK^d4O0XcRG}II`qY5e9vu&-Y0PTy$8nL%tu!I|stQ3%|0m#Yd09)@@ns1#% zS^PU7#ZJHy-D=|lc+MOa8JbZafJ!T)ahEDC-AReZ#zk^gF3B3rX^;c&uSFN!XgFhZ z3<#qT^-v2H?mqu7Oo}P_^dg;uLHKt7A*Ua})L8gQxNLGo&66RI^^y)HKCp0cmq_?d zu28aV6;uZ-%(Zpd!dN~8OOXH~VRqFdO4m@PIlH!nfLoB-rKHoXjA0{!oj{2kbV+ytLY!1|)W0$aQlj;g7 z0#AXCW7SUu3UP)F0+p(>(E=tVJS?Zvw*Vz72OEm45WudlEMZ|1lMH-o6=#UvIyNw? zcXj5~&&ACwRqp`t7v1LZZlC~*TK@M?dO%d;#mca*3;=!2wU|Znw8SE05V*6n1Cc`U zp|))g^&0HjRw~5q`v35 z_?1B{Re@eS+Hd&6Cdv8tHk4Takdew!ggCw)Ko^(!SP;e6Yw_3UEKipvAnK>&uRc)W zj%vLlCl63Kzj!@a@$gpPX@WmrJJzP5;764EB8EWC7@c3s{@IU_qy&q_c|MvNDL0VuPGhMjkZ13w zqEz0!7L>t3k5!0AmNZTBM%$bPMa$Z#sMze{)qt@3Lcvw&jicZ{=typ5%Hi!Q@FjM# z;1cGFn}xziCe$&rZz-s_$M>NYs}W1*-!R$ETbK9tTJ5NtO#y7LK43z zYFnpr)@N3MSk;e~i8=I?{dYZqg|(#zpIRA&U? z|Lhy7RBl9d!6FF-?F+KI>zIU^xs>A)wfWld%QIDIA{<*v_7aG0$hS7DJRDD_w-vfn z*Q9(xKAgEagG!$Xv0oD+@3IW)T^E0+BGWbUP|`Sf+$>IJmZKK{Z_&{(RgsS%3@Z74FTXh#x%hw`(;=P3-JBBcYPQj>{vMyf4!EX5Zup(X4Di4ballU|} z>#MWax0o2-^9#p>J&zYsd^j>_467Y+&@_{waqVK&M(;|T`sjDso0avvmqX4$dJohl zCPZYzCXyepFc?Y&lO-4HOIH~CMpp{b>UgsoJ?%j(@l17H-J03<*xVw75FVe#ByF zwY(!A-luXsP@YD-J*QfbPfBwwz@>eK`7h{S`HAg-kvYY;8Dz)5QeF+$<{Iwl1fRi? zx$^(xH&Bn7AjtM(QhE8YUwgTI`{y}iu;uSkP>mVbTtU25Bzwu5A-{8BZD zC+($v9}#=Sx0c0qwm^Uoc3Ga#4|U*!iN9DYlk3v{j63SGS`8nfguom(sAq^~*PR%X ze&T+GLCDa%#ADX5Aju+qWOolA{;_ox)D(EpVYu78Jd+Z{2?;L7=egJ=ysx0;@rK3w z`10~2c)nOus~t^^AHlq&5j+xxWD z%qknQ zw9yNTU9zRbW*ozIN}Y3E_Zc?_(Zx$%X{!lrGio3@9^$=20n)aOw)EH;Ek?Pjf=}3) zMzd93>D1QW$fjn;}X;8VxmG+yB|Ha-x&ilSZ{kx4;1>&meEFv zk=wb9SGbV_Ih8W{^k~m~%-r+RPJ-ucBL+tn3)2N_Ted$+Bkb)ITob+gJe->He9hqq zPxUj_4OLRTWy>o}Q?QowYqFIjaqPMGRYQ5u1Io!0&AeL13N7ONlrCZTxH>0UuBpPn5&3dIX=@>O_*_ z|NQ8e$>44TC|fmz^rf7CP&e+jDzHobg^b^Wr z^8vlPDSE*tRa;xy`Q(ro^2(ms zKFJ`@qe5o(-Zd9i(lWGy^7!efQ)UzDb4cIjGmfFinkB~fZ<{HPBewg36V;hqlG>UV z3sXlDq_I4WmmAOpIzN4>JT;KY89p~f*0+Kkwx^~7Am!&faDgYue*BH@2YmkBW89zt4ShQZA<7KY5QMjXW*%Fv9@&NVEB^0`_|nM1;xp4G12& zp1<8Nca1i{m#u*KY82wKBcU5&KJytnQVgUBO90zL$;7ITj0T_Ck5uuWp(|)*k2`4U zIMZQVxH*9_ol_rHxQw?Ezx^OEf0=JGFQPh??;V!*4WWpKM-rgF$d{Mx(jOmn*l(Tb zb#b@8kY@dpB0-wSgYVsF)Un?dpjm`;G{C()Qp(TKUtASTp4Vy z>t^0HCW4Go-!)8n3a4o=CcLg-OS|0ioOG|0^=VgOeqrZ-X@&ML7A8EZ^$KgoA}n=* zV6<865y3n9O8+dH!{Ad^wo1T-9oH5C()eGLp%()7bjv$FbvLhUiP zy>C9g#Ja-P&DIJ3c_`~Yv7NA-`2uW)#q2Na;xp<6;w~yAhZTC_a)D4Z8Hnb2urwJ2 zA?8%mKj~@Jku389Fg{>Kt_J2}BonS|si)PhZ5yAkxZcTIMe0#>Zwil!b?vw1{#rAy zH(m4UvY$>|3>Hi_;?&Ji4%0=TplrjF8d2yxP-x0E=*NN$^&0D5og5!u?|}a#(H@Oo ziXER6(-r1tme(}P|GW=>6=AIT2d9(1By|Np)cE#Z^=c z?{ule+P4l}h)+;B^cnrFBNZGO^Ow{#@;hFy-#lbHj}iLzB%+HW+lq3ud_(5-_uerv zL?ln=@1M-8H*Fg0mX3MOMQL1HT_i3)_n0&v^&a4RO4nHKwO4^L zW|CXHW?&+boU8kpUuAM|~oWy60Ri%dh=J-6`m zfGHY2I%q1q2g4nPdiaFsc7V)RnYF@fSz@QzvzQgj#ZKTR#Jx~H16|y)=jr@}nG{}_l2MshUP%#qtGV!6pmD7{sz7?j$;Jb3hV57-=0ZE0P1syrN8AxT9^ zdF#kn={xjwz3yLW&2t4?W%-FWY9g9m`IV3q2daZW=;F?*JSL$MRDh9z z7UQt2m^2JL;j#QKG-i0!2lGt0nXuV&ZSksmJuj4_(~9wBic!VB42!f4R{Q9OvR9L6 zo%LNnU%2`4!KlhzXU}yBSep5(g<_jFUU)4l8I-)A=cyZT*;hETihw(56 zI2|x~al+%h*}5dJl2U8QwRs|O>oArp{dJeakB)a+jKmML!+YEqrOVSBt(PXKLON}V zm*d=3$sAa`P!#2f(ETh5@Dn;xD>ikMBBiG_)dp)D)$Wg{UrDp9N)RLCzeJk${ zU~s>EBS6<$X(vSQ;Szb~Zhz9nvUpC;_oM>@Qbx(ZDN9R&aP5g6E}<^g*pC;952hvQ zG(N3Nz{Mep9vtp7x~yS)r&B7Q_)RmrqzIQY`Dj9U5|jid7|CR=C68+vFg@|U^ljCs zTx@{ICgGofaG4&bvZ(@=Ot>CSJH0me#nc0(9Zg6qSGV+_C{UfXKE;?z$7nj$$d0Ys zrl!lPMg*%&RNVw0PLbFjP*~C8By&2}H(#~sf@1rWPNFl1!LrOIq;2w@cwY4|v4&a% zL9=J;xS)+oA7C%KBfu9ub8?<~O6{vLnnH`muU<3&wYso^cHnPng zUuumTC4`15oL%nC8vZ?&Ro|W4OiRx1ca}Uv-78o~ymRmM+^=l(R-) z*4cohxgq=ICj}Hf2L%-1!Gk&e9Ip_);<_%W|*tmm;*Z;r1;s;GXv`&R!Pb9?`5nY-;5hHq_?M(gs#_ z-==T7JHW+HTZSxr;bc2t1d~`+T#RIO-YWVykz$dZml>$5T2{<#Tv>2$&ZkYCl7>@1 zaoypwmQ+f^lU9I0XTjRzN`2r64X_t&+`@A*6~3p%=dK5yB(?8s+LP+#SRU%Drc2iF zMwXvV9^$t?%86peRVc=^o)Js#YVH};yIc5{0Zw>Kn@+%dXXeV$Cu$n}DN-_I0ioFq zQ+ZEz4Z&)}>;pn?07`xJ<9gU57t9-ne>V;z1^L9h4Okt@G)s%DhEZv&ZRYNq}V zc511#^{t-vn(F%oQh z=vdE35jXS#-OmIV{M3Yyc3z@Ng_n-JvopYPP#L%9)U7_LKXY(Sv>3tm5<6eiTM9_> z?7qRa1+ET}f*E2_-x^60a6=zAh8NfckKAs`hLk2>!G(PjPtfXs~ftgI_9$=WZccusY3HTnQfg)CqgvB<-9tV$Z}## zNR5>D{k2BIubW?O@Tw=BH7R99LzR+dzNl6aM9N+T8xQS1#rP7EzMQLi*A$!5*PUgr zY2nq#Q-Z!OgP5*hk_GT()d4zKIpu)gC*E@i7_p&J)5Y8~%A3f8RD8g;(^|ecI=Pr0 zS&PG{cMc141C9JRwOLu4vx0EkC3F@2)iV~3n}&PT)}%CvnYi-jT!Kt$bOkLwlB^sA znCpe%l4IxF+58+D46=KcV3GkHH`1jShmI``zFq_&9YPeqI!oLKTd8kr;fXipFHszg+pefVL*xMn@wAULq<_3f3^LqYh=UKX;RlQZxW(y-)6uyX{8o<73 zjxLP3W@O1>a>C+fbT5qO(&Vg zfyh!ITq)u1INU((Yb`jGyrjf?oQcSeP3NE5T9G*OC^4WJ`{n*RSgGV3J(RQe=59C9 z2gs~ypF1Io=KQd|?69fIKK90u9n;9>0Dt(nN3ZPG+dkacpsD-UKdSPyr%%%@cdd#i zQa>Sj5;=s5i+6EF{OE6Dtr^e54V^dSd*L`Il5_AH9GQ6_to>Rml1kWyauH4yK2sIG zZXjG~FI@cCdoT$pHyC=|Q`0I+!>LvD7rioUuq;~XVEDsdsVutSgGf2)$~WhW^?C4u zq|G2xEx3kwOn@i1z#vB7Pbf0*RUpg}J>PU&@H;3HPuK@AJURRBbYp($F}1o^M(1%z z!W9E6nn59#G(j%4R&#w5mO-Kx0o6@6Wa9DFH*2GPN0mz_{wwBz)eG;x`XhzA#^cdP zZF+hrH;JJsI2`4N%H{>}X~71o{`AK{-IgWb&_TtfZQKU!e+k%W!E%IDk)wfP^ff>`org z1(VZAG1FsGx4tCovv-GHeN}M=wO~cHyLBRujGPyZY+zgk{eQ zB*yghv44_95cl9Jgxt(3Ap7SRCtGB|=EgQuA~boiG?g2)gYgNY+^ugvfn=g3fROd! zeSo%oNbk4cUdvz=NR~*q{-TDFuBOAz8iQgsnyL@Wvjm|3IfI~@U-U8PO7CS;acDumM6iP$=}u44&94d}5-^EUP+(Nn!$?++RA86t%7?7giCpS^CYW$@ zXS|+6v8=GYC_WTbMT|i19EVgi9vpF%lC%%H6KT}qASFTr+X4cDO82yhT`RXHXSeyy zX@4x}rPZimLD1K1h-4YZ+Zm|;P|$L`1J(~z@UCFJ%X~@!N!l|p`F$wV` zn%3WebF?>YSje%S5TEN<7n5z%Uy22RK-BS{Kjw5-&Ly9B{sQT+-H}sLQYO>QAW=sh zt!-GpEP925?E2ONfiv}zINF4#MM;uPcZc9H>y6JvB_t%6iG)5COwAECBBq00qB`L* zF)^DY013MEbtoFze?PBm6O@?dg(Cw_-HsDg`+$LwdvNXI#??nnIo|c(Z9jXv?$K$! zGqN-p$ELLE{rBLnLLep@xXx!@GyMyUDOUqU2pGY@_il6a0KTd%dQIEwD0wjD{~f2o zLp!+@EX1vSPenm#-|^o)KJb#GTu?naKMH|IX*w-I14OL9kE|CcuP~G-@0P|m?6)})Up@d6HlCo`eJU^OVS&G#dEl?S3@zqRe|+aG3R*EBw~riX)nEd@?5U}q-0D$K=2Rm-{m|KKNtJ_J!nKFZ1KG@FfmmcRMpfn&?vR6lK*$VTsz*{$re=pUsx(ctEj+4isY>7 z3B$s|6v--;Y2Op0VtTOuce{f8eClLqgbHtr|2vb8j*gkczFO-&A@EfG|D85Juaz7< zcXR_C6$EM_`R^sEN=O9B^%F%&{ge`uSdIR7ZZ5Jk@lAU44NXnj*^?Nt4W|EUW=72t z(2=y<<-xsl=J4-@#J28#15X|r9?lT@lb`=yqx5SBa6b2c=j#s*4mv)}PyJRx=J`N* z>H4oMi{$R_?-dIaad2=pMpD@+BSD}Roc~4=w_?{nmcj4kEU&Fi(Dw3RJ%8dFDD0>;zU z*8UI^32K4;@6Ccn&Aa=eh+>nILmjvJa@@{VtF#!4Dk`KD714mF!p9G8pBjINh5v8t zf^q5T5zEVZZs>ua77WPS3&O;VrT%xq|G)n8Lgu0d4SYc6yBF{+!gn%~iV_uKMgjj1 D`YR{e literal 0 HcmV?d00001 diff --git a/common/NeXus_Logo_dark_square.png b/common/NeXus_Logo_dark_square.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0d5ecbbe8b977b6464cf0fc06bd25596b69b49 GIT binary patch literal 1295 zcmV+q1@QWbP)v?m6i1~f*~Kt;!gnpg#IqY$N~f_^&<-)H8`PgES)#*;%IY4&1vG)lx{3U z6#EJE22kph$mKGszOBR6;dyKT$vu#}ESu$9izO3$Eb`R1x& z6^{v^Ptsz|%V6q~teA-{muvvEHQLZ8>oAz~=n^y}rN<+vBaJm$3~1vu7)*MS(&I6h z2HP�$qX@fEPYl!1XiD_+0)dP0$wv;O-qKIi(YrvnrRQj06CVY&pfb{eOkEQ%c5@ zIVYX$A}auOdmA{q^>l0pwDB66YW~KMtYh)Id`Sla{s91ctCQM27ufU0A;i$Yp_;WI zGeTRpw}C%?x(q;fvz^LsYQuAq02-r;U(2cp_=3z@nM>;AQBj%)#hmSK0DA5?xK@1& zfXvxxsI0Ca39iPjO!K5c|^>oswrSi+i74*lr^d%h#1ws*H zC$`t%vU!-cEStVt=s_+K!2Q4MkN}M4NCyD?o<5F# zbsB(WWkm=o1==_@P6-D9uAIC9fV;~}*UcVDO>6**9+^xQC2Xu{;@at3n8qejuy!VD zgIe4&@%wC!MXn=+9%x3wQ#W>nrcq%a?Zea43&7}!W?tS_ zO6w&X4Tl@U+Qy0j7xG@67SmPPr&-&F^(>E1G2(1@W3(7}>%dA9QjF|ceURq**09Dj zE|K-WtpT8XQzi8WFGa00>_@4m%ggwJF|6Iaf`k+!eor4_Ktz|Q4Qsk@+r#ZDT9?m^ z6_YWION>}Y+Ls}Opbn|1x?C@DE+Qo~?~Ch^znr002ovPDHLk FV1lmtWNH8a literal 0 HcmV?d00001 diff --git a/common/NeXus_Logo_dark_square_nogrey.png b/common/NeXus_Logo_dark_square_nogrey.png new file mode 100644 index 0000000000000000000000000000000000000000..f86cd9e0849e53364b80884d49c344d3655741e4 GIT binary patch literal 1270 zcmV3Be$0G)4mk#drfG z;tP?OAkhb7KnMwF1SB9WEv=zxAr-1XA#J%-(%baH+{;X-bLvCk;4o*jG$y=sJ?{Ol zy}t9WefHjpk27}<@dQKpB#Vy$i~#@$a)VO}CenT5F3t{j#GEchOYxQhL~)2UEaqAkaZxZG>cU`SI8##-2sk%at3#ohrIRAkeWT7H#E!FEIP|Baol!KIj0I_A71{u( zJJ7(%oz>AD(8ua%srd_2qJiZb^JEnjBK5kBiVeDCX+)0MK{GNmJD=05ayMqS33v z^ow4dOTah4p|?*E@C`%<(3!QU1Qm`p7gc-Dqf{w){ErF5*iEvQ1ksoIx6yuecymr&YLh;w_=5r}_tbH{^5&!EA^~EoCd8l!fEW@vzO4c=G(^$n ze9TD?cduHn#@pjV42fa+=MVk?K<46!D3l6{-pi-;Vh6u{dm*Cuzc}!4(YDK7)E~Z# z)}*26{Y7C8IJ-QLrgQalGk$jflf_8xy4j@7O5x`Z%NUAs>B~A03WmbQ%6He`wtJaX znnlKfGyt?FjkE#(8A1ObmrpeTuzXVd}#c>k9j5r8=<+yQ`qcYu>$R0B}Dy%0g8 zLLZ~WCF20VwKF#W@bviTx!EVHi4I^jqEILzgpFk_G*#ciGBKX~4Rg_&w6e#qpcPp5 zPA;BqFNx`Kq|Z)yJb?JrSOkqqR(xVd6$AZ27QZ=<+P2i4kY{gK&1ZIlHG0wNAj6n;vmn7QFr}QcHO8i`J-N{+gWs z23Y#md{%wF0%wOCpW_~D_pW5&D{~?e#E{6btrY}(19iDN|lo2X;y-PLHZr{Bwf`v7f8(>kF(Q*Ql%s*BZ1!A4rzYWE%?9U giNA`+0LB3R2CprcRUI7crT_o{07*qoM6N<$f=+);_W%F@ literal 0 HcmV?d00001 diff --git a/common/NeXus_Logo_square.png b/common/NeXus_Logo_square.png new file mode 100644 index 0000000000000000000000000000000000000000..61b297c2e2ba09723e3c6354a8b2444e7207db76 GIT binary patch literal 1301 zcmV+w1?u{VP))MWP?N&D!4j2Ix-9YEKM8H9~2wre3geZz!l!Rc&&={k{ z5BS9pVn|3pGKs;7ICTa=gbWZJ8}}B33ERRL+bC?5wd;C&+wPqoCNGx0jX;e1!ufd4 z|9Q@@=bZQCsmkGS^f7=Y3}o_$005e3a9|lU{?_Dy1yFLHID3`cA?etxrns2TFS4bg z20;)=)+G@VBS@0OlF|ueq#N%WK(YSSHJA8w>p{f>MuU#`-kw2*#mIO299+EILD}-@ z50pG1fX5reexZ#+wG9amjviqHVAQY-+};3Po&esS5YEnS!jWi<*5&r&^@((O0ysOn z>GA~Rm|_dOz7PPLchpc+kc-ivi__?m)Bt4L%p5t^MAdsU` zvtNnPmdq|-Uh(4q*t)YC#1+rlo&S2R~wF z(o?wrIO?wv5@Xx2Ymc22y_WTB=aHh_1f7!1+r~K3p}E+#%^P_rw9X+EU;$iwC&n_M=hv513l5 zV(s!`1VLci&RTAH{Qm%mU@@nlR;yyp&!3eKz;QE4LZ6!0jhpEM}6aU-d{Nbl}Z(-O$d;r ziFL17Gzn|Ek?NWT?Dg#c1cG5QE%D1or`1qAX(RyU-`272omnL7k`$9G0(7~3@(kQI zgI>$(H~PQZ&&m%IiS*(Ni1HV3w>?`p0su>zkw*uoD{2w~xZHmF`r;o+Q;YJLIDQyy z*FEgoYsVi5E3V&gB+8fHpTwGG;Mxrj^^G^~58!&ImvBT<(z0ghH1x?yRQz~~rk0zE zE!edE2*YzM@-XiI{o=g?NRmWLdso~pzil?Fi6sk)5W`XI7uv98q{hT|{&a@gGgnx# zXfjiZ@&Gto*ND$A-WxzmyBjeaB_u}a?NxrOE|@cpk+~TFSkn!%zxH%9<=@n?^3}_1 zxP<&MgJn&d)6L?tuK-xPqL>$^k4;>G`?Yklfm7#NDO+DfhpPvJUW-O8(A^W1H96U7 za=W%y9%tXLf70f3$K0d%9=I11!%^CAxG9}G4z(cAD@io9+(f6W1O-^>29Dm>z{8y$i3=Iurel!}r^3wUgY{35+Jp}j*@EEh$ofQ&w00000 LNkvXXu0mjfA)0OA literal 0 HcmV?d00001 diff --git a/common/NeXus_Logo_square_nogrey.png b/common/NeXus_Logo_square_nogrey.png new file mode 100644 index 0000000000000000000000000000000000000000..7e74035d8909e8dacd2c8d287abbbd42d0ff5a94 GIT binary patch literal 1275 zcmVvf*LHMm*Sf)UzzCq|20F(j0uI7O@PcC@L{a3TBm_f-#uz1j zz%PanLqY!#kV$c!(xE%;Wk%bh0c4zTexxg-e~3FPrv2$x{M&eIXp@ z+c{X*l=9%H;dTH<4$Z>j3)1Bc;_C_HbafMr#S^q{PXM1kLYFs))74FvHz>tqTj2AD z0ob&?mg2%Z40>&nMypl=kYhJ-_-G5&`_JO+>;_=(z&~%n_UP% zG#2O7pI0US!MY~SU3Bu%${FMhF(=%U1mN}rP$~P}3+9X?KQD`>Ru{VuHYVu8kvM`N zU@_eRD0qAbBZt`lsCTqVAGEph2yc}YGwGROcc)7RxaA3;QuYs+QmJ6gvJwPAVC#-L zZg~U$0*GNTrK40T63)+?SpdMXhBm~$KEBvd&y%Baczs?`Qu34)P^#{@N9WslY5Euf zp(tCvIU@N(;TSfVhwAwWBQWT-ba{hR|9Y0j=Iea0VmboqHSvf>GJ$ zHyVrc)ek4IX6m_i!%JiHjr#+*?(z|hiE>(2FPVxiO-{%HJ@f|;(rtb7*mM@&dsj&IBr*(IauRmFp@<*r*j*epieo&YP?R?+G1VdE#I6pS7$Y1*A07L|Vu zz?$VHyf|%4>I&SinN505p1n%>x@tPzJ?M2BR7!#Fo{*%;&B>J7wXNzHdw=_jcBd!d z9@%~1UMv!g({aN?*_^Q`1%X~sq^0d9T8)Z9MxCTv^lA|oFS)Q=jr58lSDhYmb26p) l1GnJ+vWLDE4*(1R{0;7+t)!8(g$Dot002ovPDHLkV1fe?Plf;h literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/common/favicon.ico similarity index 100% rename from public/favicon.ico rename to common/favicon.ico diff --git a/content/2014_How_to_find_default_data.md b/content/2014_How_to_find_default_data.md deleted file mode 100644 index cd71329b..00000000 --- a/content/2014_How_to_find_default_data.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: 2014 How to find default data -permalink: 2014_How_to_find_default_data.html -layout: wiki ---- - -(written for [NIAC2014\_Meeting](NIAC2014_Meeting.html "wikilink")) - -One of the -[motivations](https://manual.nexusformat.org/motivations.html) -for NeXus is [simple -plotting](https://manual.nexusformat.org/motivations.html#simpleplotting). - -The [procedure to find the default data to be -plotted](https://manual.nexusformat.org/datarules.html#find-plottable-data) -is convoluted. In some cases (files with multiple NXentry and/or NXdata -groups), it is not certain which data will be found. - -This proposal is to add a new and simpler mechanism to manage (both set -and determine) the path to the default data. The intent is that this -addition to NeXus preserves backwards compatibility and becomes the -standard way for new data files to identify the default data to be -plotted. - -Proposal --------- - -It is proposed to add a deterministic method to identify the default -data for visualization in a data file. It is expected that this will -become the preferred method from now on. - -- add **default\_NXentry** attribute to the root of the file that - states which NXentry is the default. The value is the name of the - NXentry group. -- add **default\_NXdata** attribute to each NXentry that states which - NXdata is the default. The value is the name of the NXdata group. -- add **signal** attribute to each NXdata that states which dataset is - the default. The value is the name of the dataset to be plotted. - -These default attributes only describe child elements, not child/object -or ../object or other hierarchy. - -The procedure to identify the default data to be plotted is quite -simple, given any NeXus file, any NXentry, or any NXdata. Follow the -chain as it is described from that point. - -Conclusion ----------- - -Ratified in a slightly modified form at NIAC 2014. See Niac 2014 minutes - -Summary of that modification: - -- add **default** attribute to the root of the file that states which - NXentry is the default and only to resolve ambiguity when more than - one NXentry exists. The value is the name of the NXentry group. -- add **default** attribute to each NXentry that states which NXdata - is the default and only to resolve ambiguity when more than one - NXdata exists. The value is the name of the NXdata group. -- add **signal** attribute to each NXdata that states which dataset is - the default. The value is the name of the dataset to be plotted. - diff --git a/content/2014_axes_and_uncertainties.md b/content/2014_axes_and_uncertainties.md deleted file mode 100644 index 8c5ee302..00000000 --- a/content/2014_axes_and_uncertainties.md +++ /dev/null @@ -1,303 +0,0 @@ ---- -title: 2014 axes and uncertainties -permalink: 2014_axes_and_uncertainties.html -layout: wiki ---- - -(written for [NIAC2014\_Meeting](NIAC2014_Meeting.html "wikilink")) - -In developing the [canSAS standard for storing multidimensional reduced -small-angle scattering -data](http://www.cansas.org/formats/canSAS2012/1.0/doc/), a new method -for identifying the [related -axes](http://www.cansas.org/formats/canSAS2012/1.0/doc/implementation.html#algorithm-to-identify-values-given-a-set-of-indices-on-the-i-data) -and -[uncertainties](http://www.cansas.org/formats/canSAS2012/1.0/doc/framework.html#index-5) -was devised. It is proposed that this will be a good addition to NeXus, -adding flexibility to data file writers while preserving an obvious path -from data to axes and uncertainties. - -Proposal to describe N-dimensional data (Axes) ----------------------------------------------- - -(see this from canSAS: -) - -NeXus needs a robust method to describe and associate the axes of data -with arbitrary dimensions in files. Particularly, the existing methods -rely on the concept of HDF dimension scales to describe each of the -axes. There is no capability in NeXus to describe multi-dimensional axes -associated with plottable data. - -The current method of identifying the default data in NeXus files by -adding attributes to datasets does not work in certain important -situations. For example, with the current specifications, a dataset with -@signal=1 attribute can not be linked into a group which already has -such a dataset. Yet, the notion of NXdata to describe the default plot -implies the specifications are a property of the NXdata group, not the -component datasets. - -An additional concern is that the method should allow great flexibility -in the naming of fields. - -The new method should be backwards compatible with and not spoil -existing methods in NeXus. - -We must also consider and allow for the common situation when **no -axes** are specified. - -### Proposition - -Define the specifications of the default data and any associated axes -using attributes attached to the NXdata group. - -Preserve the simplicity of the signal attribute but provide it at the -group level. - -Define how to describe slices of multi-dimensional axes associated with -the default data. - -### NXdata Attributes - -**All attributes potentially containing multiple values (axes and -\_indices) are to be written as integer or string arrays, to avoid -string parsing in reading applications.** - -**signal**: - -`   Defines the name of the default dataset.` -`   A field of this name *must* exist.` -`   (either dataset or link to dataset)` - -**axes**: - -`   String array that defines the independent data fields used in default plot for all of the ` -`   dimensions of the signal field. One entry is provided for every dimension in the signal field.` - -`   The field(s) named as values (known as `“`axes`”`) of this attribute must exist.` -`   An axis slice is specified using the `*`{axisname}_indices`*` below.` -`   ` -`   When no default axis is available for a particular dimension of the plottable data,` -`   use a `“`.`”` in that position.  An example below demonstrates this.` -`   If there are no axes at all (such as with a stack of images), the` -`   `*`axes`*` attribute can be omitted.` - -**{axisname}\_indices**: - -`   Integer array that defines the indices of the signal field array which need to be used in the ` -`   `*`{axisname}`*` dataset in order to reference the corresponding axis value.` - -`   This attribute is to be provided in all situations.` -`   However, if the indices attributes are missing, file readers are encouraged` -`   to make their best efforts to plot the data.  Thus the implementation` -`   of the `*`{axis`` ``name}_indices`*` attribute is based on the model of` -`   `“`strict`` ``writer,`` ``liberal`` ``reader`”`.` - -### Example data structures - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`data`”`  --> *names* the default data to be visualized` -`       @axes=`“`x`”`  --> *names* the default independent data` -`       @x_indices=0` -`       data: float[100]  --> the default dependent data` -`       x: float[100]  --> the default independent data` - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`data`” -`       @axes=`“`time`”`,`“`pressure`” -`       @pressure_indices=1` -`       @temperature_indices=1` -`       @time_indices=0` -`       data: float[1000,20]` -`       pressure: float[20]` -`       temperature: float[20]` -`       time: float[1000]` - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`det`” -`       @axes=`“`pressure`”`,`“`tof`” -`       @pressure_indices=0` -`       @tof_indices=1` -`       det: float[100,100000]` -`       pressure: float[100]` -`       tof: float[100000]` - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`det`” -`       @axes=`“`x`”`,`“`y`”`,`“`tof`” -`       @tof_indices=2` -`       @x_indices=0,1` -`       @y_indices=0,1` -`       det: float[100,512,100000]` -`       tof: float[100000]` -`       x: float[100,512]` -`       y: float[100,512]` - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`det1`” -`       @axes=`“`polar_angle_demand`”`,`“`frame_number`”`,`“`.`” -`       @frame_number_indices=1` -`       @polar_angle_rbv_indices=0,1` -`       @time_indices=0,1` -`       @polar_angle_demand_indices=0` -`       polar_angle_rbv: [50,5]` -`       det1: [50,5,1024]` -`       polar_angle_demand: [50]` -`       frame_number: [5]` -`       time: [50,5]` - -Uncertainties -------------- - -**NOTE: At NIAC2014, this proposal on uncertainties was not accepted.** -*NIAC will see a proposal when experience has been gained with all -variations.* - -(see this from canSAS: -) - -In a scientific data file, it is assumed that uncertainty about the -value of the data is expressed in an array of the same shape as the -data. The uncertainty of a datum may be expressed in a single value or -as derived from several components. - -The way that data uncertainties are described in NeXus data files is -inconsistent across the base classes and can be improved while also -being generalized. Currently, the name of these uncertainties is most -often called “errors” which is incorrect. At best, these are error -estimates but actually describe an estimate of one's uncertainty in the -data. - -While uncertainties are properties of the dataset rather than the -containing group, it is difficult in some cases such as -externally-linked datasets, to attach the attributes directly to the -dataset. - -### Proposition - -The attribute-based scheme used to describe the axes (see above) can be -extended to describe the uncertainties. A subgroup can be created to -deposit these constituents. It seems that a new base class would be -needed for this subgroup. - -It is a question for debate whether to attach the attribute to the -dataset or the NXdata group. We leave that open for now. - -### NXdata Attributes - -We must consider the description of uncertainty as an attribute of -either a dataset or the containing NXdata group. The value of the -attribute should be the same in either case. - -Name of the uncertainty attribute depends on the context: - -- parent NXdata group: **{name}\_uncertainty** -- dataset: **uncertainty** - -Value: - -`   Defines the name of the dataset with the uncertainty to be used.` -`   This dataset must exist and have the same shape as the signal dataset.` - -*Examples* - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`data`” -`       @data_axes=`“`xy`” -`       @data_uncertainty=`“`esd`” -`       data: float[300, 300]` -`       xy: float[300, 300]` -`       esd: float[300, 300]` - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`data`” -`       @data_axes=`“`xy`” -`       data: float[300, 300]` -`         @uncertainty=`“`esd`” -`       xy: float[300, 300]` -`       esd: float[300, 300]` - -Name of the uncertainty components subgroup attribute depends on the -context: - -- parent NXdata group: **{name}\_uncertainty\_components** where - *{name}* is the uncertainty dataset - - **{name}** must exist as a dataset -- dataset: *uncertainty\_components* attached to uncertainty dataset - -Value: - -`   Defines the name of the NXuncertainty subgroup with the uncertainty components.` -`   This subgroup must exist.` - -*Examples* - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`data`” -`       @data_axes=`“`xy`” -`       @data_uncertainty=`“`esd`” -`       @esd_uncertainty_components=`“`esd_uncertainties`” -`       data: float[300, 300]` -`       xy: float[300, 300]` -`       esd: float[300, 300]` -`       esd_uncertainties:NXuncertainty` -`          electronic : float[300, 300]` -`             @basis=`“`Johnson`` ``noise`” -`          counting_statistics: float[300, 300]` -`             @basis=`“`shot`` ``noise`” -`          secondary_standard: float[300, 300]` -`             @basis=`“`esd`” - -` NXroot` -`   NXentry` -`     NXdata` -`       @signal=`“`data`” -`       @data_axes=`“`xy`” -`       data: float[300, 300]` -`         @uncertainty=`“`esd`” -`       xy: float[300, 300]` -`       esd: float[300, 300]` -`         @uncertainty_components=`“`esd_uncertainties`” -`       esd_uncertainties:NXuncertainty` -`          electronic : float[300, 300]` -`             @basis=`“`Johnson`` ``noise`” -`          counting_statistics: float[300, 300]` -`             @basis=`“`shot`` ``noise`” -`          secondary_standard: float[300, 300]` -`             @basis=`“`esd`” - -### Topics for Discussion on this Proposal - -These are some of the topics to be considered when evaluating this -proposal. - -1. . There are known advantages and disadvantages to the decision to - store attributes on the parent group or on the field itself. - 1. . Attributes stored on the field will transfer when the field is - copied or linked - 2. . It may not be possible to add or modify a field attribute - which is linked due to conflicts or write permissions -2. . The uncertainty field (and possible complex uncertainties) need to - be considered when copying or linking -3. . “Uncertainty” is not a popular word to spell. Yet “errors” is not - correct in this context. - -### *NXuncertainty* Base Class - -TODO: need to write this section diff --git a/content/ActiveProjects.md b/content/ActiveProjects.md deleted file mode 100644 index 5286a59e..00000000 --- a/content/ActiveProjects.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Active Projects -permalink: ActiveProjects.html -layout: wiki ---- - -Developers are encouraged to list ongoing projects around NeXus on this page to enable collaboration in the active phase. -Just issue a corresponding pull reguest to [this page](https://github.com/nexusformat/wiki/blob/master/content/ActiveProjects.md). -Please also advertise your project on the -[NeXus Mailing List](https://manual.nexusformat.org/mailinglist.html) for -wider visibility. - - * example project - - -In order to keep this page up to date, projects with the last sign of life -(on the mailing list) older than 18 month may be removed. -If no live project are found on this page for a while, this page may be deleted entirely. diff --git a/content/Archive_Definition.md b/content/Archive_Definition.md deleted file mode 100644 index f487ef4c..00000000 --- a/content/Archive_Definition.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -title: Archive Definition -permalink: Archive_Definition.html -layout: wiki ---- - -Introduction ------------- - -This 'NeXus Archive Definition' proposal is similar to an 'Instrument -Definition' but it describe the required information for neXus files -that are meant to be centrally archived. It contains important -information that will not be found in the instrument definition as they -are not needed for data analysis. - -The Instrument Definitions should allow the creation of archiving -software that are common among several instruments and/or facilities. -With the Archive Definition, the aim is to allow shared data management -tools. It also emphasize important information that will be useful for -search and retrieve of the data once stored in the archive. - -The Instrument Definitions and the Archive definition should not -interfere with each other. To analyze the data of an instrument, you -don't need to know the owner of the data or the name of the sample. - -Before archiving and indexing the data, we need to define the -granularity with which to do it. HDF 5 should allow a user to extract -only one group from a file stored in a SRB system. I doubt that it would -be very practical to catalogue the data so finely, at least not at a -facility level. This definition assumes an indexing at the file level. - -Part of the definition are optional parameters for information that are -highly recommended but not required . It is build with RAW file in mind. -other parameters may be needed for processed / result or simulation -files - -Multiple NXentry issue ----------------------- - -A NeXus file may contain several NXentry that needs to be indexed -separately. But it may also occur that not all NXentry has to be indexed -(e.g. when one entry contains the events data and the other the -histograms for the same measurement. ) - -The entry that has to be indexed will have the attribute 'index' with -the value 'yes'. The one which doesn't have to be indexed, will have the -value 'no'. If some of the NXentry doesn't have to be indexed, they will -have the value 'no'. Those NXentry may be associated to one of the -indexed NXentry with the attribute 'index\_group'. - - - - - - - -If there is only one entry or if it does not matter which entry will be -indexed (all metadata are the same in all entries) then there is no need -to put the attribute 'index' or 'index\_group'. - -Parameter Names ---------------- - -When extracting the metadata, we will not be limited to the one in this -list. Facility, Instrument, Sample specific information may be -extracted. It would then be useful to chose names that are descriptive -and have a constant meaning between experiments. It is preferable to use -temp\_control and temp\_sample than temp\_1 and temp\_2 with the sample -temperature being sometimes temp\_1, sometimes temp\_2. - -Too much metadata is better than too little -------------------------------------------- - -You can't extract information that are not there. - -DTD definition --------------- - - - - - + - - {Extended title for file} - - - {unique identifier for the experiment, defined by the facility, possibly - linked to the proposals (see : proposal_identifier below)} - - - {Brief summary of the experiment, including key objectives.} - - - {Description of the full experiment (document in pdf, latex, …)}? - - - {User or Data Acquisition defined group of NeXus files or NXentry}? - - - {Brief summary of the collection, including grouping criteria.}? - - - {unique identifier for the measurement, defined by the facility.}? - - - {Starting time of measurement} - - - {Ending time of measurement} - - - {Duration of measurement (end_time - start_time)}? - - - {Time transpired actually collecting data i.e. taking out time when - collection was suspended due to e.g. temperature out of range}? - - - {}? - - - { Revision id of the file due to re-calibration, reprocessing, - new analysis, new instrument definition format, ... } - - - {Name of entry DTD} - - - {Name of entry DTD}? - - - {Name of program used to generate this file} - - + - - {Name of user responsible for this entry} - - - {role of user responsible for this entry, comma separated list} - {Suggested roles are "local_contact", "principal_investigator", - "proposer", "experimenter", "funding_agency"} - - - {Facility based unique identifier for this person e.g. their - identification code on the facility address/contact database, - should allow owner identification by the archive system.} - - - - - {Name of instrument} - - - {Brief description of the instrument}? - - - - {Name of source} - - - {"Spallation Neutron Source"|"Pulsed Reactor Neutron Source"| - "Reactor Neutron Source"|"Synchrotron X-ray Source"| - "Pulsed Muon Source"|"Rotating Anode X-ray"|"Fixed Tube X-ray"} - - - neutron|x-ray|muon|electron - - - - - - {Descriptive name of sample} - - - {Unique identifier for the sample in the experiment.} - - - {Description of the sample}? - - - { sample | sample+can | can | calibration sample | - normalisation sample | simulated data | none | sample environment } - - - {The chemical formula specified using CIF conventions.}? - - - {Date of preparation of the sample}? - - - { air | vacuum | inert atmosphere | oxidising atmosphere | reducing atmosphere | sealed can | other } - {The atmosphere will be one of the components, which is where its details will be stored; - the relevant components will be indicated by the entry in the sample_component member.}? - - - {Sample temperature. }? - - - {Applied electric field}? - - - {Applied magnetic field}? - - - {External stress}? - - - {Applied pressure}? - - - {Sample temperature. }? - - - {Sample magnetic_field. }? - - - {Sample electric_field. }? - - - {Sample stress_field. }? - - - {Sample pressure. }? - - - - { Date of the public release of the data. (file_time + X years)}? - - - diff --git a/content/Associating_Axes_with_Data.md b/content/Associating_Axes_with_Data.md deleted file mode 100644 index d6ca06f4..00000000 --- a/content/Associating_Axes_with_Data.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Associating Axes with Data -permalink: Associating_Axes_with_Data.html -layout: wiki ---- - -Associating Axes with Data --------------------------- - -The current scheme we use in NeXus for associating axes with data was -mainly devised as a means to work around a limitation of HDF-4. Namely -the fact that there was one global namespace for dimension scales. -Dimension scales are HDF way of associating axes with data by storing -them as properties of the data. Now, this limitation of HDF has since -long fallen. Moreover there are a number of use cases which are not well -covered by what we do today. Thus this page describes how to improve. -Discussion comments should be placed on the [ -discussion](Talk:Associating_Axes_with_Data.html "wikilink") page. - -### Requirements - -This is a recapitulation of what we have to achieve for a -multidimensional dataset: - -- The axes give a plot meaning -- For data reduction or analysis we need to know exactly data was - measured in either the instrument or another coordinate system -- There may be different sets of axes for the same data in different - coordinate schemes. An example: raw time of flight binning versus - the same axis converted to energy transfer or d-spacing. -- With multidimensional scans, we may have scan intent axes - (describing how the scan was planned) and axes describing what - really happened. Giving motor read backs for each motor for each - point in the multi dimensional dataset. This situation can cause - multiple axis fields for the data, one for each variable varied in - the multi dimensional scan. -- Axes may or may not be regular. - -Solution --------- - -See -[2014\_axes\_and\_uncertainties](2014_axes_and_uncertainties.html "wikilink") -This proposal has been accepted by NIAC at NIAC 2014 with a few -modification. There is still some resistance to the new scheme, thus -this page stays in place. - -This update: 01/2015 diff --git a/content/CodeCamp2020-2.md b/content/CodeCamp2020-2.md deleted file mode 100644 index 690f817f..00000000 --- a/content/CodeCamp2020-2.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: NeXus Code Camp - October 2020 -permalink: CodeCamp2020-2.html -layout: wiki ---- - -The 2020-2 NeXus Code Camp is scheduled for 2 days in October 2020: -October 19 (Monday) - 20 (Tuesday). It is taking place one week after the [2020 NIAC meeting](https://www.nexusformat.org/NIAC2020.html). It was originally planned to be immediately after the [NOBUGS 2020 conference](https://tiny.cc/nobugs2020), hosted by the [European XFEL](https://www.xfel.eu/), but NOBUGS has been postponed and the 2020 NIAC become an online meeting. - -## Purpose - -The Monday of the Code Camp will be primarily an open help session for people to ask detailed questions and request specific help from core NeXus developers, e.g. writing an application definition or writing a NeXus file correctly. The Tuesday will be more for the core NeXus developers to work on implementing [NIAC decisions](https://www.nexusformat.org/NIAC2020.html) - -If you have a topic you wish to discuss/cover in the Monday code camp, please add it as a comment to this [GitHub issue]( https://github.com/nexusformat/NIAC/issues/38) - -NeXus periodically convenes a Code Camp to -develop NeXus software components through intense effort by small groups -working on specific projects and tasks. It is expected that those -attending the Monday Code Camp session will already have a strong foundation -and understanding in aspects of the NeXus software and come ready with -knowledge, tools, and ideas to make significant progress during the -event. - -(For more info on code camps, try searching Google for “code camp” or -“codeathon”. Events such as the [EPICS -Codeathon](https://www.aps.anl.gov/epics/meetings/codeathon.php) would be -reasonable templates for this NeXus code camp.) - -## Registration - -Registration for the NIAC and code camp is not required. - -## Video Conference details - -We will be using Zoom (Please mute microphone when not speaking), you can [test your connection prior to a meeting](https://ukri.zoom.us/test) - -Zoom links for each sessions are posted on the sessions spreadsheet below. - -It is possible to join sessions by telephone - please email [codecamp@nexusformat.org](mailto:codecamp@nexusformat.org) if you wish to do this and we will send you a link to the phone numbers. - -## Agenda - -[Sessions Spreadsheet](https://docs.google.com/spreadsheets/d/1rl5tAywWW4l7wvMy-rCAg_DdwPuNCZYbYLodAQAlwO4/edit#gid=934732431) - -[Agenda on Github](https://github.com/nexusformat/NIAC/projects/2) - - - diff --git a/content/CodeCamp2020-attendees.md b/content/CodeCamp2020-attendees.md deleted file mode 100644 index 479fafa9..00000000 --- a/content/CodeCamp2020-attendees.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: NeXus Code Camp - January 2020 - List of Attendees -permalink: CodeCamp2020-attendees.html -layout: wiki ---- - -[//]: # https://github.com/nexusformat/wiki/blob/master/content/CodeCamp2020.md - -| name | affiliation | country | -| --- | --- | --- | -| Pete Jemian (host) | Advanced Photon Source | USA | -| Russ Berg | Canadian Light Source | Canada | -| Aaron Brewster | Lawrence Berkeley Laboratory | USA | -| Ben Watts | Paul Scherrer Institute | Switzerland | -| Peter Chang | Diamond Light Source | United Kingdom | -| Freddie Akeroyd | UKRI STFC | United Kingdom | - -[//]: # UKRI STFC -was- ISIS Neutron and Muon Source diff --git a/content/CodeCamp2020-topics.md b/content/CodeCamp2020-topics.md deleted file mode 100644 index 9c1b9f49..00000000 --- a/content/CodeCamp2020-topics.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: NeXus Code Camp - January 2020 -- Topics -permalink: CodeCamp2020-topics.html -layout: wiki ---- - -[//]: # https://github.com/nexusformat/wiki/blob/master/content/CodeCamp2020.md - -## purpose - -Gather and prioritize issues to be resolved at the -[2020 NeXus Code Camp](https://www.nexusformat.org/CodeCamp2020.html). - -## Topics and Prioritizations - -All topics should be proposed as issues. Assign issues to relevant -GitHub [milestone](https://github.com/nexusformat/definitions/milestones) -for release process. Post link to each issue here, as shown below. - -priority | topic | link ---- | --- | --- -tba | NXDL release 2020.1 | [definitions #693](https://github.com/nexusformat/definitions/issues/693) -tba | Clarify how beam_center_x and beam_center_y are used | [definitions PR#682](https://github.com/nexusformat/definitions/pull/682) -tba | consider publishing docs in GitHub pages | [definitions #663](https://github.com/nexusformat/definitions/issues/663) -tba | update Sphinx config | [definitions #659](https://github.com/nexusformat/definitions/issues/659) -tba | NIAC has decided about how to report errors/uncertainties | [definitions #634](https://github.com/nexusformat/definitions/issues/634) [PR#685](https://github.com/nexusformat/definitions/pull/685) -tba | Suggested improvements to the NXdata base class definition | [definitions PR#602](https://github.com/nexusformat/definitions/pull/602) -tba | can NXscan be extended to include 1-D data? | [definitions #563](https://github.com/nexusformat/definitions/issues/563) -tba | add "uncertainties" attribute to fieldType in nxdl.xsd | [definitions #532](https://github.com/nexusformat/definitions/issues/532) -tba | datarules.rst contains information on 2014 discussions | [definitions #541](https://github.com/nexusformat/definitions/issues/541) -tba | Recording time-stamped data | [definitions #503](https://github.com/nexusformat/definitions/issues/503) -tba | more prominently document existing scheme for uncertainties | [definitions #370](https://github.com/nexusformat/definitions/issues/370) diff --git a/content/CodeCamp2020.md b/content/CodeCamp2020.md deleted file mode 100644 index efcc1ced..00000000 --- a/content/CodeCamp2020.md +++ /dev/null @@ -1,318 +0,0 @@ ---- -title: NeXus Code Camp - January 2020 -permalink: CodeCamp2020.html -layout: wiki ---- - -The 2020 NeXus Code Camp is scheduled for 3 days in January 2020: -Jan 21 (Tuesday) - 23 (Thursday). -The code camp will take place at the [Advanced Photon Source](https://www.aps.anl.gov), -[Argonne National Laboratory](https://www.anl.gov), IL, USA (near Chicago). - -(We used an [online poll](https://doodle.com/poll/kf5xvbudzf2ccg6s) to help decide the exact dates.) - -[//]: # https://github.com/nexusformat/wiki/blob/master/content/CodeCamp2020-attendees.md - -[//]: # https://github.com/nexusformat/wiki/blob/master/content/CodeCamp2020-topics.md - -[//]: # BTW: this is a comment line (https://stackoverflow.com/a/20885980/1046449) - -## Purpose - -NeXus periodically convenes a Code Camp to -develop NeXus software components through intense effort by small groups -working on specific projects and tasks. It is expected that those -attending the 2020 NeXus Code Camp will already have a strong foundation -and understanding in aspects of the NeXus software and come ready with -knowledge, tools, and ideas to make significant progress during the -event. - -Specific projects and tasks are described on the -[GitHub issue tracker](https://github.com/nexusformat/definitions/milestones). -Issues for consideration at 2020 NeXus Code Camp will be added to the Code Camp's -[Topics page](https://www.nexusformat.org/CodeCamp2020-topics.html) -([edit here](https://github.com/nexusformat/wiki/edit/master/content/CodeCamp2020-topics.md)). -These issues will be prioritized on the first day for handling at the Code Camp. - -(For more info on code camps, try searching Google for “code camp” or -“codeathon”. Events such as the [EPICS -Codeathon](https://www.aps.anl.gov/epics/meetings/codeathon.php) would be -reasonable templates for this NeXus code camp.) - -## Attendees - -The list of Attendees is [here](https://www.nexusformat.org/CodeCamp2020-attendees.html). - -### Remote Attendees - -We will open certain time slots for remote attendees to participate using -[Bluejeans](https://www.bluejeans.com) video conference software. -Connection details will be provided here. Please make sure your -computer is configured to run Bluejeans before the session. - -Teleconference will be available during the *organizational* periods in -the [schedule](#schedule) listed below: - -* 9 - 9:30 AM CST, daily planning -* 5 - 6 PM CST, daily summary - -* Meeting ID: **150 847 021** -* URL: [https://bluejeans.com/150847021](https://bluejeans.com/150847021) -* Phone Dial-in: +1.408.317.9254 (US (San Jose)) -or- +1.866.226.4650 (US Toll Free) -* Global Numbers: [https://www.bluejeans.com/premium-numbers ](https://www.bluejeans.com/premium-numbers ) -* Room System 199.48.152.152 or bjn.vc -* Want to test your video connection? [https://bluejeans.com/111 ](https://bluejeans.com/111 ) - -## Registration - -You **must** notify the host of your visit in advance to arrange site access. -Also, see the section below titled **ANL Visitor Registration**. - -### Costs - -- Conference fee: no fee - - food at morning and afternoon breaks will be provided - - perhaps (no guarantee) a small meeting souvenir -- regular meals (breakfast, lunch, dinner) will be traveler's expense - -### ANL Visitor Registration - -The Argonne visitor registration form is for individuals who are visiting employees. - -Argonne visitor registration form: [https://apps.anl.gov/registration/visitors/](https://apps.anl.gov/registration/visitors/) - -Indicate that you are visiting *Pete Jemian*. - -### Host - -- Pete Jemian - - X-ray Science Division - - Advanced Photon Source, Argonne National Laboratory - - 9700 South Cass Avenue - - Argonne, IL 60439 USA - - email: jemian@anl.gov - - office phone: +1-630-252-3189 (forwards to mobile) - - Google voice: +1-847-859-9775 (forwards to mobile) - - -Meeting Place -------------- - -Building 437 (LOM 437 on the sign), Conference Room C010 (Advanced Photon Source) - -map: [google](https://goo.gl/maps/OizgQ) - - -### Recommended Lodging - -Please reserve your own rooms directly with the hotel: - -[Argonne Guest House](https://www.anlgh.org/)
-Argonne National Laboratory
-9700 S. Cass Avenue - Building 460
-Argonne, IL 60439
-Web site: http://www.anlgh.org/
-telephone: +1-800-632-8990, +1-630-739-6000
-fax: +1-630-739-1000
-map: [google](https://goo.gl/maps/SCwja)
-General information: [Visiting the APS](http://www.aps.anl.gov/About/Visiting/) - -### Directions - -- airport: - - Chicago O'Hare (ORD): international - - Chicago Midway (MDW): domestic - - Milwaukee, WI Mitchell Field (MKE): distant alternative - -- taxi: - - Call for a taxi pickup only after you have all your bags - - Must be a taxi that goes to Chicago suburbs - - suburban taxi will pickup in second lane of arrivals at Chicago - O'Hare airport - - , 1-800-244-1177 (automated system) - - ... others ... -- airport bus: -- commuter train: - - inconvenient - -## Practical Matters - -### Equipment - -| item | quantity | who provides? | -|--------------------------------------------------|------------|---------------| -| projector & screen |   | host | -| LCD displays, keyboards, & mice |   | host | -| 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | -| foreign electrical power adapter | as needed | traveler | -| Wi-Fi connections | sufficient | hotel | - -### Meals - -- No meals are provided by the code camp. -- Light refreshments will be available for the breaks. -- Attendees of the Code Camp will decide *ad hoc* on where to have their meals. - -## Agenda - -### Business Matters - -Since this is not to be a meeting of the full NIAC, no business matters -can be resolved. - -### Goal - -Resolve [issues](https://github.com/nexusformat/definitions/milestone/8) and -[milestone](https://github.com/nexusformat/definitions/milestone/8) -to prepare next [release of NXDL](https://github.com/nexusformat/definitions/issues/693). - -Suggestions: - -* We should take this opportunity to provide the standard *Introduction to NeXus* as a public presentation. -* We should allow time for an open, working lunch on one of the days to interact with the community able to attend. -* If someone wishes to make any other public presentation, either during, before, or after the Code Camp, please contact the host. - -### Schedule - -- arrive evening before the Code Camp -- conference check-in Day 1 morning -- meet Day 1 -- meet Day 2 -- meet Day 3 -- checkout next day morning - -Here is the daily schedule (teleconference for [remote attendees](#remote-attendees) -will be available during the *organizational* periods, see [above](#remote-attendees) -for connection details). All times listed are Central Standard Time (CST): - -| time | description | comments | -|---------------------|-----------------|-----------------------------| -| 9:00 - 9:30 AM | organizational | daily planning (plenary) | -| 9:30 - 10:15 AM | meeting | work on projects and tasks | -| 10:15 - 10:45 AM | morning break | (included) | -| 10:45 AM - 12:00 PM | meeting | work on projects and tasks | -| 12:00 - 1:15 PM | lunch | offsite, traveler's expense | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | organizational | daily summary (plenary) | - -Notes: - -1. late-afternoon wrap-up (plenary) each day -2. morning and afternoon breaks will be included in amenities charge -3. breakfast, lunch, dinner will be in a local restaurant at traveler's - expense - -### Day 1 - -- Check-in, Welcome, and introductions -- Decide which [topics](https://www.nexusformat.org/CodeCamp2020-topics.html) - to work on and resolve during this code camp. - - this took longer than expected (about 90 minutes) - - we used a [shared Google Docs spreadsheet](https://docs.google.com/spreadsheets/d/1fFmKNXikbNSG9uAbkhS2UmtvJpQRxQmWyDlSRthE9cA/edit?usp=sharing) to list GitHub issues, assign priorities, note workers, and report status -- AOB? -- work on issues - -### Day 2 - -- work on issues - -### Day 3 - -- work on issues -- make release (or release candidate) of NXDL per [release procedure](https://github.com/nexusformat/definitions/wiki/Release-Procedure) -- AOB? - - -## Minutes for the meeting - -We don't typically record minutes for the Code Camps. -Rather, the work progress is recorded in the GitHub -issue trackers for the various repositories involved. - -We'll note here certain progress items or any questions or recommendations for the NIAC. - -* We are looking to [publish the manual through GitHub Pages](https://github.com/nexusformat/definitions/issues/663): [https://manual.nexusformat.org](https://manual.nexusformat.org) -* We made excellent progress on the *Gold Standard for NXmx*, helping both the MX, FEL, and synchrotron communities and the vendor support. -* We have registered a [DOI with zenodo](https://zenodo.org/record/3629571) that updates with each release of the definitions repository. The DOI link is noted on our [GitHub home page](https://github.com/nexusformat/definitions). -* We expect to make a release of NXDL 2020.1 on 2020-01-31. - -### Code Camp Tasks - -We list here the various tasks we handled during the code camp, with a disposition for each, as copied from the Google Sheet we shared. - -repository | task | disposition ----- | ---- | ---- -definitions | [NXDL data type vs NAPI type vs NeXus data type: clarify and simplify!](https://github.com/nexusformat/definitions/issues/307) | Done -definitions | [more prominently document existing scheme for uncertainties](https://github.com/nexusformat/definitions/issues/370) | Done -definitions | [Recording time-stamped data](https://github.com/nexusformat/definitions/issues/503) | Done -definitions | [Create structure to incorporate PDB definitions into NeXus](https://github.com/nexusformat/definitions/issues/553) | Done -definitions | [use consistent terms when names are flexible](https://github.com/nexusformat/definitions/issues/562) | Done -definitions | [NIAC has decided about how to report errors/uncertainties](https://github.com/nexusformat/definitions/issues/634) | Done -definitions | [[DOC] C example uses old style NXdata](https://github.com/nexusformat/definitions/issues/665) | Done -definitions | [Added documentation for variants to datarules.rst](https://github.com/nexusformat/definitions/pull/666) | Done -definitions | [How to specify per-shot wavelength](https://github.com/nexusformat/definitions/issues/667) | Done -definitions | [close branch pixel_as_length_issue_511](https://github.com/nexusformat/definitions/issues/680) | Done -definitions | [integrate NIAC decision on errors & uncertainties](https://github.com/nexusformat/definitions/pull/685) | Done -definitions | [NXDL release 2020.1](https://github.com/nexusformat/definitions/issues/693) | *expected 2020-01-31* -exampledata | [Can we remove the file trees from the readme files as they are out of date and need to be manually updated](https://github.com/nexusformat/exampledata/issues/10) | Done -exampledata | [separate out non-compliant data files](https://github.com/nexusformat/exampledata/issues/3) | Done -exampledata | [Example thaumatin multisample NXmx/NXreflections file.](https://github.com/nexusformat/exampledata/pull/7) | Done -definitions | [Clarify note on IUCr coordinate system.](https://github.com/nexusformat/definitions/pull/704) | Done -definitions | [add "uncertainties" attribute to fieldType in nxdl.xsd](https://github.com/nexusformat/definitions/issues/532) | closed as wontfix -definitions | ["Are there examples of NeXus data?" - asked at Nobugs 2018](https://github.com/nexusformat/definitions/issues/629) | Done -definitions | ["Are there examples of code that reads NeXus data?" - asked at Nobugs 2018](https://github.com/nexusformat/definitions/issues/630) | Done -definitions | [docs: add text when a group name is suggested](https://github.com/nexusformat/definitions/issues/531) | Done -definitions | [can NXscan be extended to include 1-D data?](https://github.com/nexusformat/definitions/issues/563) | moved to next milestone -definitions | [update Sphinx config](https://github.com/nexusformat/definitions/issues/659) | Done -definitions | [consider publishing docs in GitHub pages](https://github.com/nexusformat/definitions/issues/663) | Done -definitions | [examples of axes/AXISNAME_indices attributes](https://github.com/nexusformat/definitions/issues/450) | moved to next milestone -definitions | [datarules.rst contains information on 2014 discussions](https://github.com/nexusformat/definitions/issues/541) | moved to next milestone -definitions | [clarify how to name fields and groups](https://github.com/nexusformat/definitions/issues/544) | NIAC to review -definitions | [clarify naming convention](https://github.com/nexusformat/definitions/pull/671) | NIAC to review -exampledata | [some example files for NXptycho](https://github.com/nexusformat/exampledata/pull/9) | after code camp -definitions | [Is use of UPPER case names described in the manual?](https://github.com/nexusformat/definitions/issues/700) | Done -definitions | [Need new links to h5toText program](https://github.com/nexusformat/definitions/issues/705) | Done -exampledata | [critique.py was not working](https://github.com/nexusformat/exampledata/pull/14) | Done -definitions | [Slow/fast axis inconsistent in NXdetector_module](https://github.com/nexusformat/definitions/issues/695) | Done -definitions | [adjust links for h5toText, now punx tree](https://github.com/nexusformat/definitions/pull/707) | Done -definitions | [update copyright date to 2020](https://github.com/nexusformat/definitions/issues/712) | Done -definitions | [2020 copyright](https://github.com/nexusformat/definitions/pull/713) | Done -definitions | [some unit tests fail since flexible names are UPPER case](https://github.com/nexusformat/definitions/issues/714) | Done -definitions | [certain unit tests had failed](https://github.com/nexusformat/definitions/pull/715) | Done -definitions | [NXmx has fields that may not have to be required](https://github.com/nexusformat/definitions/issues/696) | Done -definitions | [update Sphinx config to 2.3.1](https://github.com/nexusformat/definitions/pull/718) | Done -definitions | [DATASET_errors naming convention should appear in manual](https://github.com/nexusformat/definitions/issues/721) | Done -definitions | [PDF manual does not build](https://github.com/nexusformat/definitions/issues/720) | Done -definitions | [Remove references to NAPI from schema and documentation](https://github.com/nexusformat/definitions/issues/699) | Done -definitions | [describe field suffixes reserved by NeXus](https://github.com/nexusformat/definitions/pull/723) | Done -definitions | [Improved documentation about time stamped data](https://github.com/nexusformat/definitions/pull/719) | Done -definitions | [cleanup in nxdl.xsd](https://github.com/nexusformat/definitions/issues/725) | Done -definitions | [cleanup in nxdl.xsd (PR to #725)](https://github.com/nexusformat/definitions/pull/726) | Done -definitions | [Remove some references to NAPI for #699](https://github.com/nexusformat/definitions/pull/722) | Done -definitions | [Makefile can't build the PDF manual](https://github.com/nexusformat/definitions/issues/732) | Done -definitions | [editing needed in datarules.rst new content](https://github.com/nexusformat/definitions/issues/733) | Done -definitions | [Clarify the nature of NeXus application definitions](https://github.com/nexusformat/definitions/issues/697) | Done -definitions | [Clarify the nature of NeXus application definitions](https://github.com/nexusformat/definitions/pull/734) | Done -definitions | [GitHub API authentication has changed : affects the release process](https://github.com/nexusformat/definitions/issues/728) | Done -definitions | [Revise release note scripting](https://github.com/nexusformat/definitions/pull/735) | Done -definitions | [create_release_notes.py should use SHA credentials](https://github.com/nexusformat/definitions/issues/729) | Done -definitions | [added type="NX_FLOAT"](https://github.com/nexusformat/definitions/pull/731) | Done -definitions | [NXstxm nxdl does not specify a type for the energy field for [/NXentry/NXinstrument/NXmonochromator/energy]](https://github.com/nexusformat/definitions/issues/730) | Done -definitions | [cite API contributions](https://github.com/nexusformat/definitions/pull/736) | Done -definitions | [Update example for new axes syntax and for HDF 1.8.0 and above](https://github.com/nexusformat/definitions/pull/737) | Done -definitions | [Reduce number of mandatory fields in NXcxi_ptycho](https://github.com/nexusformat/definitions/pull/668) | Done -definitions | [adjust doc string in NXcxi_ptycho](https://github.com/nexusformat/definitions/issues/738) | Done -definitions | [writer_2_1 example broken](https://github.com/nexusformat/definitions/issues/739) | Done -definitions | [Bad indentation in NXcxi_ptycho](https://github.com/nexusformat/definitions/issues/740) | Done -definitions | [add h5py example reader using attributes to find default plottable data](https://github.com/nexusformat/definitions/issues/741) | Done -definitions | [From code camp, clarify NXmx/NXdetector depends_on field.](https://github.com/nexusformat/definitions/pull/743) | Done -definitions | [From code camp, Make NXmx/NXdata optional.](https://github.com/nexusformat/definitions/pull/744) | Done -definitions | [From code camp, add note to NXmx that file_name and file_time are recommended](https://github.com/nexusformat/definitions/pull/745) | Done -definitions | [in release notes, TOC link to each subsection](https://github.com/nexusformat/definitions/issues/749) | Done -definitions | [in release notes TOC, add link to each subsection](https://github.com/nexusformat/definitions/pull/751) | Done - ------------------------ - -page source: [GitHub link](https://github.com/nexusformat/wiki/blob/master/content/CodeCamp2020.md) diff --git a/content/CodeCamp2021-1.md b/content/CodeCamp2021-1.md deleted file mode 100644 index 03b8f42c..00000000 --- a/content/CodeCamp2021-1.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: NeXus Code Camp - March 2021 -permalink: CodeCamp2021-1.html -layout: wiki ---- - -The 2021-1 NeXus Code Camp is scheduled for 2 days in March 2021: -March 22 (Monday) - 23 (Tuesday). It will be an online meeting, copying the format of the [2020 Code Camp 2](https://www.nexusformat.org/CodeCamp2020-2.html). -A follow-up session will be held at 14:00 UTC on March 29 (Monday) in order to finish discussions. - - -## Purpose - -The Code Camp is intended to be both an open help session for people to ask detailed questions and request specific help from core NeXus developers (e.g. writing an application definition or writing a NeXus file correctly) and to focus on developing the NeXus documentation and code. - -If you have a topic you wish to discuss in the code camp, please mention it in a comment to this [GitHub issue](https://github.com/nexusformat/NIAC/issues/82). - -NeXus periodically convenes a Code Camp to -develop NeXus software components through intense effort by small groups -working on specific projects and tasks. Most of those -attending the Code Camp session will already have a strong foundation -and understanding in aspects of the NeXus software and come ready with -knowledge, tools, and ideas to make significant progress during the -event. If you don't feel confident in your current level of knowledge about -NeXus, you can contribute by reading the documentation and pointing out errors -and inconsistencies while you are learning. Contributing new or improved images -for the documentation is also helpful. - -(For more info on code camps, try searching Google for “code camp” or -“codeathon”. Events such as the [EPICS -Codeathon](https://www.aps.anl.gov/epics/meetings/codeathon.php) would be -reasonable templates for this NeXus code camp.) - -## Registration - -Registration for the NIAC and code camp is not required. - -## Video Conference details - -We will be using Zoom (Please mute microphone when not speaking), you can [test your connection prior to a meeting](https://ukri.zoom.us/test) - -Zoom links for each sessions are posted on the sessions table below. - -It is possible to join sessions by telephone - please email [codecamp@nexusformat.org](mailto:codecamp@nexusformat.org) if you wish to do this and we will send you a link to the phone numbers. - -## Agenda - -[Session times](https://docs.google.com/spreadsheets/d/11WXNBxEaCdM9BsyDylEhFB5v5yd4F_bNMDejWB1FM6I/edit?usp=sharing) - -[Project on Github](https://github.com/nexusformat/NIAC/projects/3) diff --git a/content/CodeCamp2022.md b/content/CodeCamp2022.md deleted file mode 100644 index fd687bca..00000000 --- a/content/CodeCamp2022.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: NeXus Code Camp - June 2022 -permalink: CodeCamp2022.html -layout: wiki ---- - -The 2022 NeXus Code Camp is scheduled for the week of June 13-17th and will focus on fixing issues to meet the next release milestone. - -At some point during the week, we must decide what issues and pull requests in the definitions repository will be finished -by the end of this Code Camp for inclusion in the next release **this month**. All unfinished issues -and PRs for this milestone of the definitions repository will be moved to the next milestone. - -## Issues and pull requests - -To help the upcoming code camp organize and track its work, a GitHub project has -been created. You can [add additional issues and pull -requests](https://github.com/orgs/nexusformat/projects/1?add_cards_query=is%3Aopen) -by dragging each to the "To do" column. The list is filled from any of the -repositories that are connected to the project. As a start, existing open pull -requests were added to the appropriate column based on inspection of the comments in each. - -If you have some other matter to add, create an issue in the appropriate repository -and then you can add it to this project. If it should be considered for the next -release of the definitions repository, add the issue (or pull request) to the -[NXDL 2022.06](https://github.com/nexusformat/definitions/milestone/12) - -## Meetings Schedule - -Regular video meetings will be run over the course of the week of June 13-17th in order to aid communication. Since we spread over the globe, our normal work schedules are not going to overlap perfectly and participants are encouraged to attend whichever sessions reasoably fit their own work/life schedule. Sessions **B** and **D** provide the best opportunities to get everyone together and participants are encouraged to make an effort to join these sessions. - -All sessions will use the same Zoom meeting: -* link: [https://psich.zoom.us/j/68015435330?pwd=UHhBU2VBaldpcVFRZFY4QytpNnplZz09](https://psich.zoom.us/j/68015435330?pwd=UHhBU2VBaldpcVFRZFY4QytpNnplZz09) -* ID: 680 1543 5330 -* password: nexus - - - - - - - - - - -
Session Location
TokyoSan FranNew YorkLondonZürich
A
09:00-11:00 UTC
18:0002:0005:0010:0011:00
B
13:00-15:00 UTC
22:0006:0009:0014:0015:00
C
17:00-19:00 UTC
02:0010:0013:0018:0019:00
D
21:00-23:00 UTC
06:0014:0017:0022:0023:00
E
01:00-03:00 UTC
10:0018:0021:0002:0003:00
F
05:00-07:00 UTC
14:0022:0001:0006:0007:00
- - diff --git a/content/CodeCampJune2023.md b/content/CodeCampJune2023.md deleted file mode 100644 index a3267774..00000000 --- a/content/CodeCampJune2023.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: NeXus Code Camp - June 2023 -permalink: CodeCampJune2023.html -layout: wiki ---- - -The June 2023 NeXus Code Camp is scheduled for four days split over two weeks of June 2023, 15-16 & 20-21, and will focus on fixing issues and discussing proposed additions. - -## Issues and pull requests - -To help the upcoming code camp organize and track its work, a GitHub project has -been created. You can [add additional issues and pull -requests](https://github.com/orgs/nexusformat/projects/3?add_cards_query=is%3Aopen) -by dragging each to the "To do" column. The list is filled from any of the -repositories that are connected to the project. As a start, existing open pull -requests were added to the appropriate column based on inspection of the comments in each. - -If you have some other matter to add, create an issue in the appropriate repository -and then you can add it to this project. - -## Meetings Schedule - -Regular video meetings will be run over the course of June 15-16 & 20-21 in order to aid communication. Since we are spread over the globe, our normal work schedules are not going to overlap perfectly and participants are encouraged to attend whichever sessions reasoably fit their own work/life schedule. Sessions **B** and **D** provide the best opportunities to get everyone together and participants are encouraged to make an effort to join these sessions. - -All sessions will use the same Zoom meeting: -* https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 -* Meeting ID: 652 7209 1306 -* Password: nexus - - - - - - - - - - -
Session Location
TokyoSan FranNew YorkLondonZürich
A
09:00-11:00 UTC
18:0002:0005:0010:0011:00
B
13:00-15:00 UTC
22:0006:0009:0014:0015:00
C
17:00-19:00 UTC
02:0010:0013:0018:0019:00
D
21:00-23:00 UTC
06:0014:0017:0022:0023:00
E
01:00-03:00 UTC
10:0018:0021:0002:0003:00
F
05:00-07:00 UTC
14:0022:0001:0006:0007:00
- - diff --git a/content/Code_Camp_2015.md b/content/Code_Camp_2015.md deleted file mode 100644 index 3eeba621..00000000 --- a/content/Code_Camp_2015.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: Code Camp 2015 -permalink: Code_Camp_2015.html -layout: wiki ---- - -This years NeXus Code Camp takes place from 16.11.-18.11.2015 at the -DESY campus in Hamburg, Germany. - -Location and Accommodation --------------------------- - -### The DESY campus - -The event will take place at the [DESY -Campus](https://www.openstreetmap.org/#map=17/53.57749/9.87851) in -Hamburg. A PDF version of our site map can be found -[here](pdfs/NexusCodeCamp2015_map.pdf "wikilink"). - -### Traveling - -Getting to Hamburg - -by plane - -- [Airport Hamburg](https://www.hamburg-airport.de/en/) - -by train - -- station Hamburg-Hauptbahnhof -- station Hamburg-Altona - -Independent of whether you come by train or plane, once you are in -Hamburg, getting to DESY is easy. - -- take the S-Bahn (S1) in the direction of *Wedel/Blankenese* until - station *Othmarschen* -- take the Bus (M1) from *Othmarschen* in direction - *Wedel/Blankenese/Risse*n until - - station *Trabrennbahn Bahrenfeld* (if you stay in the Mercure - Hotel) - - or until *DESY/Huennengrab* (if you stay at the DESY guest - house). - -### Lodging - -I recommend that you book a room either at - -- the [DESY guest - house](http://guest-services.desy.de/hostel_in_hamburg/index_eng.html) -- or at the [Mercure Hotel Hamburg am - Volkspark](http://www.accorhotels.com/gb/hotel-1659-mercure-hotel-hamburg-am-volkspark-ex-novotel-hamburg-arena/index.shtml) - -### Local contact - -Eugen Wintersberger - -Mail: - -Tel: +49 40 8998 1917 - -Registration ------------- - -As DESY has a fairly relaxed security policy, the registration procedure -is rather simple: just write an email to -announcing your attendance. The mail should include the following -information - -- your name -- your institute -- additional equipment like monitors and/or keyboards if you need one. - -No gate passes are required to enter the site. However, I will prepare -some badges for you in case you're getting lost ;). - -### Registered attendees - -| Name | Institution | Special Requirements | -|----------------------|-----------------------------------|----------------------| -| Tobias Richter | European Spallation Source | *none* | -| Mark Könnecke | Paul Scherrer Institut - SINQ | *none* | -| Herbert J. Bernstein | Rochester Institute of Technology | *none* | -| Mark Basham | Diamond Light Source | *none* | -| Peter Chang | Diamond Light Source | *none* | -| Chris Kerr | EMBL | *none* | - -Agenda ------- - -| Day | Date | Time | Activity | Room | -|-----------|------------|--------------|-----------|---------------| -| Sunday | 15.11.2015 | all day | arrival | -- | -| Monday | 16.11.2015 | 9:00 - 18:00 | Code Camp | 109 Bldg. 25b | -| Tuesday | 17.11.2015 | 9:00 - 18:00 | Code Camp | 109 Bldg. 25b | -| Wednesday | 18.11.2015 | 9:00 - 18:00 | Code Camp | 109 Bldg. 25b | - -| Time | Activity | Room | -|---------------|------------------------------------------------------------------------|---------------| -| 9:00 - 10:00 | Welcome, Discussions and setting up projects | 109 Bldg. 25b | -| afternoon | project work | 109 Bldg. 25b | -| 12:00 - 13:00 | lunch | | -| 13:00 - 14:00 | after lunch discussions (report on progress), Eiger compression, NXmx? | | -| 17:00 - 18:00 | Teleconference [Telco 20151116](Telco_20151116.html "wikilink") | 109 Bldg. 25 | - -| Time | Activity | Room | -|-----------|-----------------------------------------------|---------------| -| morning | quick report, project work | 109 Bldg. 25b | -| afternoon | reshuffle projects if required, work on tasks | 109 Bldg. 25b | - -| Time | Activity | Room | -|-----------|-------------------------------|---------------| -| morning | quick report, project work | 109 Bldg. 25b | -| afternoon | Summary, plan ahead,close out | 109 Bldg. 25b | - -More topics for the agenda --------------------------- - -- NAPI Release - - RC3 - done-ish - - TravisCI - jenkins access restrored, might be sufficient - - download pages (consolidate websites, Wiki and other - documentation) - - python will follow within two weeks as a separate build -- Features Research Project - - More Feature Examples - - Web service -- Validation - - Testing - - Location of Source (code, definitions, own repo) - - dealing with different versions of NXDL files (discussion topic) -- NXmx implementation -discussed with Dectris -- Detector Geometry - will look at recent DLS i16 example file in - examples repository -- NXcanSAS - discussed, documentation needs to be updated -- NXsample alignment with CIF - agreed in principle proposal will - follow - - - -- new repositories (to be created): - - hdffilters - - nxvalidate - - python package - diff --git a/content/Code_Camp_2017.md b/content/Code_Camp_2017.md deleted file mode 100644 index 6f0b6db2..00000000 --- a/content/Code_Camp_2017.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Code Camp 2017 -permalink: Code_Camp_2017.html -layout: wiki ---- - -NeXus Code Camp - 24th to the 26th of October, 2017 -=================================================== - -Location: The Cosener's house, Abingdon UK ------------------------------------------ - -[Venue Website with contact details](http://www.stfc.ac.uk/about-us/where-we-work/rutherford-appleton-laboratory/the-cosener-s-house/) - -Agenda ------- - -## Tuesday - -### Morning - * Shape descriptions (Dean Keeble and Tim Spain will be visiting) - -### Afternoon - * C++ wrappers for HDF5 - * Versioning - -### After Coffee - * Features - * Example files for Ray. - -### Evening - * 6:00 - 6:30 pre dinner drink - * 7:00 - Dinner at cosners house - * Main-Course: Rack of lamb with rosemary crumb, dauphinoise potato, chargrilled courgette, vine roasted cherry tomato, fine bean parcel and rosemary jus - * Vegetarian Option: Asparagus and broad bean risotto, parmesan tuile and lemon balm - * Pudding: Classic glazed lemon tart, crème fraiche and berries - -## Wednesday - -### Morning - * PDB integration (Greame Winter and Charles Mita will be visiting) - * Dealing with dropped frames - -### Afternoon - * 3pm VC with Pete on Versioning - * Detectors with modules in modules. (Aaron Brewster may be VCing in) - -### Evening - * Reservartion for 7:00 at [wildwood](https://wildwoodrestaurants.co.uk/restaurant/abingdon/) - -## Thursday - -### Morning - * Event data (Alan Greer also attending) - * Event log disscussion and focus on example files. - -### Afternoon - * Wrap up and Telco - -The aim is to start at 10:00 on the 24th, 9:00 the other days and finish early afternoon on the 26th. - - -Minutes for the meeting -======================= - -## Tuesday Morning - -Introductions - * Move the PDB and versions to the afternoons so that Pete Jemian can VC in - -First item is to investigate the shape methodoloy as investigated by the ESS team - * There is concern over how the shape can accurately describe detectors, and how the data is mapped to the shape. - * Visualisation is important, but so it the use of full descriptions for analyis - * The [OFF format](https://en.wikipedia.org/wiki/OFF_(file_format)) will be used for Mantid and McStas - * A new description for [Quadrics](https://github.com/golosio/xrmc/wiki/User-guide#the-quadric-array-file) will be developed by DLS to deal with more complex descriptions for use with xrmc. There should be a converter for this to the OFF NeXus description. - -## Tuesday Afternoon - -2 Seperate threads - -### Versioning - * Looking at the versioning concept as in the [document](http://www.nexusformat.org/NIAC2016Minutes.html) - * Big discussion about the complexity of local vrs. global versioning, i.e version on baseclasses vrs. versioning on the file. - * Came to the conclusion of a single version number which increments gradually and incrementally to deal with new versions. - * Things to do - * UPDATE WORKFLOW - Questions here, but we will try to address at the code camp. - * VERSIONING SEMANTIC - Big changes bump version by 1 - * VALIDATION - is easier now as there is only one global version to validate against - * LEGACY DOC - Still in the repository. - -### C++ wrappers for HDF5 - * On ess-dmsc github [h5cpp](https://github.com/ess-dmsc/h5cpp) - * Came out of some HDF work, didn't like the C++ API. - * Various parties were doing their own - Tobias asked them to work together. - * Eugen and Martin, ocassionally Jonas Nilison - * Auto builds docs, doxygen - * Migration of Eugen PNI code at the beginning. Lack of tests, now adding more tests. - * Aim to cover all of HDF5 features, e.g. SWMR, compound data types etc. - * Examples of implementation: write_simple_vector - * Suggest to use clang format. - * Using google's style guide - need consistency - * Fortnightly meetings - * Implemented types: basic types int, float etc. - * Going to be used in the file writer - * Trying to make it as easy to use as h5py - * Looked at internal Paths - * Plan to create performance tests - * Will put on to conan - * Martin will replace the naïve version he is currently using. - * Detector people are interested in using it to store diagnostic data. - * Happy to take suggestions for things to be implement from other parties. - * Discussed using in-memory files for performance tests - * Setting up Windows automated build and hoping to OSX - * MPI support in the future? - * Using runtime exceptions - should it use something more tailored? Do something with the hdf error stack - -## Wednesday Morning - -### NXmx PDB discussion - * It was decided that NXmx could easily contain an NXpdb which contains the basic information required for PDB ingest - * Charles Mita from DLS will make a first pass at this for VMXi data - -### Dropped frames - * could the value be set to NXdetector.undefined, or NXdetector.saturation_value - * Could the count_time value be set to zero (or annother value) for the frame which is not there. - * a valid count time is anything zero or above, anything other than this is an invalid frame. - * The solution was to create a new dataset called frame_acquired - * a boolean dataset - * True if the frame is correcly collected, if the frame has been dropped by the datawriter and padded with fill value, then this shoud be set to False - * The fill value should be set to a value larger than the NXdetector.saturation_value - -## Wednesday Afternoon - -### Features - We all continued to work on features. - -### Versions revisitited with Pete - * It was agreed that Base class versions were not that useful, and so these can be made optional to inherit from the main version - * Agreed with the concept of global versioning - * in the January release the version numbers will move to Year.Month instead of 3.4 - -### Modules in Modules, with Aaron Brewster. - * Seems like a sencible option - * TASK on AB to update the documentaion on modules to clarify the usage of the depends-on and pixel size - * TASK on AB to make an NXlog index class for multiple event streams. - -## Thursday Morning - * Discussion on NXevent_data - * Continue on features - -## Thursday Afternoon diff --git a/content/ConcordanceDiscussion.md b/content/ConcordanceDiscussion.md deleted file mode 100644 index 73841253..00000000 --- a/content/ConcordanceDiscussion.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -title: ConcordanceDiscussion -permalink: ConcordanceDiscussion.html -layout: wiki ---- - -Concordance Summary -=================== - -Last update: July, 10, 2013, Mark Koennecke - -This document summarizes the problems occurring when mapping CBF to -NeXus how I see them from the discussion with Herbert. In the following -discussion all groups which are not NeXus yet will be prefixed with TBD -for To Be Discussed. This is the version updated after the July, 10 -teleconference. - -Further details on [NeXus/HDF5/CBF -Integration](https://sites.google.com/site/nexuscbf/) - -The Variant Issue -================= - -CBF has the concept of variants for fields. For example there is a field -beam\_center\_x. This has somehow been determined and written to file. -Later this is refined in another way. CBF stores this then as -beam\_center\_x\_variant. This concept of variants is missing in NeXus. -Another way to understand this is to see it as a version control for -values. However, as this is rarely used, a complicated solution is not -desirable. Another requirement is that it must be possible to put -similar tags on variables which change at the same time. - -So far there are three options to remedy this: - -- A TBDvariant group which can occur in all other groups and contains - the variant values with the same field names as in the parent group. - This is felt to be overkill. -- Simply append \_variant to the existing NeXus name. If there is more - then one variant append another qualifier to \_variant. For example: - beam\_center\_x\_variant\_refined -- As the request can rather be understood as a means to keep track of - old versions of values, another option is this rule: When updating a - value, update the value with the NeXus name. Store the old value in - a new field labelled with nexusname\_old\_timestamp. Where nexusname - is the original name of the field, for example beam\_center\_x, and - timestamp is a: timestamp like 2013-05-23. Great care has to be - taken to create a timestamp format which does not break the - usability of the name as a field name in a programming language. -- Another idea is to append \_var\_N where N is a number to the - original NeXus field name and store the time stamp as an attribute - to the field. -- Yet another idea: do not create new fields but rather store the old - values as variant attributes to the original field. - -The Axisset Issue -================= - -NeXus chooses to document axis names with a predefined meanings. The CBF -people learned that this did not work for them as people were using axes -differently, could not be bothered to even look which conventions others -used etc. Thus they choose rather to document axes by the way how they -operate. And a given component may even have more then one axes -description associated with it. - -NeXus goes a long way to support this with the recently added offset, -type, vector and depends\_on attributes. - -But mapping the full CBF scheme would require a TBDaxisset group which -can occur in any component which we care to place (sample, detector,...) -This group could look like this: - - TBDaxisset - axis-name-or-id[NA] - offset[3,NA] - type[NA] - vector[3,NA] - depends_on[NA] - -with NA being the number of axes. - -I can see that such a scheme would also allow NeXus to neatly describe a -given data set in terms of different axis types: instrument coordinates, -q coordinates or whatever. - -At the Telco the agreement was that the current NeXus scheme is -sufficient to do the CBF mapping. But for further use, it might be a -good idea to reserve the namespace for axisset. It was also felt that -there to many ways to describe axes in NeXus and we should discuss and -aggree on a preferred way to do axes in an upcoming NIAC meeting. - -The Scan Issue -============== - -NeXus chooses to store scans as it is done, with the positions of -components as read from the hardware in arrays. CBF chooses to rather -store the intent of the scan: i.e. the axis moved, their start and -increments etc. NeXus lacks such a intent description. This already -caused us problems because the intent axes are nice for plotting and the -actual positions as read are necessary for detailed DA. - -Thus to capture the CBF description a new group may be required: - - TBDscan_intent - axis-name-or-id[NSA] - start[NSA] - increment[NSA] - NP - -with NSA being the Number of Scan Axes and NP the number of points in -the scan. May be some more fields. - -The agreement on the NeXus Telco was that the recently aggreed upon axes -scheme with the attributes on the NX group is sufficient to do the CBF -mapping. Again, it might be worth to reserve the namespace. - -New Fields -========== - -This may be a bit easier: the CBF mapping asks for a couple of fields to -be added to the NeXus base classes: - - NXxray_tube - radiation_type - radiation_xray_symbol - -Radiation\_type is different to probe. Probe gives a very general -description like neutrons, x-ray etc. This gives the type of radiation -like Cu Kalpha, Mo etc. The situation is further complicated by the fact -that even at synchrotrons wavelengths are selected which match the -characteristics of well known x-ray tube anode materials. Thus, a -NXxray\_tube group may not be the appropriate place. - - NXcollimator - div_x_y_source - radiation_filter_edge # May belong into a NXfilter - radiation_inhomegeneity # May belong into NXsource or NXmonochromator - -CBF stores polarisation information of the beam in NXmonochromator. It -is an open question where this belongs: NXbeam, NXpolariser or -NXmonochromator being candidates. The fields: - - polarisation_norm - polarisation_ratio - polarisation_source_norm - polarisation_source_ratio - - NXdetector - gain - gain_esd - linerarity - offset - scaling - overload - undefined_value - -Some of these fields address the computed data value issue which we -discussed some time ago. The last state on this was that Armando was to -make a proposal for calculated data. Which, as far as I am aware, did -not happen. - -CBF also has a structure to describe the elements of a multi component -detector. We discussed something similar recently with the DECTRIS -module . This was then added a s a non NeXus standard group. May be we -need to revise this with input from CBF? - -The good news is that the proposed fields come with documentation which -we may directly copy from the CBF documents. - -NXgoniometer -============ - -Consider the situaton when a sample is mounted on some sort of -positioning device: x-y tables, eulerian cradle goniometer or such. The -current NeXus convention is to store the values coming from such -positioning devices in the NXsample group. The rationale is that their -purpose is to position the sample. Now, the suggestion is to separate -such values out into a NXgoniometer group. This unloads the sample group -somewhat and makes for a cleaner separation. Where in the NeXus -hierarchy a NXgoniometer will be positioned is another question to be -discussed: NXsample or NXinstrument both being good candidates. diff --git a/content/Connecting_NXdata_to_NXdetector.md b/content/Connecting_NXdata_to_NXdetector.md deleted file mode 100644 index 2424720e..00000000 --- a/content/Connecting_NXdata_to_NXdetector.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: Connecting NXdata to NXdetector -permalink: Connecting_NXdata_to_NXdetector.html -layout: wiki ---- - -This is an attempt to summarize the various proposals that have been -discussed on this page. Proposal 1 is, I believe ([Ray -Osborn](User%3ARay_Osborn.html "wikilink")), the original proposal when NeXus -was first designed (although we didn't link the data item itself as -Freddie has sensibly suggested). If anyone thinks that the remaining -proposals have been incorrectly summarized, please let the NeXus -committee mailing list know as soon as possible. - -Proposal 1 ----------- - -All the items within an NXdata group (data, errors, and axes) are stored -as links to parent items stored in their logical location (NXdetector, -NXsample, etc). The absolute address of the parent item is stored as an -attribute on the data, so that other information can be conveniently -located. This is the only proposal that addresses the issue of -non-NXdetector axes. - -This method implies a one-to-one correspondence of NXdata and NXdetector -groups; the names do not need to match, though they could. - -Example: - - - - - - - - - - - - - - - - -Proposal 2 ----------- - -There is a one-to-one correspondence between NXdata groups and the -corresponding NXdetector group, which should have the same name to -provide a logical association. - -Example: - - - - - - - - - - - - - - - - - - - - - - - - -Proposal 3 ----------- - -There is a one-to-one correspondence between NXdata groups and the -corresponding NXdetector group. The NXdata group is stored within its -respective NXdetector group and linked to the NXentry. - -Example: - - - - - - - - - - - - - - - - -Proposal 4 ----------- - -There can be multiple NXdata groups for a single NXdetector group or -multiple NXdetector groups for a single NXdata item (e.g. to cope with -groups of different types of detectors). Detector ID's are used to -provide the link between the two. - -Example: - - - - - - - - - - - - - - - - -or - - - - - - - - - - - - - - - - -Criteria of a Good Solution ---------------------------- - -A proper solution should address the following: - -- Linking - should it be used as a method of saving space or carry - relational information (associating things). -- Grouping information into NXdetectors in a logical manner. For - example, an instrument may want to have a NXdetector for each bank, - or one for each panel, irrespective of how the NXdata is grouped. -- NXdata must be rectangular ( lxm or lxmxn so data that would be - grouped together in the analysis needs to be split up to conform to - the standard. How should the data be associated with each other. -- How do you properly deal with multi-dimensional detectors, i.e. - single ended tubes AND linear position sensitive detectors AND area - detectors all used in the same measurement. - -Update 01/2015 --------------- - -This page is very old. I cannot remember that this has been decided -upon. The current usage though is along the lines of proposal 2: -Multiple detectors give rise to multiple NXdetector and NXdata groups -with preferably the same name. NXdata is supposed to contain links to -the relevant data items required for a default plot. There can be -additional NXdata groups for special purposes. See also the description -of NXsubentry in the NeXus manual. - -The above is valid for raw data NeXus files. In processed data NeXus -files NXdata has a different meaning and contains the actual resulting -processed data. diff --git a/content/Containers_and_Inheritance.md b/content/Containers_and_Inheritance.md deleted file mode 100644 index 0febcb67..00000000 --- a/content/Containers_and_Inheritance.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Containers and Inheritance -permalink: Containers_and_Inheritance.html -layout: wiki ---- - -*Currently Under Construction - will be linked to the discussion page -when reviewed and completed* - -This page presents how neXus could benefit from an -object/container-orientated approach to its user defined instrument -definitions. By allowing base user definitions for components, datasets -from from full datasets can be expressed as a sum of components. - -The XSLT standard and XQuery are methods that can possibly realize the -extraction of data from one or more XML based neXus definition and -create a new neXus XML document as desired. - -Relationship between Inheritance and Containers in a neXus dataset ------------------------------------------------------------------- - -![](COP_neXus_slide1.PNG "COP_neXus_slide1.PNG") - -“Instrument” definitions can be assembled in a multitude of ways using -the neXus predefined classes. An instrument definitions are most often -is a superset of discrete components, with additional information which -that is general to all instrument definitions. The data contained in a -data set can be described via the “has a”/“is a” relationship -encountered in object orientated programming. - -Traits that are inherent to all data sets in the neXus format can be -inherited from a parent class. This would be an “is a” relation, as the -data set “is a” set of neXus data, and has such properties. - -A dataset is also a container, and thus contain small data subsets, -usually base neXus classes. This is a “has a” relationship, as a -container “has a” data subset. - ------------------------------------------------------------------------- - -![](COP_neXus_slide2.PNG "COP_neXus_slide2.PNG") - -What is of interest in this discussion is the “has a” relationship. A -parent data set acts as a container for many simpler datasets. If these -“subsets” are specified independently, a greater deal of compatibility -and standardization can be achieved between software written by vendors, -scientists and engineers working on different aspects of a project. - -XLST, Xquery, or a similar XML transform standard can be used to realize -this type of conversion in practice. - -user-defined component types can be shared amoung multiple experiment types ---------------------------------------------------------------------------- - -![](COP_neXus_slide3.PNG "COP_neXus_slide3.PNG") - -Independent component definitions allow vastly different experiments to -share common equipment or data, without having to redefine the data type -for each experiment. An equpiment or data library can have, in itself, a -standard format. - -User-defined components can be inherited by more specific user components -------------------------------------------------------------------------- - -![](COP_neXus_slide4.PNG "COP_neXus_slide4.PNG") - -Should additional data be needed for a more complicated equipment or -data library, it can inherent the previous definition, and add -additional information. This allows experiments that only require a -basic component definition to also use datasets that have additional -data appended. - ---[Greg Sonnenfeld](User%3AGreg_Sonnenfeld.html "wikilink") 15:22, 27 January -2007 (UTC) diff --git a/content/DLSraw.md b/content/DLSraw.md deleted file mode 100644 index 2c5cb0e5..00000000 --- a/content/DLSraw.md +++ /dev/null @@ -1,523 +0,0 @@ ---- -title: DLSraw -permalink: DLSraw.html -layout: wiki ---- - -\* --> Zero or many + --> One or more ? --> 0 or 1 - - - - - - - - - {Extended title for entry}? - - {unique identifier for the experiment, defined by the facility, possibly - linked to the proposals}? - - - {Number of run or scan stored in this entry}? - - - {}? - - - - - { Date of the public release of the data. (file_time + X years)} - - - { Revision id of the file due to re-calibration, reprocessing - new analysis, new instrument definition format, ... } - - - { Reason for the new revision. (e.g. first revision, re-calibration, ) } - - - - - {Name of entry DTD}? - - - {Name of entry DTD}? - - - {Name of entry DTD}? - - - - - {Starting time of measurement}? - - - {Ending time of measurement}? - - - {Duration of measurement (end_time - start_time)}? - - - {Time transpired actually collecting data i.e. taking out time when - collection was suspended due to e.g. temperature out of range}? - - - - - {information on the reliability/source of the information provided by - the experimenter. (e.g.: From proposal, updated at experiment time, ...} - - - - - {Keyword domain (e.g. chemistry, astronomy, ecology, ...)}? - - - {Keywords defined for this study}? - - - {A pointer to a reference work providing the definition of the - restricted vocabulary of which the keyword list is a subset}? - - - {Subject categorisations for this study}? - - - {Brief summary of the experiment, including key objectives}? - - - {Description of the full experiment (document in pdf, latex, ...)}? - - - {Special requirements of instrument}? - - - {List of publications related to the proposal}? - - - {Facility access type (normal, rapid access, program access, ...)}? - - - {Identifier of the funding grant}? - - - - - - {Name of program used to generate this file}? - - - {Name of command line used to generate this file}? - - - - - + - - {Descriptive name of the input data} - - - {Uniform Resource Identifier of the input data} - - - - - {Notes describing entry}? - - - {An small image that is representative of the entry.} {An example of - this is a 640x480 jpeg image automatically produced by a low resolution - plot of the NXdata.}? - - - - - 1+ - - {Name of user responsible for this entry} - - - {role of user responsible for this entry, comma separated list} - {Suggested roles are "local_contact", "principal_investigator", - "proposer", "experimenter", "funding_agency"} - - - {Affiliation of user}? - -

- {Address of user}? -
- - {Telephone number of user}? - - - {Fax number of user}? - - - {Email of user}? - - - {Facility based unique identifier for this person e.g. their - identification code on the facility address/contact database, - should allow owner identification by the archive system.} - - - {Affiliation unique identifier.}? - - - - - - - {Descriptive name of sample} - - - {Sample identifier} - - - {The chemical formula specified using CIF conventions.}{Abbreviated - version of CIF standard: - 1. Only recognized element symbols may be used. - 2. Each element symbol is followed by a 'count' number. A count - of '1' may be omitted. - 3. A space or parenthesis must separate each cluster of (element - symbol + count). - 4. Where a group of elements is enclosed in parentheses, the - multiplier for the group must follow the closing parentheses. That - is, all element and group multipliers are assumed to be printed as - subscripted numbers. - 5. Unless the elements are ordered in a manner that corresponds to - their chemical structure, the order of the elements within any group - or moiety depends on whether or not carbon is present. If carbon is - present, the order should be: C, then H, then the other elements in - alphabetical order of their symbol. If carbon is not present, the - elements are listed purely in alphabetic order of their symbol. This - is the 'Hill' system used by Chemical Abstracts.} - - - {Description of the sample}? - - - {20 character fixed length sample description for legends}? - - - - - {Sample temperature.}? - - - {Applied electric field}? - - - {Applied magnetic field}? - - - {External stress}? - - - {Applied pressure}? - - - - - - - - {Name of instrument} - - - - {Name of source}? - - - "Spallation Neutron Source"|"Pulsed Reactor Neutron Source"| - "Reactor Neutron Source"|"Synchrotron X-ray Source"| - "Pulsed Muon Source"|"Rotating Anode X-ray"|Fixed Tube X-ray" - - - neutron|x-ray|muon|electron? - - - - {Effective distance from sample}{Distance as seen by radiation from - sample. This number should be negative to signify that it is upstream - of the sample.}? - - - {Source power}? - - - {Accelerator current}? - - - {Accelerator voltage}? - - - {any source/facility related messages/events that occurred during the - experiment}? - - - {synchrotron operating mode}{"Single Bunch"|"Multi Bunch"}? - - - {Is the synchrotron operating in top_up mode}? - - - {"Engineering" location of source}? - - - - - - - {critical energy}? - - - {bending radius}? - - - {spectrum of bending magnet}? - - - {"Engineering" position of bending magnet}? - - - - - - {"undulator"|"wiggler"|...}? - - - {gap}? - - - {taper}? - - - {phase}? - - - {number of poles}? - - - {length of insertion device}? - - - {total power delivered by insertion device}? - - - {energy of peak}? - - - {bandwidth of peak energy}? - - - {harmonic of peak}? - - - {spectrum of insertion device}? - - - {"Engineering" position of insertion device}? - - - - - + - - {value of motor - need [n] as may be scanned} - - - {Hardware device record, e.g. EPICS process variable, taco/tango ...} - - - - - 1+ - - {Data values} - - - {Data values} - - - {name/manufacturer/model/etc. information}? - - - - "He3 gas cylinder"|He3 PSD"|"He3 planar multidetector"| "He3 curved multidetector"| - "multi-tube He3 PSD"|"BF3 gas"|"scintillator"|"fission chamber"|"CCD"|...? - - - - {Identifier for detector}? - - - {offset from the detector center in x-direction}? - - - {offset from the detector center in the y-direction}? - - - {Size of each detector pixel. If it is scalar all pixels are the same size}? - - - {Size of each detector pixel. If it is scalar all pixels are the same size}? - - - - - {Distance}? - - - {Polar Angle}? - - - {Azimuthal Angle}? - - - {Position and orientation of detector element}? - - - {translation normal to direct beam}? - - - {Solid angle subtended by the detector at the sample}? - - - - {Detector dead time}? - - - {Delay in detector registering an event}? - - - {Detector gas pressure}? - - - {maximum drift space dimension}? - - - - {Crate number of detector}? - - - {Slot number of detector}? - - - {Input number of detector}? - - - - - {Efficiency of detector with respect to e.g. wavelength}? - - - {date of last calibration (geometry and/or efficiency) measurements}? - - - {summary of conversion of array data to pixels (e.g. polynomial approximations) and location of details of the calibrations}? - - - - - - - - 1+ - - - {Data Values}? - - - {Standard deviations of data values - the data array is identified by the attribute signal="1". This array must have the same dimensions as the data}? - - - {Dimension scale defining an axis of the data}? - - - {Errors associated with axis "variable"}? - - - - - - - - diff --git a/content/Design_Issues.md b/content/Design_Issues.md deleted file mode 100644 index cf91cf1f..00000000 --- a/content/Design_Issues.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Design Issues -permalink: Design_Issues.html -layout: wiki ---- - -If you have a specific subject concerning the NeXus format design, -please add it to the following list and start a new page (see the [help -pages](Help:Contents.html "wikilink") for instructions on adding new pages). -If you want others to participate, you should announce the new -discussion on the [NeXus Mailing -List](http://lists.nexusformat.org/mailman/listinfo/nexus). - -Current Discussions -------------------- - -- Structure of NeXus files - basic questions: - - [Objects or Interfaces](Objects_or_Interfaces.html "wikilink") - - [How to avoid name clashes during future extensions of the Nexus - standard](How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html "wikilink") -- Geometry questions: -- Data - - [Associating Axes with - Data](Associating_Axes_with_Data.html "wikilink") -- [Thumbnails for Nexus files](Thumbnails_for_Nexus_files.html "wikilink") -- [file\_id attribute for Nexus - files](file_id_attribute_for_Nexus_files.html "wikilink") -- [Scaled Data](Scaled_Data.html "wikilink") -- [NXmonochromator and - inheritance](NXmonochromator_and_inheritance.html "wikilink") - -Coma Discussions ----------------- - -These are issues which have not been attended too for a long time. - -- [Containers and - Inheritance](Containers_and_Inheritance.html "wikilink") - XLST and - Reusable definitions -- [Units](Units.html "wikilink") - -Closed Discussions ------------------- - -- [NXaperture and Slits](NXaperture_and_Slits.html "wikilink") - - implemented in form of NXslit and NXpinhole -- [Multi Method Instruments](Multi_Method_Instruments.html "wikilink") - - implemented in form of NXsubentry -- [Object oriented NeXus](OO-NeXus.html "wikilink") -- [2014\_How\_to\_find\_default\_data](2014_How_to_find_default_data.html "wikilink") - - a proposal for the 2014 NIAC meeting -- [Proposal: NeXus - Coordinates](Proposal_NeXus_Coordinates.html "wikilink") -- [Coordinate Systems](Coordinate_Systems.html "wikilink") -- [Extension of NeXus Coordinate - Systems](Extension_of_NeXus_Coordinate_Systems.html "wikilink") -- [Indirect Time-of-Flight and - Coordinates](Indirect_Time-of-Flight_and_Coordinates.html "wikilink") -- [NXgeometry and NXshape - documentation and - review](NXgeometry_and_NXshape_-_documentation_and_review.html "wikilink") -- [Detector Geometry](Detector_Geometry.html "wikilink") -- [Update for NXflou application - definition](Update_for_NXflou_application_definition.html "wikilink") -- [NeXus CIF Integration](NeXus_CIF_Integration.html "wikilink") - - [ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") -- [Connecting NXdata to - NXdetector](Connecting_NXdata_to_NXdetector.html "wikilink") -- [Double Linking](Double_Linking.html "wikilink") -- [NXmeasurement](NXmeasurement.html "wikilink") -- [Proposal: NeXus Errors](Proposal:_NeXus_Errors.html "wikilink") -- [Storing Event Data](Storing_Event_Data.html "wikilink") -- [NXdetector documentation](NXdetector_documentation.html "wikilink") diff --git a/content/Detector_Geometry.md b/content/Detector_Geometry.md deleted file mode 100644 index 14201659..00000000 --- a/content/Detector_Geometry.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Detector Geometry -permalink: Detector_Geometry.html -layout: wiki ---- - -Issue ------ - -Defining the location of a detector, or any generic object, is -potentially challenging. It needs to be agreed upon how to define the -location of an object, specifically detectors, and their phsyical -extent. Proposals should be able to define a position unambigiously in a -way that is easily interpreted by analysis and plotting software. - -Proposal: McStas ----------------- - -Taken from the McStas manual p45: - -The instrument is given a global, absolute coordinate system. In -addition, every component in the instrument has its own local coordinate -system that can be given any desired position and orientation (though -the position and orientatino must remain fixed for the duration of a -single simulation). By convention, the z axis points in the direction of -the beam, the x axis is perpendicular to the beam in the horizontal -plane pointing left as seen from the source, and the y axis points -upwards (see figure 5.1). Nothin in McStas enforces this convention, but -if every component used different conventions the user would be faced -with a severe headacha! It is therefore recommended that this convention -is followed by users implementing new components. - -Proposal: Vitess ----------------- - -### Determined from a figure on p6 - -The x axis points in the direction of the beam, the z axis up, and the y -axis to the left while facing down-stream to complete the right handed -coordinate system. - -### Determined from a figure on p22 - -Orientation is given by two angles which define a component's normal -direction. phi is the angle between the x axis and the normal, projected -onto the xy plane. theta is the angle between the xy plane and the -normal. This does assume that a normal direction is well defined. - -[Peter Peterson](User%3APfpeterson.html "wikilink") Thursday, 28 August 2003, -12:04:51 pm - -Conclusion ----------- - -01/2015 This got nowhere. It is also now obsolete as NIAC is under the -impression that the CIF-style coordinate description allows us to define -the position and orientation of detector elements in space in an -adequate and exact way. diff --git a/content/Download.md b/content/Download.md deleted file mode 100644 index 6826cdf3..00000000 --- a/content/Download.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Download -permalink: Download.html -layout: wiki ---- - -> Note: -> The use of the NeXus-API (NAPI) is **not** mandatory in order to write perfectly valid NeXus files. -> Using a direct binding to HDF5 (like h5py) or [NeXpy](NeXpy.html) should be a better choice for new projects. - - -The NeXus API is distributed under the terms of the GNU Lesser General -Public License. - -Requirements ------------- - -### External Libraries - -Since NeXus uses HDF as the main underlying binary format, it is -necessary first to install the HDF subroutine libraries and include -files before installing the NeXus API. It is not usually necessary to -download the HDF source code since precompiled object libraries exist -for a variety of operating systems including Windows, Mac OS X, Linux, -and various other flavors of Unix. Check the HDF web pages for more -information: - -- - -The NeXus API also supports using XML as the underlying on-disk format. -This uses the Mini-XML library, developed by Michael Sweet, which is -also available as a precompiled binary library for several operating -systems. Please ensure that you install version 2.2.2 or later. Check -the Mini-XML web pages for more information: - -- - -NeXus Source Code Distribution ------------------------------- - -The source code distribution can be obtained from GitHub. One can either -checkout the git repositories to get access to the most recent -development code. To clone the definitions repository use - -` git clone `[`https://github.com/nexusformat/definitions.git`](https://github.com/nexusformat/definitions.git)` definitions` - -or for the NAPI - -` git clone `[`https://github.com/nexusformat/code.git`](https://github.com/nexusformat/code.git)` code` - -For release tarballs go to the release page for the -[NAPI](https://github.com/nexusformat/code/releases) or the -[definitions](https://github.com/nexusformat/definitions/releases). For -the definitions it is recommended to work on the current git repository -as the available release is outdated. - diff --git a/content/Extension_of_NeXus_Coordinate_Systems.md b/content/Extension_of_NeXus_Coordinate_Systems.md deleted file mode 100644 index 167b1f69..00000000 --- a/content/Extension_of_NeXus_Coordinate_Systems.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Extension of NeXus Coordinate Systems -permalink: Extension_of_NeXus_Coordinate_Systems.html -layout: wiki ---- - -Extension of the NeXus Coordinate Systems ------------------------------------------ - -This suggestion results from comparing imageCIF with NeXus. Ideally we -should be able to make a mapping from CIF to NeXus. Unfortunately, NeXus -had some weaknesses in coordinate systems (addressed by this proposal) -and scaled data. Please note, that this proposal extends in what we -already do in NeXus and does not invalidate earlier efforts. - -The CIF way of specifying axis is far more accurate then what we do with -NeXus. Thus the suggestion is to align NeXus with the well thought out -CIF scheme. This section consists first of a discussion of the CIF axis -system and then of suggestions how to use this within NeXus. - -CIF uses a coordinate system which is similar to the McStas coordinate -system which NeXus uses at its bottom. Just the orientation of the -Z-axis differs. The description of any given axis in CIF consists of -three elements: - -- The type of the axis. This can be translation or rotation -- The axis vector. This is the direction of a translation or the - vector around which the axis rotates. -- The axis offset. The offset to the base of the rotation or - translation. If this is not given 0,0,0 is assumed. - -CIF also describes in which order transformations have to be applied to -get a component into its final position from its zero position. In CIF -this is done by chaining axis through the depends attribute. - -This scheme is a generalisation of the methods used commonly in -crystallography. There a crystal is brought into scattering position by -applying a series of rotations. Please note that order is important! - -### Axis Suggestions for NeXus - -1) NeXus stays with the McStas coordinate system. - -2) NeXus uses the vector and offset scheme to document existing NeXus -axis. The base of all operations is always the component, if not -specified by an offset vector. Rotations are in degree, translations in -milimetre. - -Some examples: - -- rotation\_angle has a vector 0 1 0, rotation around Y -- azimuthal\_angle is a rotation around Z, vector = 0 0 1 -- polar\_angle is also a rotation around Y, vector 0 1 0, but as the - rotation axis is with the previous component upstream, we have an - offset of 0 0 -distance - -In NXsample we additionally have: - -- chi is a rotation around Z, vector 0 0 1 -- phi is a rotation around Y, vector 0 1 0 -- kappa, for kappa the vector attribute has to be given as there are - kappa goniometres with different values of kappa. - -3) Each NeXus component can have an additional field with the name -transform. This contains a komma separated list of the operations -required to place the component at its position in the instrument. The -formula is: - - Xcurrent = op1*op2....*opn * X0 - -with transform becoming: op1,op2,....,opn Names of operations are the -names of the axis to apply. Unqualified names relate to axis in the same -group. In order to refer axis outside the current group, full path names -must be given. Storing this separatly in a transform field gives direct -access whereas the CIF depends system requires a lot of searches to -reconstruct the sequence of transforms. This is why I like transform -better. - -In this description, our NeXus polar coordinate system has the -transform: - - azimuthal_angle, polar_angle - -This is also the default if the transform field is missing. - -4) NeXus strongly prefers to use the NeXus simple coordinate system with -polar\_angle and azimuthal\_angle as describe above. This description -has the advantage that polar\_angle is always two theta. - -5) With the vector/offset scheme arbitrary axis can be stored in NeXus. -The rule then is that type, vector and offset have to be specified as -attributes. Type is NX\_CHAR, vector and offset are of dim 3 and type -NX\_FLOAT. We need these attributes anyway as there are angles such as -kappa, which differ in their rotation axis between instruments. - -6) NeXus is missing a rotation around the X axis. As we already bought -into quite lyrical names for rotation axis I suggest aequatorial\_angle -as a name for this. - -7) Consequently, as NeXus does not have fields for describing -translations, except in Nxgeometry, I suggest to add x\_translation, -y\_translation and z\_translation fields to each component. I choose to -suggest separate fields for the translations as they frequently map to -dedicated motors. Please note that all angles have to be 0 if you were -to determine the operation of any given translation motor. - -8) The orientation field in NXgeometry receives the same meaning as -vector in axis descriptions. With vector being aligned with the main -axis of the component. - -9) NXgeometry stays as is as a means to describe shapes, engineering -coordinates of orientations of components. - -Conclusion ----------- - -01/2015: CIF style coordinate system descriptions have been ratified by -NIAC in 2012. The ratified version differs in many details, but not in -the approach, from the material on this page. Please consult a recent -copy of the NeXus manual for an update to date description of NeXus -coordinate descriptions. diff --git a/content/FAQ.md b/content/FAQ.md deleted file mode 100644 index e2c60d65..00000000 --- a/content/FAQ.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: FAQ -permalink: FAQ.html -layout: wiki ---- - -This is a list of commonly asked questions concerning the NeXus data -format. If you wish to suggest any more questions to include on this -page, please visit the [discussion page](Talk:FAQ.html "wikilink") and add an -entry. - -How many facilities use NeXus ------------------------------ - -This is continually evolving. It has been used as the instrument format -for several years on some or all instruments at a number of facilities -including PSI (Switzerland), LLB (France), LANSCE (USA), and APS (USA). -It will be used on all future instrumentation at ISIS (UK), NIST (USA), -ANSTO (Australia) and was used by instruments using the new data -acquisition system at IPNS (USA). Finally, it has been formally adopted -by major facilities under construction, the SNS (USA), JPARC (Japan) and -Diamond Light Source (UK). For more information see the -[Facilities](Facilities.html "wikilink") page. - -NeXus files are only useful for archiving instrumental data, aren't they? -------------------------------------------------------------------------- - -NeXus files can be used to store both extremely simple data, e.g. a -single (x,y) array, and highly complex instrument descriptions. In fact, -the original intention of the NeXus data format was to provide a way of -interchanging data between facilities and their user communities. -However, the power of NeXus hierarchical design has led to its adoption -as a standard archiving format by several major facilities, such as -ISIS, LANSCE, and the SNS. - -Why aren't NXsample and NXmonitor groups stored in the NXinstrument group? --------------------------------------------------------------------------- - -A NeXus file can contain a number of NXentry groups, which may represent -different scans in an experiment, or sample and calibration runs, etc. -In many cases, though by no means all, the instrument has the same -configuration so that it would be possible to save space by storing the -NXinstrument group once and using multiple links in the remaining -NXentry groups. It is assumed that the sample and monitor information -would be more likely to change from run to run, and so should be stored -at the top level. - -How do I identify the plottable data? -------------------------------------- - -Any program whose aim is to identify plottable data should use the -following procedure: - -1. Open the first top level NeXus group with class NXentry. -2. Open the first NeXus group with class NXdata. -3. Loop through NeXus data items in this group searching for the item - with attribute “signal” =1. This is the plottable data. -4. Check to see if this data item has an attribute called “axes”. If - so, the names are defined as a comma-delimited string within this - attribute in the C-order of the data array, and you can skip the - next two steps. -5. If the “axes” attribute is not defined, search for the - one-dimensional NeXus data items with attribute “primary” = 1. - \#These are the dimension scales to label the axes of each dimension - of the data. -6. Link each dimension scale to the respective data dimension by the - “axis” attribute (= 1,2,...,rank of data). -7. If necessary, close the NXdata group, open the next one and repeat - steps 3 to 6. -8. If necessary, close the NXentry group, open the next one and repeat - steps 2 to 7. - -Consult the NeXus API section, which describes the routines available to -program these operations. In the course of time, generic NeXus browsers -will provide this functionality automatically. - -Why are the NeXus classes so complicated? I'll never store all that information -------------------------------------------------------------------------------- - -The NeXus classes are essentially glossaries of terms. If you need to -store a piece of information, consult the class definitions to see if it -has been defined. If so, use it. However, it is not compulsory to -include every item that has been defined if it is not relevant to your -experiment. On the other hand, if there is an NeXus definition for your -instrument, you are recommended to include all the compulsory items if -you want to use standard software to analyze your data. - -I want to produce an instrument definition. How do I go about it? ------------------------------------------------------------------ - -The first thing is to check whether the instrument you are interested in -is already being defined by an instrument editor. Check the list on the -NeXus Instruments page. The [NeXus International Advisory -Committee](NIAC.html "wikilink") is responsible for appointing editors of -special interest groups that wish to become a part of the standard, so -contact the [Executive Secretary](NIAC.html "wikilink"), if a group does not -yet exist. Of course, if you want to produce your own private definition -for personal use, you are free to do so without our approval although we -encourage people to share what they are doing . If you are an editor, -the process of defining an instrument should be quite simple: - -1. Make sure that the data you wish to analyze are stored in NXdata - groups. The rest of the definition is to supply what is necessary - for simple analysis of the data, for example, the detector positions - and incident wavelength for a x-ray powder diffraction measurement. -2. Study the base classes to decide which ones are essential for your - definition. If you believe that a new base class is needed, contact - the NIAC with a proposal. -3. Select those data items and groups that you consider important in - analyzing data from your instrument. - -Insert the relevant grep character, as defined in the [NeXus Meta-DTD -format](Metaformat.html "wikilink") to denote the number of occurrences. If -the item is optional (“?” or “\*”), then it does not need to be added to -your definition. - -1. If you encounter any problems because the classes are not sufficient - to describe your configuration, please contact the NIAC Executive - Secretary explaining the problem, and post a suggestion at the - relevant class wiki page. The NIAC is always willing to consider - proposals to amend the base classes. The procedures are defined in - the NIAC constitution. - -What coordinate system does NeXus use? --------------------------------------- - -This is described on the -[Coordinate\_Systems](Coordinate_Systems.html "wikilink") page diff --git a/content/Facilities.md b/content/Facilities.md deleted file mode 100644 index 96310ce1..00000000 --- a/content/Facilities.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Facilities -permalink: Facilities.html -layout: wiki ---- - -Status of NeXus adoption by facility type. As it is very difficult to -keep the information here current, this page will always at least -partially be out of date. Please send any updates to the [mailing -list](https://manual.nexusformat.org/mailinglist.html). - -### Pulsed Muon Facilities - -**ISIS Muon Facility, STFC Rutherford Appleton Laboratory, UK**: The [ISIS facility](https://www.isis.stfc.ac.uk/) has been producing and using NeXus files on its [muon spectrometers](https://www.isis.stfc.ac.uk/Pages/Muon-spectroscopy.aspx) for many years now (see [Muon\_Time\_Differential](Muon_Time_Differential.html "wikilink") definition). The current definition is in the process of being updated to allow it to store more complex experiments and also to make it more similar to the [TOFRaw](TOFRaw.html "wikilink") definition used on the ISIS neutron instruments. - -### X-ray Facilities - -**Advanced Photon Source, Argonne National Laboratory, US**: (2015) APS stores some of its data collection in HDF5 files according to different formats, including NeXus. These files are written using either C++ code with HDF5 libraries or python code using the h5py package. No beam lines use the NAPI in their own code. The [EPICS](http://www.aps.anl.gov/epics) area detector software has two plug-ins that can write acquired images (and metadata) into NeXus data files. The **HDF5** file writer plug-in uses the HDF5 C/C++ library interface and a user-supplied template file to write NeXus data files. The **NeXus** file writer plug-in uses the NAPI. Note there are plans to deprecate the **NeXus** plug-in in favor of the more generic **HDF5** plug-in. Also, some commercial manufacturers of area detectors in use at the APS now write acquired images into NeXus data files. - - - -**Diamond Light Source, Oxfordshire, UK**: The data acquisition system [GDA](http://www.opengda.org/) deployed at most [Diamond](http://www.diamond.ac.uk) beamlines is capable of writing and reading NeXus. In general beamlines coming online now collect data in NeXus/HDF5 as the primary format from day one. Some existing beamlines have already been migrated, more are following on a case by case basis. It is aimed that all data will be contained in NeXus for long term archiving. - - - -**European Synchrotron Radiation Facility, ESRF, FRANCE**: The [ESRF](http://www.esrf.eu) is planning on moving to use Nexus/HDF5 for storing all raw data as part of the ambitious [ESRF upgrade program](http://www.esrf.eu/Upgrade). The adoption of Nexus/HDF5 is planned over the time period 2009 to 2012. Currently (2009) the ESRF is actively exploring Nexus and HDF5 to see what the technical implications are for data acquisition and analysis programs. The plan is to where possible adapt data analysis to directly read data generated by data acquisition programs in Nexus/HDF5 format. The current experience shows that Nexus alone is not sufficient and extensions to the standard are required. The extensions are being implemented directly in HDF5. - - - -**Alba Synchrotron Light Facility, Spain**: [Alba](http://www.cells.es) uses NeXus with HDF5 backend as its main format for storing data on all its beamlines (although scan data may also be duplicated in other formats such as [SPEC](http://www.certif.com/spec_manual/user_1_4_1.html) for convenience). NeXus files are normally created by the [Sardana](http://sardana-controls.org) control system. Currently (2014) only NXscan (and recently NXtomo) compliant files are created in production, although introduction of other Application Definitions is being tested. - - - -**SLS, [Paul Scherrer Institut](http://www.psi.ch/), Switzerland**: The [Swiss Light Source](http://www.psi.ch/sls/) is considering NeXus at some beamlines. The PolLux STXM beamline has been developing and using new control software since late 2012 which records all data in NeXus/HDF5 format. This STXM control software (and the NeXus format with it) is propagating to a number of other STXM beamlines around the world. The SLS is encouraging Dectris to have their new detectors (e.g. Eiger) record data in an HDF5 format in order to ease further adoption of NeXus. - -### Neutron Scattering Facilities - -**ISIS Neutron Facility, STFC Rutherford Appleton Laboratory, UK**: Instruments on the [ISIS second target station](https://www.isis.stfc.ac.uk/) are now generating NeXus files as per the [TOFRaw](TOFRaw.html "wikilink") definition in parallel with old ISIS RAW format files. Currently most data analysis is carried out using the ISIS RAW files, but the new [Mantid data analysis framework](http://www.mantidproject.org/) supports [TOFRaw](TOFRaw.html "wikilink") NeXus files and is being increasingly used. The long term goal is to entirely replace the old ISIS RAW file format on both the first and second target stations with NeXus files; the rate determining step for this is the updating of data analysis code to read NeXus files. - - - -**Lujan Neutron Scattering Center, [Los Alamos National Laboratory](http://lansce.lanl.gov/lujan), USA**: The Lujan Center is generating NeXus files on all instruments. We are in the process of making the files consistent with the emerging standards, especially [TOFRaw](TOFRaw.html "wikilink"). The facility hosts about 65,000 NeXus files and the number is growing. - - - -**Materials and Life Science Facility, [J-PARC](http://www.j-parc.jp/index-e.html), Japan**: In FY2008, we have successfully received first proton beam and produced pulsed neutron and muon beam at Materials and Life Science Facility (MLF) in J-PARC (http://www.j-parc.jp/index-e.html). Histogrammed data converted from event-format data and analyzed data are stored in NeXus data format with metadata, and NeXus is common and shared data format among neutron scattering instruments and scientists in MLF. NeXus C-API is utilized through Manyo-Library which is the data analysis framework for neutron scattering experiments. Data analysis softwares for each instrument have been developed with C++ and python on Manyo-Library. - - - -**Bragg Institute, [Australian Nuclear Science and Technology Organisation](http://www.ansto.gov.au/research/bragg_institute), Australia**: We are currently writing NeXus files in HDF5 on 5 out of 7 instruments, including Small Angle, Reflectometer, Powder Diffaction and Residual Stress. NeXus is not being used on Triple Axis and Single Crystal Diffraction. The next wave of instruments will be predominantly NeXus. - - - -**Institut Laue Langevin [ILL](http://www.ill.eu), Grenoble France**: As of 2008-2009, the ILL has 2 instruments that generate NeXus/HDF5 files as base format: the Disk chopper time-of-flight cold neutrons spectrometer IN5 [IN5](http://www.ill.fr/in5) and Time of Flight Neutron Spectrometer for Small Angle Inelastic themal neutron Scattering BRISP [BRISP](http://www.ill.fr/brisp). Volume of data (Gb's) is substantially higher than what we used to have at the ILL before - because of large PSD detectors - and NeXus was then the only sensible choice for storage. We then use [LAMP](http://www.ill.eu/instruments-support/computing-for-science/cs-software/all-software/lamp/), and Matlab tools (incl. Mslice from Oxford/ISIS) to read and convert data sets. [McStas](http://www.mcstas.org) is also used to model these instruments, and may also generate NeXus files. - - - -**Spallation Neutron Source [SNS](http://neutrons.ornl.gov/), Oak Ridge, TN, USA**: SNS is using [TOFRaw](TOFRaw.html "wikilink") for storing histogram based data from all instruments. We are working towards storing the raw event data in NeXus instead as the data acquisition saves data in that form already. - - - -**SINQ, [Paul Scherrer Institute](http://www.psi.ch), Switzerland**: At SINQ most data files are stored in NeXus format, as of January, 5, 2009 1104153 files were collected. As PSI pioneered NeXus file writing, most files do not adhere to the newest standards for NeXus files anymore. This will be rectified as soon as more progress on application definitions has been made. - - - -**Neutronenquelle Heinz Maier-Leibnitz [FRM II](http://www.frm2.tum.de), Germany**: Introduction of NeXus is under discussion since long; as of 2011, NeXus is used by zero (0) instruments. - - - -**European Spallation Source [ESS](http://www.europeanspallationsource.se), Sweden**: Current plans foresee all raw data to be stored in NeXus. Processed data is set to follow that model. diff --git a/content/File_id_attribute_for_Nexus_files.md b/content/File_id_attribute_for_Nexus_files.md deleted file mode 100644 index 23a9febb..00000000 --- a/content/File_id_attribute_for_Nexus_files.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: File id attribute for Nexus files -permalink: File_id_attribute_for_Nexus_files.html -layout: wiki ---- - -In its current definition of `NXroot` no attribute is provided to hold a -unique ID for a file. Though there is one for the filename, this might -not be unique and can change over time. Several facilities are planning -to store files on large storage systems to which access is provided not -only via a file system but also via web applications. The latter ones -typically rely on a database holding an index of the files on the -storage. In such cases a file on the storage system is typically -associated with an ID which acts as a primary key for the file. -Currently this ID is only stored in the database. Thus if the names or -locations of files on the storage system change there is no way to -rebuild the map between IDs and files. - -I thus suggest to add an attribute `file_id` to the `NXroot` class which -allows facilities to store such a unique key for a file directly to the -Nexus file. The other ID values available are related to a particular -instance of `NXentry` and are thus not feasible to identify a file. In -particular if several instances of `NXentry` are stored in a single file -(this would make sense for archiving purposes as tape libraries can -usually handle large files much better than very small ones). - - NXroot (base class, version 1.0) - @NX_class - @file_time - @file_name - @file_update_time - @NeXus_version - @HDF_version - @HDF5_Version - @XML_version - @creator - @file_id - NXentry - -The `file_id` attribute should be of type `NX_CHAR`. diff --git a/content/GenericScan.md b/content/GenericScan.md deleted file mode 100644 index d3e56efa..00000000 --- a/content/GenericScan.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: GenericScan -permalink: GenericScan.html -layout: wiki ---- - -Generic Scan Instrument ------------------------ - -This is a DTD for an example generic instrument which performs scans. -This example is for an omega-two-theta (rotation\_angle polar\_angle in -NeXus notation) scan and serves to highlight NeXus scan data storage -principles: - -- Assume np to be the number of scan points -- Variable data (such as motors) which can vary during the scan are - stored as arrays of length np at their proper place in the - NXinstrument hierarchy. -- In NXdata links to all varied positions and the dectector counts are - created. This provides for easy access to the popular table format - for scans. -- In the case of multi dimensional detectors, the PSD data must be - stored with the scan variable being the fastest varying - dimension(the first) for technical reasons. -- If you to choose to store PSD scans in separate files or separate - entries, it is the users responsibility to process the data in the - right order. - - - - - - - - + - {Extended title for entry} - - {Descriptive name of sample} - {Type of sample environment} - - {polar_angle to monochromator} - - - { sample rotation} - - - - {name of instrument} - - {name of facility} - - "Reactor" - {reactor power} - - - - {wavelength at each scan position} - - - - - {Detector counts for each scan position} - - - {polar angle for each scan position} - - - - - monitor | timer - - {preset value for monitor or timer} - - - {Monitor counts for each scan position} - - - - - {Link to detector counts} - - - {Link to detector polar_angle} - - - {Link to sample rotation_angle} - - - - diff --git a/content/Group_Attributes.md b/content/Group_Attributes.md deleted file mode 100644 index 2b1fc605..00000000 --- a/content/Group_Attributes.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Group Attributes -permalink: Group_Attributes.html -layout: wiki ---- - -### Group Attributes Implementation - -At the last NIAC meeting we decided that group attributes shall be -implemented for NAPI-4.0. I now looked into this. As recent versions of -HDF4 now also support group attributes, the implementation is not a big -problem. However there is one issue: - -The most logical approach would be to modify NXputattr, NXgetattr, -NXgetnextattr etc. to do group attributes. But this changes the way the -NeXus-API works in a subtle and incompatible way: Now the NeXus-API -writes a file global attribute when no dataset is open. After the -change, file global attributes would only be written at root level, else -group attributes would be written when no dataset is open. This can -break older code. Or we can keep the way the API works and introduce a -new set of functions for handling group attributes. - -So we have two choices: - -- Use the existing NX attribute functions and introduce a subtle - version incompatibility -- Define new functions for group attributes. - -I am in favour of the first solution because it prevents API-bloat. But -what does everyone else think? - -Mark Koennecke, January, 6, 2006 - -Decided: february, 3, 2006, we go with the incompatible change diff --git a/content/Hierarchy.gif b/content/Hierarchy.gif deleted file mode 100644 index 0d07caadd5bcdc5d08a26a81d280c9fdfcc8907e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19613 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 z 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 G0suQvGKPHs diff --git a/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.md b/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.md deleted file mode 100644 index cfc767e2..00000000 --- a/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: How to avoid name clashes during future extensions of the Nexus standard -permalink: How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html -layout: wiki ---- - -The Problem ------------ - -The current standard allows users to use any name they want for fields -and groups within base classes. This can cause troubles for future -extensions of the standard. Consider the simple case where a user has -chosen a name for a field within a base class which is not used by the -current standard. What will happen when the NIAC decides 3 years later -that this name will be used for a new standard field in the same base -class. This is in particular problematic if the new field has an -entirely different semantics as the one the user had in mind when he -created its own field. - -There are three possible approaches to avoid this problem - -- every user defined field must start with a particular prefix -- use strong typing not only for groups but also for fields -- store all non-standard fields in an instance of NXcollection - -Each of these approaches has its pros and cons which should be discussed -in this article. - -Question: I readily agree that there is a potential problem. But what -does it tell us that we needed 20 years to discover it? MK - -Prefixes for user defined names -------------------------------- - -The most obvious way would be to add a prefix to a field in order to -distinguish standard- from user-defined fields. For instance we could -require users to prefix their own fields with - -`user__` - -so a user defined angle would have a name like - -`user__tth` - -### Pros - -:\* easy to implement -- a paragraph in the documentation would suffice - -### Cons - -:\* it is virtually impossible to force users to stick to this -convention - -:\* every field name must be parsed before we can tell whether it is a -standard or a user defined field - -:\* users hardly ever read a manual that careful to recognize such a -convention - -Strong typing for fields ------------------------- - -A type could be added to each field by adding an attribute like -*NX\_class* for groups. Indeed we could reuse *NX\_class* for fields. -Such an approach might makes names entirely arbitrary as we search for -fields by type rather than by name (as we are doing it for groups). - -### Pros - -### Cons - -- We break heavily with NeXus: the dictionary is part of NeXus -- All searches would need to be for type. Types which are encoded in - attributes. This becomes only practical with a special tool. Do we - like special tools? Given our limited resources to maintain them? - -Using of NXcollection ---------------------- - -The third approach is to make more extensive use of *NXcollection*. -Every field or group which is not defined by the standard will be stored -in an instance of *NXcollection*. - -### Pros - -:\* like the prefix approach this is easy to do - just add a section in -the documentation - -:\* no need to invent new concepts as *NXcollection* already exists - -:\* could use *NXcollection* as a kind of staging area for future class -extensions - -### Cons - -:\* add an additional hierarchy to the Nexus tree - -:\* need to define standard name for instances of *NXcollection* to -avoid future name clashes with the collection instance itself diff --git a/content/IndirectDiscuss.md b/content/IndirectDiscuss.md deleted file mode 100644 index 979b3e77..00000000 --- a/content/IndirectDiscuss.md +++ /dev/null @@ -1,364 +0,0 @@ ---- -title: IndirectDiscuss -permalink: IndirectDiscuss.html -layout: wiki ---- - -This file is from the old SWIKI and a starting point for discussion ... -the idea is to come up with a definition based on inheritance from other -definitions such as [TOFRaw](TOFRaw.html "wikilink") - - - NXtofnigs.xml - - - - - {Name of instrument} - - - - - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of target along beam path} - {Optional description/label}? - {Sequential order of component along beam path}? - - - - - - {"Engineering" position of moderator}? - {Effective distance as seen by measuring radiation}? - - { "H20" | "D20" | "Liquid H2" | "Liquid CH4" | "Liquid D2" | "Solid D2" | "C" |"Solid CH4" | "Solid H2"}? - {Poison depth}? - {whether the moderator is coupled}? - { Gd | Cd |...} - {average/nominal moderator temperature} - {log file of moderator temperature} - {moderator pulse shape} - - {Position and orientation of moderator}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of moderator along beam path} - - - - - - * - - - {} - {} - {Reflectivity as function of wavelength [nsurf,i]} - {} - {} - "vacuum"|"helium"|"argon" - {external material outside substrate} - {} - {} - {} - {} - {} - {} - {number of substrate sections} - - {Position and orientation of guide}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of guide along beam path} - - - - - ? - - - - * - - {Chopper type single|contra_rotating_pair|synchro_pair}? - {chopper rotation speed}? - {Number of slits} - {angular opening} - {disc spacing in direction of beam}? - {radius to centre of slit} - {total slit height} - {chopper phase angle}? - {pulse reduction factor of this chopper in relation to other choppers/fastest pulse in the instrument}? - {Effective distance to the origin}? - {low and high values of wavelength range transmitted}? - - {Position and orientation of chopper}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of chopper along beam path} - - - - * - {Absorbing material of the aperture}? - {Description of aperture}? - - {Position and orientation of aperture}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of aperture along beam path} - - - - - + - "Fission Chamber"|"Scintillator"? - "monitor"|"timer"? - {preset value for time or monitor}? - {Distance of monitor from sample position}? - {Monitor efficiency as a function of wavelength}? - {Proportion of incident beam sampled by the monitor} - - {Position and orientation of monitor}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of monitor along beam path} - - - - - - - {Coordinate system reference marker} - 0 - - - - - - - * - - - {"Beryllium" | "Pyrolytic Graphite" | "Graphite" | "Sapphire" | "Silicon"}? - {in | out}? - {Wavelength transmission profile of filter}? - {average/nominal filter temperature} - {Linked temperature_log for the filter}? - {Sensor(s) used to monitor the filter temperature}? - {Unit cell parameters for single crystal filter(lengths and angles)}? - {Unit cell}? - {Orientation matrix of single crystal filter}? - - {Position and orientation of filters within bank}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of filter bank along beam path} - - - - * - - - "Soller"|"radial" - {divergence of collimator in local x direction} - {divergence of collimator in local y direction}? - {thickness of absorbing blades}? - {gap between absorbing blades}? - {coating on or complete material of blades}? - {material separating absorbing blades}? - - {Position and orientation of collimators within bank}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of collimator bank along beam path} - - - - + - - - - - { "PG (Highly Oriented Pyrolytic Graphite)" | "Ge" | "Si" | "Cu" | "Fe3Si" | "CoFe" | "Cu2MnAl (Heusler)" | "Multilayer" } - {horizontal mosaic Full Width Half Maximum}? - {vertical mosaic Full Width Half Maximum}? - {Optimum diffracted wavelength} - {Bragg angle of nominal reflection} - {Lattice parameter of the nominal reflection}? - {Scattering vector, Q, of nominal reflection}? - {Unit cell parameters (lengths and angles)}? - {Volume of the unit cell}? - {(hkl) values of nominal reflection}? - {average/nominal crystal temperature}? - {log file of crystal temperature}? - {crystal reflectivity versus wavelength}? - {crystal transmission versus wavelength}? - - - {Horizontal width of individual segment}? - {Vertical height of individual segment}? - {Thickness of individual segment}? - {Typical gap between adjacent segments}? - {number of segment columns in horizontal direction}? - {number of segment rows in vertical direction}? - {Horizontal curvature of focusing crystal}? - {Vertical curvature of focusing crystal}? - {Cut angle of reflecting Bragg plane and plane of crystal surface}? - {Position and orientation of crystals within bank}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of analyser bank along beam path} - - - - + - - - - - {Identifier for detector} - {name/manufacturer/model/etc. information}? - {Detector gas pressure}? - {maximum drift space dimension}? - {Crate number of detector}? - {Slot number of detector}? - {Input number of detector}? - {"He3 gas cylinder"|He3 PSD"|"He3 planar multidetector"| "He3 curved multidetector"| "multi-tube He3 PSD"|"BF3 gas"|"scintillator"? - - - {Total distance from sample position to detector through secondary spectrometer} - {Position and orientation of detector elements in bank}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of detector bank along beam path} - - - {Total time of flight from sample position to detector through secondary spectrometer} - {Detector dead time}? - {Delay in detector registering an event}? - {date of last calibration (geometry and/or efficiency) measurements}? - {details of the calibration method}? - {Efficiency of detector with respect to e.g. wavelength}? - - - *? - - diff --git a/content/Indirect_Time-of-Flight_and_Coordinates.md b/content/Indirect_Time-of-Flight_and_Coordinates.md deleted file mode 100644 index 4592b804..00000000 --- a/content/Indirect_Time-of-Flight_and_Coordinates.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Indirect Time-of-Flight and Coordinates -permalink: Indirect_Time-of-Flight_and_Coordinates.html -layout: wiki ---- - -I am having some problems describing a indirect time-of-flight -instrument we are currently building. The name of the instrument is -MARS. See this image for a schema. - -![MARS|center](mars.png "MARS|center") - -The instrument has 12 elastic detectors. These go in a separate NXentry -group and are covered by the the TOFNPD DTD. However, I missed -information about choppers in that DTD. This leads to my first question: -Is TOF-monitors, data and distances really the only items needed for -data analysis for TOFNPD? - -There are also 12 inelastic detectors. Theya are supposed to go in -another NXentry group following the to-be-defined TOFNIG-DTD. Each of -them is mounted on a triffid together with an analyzer. The triffids are -positioned at various polar\_angles with respect to the sample. On each -triffid the analyzers move upwards and scatter neutrons into the -detectors below them. In order to make this perfectly clear: scattering -happens in the vertical plane. There are several problem here: - -I tend to treat both the analyzers and the detectors as a bank each. -They are usually moved together; any differences can be caught in -parameter arrays. - -How to describe the analyzer position? The polar\_angle is clear. I like -to think of the polar\_angle corresponding to longitude in a polar -coordinate system with the incoming beam describing the null meridian. -But the tile angle or latitude is missing from our simple coordinate -system. What we have is the azimuthal angle. From the use at the triple -axis I deduce that this is really a rotation around a vector connecting -the sample and the analyzer. This simply does not cut it. I suggest to -add a tilt angle out of the instrument plane, corresponding to latitude -to our simple coordinate system which would then consist of: -polar\_angle, tilt, distance and azimuthal\_angle. - -How to describe the scattering between the analyzer and the detector? -Rather then defining yet another coordinate system, I would like to wrap -two theta between analyzer and detector into the tilt angle. - ------------------------------------------------------------------------- - -May be I am just confused about [Coordinate -Systems](Coordinate_Systems.html "wikilink") here. ---- - ------------------------------------------------------------------------- - ------------------------------------------------------------------------- - -Conclusion ----------- - -01/2015 This page is totally obsolete. I think the problem was resolved -by changing the scattering plane. Now, the adequate solution is the -CIF-style description of the axes used. diff --git a/content/Instruments.md b/content/Instruments.md deleted file mode 100644 index 60cde3e3..00000000 --- a/content/Instruments.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: Instruments -permalink: Instruments.html -layout: wiki ---- - -The NeXus Design page lists the group classes from which a NeXus file is -constructed. They provide the glossary of items that could, in -principle, be stored in a standard-conforming NeXus file (other items -may be inserted into the file if the author wishes, but they won't be -part of the standard). If you are going to include a particular piece of -metadata, consult the [class definitions](Design.html "wikilink") to find out -what to call it. However, to assist those writing data analysis -software, it is useful to provide more than a glossary; it is important -to define the required contents of NeXus files that contain data from -particular classes of neutron, x-ray, or muon instrument. - -As part of the NeXus standard, we have identified a number of generic -instruments that describe an appreciable number of existing instruments -around the world. Although not identical in every detail, they share -enough common characteristics, and more importantly, they require -sufficiently similar modes of data analysis, to make a standard -description useful. They are in the process of being defined for the -NeXus standard. The definitions will be in XML using the NXDL (NeXus -Definition Language) format. - -Instrument Definitions List ---------------------------- - -### TRAC - -[Pete](User%3APete_Jemian.html "wikilink") 15:49, 14 December 2009 (UTC): -[NeXus definitions TRAC ticket -\#3](http://trac.nexusformat.org/definitions/ticket/3) was created to -describe the items on this page. Classes that were not already described -in NXDL have TRAC tickets created. The status of each of these classes -is described in the comments on that page. All new propositions for -classes should be described with a [new TRAC -ticket](http://trac.nexusformat.org/definitions/newticket). - -### Ratified - -These have been voted on by the [NIAC](NIAC.html "wikilink") and so are -official NeXus definitions - -- [NXTOFRaw: Time-of-Flight Raw Data](TOFRaw.html "wikilink") Editors: - [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink"), [Peter - Peterson](User%3APeter_Peterson.html "wikilink") -- [Monochromatic Neutron and X-ray Powder - Diffraction](Monochromatic_Neutron_and_X-ray_Powder_Diffraction.html "wikilink") - Editor: [Mark Könnecke](User%3AMark_Koennecke.html "wikilink"), PSI -- [Generic Scanning Instrument](GenericScan.html "wikilink") Editor: [Mark - Könnecke](User%3AMark_Koennecke.html "wikilink"), PSI -- [Monochromatic Neutron and X-ray Triple-Axis - Spectrometer](Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html "wikilink") - Editor: [Nicholas Maliszewskyj](User%3ANickm.html "wikilink") (NIST - Center for Neutron Research, USA). - -### Proposed - -In this case the need for a particular definition has been identified, -an editor has been assigned and some detailed discussions have taken -place; however the definition has not yet been voted on by the -[NIAC](NIAC.html "wikilink") and so could still undergo modification. - -- [Monochromatic Neutron and X-ray Single Crystal - Diffractometer](Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.html "wikilink") - Editor: [Mark Könnecke](User%3AMark_Koennecke.html "wikilink"), PSI -- [Archive Definition](Archive_Definition.html "wikilink") Editor: [Laurent - Lerusse](User%3AL.lerusse.html "wikilink") (CCLRC - Rutherford Appleton - Laboratory, e-Science, UK) -- [Monochromatic Neutron and X-ray Small Angle - Scattering](SAS.html "wikilink") Editor: Ron Ghosh (Institut Laue - Langevin, France). -- [Processed Data](Processed_Data.html "wikilink") Editor: [Ray - Osborn](User%3ARay_Osborn.html "wikilink") (Argonne National Laboratory, - USA) -- [X-Ray Synchrotron Raw](XESraw.html "wikilink") Editor: [Stuart - Campbell](User%3AStuart_Campbell.html "wikilink") (Diamond Light Source, - UK) -- [Muon Time Differential](Muon_Time_Differential.html "wikilink") Editor: - [Steve Cottrell](User%3ASteve_Cottrell.html "wikilink") (ISIS, UK) - -### Planned - -These definitions are currently being worked on and so could still -undergo major revisions. When they near completion they will be moved -into the *Proposed* category above. - -- Diffraction - - Protein Crystallography - - [Time-of-Flight Neutron Powder - Diffraction](Time-of-Flight_Neutron_Powder_Diffraction.html "wikilink"), - Editor: [Peter Peterson](User%3APfpeterson.html "wikilink") - (Spallation Neutron Source, USA). - - [Time-of-Flight Neutron Single Crystal - Diffractometer](Time-of-Flight_Neutron_Single_Crystal_Diffractometer.html "wikilink"), - Editor: TBA -- Reflectometry - - [Time-of-Flight Neutron - Reflectometry](Time-of-Flight_Neutron_Reflectometry.html "wikilink"), - Editor: Robert Dalgliesh (ISIS Pulsed Neutron and Muon Source, - UK) - - [Monochromatic Neutron and X-ray - Reflectometry](Monochromatic_Neutron_and_X-ray_Reflectometry.html "wikilink"), - Editor: Paul Kienzle (NIST Center for Neutron Research, USA) -- Imaging - - X-ray Tomography -- Small-Angle Scattering - - Grazing Incidence Small-Angle X-ray Scattering, Editor: TBA - - [Time-of-Flight Small Angle - Scattering](Time-of-Flight_Small_Angle_Scattering.html "wikilink"), - Editor: Stephen King (ISIS Pulsed Neutron and Muon Source, UK) - - Ultra-Small-Angle Neutron Scattering, Editor: TBA - - Ultra-Small-Angle X-ray Scattering, Editor: [User%3APete - Jemian](User%3APete_Jemian.html "wikilink") (Advanced Photon Source, - USA) -- Spectrometers - - [Time-of-Flight Neutron Direct Geometry - Spectrometer](Time-of-Flight_Neutron_Direct_Geometry_Spectrometer.html "wikilink"), - Editor: Toby Perring (ISIS Pulsed Neutron and Muon Source, UK) - - [Time-of-Flight Neutron Indirect Geometry - Spectrometer](Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html "wikilink"), - Editor: Martyn Bull (ISIS Pulsed Neutron and Muon Source, UK) - - XAS: X-ray Absorption Spectroscopy - - XPCS: X-ray Photon Correlation Spectroscopy -- Spin-Echo - - [Neutron Spin Echo](Neutron_Spin_Echo.html "wikilink"), Editor: - Robert Georgii (FRM-II, Germany) - - [Time-of-Flight Neutron Spin - Echo](Time-of-Flight_Neutron_Spin_Echo.html "wikilink"), Editor: TBA - diff --git a/content/IssueReporting.md b/content/IssueReporting.md deleted file mode 100644 index 8e7a75e7..00000000 --- a/content/IssueReporting.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: IssueReporting -permalink: IssueReporting.html -layout: wiki ---- - -NeXus Instrument/Base Class Definitions ---------------------------------------- - -- [View current - issues](https://github.com/nexusformat/definitions/issues) -- [Timeline (recent changes and ticket - activitiy)](https://github.com/nexusformat/definitions/pulse) - -NeXus Library and Applications ------------------------------- - -- [View current issues](https://github.com/nexusformat/code/issues) -- [Timeline (recent changes and ticket - activitiy)](https://github.com/nexusformat/code/pulse) - diff --git a/content/Japinotes.md b/content/Japinotes.md deleted file mode 100644 index 2f614e2c..00000000 --- a/content/Japinotes.md +++ /dev/null @@ -1,319 +0,0 @@ ---- -title: Japinotes -permalink: Japinotes.html -layout: wiki ---- - -The NeXus API for Java -====================== - -Introduction ------------- - -NeXus is a proposal for a common file format for neutron and X-ray -scattering. NeXus uses HDF as its physical file format. At the last -NOBUGS conference a strong need for a Java-API to NeXus files was -expressed. Version 1.0 of this Java API has now (October 2000) become -available. As recoding the HDF library in Java was no option the Java -API for NeXus (jnexus) was implemented through the Java Native Methods -Interface (JNI). This has the consequence that the Java API for NeXus -cannot be used in applets as the security restrictions for applets -prohibit downloading of shared libraries and local file access. Applets -can use a NeXus Data Server in order to access NeXus files in readonly -mode. - -Acknowledgement ---------------- - -This implementation uses classes and native methods from NCSA's Java HDF -Interface project. Basically all conversions from native types to Java -types is done through code from the NCSA HDF group. Without this code -the implementation of this API would have taken much longer. See NCSA's -copyright for more information. - -Installation ------------- - -### Requirements - -For the binary distribution only a JDK1.1 compatible Java runtime is -required. Suitable runtime environments for Solaris, Linux and Windows32 -can be downloaded from Sun's Java homepage. This website also holds -pointers to Java runtime systems for other platforms. Jnexus has not -been tested with Java 2 but should work with it. - -In order to compile the Java API for NeXus the following components are -required: - -- A Java Development Kit 1.1 or better. For downloads see above. -- A C compiler for your platform. -- The HDF libraries version 4.1r3 or better. Can be downloaded from - NCSA's HDF homepage. -- A complete copy of the latest NAPI sources (including jnexus - sources). - -### Installation under Windows32 (Windows NT, Windows 95, 98, ME) - -1. Copy the HDF DLL's (\*413m.dll) and the file jnexus.dll to a - directory in your path. For instance C:\\Windows\\system32. -2. Copy the jnexus.jar to the place where you usually keep library jar - files. - -### Installation under Unix - -Two files are needed: the jnexus.so shared library and the jnexus.jar -file holding the required Java class. Copy them wherever you like and -see below for instructions how to run programs using jnexus. - -Running Programs with the NeXus API for Java --------------------------------------------- - -In order to successfully run a program with jnexus the Java runtime -systems needs to locate two items: - -- The shared library implementing the native methods. -- The nexus.jar file in order to find the Java classes. - -### Locating the shared library - -Of course the method for locating a shared library differ between -systems. Under Windows32 systems the best method is to copy the -jnexus.dll and the HDF-libarary DLL's into a directory in your path. The -HDF DLL's have to go there anyway. - -On a unix system the problem can be solved in three different ways: - -- Make your system administrator copy the jnexus.so file into the - systems default shared library directory (usually /usr/sbin). -- Put the jnexus.so file wherever you see fit and set the - LD\_LIBRARY\_PATH environment variable to point to the directory of - your choice. -- Specify the full pathname of the jnexus shared library on the java - command line with the - -Dneutron.nexus.JNEXUSLIB=full-path-2-shared-library option. - -### Locating jnexus.jar - -This is easier: just add the the full pathname to jnexus.jar to the -classpath when starting java. Examples - -A unix example shell script: - -`#!/sbin/sh` -`java -classpath /usr/lib/classes.zip:../jnexus.jar:. \` -`   -Dneutron.nexus.JNEXUSLIB=../bin/du40/libjnexus.so TestJapi` - -A Windows 32 example batch file: - -`set JL=-Dneutron.nexus.JNEXUSLIB=..\jnexus\bin\win32\jnexus.dll` -`java -classpath C:\jdk1.1.5\lib\classes.zip;..\jnexus.jar;. %JL% TestJapi` - -Programming with the NeXus API for Java. ----------------------------------------- - -note: for experienced NeXus API Programmers! - -The NeXus C-API is good enough but for Java a few adaptions of the API -have been made in order to match the API better to the idioms used by -Java programmers. In order to understand the Java -API it is useful to -study the NeXus C-API because many methods work in the same way as their -C equivalents. A full API documentation is available in Java -documentation format. For full reference look especially at: - -- The interface NeXusFileInterface first. It gives an uncluttered view - of the API. -- The implementation NexusFile which gives more details about - constructors and constants. However this documentation is - interspersed with information about native methods which should not - be called by an application programmer as they are not part of the - standard and might change in future. - -Some more general explanation will be given below. - -### General Things - -See the following code example for opening a file, opening a vGroup and -closing the file again in order to get a feeling for the API. - -`    try{` -`          NexusFile nf = new NexusFile(filename,` -`                   NexusFile.NXACC_READ);` -`          nf.opengroup(`“`entry1`”`,`“`NXentry`”`);` -`          nf.finalize();` -`    }catch(NexusException ne) {` -`        // Something was wrong!` -`    }` - -Some notes on this little example: - -- Each NeXus file is represented by a NexusFile object which is - created through the constructor. -- The NexusFile object takes care of all file handles for you. So - there is no need to pass in a handle anymore to each method as in - the C language API. -- All error handling is done through the Java exception handling - mechanism. This saves all the code checking return values in the C - language API. Most API functions return void. -- Closing files is tricky. The Java garbage collector is supposed to - call the finalize method for each object it decides to delete. In - order to enable this mechanism, the NXclose function was replaced by - the finalize method. In practice it seems not to be guranteed that - the garbage collector calls the finalize method. It is safer to call - finalize yourself in order to properly close a file. Multiple calls - to the finalize method for the same object are safe and do no harm. - -Data Writing and Reading ------------------------- - -Again a code sample which shows how this looks like: - -`       int idata[][] = new idata[10][20];` -`       int iDim[] = new int[2];` -`       ` -`       // put some data into iData.......` -`       ` -`       // write iData` -`       iDim[0] = 10;` -`       iDim[1] = 20;` -`       nf.makedata(`“`idata`”`,NexusFile.NX_INT32,2,iDim);` -`       nf.opendata(`“`idata`”`);` -`       nf.putdata(idata);` -`       ` -`       // read idata` -`       nf.getdata(idata);` - -The dataset is created as usual with makedata and opened with putdata. -The trick is in putdata. Java is meant to be type safe. One would think -then that a putdata method would be required for each Java data type. In -order to avoid this the data to write is passed into putdata as type -Object. Then the API proceeds to analyze this object through the Java -introspection API and convert the data to a byte stream for writing -through the native method call. This is an elegant solution with one -drawback: An array is needed at all times. Even if only a single data -value is written (or read) an array of length one and an appropriate -type is the required argument. - -Another issue are strings. Strings are first class objects in Java. HDF -(and NeXus) sees them as dumb arrays of bytes. Thus strings have to be -converted to and from bytes when reading string data. See a writing -example: - -`       String ame = `“`Alle`` ``meine`` ``Entchen`”`;` -`       nf.makedata(`“`string_data`”`,NexusFile.NX_CHAR,` -`               1,ame.length()+2);` -`       nf.opendata(`“`string_data`”`);` -`       nf.putdata(ame.getBytes());` - -And reading: - -`       byte bData[] = new byte[132];` -`       nf.opendata(`“`string_data`”`);` -`       nf.getdata(bData);` -`       String string_data = new String(bData);` - -The aforementioned holds for all strings written as SDS content or as an -attribute. SDS or vGroup names do not need this treatment. - -### Inquiry Routines - -Let us compare the C-API and Java-API signatures of the getinfo routine -or method: - -`     /* C -API */` -`     NXstatus NXgetinfo(NXhandle handle, int *rank, int iDim[], ` -`                        int *datatype);` -`     // Java ` -`     void getinfo(int iDim[], int args[]);` - -The problem is that Java passes arguments only by value, which means -they cannot be modified by the method. Only array arguments can be -modified. Thus args in the getinfo method holds the rank and datatype -information passed in separate items in the C-API version. For resolving -which one is which consult a debugger or the API-reference. - -The attribute and vGroup search routines have been simplified using -Hashtables. The Hastable returned by groupdir() holds the name of the -item as a key and the classname or the string SDS as ths stored object -for the key. Thus the code for a vGroup search looks like this: - -`        nf.opengroup(group,nxclass);` -`        h = nf.groupdir();` -`        e = h.keys();` -`        System.out.println(`“`Found`` ``in`` ``vGroup`` ``entry:`”`);` -`        while(e.hasMoreElements())` -`        {` -`           vname = (String)e.nextElement();` -`           vclass = (String)h.get(vname);` -`           System.out.println("     Item: " + vname + " class: " + vclass);` -`        }` - -For an attribute search both at global or SDS level the returned -Hashtable will hold the name as the key and a little class holding the -type and size information as value. Thus an attribute search looks like -this in the Java-API: - -`        Hashtable h = nf.attrdir();` -`        Enumeration e = h.keys();` -`        while(e.hasMoreElements())` -`        {` -`          attname = (String)e.nextElement();` -`          atten = (AttributeEntry)h.get(attname);` -`          System.out.println("Found global attribute: " + attname +` -`            " type: "+ atten.type + " ,length: " + atten.length); ` -`        }` - -For more information about the usage of the API routines see the -reference or the NeXus C-API reference pages. Another good source of -information is the source code of the test program which exercises each -API routine. Limitations - -Known Problems --------------- - -These are a couple of known problems which you might run into: - -Memory: As the Java API for NeXus has to convert between native and Java number types a copy of the data must be made in the process. This means that if you want to read or write 20MB of data your memory requirement will be 40MB! This can be reduced by using getslab/putslab for data transfers. -Java.lang.OutOfMemoryException: By default the Java runtime has a ceiling of 16MB of memory use. This ceiling can be increased through the -mxXXm option to the Java runtime. An example: java -mx32m ..... starts the Java runtime with a memory ceiling of 32MB. -DigitalUnix4.0D and LZW compression: An error occurs in the HDF library when trying to compress a dataset with COMP\_CODE\_LZW. This works just fine on other platforms and also when using the NeXus C language API. The reason for this is still an area for research. -Maximum 8192 files open: The NeXus API for Java has a fixed buffer for file handles which allows only 8192 NeXus files to be open at the same time. If you ever hit this limit, increase the MAXHANDLE define in native/handle.h and recompile everything. - -Compiling the Java API for NeXus --------------------------------- - -You will need a complete copy of the latest NAPI sources (including -jnexus sources). See other requirements under installation above. - -For Windows32 a Microsoft Visual C++ 6.0 project file is supplied in the -jnexus/jnexus directory. Use this project file. You will need to adapt -the directory settings under Tools/Options/Directories for both include -and library directories in order to reflect the placement of the HDF -libraries and the jnexus source code in your directory hierarchy. -Hitting F7 after that should build the shared library. Hint: Only a -release build is possible with the HDF library binaries. If a debug -build is needed you have to recompile the HDF libraries yourself. For a -recompilation of the Java classes use the compilejava batch file in the -jnexus main directory. - -For DigitalUnix4.0D and Redhat Linux 6.2 Makefiles are provided -(Makefile and Make.tux repectively). For these systems everything can be -build with make du40 of make -f make.tux respectively. If the Makefiles -do not work edit the directory paths in the configuration section to -match your installation. If you wish to compile on another unix system, -create a copy of one of the above mentioned Makefiles and edit the -configuration section in your copy to match your installation of java -and the HDF libraries. If you succeed in building the NeXus API for Java -on a new system, please put back modified sources into the CVS -repository and make your Makefile and the compiled shared library -available to the NAPI team in order to provide a new binary -distribution. Support - -Author ------- - -I'm sure this software contains swarms of bugs. If you manage to find -one you may send requests either to the NAPI developer mailing list or -to Mark Könnecke who wrote the Java API for NeXus. - -Author: Mark Könnecke Laboratory for Neutron Scattering Paul Scherrer -Institut CH-5232-Villigen-PSI Switzerland and the NeXus Design team. -Last Update: October, 19, 2000 diff --git a/content/Java_API.md b/content/Java_API.md deleted file mode 100644 index e74a866c..00000000 --- a/content/Java_API.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Java API -permalink: Java_API.html -layout: wiki ---- - -The NeXus for Java API Download and Information Page ----------------------------------------------------- - -NeXus for Java is an API which provides access to NeXus data files to -programs written in the programming language Java. This API was -implemented by Java code calling the original C language NeXus API -through the Java Native Methods Interface. - -### Documentation - -The following documentation is browsable online: - -1. The [NeXus for Java API](japinotes.html "wikilink") general instructions - including installation notes, instructions for running NeXus for - Java programs and a brief introduction to the API. -2. The [Source](https://github.com/nexusformat/code/tree/master/bindings/java/) - documentation -3. A verbose tutorial for the NeXus for Java API. -4. The API Reference. -5. Finally, the source code for the test driver for the API which also - serves as a documented usage example. - -### Acknowledgement - -All the code for number type conversion has been taken from the Java HDF -Interface library provided by NCSA. JHI also served as an inspiration -for many aspects of this API. See NCSA's copyright statement for more -details. Downloads - -All binary distributions carry the full documentation, the Java source -files and the shared libraries necessary to run the NeXus for Java API -on the platforms supported. By downloading anything from here you agree -to the following disclaimer: - -### DISCLAIMER - -THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND THE CONTRIBUTORS “AS IS” -WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no event -shall the Author or the Contributors be liable for any damages suffered -by the users arising out of the use of this software, even if advised of -the possibility of such damage. - ------------------------------------------------------------------------- - -Binary Packages for the Java NeXus API 1.3x These packages are based on -version 1.3.x of the NeXus-API and support only HDF-4. System type -Creation Date DigitalUnix4.0D October, 19, 2000 Redhat Linux 6.2 Intel -October, 19, 2000 Windows NT, 95, 98 October, 19, 2000 - -Binary Packages for the Java NeXus API 2.0 - -These packages are based on the NeXus-API version 2.0. This version -supports both HDF-4 and HDF-5. System type Creation Date True64Unix 5.1 -December, 18, 2002 Redhat Linux 6.2 Intel December, 18, 2002 Windows NT, -95, 98 December, 18, 2002 Please send shared libraries compiled by you -for platforms not in this list to the maintainer of this page for -inclusion. Source Code - -The source code for the NeXus for Java API is included in the general -NeXus API developer package downloadable from the NeXus API page. diff --git a/content/Jnexustut.md b/content/Jnexustut.md deleted file mode 100644 index 73c4e32d..00000000 --- a/content/Jnexustut.md +++ /dev/null @@ -1,297 +0,0 @@ ---- -title: Jnexustut -permalink: Jnexustut.html -layout: wiki ---- - -The NeXus for Java API Tutorial - -This document explains in more detail how to program with the NeXus API -for Java. The intended audience are Java programmers who do not know the -C language NeXus API. This document will only explain how to deal with -NeXus files. For a general description of NeXus see the NeXus WWW-pages. -For reference,see the jnexus API documentation. Another good source of -information is the test driver source code for the NeXus API for Java. -It is a more involved example of API usage. And it is documented! - -Before doing anything with the NeXus for Java API the necessary classes -need to be imported. This is done with the statement: import -neutron.nexus.\*; at the head of your Java file. A NeXus programmer has -to deal with the following five concepts: - -NeXus Files - -`   You should have guessed as much. ` - -Groups - -`   Groups are NeXus means of structuring data in a file. Groups can hold other groups or datsets. The filesystem analogon to groups would be directories. ` - -SDS - -`   SDS are scientific datasets. This is a n-dimensional array of numbers stored in the file. ` - -Attributes - -`   Attributes is auxiliary information stored in the file. Two types of attributes are possible: global file wide attributes and attributes linked to a SDS. ` - -Links - -`   For organisational reasons it might be useful to refer a SDS in more then one group. But it should be avoided to duplicate data. In order to avoid this it is possible to link SDS wherever you want. This concept is quite similar to a symbolic link in a unix file system. ` - -All these concepts will be explained in more detail below. A note about -error handling: A NexusException is thrown whenever an error occurs. -This implies that all code samples stated below should be included in a -try-catch block looking like this: - -`   try{` -`     // some NeXus for Java calls.` -`   }catch(NexusException ne) {` -`      // analyze and treat the error` -`   }` - -For brevity and clarity this will be left out in the following text. - -NeXus Files - -A Nexus File is opened by: NexusFile nf = new NexusFile(name, -NexusFile.NXACC\_CREATE); The first parameter to the constructor is of -course the name. The second parameter is the access code valid for the -file: Three access codes are supported: - -NXACC\_CREATE - -`   For creating a new NeXus file. ` - -NXACC\_RDWR - -`   For opening an existing NeXus file for modification or for appending. ` - -NXACC\_READ - -`   Open a file for reading only. ` - -Please note that for all further examples, the name nf is assumed for -the NexusFile object. - -Closing files is accomplished through the finalize method. This should -be called automatically by the Java garbage collector but it is safer to -explicitly call this method when done with a file. nf.finalize() does -the trick. - -Sometimes it is necessary to flush all buffered data to disk before -doing for instance something else in a program in order to prevent data -loss. This can be done with the flush method: nf.flush(); flush has the -side effect of closing all open SDS. - -Groups - -A group (or vGroup) is the NeXus equivalent of a directory. Alike to a -directory hierarchy, a hierarchy of groups can be built in a NeXus file. -In contrast to directory names however, NeXus group names consist of two -strings: the groupname and the groupclass. Both strings are needed in -order to address a NeXus group. There are API functions for all -necessary operations on groups. The first one is group creation: -nf.makegroup(name, nxclass); This corresponds to a mkdir in a unix -filesystem. - -In order to use a group we need a means of traversing the group -hierarchy. For this the methods: nf.opengroup(name,nxclass); and -nf.closegroup(); are provided. opengroup corresponds to a cd name,class -and steps into the group name with class nxclass. closegroup corresponds -to cd .. and steps one group lower in the group hierarchy. - -NeXus is self describing. Clearly a method is needed to find out about -the contents of the current group. For this the method: Hashtable ha = -nf.groupdir(); is used. The hashtable returned contains pairs of name, -class as entries. For datasets the class name is set to SDS. See the -following code snippet as an example how to print the contents of a -NeXus group: - -`        Hashtable h = nf.groupdir();` -`        e = h.keys();` -`        System.out.println(`“`Found`` ``in`` ``Group`”`);` -`        while(e.hasMoreElements())` -`    {` -`           vname = (String)e.nextElement();` -`           vclass = (String)h.get(vname);` -`           System.out.println("     Item: " + vname + " class: " + vclass);` -`        }` - -SDS SDS are scientific dataset. They are used to store n-dimensional -arrays of data in a variety of number types in a NeXus file. The -following number types are allowed in NeXus files: - -`   NexusFile.NX_INT8:` -`   NexusFile.NX_UINT8:` -`       NexusFile.NX_CHAR:` -`   NexusFile.NX_INT16:` -`   NexusFile.NX_UINT16:` -`   NexusFile.NX_INT32:` -`   NexusFile.NX_UINT32:` -`   NexusFile.NX_FLOAT32:` -`   NexusFile.NX_FLOAT64:` - -I think the names are self describing. These types are defined as -constants in NexusFile.java. - -When creating a new file a means is needed for creating a new SDS in the -NeXus file. A SDS is fully characterized by its name, its number type -(out of the list above), the number of dimensions it has (its rank) and -its size in each dimension. With this information a SDS can be created: -nf.makedata(name,type,rank,iDim); with iDim being an integer array -holding the size of the dataset in each dimension. A speciality of NeXus -(and HDF) is that the first dimension can be unlimited. Simpy set the -dimension 0. Then data can be appended in consecutive steps along this -dimension. Please note, that makedata does not automatically open the -SDS. Before writing data to it, a call to opendata is required. - -Analog to a file in a filesystem a SDS must be opened before anything -can be done with it and closed when processing is finished. The -appropriate calls are: nf.opendata(name); and nf.closedata(); Please -note that all methods below this section require an openend SDS for -proper operation. - -Once a SDS is open data can be read or written to it. Two means of data -transfer are provided: putdata, getdata write and read all the data in -one go, whereas putslab, getslab allows to write and read subsets of -data. There is a trick here though. Java is meant to be type safe. One -would think then that a data transfer method would be required for each -Java data type. In order to avoid this the data to transfer is passed -into the data transfer methods as type Object. Then the API proceeds to -analyze this object through the Java introspection API and converts the -data to a byte stream for writing through the native method call. This -is an elegant solution with one drawback: An array is needed at all -times. Even if only a single data value is written (or read) an array of -length one and an appropriate type is the required argument. - -Writing and reading then looks like: - -`     // example data` -`     int iData[][] = new iData[3][10];` -`     // write it` -`     nf.putdata(iData);` -`     // read it` -`     nf.getdata(iData);` - -Another issue are strings. Strings are first class objects in Java. HDF -(and NeXus) sees them as dumb arrays of bytes. Thus strings have to be -converted to and from bytes when reading string data. See a writing -example: - -`       String ame = `“`Alle`` ``meine`` ``Entchen`”`;` -`   nf.makedata(`“`string_data`”`,NexusFile.NX_CHAR,1,` -`                          ame.length()+2);` -`       nf.opendata(`“`string_data`”`);` -`       nf.putdata(ame.getBytes());` - -And reading: - -`       byte bData[] = new byte[132];` -`       nf.opendata(`“`string_data`”`);` -`       nf.getdata(bData);` -`       String string_data = new String(bData);` - -The aforementioned holds for all strings written as SDS content or as an -attribute. SDS or vGroup names do not need this treatment. - -When writing a subset of data two more arguments are needed: The first -is an integer array of size rank which holds the address in the dataset -where to start the transfer of the subset. The second is another integer -array of size rank which determines the size of the data subset to -transfer in each dimension. The methods then look like: - -`     // example data` -`     int iData[][] = new iData[3][10];` -`     int iStart[2] = {0,0};` -`     int iSize[2] = {3,10};` -`     // write it` -`     nf.putslab(iStart, iSize,iData);` -`     // read it` -`     nf.getdata(iStart, iSize,iData);` - -This example is a bit contrieved in that it uses the subset API for -transfering the whole dataset. - -NeXus and HDF support the compression and decompression of data on the -fly during transfer operations. The only thing which needs to be done is -to tell NeXus to compress the data before writing data. An example looks -like this: - -`     float fData[][] = new float[100][1000];` -`     int iDim[] = new int[2];` -`     iDim[0] = 100;` -`     iDim[1] = 1000;` - -`      nf.makedata(`“`fData`”`,2,NexusFile.NX_FLOAT32,iDim);` -`      nf.opendata(`“`fData`”`);` -`      nf.compress(NexusFile.COMP_CODE_LZW);` -`      nf.putdata(fData);` - -Please note the sequence of calls. The parameter to compress is the -compression algorithm to use. Permitted values are: - -NexusFile.NX\_COMP\_NONE - -`   No compression ` - -NexusFile.NX\_COMP\_RLE - -`   Run length encoding ` - -NexusFile.NX\_COMP\_LZW - -`   gzip type compression ` - -NexusFile.NX\_COMP\_HUF - -`   Huffman compression. ` - -Please note that transfers to compressed datasets have to be done -through the putdata, getdata routines, subset operations are not -supported with compression. - -When dealing with an unknown NeXus file we might need to find out about -the characteristics of a SDS. This can be done with: -nf.getinfo(iDim,args); After this call iDim will hold the size of the -SDS in each dimension, args\[0\] will be the rank of the SDS and -args\[1\] the number type. Make sure that iDim is large enough to hold -all dimensions. Hint: 32 is the maximum number of dimensions supported -by HDF. - -Attributes Attributes are auxiliary information stored in a NeXus file. -There are two variants: global attributes at file level and attributes -at SDS level. The attribute part of the API acts on global attributes if -no SDS is open and on SDS attributes if an SDS has been opened with -opendata(). Attributes can be written: nf.putattr(name,data,type); name -is a name, data is a one dimensional array of some data and type is the -of the data. The same data types as for SDS writing are supported. - -Attributes can be read: nf.getattr(name, data, args); args\[0\] will -hold the length of the attribute array, args\[1\] its type. This must be -supplied as input. Proper values for these parameters can be inquired -trough the attribute directory method: Hashtable ha = nf.attrdir(); This -time the hashtable ha will hold pairs of attribute names and -AttributeEntry objects. These objects are small classes which hold the -length and type of the attribute. See an attribute printing example for -more information: - -`        AttributeEntry atten;` -`        String attname;` - -`        Hashtable h = nf.attrdir();` -`        Enumeration e = h.keys();` -`        while(e.hasMoreElements())` -`    {` -`          attname = (String)e.nextElement();` -`          atten = (AttributeEntry)h.get(attname);` -`          System.out.println("Found global attribute: " + attname +` -`            " type: "+ atten.type + " ,length: " + atten.length); ` -`        }` - -Linking Linking a SDS into more then one group requires some -precautions. First some internal information needed for linking must be -retrieved while the SDS ist still open. The call: NXlink nl = -nf.getdataID(); does just that. Then, after moving to the appropriate -place for the link in the group hierarchy the call: nf.makelink(nl); -will actually install the link. diff --git a/content/Latest_News.md b/content/Latest_News.md deleted file mode 100644 index 13c66c8f..00000000 --- a/content/Latest_News.md +++ /dev/null @@ -1,305 +0,0 @@ ---- -title: Latest News -permalink: Latest_News.html -layout: wiki ---- - -2017 ----- - -October: The upcoming Code Camp will be hosted by Diamond Light Source 24th to 26th October. Visit [Code Camp 2017](Code_Camp_2017.html) for more information and registration. - -February: The main NeXus webpage migrated away from being a single static page and the wiki stopped being driven by mediawiki. Both are now (again) hosted together as Github Pages with pages being build out of markup files. In the (still ongoing) process we aim to reduce the amount of outdated information offered. - -2016 ----- - -October: [NIAC2016](NIAC2016.html "wikilink") took place in Copenhagen 13th & 14th hosted by ESS, on the three days before we had be a Code Camp. Version [3.2 of the NeXus Defintions](https://github.com/nexusformat/definitions/releases/tag/v3.2) was released. - -2015 ----- - -November: [Code Camp 2015](Code_Camp_2015.html "wikilink") happened 16th - 18th at DESY in Hamburg -January: As a result of [NIAC2014](NIAC2014.html "wikilink") the [Teleconferences](Teleconferences.html "wikilink") are now open to the whole community. Dates and joining instructions are to be published on the wiki page. - -2014 ----- - -December: [NIAC2014](NIAC2014.html "wikilink") has happened. The [Code Camp](NIAC2014_CodeCamp.html "wikilink") had a meeting with the HDF Group, but was largely a preparation for the [NIAC meeting](NIAC2014_Meeting.html "wikilink"). The NIAC elected new members and officers and there were many fruitful discussions. Important items and decisions are recorded in the [minutes](NIAC2014_Meeting#Minutes.html "wikilink"). -Wednesday, 2014-08-07: A [NeXus code camp](NIAC2014.html "wikilink") has been planned for 15th / 17th December 2014 with a [NIAC](NIAC2014.html "wikilink") meeting to follow on 18th / 19th December 2014. This meeting has been scheduled apart from the [2014 NOBUGS conference](http://j-parc.jp/researcher/MatLife/en/meetings/nobugs2014) to accommodate travel permissions of a majority on the technical subcommittee. - -2012 ----- - -A [NeXus code camp](NIAC2012.html "wikilink") happened 18th / 19th September 2012 with a [NIAC](NIAC2012.html "wikilink") meeting to follow on 20th / 21th September 2012. These meetings are the week before the [NOBUGS conference](https://www.nobugsconference.org/) on 24th-26th September 2012 - -See [ NIAC: meetings](NIAC#Meetings.html "wikilink") for historical -information about the NIAC meetings and Code Camps. - -Wednesday, March 6, 2012: Release candidates for NeXus 4.3 are now available from [NeXus\_43\_Testing](NeXus_43_Testing.html "wikilink") - -2010 ----- - -Thursday, October 21, 2010: NeXus Manual moved from the wiki to a *book format*(``http://www.nexusformat.org/Documentation``) (PDF & HTML are available). The revised manual also documents the *class definitions*(``http://download.nexusformat.org/doc/html/ClassDefinitions.html``) in [NXDL](https://manual.nexusformat.org/nxdl.html). Content has been reorganised and divided into a volume containing the [User Manual](https://manual.nexusformat.org/pdf/NeXusManual.pdf) and a volume containing the *Reference Documentation*(``http://download.nexusformat.org/doc/NeXusRefDoc.pdf``). - - - - -It is planned to release NXDL v1.0 next year. - - - - -The scientific community is encouraged to review existing [Application -NXDL -definitions](https://manual.nexusformat.org/classes/applications/) -or propose new ones to the NIAC. A [tutorial on constructing new NXDL -definitions](http://download.nexusformat.org/doc/html/Tutorial.html) has -been add to the manual. - - - -Tuesday, April 13, 2010: NeXus API version 4.2.1 has now been released and is available from the [download area](http://download.nexusformat.org/kits/) - see [Nexus\_42\_Release\_Notes](Nexus_42_Release_Notes.html "wikilink") for further information - - - -Tuesday, March 9, 2010: A [NeXus Workshop](Workshop_PSI_2010.html "wikilink") will be held at [PSI](http://www.psi.ch/) on May 10th - 12th. Its main purpose is to discuss the application of NeXus at synchrotron sources. - - - -Thursday, February 25, 2010: NeXus API 4.2 Release Candidate 5 (candidate for 4.2.1) is now [available for testing](NeXus_42_Testing.html "wikilink") - -2009 ----- - -Tuesday, May 5, 2009: [NeXus API 4.2.0 released](http://lists.nexusformat.org/pipermail/nexus/2009/000326.html) - -2008 ----- - -Wednesday, December 3, 2008:NeXus API 4.2 Release Candidate 2 (candidate for 4.2.0) is now [available for testing](NeXus_42_Testing.html "wikilink") -Wednesday, August 27, 2008:Work is currently in progress to convert NeXus definitions from [Meta-DTDs](Metaformat.html "wikilink") into [XML Schema](http://www.w3.org/XML/Schema) - for more details see the [NeXus schema](Schema.html "wikilink") page. - -2007 ----- - -Wednesday, October 31, 2007:The NeXus technical committee is pleased to announce the official release of version 4.1 of the eXus API. The NeXus API provides a unified interface for writing hierarchical data files in HDF4, HDF5, and XML formats. Version 4.1 resolves a number of bugs reported in the 4.0 release including issues with python bindings, text strings in the XML library, and problems encountered with using the Absoft FORTRAN90 compiler. Details of the new features contained in 4.1 can be found in the [Release Notes](http://trac.nexusformat.org/code/browser/tags/4.1.0/NEWS) - - - - -Source code, binary packages, and example code can be downloaded from -[download page](Download.html "wikilink"). - - - -Tuesday, September 11, 2007: The upcoming 4.1 release of the NeXus API is now undergoing testing. More details can be found on the [testing site](NeXus_41_Testing.html "wikilink") as well as [provisional release notes](Nexus_41_Release_Notes.html "wikilink") - - - -Friday, May 25, 2007:The NeXus technical committee is pleased to announce the official release of version 4.0 of the NeXus API. The NeXus API provides a unified interface for writing hierarchical data files in HDF4, HDF5, and XML formats. Version 4.0 resolves a number of bugs reported in the 3.0 release by providing updated makefiles, support for the gfortran compiler, and an improved test suite. - - - - -New functionality in the NeXus API includes support for two dimensional -character arrays, linking to data items in other files (external -linking) via the NXmakenamedlink() call, and print the target to a link -reference with via the NXprintlink() call. File format- specific -developments include extension of the XML API to handle “unlimited” -dimensions, support for group attributes in HDF4, and support for -reading generic (non-NeXus) HDF5 files. The new release also -automagically generates documentation from the source code using the -Doxygen documentation system. Details of the new features contained in -4.0.0 can be found in the [Release -Notes](http://trac.nexusformat.org/code/browser/tags/4.0.0/NEWS) - - - -Friday, March 16, 2007: The upcoming 4.0 release of the NeXus API is now undergoing testing. More details can be found on the [testing site](NeXus_4_Testing.html "wikilink") as well as [provisional release notes](Nexus_4_Release_Notes.html "wikilink") - -2006 ----- - -Thursday, December 7, 2006: Site updated to MediaWiki 1.8.2 -Tuesday, November 28, 2006: A NeXus install kit for Microsoft Windows is [now available](http://download.nexusformat.org/kits/windows) The kit includes the standard NeXus applications as well as libraries for building applications with both [MinGW](http://www.mingw.org/) and Microsoft Visual Studio. -Tuesday, November 21, 2006: The NeXus [MailingLists](mailinglist.html "wikilink") have been moved to a [new server](http://lists.nexusformat.org). Future postings should be made to *listname*@nexusformat.org rather than to *listname*@anl.gov -Tuesday, September 26, 2006: The NeXus WIKI has been moved to new site at [](https://www.nexusformat.org/) and updated to MediaWiki 1.7.1 - -2005 ----- - -Monday, November 7, 2005:We are planning the next meeting of the [NeXus International Advisory Committee](NIAC.html "wikilink"). The current proposal is to hold it in Grenoble in the first week of February, but details will be announced as they are finalized. In the meantime, check the [NeXus Wiki pages](NIAC2006ILL.html "wikilink") for discussions of the agenda. -Friday, July 15, 2005:The technical committee is pleased to announce the official release of [version 3.0.0 of the NeXus API](http://www.nexus.anl.gov/nexus_api.html#download). Mark Koennecke has incorporated infrastructure permitting the use of XML as an additional data format in the same way that it is already possible to switch between HDF4 and HDF5. The same API calls will be used for all underlying formats so that their use will be transparent to the calling program. - - - - -The distribution now includes [Peter -Peterson's](User%3APfpeterson.html "wikilink") -[NXtranslate](NXtranslate.html "wikilink") utility to map data in existing -files to NeXus format via XML “translation files”. This application will -aid developers to write NeXus reading applications by converting real -data in a facility-native format to the NeXus standard. - - - - -In addition a [bugzilla server](http://nexus.isis.rl.ac.uk/) has been -established as a clearinghouse for bug reports and feature requests. - -Thursday, June 23, 2005:The NeXus wiki is born. It uses the MediaWiki software that powers [Wikipedia](http://www.wikipedia.org/) and is much more flexible than the [Swiki](http://www.neutron.anl.gov:8080/NeXus) we have been using until now. -Thursday, March 17, 2005:The next meeting of the NeXus International Advisory Committee (NIAC) will be held April 26-28 at the [Bishop's Lodge](http://www.bishopslodge.com/) in Sante Fe, NM. The main task during these three days is to create instrument definitions. - -2004 ----- - -Monday, November 1, 2004:The minutes of the second meeting of the NeXus International Advisory Committee (October 21-22, 2004) are now available. -Wednesday, October 13, 2004:The draft agenda of the upcoming NIAC meeting is now on the NeXus Swiki - we invite comments up to the day of the meeting. -Saturday, October 9, 2004:The new version of the web site has just been installed. The most significant new feature, apart from the change in design is that the recently voted NeXus classes are now displayed in a simplified table format, that we hope is easier to read. This is generated automatically from the XML file so will reflect the latest version at all times. There is still a little cleaning up of the documentation of these classes, with the final CVS uploads occurring at the upcoming meeting of the [NeXus International Advisory Committee](NIAC.html "wikilink"). If you find any errors, please contact the chair (Ray Osborn) or executive secretary (Peter Peterson) of NIAC. -Thursday, August 31, 2004:NXvalid allows a user to look at the contents of a NeXus file, like a graphical version of NXbrowse. The latest version is the first to incorporate the ISAW viewers for plotting 1D and 2D NXdata and NXmonitor. ISAW is a separate application developed at IPNS and needs to be separately installed. If ISAW is not installed, NXvalid will still work, but the viewers will not be available. -Friday, June 4, 2004:The second meeting of the NeXus International Advisory Committee will be held at the Paul Scherrer Institut, near Villigen, Switzerland, on October 21-22, 2004, immediately following NOBUGS 2004. See the NeXus Swiki page for more details. -Thursday, April 15, 2004:NXdir is a console based tool that allows inspecting the contents of a NeXus file. It allows for directory like listing of contents as well as printing out data. Version 0.2.4, which allows the user to select a 1D or 2D NXdata to write out to a file, has just been released. - -2003 ----- - -Friday, September 24, 2003:The minutes of the first meeting of the NeXus International Advisory Committee are now available. -Friday, July 25, 2003:The first meeting of the NeXus International Advisory Committee will be held at the California Institute of Technology, Pasadena, California, USA, from 1:30pm September 8 to 12:30pm, September 10, 2003. See the NIAC 2003 web page for more details. - -2002 ----- - -Saturday, December 14, 2002:Another proposal made at the NOBUGS conference was that we set up an interactive web forum to allow anyone to suggest changes to the NeXus format. We have now set up the NeXus Swiki for this purpose. This is an implementation of a Wiki Wiki Web which allows visitors to edit the web pages directly in their browser. We welcome any constructive contributions, and just ask that you respect the guidelines that are referenced on the Swiki home page. -Monday, December 2, 2002:Following a meeting of NeXus users and developers at the recent NOBUGS conference, we have decided to set up the NeXus Advisory Committee to oversee future developments of the format. The proposed Terms of Reference are given here. The membership of the committee will be nominated by neutron, x-ray, and muon facilities, and announced in the next few weeks. -Saturday, September 14, 2002:This is the official release of version 2.0.0 of the NeXus API. Mark Koennecke and Uwe Filges have produced a version that will read and/or write both HDF4 and HDF5 files. This is transparent to the user (except when he/she is choosing to write either an HDF4 or HDF5 file), i.e., the API calls are identical for both sets of files. Being able to migrate from one underlying format to another is one of the reasons why we developed a separate API, so it is good to see that it works in practice. Also included in this release are two new utilities, NXtoXML and NXtoDTD, which convert existing NeXus files to XML, with and without data values respectively. NXtoDTD can be used to produce the skeleton of a NeXus metaDTD file from an existing NeXus file. -Monday, July 8, 2002:We have created a new XML meta-DTD format for specifying the contents of NeXus files. These files are well-conformed DTD-less XML files, which therefore allow us to use standard XML forms to edit or display them. The aim is to make the instrument and other formats much more formally defined. - -2000 ----- - -Thursday, December 14, 2000:The first public workshop devoted to the NeXus format will occur from March 20-21, 2001, at PSI, near Zurich, Switzerland. Check the NeXus'2001 web page for further details. -Wednesday, December 6, 2000:Version 1.3.3 of the API has been released. It includes a new routine, NXflush, to flush data to the output file, and the new Java API as part of the standard distribution. -Friday, October 20, 2000:Mark Koennecke has released the initial version of NeXus API in the Java programming language. It uses the Java Native Methods Interface in order to access the C language NAPI calls, so it can only be used by Java applications, not by applets. A shared library is needed in order to run a NeXus for Java program. -Tuesday, September 5, 2000:The NeXus FTP site has been moved to a (hopefully permanent) location at <>. The API installation section has been updated accordingly. -Tuesday, June 20, 2000:At the recent NOBUGS III conference, several members of the NeXus design team made presentations of their work on NeXus. Mark Koennecke described a java web-based data server and browser, Przemek Klosowski discussed efforts at NIST to build a Tcl/Tk-based data explorer, and Chris Moreton-Smith presented a proposal to formalize the NeXus format in XML. NeXus was also discussed in a data formats subgroup. Watch these pages for further developments. -Thursday, March 9, 2000:Version 1.3.2 has now been released. It contains some enhancements to the functionality of the NeXus terminal browser, NXbrowse, including the ability to specify the file name in the command line and to dump data into an ASCII file. It also fixes potential problems when compiling on systems which do not use 4-byte int's and simplifies the interface between Fortran and C on Windows systems. See the release notes for more details. -Monday, January 24, 2000:The latest version of the NeXus terminal browser, NXbrowse, is now written in ISO C (NXbrowse.c), and can be installed from the NAPI Makefile (i.e. make NXbrowse). See the section on NeXus browsers for more details. -Four extra routines have been added to the C and F77 core API's. They -are NXgetgroupinfo, NXinitgroupdir, NXgetattrinfo, and NXinitattrdir. -NXinitgroupdir and NXinitattrdir allow the reinitialization of group and -attribute searches using NXgetnextentry and NXgetnextattr respectively. -The NeXus API version number is now 1.3.1. - -1999 ----- - -Tuesday, December 14, 1999:Following popular demand, Mark Koennecke has updated the NeXus API to include data compression. In the core API, compression is invoked by a call to NXcompress between calls to NXopendata and NXputdata. -N.B. Mark Koennecke pointed out that earlier claims that NXcompress -could be used with NXputslab are incorrect; if data are to be -compressed, they must be written in one go using NXputdata. It may be -possible to relax this constraint when appending data along an unlimited -dimension. We will let you know when that's possible. - -The C, F77 and F90 API's have been updated. Data is automatically -compressed in NXUwritedata (currently only a part of the F90 Utility -API) if there has been a call to NXUsetcompress, which defines the -compression algorithm and the minimum size of data set to be compressed -(it makes no sense to compress very small arrays). - -The current version of the NeXus API is v1.3.0. - -Wednesday, November 24, 1999:There was yet another small error in the Fortran 90 example program. The call to NXUwriteglobals did not have the correct syntax. This has prompted a change to NXUwriteglobals to make all the arguments optional, allowing the use of the F90 keyword syntax when only a few attributes are to be written. -Monday, November 22, 1999:The latest version of the ILL's popular data analysis package LAMP is able to read and write NeXus files. Although it normally requires an IDL license, they are also distributing a run-time version for various operating systems. -Friday, November 5, 1999:The NeXus API has been re-released as version 1.2.1 under the terms of the GNU Lesser General Public License. While this maintains the freedom of use of the NeXus API available under the GNU General Public License, it allows commercial developers to incorporate the code into any software that is subsequently sold for profit. We feel that this should be beneficial to the NeXus community in the long run. If you have any comments on this decision, please send them to the NeXus mailing list. -Monday, October 18, 1999:A new version of the NeXus API has been released. It is now version 1.2.0. Check the release notes for information concerning the changes, which mostly involve minor bug fixes. -Monday, September 20, 1999:The NeXus Home Page has been redesigned to make it easier to find individual web pages. If it does not format well in your browser, please let me know. -Friday, September 10, 1999:A small (but significant) error has been corrected in the Fortran 90 example program. The “file\_id” variable should be declared as the derived type NXhandle, i.e. - - - - type(NXhandle) :: file_id - - -and not as a character string. Apologies if that caused any confusion. - -Separate HTML files dedicated to the three language interfaces, C, F77 -and F90 have been added, along with improved navigation aids within -them. - -Thursday, August 19, 1999:The first version of the Fortran 90 API has been installed on the FTP server and updated the API file accordingly. It includes both an F90 version of the core API and a utility API to simplify some of the NeXus file navigation. If they prove useful, we will see if they can be implemented in C and/or F77. -A simple terminal browser for a NeXus file, NXbrowse.f90, has been -written. After compiling, linking, and running, type HELP at the -terminal for a list of available commands (upper or lower case). - -Thursday, August 12, 1999:Freddie Akeroyd has set up an archive of the NeXus mailing list. -The latest version of the NeXus API, which contains changes to the way -NeXus groups are linked, has been installed. The previous method was not -100% reliable. - -Some of the links to Fortner Software have been updated at their -request. - -Saturday, June 5, 1999:Some extra definitions to the NeXus glossary have been added e.g. definitions of NXdetector, NXcollimator, and NXattenuator. These are based on suggestions by Ron Ghosh and Chris Moreton-Smith a while ago, but I never got around to putting them on the web. Please view these definitions critically when you have need to use them. -Friday, April 2, 1999:A site map has been added so that it is easier to find some of the lower-lying web pages. - -1998 ----- - -Wednesday, November 25, 1998:An explicit set of instructions for identifying plottable data has been added, since this is an important aim of the NeXus format. This issue came up in the NeXus mailing list a while ago, but I never added it to the web pages. The instructions reported here will, at some stage, be incorporated into a higher-level suite of API routines. -Friday, November 20, 1998:The first release of HDF5 v 1.0.0 is now available. Only Unix platforms are currently supported, so we will not change the NeXus API just yet. However, preliminary views of the revised HDF API suggest that we can layer the NeXus API transparently on top of HDF5 with no effect on user applications. Since HDF have not yet finalized their plans to ensure backward compatibility, we don't know what the implications for existing NeXus files are yet. I have added some notes to the introduction to the NeXus API. -Friday, September 4, 1998:Mark Koennecke has provided an IDL 5.1 interface to the NeXus API. I have included links to it in the API section. I also updated the Status section. -Friday, April 17, 1998:The NAPI code has been updated on the FTP site to change the type specification in NXgetattr from “char \*data” to “void \*data”. -Tuesday, April 14, 1998:Although there have been no major changes to the NeXus web pages for several months, there has been considerable activity behind the scenes in developing the NeXus API. A CVS (Concurrent Versions System) server has been set up by Freddie Akeroyd to coordinate those involved in developing the NeXus API. The FTP site has just been updated to the latest version of the API, and we intend to provide more examples of its use very soon, in order to make the operation of NeXus easier to understand. -The new version of the API does define the NX\_ datatypes so I have -removed the previous instructions to use the HDF DFNT\_ datatypes in the -API section. From now on, we encourage the use of the NX\_ datatypes to -ensure compatibility with future versions of the API. - -In order to ensure the most efficient reads and writes in each language, -the Fortran API has been amended so that the array index order is -reversed from that in C i.e. a set of time-of-flight spectra for 150 -detectors with 800 time channels would be stored as S(800,150) in -Fortran and S\[150\]\[800\] in C i.e. the actual values are stored in -the same order but addressed differently in the two languages. At the -moment, this means that there would be a discrepancy in the meaning of -the “axis” attribute in NXdata groups, unless the NeXus files are -written and read in the same language. We have not yet decided how to -address this issue, though the most likely is that the “axis” attribute -will have to have different meanings in the two languages i.e. in C, -axis=1 will refer to the first dimension whereas in Fortran, it will -refer to the last. If you have any views on this vexed subject, please -address them to the NeXus mailing list. - -Thursday, February 12, 1998:The latest version of openGenie can read and write NeXus files. Check the openGenie web pages for more details. - -1997 ----- - -Monday, August 25, 1997:A few minor errors in the example programs in the NeXus API section have been corrected. -Following Freddie Akeroyd's suggestion, I have added a conversion table -from C to Fortran for the subroutine arguments. - -Some of the instrument descriptions have been modified to make them -simpler. The aim of this section is to give the minimum required -parameters for meaningful data analysis although, in general, people -will want to store extra information. Installation instructions have -been added to the end of the API section. - -Thursday, August 14, 1997:As I warned, we have moved the FTP site to its semi-permanent location. Look for the API at <>. The web pages have been updated accordingly. -Sunday, August 10, 1997:A discussion of the storage of histograms in NXdata groups to the NeXus structure chapter has been added following some comments by Phil Seeger (LANL). -Phil Seeger also pointed out that we had omitted to specify the storage -of data errors. This has been added to the NeXus glossary. - -Friday August 8, 1997:The FTP URLs have been moved to <> because of some problems with the original server. This is a temporary move, so please check these pages before downloading future versions of the API. -A set of helper routines designed to simplify the base API by combining -multiple function calls into a single function call ,e.g. NXmakedata, -NXopendata and NXputdata, is under development. This may be ready in the -next week, so watch this space. - -There will be a symposium during ICNS'97 in Toronto in order to present -the NeXus proposal to the neutron scattering community, and to receive -feedback on its design. It will be held at 8pm on Tuesday evening in -McLennan Physical Laboratories room 134, adjacent to where the poster -sessions are being held. diff --git a/content/Linking_External_Files.md b/content/Linking_External_Files.md deleted file mode 100644 index 9b62c906..00000000 --- a/content/Linking_External_Files.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Linking External Files -permalink: Linking_External_Files.html -layout: wiki ---- - -Linking External Files ----------------------- - -This discussion is on how to access external files from within a given -NeXus files. This defeats one guiding principle of NeXus: to have -everything in one file, somewhat. However, having everything in one file -can mean replicating large time-of-flight empty can or vanadium datasets -in each data file. In such cases it would be nice to access -transparently an external file holding such data. This page discusses -some of the implementation issues of such a scheme. - -### Storing External File Information - -Somehow the information that an external file has to be accessed must be -stored within the parent NeXus file. Given the feature set of NeXus, I -suggest storing this information as an attribute of a NeXus object. It -would be sensible to restrict this attribute to NeXus groups only. As -the name of the attribute, I suggest **mount** following the example of -HDF-5. The data content of this attribute should be a URL pointing to -the requested file. This not only follows the fashion of the day but -also gives a lot of freedom to implement various file access strategies -and even file formats. As it might be necessary to specify alternative -locations for a given external file, I suggest allowing multiple URLs -separated by :: It must be :: because a single colon can be part of a -valid URL. - -### Implementing External File Access At The NAPI Level - -Various issues have to be adressed when implementing external file -access. The most important one is how to transparently navigate the file -hierarchy resulting from external linking. In order to handle this, I -suggest changing NXhandle. Currently NXhandle maps to a pNexusFunction -structure. Navigating the file hierarchy becomes possible when NXhandle -is modified to become a stack of pNexusFunction structures. All -functions in napi.c would need to be changed to access the bottom -element of this stack. NXopengroup would then be modified to check for -the mount attribute. If the mount attribute is found, NXopengroup would -open the file specified in the URL and push the new pNexusFunction onto -the stack. Likewise NXclosegroup has to check if it is leaving a mounted -file and if this is the case, has to close the file and to pop the -expired pNexusFunction structure from the stack. If we choose to -implement external linking on datasets too a similar scheme would have -to be implemented for NXopendata and NXclosedata. - -### Actually Accessing The External File - -This section is about schemes for actually opening an external file as -specified by a URL. Accessing an external NeXus file within the same -file system is the easiest case: just open the path! It becomes -moderately more complex when accessing NeXus files which are available -through the http or ftp series of protocols. In that case, I suggest -downloading such a file through a suitable library and accessing it in -the cache area. Such a copy and access method would also help minimise -the download of possibly large files as a cache lookup can be -implemented to precede an actual download. A good library to choose for -http and ftp style downloads might be cURL. A -drawback of such a solution (or any general URL solution) is that -another meta data API would be required in order to keep such -information as usernames, passwords and possibly proxy servers. - -The degree of implementation complexity increases when we wish to -support general URL schemes or wish to support files not in a supported -NeXus physical file format. In such cases, a means would be needed to -dynamically add URL handlers to the NeXus-API. However, if we restrict -ourselves to the copy, cache and access scheme outlined above, another -easily implemented option is to call external utility programs for -downloading files into the cache. This solution will appeal to the unix -crowd (including the Macs who are also unix), but might leave the -utility deprived Windows users in a tight spot. The most ambitious -implementation would be to allow loading both file format and URL -handlers dynamically into the NeXus-API. Both are possible but will -cause stability and maintainance problems due to the reliance on many -shared libraries. - -### Summary And Open Issues - -Summing it up, implementing external linking is definitely possible and -implementable within a reasonable amount of time. Group attributes would -have to be implemented first though. Open questions include: - -- Do we restrict external linking to groups? -- Is the suggested path to an implementation acceptable? There might - be others. -- Which level do we implement? - - Local NeXus files only? - - Download, cache, access through a library included with the - NeXus-API? Which library then? - - cURL? - - Download and cache delegated to external programs? - - Dynamically loadable URL Handlers? - - Dynamically loadable physical file format handlers? -- Your question here! - -My two cents worth of opinion: shared libraries always annoy me, I like -big statically built things, especially as disk space is cheap these -days. I would implement a local disk access version first in order to -get the mechanics right, followed by a version implementing the -download, cache and access NeXus files scheme using cURL. Both versions -would restrict external linking to groups. - -Decisions NIAC 2006, ILL, February 2006 ---------------------------------------- - -- mount becomes napimount -- NXinquirefile, which file we are actually -- nxdir expanded to print and copy dependencies -- Files are searched in NX\_LOAD\_PATH -- getenv becomes napigetenv in order to address platform problems with - getenv -- External linking will only implement local linking first. -- If network linking is implemented, the use of libcurl is preferred. -- network linking is deferred, may be indefinitly - diff --git a/content/Membership_Dates.md b/content/Membership_Dates.md deleted file mode 100644 index 3eca3f3d..00000000 --- a/content/Membership_Dates.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Membership Dates -permalink: Membership_Dates.html -layout: wiki ---- - -The members of the NIAC, with the expiration of their membership are -listed below. If a member wishes to be renewed, they must provide a -letter of support from the facility and be approved by the NIAC as -stated in the [constitution](NIAC.html "wikilink"). - - - - -### Expire July, 2023 -- Ray Osborn, Argonne National Laboratory (non-facility representative) -- Tobias Richter, European Spallation Source, Sweden - -### Expire August, 2023 -- Majid Ounsy, Synchrotron Soleil, France - -### Expire December, 2023 -- Bjørn Clausen , Los Alamos Neutron Science Center (LANSCE), USA - -### Expire November, 2024 -- Takahiro Matsumoto, Spring8, Japan -- Luca Geliso, EuXFEL, Germany -- Sandor Brockhauser, NOMAD Data Center (HU Berlin), Germany - -### Expire December, 2024 -- Wout de Nolf, ESRF, France -- Chen Zhang, Oak Ridge National Laboratory (SNS/HFIR), USA - -### Expire September 2025 - -- Herbert Bernstein, CIF community (non-facility representative) -- Thomas Caswell, BNL/NSLS-2, USA - -### Expire October, 2025 - -- Balázs Bagó, the Extreme Light Infrastructure, Czech Republic, Hungary and Romania - -### Expire February 2026 - -- Pete Jemian, APS, USA -- Russ Berg, Canadian Light Source, Canada -- Peter Chang, Diamond Light Source, UK -- Heike Görzig, HZB, Germany -- Paul Millar, DESY, Germany - -### Expire April 2026 - -- Benjamin Watts, SLS, Switzerland -- Mark Könnecke, PSI, Switzerland - -### Expire August 2026 - -- Zdenek Matej - MAX IV, Sweden - -### Expire February 2027 - -- Fernan Saiz, ALBA, Spain -- Aaron Brewster, Lawrence Berkeley Laboratory, USA - diff --git a/content/Metaformat.md b/content/Metaformat.md deleted file mode 100644 index fb6d3d6e..00000000 --- a/content/Metaformat.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Metaformat -permalink: Metaformat.html -layout: wiki ---- - -(*work is currently in progress to replace Meta-DTDs with [XML -schema](Schema.html "wikilink")*) - -The contents of NeXus files are defined using XML. The hierarchical -structure of NeXus files maps very conveniently into XML files with -NeXus groups and items as the XML entities, and data attributes as XML -attributes. NeXus utilities are being developed to help people determine -whether their files are standard-conforming. However, formal XML format -definitions (DTDs) are difficult for the non-expert to read, so we have -produced a much simpler meta-DTD format, which produces well-formed -(DTD-less) XML files that will be converted into DTD files. This page -describes the rules for producing these files - some examples are -available below and in the NeXus content section. The utility NXtoDTD -can be used to generate the skeleton of such a file from an existing -NeXus file; it outputs the XML tags without the data or any annotation. - -Meta-DTD Definition -------------------- - -- Each meta-DTD file should begin with a standard XML document tag, - i.e. - - - - - - -This should be followed by a comment block giving the URL of the XML -file, the name of the editor, the keyword $Id$, which will generate a -revision number when the file is committed to the -[SubversionServer](SubversionServer.html "wikilink"), and a brief description -of the file, e.g. - - - - - -- Each NeXus group is an XML entity defined by its class, e.g. NXuser, - NXdata, .... -- The name of the group is given by the name attribute of the entity. - - - -N.B. XML attributes are the name=“value” pairs located within the -opening tag of the XML entity, e.g. - - - - - - -All other data items are XML entities defined by their name, e.g. - - -- Data attributes are stored as XML attributes. The data type is - defined as an XML attribute although it is not defined as an HDF - attribute in the NeXus file itself, e.g. - - - - - -- If the value of an attribute is not defined by the DTD, a short - description is enclosed within quotes and curly braces, e.g. - - - - - -- Similarly, the value of a data item which is not defined by the DTD - should be placed within curly braces between the opening and closing - tag, e.g. - - - - {Temperature of sample} - -- Following the opening tag of a group entity and before the closing - tag of a data entity, there may be one of three symbols, which have - the same meanings that they have in regular expressions. - - `*` May occur 0 or more times - - `+` May occur one or more times (i.e. at least once) - - `?` May occur 0 or one times (i.e. no more than once) - - -e.g. - - - - ? - {Temperature of sample}? - - - -If no symbol is given, the item is mandatory. - -- If a data item is an array, add the array dimensions in square - brackets to the type attribute. Use a colon if the dimension length - is not defined by the DTD, e.g. - - - - - - -Replace the colon with i, j, ... if you wish to match the dimension -length to other data items within the same group. - -- If no data type is specified, it is assumed to be a character string - (NX\_CHAR). -- The “version” attribute of the “analysis” entity, defined in each - NXentry group should be set to $Revision$ when the file is first - written so that the CVS revision number is substituted when the XML - file is committed to the CVS server, e.g. - - - - - -Example -------- - -The instrument definitions are being constructed out of XML files for -each of the component groups. If you are interested in defining your own -definition, please form them from these component parts (remove the XML -document type at the top of each file). See NXtofnpd.xml for a complete -example. The following is a colorized version of NXmonitor.xml. - -### NXmonitor.xml - - - - - {Distance of monitor from sample} - {Integral over monitor spectrum}? - {Time-of-flight range over which the integral was calculated}? - "Fission Chamber"|"Scintillator"? - {Height of monitor}? - {Width of monitor}? - {Time-of-flight}? - {Monitor efficiency}? - {Monitor data}? - diff --git a/content/MonoXPSD.md b/content/MonoXPSD.md deleted file mode 100644 index 4be84f11..00000000 --- a/content/MonoXPSD.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: MonoXPSD -permalink: MonoXPSD.html -layout: wiki ---- - -Monochromatic Single Crystal Diffractometer with Position Sensitive Detector ----------------------------------------------------------------------------- - -Instrument definition for a single crystal diffractometer at a -monochromatic neutron or X-ray beam. This is the version for a position -sensitive detector. Such an instrument can be used in various ways: - -In one mode the instrument is driven to each reflection individually and -a short scan is performed in order to measure the reflections intensity. -In such cases each reflection should be stored in either separate files -or in separate entries as they constitute separate measurements. - -In another mode a larger range in omega is scanned, saving detector data -at each step. This is similar to the way PX instruments operate. In such -a case, omit the Miller indices in the sample group. - -A Eulerian cradle is assumed. If you do not have this, or you are using -a rotation camera, feel free to adapt the Nxsample group. - -The definition assumes the measurement to be an omega - two-theta or -omega scan of a given reflection. - -This definition is fairly minimal and shall cater for standard data -reduction needs. If your most favourite items are missing, feel free to -add them. If you think something is missing which is required for -standard data reduction tasks, please contact the maintainer of this -definition. - -If you to choose to store PSD scans in separate files or separate -entries, it is the users responsibility to process the data in the right -order. - -NP is again the number of scan points - - - - - + - {Title of the experiment} - {start time of measurement} - - - - - {nominal wavelength selected} - - - + - - {Polar Angle, or two theta as an array with values for each scan point} - - - {The counts detected in the area detector, np is the - number of scan points} - - - {distance to sample position} - - - {offsets of each pixels centers x-value to the detector center} - - - {offsets of each pixels centers y-value to the detector center} - - - - - monitor | timer - - {preset value for monitor or timer} - - - {Monitor counts at each scan point} - - - - - {Descriptive name of sample} - - - { Sample rotation, also known as omega } - - - { chi angle } - - - { phi angle } - - - {Orientation matrix of single crystal according to conventions - established by Busing, Levy, 1967 } - - ? - { Miller indices of the target reflection} - - - + - - {Link to detector counts in NXdetector} - - - {Link to polar angle data in NXdetector} - - - {Link to pixel_offset_x in NXdetector} - - - {Link to pixel_offset_y in NXdetector} - - - - diff --git a/content/MonoXSingle.md b/content/MonoXSingle.md deleted file mode 100644 index 0996348b..00000000 --- a/content/MonoXSingle.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: MonoXSingle -permalink: MonoXSingle.html -layout: wiki ---- - -Monochromatic Single Crystal Diffractometer with Single Detector ----------------------------------------------------------------- - -Instrument definition for a single crystal diffractometer at a -monochromatic neutron or X-ray beam. This is the single detector -version. - -General Notes: - -- A Eulerian cradle is assumed. If you do not have this, or you are - using a rotation camera, feel free to adapt the Nxsample group. -- If you put measurements for multiple reflections in one file, they - should go into separate entries. -- The definition assumes the measurement to be an omega - two-theta or - omega scan of a given reflection. If this is not the case, i.e. a - general scan is performed, feel free to make HKL, chi and phi arrays - with the length of the scan as a dimension. As the NeXus scan - paradigm of the day requires. -- This definition is fairly minimal and shall cater for standard data - reduction needs. If your most favourite items are missing, feel free - to add them. If you think something is missing which is required for - standard data reduction tasks, please contact the maintainer of this - definition. - - - - - - - + - {Title of the experiment} - {start time of measurement} - - - - - - {nominal wavelength selected} - - - + - - {Polar Angle, commonly known as two theta} - {Polar Angle, or two theta as an array with values for each - detector element} - - - {The counts detected in the detector} - - - - - monitor | timer - - {preset value for monitor or timer} - - - {Monitor counts} - - - - - {Descriptive name of sample} - - - { Sample rotation, aslo known as omega } - - - { chi angle } - - - { phi angle } - - - {Orientation matrix of single crystal according to conventions - established by Busing, Levy, 1967 } - - - { Miller indices of the target reflection} - - - + - - {Link to detector counts in NXdetector} - - - {Link to polar angle data in NXdetector} - - - - diff --git a/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.md b/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.md deleted file mode 100644 index 8dee76b7..00000000 --- a/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Monochromatic Neutron and X-ray Powder Diffraction -permalink: Monochromatic_Neutron_and_X-ray_Powder_Diffraction.html -layout: wiki ---- - -Monochromatic Neutron and X-Ray Powder Diffraction --------------------------------------------------- - -Find below my version of a DTD for monochromatic powder diffraction. I -kept it fairly minimal; just the necessary stuff to do a normal Rietveld -with it. - - diff --git a/content/Monochromatic_Neutron_and_X-ray_Reflectometry.md b/content/Monochromatic_Neutron_and_X-ray_Reflectometry.md deleted file mode 100644 index 961ff70c..00000000 --- a/content/Monochromatic_Neutron_and_X-ray_Reflectometry.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Monochromatic Neutron and X-ray Reflectometry -permalink: Monochromatic_Neutron_and_X-ray_Reflectometry.html -layout: wiki ---- - -**Please add comments to the discussion tab of this page and [sign -them](Help:Contents#Signatures.html "wikilink")** - -This proposed instrument definition adds a new class (NXspin) and also -incorporates a few additions to existing base classes. - -Additions ---------- - -### New background [NXcharacterization](NXcharacterization.html "wikilink") type: - -`     specular_offset_background` - -The two existing backgrounds are isotropic\_scatter and -empty\_container. Physically we are moving the detector/sample slightly -away from the specular reflection condition and measuring the strength -of the signal rather than putting an isotropic scatter at the sample -position or leaving it empty. - -Note: this simply identifies the location of the background scan, but -does not specify how the background was measured. - -### Need to know the sample angle. - -Propose adding the following to [NXsample](NXsample.html "wikilink"): - - - {Polar angle of the sample with respect to the beam incident on - the monochromator} - - - {Azimuthal angle of the sample with respect to the beam incident on - the monochromator} - - - {Rotation angle of the sample} - - -These fields are already used in the ratified -[NXmonotas](Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html "wikilink"), -so there should be no problem ratifying them in the base class. - -### Record Spin State - -For polarized neutron reflectometry the control software allows the user -to select and tune a particular spin state. Expressed in terms of the -individual filters and flipper currents, it is difficult to determine -which spin state is desired. Instead the instrument component should -record the target spin state. - -Propose NXspin class to record the target spin at the sample or at the -detector: - - - - - - - {90 for spin up, -90 for spin down} - - - {Constant usually ignored. 0 in the direction of the beam path.} - - - -### Accurate record of the start and stop of every scan - -We need an accurate record of the start and stop of every measurement in -a scan (e.g., to normalize by measurement time, and to correct for He3 -polarizer efficiency decay). - -[NXmonitor](NXmonitor.html "wikilink") already stores count duration. Propose -adding count start\_time as well: - - - {Start time for each scan point} - - -The alternative is to use [NXlog](NXlog.html "wikilink") and assume a -particularly named log corresponds to the -[NXmonitor](NXmonitor.html "wikilink"), with the same length as the measured -points: - - - - - - {Durations of the measurement point np} - - - -The first solution is cleaner. - -Full Definition ---------------- - - diff --git a/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.md b/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.md deleted file mode 100644 index 1ff5f265..00000000 --- a/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Monochromatic Neutron and X-ray Single Crystal Diffractometer -permalink: Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.html -layout: wiki ---- - -Monochromatic Neutron and X-Ray Single Crystal Diffractometer -------------------------------------------------------------- - -This is the instrument definition for a single crystal diffractometer at -a monochromatic beam port, be it X-ray or neutrons. A eulerian cradle is -assumed as the sample positioner. However, with the exchange of a few -fields in NXsample, CAD-4 geometry is covered too. The description also -holds for a rotation camera, just drop the eulerian cradle related -fields in NXsample. - -As the mode of measurement an omega or omega two-theta scan covering a -certain range is assumed. There are instructions how to deal with the -case of a general scans in the DTD's. The common case is that multiple -reflections are scanned in succession; in that case each reflection -should have its own entry in the file. - -There are actually two DTD's which differ only in the NXdetector group: - -- [Four Circle with Single Detector](MonoXSingle.html "wikilink") -- [Four Circle with Position Sensitive Detector](MonoXPSD.html "wikilink") - diff --git a/content/Multi_Method_Instruments.md b/content/Multi_Method_Instruments.md deleted file mode 100644 index 724c9687..00000000 --- a/content/Multi_Method_Instruments.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Multi Method Instruments -permalink: Multi_Method_Instruments.html -layout: wiki ---- - -Multi Method Instruments ------------------------- - -This suggestion is one of the outcomes of the NeXus for Synchrotrons -Workshop at PSI: - -### The Suggestion - -Add to NXentry a new class named NXsubentry which has the same structure -as NXentry. Each NXsubentry is to hold the data or links thereto of a -single application definition in a multi method instrument. - -### The Reasoning - -Synchrotron beamlines often utilise several different detectors and -detector types in order to combine multiple techniques in simultaneous -measurements. NeXus currently asks for separate NXentry groups to be -written for each technique. This is good if one measurement is written -to a file. However, there is a second requirement that multiple scans, -multiple measurements, possibly a whole log of an experimental session -is written to one NeXus file. Then having different techniques in -different NXentries will make the files difficult to understand as the -relationship between different measurements is lost. Thus, in order to -keep the data from these multiple techniques together, it is desirable -to have the ability to write it all into a single NXentry in a NeXus. -The current NeXus application definitions refer to the same names and -paths and so there are many name collisions when trying to satisfy two -application definitions in one NXentry in a file. The ability to combine -application definitions could be enabled by modifying the application -definitions to refer to new and separate groups inside the main NXentry -of the NeXus file that refer to the particular application/technique -name and which contains all of the data (or links to it) that is -relevant to that application/technique. For an example experiment that -involves a combination of SAS and Fluorescence, the proposed NeXus -structure could look like: - - - entry:NXentry/ - definition = "NXSas, NXFluo" - user:NXuser/ - sample:NXsamle/ - instrument:NXinstument/ - SASdet:NXdetector/ - fancyname:NXdetector/ - fancyname2:NXdetector/ - ... - SAS:NXsubentry/ - definition = "NXSas" - instrument:NXinstrument/ - detector:link to SASdet - data:NXdata/ - Fluo:NXsubentry/ - definition = "NXFluo" - instrument:NXinstrument/ - detector:link to fancyname - detector2:link to fancyname2 - data:NXdata/ - -In the above NeXus tree, the entire beamline state could be stored in -entry/instrument and then any subset of this that is relevant to the SAS -or Fluorescence techniques would then be linked within the -entry/SAS/instrument and the entry/Fluo/instrument groups as defined by -the current application definitions with a minor change in the -heirarchy. The advantages of this approach are: - -- Only minor changes from current practice. -- The only name collisions to worry about are the names of the - applications/techniques themselves. -- Application definitions need not be concerned with the names and - paths that other application definitions proscribe. -- The paths for each application remains well defined and an analysis - program for either technique can find the relevant data without - having to understand the other techniques present in the file. - Further, the same analysis programs can read the multi-technique - files in the same way (i.e. with the same code) exactly the same as - they read single-technique files. -- A user inspecting the data manually can find all the relevant - information for a particular analysis in the one group and so - doesn't need to understand the entire beamline. - -One drawback of this approach is that the beamline staff would have to -define many links when configuring the data acquisition software. -However, this is necessary work regardless of how the data is saved -since the user must be informed of how the different instrument -components and detectors relate to the various analyses anyway. In fact, -NeXus and the above proposal simplifies this task by clearly documenting -in a formal manner where the relevant information can be read. - -Some examples of beamlines that would benefit from this proposal -include: - -- Fluorescence + Absorption + Diffraction (Beamline L, Doris, Beamline - P06, PETRA III). -- PX + fluorescence: In PX often a fluorescence-signal is recorded, - especially for SAD-/MAD-measurements (PETRA beamlines P11 P13 P14). -- SAXS+fluorescence: fluorescence is often used as a second signal in - SAXS (PETRA P03). -- SAXS + ellipsometry: Beamline BW4, DORIS - -Summarizing this discussion, the suggestion is to allow NXentry or -possibly new NXsubentry groups underneath NXentry. Each of which can -adhere to a different application definition. All participants agreed -that a good means of handling multi technique instruments in NeXus is -essential for the adoption of NeXus at synchrotron facilities. This is a -MUST HAVE! diff --git a/content/Muon_Time_Differential.md b/content/Muon_Time_Differential.md deleted file mode 100644 index dc1c3567..00000000 --- a/content/Muon_Time_Differential.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Muon Time Differential -permalink: Muon_Time_Differential.html -layout: wiki ---- - -The Instrument Definition for the Muon instruments has evolved from that -proposed in 2001 to the more robust definition outlined in the linked -discussion document (pdfs/Muon_V2R7.pdf). - -For completeness both are discussed in this document; however, the NIAC -are asked to vote on and ratify the 'Muon Instrument Definition: Version -2 - pulsedTD' - -Aspects of the Muon Definition either introduce new NeXus Classes or -extend existing definitions. These are discussed separately in the -linked document (pdfs/Elements_for_Muons.pdf), and the NIAC are asked -to separately consider and ratify these elements that are key to the -Muon definition. diff --git a/content/NAPI_Routines.md b/content/NAPI_Routines.md deleted file mode 100644 index 837a0235..00000000 --- a/content/NAPI_Routines.md +++ /dev/null @@ -1,754 +0,0 @@ ---- -title: NAPI Routines -permalink: NAPI_Routines.html -layout: wiki ---- - -OUT OF DATE ------------ - -This page is now out of date and has been replaced by [Doxygen generated -documentation](https://manual.nexusformat.org/doxygen/html-c/) - -General Initialization and Shutdown ------------------------------------ - -### NXopen - -Opens the NeXus file, and creates and initializes the NeXus file -structure. The returned handle is a pointer to this structure. - -;Usage: - - status = NXopen (file_name, access_method, file_id) - -|- ! rowspan=“2” | Input Arguments | file\_name | char \* | Name of -NeXus file to be opened |- | access\_method | int | - -File Access:NXACC\_READ - read only -NXACC\_RDWR - read and write access - -NXACC\_CREATE - create (HDF4) file - -NXACC\_CREATE4 - create HDF4 file - -NXACC\_CREATE5 - create HDF5 file - -NXACC\_CREATEXML - create XML file - -|- ! | Output Arguments | file\_id | NXhandle \* | Identifier of NeXus -file |} - -### NXclose - -Closes NeXus file and deletes all associated data structures from -memory. - -;Usage: - - status = NXclose (file_id) - -|- ! | Input Arguments | file\_id | NXhandle \* | Identifier of NeXus -file |} - -### NXmakegroup - -Creates a NeXus group at the current level in the group hierarchy, -defining its name and class. This does not open the new group -automatically. - -;Usage: - - status = NXmakegroup (file_id, group_name, group_class) - -|- ! rowspan=“3” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | group\_name | char \* | Name of NeXus group |- | -group\_class | char \* | Class of NeXus group |} - -### NXopengroup - -Opens an existing NeXus group for input and output of data. - -;Usage: - - status = NXopengroup (file_id, group_name, group_class) - -|- ! rowspan=“3” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | group\_name | char \* | Name of NeXus group |- | -group\_class | char \* | Class of NeXus group |} - -### NXopenpath - -Opens a NeXus group or dataset from a path string. The NeXus item must -exist for NXopenpath to work correctly. The path string for NXopenpath -has the same form as a unix path string: /group1/group/group2/dataset. -Both absolute and relative path are supported. - -;Usage: - - status = NXopenpath(file_id, path_string) - -|- | rowspan=“3” | Input Arguments | file\_id | NXhandle |Identifier of -NeXus file |- | path\_string | char\* | path to dataset or group in -NeXus file |} - -### NXopengrouppath - -Opens a NeXus group from a path string. This function is subtly -different from NXopenpath in that it only opens the path to the last -group; it does not open datasets. The NeXus item must exist for -NXopengrouppath to work correctly. The path string for NXopengrouppath -has the same form as a unix path string: /group1/group/group2/dataset. -Both absolute and relative path are supported. - -;Usage: - - status = NXopengrouppath(file_id, path_string) - -|- | rowspan=“3” | Input Arguments | file\_id | NXhandle |Identifier of -NeXus file |- | path\_string | char\* | path to dataset or group in -NeXus file |} - -### NXclosegroup - -Closes the currently open group. If this group is a top-level group -(i.e. with class NXentry), no groups are left open. Otherwise, the next -group up in the hierarchy (i.e. the group containing the currently open -group) is left open. - -;Usage: - - status = NXclosegroup (file_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|} - -### NXmakedata - -Creates a new NeXus data set with the specified name, type, rank and -dimensions. - -;Usage: - - status = NXmakedata (file_id, data_name, data_type, rank, dimensions[]) - -|- ! rowspan=“5” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | data\_name | char \* | Name of NeXus data set |- | -data\_type | int | - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|- | rank | int | Rank of data |- | dimensions | int\[\] | Dimensions of -data. The array is of size 'rank' |} - -### NXcompmakedata - -Creates a new NeXus data set with the specified name, type, rank and -dimensions, compressed using the specified protocol. - -;Usage: - - status = NXcompmakedata (file_id, data_name, data_type, rank, dimensions[], compress_type, bufsize[]) - -|- ! rowspan=“7” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | data\_name | char \* | Name of NeXus data set |- | -data\_type | int | - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|- | rank | int | Rank of data |- | dimensions | int\[\] | Dimensions of -data. The array is of size 'rank' |- | compress\_type | int | - -Compression algorithm:NX\_COMP\_LZW - GZIP -NX\_COMP\_HUF - Skipping Huffman - -NX\_COMP\_RLE - Run Length Encoding - -|- | bufsize | int\[\] | The typical buffersize for writing. |} The -buffersize requires further explanation. HDF-5 compresses data in -chunks. And the buffersize is this chunksize. If data is written in one -go with a NXputdata, this is the dimensions of the data. If data is -written in slabs, this is the preferred size of the slabs. Please note, -that this has only a performance impact when writing, it is no show -stopper. Please note that HDF-4 does not support compression on data -sets written in slabs: If you want compression with HDF-4, data must be -written with one call to NXputdata. Compression is ignored for XML-NeXus -files. - -### NXopendata - -Opens an existing NeXus data set for further processing i.e. reading and -writing data or attributes, defining compression algorithms, and -obtaining data set information. - -;Usage: - - status = NXopendata (file_id, data_name) - -|- ! rowspan=“2” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | data\_name | char \* | Name of NeXus data set |} - -### NXcompress - -Defines a compression algorithm for subsequent calls to NXputdata. This -routine is now deprecated; please use NXcompmakedata instead. - -;Usage: - - status = NXcompress (file_id, compress_type) - -|- ! rowspan=“2” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | compress\_type | int | - -Compression algorithm:NX\_COMP\_LZW - GZIP -NX\_COMP\_HUF - Skipping Huffman - -NX\_COMP\_RLE - Run Length Encoding - -|} - -### NXclosedata - -Ends access to the currently active data set - -;Usage: - - status = NXclosedata (file_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- |} - -### NXsetnumberformat - -Sets the number format when writing to ASCII files. When serializing -NeXus file to ASCII-XML files a format for printing numbers is required. -The NeXus-API has reasonable defaults for this. However, with this -function a desired format can be choosen for special cases. Please note -that calls to this function will be silently ignored for the binary -NeXus formats HDF-4 and HDF-5. - -;Usage: - - status = NXsetnumberformat(file_id,data_type,format_string - -|- ! rowspan=“3” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- |data\_type | int | The NeXus data type for which to -change the print format. - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|- | format\_string | char\* | A ANSI-C language style format string |- -|} - -Reading and Writing -------------------- - -### NXgetdata - -Reads data values from the currently open data set. Please note that -memory overwrite occurs if the caller has not allocated enough memory to -hold all the data available. Call NXgetinfo to determine the required -dimension sizes. The data set must have been opened by NXopendata. - -;Usage: - - status = NXgetdata (file_id, data) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! | Output Arguments | data | void \* | Data values |} - -### NXgetslab - -Reads a subset of the data in the current data set specifying the -starting indices and size of each dimension. The caller is responsible -for allocating enough memory for the data. - -;Usage: - - status = NXgetslab (file_id, data, start[], size[]) - -|- ! rowspan=“3” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | start\[\] | int | Indices of starting values in each -dimension |- | size\[\] | int | Length of slab in each dimension |- ! | -Output Arguments | data | void \* | Data values |} - -### NXgetattr - -Reads attribute values associated with the currently open data set. The -attribute is defined by its name. Attributes are meta-data; data that -provides information on the associated data set such as units, long -names etc. If no data set is open, it looks for a global attribute i.e. -attributes of the NeXus file. The caller is responsible for allocating -enough memory for the attribute values. Note, however, that only the -first 'length' bytes of the attribute are read to prevent memory -overwrite. - -;Usage: - - status = NXgetattr (file_id, attr_name, value, length, type) - -|- ! rowspan=“4” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | attr\_name | char \* | Name of attribute |- | length | -int \* | Length of buffer for storing attribute data |- | type | int \* -| - -Attribute Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|- ! rowspan=“2” | Output Arguments | value | void \* | Value of -attribute |- | length | int \* | Actual length of attribute data |} - -### NXputdata - -Writes data into the specified data set. - -;Usage: - - status = NXputdata (file_id, data[]) - -|- ! rowspan=“2” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | data | void \* | Data values |} - -### NXputslab - -Writes a subset of a multidimensional data array, specified by the -starting indices and size of each dimension, into the currently open -dataset. - -;Usage: - - status = NXputslab (file_id, data, start[], size[]) - -|- ! rowspan=“4” | Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | data | void \* | Data values |- | start\[\] | int | -Indices of starting values in each dimension |- | size\[\] | int | -Length of slab in each dimension |} - -### NXputattr - -Writes an attribute of the currently open data set. If no data set is -open, a global attribute is generated. The attribute has both a name and -a value. - -;Usage: - - status = NXputattr (file_id, attr_name, value, length, type) - -|- ! | Return Value | status | int | Error status |- ! rowspan=“5” | -Input Arguments | file\_id | NXhandle | Identifier of NeXus file |- | -attr\_name | char \* | Name of attribute |- | value | void \* | Value of -attribute |- | length | int | Length of data |- | type | int | - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|} - -### NXflush - -Flushes all data to the NeXus file. Since this command closes and -reopens the file, a new file handle is returned. The command leaves the -program in the same state, i.e. with the same group and/or data set -open. - -;Usage: - - status = NXflush (file_id) - -|- ! | Input & Output Argument | file\_id | NXhandle \* | Identifier of -NeXus file |} - -Meta-Data Routines ------------------- - -### NXgetinfo - -Gets the rank, dimensions and data type of the currently open data set. - -;Usage: - - status = NXgetinfo (file_id, rank, dimensions[], data_type) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! rowspan=“3” | Output Arguments | rank | int \* | Rank of data |- | -dimensions | int\[\] | Dimensions of data |- | data\_type | int \* | - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|} - -### NXgetgroupinfo - -Returns the number of items in the current group, and the name and class -of the current group. - -;Usage: - - status = NXgetgroupinfo (file_id, item_number, group_name, group_class) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! rowspan=“3” | Output Arguments | item\_number | int \* | Number of -NeXus data items in the current group |- | group\_name | char \* | Name -of currently open NeXus group |- | group\_class | char \* | Class of -currently open NeXus group |} - -### NXinitgroupdir - -Initializes directory searches of the currently open group. This is -required to reset searches using NXgetnextentry that may have been -interrupted before completion. - -;Usage: - - status = NXinitgroupdir (file_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|} - -### NXgetnextentry - -Implements a directory search facility on the current group level. The -first call initializes the search and returns information on the first -data item in the list. Subsequent calls yield information about the -remaining items. If the item is a group, its name and class is returned. -If it is a data set, its name and type is returned with a class of -“SDS.” - -;Usage: - - status = NXgetnextentry (file_id, name, class, data_type) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! rowspan=“3” | Output Arguments | name | char \* | Name of NeXus -data item (group or set) |- | class | char \* | Class of NeXus group -(“SDS” for a data item) |- | data\_type | int \* | - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|} - -### NXgetattrinfo - -Returns the number of attributes in the current data set. - -;Usage: - - status = NXgetattrinfo (file_id, attr_number) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! | Output Arguments | attr\_number | int \* | Number of attributes -in the current data set |} - -### NXinitattrdir - -Initializes attribute searches of the currently open data set. This is -required to reset searches using NXgetnextattr that may have been -interrupted before completion. - -;Usage: - - status = NXinitattrdir (file_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|} - -### NXgetnextattr - -Implements a search facility of the attributes of the currently open -data set. The first call initializes the search and returns information -on the first attribute in the list. Subsequent calls yield information -about the remaining attributes. This routine returns global attributes -if no data set is open. - -;Usage: - - status = NXgetnextattr (file_id, attr_name, length, attr_type) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! rowspan=“3” | Output Arguments | attr\_name | char \* | Name of -next attribute |- | length | int \* | Length of next attribute |- | -attr\_type | int \* | - -Data type of next attribute:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|} - -### NXgetgroupID - -Returns the identifier of the currently open group as an NXlink -structure. - -;Usage: - - status = NXgetgroupID (file_id, group_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! | Output Arguments | group\_id | NXlink \* | Identifier of NeXus -group |} - -### NXgetdataID - -Gets the identifier of the currently open data set as an NXlink -structure. Returns NX\_ERROR if there is no open data set. - -;Usage: - - status = NXgetdataID (file_id, data_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! | Output Arguments | data\_id | NXlink \* | Identifier of NeXus -data set |} - -### NXmakelink - -Links a data item (group or set) to a NeXus group. Returns NX\_ERROR if -the current group level is the root level, since no data item can be -linked here. - -;Usage: - - status = NXmakelink (file_id, link) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- ! | Output Arguments | link | NXlink \* | Identifier of linked group -|} - -### NXsameID - -Tests if two data items are the same, i.e. one is linked to the other. - -;Usage: - - status = NXsameID (file_id, link1, link2) - -|- ! rowspan=“3”| Input Arguments | file\_id | NXhandle | Identifier of -NeXus file |- | link1 | NXlink \* | Identifier of first item |- | link2 -| NXlink \* | Indentifier of second item |- |} - -### NXopensourcegroup - -Opens the group from which a linked dataset was linked. This is useful -for accessing auxiliary information related to the dataset. This works -only if the linked dataset is currently open. - -;Usage: - - status = NXopensourcegroup (file_id) - -|- ! | Input Arguments | file\_id | NXhandle | Identifier of NeXus file -|- |} - -Memory Allocation ------------------ - -### NXmalloc - -Allocates memory to the specified data pointer according to the specifed -data type, rank and dimensions. - -;Usage: - - status = NXmalloc (void** data, int rank, int dimensions[], int datatype) - -|- ! | Output Arguments | data | void \*\* | Data pointer |- ! -rowspan=“3” | Input Arguments | rank | int | Rank of data |- | -dimensions | int\[\] | Dimensions of data |- | datatype | int | - -Data Type:NX\_CHAR - Character string -NX\_FLOAT32 - 4-byte real - -NX\_FLOAT64 - 8-byte real - -NX\_INT8 - 1-byte integer - -NX\_UINT8 - unsigned 1-byte integer - -NX\_INT16 - 2-byte integer - -NX\_UINT16 - unsigned 2-byte integer - -NX\_INT32 - 4-byte integer - -NX\_UINT32 - unsigned 4-byte integer - -|} - -### NXfree - -Frees memory allocated to the specified data pointer. - -;Usage: - - status = NXfree (data) - -|- ! | Input Arguments | data | void \*\* | Pointer to the allocated -memory |} - -External Linking ----------------- - -### NXinquirefile - -Queries which file is really active. - -;Usage: - - status = NXinquirefile(handle,filename, filenameLength); - -|- ! rowspan=“2” | Input Arguments | handle | NXhandle | handle to a -currently open NeXus file. |- | filenameLength | int | length of -filename buffer |- ! |Output Arguments | filename | char\* | buffer to -receive filename |} - -### NXlinkexternal - -Links an external file. This happens by creating a group which points to -an external file. Navigating into such a group automatically opens the -external file. - -;Usage: - - status = NXlinkexternal(handle,name, nxclass, nxurl); - -|- ! rowspan=“4” | Input Arguments | handle | NXhandle | handle to a -currently open NeXus file. |- | name | NXname | The name of the group to -link the file to. |- | nxclass | NXname | The NeXus class of the group -to which the external file is to be linked. |- | nxurl | NXURL | An URL -of a format which the NeXus-API understands. The only URL format so far -is: nxfile://path-to-file\#path-to-group-in-file. This consistes of two -parts: The file path and a path to a group in the file which is to be -mapped into the source file. |} - -### NXisexternalgroup - -Tests in the group is an external group. If not, NX\_ERROR is returned. -If yes, NX\_OK is returned and the URL of the external file is copied -into nxurl. - -;Usage: - - status = NXisexternalgroup(handle,name, nxclass, nxurl,nxurllen); - -|- ! rowspan=“4” | Input Arguments | handle | NXhandle | handle to a -currently open NeXus file. |- | name | NXname | The name of the group to -test. |- | nxclass | NXname | The NeXus class of the group to test. |- | -nxurllen | int | length of the nxurl buffer |- ! rowspan=“4” | Output -Arguments | nxurl | char \* | buffer to copy the URL, too. |} diff --git a/content/NAPI_Utility_Routines.md b/content/NAPI_Utility_Routines.md deleted file mode 100644 index b92db06e..00000000 --- a/content/NAPI_Utility_Routines.md +++ /dev/null @@ -1,280 +0,0 @@ ---- -title: NAPI Utility Routines -permalink: NAPI_Utility_Routines.html -layout: wiki ---- - -### NXUwriteglobals - -Writes the global attributes defined in the NeXus standard. Note that -NeXus\_version, file\_name and file\_time are written automatically by -the NeXus API. The attribute arguments are optional, so the F90 keyword -syntax can be used for all of them, *e.g.*, - - status = NXUwriteglobals (file_id, user="Joe Bloggs", email="JB@some.where") - -;Usage: - - status = NXUwriteglobals (file_id, user, affiliation, address, phone, fax, email) - -|- ! rowspan=“7” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | user | character(len=\*) | Name of user |- -| affiliation | character(len=\*) | User's affiliation |- | address | -character(len=\*) | User's address |- | phone | character(len=\*) | -User's telephone number |- | fax | character(len=\*) | User's fax number -|- | email | character(len=\*) | User's email address |} - -### NXUwritegroup - -Creates a NeXus group leaving it open for subsequent data output. - -;Usage: - - status = NXUwritegroup (file_id, group_name, group_class) - -|- ! rowspan=“3” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | group\_name | character(len=\*) | Name of -group |- | group\_class | character(len=\*) | Class of group |} - -### NXUwritedata - -Creates, opens and writes a NeXus data set in the current group. “data” -can be a scalar value, or a one-, two-, or three-dimensional array. If -higher dimensions are required, use the core API (see NXputdata). -“units”, “data\_start” and “data\_size” are optional parameters. If you -want the data set to be compressed, set default compression parameters -in NXUsetcompress. - -;Usage: - - status = NXUwritedata (file_id, data_name, data, units, data_start, data_size) - -|- ! rowspan=“7”| Input Arguments |- | file\_id | type(NXhandle) | -Identifier of NeXus file |- | data\_name | character(len=\*) | Name of -data set |- | data | integer -integer(:) -integer(:,:) -integer(:,:,:) -real -real(:) -real(:,:) -real(:,:,:) -character(len=\*) | Data values |- | units | character(len=\*) | Data -units (optional) |- | start | integer(:) | Starting indices of data slab -(optional) |- | size | integer(:) | Length of each dimension of data -slab (optional) |} - -### NXUreaddata - -Opens and reads a NeXus data set in the current group. “data” can be a -scalar value, or a one-, two-, or three-dimensional array. If higher -dimensions are required, use the core API (see NXgetdata). “units”, -“data\_start” and “data\_size” are optional parameters. - -;Usage: - - status = NXUreaddata (file_id, data_name, data, units, data_start, data_size) - -|- ! rowspan=“4” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | data\_name | character(len=\*) | Name of -data set |- | start | integer(:) | Starting indices of data slab -(optional) |- | size | integer(:) | Length of each dimension of data -slab (optional) |- ! rowspan=“2” | Output Arguments | data | integer -integer(:) -integer(:,:) -integer(:,:,:) -real -real(:) -real(:,:) -real(:,:,:) -character(len=\*) | Data values |- | units | character(len=\*) | Data -units (optional) |} - -### NXUwritehistogram - -Creates, opens and writes a one dimensional NeXus data item with units. -The input “data” are assumed to be histogram bin boundaries, and the -stored data contains the histogram centers, i.e. the stored array has a -dimension one less than the “data”. The “histogram\_offset” attribute is -automatically set to half the width of the first bin, which allows the -regeneration of the bin boundaries by NXUreadhistogram. - -;Usage: - - status = NXUwritehistogram (file_id, data_name, data, units) - -|- ! rowspan=“4” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | data\_name | character(len=\*) | Name of -histogram |- | data | real(:), pointer | Histogram bin boundaries |- | -units | character(len=\*) | Data units (optional) |} - -### NXUreadhistogram - -Opens and reads a one dimensional real data set in the current group. -The data are assumed to be histogram bin boundaries, which are stored in -NeXus files as bin centers with the first bin offset defined as the -attribute “histogram\_offset”, i.e. the returned array has a dimension -one greater than the stored array (see NXUwritehistogram). If the -“histogram\_offset” attribute is not present, it is assumed that the -first bin width equals the separation of the first two bin centers. - -;Usage: - - status = NXUreadhistogram (file_id, data_name, data, units) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | data\_name | character(len=\*) | Name of -histogram |- ! rowspan=“2” | Output Arguments | data | real(:), pointer -| Histogram bin boundaries |- | units | character(len=\*) | Data units -(optional) |} - -### NXUsetcompress - -Sets the compression type to be used in subsequent calls to -NXUwritedata. The second parameter, which is optional, sets the minimum -number of elements in a data set before any compression is performed. -This is to prevent inefficient compression of small data sets. The -default value is 100. - -;Usage: - - status = NXUsetcompress (file_id, compress_type, compress_size) - -|- ! rowspan=“3” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | compress\_type | integer | - -Compression algorithm:NX\_COMP\_LZW - GZIP -NX\_COMP\_HUF - Skipping Huffman - -NX\_COMP\_RLE - Run Length Encoding - -NX\_COMP\_NONE - No compression - -|- | compress\_size | integer | Minimum number of elements in data set -before data compression is attempted. |} - -### NXUfindgroup - -Finds if NeXus group exists in the current group and returns its class. -The returned status is NX\_EOD if the group is not found. - -;Usage: - - status = NXUfindgroup (file_id, group_name, group_class) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | group\_name | character(len=\*) | Name of -group |- ! | Output Arguments | group\_class | character(len=\*) | Class -of group |} - -### NXUfindclass - -Finds if a NeXus group of the requested class exists in the current -group and returns its name. “find\_index” is used when there is more -than one group of the required class; find\_index = 3 returns the name -of the third group found. The returned status is NX\_EOD if no such -group is found. - -;Usage: - - status = NXUfindclass (file_id, group_class, group_name, find_index) - -|- ! rowspan=“3” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | group\_class | character(len=\*) | -Requested class |- | find\_index | integer | Search index |- ! | Output -Arguments | group\_name | character(len=\*) | Name of group with that -class |} - -### NXUfinddata - -Finds if a NeXus data set of the requested name exists in the current -group. The returned status is NX\_EOD if the data set is not found. - -;Usage: - - status = NXUfinddata (file_id, data_name) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | data\_name | character(len=\*) | Requested -data set |} - -### NXUfindattr - -Finds if a NeXus attribute of the current data set exists. The returned -status is NX\_EOD if the attribute is not found. - -;Usage: - - status = NXUfindattr (file_id, attr_name) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | attr\_name | character(len=\*) | Requested -attribute name |} - -### NXUfindsignal - -Finds the NeXus data set in the current group with the required signal -attribute, and returns its name, rank, type and dimensions. The returned -status is NX\_EOD if the signal data set is not found. - -;Usage: - - status = NXUfindsignal (file_id, signal, data_name, data_rank, data_type, data_dimensions) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | signal | integer | Required value of -signal attribute |- ! rowspan=“4” | Output Arguments | data\_name | -character(len=\*) | Data set with required signal attribute |- | -data\_rank | integer | Rank of data set |- | data\_type | integer | Type -of data set (see list of valid data types) |- | data\_dimensions | -integer(:) | Dimensions of data set |} - -### NXUfindaxis - -Finds the NeXus data set in the current group with the required axis and -primary attributes, and returns its name, rank, type and dimensions. -Note that the axis data set should be one-dimensional. The returned -status is NX\_EOD if the axis data set is not found. - -;Usage: - - status = NXUfindaxis (file_id, axis, primary, data_name, data_rank, data_type, data_dimensions) - -|- ! rowspan=“3” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | axis | integer | Required value of axis -attribute |- | primary | integer | Required value of primary attribute -|- ! rowspan=“4” | Output Arguments | data\_name | character(len=\*) | -Data set with required signal attribute |- | data\_rank | integer | Rank -of data set |- | data\_type | integer | Type of data set (see list of -valid data types) |- | data\_dimensions | integer(:) | Dimensions of -data set |} - -### NXUfindlink - -Finds another group to which the currently open data set is linked and -leaves it open for getting associated data. “group\_id” stores the ID of -the original group to enable a subsequent return (see NXUresumelink). -“group\_class” is an optional argument which restricts the search to the -specified group class. The returned status is NX\_EOD if the group is -not found. - -;Usage: - - status = NXUfindlink (file_id, group_id, group_class) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | group\_class | character(len=\*) | Group -classes to be searched. |- ! | Output Arguments | group\_id | -type(NXlink) | ID of current group. |} - -### NXUresumelink - -Returns to the original group from which an NXfindlink call was issued. - -;Usage: - - status = NXUresumelink (file_id, group_id) - -|- ! rowspan=“2” | Input Arguments | file\_id | type(NXhandle) | -Identifier of NeXus file |- | group\_id | type(NXlink) | ID of original -group |} diff --git a/content/NIAC.md b/content/NIAC.md deleted file mode 100644 index 01226fc2..00000000 --- a/content/NIAC.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: NeXus International Advisory Committee -permalink: NIAC.html -layout: wiki ---- - -Current Members ---------------- -- Aaron Brewster, Lawrence Berkeley Laboratory, USA (*Chair*) -- Sandor Brockhauser, Center for Materials Science Data (HU Berlin), Germany (*Executive Secretary*) -- Peter Chang, Diamond Light Source, UK (*Documentation Release Manager*) -- Benjamin Watts, Swiss Light Source, Switzerland -- Mark Könnecke, PSI, Switzerland -- Herbert Bernstein, CIF (*non-facility member*) -- Thomas Caswell, Brookhaven National Laboratory/NSLS-II, USA -- Bjørn Clausen, Los Alamos National Laboratory, USA -- Heike Görzig, Helmholtz Zentrum Berlin, Germany -- Pete Jemian, Advanced Photon Source, USA -- Raymond Osborn, Argonne National Laboratory, USA (*non-facility member*) -- Wout de Nolf, European Synchrotron Radiation Facility, France -- Takahiro Matsumoto, Spring8, Japan -- Balázs Bagó, the Extreme Light Infrastructure, Czech Republic, Hungary and Romania -- Russ Berg, Canadian Light Source, Canada -- Majid Ounsy, Synchrotron Soleil, France -- Chen Zhang, Oak Ridge National Laboratory (SNS/HFIR), USA -- Luca Geliso, European XFEL, Germany -- Paul Millar, DESY, Germany -- Zdenek Matej, MAX IV, Sweden -- Fernan Saiz, ALBA, Spain - -See the page with the [expiration dates](Membership_Dates.html "wikilink") for when the current terms of the various members end and we require a new facility endorsement and vote (see below). - -How to contact the NIAC ------------------------ - -You may contact the NIAC by sending an email to - - -Constitution ------------- - -### Terms of Reference - -The purpose of the NeXus International Advisory Committee is to -supervise the development and maintenance of the NeXus common data -format for neutron, x-ray, and muon science. This purpose includes, but -is not limited to, the following activities. - -1. To establish policies concerning the definition, use, and promotion - of the NeXus format. -2. To ensure that the specification of the NeXus format is sufficiently - complete and clear for its use in the exchange and archival of - neutron, x-ray, and muon data. -3. To receive and examine all proposed amendments and extensions to the - NeXus format. In particular, to ratify proposed application - definitions and base classes, to ensure that the data structures - conform to the basic NeXus specification, and to ensure that the - definitions of data items are clear and unambiguous and conform to - accepted scientific usage. -4. To ensure that documentation of the NeXus format is sufficient, - current, and available to potential users both on the internet and - in other forms. -5. To coordinate with the developers of the NeXus Application - Programming Interface to ensure that it supports the use of the - NeXus format in the neutron, x-ray, and muon communities, and to - promote other software development that will benefit users of the - NeXus format. -6. To coordinate with other organizations that maintain and develop - related data formats to ensure maximum compatibility. - -The committee will meet at least once every calendar year according to -the following plan: - -- In years coinciding with the NOBUGS series of conferences (once - every two years), members of the entire NIAC will meet as a - satellite meeting to NOBUGS, along with interested members of the - community. -- In intervening years, the executive officers of the NIAC will - attend, along with interested members of the NIAC. This is intended - to be a working meeting with a small group. - -### Membership - -The NeXus International Advisory Committee will seek balanced -representation of the international community. It will consist of at -most one voting representative from each major neutron, synchrotron -x-ray, and muon facility. Membership would normally be for a three year -renewable term. Members will be nominated by each facility through the -facility director and approved by the existing committee. Each member -can appoint a substitute to attend a particular meeting. - -The committee reserves the right to appoint additional members for a -limited period to ensure balanced representation. - -### Organization - -Accountability: The NeXus International Advisory Committee will ensure that their decisions are reported both on the NeXus web site and on the NeXus mailing list. Committee business will be conducted either through a mailing list, to which non-committee members can subscribe and whose archive will be available on the web, or through meetings, which will be advertised on the NeXus mailing list and which non-committee members may attend. -The NeXus International Advisory Committee will have the following -executive officers: - -- Chair to oversee committee deliberations -- Executive Secretary to coordinate meetings and online debates. The - person that holds the position does not need to be an existing - member of the NIAC, and does not vote unless he/she is a regular - member. -- Technical Manager with the responsibility to oversee the NeXus API. - The tasks of the manager are to coordinate tests, manage and - announce releases, and promote code from the contributed directory - to the regular release build. The person that holds the position - does not need to be an existing member of the NIAC, and does not - vote unless he/she is a regular member. -- Definition Release Manager with the responsibility to oversee the - release of NeXus definitions and documentation. The person that - holds the position does not need to be an existing member of the - NIAC, and does not vote unless he/she is a regular member. - -All of these officers will be elected for a two year term. The incumbent -chair and executive secretary are limited to two consecutive terms. - -Voting: Only members of the NeXus International Advisory Committee will -be able to vote on specific proposals that come under the remit of the -committee. However, all debates will be conducted publicly and -non-committee members are both allowed and encouraged to participate. - -Topics voted on at the biennial NIAC meetings will require a simple majority unless specifically -challenged by a committee member. In the event of a challenge, the issue -will be presented to the NeXus mailing list inviting comments for a -period of one month. At the end of this period, the challenge can be -overruled by a two thirds majority. - -Voting outside of the biennial NIAC meetings can take two forms. -Firstly, memberships can be approved by email ballot. All other issues -require a vote that receives responses from at least 2/3 of the NIAC -during the following two week voting period. The opening of the -voting period must be advertised through the NIAC mailing list. At the -close of the voting period, NIAC members who have not responded have -abstained (and are not counted towards the 2/3 requirement). Whether the -issue involved is membership or any other issue, the NIAC decision shall -be determined by whatever outcome receives the most votes that are not -abstentions, i.e. the outcome which receives more votes than any other -outcome other than abstention, even if the chosen outcome does not -receive an absolute majority of the votes. - - -The constitution can only be changed by a two thirds majority of the -NIAC. - -Special Interest Groups: The NeXus International Advisory Committee will appoint editors to be in charge of particular groups that wish to specify instrument definitions or develop specialized uses of the NeXus format. The groups will establish their own mode of operation, but will be expected to consult widely with the community relevant to their work, and to refer back to the NeXus International Advisory Committee any matters that involve a change in the current NeXus specification. Specific proposals produced by these groups will be presented to the NeXus International Advisory Committee for comment and formal ratification. - -Meetings --------- - -- [Code Camp June 2023](https://www.nexusformat.org/CodeCampJune2023.html): Code Camp, (virtual) -- [NIAC 2022](NIAC2022.html) NIAC Meeting, (hybrid) - hosted by the Paul Scherrer Institute, Switzerland, September 2022 -- [Code Camp 2022](https://www.nexusformat.org/CodeCamp2022.html): Code Camp, (virtual) -- [Spring 2022 Virtual NIAC](NIAC2022_spring.html) special NIAC Meeting, (virtual) -- [Code Camp 2020-2](CodeCamp2020-2.html) NeXus Code Camp 2020-2, (virtual) - ~~hosted by the [European XFEL](https://www.xfel.eu/), Hamburg, Germany, October 2020.~~ -- [NIAC 2020](NIAC2020.html) NIAC Meeting, (virtual) - ~~hosted by the [European XFEL](https://www.xfel.eu/), Hamburg, Germany, October 2020.~~ - ([minutes](NIAC2020minutes.md)) -- [Code Camp 2020](CodeCamp2020.html): Code camp, - hosted by APS, Chicago, USA, January 2020 -- [NIAC 2018](NIAC2018.html): NIAC Meeting, - hosted by NSLS-II, Brookhaven, USA, October 2018 - ([minutes](NIAC2018Minutes.md)) -- [Code Camp 2017](Code_Camp_2017.html): NeXus Code Camp, - hosted by Diamond Light Source, UK, October 2017 -- [NIAC 2016](NIAC2016.html "wikilink") NeXus Code Camp and NIAC Meeting, - hosted by ESS, Copenhagen, Denmark, October 2016 - ([minutes](NIAC2016Minutes.html "wikilink")) -- [Code Camp 2015](Code_Camp_2015.html "wikilink") NeXus Code Camp, hosted - by DESY, Hamburg, Germany, November 2015 (no minutes) -- [NIAC 2014](NIAC2014.html "wikilink") NeXus Code Camp and NIAC Meeting, - hosted by APS, Chicago, USA, December 2014 - ([minutes](NIAC2014_Meeting#Minutes.html "wikilink")) -- [NIAC 2012](NIAC2012.html "wikilink") NeXus Code Camp and NIAC Meeting, - hosted by ISIS and Diamond at RAL, Oxfordshire, UK, September 2012 - ([minutes](NIAC2012#Meeting_Minutes.html "wikilink")) -- [NIAC 2011](NIAC2011_CodeCamp.html "wikilink") NeXus Code Camp and NIAC - Meeting, APS, October 2011 - ([minutes](NIAC2011_CodeCamp#Final_Report.html "wikilink")) -- [NIAC 2010](NIAC2010.html "wikilink") NeXus Code Camp and NIAC Meeting, - ORNL, October 2010 - ([minutes](pdfs/Minutes_of_NeXus_Committee_2010.pdf "wikilink")) -- [October 16-18 2009](NIAC2009.html "wikilink") NeXus Code Camp, hosted by - APS, Chicago (Evanston, Illinois) (no minutes) -- [October 30-31, 2008](NIAC2008.html "wikilink") at ANSTO, Australia - ([minutes](pdfs/NIAC2008_minutes.pdf "wikilink")) -- [September 24-26, 2007](NIAC2007.html "wikilink") at HMI, Berlin, Germany - ([online](NIAC2007_Minutes.html "wikilink") and [pdf - format](pdfs/NIAC2007HMI_minutes.pdf "wikilink") minutes) -- [October 5-6, 2006](NIAC2006LBL.html "wikilink") at LBL, Berkeley, CA, - USA ([minutes](pdfs/NIAC2006LBL_minutes.pdf "wikilink")) -- [February 1-3, 2006](NIAC2006ILL.html "wikilink") at ILL, Grenoble, - France ([minutes](pdfs/NIAC2006minutes.pdf "wikilink")) -- April 26-28, 2005 at Bishops Lodge in Sante Fe, NM, USA - ([minutes](pdfs/NIAC2005minutes.pdf "wikilink")) -- October 21-22, 2004 at PSI, Villigen, Switzerland - ([minutes](pdfs/NeXusMinutes-Oct2004.pdf "wikilink")) -- September 8-10, 2003 at Pasadena, CA, USA - ([minutes](pdfs/NIAC2003Minutes.pdf "wikilink")) - -NIAC Decisions sorted by Topic ------------------------------- - -This is a collection of past NIAC decisions sorted by topic. This serves -mainly as a reference for NIAC members, hence the recording is rather -terse and not meant for consumption on it's own. - -- [NeXus Design](NIACDesign.html "wikilink") -- [NeXus Classes](NIACClasses.html "wikilink") -- [NeXus API](NIACAPI.html "wikilink") -- [NeXus Documentation](NIACdoc.html "wikilink") -- [NIAC Organisation](NIACOrg.html "wikilink") - -Action Items ------------- - -[Action Items](NIACActionItems.html "wikilink") for members of the NIAC that -are not associated to one of the repositories. - -Sub-Committees --------------- - -The former NeXus Technical sub-committee -that used to host regular teleconference meetings -has been retired. -In the interest of being inclusive and approachable -the sessions are now open to all interested parties. -See the [Teleconferences](Teleconferences.html "wikilink") page for agendas, minutes, and how to join. diff --git a/content/NIAC2-22_fall_minutes.md b/content/NIAC2-22_fall_minutes.md deleted file mode 100644 index 80cb9da8..00000000 --- a/content/NIAC2-22_fall_minutes.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Minutes of the NIAC2022 Fall Meeting -permalink: NIAC2022_fall_minutes.html -layout: wiki ---- - - -Session B: Sept 14th 12:30 UTC ------------------------------- - -NIAC members Present: Sandor Brockhaus (SB), Mark Koennecke (MK), Russ Berg (RB), Ben Watts (BW), Freddie Akeroyd (FA), Peter Chang (PC), -Heike Gorzig (HG), Wout de Nolf (WD), Pete Jemian (PJ), Luca Geliso (LG), Takahiro Matsumoto (TM), Herbert Bernstein (HB) - -non-NIAC Present: Markus Kunbach (Markus), - -BW proposed voting via github thumbs up/down and it was agreed - -SB presented issue 24, Proposal is to allow the "recommended" property (to complement "optional" which can be true or false) to be applied to attributes. https://github.com/nexusformat/NIAC/issues/140 -PJ This "recommended" property has already been approved for fields and groups, so this will just make attributes more consistent. -PJ suggested to add "Developers" as reviewers for pull requests -The proposal was voted on and approved. - -SB preseted issue 3 (Allow NXdata dimension variables to contain a list of strings https://github.com/nexusformat/NIAC/issues/945), -SB this would be an array of strings -PC this issue was voted on and approved back at the spring NIAC -PJ the changes need to be made, will set for next release - -SB presented issue 23, Support for non-dimensional coordinates in NXdata https://github.com/nexusformat/NIAC/issues/139 -MK proposal refers to issues of data processing and thus goes to far for what NEXUS is expected to provide -BW NEXUS has seen this before, NEXUS shouldnt describe how to produce plot, it should make the data accessble only -SB proposal is also to propose future axes as well, -MK this still seems to require more data specializations which -BW NXdata is recomended to exist for each dataset so it should be kept more general and not be too specific about how to produce plotting which is more in teh realm of data processing -WD this can be handled using what already exists by just creating a virtual dataset - -SB presented issue 21, NeXus Ontology v2 https://github.com/nexusformat/NIAC/issues/136 -BW commented The NIAC is pleased to see further development of the NeXus ontology and we encourage you to continue this work. -PJ asked when can this work be included in public docmentation, HG said there are some issues with email addrs? FK mentioned a registration that needed to take place for nexusformat.org -PJ can this be put onto the NEXUS home page, -SB there are also some rendering issues, but once rendered there will be a link that can be used to link to NEXUS homepage - -SB presented issue 22, Group referencing an Application Definition https://github.com/nexusformat/NIAC/issues/138 -MK proposed option D, NXsubentry was created to handle situations like these -BW clarified the use of NXsubentry, where you have a single NXentry and references to other app defs appears in individual NXsubentries of the NXentry -PJ offered that what maybe what SB is looking for is NXnote to describe the process that is planned -BW NXenry is required for each measurement in a sequence, NSsubentry refers to another app def for a simulataneous measurements -MK suggested that what SB is looking for is a workflow software tool several will be presented at NOBUGS conference next week -WD suggested a specific example for future discussion -SB agreed after looking at NXsubentry that it should address this proposal, future discussion likely to follow - - -SB presented issue 19, base classes always extend NXobject. Can a base class extend another base class? https://github.com/nexusformat/NIAC/issues/135 -MK said that NIAC has discussed this numerous times in the past and has reasons for not adopting inheritance for base class definitions -PJ asked what base class needs extension -SB asked if people could reread the issue and continue discussions in next session and/or next week during NOBUGS -BW closed session - - - -Session C: Sept 14th 15:00 UTC ------------------------------- - -NIAC members Present: Raymond Osborn (RO), Aaron Brewster (AB), Sandor Brockhaus (SB), Mark Koennecke (MK), Russ Berg (RB), Ben Watts (BW), -Freddie Akeroyd (FA), Peter Chang (PC), Heike Gorzig (HG), Wout de Nolf (WD), Pete Jemian (PJ), Luca Geliso (LG), Herbert Bernstein (HB), CHen Zhang (CZ) - -BW raised question about when we should adress issue 20, Elect Executive Officers https://github.com/orgs/nexusformat/projects/2/views/1 -consensus was election to occur in third session tomorrow Sept 15, -BW to send an email to NIAC list that that is the plan - - -SB presented issue 27, symbols to be connected to Field values https://github.com/nexusformat/NIAC/issues/141 -MK suggests that a specific example be proposed so that the NIAC would have an actual situation to consider -HB suggests javascript be used to provide the required structure to do what is being asked in regards to math in documentation, hooks would just need to be added into? -AB, BW, SB, MK, RO had discussions trying to clarify the issue, -PJ, MK reminded everyone that adding executable code into a nexus file is a security issue -AB would like a way of using math to describe how to take 2 arrays to create a third -BW there are equations that exist that would produce a denial of service attack on the computer, basically the computation would be so intense as to occupy the entire CPU -HB this is a common problem, many things can occupy the entire CPU, standard code etc, people know better, and this is a neceisity -PC if there was a determined list of approved expressions would that give AB, HB what they need -RB suggested that there be a table called expressions similar to a symbols table, the NXentry would allow expressions to be defined by an applpication definition -the burden of security of executing the expresion is on the community that is backing the application definition -PJ the point of NEXUS is to provide data, not data processing -AB said that at the moment the data isnt 100% useful without the processing so it would be great to find a solution to this -outcome of discusson of just that raised in issue 27 is: NIAC likes the idea of proposed SB and would like SB to produce specific example for the NIAC to review later - - -WD presented issue 102, NXdata: errors on auxiliary signals, https://github.com/nexusformat/definitions/issues/1044 -BW sauggests that we should go a step further and deprecate the "errors" attrubte in favor of VARIABLE_errors -MK in 2018 NIAC decided to deprecate "errors" attribute already, it just hasnt been done yet, so this is more a documentation bug than a change of the standard required -BW adds a comment to issue : NIAC agrees that this is just a documentation bug that should be fixed. Also the errors field was already decided to be deprecated in 2018. -WD assigned to this task - - -RO issue 14, Proposal to add 'angles' attribute to NXdata groups https://github.com/nexusformat/NIAC/issues/102 -RO in the last 30 minutes wanted to have a general discussion about the angles and transformations, -WD would replace the proposal with one that all transformations could be represented by specifying a single transforma matrix -BW this isnt ready to vote on -WD will put forward a proposal as mentioned above -PC requests that there be a human readable field added to the documentation - -AB presented Can we have a standard rule in NeXus to validate presence of one item from a list of possibles? https://github.com/nexusformat/definitions/issues/1002 -AB it is dependant on another issue 1002 -BW was going to do some work on this, it should be possibele to do this, XML will need some crafting, this work doesnt stand in the way of voting on issue 1002 -AB will switch PR to a draft -BW issue 1002 is about making the definition available so that it can be machine readble and validated - - - - - - - - diff --git a/content/NIAC2006ILL.md b/content/NIAC2006ILL.md deleted file mode 100644 index 05b5e0fd..00000000 --- a/content/NIAC2006ILL.md +++ /dev/null @@ -1,220 +0,0 @@ ---- -title: NIAC2006ILL -permalink: NIAC2006ILL.html -layout: wiki ---- - -NIAC Meeting - February 2006 ----------------------------- - -The next meeting of the [ NeXus International Advisory -Committee](NIAC.html "wikilink") will be held at the [Institut Laue -Langevin](http://www.ill.fr) in Grenoble, France. The meeting will be -held from February 1 to 3, 2006, preceded by an informal workshop to -prepare agenda items on January 30-31, 2006. - -Accommodation will be at the ILL/ESRF guest-house (approx 28 Euros per -night bed+breakfast) and a contribution towards meals of about 130 Euros -per person (3 lunches, 2 dinners, coffee etc.), based on 20 -participants. - -If you wish to attend, please contact [Ron Ghosh](mailto:ghosh@ill.fr) -as soon as possible. - -### Proposed Agenda - -Please add suggestions for agenda items here in [ bullet -form](Help:Editing#Lists.html "wikilink"). If you want to add extended -comments concerning any agenda item, please use this Wiki page's [ Talk -Page](Talk:NIAC_Meetings.html "wikilink"). - -- Welcome and Introduction -- Review of NIAC'2005 minutes -- [Renew members](Membership_Dates.html "wikilink") -- Add additional member - Pete Jemian Advanced Photon Source, USA -- Elect [chair and executive - secretary](Nominees_for_officers.html "wikilink") - effective at the end - of the meeting -- Amend constitution to state that all officers, including technical - chair, are elected at each meeting, effective at the end of the - meeting -- Discuss and vote on [TOF raw file definition](TOFRaw.html "wikilink") - -### General Information - -**Arriving at the site** - -Try: - -[`http://www.ill.fr/pages/science/User/UGuide.html`](http://www.ill.fr/pages/science/User/UGuide.html) - -or - -[`http://www.esrf.fr/AboutUs/CompanyInfo/Access`](http://www.esrf.fr/AboutUs/CompanyInfo/Access) - -**General information** - -CIBB->Carl-Ivar Braenden Building is adjacent to the roundabout -before reaching the ESRF main building. Our main meeting room is here on -the second floor. - -Meeting rooms are also foreseen in the ESRF annexe close to the CIBB -building. - -ILL4->The ILL main building (most offices/meeting rooms to be used -are on 1st floor above ground floor) - - Ron Ghosh office ILL4-117 tel. 7178 - Sectretariat - Marie-Rose Guillermet office ILL4-114 tel. 7226 - +33-4 76 20 72 26 - FAX +33-4 76 20 76 48 - -### Meeting layout - -The format of the last meeting at Santa Fe was very productive, and so -similar break-out group meeting rooms are envisaged at this meeting. -Such groups might be - -**technical programming the api** - -'''instruments-1 3-axis/reflection/[SAS](SAS.html "wikilink")/polarised/muons -''' - -- (step-scanning/multi-detector/X-ray/neutron) -- examples... -- update definitions -- prototype treated data - -**instruments-2 TOF inelastic/TOF Powder diffraction** - -- (Principally multi-detector neutron instruments) -- experts from completed instruments offer feedback to the remainder -- example data -- update definitions -- prototype treated data 1D,2D data -- rebinning, constant (Q,w) - -**[Synchrotron\_Group](Synchrotron_Group.html "wikilink") (Andy Götz)** - -- this group will meet separately on the second and third days, and - may be expected to offer objective feedback and criticism on the - NeXus project from their fresh point of view. - -It will be possible, too, to find additional space if other specific -interest groups wish to meet separately. - -We should designate a publication sub-committee to write a report for -Synchrotron Radiation News and Neutron News - -The problem of regular finance of NIAC activities has been posed to the -ILL directors, and one is invited to the opening of the meeting. - -### NIAC Meeting Provisional Timetable - -#### pre-meeting 31st January - -- 0900 onwards ILL4-117 (R. Ghosh) -- 1100 onwards ILL4-158 - - - -- 1400 Planning of discussions (subjects, leaders) -- 1430 Pre-discussions (detector configurations, scanning) -- 1530 Coffee -- 1600 Break out into groups - -#### 1st February - -- 0840 Registration, payment -- 0900 Initial welcome formalities in the CIBB conference room (214) -- 0910 Greeting from one of the directors of the ILL -- 0915 Brief self-presentation of participants and their activities -- 0930 Basic committee business, adoption of new members etc. -- 0945 Overview of aims of public presentation on 2nd Feb. -- 1000 Review of current NeXus design (Ray Osborn) -- 1030 Review of current NeXus API (Mark Koennecke) -- 1045 Coffee -- 1100 Discussion of online documentation -- 1115 Generic scanning discussion -- 1300 Lunch - ILL/ESRF joint restaurant -- 1400 Review of HDF (Elena Pourmal; ESRF3-1-114) -- 1430 Establishment of working groups -- 1445 Break out into working groups (CIBB/ILL4-127/ESRF3-1-114/5) -- 1600 Coffee (CIBB 214) -- 1615 Generic detector discussion -- 1645 Break out into working groups (see below) -- 1930 Dinner - buffet at Guesthouse - -#### 2nd February - -- 0900 Introduction to using UML's and schemas to optimize code - production (Darren Kelly) -- 0930 Break out into working groups -- 1045 Coffee CIBB-214 -- 1100 Break out into working groups (see below) -- 1215 Reconvent in CIBB-214 for review -- 1300 Lunch - ILL/ESRF joint resturant -- 1400 Speakers convene to review presentation - -`        remainder - site visits` - -- 1500 Reconvene in CIBB-214 for review -- 1545 Refreshments on the Mezzanine of the ESRF main building -- 1600 Presentation to ESRF/ILL scientists and engineers (see below) - in the main Auditorium of the ESRF -- 1715 Apperitif for all at presentation, Mezzanine, ESRF -- 1930 Dinner in Grenoble - -#### 3rd February - -- 0900 Plenary review of working group progress (CIBB 214) -- 0915 Discussion of TOFraw proposal (Peter Peterson) -- 0945 Break out into working groups (see below) -- 1045 coffee (CIBB 214) -- 1300 Lunch ILL/ESRF joint restaurant -- 1400 Report from working groups and votes on resulting definitions - (CIBB 214) -- 1500 Discussion of meeting reports and any other business -- 1600 close - -### NeXus Presentation - -- “Welcome” - Ray Osborn (5 minutes) - - - -- “Introduction to NeXus design” - Przemek Klosowski (15 minutes) - - - -- “The potential for NeXus at synchrotron sources” - Andy Götz (10 - minutes) - - - -- “The muon community” - Steve Cottrell (5-10 mins) - - - -- “HDF software and utilities a sound and evolving foundation for - NeXus” - Elena Pourmal (10 minutes) - - - -- “Demonstration” - Ray Osborn (10-15 minutes) - - - -- “Where we are today (and tomorrow) with this must-have solution” - - Darren Kelly (10 minutes) - -### Working Groups - -- [Synchrotron\_Group](Synchrotron_Group.html "wikilink") (Andy Götz) -- [TOF Group](TOF_Group.html "wikilink") (Freddie Akeroyd) -- [Scanning Group](Scanning_Group.html "wikilink") (Paul Kienzle) -- [Technical Computing/API - Group](Technical_Computing/API_Group.html "wikilink") (Nick Maliszewskyj) -- [Small-Angle Scattering Group](SAS.html "wikilink") (Ron Ghosh) - diff --git a/content/NIAC2006LBL.md b/content/NIAC2006LBL.md deleted file mode 100644 index 9bf1c075..00000000 --- a/content/NIAC2006LBL.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: NIAC2006LBL -permalink: NIAC2006LBL.html -layout: wiki ---- - -NIAC Meeting - October 2006 ---------------------------- - -The next meeting of the [ NeXus International Advisory -Committee](NIAC.html "wikilink") will be held at the [Lawrence Berkeley -National Laboratory](http://www.lbl.gov) near San Francisco, California, -USA. The meeting will be held from October 5 to 6, 2006, immediately -following [NOBUGS 2006](http://nobugs2006.lbl.gov/). - -### List of Attendees - -If you are interested in attending (and are not already on the [list of -attendees](NIAC2006LBL_attendees.html "wikilink")), contact [Andrew -Götz](User%3AAndy_Gotz.html "wikilink"). - -### Start of the Meeting - -- You are responsible for your own breakfast and travel to the lab. In - theory there are many people staying at the DoubleTree and the - Durant so carpooling is encouraged. -- Arrive at the badging office and they will give you a visitor badge - and a “blue triangle” parking pass. For those of you without a car - there is a lab shuttle bus that will take you from there to building - two (2). -- We will be starting at 8:30 am (pacific time) in building two (2) - room 100B. This is the biggest room and will be where refreshments - are served. - -### Agenda - -#### Proposed Agenda Items - -- Discuss NeXus collaborating with imgCIF. see [MEDSBIO - proposal](http://www.medsbio.org/) -- Request institutes from the NeXus community sponsor a full-time - technical secretary for next 12-24 months. -- Institutes that write NeXus files are **data providers.**. NeXus - provides an interface between **data providers** and **data - requirers**. Discuss if the NIAC constitution should be change to - allow data requirers e.g. DANSE to have representation on the NIAC - as a stakeholder that requires NeXus. -- SCAN definition similar to TOFRAW definition -- NXcharacterization needs to be formalized -- Finalize [archive definition](Archive_Definition.html "wikilink") - -#### Tabled Until Next Time - -- Moving from [Meta-DTDs](Metaformat.html "wikilink") to XML Schema. see - [NeXML proposal](http://www.webel.com.au/nexml) - -#### October 5 - -- 08:30 Welcome and Introduction -- First buisiness - - Review of NIAC'2006ILL minutes - - [Renew members](Membership_Dates.html "wikilink") - - Add new members - - Jens-Uwe Hoffmann - Hahn-Meitner-Institut Berlin - - Paul Kienzle - DANSE -- Triage - - Define missing agenda items - - Vote on things already ready for voting - - Define working groups and divide items -- 09:30 break -- 09:45 Ratify instrument definitions -- 12:00 break for lunch -- 13:00 Ratify instrument definitions -- 15:00 break -- 15:30 split into groups - -#### October 6 - -- 08:30 Small items (see [Roadmap](NIAC2006LBL_RoadMap.html "wikilink")) - - Examine classes for ratification - - [ X-ray Experimental (Synchrotron) raw NeXus - data](XESraw.html "wikilink") - - [Archive\_Definition](Archive_Definition.html "wikilink") - - - -- - Examine instruments for ratification - - [ Monochromatic Neutron and X-ray Small-Angle - Scattering](SAS.html "wikilink") - - Reflectometry - - [Time-of-Flight\_Neutron\_Indirect\_Geometry\_Spectrometer](Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html "wikilink") - - [Monochromatic\_Neutron\_and\_X-ray\_Triple-Axis\_Spectrometer](Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html "wikilink") - - [Time-of-Flight\_Neutron\_Powder\_Diffraction](Time-of-Flight_Neutron_Powder_Diffraction.html "wikilink") - - [Muon\_Time\_Differential](Muon_Time_Differential.html "wikilink") - - [MonoXPSD](MonoXPSD.html "wikilink") Monochromatic Single Crystal - Diffractometer with Position Sensitive Detector - - [MonoXSingle](MonoXSingle.html "wikilink") Monochromatic Single - Crystal Diffractometer with Single Detector - - - -- ??:?? Triage - -### General Information - -**Accomodations** - -LBL has a list of housing in the area: -[](http://www.lbl.gov/Workplace/near-our-shuttle.html) - -The NOBUGS 2006 conference suggests two hotels: -[](http://nobugs2006.lbl.gov/index.php?content=Lodging) - -#### Room Reservations - -For help in locating the buildings with the meeting rooms, please refer -to the [http://www.lbl.gov/Workplace/lab-site-map.html LBL campus -map](http://www.lbl.gov/Workplace/lab-site-map.html_LBL_campus_map.html "wikilink"). - -| | room | | session | | network | | projector? | | 10/5 | | 10/6 | -|--------------|-----------|-----------|--------------|--------------------|--------------------| -| Bldg. 2-100B | Plenary | wireless | no | 7:00 AM to 6:30 PM | 7:00 AM to 6:30 PM | -| Bldg. 6-2202 | Breakout | wired | yes | 12:00 - 6:30 PM | 7:00 AM - 6:30 PM | -| Bldg. 7-211 | Breakout | wired | no | 12:00 - 6:30 PM | 7:00 AM - 6:30 PM | - -### Working Groups - -#### API/Technical Issues - -- Improving NeXus internal code documention on private structures and - functions. Only API developer needs to know about these, but at the - moment the knowledge is restricted to a few people. The existing - in-code documentation needs to be tidied up and it would be a good - idea if programs such as - [Doxygen](http://www.stack.nl/~dimitri/doxygen/index.html) could - parse it. -- Move from the current [CVS](http://www.nongnu.org/cvs/) (for version - control) / [Bugzilla](http://www.bugzilla.org/) (for bugs/issues) - system to using [Subversion](http://subversion.tigris.org/) / - [TRAC](http://trac.edgewall.org/). Freddie has set up two sites at - [](http://svn.nexusformat.org/code) - and [](http://trac.nexusformat.org) for - testing -- Move mailing list to nexusformat.org -- Determine location to store definitions -- Design and implement a way to deal with having approved definitions - and a way to modify a working copy on the website -- It would be useful if NeXus could support arrays of strings -- Source and target of a link must have same name -- Java package name should be org.nexusformat - -Minutes -------- - -Here are the minutes in [pdf -format](pdfs/NIAC2006LBL_minutes.pdf "wikilink") or [MS-Word -format](NIAC2006LBL_minutes.doc "wikilink"). - -Photos ------- - -- [ Group photos](NIAC2006LBL_photos.html "wikilink") -- [ other photos](NIAC2006LBL_photos_other.html "wikilink") - diff --git a/content/NIAC2006LBL_RoadMap.md b/content/NIAC2006LBL_RoadMap.md deleted file mode 100644 index 58327d1d..00000000 --- a/content/NIAC2006LBL_RoadMap.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: NIAC2006LBL RoadMap -permalink: NIAC2006LBL_RoadMap.html -layout: wiki ---- - -**ALL** neutron definitions **done** ------------------------------------- - -- priority 1 - - Monochromatic Neutron and X-ray Reflectometry - - Time-of-Flight Neutron Reflectometery - - Monochromatic Neutron and X-ray Single Crystal Diffractometers - - [MonoXPSD](MonoXPSD.html "wikilink") Monochromatic Single Crystal - Diffractometer with Position Sensitive Detector - - [MonoXSingle](MonoXSingle.html "wikilink") Monochromatic Single - Crystal Diffractometer with Single Detector - - [Monochromatic\_Neutron\_and\_X-ray\_Triple-Axis\_Spectrometer](Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html "wikilink") - - [Archive\_Definition](Archive_Definition.html "wikilink") - - - -- priority 2 - - [Time-of-Flight\_Neutron\_Powder\_Diffraction](Time-of-Flight_Neutron_Powder_Diffraction.html "wikilink") - - [ Monochromatic Neutron and X-ray Small Angle - Scattering](SAS.html "wikilink") - - Time-of-Flight Small Angle Scattering - - - -- priority 3 - - [Time-of-Flight\_Neutron\_Indirect\_Geometry\_Spectrometer](Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html "wikilink") - - Time-of-Flight Neutron Direct Geometry Spectrometer - - - -- priority 4 - - Time-of-Flight Neutron Single-Crystal Diffractometer - - Time-of-Flight Neutron Spin Echo Editor - -Small Items -=========== - -Axis attributes on fields -------------------------- - -The current documentation describes that the fastest varying dimension -is annotated with “axis=1”. In practice the slowest varying dimension is -“axis=1”. - -Geometry order of operations ----------------------------- - -When looking at a geometry is the orientation applied before the -translation or the other way around. - -[XESraw](XESraw.html "wikilink") ---------------------------- - -scanning environment variables ------------------------------- - -- Make sure we have an example of scanning an environment variable in - scanraw -- Consider how parametric scans will be represented (within and - between entries) - -Later -===== - -- sequencing entries and measurements -- counting time for each data point - - Does this belong to some base class? - - Which one? -- implement a versioning system - - switch to subversion - - use SVN tagging system - -Proposed Agenda Items -===================== - -- Discuss NeXus collaborating with imgCIF. see [MEDSBIO - proposal](http://www.medsbio.org/) -- Request institutes from the NeXus community sponsor a full-time - technical secretary for next 12-24 months. -- (*completed*) Institutes that write NeXus files are **data - providers.**. NeXus provides an interface between **data providers** - and **data requirers**. Discuss if the NIAC constitution should be - change to allow data requirers e.g. DANSE to have representation on - the NIAC as a stakeholder that requires NeXus. -- (*working*) SCAN definition similar to TOFRAW definition -- (*working*) NXcharacterization needs to be formalized -- (*working*) Finalize [archive - definition](Archive_Definition.html "wikilink") - diff --git a/content/NIAC2006LBL_attendees.md b/content/NIAC2006LBL_attendees.md deleted file mode 100644 index 5b7136ad..00000000 --- a/content/NIAC2006LBL_attendees.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: NIAC2006LBL attendees -permalink: NIAC2006LBL_attendees.html -layout: wiki ---- - -NIAC 2006 at LBL List of Attendees ----------------------------------- - -Attendees of the [2006 NIAC Meeting](NIAC2006LBL.html "wikilink") at Lawrence -Berkeley Laboratory, Berkeley, CA, USA. - -| [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | | CCLRC ISIS facility | | DoubleTree | -|----------------------------------------------------------|--------------------------------------------------------------|---------------------------------------------| -| [Stuart Campbell](User%3AStuart_Campbell.html "wikilink") | | Diamond Light Source | | DoubleTree | -| Matthias Drochner | | Forschungzentrum Jülich | -| [Andrew Gotz](User%3AAndy_Gotz.html "wikilink") | | European Synchrotron Radiation Facility | | DoubleTree | -| [Nick Hauser](User%3ANick.html "wikilink") | | Australian Nuclear Science and Technology Organisation | | Durant | -| Jens-Uwe Hoffman | | Hahn-Meitner-Institut | -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | | Advanced Photon Source, Argonne National Laboratory | -| Paul Kienzle | | National Institute of Standards and Technology | -| [Przemek Klosowski](User%3APrzemek_Klosowski.html "wikilink") | | National Institute of Standards and Technology | -| [Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | Paul Scherrer Institut | -| [Laurent Lerusse](User%3AL.lerusse.html "wikilink") | | Rutherford Appleton Laboratory , e-Science | | Durant | -| [Mike McKerns](http://www.its.caltech.edu/~mmckerns) | | CalTech | -| [Ray Osborn](User%3ARay_Osborn.html "wikilink") | | Intense Pulsed Neutron Source, Argonne National Laboratory | | DoubleTree | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | | Spallation Neutron Source, Oak Ridge National Laboratory | | DoubleTree | -| [Thomas Proffen](User%3AThomas_Proffen.html "wikilink") | | Los Alamos National Laboratory | | Berkeley Travelodge, 1820 University Ave. | -| Jiro Suzuki | | J-Parc | - - diff --git a/content/NIAC2006LBL_minutes.doc b/content/NIAC2006LBL_minutes.doc deleted file mode 100644 index 5fdfb2a215ce56793109db833c40d3557c9abc89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138240 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 z&_AJnLH~vxg7|Y`Nv+1u>S~2R$2Qf9VfB8i{LSF)4dzNuhrY)vOe;)>9)Y3fSm|kn z>ChuE^c*Wa-2#{r%2!u~K!resK!resK!resK!resK!resK!resK!resK!resK!res zK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!res zK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!res zK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!res zK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!resK!res zK!resK!w0&An==a-JYD>J$g7ScKfXP9Gw0jW%7z7**Tfsvu0(_>Z6@nsA=@@y^_fr z^Q0+# zZ>`&|!=&5Z%=7sd-DgAXx?isvWgT%{I$(`>c z@R?1CIh0;WoAuU6sKm)UpOo@k4R7(4yer|WmWP}|_9Rl*q^MrZXXqnopri=Bcwll` zDyv(wDnob{H3_@1v)zN-N{91o(uV$!joi_ZagcMNSfZAX_k)}JgY^a3gxC@|sn?b3yp-z-xQ3h~Kx8((J(nB<+i;GYYLq6eNiNR#tmR2O z*QXN8X4F?|*|PM06?Z|ZP~S}6FXruqNY$6(YdaQt1Ir@2mbaJ=QnSH-9wp>qY@chW z>C&`5;kFL`i&JY8@~TN*Y601WO?)8C10mj zo8MBfS=Ug;9`Y|n0(r?rSe0!5q*QlY*G#x9g{!nr5|*tz^tXCd{koid(%XxvTOKpC zDWJWI^oz)2zZ_B}@tMf%k}LY{$r6M-@;(>CPd_h7^SW+X)q3>Q8fDE>n(COGN+Owr zR(HQ_@;yO<<&;}Td9_hU$gXm~)u>mOrq&@15xT;}a;gUVN9$J6wrqc@CupU7Lav3= zK zN%dnTNU5HS$TL2v5oNZ{xhI}VJ=>GETqwy`Nwd_dKK{jCNqQ$uT-WbytUryAv@Qt2 zyie6*`O|^)it(0xujO7NS+41EPRX*W-?D_W_*xI-=dEwLQ*Xz9K(gkjgx<_KH`cOA zaIu$g@8=_ZUq4E+ZRx~{{^u2Gf6Fsz%wGYDvU!aGvO(1+?Uw(sF9;*R64I8EC+Mg= zORx#`d|pB=b3S3@`qa8yQ{_*je=Cr}BV5eMHY+=Ds%$}CRY=aGjK+RxUp(^Ke+ccq zMBe*k-rDXPMGev+$tJCKL=@^@2Y1P;xNH#=`e7Pry{T26h%EA?W0B>|6j{~O!<~@n zLq3gPp>0M~R;~KnN77s2C5>{g^un!`hYK=mY>*FJM*j#IY2+FZvFDJ6X;f6I`cgU? zG*$O2`=wmnFQY6v$feOm{Xo(|EX^c?I{gCavIL^-K$LIudE9aWze9EZL<%eupWxv&UzEZ5m z?FyPC`z&*jA76&_t5cn_|Cxdmv#C31Y& zC{0#)9+(BcUu>&Ku<))t!sK-dS&^{yoJn`Vj%L7J@v`i_H;a>{x9zrn;C2Ta%i9@a z8l(@>)aTZWPH0O5g!Ce`T+#_GS*387r1r!f%amK3f@Ic4OCTHCkaCiyoQmFRzL`h7 zn%l~f)}*>B6xVX6QBEUA?wREk?TJ-e7;7B0IgC4domFm!Fq|wVZ+5=B{)zD`brSIHR z-MrD9J=Zh&V6~$>axNytBeF-gAenXDaYl%joI|~-@k+e&h$GG~%Ml*Or?n}k#vRqH z5nGvc4}WH%g~4)YgpVm$(L(bQNtyd$`$=(u*b$R zYKVw)>r;;j3+a^CXmpp`ZoM@2VDg-r2iiY&U!|tVbqN6M=jTwqu$kOqGOSw=MggUrH!mv7Lj`+!m6BszZGjqKre3=ioHD%k?VAqLtu)s6N$m0up5Lx-6 z6mff{f!8VXJ}7$iUV2m-Sd8V%x?i-@+=FS>q*c}Sk<+?~yr8Vbk(#VdZPn=KQPtyt zdR)(ztXwKzYn9K{TD2@(-d3$S4_uVeo$TAKxtRW`9{0F(&11BBP&)y#4VQifZzkgt z&mu*7xFq#RlA^OwDjz9iWx{*|tyat#dd;?HIl{P;+h2%xwQi%hS3g7h9PchmM;%F4 z*4p3&!pdZ@^LP#vdqLHz*eloG!&2>)F9{K@^UI19b;}32_p~z==6Ui6UdNE}8u!2YS9r>oUP5cte%XfX##XFP&l9xkDBtDiyBLS6{(My{?<3(Q?2N0>*1HX$ zEBx(EZI@xbq1qdHKlQ8DempN&NNwuP1$@daSRAZStqlEVOU~OaY;t{(1g=*e zD32&5NkBv`oI(wj+4>RIer2=5F^?2NO)4dwE%LEtXcchC#uNSeUmgpph1oeN#Nrc%I-`Md^xHwEyNgl1ffOdUe)xY^0 z$1T#9@}8~`mPKiY%q@{;^NcrWh3cP8i_T+JXf`XkLa7*=DB8*Uy3y{kdP_A(8≺ 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 XSMx&7*|d+x(SxXeG*!>)Z_NJ(${#t_ diff --git a/content/NIAC2006LBL_photos.md b/content/NIAC2006LBL_photos.md deleted file mode 100644 index 0dcc63d5..00000000 --- a/content/NIAC2006LBL_photos.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: NIAC2006LBL photos -permalink: NIAC2006LBL_photos.html -layout: wiki ---- - -Photos from NIAC 2006 at LBL -============================ - -NIAC2006LBL-PRJ4.jpg --------------------- - -![ NIAC2006LBL-PRJ4 image | -600px](NIAC2006LBL-PRJ4.jpg " NIAC2006LBL-PRJ4 image | 600px") - -NIAC2006LBL-PRJ5.jpg --------------------- - -![ NIAC2006LBL-PRJ5 image | -600px](NIAC2006LBL-PRJ5.jpg " NIAC2006LBL-PRJ5 image | 600px") - -NIAC2006LBL-PRJ6.jpg --------------------- - -![ NIAC2006LBL-PRJ6 image | -600px](NIAC2006LBL-PRJ6.jpg " NIAC2006LBL-PRJ6 image | 600px") - -NIAC2006LBL-PRJ7.jpg --------------------- - -![ NIAC2006LBL-PRJ7 image | -600px](NIAC2006LBL-PRJ7.jpg " NIAC2006LBL-PRJ7 image | 600px") diff --git a/content/NIAC2006_Scanning_Group.md b/content/NIAC2006_Scanning_Group.md deleted file mode 100644 index c81253cf..00000000 --- a/content/NIAC2006_Scanning_Group.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -title: NIAC2006 Scanning Group -permalink: NIAC2006_Scanning_Group.html -layout: wiki ---- - -Definitions for some measurement classes: - -- Triple axis definition: - [NXmonotas-NIAC2006](NXmonotas-NIAC2006.html "wikilink") -- Reflectometry definition: - [NXmonoref-NIAC2006](NXmonoref-NIAC2006.html "wikilink") -- TOF Reflectometry definition: - [NXtofnref-NIAC2006](NXtofnref-NIAC2006.html "wikilink") - -Session 1 ---------- - -- Paul Kienzle (NIST) -- Nick Maliszewskyj (NIST) -- Stephen Cotrell (RAL) -- Ron Ghosh (ILL) -- Mark Konnecke (PSI) -- Laurent Lerusse(RAL) -- Stefan Flemming (HMI) -- Jens-Uwe Hoffmann (HMI) - -1. A scan is a set of tuples. - -The intention is to associate intensity data with a collection of -independent variables (e.g., motor positions, tunable physical -quantities, etc.). - -Scan dimension is the slowest moving dimension, and is of length np -(number of points). - -Scans can be an extension to “sit and count” measurements and may -therefore be applied to parametric studies (e.g., varying sample -temperature). - -2. Components of the tuples are stored in separate vectors in the -instrument definition. - -Components/environment parameters which can change during the scan may -have an additional scan dimension, as will monitors and detectors. -Scalars become vectors. - -The vectors are stored where they usually are in the instrument -definition, and linked to from NXdata. We rejected the idea of storing -an arbitrary state in the instrument definition and storing the vectors -in a new NXscan class even though this would mean that further entries -in the file could link to the instrument rather than having to copy all -the details of the instrument definition. - -3. Multidetector systems have an additional dimension, nd the number of -detectors. - -Some instruments have multiple moving detectors, e.g., separated by 5 -degrees. If these are fixed relative to each other and do not have an -analyzer then the resulting bank of detectors can be treated as a linear -detector with gaps and no special encoding is needed. - -If the detectors can move relative to each other, or if they have -separate analyzers, then we need a bank of detectors and analyzers. The -Q/HKL coordinates are defined in NXsample as usual, but there is an -additional leading dimension of length nd for each detector angle and -analyzer. Quantities that can be used as dimension scales must have the -same dimensionality as the stored dataset (to make the association of -intensity data with the other members of the measurement tuple). - -4. Optional components such as polarizers and analyzers are listed. - -Optional components possibly appear on the particular class of -instrument though not required. Software which claims to fully support -e.g. monochromatic reflectometers should treat polarizers and analyzers -correctly. - -5. Sample contains optional momentum transfer |Q| for powder data -samples with no HKL. - -6. Agree on the definition of sample. - -7. Agree to not included scan range metadata in the file. - -Applications which want to help the user select the appropriate runs -will need to keep track of the range of data in the datafiles -themselves. This may be part of the data catalogue at the institution -(but not explicitly in the datafile?). - -Session 2 ---------- - -Present: NickM, MarkK, PaulK, MatthiasD, Jens-UweH - -- How are detectors associated with detector number in the bank of - analyzer case? Or is there only one detector with an additional - dimension? \[option 2\] - - - -- Are we using names such as precollimator\_analyzer or are we using - NXgeometry.component\_index instead to figure out where things are. - Latter is slightly more work for reduction, but otherwise better. - \[answer: use symbolic name in NXdata and link to appropriate - element for varying; can reconstruct order from geometry; - NXgeometry.component\_index is required for each component; names of - particular components are part of the definition, matching the names - in the NXdata\] - - - -- What happens with multiple beam paths? \[ignore this issue for now - since we invented analyzer banks\] - - - -- How do we know it is a scan? -- What about scan intent, such as spec/back/slit and ++/-- - polarization? -- Where to store start time for each measurement? - - NXmonitor? Okay. - - NXdata? Data doesn't otherwise contain data. - - NXentry? Okay. - - New NXscan class? Too complex, unless needed for other things. - - NXlog? No synchronization with scan points in general. - - NXsample? Maybe. - - - -- Definition should list fields and maybe attributes needed for - standard reduction for that instrument class; others should be - dropped from definition. \[agreed elsewhere\] - - - -- Monitor and detector need efficiency and dead time correction - information \[out of scope\] - - - -- Need NXbeamstop for details such as shadow on the detector. - - - -- Polarizer/flipper: reduction only wants the angle of incidence on - the sample, not things such as flipper current from which it is - derived. Alternatively, use a scan intent tag such as - polarization=++. \[unresolved\] - - - -- Links to calibration files \[out of scope\] - - - -- Partial reduction \[out of scope\] - - Summary data - - treated data - - excluded data - - resolution function - - - -- TAS \[agreed\] - - Fewer collimator types available than in NXcollimator...is this - what we want? Similarly for filter. \[use base component as is\] - - HKL in sample rather than detector still feels wrong. - \[overruled\] - - Add efficiency, deadtime and sampled portion to monitor - description \[out of scope\] - - Polarization analysis: - - Store cross section measurements in separate NXentries - \[agreed\] - - Need refinements to NXflipper, NXpolarizer base classes - \[deferred\] - - Still need symbolic means of identifying which cross section - is which \[deferred\] - - - -- Reflectometry \[good progress\] - - Generic scan for things which are not reflectometry - measurements? \[out of scope\] - - How to link to background and slit scan? \[deferred\] - - NXcrystal is missing wavelength spread \[calculate from mosaic\] - - How to store slits; how to reference in-plane and out of plane - slits? \[box or slit; need 'vertical/horizontal slit' shapes in - NXshape\] - - Raw counts may be meaningless without normalization. - \[deferred\] - - Combine spec, back, slit, rock for all +- polarization in one - entry? Or use separate entries? \[separate\] - - Scan start times \[in NXlog called 'timer'\] - -Note: Paul Kienzle added wavelength\_spread back into NXcrystal. May -want to simply list the formula for calculating it from other NXcrystal -fields instead. diff --git a/content/NIAC2006_Synchrotron_Group.md b/content/NIAC2006_Synchrotron_Group.md deleted file mode 100644 index 338ceadf..00000000 --- a/content/NIAC2006_Synchrotron_Group.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: NIAC2006 Synchrotron Group -permalink: NIAC2006_Synchrotron_Group.html -layout: wiki ---- - -Nexus – Synchrotron breakout group ----------------------------------- - -These are notes from our first discussion on 2006-02-01 - -present : AG (ESRF), RW (ESRF), PJ (APS), CM (Soleil), SP (Soleil), SC -(Diamond), LL (CCLRC,RAL) - -RW – ESRF has their own format but willing to adopt - -PJ – need an international collaborative effort, EPICS low level - -SP – Soleil has adopted Nexus, need tools, developed a tango generic -system store data in Nexus, NO DATA to store yet, need to start quickly -to store data, do not need a complete DTD - -SC – committed to Nexus, MX beamlines will store imageCIF, prefer to -store data in Nexus in the long term, EPICS low level simulators, simple -classes to start with - -LL – working on catalogue information, TOF meta-data definition, data -portal to access different type of data for modelled and measured data - -PJ – basic questions about which class contains which ? - -### PROPOSED CLASSES - -- COMMON - - source - - insertion device - - bending magnet - - - -- INSTRUMENTS - - tomography - - pin hole saxs - - exafs - - powder diffraction - - single crystal diffraction - - protein crystallography - - - -- BEAMLINE COMPONENTS - - bpm - - goniometer - - - -- DETECTORS - - ccd - - psd - - ionisation chamber - - opaque data (image plates, other large data slugs) - -#### NXsource additions - -| Name | Type | Description | -|---------|---------------|------------------------------------------------------| -| mode | | NX\_CHAR | | synchrotron mode e.g. single bunch, multi bunch... | -| top\_up | | NX\_BOOLEAN | | flag indicating top-up mode | - -NXsource is more like NXfacility for us - -#### NXinsertion\_device - -| Name | Type | Description | -|-----------|-------------|--------------------------------------------| -| name | | NX\_CHAR | | name of insertion device (ID33, UD02) | -| type | | NX\_CHAR | | undulator, wiggler, ... | -| gap | | NX\_FLOAT | | gap in mm | -| taper | | NX\_FLOAT | | taper in mm | -| phase | |NX\_FLOAT | |phase in degrees | -| poles | |NX\_INT | |number of poles | -| length | |NX\_FLOAT | |length of insertion device | -| power | |NX\_FLOAT | |total power delivered by insertion device | -| energy | |NX\_FLOAT | |energy of peak | -| bandwidth | |NX\_FLOAT | |bandwidth of peak energy | -| harmonic | |NX\_INT | |harmonic of peak | -| spectrum | |NXdata | |spectrum of insertion device | -| geometry | |NXgeometry | |position, orientation of insertion device | - -#### NXbending\_magnet - -| Name | Type | Description | -|-----------------|-------------|--------------------------------------------| -| name | | NX\_CHAR | | name of bending magnet | -| critical energy | | NX\_FLOAT | | critical energy | -| bending radius | | NX\_FLOAT | |   | -| spectrum | |NXdata | |spectrum of insertion device | -| geometry | |NXgeometry | |position, orientation of insertion device | - -### Questions - -1. Can we have NX\_BOOLEAN ? -2. Do we have to use microamp units for current ? -3. Why is NXmonitor not NXdata ? - -### IDEAS - -NXbeam\_position\_monitor could be a separate class (subclass of NXlog) -? diff --git a/content/NIAC2006_TOF_Group.md b/content/NIAC2006_TOF_Group.md deleted file mode 100644 index bcf90f8f..00000000 --- a/content/NIAC2006_TOF_Group.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: NIAC2006 TOF Group -permalink: NIAC2006_TOF_Group.html -layout: wiki ---- - -Time-of-Flight Working Group ----------------------------- - -- [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") -- [Franck Cecillon](User%3AFranck_Cecillon.html "wikilink") -- [Ray Osborn](User%3ARay_Osborn.html "wikilink") -- [Peter Peterson](User%3APeter_Peterson.html "wikilink") -- [Thomas Proffen](User%3AThomas_Proffen.html "wikilink") -- [Jiro Suzuki](User%3AJiro_Suzuki.html "wikilink") - -This group was charged with discussing matters arising from the [NXTOFRW -- NeXus Time-of-Flight Raw File Format (simple sit and count -case)](TOFRaw.html "wikilink") proposal in preparation for a full group -discussion. - -Summary of main proposals in [TOFRaw](TOFRaw.html "wikilink") --------------------------------------------------------- - -1. Some new meta-data names in NXentry for archiving and cataloguing of - data -2. Some thoughts about scans (now moved to - [NXTOFRWSC](TOFRawScan.html "wikilink") and being considered by the - [Scanning Group](Scanning_Group.html "wikilink")) -3. General and Area detector specific NXdetector -4. Additional options for specifying pixel geometry with area detectors - (edges, corners, etc.) -5. New NXdetector\_groups class for logically grouping and labelling - detector elements -6. Representing hardware ganging of detectors - -General, linear and Area detector specific NXdetector ------------------------------------------------------ - -In all the definitions below we will leave out the Time-of-flight array -index as what we are discussing is equally valid for non time-of-flight -instruments. One new member of type NXgeometry called **origin** is -introduced into all NXdetectors - this member is used to define a -logical centre of the detector and its [NXshape](NXshape.html "wikilink") -member defines a bounding box for the whole detector bank/array. If the -[NXgeometry](NXgeometry.html "wikilink") instance **geometry** within -NXdetector is used to specify pixel locations, it should be define -positions relative to this detector origin. - -### Inheritance of definitions - -To aid with making definitions clearer we spent some time considereing -an inheritance system for NeXus. One method would be to use a period (.) -in a class name to denote inheritance and so define classes called -NXdetector.area and NXdetector.point which would imply they inherited -from NXdetector. The API would need a minor change so that is you asked -for **getnext(“NXdetector”)** it would not look for an exact match of -this string, but look for any NeXus class that started with the prefix -“detector” and so would return either an NXdetector.area or -NXdetector.point etc. By using this (.) method the reading API does not -need to know about separately about the inheritance structure as it is -encoded in the name of the item when it is written by the API. - -Though we would not introduce such inheritance into the API at thois -instance, it is something that is needed. For the moment we will just -have an NXdetector with the **layout** variable indicating the type -(area, point or linear) - -### NXgeometry revisited - -Before giving the definitions a quick recap of -[NXgeometry](NXgeometry.html "wikilink") is in order. This class, through its -members [NXtranslation](NXtranslation.html "wikilink"), -[NXorientation](NXorientation.html "wikilink") and -[NXshape](NXshape.html "wikilink"), allows the position, orientation and -physical extent (size) of an object, or set of objects, to be specified. -Translation and orientation can be relative i.e. with respect to an -arbitrary origin whihc is just another -[NXgeometry](NXgeometry.html "wikilink") object which defines a point in -space and a set of default axes directions. When we write -**NXgeometry\[i\]** in the definitions below we do not mean an array of -NXgeometry object (which is not allowed by NeXus) - instead we are using -this as shorthand for indexing the **numobj** array dimension the -[NXtranslation](NXtranslation.html "wikilink"), -[NXorientation](NXorientation.html "wikilink") and -[NXshape](NXshape.html "wikilink") objects within the -[NXgeometry](NXgeometry.html "wikilink") - -### Type 1: Point Detector - -A point detector is the most general case and represents a collection of -pixels **i** over some surface. Within the NXdetector all pixels -properties would be indxed by **i** e.g.: - -- NX\_CHAR layout = “point” (Really an Enum) -- NX\_INT counts\[i\] -- NX\_FLOAT polar\_angle\[i\] -- NX\_FLOAT distance\[i\] -- NX\_FLOAT solid\_angle\[i\] - -If desired, additional information about each pixel (shape, engineering -position) can be added via an - -- NXgeometry geometry\[i\] \# for each pixel - -instance **geometry**. Any detector can be represented by this general -case, though in the case of e.g. flat rectangualar detectors it is -useful to make use of simplifications introduced by this topology (see -below). - -### Type 2: linear Detector - -Here we mean a collection of linear straight strips e.g. tubes. We have -two indicies: **j** will label the strip/tube and **i** the position -along the tube. All tubes must have the same number of pixels; if not, -you must use the point detector representation above. The tubes do not -need to be parallel - they just need to be straight. Thus: - -- NX\_CHAR layout = “linear” (Really an Enum) -- NX\_INT counts\[j,i\] -- NX\_FLOAT polar\_angle\[j,i\] -- NX\_FLOAT distance\[j,i\] -- NX\_FLOAT solid\_angle\[j,i\] - -So far this just looks like the point detector, but with two array -indices rather than one. However when we start adding geometry -information the differences become more clear. As the tubes are straight -we need only specify a location of the tube centre and an offset along -the tube. Thus: - -- NXgeometry geometry\[j\] \# defines tube/strip centre; each NXshape - member give the tube size and shape; each NXorientation member - rotates the axes such that **x** points along each tube. -- pixel\_offset\[i\] \# offset from tube centre of each pixel centre -- pixel\_size\[i\] \# size of each pixel - -### Type 3: Area Detector - -Here we have a rectangle for which each position can be defined by two -indices: **i** will label the pixel along the local detector **x** axis -and **j** the pixel along the local y axis. Using a third index **k** -allows us to represent a group of such detectors so: - -- NX\_CHAR layout = “area” (Really an Enum) -- NX\_INT counts\[k,j,i\] -- NX\_FLOAT polar\_angle\[k,j,i\] -- NX\_FLOAT distance\[k,j,i\] -- NX\_FLOAT solid\_angle\[k,j,i\] - -As the detector is a rectangle we just need to specdify x and y offsets -from the centre to indicate each pixel. Thus: - -- NXgeometry geometry\[k\] defines each detector centre and extent -- pixel\_offset\_x\[k,i\] \# offset from detector centre of each - pixel's x centre -- pixel\_offset\_y\[k,j\] \# offset from detector centre of each - pixel's y centre -- pixel\_size\_x\[k,i\] \# x extent of pixel -- pixel\_size\_y\[k,j\] \# y extent of pixel - -Hardware detector ganging -------------------------- - -[TOFRaw](TOFRaw.html "wikilink") originally suggested using an **\_unganged** -suffix on the ungrouped elements e.g. polar\_angle\_unganged. It was -decided that creating a substructure within the NXdetector and putting -the information there was better so we will now have e.g. - -- detector.counts\[i\] - grouped values -- detector.polar\_angle\[i\] - grouped values -- detector.detector\_number\[i\] - identifier for each grouped - detector -- detector.gang.polar\_angle\[j\] - raw values -- detector.gang.detector\_number\[j\] - identifier for each raw - detector - -As for showing the mapping scheme, a simple scheme would be - -- detector.gang.grouping\[j\] - gives the grouped value **i** - appropriate for each detector element **j** (only allows 1->1 - mapping) - - - -- An alternative is the gang\_count and gang\_index method in - [TOFRaw](TOFRaw.html "wikilink"), but this does require sorting of the - polar\_angle etc. arrays prior to writing to the file - -Proposals ---------- - -1. That the new data items in required in NXentry and NXuser for - archiving be ratified. [Laurent - Lerusse](User%3AL.lerusse.html "wikilink") has volunteered to produce a - description such that any instruement definition that wishes can - “conform to” this. -2. That NeXus implement inheritance in definitions and classes by a - method yet to be finalised. -3. That the three types of detector representation are accepted - diff --git a/content/NIAC2007.md b/content/NIAC2007.md deleted file mode 100644 index 56232f76..00000000 --- a/content/NIAC2007.md +++ /dev/null @@ -1,316 +0,0 @@ ---- -title: NIAC2007 -permalink: NIAC2007.html -layout: wiki ---- - -NIAC Meeting - September 2007 -============================= - -The next meeting of the [ NeXus International Advisory -Committee](NIAC.html "wikilink") will be held at the -[Hahn-Meitner-Institut](http://www.hmi.de) in Berlin, Germany. The -meeting is planned for September 24-26, 2007. - -Location --------- - -In the [map of the area](http://www.hmi.de/hmi/gebaeudeplan.pdf) you -find the gate called “Pforte”. On the backsite is the cantina. The guest -house is in building U. The room LS 206 is in the building LS on the -first flour and sign with “BENSC Seminarraum”. - -The office of Jens-Uwe Hoffmann is in A 241 (1st flour). - -Accommodation -------------- - -Accommodation will be at the HMI guest-house on the [HMI campus -Wannsee](http://www.hmi.de/hmi/standorte_en.html#Wannsee). The rate for -a single room is for the first overnight stay 34€ and 24€ for every -following one (double room 52€/34€). *It is not possible to pay with -credit card, sorry.* [ Jens-Uwe -Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink") -[1](mailto:hoffmann-j@hmi.de) is you local contact for reservation and -access authorization, please send your name, address and your **passport -number**. It is not possible to pay by credit card, sorry. - -Arriving information [to Berlin -Wannsee](http://www.hmi.de/hmi/wegwannsee_en.html). - -**Sunday Special** - -On Sunday you must take the bus from the station in Wannsee to -Wilhelmplatz with line 118. - -To plan your trip from the airport Tegel to the HMI use this link - -;&to=Wilhelmplatz%20%26%23x0028;Berlin%26%23x0029;&REQ0JourneyStopsSA1=1&REQ0JourneyStopsZA1=1&&) - -you have only set your departure time/date and click the button “search -connection”. - -Please note, you must walk form the bus stop Wilhelmplatz, -straightforward on the Schäferstraße and Glienicker Staße to the end. - -=&saddr=52.412969,13.141859&daddr=Glienicker+Stra%C3%9Fe+100,+Wannsee+14109+Berlin,+Berlin,+Berlin,+Deutschland&mrcr=0&mrsp=0&sz=16&mra=dme&sll=52.411988,13.139091&sspn=0.008874,0.016437&ie=UTF8&z=16&om=1 - -Check-in for the guest house is at the HMI gate. There you get you -badge. - -The cantina is open for breakfast at 8:30 on Monday. - -Conference Fee --------------- - -We impose a conference fee of about 100€ per person for coffee, lunch, -etc. For bank information follow this link: -[](http://www.hmi.de/bensc/misc/flat-cone/nexus/NIACinfo.html) - -List of Attendees ------------------ - -If you are interested in attending (and not already on the [list of -attendees](NIAC2007_attendees.html "wikilink")), contact [ Jens-Uwe -Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink"). - -Proposed Agenda ---------------- - -### Timetable - -All topics that are discussed within the whole group will meet in LS -206. - -| Monday 24th September 2007 | -|:-----------------------------:| -| Time | -| 9:00 - 9:15 | -| 9:15 - 12:00 | -| 12:00 - 13:00 | -| 13:00 - 18:00 | -| | -| | -| Tuesday 25th September 2007 | -| Time | -| 9:00 - 10:00 | -| 10:00 - 12:00 | -| 12:00 - 13:00 | -| 13:00 - 16:00 | -| 16:00 - 17:00 | -| 20:00 | -| | -| Wednesday 26th September 2007 | -| Time | -| 9:00 - 10:30 | -| 10:30 - 12:00 | -| 12:00 - 13:00 | -| 13:00 - 15:00 | -| 15:00 | -| | - -#### M1: General Business - -- Welcome and Introduction -- Review of NIAC'2006LBL minutes - - [NIAC Action Items](NIACActionItems.html "wikilink") - - [Open tickets](http://trac.nexusformat.org/definitions/report/3) -- [Renew members](Membership_Dates.html "wikilink") -- Elect chair, executive secretary, and technical committee chair -- Path forward for NeXus - overview - - Future of NAPI - - Future of definitions - - v2.1 - additions to current definitions - - v3.0 - what is this - -#### M2: Policy discussion - -- Documenting policy -- General policy questions - - [netCDF](http://www.unidata.ucar.edu/software/netcdf/) - - [imgCIF](http://www.iucr.org/iucr-top/cif/imgcif/index.html) - - [strainet](http://www.strainet.org) - - ASI^2 -- Definition policy questions - - metaDTD vs Schema (XSD) - - Definition URL declaration - - Object oriented definitions, [ Marks - suggestion](Media:NeXusOBJ.pdf.html "wikilink") - - NeXusBeans - -### Unscheduled - -#### Geometry - -- Ratify [Coordinate Systems](Coordinate_Systems.html "wikilink") -- Explicit geometry definition in base class definition -- New shapes - - Cylinder - - Conic section - -#### Tech Group Meeting - -Led by [Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") - -- Definition URL discussion -- NXtranslate -- NAPI for object oriented languages -- Utility API ported to C - who and when -- New API routines -- IDL NeXus API -- Review [open tickets](http://trac.nexusformat.org/code/report/3) -- Python binding -- Object oriented changes - -#### NeXus Supervised Applications - -- NXtranslate - anything to NeXus converter -- TVneXus - viz package -- NXextract - NeXus to anything converter -- Metadata extract -- HMI DataCollector - -#### Ratify Definitions - -- Archive -- ScanRaw ([Götz](User%3AAndy_Gotz.html "wikilink")) -- Muon instruments ([Cottrell](User%3ASteve_Cottrell.html "wikilink")) -- [Event Data](NXevent_data.html "wikilink") - lessons learned - ([Peterson](User%3APeter_Peterson.html "wikilink")) - -#### Break-out Groups - -- ScanRaw Goetz -- NXsas instrument definition Koennecke -- Documenting definitions Peterson -- Flat-cone diffractometer Hoffmann -- Synchrotron Poirier -- CCD Jemian -- Tech group Akeroyd - -Suggested Discussion Topics ---------------------------- - -#### [ Jens](User%3AJens-Uwe_Hoffmann.html "wikilink") - -- Flat-Cone Diffractometer Definition - ([Details](http://www.hmi.de/bensc/misc/flat-cone/rebuilding/nexus_en.html)) -- NXcrandle Proposal -- Strainet Proposal -- Software development - - data collector and configuration tool - - TVneXus, data analysis tool -- Visit Reactor BER II - -#### [ Steve](User%3ASteve_Cottrell.html "wikilink") - -- Definitions for Muon Instruments -- Software development - - Extensions to NXtranslate - -#### [ Nick](User%3ANick_Hauser.html "wikilink") - -- Ratify the Coordinate Systems definition from Freddie. - -- Explicit geometry definition in base class definition -- Proposal: Cylindrical geometry detectors for powder diffraction -- Proposal: Endorse netcdf as data model for Nexus -- Proposal: imgCIF Nexus collaboration - -Proposals to follow - -#### [ Mark](User%3AMark_Koennecke.html "wikilink") - -- Future of IDL-NeXus API -- Ratification of further instrument definitions -- I remember that we agreed at the last NIAC-Meeting to have a kick - off session towards NeXus Definitions 2.0. I wonder if this is still - on. I think Darren prepared something for this. And so did I. But if - we have more pressing business to attent too, then this has lower - priority. - -#### [ Freddie](User%3AFreddie_Akeroyd.html "wikilink") - -- New API routines for handling chunked datasets: NXchunkmakedata, - NXgetchunk, NXputchunk - -#### [ Laurent](User%3AL.lerusse.html "wikilink") - -- [Archive Definition](Archive_Definition.html "wikilink") -- nxingest a tool to extract metadata from a NeXus files and store it - into a reformated xml document. -- Status of NeXus/imgCif usage in the facilities (who is using it, who - is planning to and when) - -Subsequent Talks -================ - -We plan some additional talks (especially for HMI colleagues, guest are -welcome) on Thursday 27th September LS 206: - -- 10:00 L. Lerusse: “STFC e-Infrastructure: Data management for large - facilities” -- 11:30 S. Flemming: INSPIRE -- 15:00 M. Könnecke: SICS -- 16:00 O. Sauer: CARESS - -Detail Information -================== - -Public Talk ------------ - -Conference Dinner ------------------ - -The conference dinner will take place at [Habel -Weinkultur](http://www.wein-habel.de/maine.php) in Mitte, not far from -the “Brandenburger Tor” -(\[.&ADR\_HOUSE=19&show=108 -plan\]). I reserve the table at 20:00 (25. September 2007). - -I order the “Berlin Menu No. 1”: - -- Berlin ceps-potato-soup with fresh marjoram -- Smoked saddle of young pork with cumin gravy on Riesling sauerkraut - with herbs potatoes -- Marinated berries with honey- poppy seed- vanilla sauce - -If somebody don't like pork, **please inform me 10 days before!** I will -order the meals at the 17th September. - -So you can eat the “Berlin Menu No. 2” - -- Berlin cray-fish soup with crayfish tails -- Pike perch fillets roasted on the skin on black salsify with leek - and peas and to herbs- rice edge -- Apple fritters in hot pepper-cinnamon-sugar on wild berry cream - -or a “Vegetarian” Menu. - -Feel free to add this information in the [ list of -attendees](NIAC2007_attendees.html "wikilink"). - -There is time for a “small” sight seeing tour before or/and after the -dinner. - -Jens - -Visit the BER II ----------------- - -We can visit the experimental hall with thermal instruments and the new -and old neutron guide hall for cold neutrons. Please inform me if you -are interested or if the date is untimely for you. - -Minutes -======= - -These are available [online](NIAC2007_Minutes.html "wikilink") or in [pdf -format](Media:NIAC2007HMI_minutes.pdf.html "wikilink"). - -NIAC2007 photos -=============== - -Various people took photos at the meeting. [ Take a -look.](NIAC2007_photos.html "wikilink") diff --git a/content/NIAC2007_Minutes.md b/content/NIAC2007_Minutes.md deleted file mode 100644 index 84fdb795..00000000 --- a/content/NIAC2007_Minutes.md +++ /dev/null @@ -1,754 +0,0 @@ ---- -title: NIAC2007 Minutes -permalink: NIAC2007_Minutes.html -layout: wiki ---- - -Version in [PDF](Media:NIAC2007HMI_minutes.pdf.html "wikilink") format - -NIAC meeting – HMI, Berlin (Germany) 24, 25, 26 September 2007 --------------------------------------------------------------- - -The NIAC meeting for 2007 was held at HMI (Berlin) in September 2007. -List of attendees - -- Gwenaelle Abeille, Synchrotron Soleil, France -- Freddie Akeroyd, ISIS Facility, Rutherford Appleton Laboratory, UK -- Stuart Campbell, Diamond Light Source, UK -- Stephen Cottrell, ISIS Facility, Rutherford Appleton Laboratory, -- Matthias Drochner, Forschungzentrum Jülich, Germany -- Stefan Flemming, The Open University, UK -- Andrew Gotz, European Synchrotron Radiation Facility, France -- Nick Hauser, Australian Nuclear Science and Technology Organisation, - Australia -- Jens-Uwe Hoffmann, Hahn-Meitner-Institut Berlin, Germany -- Pete Jemian, Advanced Photon Source, USA -- Mark Koennecke, Paul Scherrer Institut -- Laurent Lerusse, Rutherford Appleton Laboratory , e-Science -- Ray Osborn, Argonne National Laboratory, USA -- Peter Peterson, Spallation Neutron Source, Oak Ridge National - Laboratory, USA -- Frédéric Picca, Synchrotron Soleil, France -- Stephane Poirier, Synchrotron Soleil, France -- Thomas Proffen, Lujan Neutron Scattering Center, Los Alamos National - Laboratory, USA -- Rainer Schneider, STRAINET c/o HMI Berlin, Germany -- Jiro Suzuki, KEK, Japan - -### Welcome - -- Pete Peterson (president) gave the welcome talk. In this talk he - noted that the term of the current acting officers has come to an - end and they should either be re-elected or new officers elected -- Nick Hauser proposed to talk about NexusBeans and object - orientation. -- Mark Koennecke mentioned that he had also prepared a talk on object - orientation. -- It was also noted that the [NXgeometry](NXgeometry.html "wikilink") class - supported boxes and cylinders. -- Nexus paper: Mark Koennecke noted that there is a publication on - Nexus which appeared as part of the ICNS proceedings *Physica B - 385-386 (2006) 1343-1345* -- There was a short discussion on scans and the role of - [TOFRawScan](TOFRawScan.html "wikilink"). Nick Hauser wanted to know if - there was a Nexus scan object - -ACTION : Nick Hauser to take over the [NXgenericScan](GenericScan.html "wikilink") definition - -### Thanks - -- To Freddie Akeroyd for setting up the new MediaWiki - **nexusformat.org** site -- To Jens for organising the meeting - -### Review of Outstanding Actions - -#### Request NSF money was discussed - -Paul Kienzle, Nick Hauser, and Peter Peterson would look into making an -NSF proposal to request for money. It was decided to leave this action -item open. - -Nick and Peter Turner mentioned they have requested and obtained funds -for doing some work with NexusBeans. - -ACTION : Pete + Nick to look into requesting money from the NSF for Nexus - -#### The linking problem for when you need the source and target names to be different - -This has been fixed by Mark. A new API call has been added: - - NXMakeNamedLink() - -#### There is no explanation on the wiki on how to change a Nexus class definition - -ACTION : Pete Peterson to explain how to change a definition - -#### Some definitions exist only on the WIKI, some are in source control (Subversion) - -They should all be moved into Subversion. - -Current status is that Freddie Akeroyd has moved all base classes, but -input from other NIAC members is required on naming of instrument -definitions before moving them too. This leads onto the open question of -how to name definitions like [TOFRaw](TOFRaw.html "wikilink") – should all -definitions have an NX prefix like base classes or not? - -Pete Jemian suggests differentiating names between Instruments + Base -classes – maybe using an NXD prefix for definitions? - -#### Check old web site and report any content that has not been moved to new WIKI server - -This has been done - Ray suggests leaving the site up but with a warning -message that the content had been moved. - -VOTE to redirect site (pending moving logos) : FOR = all , AGAINST = none -ACTION : redirect old site to new web site (Ray) -ACTION : move logos to new web site - -#### Write down the current responsibilities for the officers and circulate to the committee for approval - -In progress (Peter Peterson) - -#### Write a report on NeXus and submit to both the Neutron News and Synchrotron News - -Assigned to Andrew Götz and not yet done. Mark has an article in ICNS -2005 (Physica B 385–386 (2006) 1343–1345 ). Everyone is encouraged to -cite this paper. - -ACTION : Andy to publish the article, don't wait for comments, set a deadline - -#### Existing definitions will be rendered in coloured meta-DTD and table formats on website - -Completed by Freddie Akeroyd - -#### Style sheets (XSLT) will be created to convert definitions into colorized meta-DTD and table formats - -Assigned to Darren Kelly - -#### Update website with constitution changes (some are even from the last meeting) - -Currently Unassigned - -ACTION : Pete Peterson to update website with constitution changes - -#### Modify/add base class definitions in accordance with what was voted on in February - -Currently Unassigned. Some of the TOF base class has not made it to SVN. - -ACTION : Freddie Akeroyd to add missing TOF base class to SVN - -### Completed Actions - -#### From 2006 LBL Meeting - -- Freddie Akeroyd - to move NeXus code and definitions from CVS to - Subversion -- Freddie Akeroyd - to move NeXus mailing lists from anl.gov to - -- Freddie Akeroyd - to provide a Mediawiki extension for rendering - definitions held in Subversion onto a Wiki page in a tabular format - on the fly -- Mark Könnecke and Raymond Osborn - Shut down existing website and - mirror, leaving a redirection page to new site. (The original - website at contains a redirect message, - but is still online so that NIAC members can check for content - missing on the wiki.) -- Peter Peterson - to write up the versioning mechanism - -#### From 2006 ILL Meeting - -- Unassigned - [NXcharacterization](NXcharacterization.html "wikilink") - needs to be formalized and ratified - this has been repeated in \#11 -- Unassigned - Synchronize the website definitions with those in cvs - (the website are considered more correct) - this is formalized as an - action item at the 2006 LBL meeting - -### Agreed Tags for NeXus definition versions - -- Version 1.0 = prior to 2006-2 -- Version 2.0 = everything ratified at 2006-2 -- Version 3.0 = next version - -### Member Renewal - -- Matthias Drochner – to be renewed -- Andy Gotz – to be renewed -- Peter Link – expired (no news) -- Nick Maliszewskyj – replaces Przemek for NIST - -VOTE : to renew members FOR = all ; AGAINST = none -ACTION : have meetings in October in the future, not in September at the end of the fiscal year - -### Officer Renewal - -- Andy gives up secretary -- Freddie and Stuart ready to be secretary -- Nick to stay technical chair if not Mark will take it - -VOTE :for technical chair FOR = all ; AGAINST = none -VOTE :for Freddie and Stuart as secretary FOR = all ; AGAINST = none -VOTE : for Pete as president FOR = 1 ; AGAINST = none - -Nick Hauser raised the point of how to speed up adopting proposals. -Thomas mentioned there is a lack of manpower. Therefore we need a simple -web interface. Freddie suggested adding an upload page. Mark said put -new proposals on the wiki or send an email to the NIAC via the -nexus-committee mailing list. - -Andy raised the point that we need a manual. The current documentation -is very techie oriented. There is no introduction for beginners. Ray -said the wiki is the documentation. Pete Jemian suggested making full -use of the wiki and the discussion page on the wiki. Mark said the -problem is the wiki is not kept updated. Conclusion – breakout group on -how to organise wiki for users - -### Pete Petersons' talk - Trees - -Pete gave a fascinating talk about trees and Nexus. In his vision Nexus -would be machine validated in future versions (V2.1), object oriented -definitions (V3.0) i.e. get rid of meta-DTD - -### Nick's talk - Meta-DTD vs. Schema - -Schema are machine readable XML. How to generate the schema ? A small -group of specialists will do this. Use a graphical schema editor. Easy -to generate meta-DTD from schema. Tools – emacs, Eclipse + WTP, Netbeans -are all free. General interest in using Eclipse + WTP and providing it -as a web start. Jens showed his C++ tool for defining instruments. - -PROPOSAL : canonical Nexus definitions to be stored in schema. Meta-dtd can be generated from these - -Thomas – 3 action types – move to schema, explain tools, - -VOTE : Nexus meta-DTD to be moved to schema FOR : all ; AGAINST : none - -Mark use schema for V3.0 and object oriented - -VOTE : Version 3.0 will be schema based - -Nick happy to manage this move with help others What other formats -should we support e.g. html, tables, uml - -### Mark's talk – Primer on Nexus and object oriented - -Mark presented uml diagrams for the different base classes. Thomas said -an Instrument definition is actually an experiment definition i.e. -analysis-driven. Thomas suggested having multiple instrument classes -stored for the same instrument stored in the same file e.g. GSAS class -and Instrument class. - -Nick presented NexusBeans as a Java technology. Ray said there is -general agreement that an object oriented type api is the way to go. -Pete Petersons's talk – on URL's URI – version, implementation version -e.g. - -`    `[`http://www.nexusformat.org/instruments/NXmonotas`](http://www.nexusformat.org/instruments/NXmonotas) - -Laurent suggested do not include the version in the uri. Freddie wanted -to have a url and uri. - -### imgCIF - -A discussion ensued on imgCIF and what is happening in this field. Nick -read an email from Herbert Bernstein. Freddie mentioned the imgCIF -meeting in Manchester. There it was decided that the first step is to do -an imgCIF to NX and back converter, Freddie and Herbert Bernstein will -handle this. Stuart is our official contact with imgCIF. - -### netCDF - -Nick gave a talk about netCDF. netCDF has a number of advantages e.g. -gives array manipulation in Java. Nick proposes to promote netCDF within -the Nexus community as a tool for reading and writing HDF5 in Nexus. -netCDF have added support for HDF5. Mark said there are a lot of issues -to consider, array manipulation of netCDF is an advantage, we need to -discuss with netCDF team to see how far they can go to support us. Pete -P. said there is a discussion on an Nxutility api. Nick said netCDF -provides a memory object. Pete P. discussion is about an in memory data -format. Ray needs a white paper with more information. Pete P. create a -separate api based on netCDF. Nick noted if the NIAC adopts netCDF for -internal data representation then this opens the way to sharing more -code. Andy suggested to start sharing netCDF between a few institutes to -gain more experience and then report back to the committee before making -a general decision on whether to support netCDF or not. - -CONCLUSION : more people to try out netCDF and bring this up again at the meeting - -### Nexus top level entry - -Ray relayed a request from microscopists to have a top level entry which -identifies Nexus files e.g. /nexus. Mark said we should invite someone -from this community to discuss with us. NXEntry is an attribute on a -name and not a namespace. This could be done automatically by the napi. -Nick said there was a problem with conformity and validation. - -### Laser community want to use Nexus - -Laurent mentioned the laser community would like to use Nexus. Laurent -will the representative - -### Argonne Scattering and Imaging Institute - -Ray gave a talk on the ASI^2 proposal. If it gets funding then would be -largest investment by the DOE in software. Other communities are solving -problems which are of interest to us, idea is to get these people on -board. How should this group interact with the Nexus group ? ASI^2 could -replace IPNS as institute. Pete Jemian proposed next NIAC to be held at -Argonne - -### Improving Scientific efficiency at APS - -Pete Jemian gave a talk on Improving Scientific Efficiency at APS. He -showed the canonical Scientific Workflow Diagram – feedback is open loop -at the moment. There is a working group headed by Ken Evans. APS has -created a Scientific Software Section for solving local challenges as -opposed to the ASI^2 which is for grand challenges. The group consists -of one person at present, it will grow in time. There is a pilot -visualisation application with 1-ID. There is resistance to Java + -Eclipse - Python is the lingua franca of scientists. This group could -look after a Nexus person. Nick said the NIAC should endorse this -position. The group is interested in helping the community. Ray said we -need funding for Nexus meetings. Thomas suggested this should be -contributed by each institute. - -ACTION : Pete P to talk to SNS to setup a fund for Nexus MeetingsBeans -ACTION : everyone to talk to their management on how much they can contribute to the fund -ACTION : everyone to send their Berlin trip costs to the secretaries -ACTION : Thomas to look into how much it costs to finance half a person - -Next meeting candidates are : - -- Argonne -- Australia (NOBUGS) -- SNS - -CONCLUSION : next NIAC meeting at NOBUGS with 6 month meeting possibility at Argonne if ASI^2 is funded - -There was a long discussion about breakout groups. - -### Nexus API OO - -Mark gave a talk about the Nexus OO API. He made the following proposals -: - -- maintain file structure as a tree in memory -- larger data sets are left on file and retrieved or written on demand -- Nxclose, Nxflush serialise all changes to disk -- how to link items together ? -- what shall the shape of the Iterator class be ? -- how much leeway are implementers allowed ? - -There was a counter proposal by Pete Peterson. A python api which uses -the Nxfile as an object. Ray said this is not object oriented. Ray wants -to add to NXData together. Pete is against building a Nexus scripting -framework like Ray wants it. Pete P. said for python drop swig and write -python binding by hand, return NumPy objects. Pete proposes to write -zeroth level python binding – strings are python strings, scalars are -python basic types (he has already done most of the work) - -ACTION : Pete to do Python binding to NumPy - -Ray will play with the Python binding to generate a library for -manipulating Nexus data - -ACTION : Ray to play with Python binding and make a proposal for manipulating Nexus data - -Pete proposed code for C++ binding, supports void and std::vector -put\_slab() Pete – current Java binding returns an object which has to -be cast to the right type, Pete proposes to extend the api to return a -typed type - -ACTION : Freddie to add Pete's C++ binding to be added to Nexus source code distribution - -Mark would like templates to be an option in the C++ binding Pete would -like to have doxygen comments in the C napi, - -ACTION : Mark will add doxygen comments to napi.h - -Mark proposed an IDL binding - -ACTION : Freddie to add Mark's IDL binding to Nexus repository - -### TRAC items - -Went through open items and closed those that could be. Discussion on -memory allocation in the NXU utility library - -ACTION : Freddie to add an *Unassigned* user to TRAC backend - -Could we add an external link to a non-Nexus file - -- Pete – should we write native bindings for Matlab, IDL, etc -- Mark – no, NAPI is 3 to 4000 lines - -### Nxtranslate - -Pete P. gave a talk on Nxtranslate, a plugin based system. All plugins -are statically linked. Walked through test\_simple.nxs example. SNS uses -Nxtranslate. Freddie has developed a dynamic retriever which uses -dynamic shared libraries. - -### HDF4 - -HDF4 to be marked as deprecated. New users should use only HDF5. - -VOTE : all in favour of deprecating HDF4 i.e. do not add new features to NAPI for HDF4 - -FOR = all-2 ; AGAINST = 2 (Freddie + Steve) - -ACTION : Freddie to put a How To on the wiki for Nxtranslate and other programs with links to the pdf and doxygen - -### Documentation - -ACTION : Pete to propose an outline for a Nexus manual in docbook -ACTION : Freddie to look how to integrate this into the wiki - -Long discussion about how to integrate the docbook into the wiki and -include user comments. Frederic Picca suggested taking a look at -asciidoc. Pete P comments should go on the wiki, changes on subversion. - -### NXGeometry - -Mark presents simple coordinate system + polar coordinate system. Ray -corrected Mark's notion of polar angle, Ray says polar angle should be -defined wrt to beam direction (Z). Pete P. said do not call it theta or -whatever, it should be called polar angle. - -ACTION : Pete to dig out jpeg demonstrating NXGeometry -ACTION : document the McStas convention for coordinate transformation i.e. translate then rotate or vice versa – pick one - -Jens wants to store only the information about the physical information -concerning the detector. Pete P. said do consumer's need to calculate -how to convert your Nxpositioners to scientific units e.g. HKL. Ray -wants to add cylindrical coordinates. - -VOTE : accept NXcone definition - -FOR = all ; AGAINST = none - -### Nxarchive + Nxingest - -Laurent Lerusse gave a talk on NXarchive and Nxingest. Some points he -raised : - -- do not archive multiple Nxentry, only archive metadata in first - Nxentry -- this caused discussion about not enforcing one Nxentry per file, - ICAT should be changed -- this is a limitation of ICAT -- Nxarchive is simply a definition i.e. what ICAT expects, and does - not exist per se in the Nexus file - -### Event data in Nexus - -Pete Peterson gave a talk on event data in Nexus and how SNS event data -are being stored in Nexus - -ACTION : Pete P to look at th Root toolkit to see how they handle events - -### Nxextract – extracting data from Nexus at Soleil - -Stephan Poirier gave a talk on a tool he has developed (Nxextract) which -allows data to be extracted from Nexus files into almost any format. -Some points raised : - -- tool is called Nxextract -- allows data to be extracted from a Nexus file using a proprietary - extraction language -- Pete P – would like a feature to do maths on extracted data -- why not use an existing scripting language -- binding Nxextract to a scripting language is a new project - -ACTION : Stephane to upload Nxextract to Nexus applications - -### Flat Cone diffractometer - -Jens gave a talk on Nexus and the Flat Cone diffractometer. - -- Tvtueb a platform for analysing data from powder + flat cone - diffractometer written in VC++ and MFC -- TVNexus is the new program for doing Reciprocal Space Explorer of - Nexus files (similar to HDFView currently) -- TVNexus uses Win64 to be able to display large data sets > 4GB - -NAPI is thread safe if you read/write to different files, but not if -sharing the same Nxhandle in the different threads - -### Laurent – multiple Nxentry issue for archiving - -- extended to support multiple Nxentries for indexing -- tools used to index data will not archive data if necessary items - are not found -- killed run\_number , replaced with entry\_identifier as string - -VOTE : replace run\_number with entry\_identifier - -FOR = ALL-1 ; AGAINST = 1 (Andy) ; ABSTAINED = 1 (Nick) - -VOTE on NXarchive proposal : - -FOR = all ; AGAINST = none - -ACTION : Laurent to get NXarchive information back to base class -ACTION : Nick to check the result with the schema - -All changes must be reflected in the base class - -### Rainer Schneider's talk – STRAINET - -- will make a proposal for STRAINET scanning Nexus format -- NIAC – would like to work with STRAINET and help them -- will start with powder definitions and then add missing tags needed - by scanners - -### Breakout groups for CCD's - -The breakout group for CCD's proposed adding the following to Nxdetector -to accommodate CCD - -- extended type to include “ccd, pixel, image plate, cmos” -- data\_file -- flood -- flood\_file -- dark -- dark\_file -- spatial\_distortion -- spatial\_distortion\_file - -Discussion on whether Nxcharacterization would be more suitable. The -flood, dark and spatial\_distortion would be added as extra types of -NXcharacterization. There can be multiple NXcharacterization entries -with the NXdetector class. These would link to either another NXentry or -external file. The data\_file is added to NXdetector as an Nxnote. -NXcharacterizations to be renamed to NXcharacterisation. - -VOTE on CCD proposal : - -FOR = all ; AGAINST = none - -### Breakout groups for Documentation - -The breakout group on documentation reported the following : - -- Use Docbook for user manuals, including - - introduction - - FAQ - - HowTo - - JPEGs of UML schema -- Doxygen for source code and API -- Schema in UML -- HTML version of docbook for wiki - -Have a section for active discussions and an archive for closed -discussions (which should be marked closed). Create a “DISCUSSION” -namespace to restrict editing of these pages to NIAC members only. The -“discussion” tab would be open for everyone to edit for all pages. - -More detailed minutes, prepared by Nick Hauser, are in the appendix - -ACTION: Freddie Akeroyd to add voting to the wiki. - -Creation of a document editorial review committee (with initial members -Freddie Akeroyd, Peter Peterson, Ray Osborn, Nick Hauser, Laurent L, -Stuart Campbell) - -ACTION: Ray Osborn to provide the skeleton structure for the document editorial review committee. - - - -VOTE to create a Definition Release Manager role : - -(VOTE): YES:ALL (12) - -This required a 2/3 majority of all committee members as it is creating -a new officer's post: as 12 of the 17 committee members were present and -the vote was unanimous, this was achieved. - -VOTE Nick Hauser to take this role : - -(VOTE): YES:ALL (12) - -A proposal for a definition change should be discussed on the wiki for a -period of time (6 weeks to 6 months). After this a vote would be held to -ratify the changes. These would then be committed to the trunk. Then it -would be at the Definition Release Manager's discretion to create a -release. - -### Meeting Closed. - -### APPENDIX 1 – Herbert Bernstein's email - - ---------- Forwarded message ---------- - Date: Fri, 21 Sep 2007 01:37:27 -0400 - From: Herbert J. Bernstein - To: Peter Turner - Cc: p.turner@chem.usyd.edu.au, message@arcib.org, - "Akeroyd, FA (Freddie)" - Subject: Re: NIAC meeting (fwd) - - Dear Peter, - - Here is the current status. - - cif2nx: I have been working on a conversion utility from CIF or CBF - to a NeXus file, but with additional groups so all the CIF tags can have - a home without colliding with the existing NeXus tags. The idea will be - to then complete the cross-mapping of the CIF table-oriented structure - to the NeXus tree structure using the NeXus API and then to prune out - the duplications. So far I have the complete parse of the CIF data and - the loading of the CIF dictionaries and am working on the following - initial mapping: - - Each CIF data block maps to group NXentry, with the name of the - datablock prefixed by "NXcif_" - - Each CIF category within a CIF data block maps to a new group - NXcifcat (as a subgroup of NXentry) with the name of the CIF category - prefixed by "NXcif_" - - Each column within a CIF category maps in one of two ways depending - on whether it contains any binary sections. If there are no binary - sections, the entire column maps as a rank 2 data array with a column of - the CIF data values as strings and a column of the CIF data types as - strings. In this case the entire column is one NeXus data set with the - name of the CIF column prefixed by "NXcif_" If there are binary - sections, then instead of using one data set, a column is mapped to a - new group NXcifcol that contains multiple arrays of whatever ranks fit - the binary sections, and the data sets are given names consisting of the - row number converted to a string and prefixed by NXcif_. (This is a - rework of the approach to the handling of columns that I had been - following in which each data item in a column was a separate data set to - allow for the handling of binary section. I think this new mixed - approach will provide a reasonable balance between performance - and flexibility.) - - Each CIF save frame within a CIF data block maps to a new group - NXcifsf (as a subgroup of NXentry). Each CIF category within a CIF save - frame maps to the group NXcifcat (as a subgroup of NXcifsf in this case) - and then the columns are handled as above. - - It would be nice if we could add the packed and byte offset - compressions to the current list of NeXus compressions, but this is not - critical. - - I hope to have this first cut done and tested in a few more days, and - then I will try to upload this phase to the NeXus repository under - contrib. Freddie offered to handle the NeXus side of the code, but I - seem to be getting along well with the API, so I will try to go a little - further first. - - Once that is done, the next step is to do the denormalization of the - CIF categories, using the dictionary information that has been loaded to - identify the cases in which tables in subcategories should be broken up - and moved under the parent items in the supercategories. - - Finally, the last step will be to translate those CIF tags that match - NeXus tags into the equivalent NeXus tags. Those that don't match would - stay as CIF tags. - - nx2cif: If the cif2nx works out the other direction should be a lot - easier, since there are fewer NeXus tags than CIF tags. The biggest - problem will be preserving the finer type details from NeXus on the CIF - side. - - binutf: G. Darakev is working on integrating binutf into the NeXus - API. Thsi will allow fairly efficient handling of NeXus binaries in - XML. - - - Regards, - Herbert - -### APPENDIX 2 - Process and documentation breakout session - -Tuesday, 25th September, 2007. 11.00am - -Present: Peter Peterson, Ray Osborn, Laurent Lerusse, Freddie Akeroyd, Nick Hauser. - -#### Controlled user and developer documentation - -1. The list of documents to be produced. The group proposes the - following list as a minimal set of documentation required for NeXus. - 1. Docbook for user manuals, including - 1. Introduction - 2. FAQ, - 3. How To - 4. jpeg’s of UML schema - 2. Doxygen for source code and api - 3. HTML version of docbook for wiki -2. How is the documents produced? This group will provide a report on - the tools used for generating the documentation. -3. Who produces the documentation? Anyone from the NeXus community may - submit documentation. This group will be responsible for editorial - control & release. This group is responsible to ensure the - completeness of the documentation. - -ACTION: Nick to ensure the above actions are completed - -#### Discussions on the nexusformat.org wiki - -1. It was decided to have 2 types of Discussion. ‘Open forums’ open to - the entire community, and ‘NIAC only’ discussions. To enable this, - each discussion requires a namespace. The ‘NIAC only’ discussions - are read-write to the community -2. Discussions have 2 attributes, active & closed. Closed discussions - will be marked as closed -3. The ‘NIAC only’ discussions may have a voting attribute. Only NIAC - members may vote. -4. It was decided to have the design area in the open forum. - -ACTION: Freddie to enable voting on the wiki, and the discussion types and attributes. - -#### Document editorial review committee - -1. The document editorial review committee is Peter Peterson, Ray - Osborn, Laurent Lerrusse, Freddie Akeroyd, Nick Hauser -2. Document release manager is Nick Hauser - -ACTION: Nick to provide documentation for the tasks & responsibilities of the document editorial review committee, document release manager & NIAC - - - -ACTION: Ray to provide the structure of the user documentation - - - -ACTION: Freddie to provide Doxygen documentation of the API on the web. - -#### SQA Process - -1. It was decided that the NeXus definitions, napi and documentation - should be versioned and packaged. Compatibility between versions - should be explicit. -2. The required version of autoconf should be in the - [README.developers](http://svn.nexusformat.org/code/trunk/README.developers) - file -3. SQA\_process for the napi is documented at - -4. As part of an integrated SQA, it was proposed that releases be: - 1. Patch level releases would be unit tested and released every 2 - months, - 2. Major revisions would be unit tested and a release candidate - built. Frequency of major revision is approximately every 18 - months. - -ACTION: Nick to provide a proposal to the for an integrated SQA on the SQA discussion page - -#### Proposals - -1. Proposals are additions or modifications to NeXus class definitions, - napi & documentation. - 1. Additions are to be posted as a new article. Discussion of the - addition is posted on the discussion tab of the article. - 2. Modifications are to be posted on the discussion tab of the - relevant article. -2. When proposals are posted, it is the responsibility of the proposer - to send an email to the with a link to the - proposal. -3. Discussions of a proposal will have duration of 6 weeks. Minor - impact proposals e.g. additions or modification of a class, can be - voted for after this period. Major impact proposals e.g. additions - or modifications of a class of global scope will go to the annual - NIAC for discussion and voting. - diff --git a/content/NIAC2007_attendees.md b/content/NIAC2007_attendees.md deleted file mode 100644 index 3da7fb66..00000000 --- a/content/NIAC2007_attendees.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: NIAC2007 attendees -permalink: NIAC2007_attendees.html -layout: wiki ---- - -NIAC 2007 at HMI List of Attendees ----------------------------------- - -**Do not write someting in this table. The row “Guesthouse” and -“Passport number” inform you, that I receive you e-mail with this -information (sometimes problems with the spam-filter). I receipted this -only with my OK in the table. Jens** - -Attendees of the [2007 NIAC Meeting](NIAC2007.html "wikilink") at -Hahn-Meitner-Institut Berlin, Germany. - -| Name | Company/Institute | Guesthouse | paid | -|-----------------------------------------------------------|------------------------------------------------------------------------|------------|------| -| Gwenaelle Abeille | | Synchrotron Soleil, France | OK | OK | -| [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | OK | | -| [Stuart Campbell](User%3AStuart_Campbell.html "wikilink") | | Diamond Light Source, UK | OK | OK | -| [Stephen Cottrell](User%3ASteve_Cottrell.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | OK | | -| [Matthias Drochner](User%3AMatthias_Drochner.html "wikilink") | | Forschungzentrum Jülich, Germany | OK | | -| Stefan Flemming | | The Open University, UK | -- | OK | -| [Andrew Gotz](User%3AAndy_Gotz.html "wikilink") | | European Synchrotron Radiation Facility | OK | | -| [Nick Hauser](User%3Anick.html "wikilink") | | Australian Nuclear Science and Technology Organisation, Australia | OK | | -| [ Jens-Uwe Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink") | | Hahn-Meitner-Institut Berlin, Germany | -- | OK | -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | | Advanced Photon Source, USA | OK | OK | -| [Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | Paul Scherrer Institut | OK | OK | -| [Laurent Lerusse](User%3AL.lerusse.html "wikilink") | | Rutherford Appleton Laboratory , e-Science | OK | OK | -| [Ray Osborn](User%3ARay_Osborn.html "wikilink") | | Argonne National Laboratory, USA | OK | | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | | Spallation Neutron Source, Oak Ridge National Laboratory, USA | OK | OK | -| Frédéric Picca | | Synchrotron Soleil, France | OK | OK | -| [Stephane Poirier](User%3AStephane_Poirier.html "wikilink") | | Synchrotron Soleil, France | OK | OK | -| [Thomas Proffen](User%3AThomas_Proffen.html "wikilink") | | Lujan Neutron Scattering Center, Los Alamos National Laboratory, USA | OK | OK | -| Rainer Schneider | | [STRAINET](http://www.strainet.org) c/o HMI Berlin, Germany | -- | OK | -| Jiro Suzuki | | KEK, Japan | OK | OK | -| Peter Turner | | University of Sydney | OK | | - - diff --git a/content/NIAC2007_photos.md b/content/NIAC2007_photos.md deleted file mode 100644 index 8f82f1a5..00000000 --- a/content/NIAC2007_photos.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: NIAC2007 photos -permalink: NIAC2007_photos.html -layout: wiki ---- - -Pete Jemian's photos --------------------- - -- NIAC2007-PRJ-CIMG0432.JPG -- NIAC2007-PRJ-CIMG0433.JPG -- NIAC2007-PRJ-CIMG0434.JPG -- NIAC2007-PRJ-CIMG0435.JPG -- NIAC2007-PRJ-CIMG0436.JPG -- NIAC2007-PRJ-CIMG0437.JPG -- NIAC2007-PRJ-CIMG0438.JPG -- NIAC2007-PRJ-CIMG0439.JPG -- NIAC2007-PRJ-CIMG0440.JPG -- NIAC2007-PRJ-CIMG0441.JPG -- NIAC2007-PRJ-CIMG0442.JPG -- NIAC2007-PRJ-CIMG0443.JPG -- NIAC2007-PRJ-CIMG0444.JPG -- NIAC2007-PRJ-CIMG0445.JPG -- NIAC2007-PRJ-CIMG0446.JPG -- NIAC2007-PRJ-CIMG0447.JPG -- NIAC2007-PRJ-CIMG0448.JPG -- NIAC2007-PRJ-CIMG0449.JPG -- NIAC2007-PRJ-CIMG0450.JPG -- NIAC2007-PRJ-CIMG0451.JPG -- NIAC2007-PRJ-CIMG0452.JPG -- NIAC2007-PRJ-CIMG0453.JPG -- NIAC2007-PRJ-CIMG0454.JPG -- NIAC2007-PRJ-CIMG0455.JPG -- NIAC2007-PRJ-CIMG0456.JPG -- NIAC2007-PRJ-CIMG0457.JPG - diff --git a/content/NIAC2008.md b/content/NIAC2008.md deleted file mode 100644 index 95e8ee2d..00000000 --- a/content/NIAC2008.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: NIAC2008 -permalink: NIAC2008.html -layout: wiki ---- - -NIAC meeting - October 2008 ---------------------------- - -The next meeting of the [NeXus International Advisory -Committee](NIAC.html "wikilink") will be held at [Rydges Cronulla Beach -Hotel](http://www.rydges.com/hotel/0/RNCRON/Rydges-Cronulla-Sydney.htm) -in [Sydney Australia](http://www.sydneyaustralia.com/en/) on October -30-31, 2008. This is a satellite meeting of the [NOBUGS -2008](http://www.nbi.ansto.gov.au/cgi-bin/nobugs2008/overview.ws3) -conference. - -Conference Fee --------------- - -There will be a conference fee of AUS$130 to pay for food and the venue. - -List of Attendees ------------------ - -If you are interested in attending (and not already on the [list of -attendees](NIAC2008_attendees.html "wikilink")), contact [Nick -Hauser](User%3ANick_Hauser.html "wikilink"). - -Proposed Agenda ---------------- - -### Thursday, October 30 - -09:00 Meeting commences - -#### General Business - -- Welcome and Introduction -- Review of [NIAC'2007HMI minutes](NIAC2007_Minutes.html "wikilink") - - [NIAC Action Items](NIACActionItems.html "wikilink") - - [Open tickets](http://trac.nexusformat.org/definitions/report/3) -- [Renew members](Membership_Dates.html "wikilink") -- Elect chair, executive secretary, and technical committee chair -- Discus what topics are most important -- [Mission statement](Mission.html "wikilink") - -Lunch - -#### CIF - -- presentation by James Hester on lessons learned from CIF - standardisation - -#### Discussion of technology for describing base classes and instrument definitions - -- Review Darren Kelly's latest work. Provide feedback to Darren. - - limited to one hour total - -#### Other items - -18:00 Adjourn for dinner - -### Friday, October 31 - -09:00 Meeting commences - -18:00 Meeting adjourns - -### Discussion Items - -- Roadmap for NeXus - -#### Instrument definitions - -- Should we store pixel corners rather than centres? -- Extending NXshape to handle [Constructive Solid Geometry - (CSG)](http://en.wikipedia.org/wiki/Constructive_solid_geometry) - descriptions of the instrument (see last part of - [MantidNeXusWorkspaceFormat](pdfs/MantidNexusWorkspaceFormat.pdf "wikilink")) - -#### XML schema definitions - -- Objective: why schema? - validation, tools e.g. IDE. Informative - session. -- Pros and cons of xsd and rng -- Review of [current work](Schema.html "wikilink"). (Overview) -- Vote on use of xsd. -- schema as a path to O-O NeXus - -#### Reduced data storage - -- [review of canSAS 1-D v1.0 XML data - format](http://www.smallangles.net/wgwiki/index.php/cansas1d_documentation) - for reduced Small-Angle Scattering data. - - Objective - - Why not use NeXus? - - How to merge/nudge community towards NeXus? - - Next steps - - 2-D and higher-dimensionality **reduced** data sets - - How to standardize storage of results from data analysis - steps and provenance -- Is the next big priority after schema to provide reduced data - formats for all instrument classes? -- Proposal for storage of reduced data by the [Mantid - project](http://www.mantidproject.org/) (see - [MantidNeXusWorkspaceFormat](pdfs/MantidNexusWorkspaceFormat.pdf "wikilink")) - -#### Tech Group Breakout - -- review minutes/decision of last NIAC and tech teleconferences -- Features for NeXus API 4.3 -- XML schema review and implementation -- Review [open tickets](http://trac.nexusformat.org/code/report/3) -- Python bindings: - - [Paul Kienzle's new high level - interface](http://lists.nexusformat.org/pipermail/nexus-developers/2008/000791.html) - - Developing a “Open GENIE like” NeXus python application -- C++ bindings -- “Object oriented” NeXus - -#### Documentation breakout - -- review minutes/decision of last NIAC -- ACTION (from 2007 NIAC): How is the offline documentation produced? -- Is the proposed system of a snapshot of relevant mediawiki pages - into DocBook at the time of a definition release acceptable? -- Discuss issues with mediawiki to DocBook converter -- Decide which mediawiki pages are required in DocBook format e.g. do - we include the FAQ page? -- Is there documentation that is uniquely offline or online? This will - become clearer with the mapping in the previous item -- should the representation of the base classes in the appendices be - UML and/or table version? -- html to DocBook transform post processing - are these steps - acceptable? - - documentation transformed from mediawiki to DocBook, edited - where necessary, chapters concatenated, and converted to pdf - - pdf bundled with napi release and versions available at - [Download](Download.html "wikilink") - diff --git a/content/NIAC2008_attendees.md b/content/NIAC2008_attendees.md deleted file mode 100644 index 339e41d2..00000000 --- a/content/NIAC2008_attendees.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: NIAC2008 attendees -permalink: NIAC2008_attendees.html -layout: wiki ---- - -Attendees of the [2008 NIAC Meeting](NIAC2008.html "wikilink") at Rydges -Cronulla Beach Hotel in Sydney, Australia. - -| Name | Company/Institute | -|------------------------------------------------------------------|---------------------------------------------------------------------| -| [Peter Peterson (Chair)](User%3APeter_Peterson.html "wikilink") | |Oak Ridge National Laboratory, USA | -| [Freddie Akeroyd (Secretary)](User%3AFreddie_Akeroyd.html "wikilink") | | ISIS, UK | -| [Nick Hauser](User%3ANick_Hauser.html "wikilink") | | Australian Nuclear Science and Technology Organisation, Australia | -| [ Jens-Uwe Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink") | | Helmholtz Zentrum Berlin (HMI before), Germany | -| [Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | Paul Scherrer Institut | -| Peter Lewis | | Australian Synchrotron | -| [Jiro Suzuki](User%3AJiro_Suzuki.html "wikilink") | | KEK, Japan | -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | | Argonne National Laboratory, USA | -| Paul Lewis | Los Alamos National Laboratory | -| [Matthias Drochner](User%3AMatthias_Drochner.html "wikilink") | Juelich | - -photo of NIAC 2008 attendees -Rydges Cronulla Sydney hotel, site of NIAC2008 meeting -Panorama view of North Cronulla Beach from Rydges Cronulla Sydney hotel, site of NIAC2008 meeting diff --git a/content/NIAC2009.md b/content/NIAC2009.md deleted file mode 100644 index 96e15ebb..00000000 --- a/content/NIAC2009.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: NIAC2009 -permalink: NIAC2009.html -layout: wiki ---- - -2009 NeXus Code Camp -==================== - -Purpose -------- - -logo for the 2009 NeXus Code Camp - -Develop NeXus software components through intense effort by small groups -working on specific projects and tasks. It is expected that those -attending the 2009 NeXus Code Camp will already have strong foundation -and understanding in aspects of the NeXus software and come ready with -knowledge, tools, and ideas to make significant progress during the -event. The specific projects and tasks, as well as the list of -participants, are described on this wiki and will be revised as the -event draws near. - -(For more info on code camps, try searching Google for “code camp” or -“codeathon”. Events such as the [EPICS -Codeathon](http://www.aps.anl.gov/epics/meetings/codeathon.php) would be -reasonable templates for this first NeXus code camp.) - -Dates ------ - -- October 16-18, 2009 (Friday - Sunday) - -Agenda ------- - -### Business Matters - -Since this is not to be a meeting of the full NIAC, no business matters -can be resolved. - -### Projects and Tasks - -These items are sorted in order of priority that they be finished. Only -items that currently exist in the project plan are being worked on. - -1. NXDL - NeXus Definition Language -2. NXplot - a generalized NeXus file plotting tool -3. NXvalidate - a NeXus file validator -4. NXfiletool - an anything to NeXus and NeXus to anything converter. - Look at recently added NXextract tool and combining with NXtranslate -5. NXaperture - right design? too complicated? alternatives: - NXsquareaperture, NXroundaperture, ... -6. NeXus manual -7. review NeXus “definitions” tickets in TRAC -8. NXbrowse - -### Schedule - -- arrive Thursday evening -- conference check-in Friday morning -- meet all day Friday -- meet all day Saturday -- meet all day Sunday -- checkout Monday morning - -Here is the daily schedule: - -| time | description | comments | -|---------------------|-----------------|-----------------------------| -| 9:00 - 10:15 AM | meeting | work on projects and tasks | -| 10:15 - 10:45 AM | morning break | (included) | -| 10:45 AM - 12:00 PM | meeting | work on projects and tasks | -| 12:00 - 1:15 PM | lunch | offsite, traveler's expense | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | meeting | daily summary (plenary) | - -Notes: - -1. late-afternoon wrap-up (plenary) each day -2. morning and afternoon breaks will be included in amenities charge -3. breakfast, lunch, dinner will be in a local restaurant at traveler's - expense - -Practical Matters ------------------ - -### Venue - -Best Western University Plaza, Evanston, IL -1501 Sherman Avenue, Evanston, Illinois, 60201-4416 -Toll Free Reservations: 800-381-2830 -Fax: 847-328-3090 - - -Please reserve your own rooms directly with the hotel (website, phone, -...) - -### Directions and Maps - -- map to hotel: - -- airport: - - Chicago O'Hare (ORD): international - - Chicago Midway (MDW): domestic - - Milwaukee, WI Mitchell Field (MKE): distant alternative -- intercity train: - - Chicago Union Station served by Amtrak -- taxi: - - Call for a taxi pickup only after you have all your bags - - Must be a taxi that goes to Chicago suburbs - - suburban taxi will pickup in second lane of arrivals at Chicago - O'Hare airport - - , 1-800-244-1177 (automated system) - - , 1-847-673-8294 - - , 1-847-303-0303 -- airport bus: -- commuter train: - - 2 Chicago Elevated “L” train stations within four blocks - - Chicago Metra station within four blocks - -### Host - -- Pete Jemian - - Advanced Photon Source, Argonne National Laboratory - - email: jemian \_at\* anl.gov - - office phone: 1-630-252-3189 (forwards to mobile) - - Google voice: +1-847-859-9775 (forwards to mobile) - -### Costs - -- Expect hotel rate to be US$119/night (approximate, subject to - change) - - Please reserve your own rooms directly with the hotel (website, - phone, ...) -- Conference fee: US$150/person - - conference room - - food at morning and afternoon breaks - - perhaps a small meeting souvenir -- regular meals (breakfast, lunch, dinner) will be traveler's expense - -### Equipment - -| item | quantity | who provides? | -|--------------------------------------------------|------------|---------------| -| projector & screen | 1 each | host | -| USB keyboards & mice | ? | ? | -| LCD displays (19" or so) | ? | ? | -| 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | -| foreign electrical power adapter | as needed | traveler | -| Wi-Fi connections | sufficient | hotel | - -### Participants - -| participant | affiliation | arriving | departing | fees paid? | -|----------------------------------------------------------|-----------------------------------|-------------------|-----------|------------| -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | [APS](http://www.aps.anl.gov) | Thursday | Monday |   | -| [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | [ISIS](https://www.isis.stfc.ac.uk/) | Thursday | Monday |   | -| [Stuart Campbell](User%3AStuart_Campbell.html "wikilink") | [SNS](http://www.sns.gov) | Thursday | Monday |   | -| [Nick Hauser](User%3Anick.html "wikilink") | [ANSTO](http://www.ansto.gov.au/) | canceled | -| [Nick Maliszewskyj](User%3ANick_Maliszewskyj.html "wikilink") | [NIST](http://www.nist.gov) | telepresence only | -| [Mark Könnecke](User%3AMark_Koennecke.html "wikilink") | [PSI](http://www.psi.ch) | Thursday | Monday |   | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | [SNS](http://www.sns.gov) | Thursday | Monday |   | -| [Tobias Richter](User%3ATobias_Richter.html "wikilink") | [DLS](http://www.diamond.ac.uk) | Thursday | Monday |   | - - diff --git a/content/NIAC2010.md b/content/NIAC2010.md deleted file mode 100644 index 8b362bea..00000000 --- a/content/NIAC2010.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: NIAC2010 -permalink: NIAC2010.html -layout: wiki ---- - -Planning is currently underway for the NIAC / Code Camp meeting in 2010. -This is being organised to take place at the [SNS, ORNL, -USA](http://neutrons.ornl.gov/) and occur prior to the [NOBUGS -meeting](https://www.nobugsconference.org/). - -Currently the tentative dates are: - -- [NeXus code camp](NIAC2010_CodeCamp.html "wikilink") -> 5th / 6th - October 2010 -- NIAC Meeting -> 7th / 8th October 2010 -- NeXus workshop -> 10th October -- [NoBugs meeting](https://www.nobugsconference.org/) -> - 11th-13th October - -Location --------- - -Spallation Neutron Source, SNS Building 8600 (Main Office Block) C-152 -(Ground Floor) - -Accommodations and logistics ----------------------------- - -Recommended hotels: - -- [Double - Tree](http://doubletree1.hilton.com/en_US/dt/hotel/ORKDTDT-Doubletree-Hotel-Oak-Ridge-Tennessee/index.do) - -If you are attending the NOBUGS conference the following week the plan -is for people to stay in Oak Ridge for October 7-8 and move to the [Park -Vista](http://doubletree1.hilton.com/en_US/dt/hotel/GKTPVDT-The-Park-Vista-Gatlinburg-a-Doubletree-Hotel-Tennessee/index.do) -in Gatlinburg during the weekend. We will help facilitate ride sharing -during the meeting to make the move easier for everybody. - -NIAC List of Attendees ----------------------- - -**Do not write in this table. This is to indicate the list of people we -know are attending** - -If you want to attend please email either [Stuart -Campbell](User%3AStuart_Campbell.html "wikilink") or [Peter -Peterson](User%3APeter_Peterson.html "wikilink"). - -***It is important that if entering the US on a Visa Waiver to ensure -that you get a VWB (Visa Waiver Business) and NOT a tourist one.*** -It is likely that you will not be allowed into ORNL with a Tourist -Visa! - -| Name | Company/Institute | ORNL Pass status | NOBUGS? | -|-----------------------------------------------------------|-----------------------------------------------------|------------------|---------| -| [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | | approved | YES | -| [Stuart Campbell](User%3AStuart_Campbell.html "wikilink") | | ORNL, USA | | approved | YES | -| Peter Chang | | Diamond Light Source, UK | | approved | YES | -| [Steve Cottrell](User%3ASteve_Cottrell.html "wikilink") | | Rutherford Appleton Laboratory, UK | | approved | YES | -| Matthias Drochner | | Julich, Germany | | approved | YES | -| [Nick Hauser](User%3ANick_Hauser.html "wikilink") | | ANSTO, Australia | | approved | YES | -| [ Jens-Uwe Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink") | | Helmholtz Zentrum Berlin (renamed HMI), Germany | | approved | YES | -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | | APS, ANL, USA | | approved | **NO** | -| Suzuki Jiro | | J-PARC, Japan | | approved | YES | -| [Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | PSI, Switzerland | | approved | YES | -| [Ray Osborn](User%3ARay_Osborn.html "wikilink") | | ANL, USA | | approved | **NO** | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | | ORNL, USA | | approved | YES | -| [Tobias Richter](User%3ATobias_Richter.html "wikilink") | | Diamond Light Source, UK | | approved | YES | -| Claude Saunders | | APS, ANL, USA | | approved | YES | -| [Armando Sole](User%3AArmando_Sole.html "wikilink") | | European Synchrotron Radiation Facility, France | | approved | YES | -| Benjamin Watts | | Swiss Light Source, Switzerland | | approved | **NO** | - -Planned Agenda --------------- - -Agenda for NeXus International Advisory Committee Meeting - -**Thursday 7th October 2010** -9:00-9:15 Welcome -9:15-9:30 Review of minutes from last meeting -9:30- 9:45 Break -10:00-11:00 Election of Officers -11:00-12:00 Report from Code Camp -12:00-13:00 Lunch -13:00-14:00 Update on NAPI -14:00-15:00 Update on Definitions -15:00-15:15 Break -15:15-17:00 Doc Subgroup & Tech Committee Meetings -**Friday 8th October 2010** -9:00-9:30 Plan for Day -9:30-10:00 Break -10:00-12:00 Proposals for Definitions -12:00-13:00 Lunch -13:00-15:00 Further discussions on Definitions/NAPI -15:00-15:15 Break -15:15-16:00 Voting on proposed issues -16:00-17:00 Meeting Summary - -Talks ------ - -- [Mark Koennecke](pdfs/Mark_Nexus_NIAC_2010.pdf "wikilink") -- [Ray Osborn](pdfs/NeXpy.pdf "wikilink") - diff --git a/content/NIAC2010_CodeCamp.md b/content/NIAC2010_CodeCamp.md deleted file mode 100644 index ae3c95ee..00000000 --- a/content/NIAC2010_CodeCamp.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: NIAC2010 CodeCamp -permalink: NIAC2010_CodeCamp.html -layout: wiki ---- - -Location --------- - -Building 5200, Room 214 (Emory) Oak Ridge National Laboratory - -Code Camp Attendees -------------------- - -**Do not write in this table. This is to indicate the list of people we -know are attending** - -If you want to attend please email either [Stuart -Campbell](User%3AStuart_Campbell.html "wikilink") or [Peter -Peterson](User%3APeter_Peterson.html "wikilink"). - -***It is important that if entering the US on a Visa Waiver to ensure -that you get a VWB (Visa Waiver Business) and NOT a tourist one.*** -It is likely that you will not be allowed into ORNL with a Tourist Visa! - -| Name | Company/Institute | PAS status | spaces in car | -|-----------------------------------------------------------|-----------------------------------------------------|---------------------|---------------| -| [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | | approved | | -| [Stuart Campbell](User%3AStuart_Campbell.html "wikilink") | | ORNL, USA | | approved | 2 | -| Peter Chang | | Diamond Light Source, UK | | approved | | -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | | APS, ANL, USA | | approved | | -| [ Jens-Uwe Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink") | | Helmholtz Zentrum Berlin (renamed HMI), Germany | | approved | | -| [Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | PSI, Switzerland | | approved | | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | | ORNL, USA | | approved | 3 | -| Michael Reuter | | ORNL, USA | | approved | | -| [Tobias Richter](User%3ATobias_Richter.html "wikilink") | | Diamond Light Source, UK | | approved | | -| Benjamin Watts | | Swiss Light Source, Switzerland | | awaiting approval | | -| [Marie Yao](User%3AMarie.html "wikilink") | | ORNL, USA | | approved | | -|| - -Planned Agenda --------------- - -Tuesday 5th October 2010 - -| | | | -|-------|-------|-------------------------------------| -| 9:00 | 9:15 | Welcome | -| 9:15 | 9:30 | Progress on tasks from last meeting | -| 9:30 | 9:45 | Break | -| 10:00 | 11:00 | Work Package Planning | -| 11:00 | 12:00 | Prioritize and Allocate Tasks | -| 12:00 | 13:00 | Lunch | -| 13:00 | 14:00 | Define working groups | -| 14:00 | 15:00 | Development work in Teams | -| 15:00 | 15:15 | Break | -| 15:15 | 17:00 | Development work in Teams | -|| - -Wednesday 6th October 2010 - -| | | | -|-------|-------|-------------------------------| -| 9:00 | 9:30 | Discussion on progress so far | -| 9:30 | 9:45 | Break | -| 10:00 | 12:00 | Continued Development | -| 12:00 | 13:00 | Lunch | -| 13:00 | 15:00 | Final Development Session | -| 15:00 | 15:15 | Break | -| 15:15 | 17:00 | Wrap up and assign Actions | -|| - -Topics ------- - -- Documentation - - resolve incomplete sections and reorder layout - - prepare report to present to NIAC - - SNS nxdl -- Doxygen API documentation -- prepare Tech Committee report on progress to NIAC - - Concepts - - Coordinate Systems - - **NXmeasurement** - - implement **NXsubentry** - - implement scaled data -- project plan -- NAPI - - NAPI is not thread-safe - - problem is deep inside C API - - NAPI Java interface - - consider object-oriented or higher-level API - - build system to cmake/cpack -- confirm validation process for NeXus data files **NXvalidate** - diff --git a/content/NIAC2011_CodeCamp.md b/content/NIAC2011_CodeCamp.md deleted file mode 100644 index d6e0ff92..00000000 --- a/content/NIAC2011_CodeCamp.md +++ /dev/null @@ -1,328 +0,0 @@ ---- -title: NIAC2011 CodeCamp -permalink: NIAC2011_CodeCamp.html -layout: wiki ---- - -![ logo for the 2011 NeXus Code -Camp](NeXusCodeCamp2011-logo.png " logo for the 2011 NeXus Code Camp") - -Purpose -------- - -Develop NeXus software components through intense effort by small groups -working on specific projects and tasks. It is expected that those -attending the 2011 NeXus Code Camp will already have strong foundation -and understanding in aspects of the NeXus software and come ready with -knowledge, tools, and ideas to make significant progress during the -event. The specific projects and tasks, as well as the list of -participants, are described on this wiki and will be revised as the -event draws near. - -See previous NeXus Code Camps: - -- -- - -Dates ------ - -- 2011 October 20-22 (Thursday - Saturday) - -Daily Agenda ------------- - -Meeting room is Building 401, Room B2100 - -### Thursday, 2011 October 20 - -| time | description | comments | -|---------------------|--------------------------------------------------------------------------|-----------------------------------------------------| -| 9:00 - 10:15 AM | meeting | organize slate of projects and tasks | -| 10:15 - 10:45 AM | morning break | (included) | -| 10:45 AM - 12:00 PM | meeting | work on projects and tasks | -| 12:00 - 1:15 PM | **Comparison of APS Data\_Exchange+HDF5 for Tomography with NeXus+HDF5** | (\*) working lunch onsite, hosted by APS, 401/B2100 | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | meeting | daily summary (plenary) | - -(\*) speakers for the working lunch include: - -- Chris Jacobsen, APS (scientific lead, APS Data Exchange format) - ![](pdfs/2011_10_20_nexus_heretics_v5.pdf "wikilink") -- Mark Koennecke, PSI (NeXus, chairman of NIAC) - -### Friday, 2011 October 21 - -| time | description | comments | -|---------------------|--------------------------------|-----------------------------| -| 9:00 - 10:15 AM | meeting | work on projects and tasks | -| 10:00 - 10:30 AM | morning break | (included) | -| 10:30 AM - 11:30 PM | **The Current State of NeXus** | public talk, 401/A1100 | -| 12:00 - 1:15 PM | lunch | offsite, traveler's expense | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | meeting | daily summary (plenary) | - -### Saturday, 2011 October 22 - -| time | description | comments | -|---------------------|-----------------|-----------------------------| -| 9:00 - 10:15 AM | meeting | work on projects and tasks | -| 10:15 - 10:45 AM | morning break | (included) | -| 10:45 AM - 12:00 PM | meeting | work on projects and tasks | -| 12:00 - 1:15 PM | lunch | offsite, traveler's expense | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | meeting | Code Camp wrap-up (plenary) | - -Planning --------- - -### Business Matters - -Since this is not to be a meeting of the full NIAC, no business matters -can be resolved. - -### Projects and Tasks - -These items are sorted in order of priority that they be finished. Only -items that currently exist in the project plan are being worked on. - -1. move to using 1.8 version of **HDF5** API (would allow HDF5 - transparent external linking) -2. NXclonehandle -3. PyTree API -4. discuss axes for multi dimensional scans -5. discuss axis dependency encoding -6. discuss and decide switch to CMake for building NeXus -7. discuss and decide on the use of sphinx for documentation -8. Design NXdict replacement based on NXDL -9. Improve nxvalidate -10. Link NeXus WWW-site with docbook manual -11. A Fedora installer -12. Discuss and write NeXus for the Impatient -13. Cleanup NeXus applications - -### Other Tasks - -Items not currently on the project plan, but have arisen recently: - -1. support for more than one unlimited array dimension - (http://trac.nexusformat.org/code/ticket/258) -2. support larger dataset dimensions (currently dimensions are “int” so - overflow at > 2^31 elements) - -### Presentations - -1. presentation about **cmake** (Freddie Akeroyd or Pete Peterson) -2. about **sphinx** for documentation (Pete Jemian) ![ - PDF](pdfs/2011-10-20_NeXus_manual_in_sphinx.pdf "wikilink") -3. about **parallel HDF** (Mark Koennecke, anyone else with more - experience?) -4. assessment of work to migrate from HDF 1.6 to HDF 1.8 (Freddie - Akeroyd) -5. public talk: ***The Current State of NeXus***, Building 401, Room - A1100, Friday, Oct. 21, 10:30 - 11:30 AM -6. ... - -### Schedule - -- arrive the previous day (Wednesday, 2011-10-19) -- conference check-in first morning (Thursday, 2011-10-20), 401-B2100 -- meet all day (Thursday), 401-B2100 -- meet all day (Friday), 401-B2100 -- meet all day (Saturday), 401-B2100 -- checkout next day (Sunday, 2011-10-23) - -Meeting room is Building 401, Room B2100 - -Here is the daily schedule (tentative): - -| time | description | comments | -|---------------------|-----------------|-----------------------------| -| 9:00 - 10:15 AM | meeting | work on projects and tasks | -| 10:15 - 10:45 AM | morning break | (included) | -| 10:45 AM - 12:00 PM | meeting | work on projects and tasks | -| 12:00 - 1:15 PM | lunch | offsite, traveler's expense | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | meeting | daily summary (plenary) | - -Notes: - -1. late-afternoon wrap-up (plenary) each day -2. morning and afternoon breaks will be included in amenities charge -3. breakfast, lunch, dinner will be in a local restaurant at traveler's - expense - -Practical Matters ------------------ - -### Registration - -Step 1: Register with the APS as a visitor to start the process. -Step 2: Send an email to jemian@anl.gov announcing your plan to attend. - -#### APS Visitor registration - -web site: - -You must register as an APS Visitor in advance (to identify matters -related to Passport, Visa, and ANL Site Access) or you should not expect -access to the ANL site. If asked, indicate that you are visiting *Pete -Jemian*. - -For the paperwork of all international visitors, we need each degree, -year earned, and institution name. Additionally for certain visas, we -need additional information: - -F1 visa: we need the I-20 number and expiration date. -J1 visa: we need the DS-2019 number and expiry date. -H1 visa: we need the I797 number and expiry date. - -### Venue - -Argonne Guest House -Argonne National Laboratory -9700 S. Cass Avenue - Building 460 -Argonne, IL 60439 -USA - -Please reserve your own rooms directly with the hotel: - -Web site: -telephone: +1 - 800-632-8990, +1 - 630-739-6000 -fax: +1 - 630-739-1000 -map link: - -### Directions and Maps - -- map to hotel:   -- airport: - - Chicago O'Hare (ORD): international - - Chicago Midway (MDW): domestic - - Milwaukee, WI Mitchell Field (MKE): distant alternative - - - -- taxi: - - Call for a taxi pickup only after you have all your bags - - Must be a taxi that goes to Chicago suburbs - - suburban taxi will pickup in second lane of arrivals at Chicago - O'Hare airport - - , 1-800-244-1177 (automated system) - - ... others ... -- airport bus: -- commuter train: - - inconvenient - -### Host - -- Pete Jemian - - Advanced Photon Source, Argonne National Laboratory - - email: jemian \_at\* anl.gov - - office phone: 1-630-252-3189 (forwards to mobile) - - Google voice: +1-847-859-9775 (forwards to mobile) - -### Costs - -- Expect hotel rate to be US$\#\#\# (approximate, subject to change) - - Please reserve your own rooms directly with the hotel (website, - phone, ...) -- Conference fee: no fee - - food at morning and afternoon breaks will be provided - - perhaps (no guarantee) a small meeting souvenir -- regular meals (breakfast, lunch, dinner) will be traveler's expense - -### Equipment - -| item | quantity | who provides? | -|--------------------------------------------------|------------|---------------| -| projector & screen |   | host | -| LCD displays, keyboards, & mice |   | host | -| 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | -| foreign electrical power adapter | as needed | traveler | -| Wi-Fi connections | sufficient | hotel | - -Participants ------------- - -| participant | affiliation | arriving | departing | registration? | ANL gate pass? | -|-------------------------------------------------------------|----------------------------------------|------------|------------|---------------|----------------| -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | [APS](http://www.aps.anl.gov) | host | host | host | host | -| [Mark Könnecke](User%3AMark_Koennecke.html "wikilink") | [PSI](http://sinq.web.psi.ch/) | 2011-10-18 | 2011-10-24 | complete | yes | -| [Tobias Richter](User%3ATobias_Richter.html "wikilink") | [Diamond](http://www.diamond.ac.uk/) | 2011-10-19 | 2011-10-25 | complete | yes | -| [Eugen Wintersberger](User%3AEugenwintersberger.html "wikilink") | [DESY](http://www.desy.de/) | 2011-10-19 | 2011-10-23 | complete | yes | -| [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | [ISIS](https://www.isis.stfc.ac.uk/) | 2011-10-19 | 2011-10-23 | complete | yes | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | [SNS](http://neutrons.ornl.gov/) | 2011-10-19 | 2011-10-22 | complete | yes | -| [Ray Osborn](User%3ARay_Osborn.html "wikilink") | [MSD/ANL](http://msd.anl.gov/) | 2011-10-20 | 2011-10-22 | N/A | yes | -| [Paul Kienzle](User%3APaul_Kienzle.html "wikilink") | [NCNR/NIST](http://www.ncnr.nist.gov/) | 2011-10-19 | 2011-10-23 | ? | pending | -|| - -Presentations -------------- - -... coming ... - -Final Report ------------- - -As some of you might know, the NeXus technical subcommittee and -especially Pete Jemian have invested a lot of work to update the NeXus -manual in the last year. It is now current and much better then it used -to be. In this work we arrived at a major milestone on our last code -camp in Chicago, October 20 - 22. Now, the NeXus WWW site has received a -new front page and its content is created from the NeXus manual. Though -not all of it looking as beautiful as it could be, at least the content -is correct and up to data. - -Another good news is that we had some discussions with the detector -manufacturer Dectris. They do the Mythen, Pilatus and Eiger detectors. -With the Eiger detector they will start writing HDF-5 files with NeXus -conventions. The programming model will be that Dectris writes the -detector data and the local DAQ system adds further meta data to the -HDF-5 NeXus file. In order to support this, some more fields have been -added to NXdetector. - -Other things which we addressed during the code camp: - -- For HDF-5 all dimensions can now be unlimited -- NAPI was moved from HDF-5 1.6 to HDF-5 1.8 which is now current. - Support for HDF-5 1.6 was stopped two years ago. -- A set of additional API functions was defined which allow to use 64 - bit integers for the dimensions. -- Some more manual work was done: there will be examples how to write - NeXus files with the HDF-5 API alone soon. A new manual, NeXus for - the Impatient, is in progress. This is a short introduction to NeXus - in about 10 pages. -- Some more work was done to integrate Ray Osborn's tree python API - and to write more tests for the python interface. -- Some progress was made on axis dependency encoding -- We will gradually move from autotools to cmake for the NeXus API. -- We had some discussions on a new C++ tree API to be written by Eugen - Wintersberger, on a parallel HDF driver for NeXus, and a possible - move to sphinx for the NeXus manual. - -All in all, we managed to put a man-month of work into NeXus between the -seven of us who attended the code camp. Many thanks to everyone who -participated and to Pete Jemian who did a wonderful job as a local -organiser. \[PRJ: I thank all of you.\] - -We are in good hope that a new version of the NeXus-API will be released -before the end of this year. We also strive to make a 1.0 release of the -NeXus application definitions by then. - -Best Regards, Mark Koennecke - -### Added note - -We also has a good discussion with scientists and staff of the APS -regarding the release of details of how NeXus is implemented in HDF5. -Also discussed were current APS plans to store data in HDF5 files but, -for performance reasons as well as simplicity, not necessarily in -compliance with NeXus. diff --git a/content/NIAC2012.md b/content/NIAC2012.md deleted file mode 100644 index 4eccf2e2..00000000 --- a/content/NIAC2012.md +++ /dev/null @@ -1,776 +0,0 @@ ---- -title: NIAC2012 -permalink: NIAC2012.html -layout: wiki ---- - -Planning is currently underway for the NIAC / Code Camp meeting in 2012. -This is being organised to take place at [The Cosner's House, Abingdon, -UK](https://stfc.ukri.org/about-us/where-we-work/rutherford-appleton-laboratory/the-cosener-s-house/) and occur prior to the -[NOBUGS meeting](https://www.nobugsconference.org/). - -Dates are: - -- NeXus code camp -> 18th / 19th September 2012 -- NIAC Meeting -> 20th / 21th September 2012 - - - -- [NoBugs meeting](https://www.nobugsconference.org/) -> - 24th-26th September 2012 - -Location and Accomodation -------------------------- - -[The Cosner's House, Abingdon, -UK](https://stfc.ukri.org/about-us/where-we-work/rutherford-appleton-laboratory/the-cosener-s-house/) - - Science and Technology Facilities Council - The Cosener's House - Abbey Close - Abingdon - Oxfordshire - OX14 3JD - United Kingdom - -The fee of £200 per event covers two nights accommodation and all meals -during the days - see Logistics below - -Registration is via the [NOBUGS conference -website](http://www.nobugs2012.org/NOBUGS/registration/NeXus.html) - -Travel ------- - -If arriving at Heathrow, take the [Oxford “airline” -bus](http://www.oxfordbus.co.uk/main.php?page_id=24), but get off at the -penultimate stop [St -Aldates](http://www.oxfordbus.co.uk/content/img/cms/wtboxfordmap2100512.jpg) -rather than Oxford bus station. Public transport to Abingdon [leaves -from St -Aldates](http://www.oxfordbus.co.uk/content/doc/cms/CityCentre%20120212.pdf) -either [Oxford bus company buses 35 or -X3](http://www.oxfordbus.co.uk/main.php?page_id=21) or [Thames travel -bus X2](http://www.thames-travel.co.uk/timetables.htm) get off at the -Vineyard or Stratton Way and walk to [Coseners -house](https://stfc.ukri.org/about-us/where-we-work/rutherford-appleton-laboratory/the-cosener-s-house/) - -If you are arriving later and wish to take a taxi/minicab from Oxford to -Coseners House, there is a taxi rank at the final Oxford “airline” stop -(Gloucester Green coach station). More information about taxi/minicab -servcies in Oxford are on [this -page](http://www.oxford.gov.uk/PageRender/decTS/Public_transport_occw.htm). - -Logistics ---------- - -People arriving for the NIAC and staying on for NOBUGS conference the -following week at \[| RAL\] -can keep their rooms in Cosner's. Daily transport will be available to -and from the NOBUGS venue at the RAL site. - -The meeting fee for NIAC/Nexus code camp is the Coseners house 24 hour -delegate rate, which covers Dinner, B+B, plus lunch. So: - -- the code camp fee will cover dinner on Monday and Tuesday evenings, - 2 nights accommodation, breakfast+lunch on Tuesday and Wednesday. -- the NIAC fee will cover dinner on Wednesday and Thursday evenings, 2 - night accommodation, breakfast+lunch on Thursday and Friday. - -**If you will be staying Friday evening (and onwards) you need to -[reserve and pay for this separately yourself with Coseners -house](http://www.nobugs2012.org/NOBUGS/accommodation.html)** - -List of Attendees ------------------ - -Please add your name to this table after registering for the meetings -via the [NOBUGS -site](http://www.nobugs2012.org/NOBUGS/registration/NeXus.html) - -| Name | Company/Institute | Code Camp (18/19) | NIAC (20/21) | NOBUGS (24-26) | Arrival date (accommodation needed from) | Departure date | -|--------------------------------------------------------------|-----------------------------------------------------------|-------------------|--------------|----------------|-----------------------------------------------|----------------| -| [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | | YES | | YES | | YES | | Day attendee | | Day attendee | -| [Tobias Richter](User%3ATobias_Richter.html "wikilink") | | Diamond Light Source, UK | | YES | | YES | | YES | | Day attendee | | Day attendee | -| [Steve Cottrell](User%3ASteve_Cottrell.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | | NO | | YES | | YES | | Day attendee | | Day attendee | -| [Ben Watts](User%3ABen_Watts.html "wikilink") | | Swiss Light Source, Paul Scherrer Institut, Switzerland | | YES | | YES | | NO | | 18/09/2012 | | 22/09/2012 | -| [Jiro Suzuki](User%3AJiro_Suzuki.html "wikilink") | | J-PARC, KEK, Japan | | NO | | YES | | YES | | 19/09/2012 | | | -| [Joachim Wuttke](User%3AJoachim_Wuttke.html "wikilink") | | JCNS at FRM II | | NO | | YES | | YES | | 19/09/2012 | | | -| [Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | Paul Scherrer Institute, Switzerland | | YES | | YES | | YES | | 17/09/2012 | | | -| [Jens-Uwe Hoffmann](User%3AJens-Uwe_Hoffmann.html "wikilink") | | Helmholtz-Zentrum Berlin | | YES | | YES | | YES | | 18/09/2012 | | | -| [Eugen Wintersberger](User%3AEugen_Wintersberger.html "wikilink") | | DESY | | YES | | YES | | YES | | 17/09/2012 | | | -| [Herbert J Bernstein](User%3AHerbert_J_Bernstein.html "wikilink") | | Dowling College, USA | | NO | | YES | | YES (24th) | | 19/09/2012 | | 21/09/2012 | -| [Fajin Yuan](User%3AFajin_Yuan.html "wikilink") | | Diamond Light Source | | YES | | YES | | YES | | Day attendee | | Day attendee | -| [Graeme Winter](User%3AGraeme_Winter.html "wikilink") | | Diamond Light Source | | YES (19th) | | YES (20th) | | NO | | Day attendee | | Day attendee | -| [David Mannicke](User%3ADavid_Mannicke.html "wikilink") | | ANSTO | | YES | | YES | | YES | | 17/09/2012 | | 27/09/2012 | -| [Peter Peterson](User%3APeter_Peterson.html "wikilink") | | SNS, ORNL, USA | | NO | | YES | | YES | | 19/09/2012 | | 27/09/2012 | -| [Armando Sole](User%3AArmando_Sole.html "wikilink") | | ESRF | | NO | | YES | | NO | | 19/09/2012 | | 22/09/2012 | -| [Pete Jemian](User%3APete_Jemian.html "wikilink") | | APS | | Skype | | Skype | | NO | | 2012-09-18 (Skype only, no lodgingrequired) | | 2012-09-21 | -|| - -Pete Jemian's physical avatar at the meeting - -Agenda ------- - -Both meetings are taking place in the Hamilton room at Coseners house, -starting at 9am. Evening meal is scheduled for 7pm each day - -### NeXus Code Camp - -The code camp allows existing NeXus developers to meet and work together -on developing software or resolving particular NeXus design issues. A -preliminary list of items is listed below, but the exact subset is -decided on the first day of the meeting. - -- Finish CIF coordinate issue -- PyTree API Tests -- Cleanup NeXus applications -- NXdict replacement design -- Automatisation and documentation of NeXus release process - - Implement Continuous Integration - - Write more unit tests -- Change documentation from DocBook to Restructured Text - (Sphinx)``http://download.nexusformat.org/sphinx/`` -- Cleanup trac-tickets -- Discuss timed data -- Develop a materials definition to present to NIAC -- Do we switch to CMake for all builds? -- How to integrate sphinx documentation building into Cmake - -### NIAC Meeting - -This is a meeting for members of the NeXus International Advisory -committee and other interested persons. It generally discusses matters -of policy and strategy, but can discuss specific NeXus instrument -definitions if the relevant experts are in attendance. - -- Report on the status of NeXus and Overview -- Voting officers -- Strategy discussion: Where do we go with NeXus? -- Develop and ratify material definition for samples and sensors -- Roadmap to OO-NeXus -- Review of DECTRIS additions to NXdetector -- Review of added synchrotron beamline base classes -- Will the tech committee be allowed decide on fields and base - classes? - -Meeting Minutes ---------------- - -Date: 20 Sept 2012 - -Attendees: - -- Mark Koennecke, SINQ -- Fred Akeroyd, RAL -- Tobias Richter, Diamond -- Peter Peterson, SNS -- David Mannicke, ANSTO -- Armando Sole, ESRF -- Herbert Bernstein, imgCIF -- Jiro Suzuki, JPARC -- Joachim Wuttke, FRM and JCNS -- Ben Watts, SLS -- Eugen Wintersberger, DESY -- Jen-Uwe Hoffmann, HMI -- Steve Cottrell, Diamond -- Graeme Winter, Diamond -- Pete Jemian, APS (via Skype) - - - -- introductions -- Recap NeXus and recent developments - - Previous meeting - - NXsubentry and NXcollection classes - - Support for CIF style coordinates - - Non C-storage order arrays: offset, stride atributes - - Python Tree API part of API - - - -- HDRI: High Data Rate Initiative making something NeXus-like - - Asked to revise synchrotron base classes - - Eugen: software to write files is nearly ready and - implementation will be installed at as many beamlines as - possible in the Dec shutdown -- PANDATA - - NeXus at first well received - - made plans for method-specific formats - - Dormant -- 2011 Code Camp in APS - - NX\_unlimited for all dimensions - - 64 bit dimensions - - update to HDF5-1.8 - - Doc updates. now reasonable up to date and understandable. - - WWW-site from manual - - tests for python API 30% complete - - Python Tree API cleaned up - - Parallel HDF deemed not useful for NeXus because performance - limited systems don't want any extras -- DECTRIS collaboration (Pilatus and Eiger manufacturer) - - NeXus/HDF5 for Eiger - - Add extra fields for detector parameters - - write sets of ~10,000 images into separate files (workaround for - data rate issues and HDF5 doesn't allow sections of same data - group in different files) - - write with compression (5-10GB/s data rates!!!) - - - -- How much can we compromise with DECTRIS - - Tool to convert data to standard HDF5 (they are using - non-standard compression) -- HDF5 workshop at PSI - - DECTRIS (DESY) pays for writing pre-compressed chunks and - compression plugins -- HDF5 new features - - Asynchronous IO - - Journaling - - Single writer, multiple reader semantics - - better fault tolerance - - in-memory HDF5 files (very fast writing) - - shared object headers -- HDF5 intended features - - better multi-threading - - virtual object layer, completely replaces storage layer - - can use HDF5 data model without the file formats - - allows more storage models - - metadata server for better parallel support - - mirroring, stacking - - better parallel support -- NAPI release 4.3, Application defs 3.1 - - features from 2011 code camp - - preparing packages in linux repos -- code camp 2012 - - move docs to sphinx - - more wiki-like syntax - easier! - - URL: ?? (bug in build process, so not quite ready yet) - - cleaned up trac tickets - - drop autoconf for CMake - - Resolved CIF coordinate issue - - good suggestion for handling axes of multidimensional data sets - - cleanup of applications: nx2dtd, NXdump, ... dropped -- Topics for NIAC 2012 - - Quo vadis - - roadmap OO - - CIF coordinates - - process for changing base classes - - review synchrotron classes - - review addition to NXdetector - - Materials defs - - Multi-D array axes encoding - - what to do about expired NIAC members? - - Elect new officers -- Questions from code camp - - anyone using NXcharacterisation? - - who is using F77 API? - - do we get into timed data? - - - -- discuss priorities (reordered below in descending priority) - - Elect new officers (defer by 1 day to allow newcomers to get to - know others) - - Quo vadis - - CIF coordinates - - roadmap OO - - Multi-D array axes encoding - - Materials defs - - what to do about expired NIAC members? - - questions from code camp - - anyone using NXcharacterisation? - - who is using F77 API? - - do we get into timed data? - - DECTRIS meeting - - process for changing base classes - - review synchrotron classes - - review addition to NXdetector - - - -- CIF revisit (MK presents CIF and options for adaptation to NeXus) - - Options: - - NXdependency group - - depends\_on attribute (tech committe prefered and - recommended by HB) - - make vector mandatory and add offset\_unit - - HB will push CIF to make gravity declaration mandatory - to ensure mapping between CIF and NeXus coords is - possible - -`Motion to accept CIF-style angle descriptions with discussed additions.` -`Vote: for 9 against 0, abstain 4` - -*Coffee break* - -- Quo Vadis - - Intro by Mark - - existence since 1996 and uptake is slow - - Do we persist in the same manner or change our ways? - - Others often reinvent NeXus - - New instruments often implement NeXus - - results of survey are surprisingly positive with more NeXus - implementations than expected - - New developments: - - Dictionary Based Programming Techniques - Common Data - Model (CDM) - - Tree Based Programming - - Requirements for data formats changing - - disks are cheap - - full logging becomes possible - - data rates are very high in some cases - - Discussion - -AS: ESRF advocate dictionary/HDF5 and just use the few parts of NeXus -they want and ignore the rest (very pragmatic view). - -TR: Need to take larger view and not get tied up in technical details. -need to engage with facilities using NeXus (eg ALBA). - -BW: Need to emphasise community involvement - dictating standards is -historical problem of creating an example to start with. - -JW: What is NeXus, is it something interchangeable? Have we been -truthful about what it can achieve? I have no problem in maintaining -tools to convert data to whatever format the users ask for. - -JH: Users want physical meaning for the data recorded, not just numbers -whose meaning is obscured by instrument details. But to understand the -instrument, also need more raw values. - -MK: Different use cases; 1. understanding instrument (raw values), 2. -exchange/data analysis (physical) - -GW: Standard has value if I can read and understand a file without any -further information. As soon as you move away from that, it becomes a -huge problem to support the variants. - -HB: Seen 2 issues; dictionary of names and format. People can use any -format and you have no control anyway. The only thing you need is that -every uses a common vocabulary. vocabularies tend to merge. separate -vocab and application definitions. - -FA: if we concentrate app defs and vocab, then we are working towards -standards, tools are not required (there are plenty available). People -are choosing HDF5, help them come together and talk. - -GW: data rates are a problem - HDF5 are needed. Don't want to have -facility-specific dialects of NeXus. Need consistence and completeness -(single file). - -AS: performance issues get in the way of a single file, multiple files -must be acceptable. - -GW: don't water it down - all or nothing! - -EW: I tried to invent better than NeXus but failed. Users just want -basic data, but beamline scientist want to record everything in order to -know what the instrument is actually doing. Sometimes will need to -correct for strange instrument behavior that requires info not normally -needed by users. Making this general enough to use at more than one -beamline quickly leads to something NeXus-like. - -HB: Offer - if you can agree on your vocab, I'll give you an IUCr -working group for adopting/working on your dictionary. I.e. CIF and -NeXus join forces! - -JW: I support this. Clarity would help me. vocab is valuable to me, but -formats are minor technical details. - -EW: Important thing is to make entry to Nexus easy. Some instruments are -unique and we don't have to worry about them. OO can help us define -terms. - -HB: we use “prefixes” for namespaces, but are considering using general -XML. want to make sure terms don't conflict. - -PJ: have image that NeXus legislates, but we should put out message that -we want to collaborate to reduce conflicts. - -MK: make an action that we concentrate on dictionaries and appl defs. - -GW: ImageCIF has good library that does a lot of work for me. It would -be easier to persuade people to use Nexus if we had the same kind of -library - part of analysis work is done by the library. - -HB: maintaining libraries will get done if there is adoption. - -GW: If we can get Nexus routines included in CBFlib, then my work -becomes much easier. analysis program writers will not resist. - -Everyone agrees that moving CIF and NeXus closer would be great. - -HB: CIF will make addition docs for IUCr people and will put a link to -NeXus doc from the IUCr website. - -MK and HB: lets arrange a meeting between NIAC and IUCr to discuss -cooperation. - -GW and SC: want to make sure that IUCr don't steamroll vocabularies of -other communities - -MK: Can we put NAPI into maintenance mode? - -PP: what is status of validation tool? - -FA: GUI tool works and I have used it, waiting for colleague to finish -CLI tool - -FA + HB: cooperation on validation tools could be useful. NeXus backend -for CBFlib validation tool is possible. - -MK: break for lunch and after lunch we will try to bring the discussion -to a close. - -*Lunch break* - -- NeXus guiding statements: - - The main focus of the NeXus community is to further develop the - dictionaries, base classes and application definitions. - - The NIAC is a forum for resolving issues. - - The NIAC acts as a custodian for NeXus: definitions, examples, - documentation, reference implementations. - - NeXus can be mapped to different physical file formats: - - HDF5 is the preferred physical file format. - - NeXus-XML is the currently supported ASCII file format. - -`Motion to accept above statements.` -`vote: for 8, against 1, abstain 0` - -- We should put together a wish-list of features to forward to the HDF - group - - - -- Statements/promises: - - NAPI and applications are considered stable - - The use of NAPI is not mandatory and examples using HDF5 APIs - will be provided - - The validation tool is actively developed - -`Motion to accept above statements.` -`vote: for 12, against 0, abstain 1` - -- We seek cooperation with IUCr and CIF - - Have a meeting with them to figure out what this means - - Maybe have another NIAC next year to agree on this (in - conjunction with ECM) - - MK volunteers to take a lead - - We encourage the inclusion of NeXus into CBFlib - - - -- We invest into cleaning up NeXus, remove outdated, old or broken - stuff -- We invest into documenting NeXus better through bringing inheritance - or composition to NeXus base classes - -`Motion to support above commitments.` -`vote for 14` - -*Coffee break* - -- What do we do in terms of advocating NeXus? - - Persue new facilities? existing instruments? Analysis/reduction - software? - - Support users and program writers on the mailing lists - - NeXus-developers merged into NeXus mailing list - - Approach facilities using NeXus but not represented in the NIAC - and encourage them to nominate new NIAC candidates. - -`Motion to elect HB into NIAC as the CIF representative.` -`vote for 14, against 0 ` - -- AS: proposes flattening the heirarchy in NeXus files. - - What he really means is that the NXxas application appears to - require links to specific locations and he wants the application - definition to be simpler. - -`Motion to allow application definitions to be flat and simple (not implement the full instrument description)` -`vote: for 12, against 2, abstain 1.` - -- - We recommend to use the NeXus heirarchy in application - definitions, but we do accept application definitions with a - flattened hierarchy. - - - -- heading on web page is wrong: “NeXus Application Classes” --> - “NeXus Application Definitions” in ``http://download.nexusformat.org/doc/html/ClassDefinitions.html`` - - - -- Who is using NXcharacterisation? - - PP added it but isn't using it because icat is better. - - We deprecate it - - - -- continue support for the F77 API? - - don't expend effort on it, but don't throw it away either. - - - -- Examined NXarpes application definition - - suggest talking to someone using a toroidal analyser - - minor corrections pointed out. - - - -- - END DAY \*\*\* - -21 Sept 2012 - -- Elect new officers - -`Motion to elect MK as Chairman` -`vote - for for 13, against 0, abstain 1` - -`Motion to elect TR as Executive Secretary` -`vote - for for 13, against 0, abstain 1` - -`Motion to elect FA as Technical Chair` -`vote - for 13, against 0, abstain 1` - -`Motion to elect PJ as Documentation Chair (PJ notes that his travel will be very limited)` -`vote - for for 14, against 0, abstain 0` - -- PJ presents the new sphinx-generated documentation, using the draft - currently available at: ``http://download.nexusformat.org/sphinx/`` - - Looks nicer - - not everything works currently, but can be fixed - no apparent - show-stoppers. - - cannot easily have automatic numbering of figures is biggest - disadvantage - - MK, FA: that's OK, we can drop it. - - - -- Roadmap to object oriented (OO) NeXus - - base classes would be OO with some kind of inheritance - - this would make the base classes clearer to users - -`Motion to investigate possible technical implementations of NeXus with object oriented base classes.` -`vote: for 12, against 1, abstain 0` - -- Multidimensional axes proposal from TR - - use of @signal=I is easily confused with signal=1 (position is - different though). - - suggest changing name - - How many multiple competing versions do we want to - encourage/support/allow? - - How many plots should be put into each NXdata? - -`Motion to move signal and axes attributes into NXdata group attributes.` -`vote - for 12, against 0, abstain 2` - -`Motion to accept as a possible solution and invite TR to present sample implementations.` -`vote - for 12, against 1, abstain 1` - -*Coffee Break* - -- DECTRIS - - HDF5 doesn't support parallel writing with compression - need a - workaround! - - write a master file (with metadata) with links to separate - files for data (with ~10,000 images in each). - - want to use non-standard compression (not distributed with - mainline HDF5 libraries) - - comment from code camp: ask for tool to convert to HDF5 - standard compression. - - Meeting with DECTRIS and customers in October - who wants to - attend? MK - -FA: maybe use detector bank approach? - -EW: split file drive approach would work better. - -HB & MK: this is a bug in HDF5, but DECTRIS can't wait for it to be -fixed (years) - -EW: are they using the most recent version; performance problems before -1.8.6 - -HB: they are and plan to ship with 1.8.10 - -`Motion to work as closely as possible with this community to get this under NeXus.` -`vote - for all.` - -- BW presents mechanism for verifying communities and resolving - conflicts - - good idea and will keep in mind but do not want to consider - implementing until a real need arises. - - - -- Process for ratifying changes to NeXus classes. - - waiting for the NIAC to meet makes changes slow. - - minor changes can waste time at NIAC meetings. - - allow non-breaking changes to base classes, etc to be ratified - via mailing lists? - -`Motion: Changes to base classes must be ratified tech committe and put on the nexus mailing list to allow a 4 week period for objections.` -`vote - for 12` - -- Do we investigate better ways to record “timed data” - - NXlog mostly works, but probably not optimal - - HB: Verner Banger is collaborating with the HDF group on this - topic - should look at his work - -BW: It would be nice if we could have option items in application -definitions - -PP: Already can! you just set the “minimum required” attribute to zero. - -*Lunch Break* - -- Materials definition (samples, filters, multilayers) - - Tech committee suggest just using a descriptive string - - HB: look at protein data base and see what they are doing. - follow community standards where they exist - - EW: infinite levels of detail makes it impossible to - standardise. Maybe use application definitions for community - specific materials descriptions. - - NXsample already has “chemical formula” (using CIF conventions), - “description” - - we would be open to suggestions from the community - - - -- Time based data - - event streams need to be time-stamped and correlated - -EW: NXlog is fine if you have single values with time stamps. how to -handle detectors? - -MK: You need to have a sufficiently precise timing system that all the -computers have access to. - -AS: Market is maturing, let's wait and see what works in the community - -PP: why not just let time be an independent variable? - -MK: people will want to know which things need to be correlated. - -`Motion to ask tech committee to investigate possible solutions to recommend to users.` -`vote - for 12, against 0, abstain 1` - -- Interaction with HDF group? - - we should try, but we don't know if we have leverage to motivate - them to pay attention - -EW: spoke to Heiner Billich: facilities should get together to make -requests and pool funding - but should NeXus be part of this effort? - -MK: NIAC might not be a good representative for that activity, this is -beyond the scope of NIAC. - -HB: Should make polite contact and say that we want HDF5 to work well - -what can we do to help? What does the HDF group want the interaction -with NIAC to be? NeXus should encourage the discussion. - -`Motion to support AS to open discussion with the HDF group on behalf of the NIAC.` -`vote - for 12, against 0, abstain 1` - -- Examples of NeXus data files following application definitions. - -PP: we wrote application definitions to match our files, so I have some. - -JW: is it working? why are there so few compliant examples? - -MK: It has taken some time to solidify a base to begin testing -compliance - -HB: we have driving force from facilities - -BW: A code camp activity could be to generate example files for a new -instrument. - -`Promises to supply valid example files:` -` - MK: 6-10` -` - PP, FA: 3` -` - SC: 1` -` - TR: 2` - -- Advocacy? - - Not yet ready - need to examine files currently being generated - for consistency. Need to clarify what we recommend. - - We invite the community to write application definitions as a - way of planning towards a standard, even if they don't intend to - switch yet. - - - -- Optional fields in application definitions? - - while it is already possible, we clarify that we want it. - -`Motion to confirm that the feature allowing optional fields in application definitions is endorsed by the NIAC.` -`vote - for all` - -FA: is there a way to have the presence of one tag be dependent on the -presence of another? TR thinks so. - -*Coffee break* - -- NXdetector additions for DECTRIS - - “exposure\_time” seems unlikely to be correct. - “acquisition\_time” is probably better. NXdetector already has - “count\_time”. - - typos - - BW volunteers to discuss the subtlties of the words they want to - use for the attributes - - threshold\_energy should be type NX\_ENERGY - - \_time attributes should be type NX\_TIME - -`Motion to encourage use of these attributes, with the corrections discussed.` -`vote - for 12, against 0, abstain 1` - -- NXbending\_magnet - - Gerd Wellenreuther proposed attribute names. BW should discuss - with him and sort out issues (specifically source\_distance\_x - and \_\_y) - - BW to better document accepted\_photon\_beam\_divergence (does - it overlap with the divergence\_x\_minus etc?) - - divergence attributes overlap - slight preference for a single - array over multiple scalar attributes. - - - -- NXcapillary - - needs “material” attribute - - need better documentation of “gain” and “transmission” - - model should be included in the “manufacturer” string - add doc - to explain - - - -- NXinsertion\_device - - should “taper” be an NX\_LENGTH or an NX\_ANGLE - - can we change “k” to “k\_parameter” in order to avoid - single-character names? - - add “period” attribute, or rename “magnetic\_wavelength” - - verify with Gerd Wellenreuther - - - -- NXxraylens - - rename as “NXxray\_refractive\_lens” for descriptiveness and - consistency - - “aperture” doc to specify diameter only - - correct lens\_geometry options - - Put to an expert because we don't have time/expertise - - - -- Term limits of Chairman and Secretary - - currently limited to 3 years - - problem if terms end between major meetings - - want to make it more likely that term limits occur at full NIAC - meetings - -`Motion to set the term length to 2 years and the limit for executive officers as two terms.` -`vote for 11, against 0, abstain 0` - -*Meeting End* diff --git a/content/NIAC2014.md b/content/NIAC2014.md deleted file mode 100644 index 949c33d5..00000000 --- a/content/NIAC2014.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: NIAC2014 -permalink: NIAC2014.html -layout: wiki ---- - -The 2014 plenary NIAC meeting and NeXus Code Camp is scheduled for -December 2014. Both meetings will take place at [The Advanced Photon -Source](http://www.aps.anl.gov), Argonne National Laboratory, IL, USA -(near Chicago). This time, the NIAC meeting is not being held in -conjunction and proximity with -[NOBUGS](https://www.nobugsconference.org/) which was held in -Japan in September. - -Dates are: - -- NeXus code camp -> Monday, 2014-12-15 - Wednesday, 2014-12-17 -- NIAC Meeting -> Thursday, 2014-12-18 - Friday, 2014-12-19 - -Location and Accommodation --------------------------- - -### location of Meetings - -The Code Camp and the NIAC meeting will take place at the Advanced -Photon Source, building 437, conference room C010 - -map: - -### Recommended Lodging - -[Argonne Guest House, Argonne, Illinois, USA](https://www.anlgh.org/) - - Argonne Guest House - Argonne National Laboratory - 9700 S. Cass Avenue - Building 460 - Argonne, IL 60439 - Phone: 800-632-8990 or 630-739-6000 - Fax: 630-739-1000 - -Argonne Guest House -Argonne National Laboratory -9700 S. Cass Avenue - Building 460 -Argonne, IL 60439 -USA - -Please reserve your own rooms directly with the hotel: - -Web site: -telephone: +1 - 800-632-8990, +1 - 630-739-6000 -fax: +1 - 630-739-1000 -map: -General information: [Visiting the APS](http://www.aps.anl.gov/About/Visiting/), - -### Directions - -- airport: - - Chicago O'Hare (ORD): international - - Chicago Midway (MDW): domestic - - Milwaukee, WI Mitchell Field (MKE): distant alternative - - - -- taxi: - - Call for a taxi pickup only after you have all your bags - - Must be a taxi that goes to Chicago suburbs - - suburban taxi will pickup in second lane of arrivals at Chicago - O'Hare airport - - , 1-800-244-1177 (automated system) - - ... others ... -- airport bus: -- commuter train: - - inconvenient - -Practical Matters ------------------ - -### Registration - -Step 1: Register with the APS as a visitor to start the process. -Step 2: Send an email to jemian@anl.gov announcing your plan to attend. -Step 3: Confirm your name appears on the official [ list of attendees](NIAC2014#List_of_Attendees.html "wikilink") below. - -#### APS Visitor registration - -Follow the STEPS FOR VISITORS provided: - - -You must register as an APS Visitor in advance (to identify -matters related to Passport, Visa, and ANL Site Access) or you should -not expect access to the ANL site. If asked, indicate that you are -visiting *Pete Jemian*. - -For the paperwork of all international visitors, we need each degree, -year earned, and institution name. Additionally for certain visas, we -need additional information: - -F1 visa: we need the I-20 number and expiration date. -J1 visa: we need the DS-2019 number and expiry date. -H1 visa: we need the I797 number and expiry date. - -### Host - -- Pete Jemian - - Advanced Photon Source, Argonne National Laboratory - - email: jemian@anl.gov - - office phone: 1-630-252-3189 (forwards to mobile) - - Google voice: +1-847-859-9775 (forwards to mobile) - -### Costs - -- Conference fee: no fee - - food at morning and afternoon breaks will be provided - - perhaps (no guarantee) a small meeting souvenir -- regular meals (breakfast, lunch, dinner) will be traveler's expense - -### Equipment - -| item | quantity | who provides? | -|--------------------------------------------------|------------|---------------| -| projector & screen |   | host | -| LCD displays, keyboards, & mice |   | host | -| 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | -| foreign electrical power adapter | as needed | traveler | -| Wi-Fi connections | sufficient | hotel | - -List of Attendees ------------------ - -| \# | Name | Company/Institute | Code Camp (15-17) | NIAC (18-19) | Arrival date | Departure date | ANL visitor | intl. paperwork | ANL gate pass | -|-----|--------------------------------------------------------------|-------------------------------------------------------------------------|-------------------|--------------|--------------|----------------|-------------|-----------------|---------------| -| 1 | | [Pete Jemian](User%3APete_Jemian.html "wikilink") | | Advanced Photon Source, Argonne National Laboratory, Argonne, IL, USA | | YES | | YES | | host | | host | | local | | n/a | | local | -| 2 | | [Herbert Bernstein](User%3AHerbert_Bernstein.html "wikilink") | | Dowling College, NY, USA | | YES | | YES | | 2014-12-14 | | 2014-12-19 | | complete | | n/a | | complete | -| 3 | |[Mark Koennecke](User%3AMark_Koennecke.html "wikilink") | | Paul Scherrer Institute, Switzerland | | YES | | YES | | 2014-12-14 | | 2014-12-20 | | complete | | approved | | complete | -| 4 | |[Mark Basham](User%3AMark_Basham.html "wikilink") | | Diamond Light Source, UK | | YES | | YES | | 2014-12-14 | | 2014-12-19 | | complete | | approved | | complete | -| 5 | |[Steve Cottrell](User%3ASteve_Cottrell.html "wikilink") | | ISIS Facility, Rutherford Appleton Laboratory, UK | | NO | | YES | | 2014-12-17 | | 2014-12-19 | | complete | | approved | | complete | -| 6 | |[Eugen Wintersberger](User%3AEugenwintersberger.html "wikilink") | | DESY, Germany | | YES | | YES | | 2014-12-14 | | 2014-12-19 | | complete | | approved | | complete | -| 7 | |[Aaron Brewster](User%3AAaron_Brewster.html "wikilink") | | Lawrence Berkeley Laboratory, USA | | NO | | YES | | 2014-12-17 | | 2014-12-19 | | complete | | n/a | | complete | -| 8 | [Ray Osborn](User%3ARay_Osborn.html "wikilink") | | Argonne National Laboratory, USA | | YES | | YES | | ANL staff | | ANL staff | | local | | n/a | | local | -| 9 | |[Jiro Suzuki](User%3AJiro_Suzuki.html "wikilink") | | J-PARC, Japan | | NO | | YES | | 2014-12-17 | | 2014-12-20 | | complete | | approved | | complete | -| 10 | |[Tobias Richter](User%3ATobias_Richter.html "wikilink") | | European Spallation Source, Scandinavia | | YES | | YES | | 2014-12-14 | | 2014-12-19 | | complete | | approved | | complete | -| 11 | |[Ben Watts](http://www.psi.ch/lsc/benjamin-watts) | | Swiss Light Source, Switzerland | | YES | | YES | | 2014-12-14 | | 2014-12-19 | | complete | | approved | | complete | -| 12 | |Ricardo M. Ferraz Leal | | Spallation Neutron Source, Oak Ridge National Laboratory, USA | | NO | | YES | | 2014-12-17 | | 2014-12-19 | | complete | | approved | | complete | -| 13 | |Elena Pourmal | | The HDF Group, Champaign, Illinois, USA | | presentation | | NO | | 2014-12-17 | | 2014-12-17 | | complete | | n/a | | complete | -|| - -Agenda ------- - -Both meetings are taking place in building 437, conference room C010, -starting at 9am. Evening meal is scheduled for 7pm each day - -An afternoon group excursion is being considered. - -### Schedule - -The schedule overview: - -| Day | date | activity | -|-----------|-----------------------------|------------------------------------------| -| Sunday | 2014-12-14 | Code Camp participants arrive | -| Monday | 2014-12-15, | NeXus Code Camp, Building 437, room C010 | -| Tuesday | 2014-12-16 | NeXus Code Camp, 437-C010 | -| Wednesday | 2014-12-17 | NeXus Code Camp, 437-C010 | -| Wednesday | 2014-12-17 | NIAC members arrive | -| Thursday | 2014-12-18 | NIAC Meeting, 437-C010 | -| Friday | 2014-12-19, ends at 1:00 PM | NIAC Meeting, 437-C010 | -| Saturday | 2014-12-20 | checkout | - -Here is the daily schedule (tentative): - -| time | description | comments | -|---------------------|-----------------|-----------------------------| -| 9:00 - 10:15 AM | meeting | work on projects and tasks | -| 10:15 - 10:45 AM | morning break | (included) | -| 10:45 AM - 12:00 PM | meeting | work on projects and tasks | -| 12:00 - 1:15 PM | lunch | offsite, traveler's expense | -| 1:15 - 3:15 PM | meeting | work on projects and tasks | -| 3:15 - 3:30 PM | afternoon break | (included) | -| 3:30 - 5:00 PM | meeting | work on projects and tasks | -| 5:00 - 6:00 PM | meeting | daily summary (plenary) | - -Notes: - -1. late-afternoon wrap-up (plenary) each day -2. amenities provided at morning and afternoon breaks -3. breakfast, lunch, dinner will be in a local restaurant at traveler's - expense - -Meetings --------- - -### NeXus Code Camp - -See [NIAC2014\_CodeCamp](NIAC2014_CodeCamp.html "wikilink") for specific -Agenda and notes - -### NIAC Meeting - -See [NIAC2014\_Meeting](NIAC2014_Meeting.html "wikilink") for specific -Agenda, notes, and Minutes diff --git a/content/NIAC2014_CodeCamp.md b/content/NIAC2014_CodeCamp.md deleted file mode 100644 index 5d0c58a9..00000000 --- a/content/NIAC2014_CodeCamp.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: NIAC2014 CodeCamp -permalink: NIAC2014_CodeCamp.html -layout: wiki ---- - -The code camp allows existing NeXus developers to meet and work together -on developing software or resolving particular NeXus design issues. - -See [NIAC2014](NIAC2014.html "wikilink") for administrative details about -this meeting. - -Planned Schedule (subject to change) ------------------------------------- - -2014-CodeCamp-Schedule-MTW.png - -Topics to be Considered ------------------------ - -A subset will be chosen on the first day of the meeting. - -Walk through - -- [Issues](https://github.com/nexusformat/definitions/issues) posted - on the [NeXus GitHub](https://github.com/nexusformat) repository -- Proposals and other topics listed on the - [Discussions](Discussions.html "wikilink") page -- Close issues that are of minor importance and not of particular - concern to anybody and not likely to be resolved any soon. - -Choose topics from the preliminary list below: - -- Procedural questions: - - How to organize proposals and discussions - - How to remove ballast, when to break compatibility, versioning - and validation -- Fundamental design issues: - - Clarify rank specification - - related to - [\#266](https://github.com/nexusformat/definitions/issues/266): - implement difference in rules between base classes and - application definitions - - Discuss [NeXus interfaces](Objects_or_Interfaces.html "wikilink") - - [How to avoid name clashes during future extensions of the Nexus - standard](How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html "wikilink") - - Optional contents in application definitions? - - Discuss lightweight tags versus application definitions - - Rules for multi file NeXus files -- Class specifications: - - NXformula? - - NXdata: Assigning axes to data once more again - - Prepare contributed definitions for ratification -- Work on software: - - validation tools (nxvalidate or NXvalidate): state (cf - [\#169/defs](https://github.com/nexusformat/definitions/issues/169), - [\#251/defs](https://github.com/nexusformat/definitions/issues/251), - [\#300/defs](https://github.com/nexusformat/definitions/issues/300), - [\#363/code](https://github.com/nexusformat/code/issues/363)), - further development, WWW service, use of NeXpy/Python-API for - validation - - New NAPI release? - - [\#230](https://github.com/nexusformat/definitions/issues/230): - use cmake to build Sphinx documentation -- Finish support for attribute arrays (who proposed this? please - provide details!) -- Off-site excursion to -tba- - -Agenda ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

*Monday*

*Tuesday*

    -
  • Wednesday*
  • -

9:00-10:00

Review

Short procedural

NAPI issues

10:00-10:30

Coffee

Coffee

Coffee

10:30-12:00

Cansas
-Axes
-Error

Telco with DECTRIS

12:00-13:00

Lunch

Lunch

Lunch

13:00-15:00

DECTRIS,
-NXmx etc

nexpy

HDF-5 talk

15-15:30

Coffee

Coffee

Coffee

15:30-18:00

MXmx,
-when time smaller issues

Reprioritise for last day
-Lightweight tags and interfaces

- -### Tuesday - -- teleconference with Dectris: 10:30 AM - -#### for end of day review - -- [axes](http://wiki.nexusformat.org/2014_axes_and_uncertainties#Proposal_to_describe_multi-dimensional_data_.28Axes.29) -- [uncertainties](http://wiki.nexusformat.org/2014_axes_and_uncertainties#Uncertainties) - -### Wednesday - -- public talk: *Current State of HDF5*, Elena Pourmal, The HDF Group, - location: 401/A1100 - diff --git a/content/NIAC2014_Meeting.md b/content/NIAC2014_Meeting.md deleted file mode 100644 index ab8bbf8c..00000000 --- a/content/NIAC2014_Meeting.md +++ /dev/null @@ -1,310 +0,0 @@ ---- -title: NIAC2014 Meeting -permalink: NIAC2014_Meeting.html -layout: wiki ---- - -NIAC Meeting ------------- - -This is a meeting for members of the NeXus International Advisory -committee and other interested persons. It generally discusses matters -of policy and strategy, but can discuss specific NeXus instrument -definitions if the relevant experts are in attendance. - -See [NIAC2014](NIAC2014.html "wikilink") for administrative details about -this meeting. - -### Schedule - -The NIAC2014 Meeting takes place in building 437, conference room C010, -starting at 9am. Evening meal is planned for 7 pm each day. - -![](2014-NIAC-Schedule-HF.png "2014-NIAC-Schedule-HF.png") - -Notes: - -1. amenities at morning and afternoon breaks will be provided -2. breakfast, lunch, dinner will be in a local restaurant at traveler's - expense - -### Items for Agenda - -- Votes on new members -- Electing new officers, candidates get ready! -- Revise Constitution [ Terms of Reference - ](NIAC#Terms_of_Reference.html "wikilink"): - - item 3: change wording of “instrument and group class - definitions” to contemporary terms (base classes and instrument - definitions) -- Examination of contributed definitions and consideration for - ratification: - - joint CIF/NeXus NXmx - - NXarpes - - NXcanSAS - - NXcite - - NXgrating - - NXstxm - - NXtransformations - - NXzone\_plate - - others ... -- Deprecation of NeXus polar coordinate system, NXgeometry? -- Do we want better standardization and documentation of NeXus - processes? -- Discussion about how we assign priorities and respond to the - community -- Do we want NeXus Interfaces for improving base class documentation? -- application definitions: can some items be optional? -- Data Features (lightweight tags with recipes) versus application - definitions? -- Rules for multi file NeXus files -- NXdata: - - proposal: describe [ how to find the default - data](2014_How_to_find_default_data.html "wikilink") - - proposal: describe how data are related (particularly: [ axes - and uncertainties](2014_axes_and_uncertainties.html "wikilink")) -- NXformula -- [Update for NXflou application - definition](Update_for_NXflou_application_definition.html "wikilink") - -### NIAC Agenda - -#### Thursday - -- Introduction - Confirmation of new members - -- Coffee - -- Ratifications - -- NXmx -- Deprecate old positioning schemes -- Axes & Errors - -- Lunch - -- Ratifications - -- NXstxm -- NXfluo -- Contributed definitions -- NXformula -- optional fields in application definitions -- sequence\_index -- Thumbnail storage -- Finding default data -- Features - -#### Friday - -- NeXus Procedures including Funding, certification etc. -- Election of officers -- Backlog from Thursday - -1PM: NIAC terminates - -### Minutes - -#### Thursday Morning - -Present members: as listed on [NIAC2014](NIAC2014.html "wikilink"). - -Welcome address by John Maclean (Acting Division Director for -Engineering Support). - -Mark K introduction on activities since last meeting, including code -camp. As well as proposed list of topics and agenda. (SLIDES?) - -Agenda approved as above. - -New Members approved (all in favour): - -- Mark Basham for Diamond -- Tobias Richter for ESS -- Claudio Ferrero for ESRF - -NXmx, NXtransformations and variants accepted as proposed (all in -favour). - -NXgeometry deprecated - manual expresses warning not to use in the -future (all in favour). - -polar\_angle and azimuthal\_angle stay unannotated in the manual (1 -abstain, 1 against). - -CIF style marked as preferred method for expressing geometry in the -manual (1 abstain). - -Presentation on multidimensional axes by Pete Jemian. - -Coffee break. - -Vote on proposal for NXdata axes with indices attribute only required -when required to resolve ambiguity. All in favour. Vote on proposal with -indices required as in -[2014\_axes\_and\_uncertainties](2014_axes_and_uncertainties.html "wikilink"). -Accepted: 9 in favour. Strong disagreement by Ray Osborn as adoption is -noted: “Adoption of NeXus will be hampered by additional complexity -being required unnecessarily”. Ben Watts would like to add that the -default plot in NXdata should be simple and not contain more data than -required. He may make a proposal at that end in future. - -Eugen clarified the preference to use arrays where possible to avoid -string parsing. No objections. Proposal amended. - -Pete Jemian presenting proposal for uncertainties. No agreement on best -way forward. All three possibilities (*field*\_uncertainties, attribute -to field, and attribute to parent group) all have pros and cons. We -reserve all schemes and explore further. NIAC will see a proposal when -experience has been gained with all variations. - -Lunch - -#### Thursday afternoon - -Ratification of new and amended base classes and definitions. - -NXfluo -[Update\_for\_NXflou\_application\_definition](Update_for_NXflou_application_definition.html "wikilink") -Resolution: Proposal is in agreement with existing scan rules. No vote -required. Further amendments to the application definition may be -required, but that needs to be refined. Mark B and Eugen W will work on -that. - -NXapres: Unanimously accepted in the current form in -contributed\_definitions. - -NXstxm: Accepted as proposed (lives in development branch on definitions -repo on github). (all in favour) - -NXcite: Accepted with the addition of URL field. (unanimous) - -NXfresnel\_zone\_plate: Accepted under proviso that the NXgeometry is -removed. (unanimous) - -Discussion of proposed muon classes in contributed. They need revision. -(no vote) - -Clarification decision: By default values are readback values. If demand -values are to be recorded for consistency the recommended way of naming -the data field is to append \_set to the dataset name, as in energy\_set -for example. (6 in favour, 6 abstain) - -Coffee break with generous supply of nibbles by our host. (Many thanks, -Pete!) - -NXformula: Agreed as research project (no vote). No evaluation of -formula intended by consumer, use in documentation only. Will be -developed by Eugen. Use of attributes may be required to find formula -for data. muparser may or may not be sufficient. - -NXgrating: Accepted as in development branch. Required revision of -NXmonochromator to go with that agreed (pending). - -Optional fields in application definitions (minOccurs=0): All in favour -of allowing that. - -sequence\_index to be added to NXprocess and NXnote to allow for -encoding a sequence of operations or notes. All in favour. - -Discussion of preference on multiple NXprocess or few NXprocess with -NXnotes inside. No consensus. Will allow the community to gain more -experience. - -Adding “default” attribute at root and entry level in order to find -default NXentry and NXdata for plotting. All in favour. - -Providing thumbnails for OS support. Accepted for exploration at NXroot -level. - -Research Projects - -NeXus features (presented by Tobias and Mark B): All in favour of that -effort. Validation in python seen as good approach. NXmx good first -target, because existing validation fails. Muons will be interested. -Needs some more ground work and documentation before giving the word -out. Integration with NeXpy promising. “features” reserved in NXentry. -All in favour. - -Interfaces (presented by Mark K): Works in a similar way for base -classes what features do at a higher level (NXentry). Presentation well -received. No motion, no vote. - -Ray reports on effort for pyro for remote access of NeXus files in -NeXpy. - -No backlog from this day. - -Ben reports on acquisition with decimated counts. Adding “decimated” to -acquisition\_mode in NXdetector would help. All in favour. - -Adding “nominal” to NXmonitor would help normalising data to a nominal -flux for example. Proposed and accepted (2 abstain). - -“rgbimage”, “rgbaimage”, “hslimage”, “hslaimage”, “cmykimage” to be -added to the interpretation attribute of datasets to encode 3d datasets -with colour as added dimension to the 2d image. Improve documentation as -well. All in favour. - -Introduction to tomorrow's topics. - -Vote on changing the constitution to agree with current terms -(application definition and base class). All in favour. - -Vote on removing the Procedures section of the Constitution since it was -never actually in use. All in favour. Wiki changed in line with both -proposals. - -Dinner proposed and accepted. - -#### Friday Morning - -Procedural questions. - -Robert's rule to be followed for setting agenda. All in favour (1 -abstain). - -Action for next chairmen to contact detector vendors and invite them to -discussions in order not to give the perception that the NIAC -relationship to Dectris is in any way special. All in favour. - -Proposal to open nexus-tech discussions to everyone. Mailing list -traffic to be channeled to the general mailing list (or the committee). -Hangout open all interested parties (vendors, non-members). All in -favour. - -Funding. Discussion on how money could help to improve NeXus adoption. -No strong case made for continuous funding for tutorials, developers or -meetings. Topical funding for tutorials at specific meetings is seen as -a good idea. Herbert will look into that. - -Mark B to investigate a review of NeXus by the [Software Sustainability -Institute](http://www.software.ac.uk) in their next proposal cycle. - -Coffee - -Election of Officers - -Mark K comes to the end of his second term as chair and cannot stand -again. - -- Chair: Tobias elected (1 abstain) -- Executive Secretary: Mark K elected (1 abstain) -- Documentation Release Manager: Pete Jemian reelected (1 abstain) -- Technical Manager: Eugen Wintersberger (2 abstain) - -All in favour of renaming the Technical Subcommittee Chair role to -Technical Manager. - -Group photo - -Ray suggests using the wiki for voting. No general agreement. Record -keeping of email and presence votes is not ideal currently. Committing -data to a repo might be an idea. Other suggestions were use of forum -software. - -The secretary is tasked with exploring options to improve voting -processes and recording. (1 abstain) - -Many thanks to the kind host. The committee thanks the outgoing -officers. Meeting concluded. diff --git a/content/NIAC2016.md b/content/NIAC2016.md deleted file mode 100644 index 7655733c..00000000 --- a/content/NIAC2016.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: NIAC2016 -permalink: NIAC2016.html -layout: wiki ---- - -The 2016 plenary NIAC meeting and NeXus Code Camp -took place in Copenhagen hosted by -[ESS](https://europeanspallationsource.se/data-management-and-software-centre). -As usual the NIAC meeting is being held in conjunction wth and proximity -to the [NOBUGS](https://nobugs.esss.se/) conference. - -The dates for the Code Camp were 10th, 11th, and 12th October (Mon - -Wed). The NIAC meeting ran Thu & Fri (13th and 14th). - -Topics for the NIAC meeting were registered as -[issues](https://github.com/nexusformat/NIAC/issues) in the -[NIAC](https://github.com/nexusformat/NIAC) repository on GitHub. - -Registration and Practical Information was available on the -[external ESS indico event page](https://indico.esss.lu.se/event/554/). - -The [2016 Minutes](NIAC2016Minutes.html "wikilink") are availble. diff --git a/content/NIAC2016Minutes.md b/content/NIAC2016Minutes.md deleted file mode 100644 index 025e8dd7..00000000 --- a/content/NIAC2016Minutes.md +++ /dev/null @@ -1,253 +0,0 @@ ---- -title: NIAC 2016 Minutes -permalink: NIAC2016Minutes.html -layout: wiki ---- - -October, 13-14, 2016 in Copenhagen, COBIS Building, M10 - -## Thursday, October, 13 - -Welcome from Tobias, organizational tidbits - -Introduction round - -### Topics - -- **NXtransformations, NXmx,**, done -- **NXreflections, NXprocess**, done -- WWW-site update, done -- **Streaming NeXus**, done -- NXdirecttof -- Variable length strings, done -- NXcontainer -- Problems with storing scan information -- Versioning, done -- How to increase adoption, done -- 2014 Attributes, done -- **NXcansas**, done -- NXdata, required?, plottable? -- **NXsample**, done -- „NXshape“, CSG in NeXus -- Weight -- Update on NexPy -- cnxvalidate presentation, done -- HDF5 discussion, done -- How to increase NeXus adoption?, done - - -### Membership Renewals - -Ray Osborn unanimously confirmed as representative of ANL in NIAC - -Stephen Cottrell unanimously confirmed as representative of the musr community in NIAC - -Armando Sole unanimously accepted as ESRF representative in NIAC - -Joachim Wuttke has expired as NIAC member and does not wish to maintain his membership. There will be no new representative for FRM-2. - - -### cnxvalidate - -Presentation by Mark Koennecke - -Discussion on validating units and units itself. - -Action Items: - -- Issue on cnxvalidate: research better validation of units, may be with UDunits, or else. -- Revisit units in the technical committee: interested parties: Eugen, Herbert, Aaron, Ricardo, aim for a representative of Mantid - -### canSAS - -Pete Jemian presented the canSAS application definition. There is a mapping from canSAS to NeXus. - -There was some discussion on this. The result was that the definition will be revised to only represent the processed data (I(Q)) use case. To be revisited once this is done. May be tomorrow. - -### WWW-Site - -Ray presented his suggestion for a revised NeXus WWW-site. The main point is to make it look more modern. Also it is to be generated with sphinx which makes it easier to restyle it using sphinx styles. - -Still needs some work, revisit at NeXus Telco. Then make it mobile friendly. If we can do this easily with Sphinx. - - -## Thursday afternoon - -### NXmx, NXtransformations - -Herbert is presenting proposed changes for NXmx-1.5. - -NXmx is adding a NXdetector_group for documenting detectors better to humans. They have funny detectors with segments which move diagonally with regards to the detector center. - -Added an optional third detector dimension. This is a data organizational dimension. - -There is some discussion about understanding this. - -Changes in NXbeam for polychromatic beams in the application definition. As optional, added in order to be able to validate this. - -Flux may need two values, NXbeam defines flux is flux per unit area. The additional flux is a rate: photons/second. To be called total_flux. - -Adding incident_beam_size which is a 2 value array of FWHM (when gaussian) or a diameter (if it is a top hat) or 2 sizes for a rectangular beam. - -Changes to NXmx **accepted by consensus** after a little discussion with no objection. - - -Herberts presents changes to NXtransformations. - -Axis rotation ranges are being added. Crystallographers want that for emotional reasons. The use case is the oscillation method. - -Under discussion this changed to: - -These three proposals to change NXtransformations below where unanimously accepted for by vote: - -- AXIS_end -- AXIS_increment_set. This is the set value for the oscillation range in an oscillation experiment. -- The actual AXIS value is the start of the oscillation. This needs to be updated in the documentation. - - -The **general** axis is highly contentious and not very well understood. Herbert says that a general axis could also be expressed as a translation. - -The end of this: Aaron and Herbert provide better documentation and examples. We also half agreed to drop the transformation_type attribute for the general axis. This will be deferred until we understand this better. - -### Dinner - -Very nice dinner at taarnet.dk in a high security environment with x-ray. - -## Friday - -David Mannicke initially missing. - -### Election of Officers - -Tobias Richter confirmed as chair with one abstain, 11 yes - -Mark Koennecke confirmed as executive secretary with one abstain, yes 11 - -Eugen Wintersberger confirmed as technical release manager with one abstain, yes 11 - -Pete Jemian confirmed as documentation and definition release manager, 12 yes - - -### Streaming NeXus - -Mark Koennecke presented the results of the code camp discussion as a proposal. - -We accepted the renaming NXevent_data fields to what Freddie presented and is being used at SNS and ISIS. All yes. - -- scaling_factor as attribute to the time fields in NXlog, NXevent_data. If the scaling_factor is there the time units refer to the units after scaling, 12 yes -- NXlog clarification, 12 yes -- cue_time_zero, cue_index as optional fields added to NXlog and NXevent_data, they always index into the main time/data arrays. 12 yes -- The structure with replacing fields with NXlog or NXevent_data is accepted, 12 yes - -No majority for summarizing the streamed data in NXdata. - - -Action Item: Mark Basham to report on VDS performance in june. Based on that report we decide if NeXus does need an own segmentation scheme. - - -### NXreflections - -Presentation by Aaron Brewster. The use case is to store intermediate results - -Discussing NXreflections in more detail: - -- H,K,L change to NX_number for incommensurate structures -- Discussion on flags, change to bitfield, no enum for efficiency -- Expand the description of partiality -- Need to keep mm and pixel positions because of parallax -- Write out predicted and observed -- Drop the mm in names, rather use units -- bounding_box as array, document the usage -- Spell out background -- Drop the val on the intensities, keep the _var version -- overlaps is a list of overlapped reflections. This is a ragged array. As the code is not in place we defer it for now. -- Add polar_angle and azimuthal_angle - -Accepted as a base class with 12 yes, with the changes listed above. We trust Aaron to apply the changes. - - - -### NXsample - -Tobias Richter presents suggested changes to NXsample. - -- Happy with unit cell a, b, c and angles -- Happy with additional sample types: buffers etc -- Division into NXsample_component base classes, one per component - -Accepted with 12 yes - -Some details deferred. - -### NXcansas again - -Pete Jemian presenting the canSAS application definition revised from feedback of yesterday. - -There was some doubt about this is what the canSAS group wants. - -We accept NXcansas with NXinstrument made optional, 8 yes, 4 abstain - -### Variable length strings - -Short discussion on fixed versus variable length strings. - -We accept both variable and fixed length strings, readers have to support both, 11 yes, 1 no - -### Versioning - -Short discussion on the versioning proposal as presented by Mark Koennecke from the result of the code camp. - -Herbert made the comment to improve the workflow in this way: - -- You make the change to NXDL and change the version in the NXDL file -- You build a manual and commit it into the repository -- Then you tag the git repository - -The proposal was accepted on probation with 12 yes. To be revisited at the next NIAC in order to check if it works. - -### Adoption of NeXus - -- Convincing scientists -- Pete: use it and make this public -- Herbert: NeXus is required for performance, performance problems, -- Eugen: users do not want it because analysis tools do not support it, the chicken-egg problem -- Sociological problems: to slow, social problems with NIAC -- From WWW-site point to tools which can plot NeXus, downloadable applications, -- NexPy and DAWN as general plotting tools -- Pipelines from raw data to processed data -- We spend a good deal of time on raw data formats. This is used for archiving at facilities, not for data exchange. -- Now we are at a place where we understand so much about data that no one else understands us any more. -- Herberts recommends us to listen: where are the needs, Aaron seconds with the question: how we can I help you to solve your scientific problem? -- Ray requests support for NeXpy - -We ended the discussion on a time limit. - - -### NXdata - -The problem: required group, some cases where no sensible default plot can be provided. - -Change the documentation: make it clear that NXdata should be there but can be omitted if no sensible plot can be provide, -12 yes. - -### 2014 Attributes - -Pete Jemian has a modified version of application definitions with the 2014 attributes applied. This is the signal, axes definitions as group attributes. When changing application definitions consider the code in that branch. - -This is informational. - -## Participants -- David Maennicke, ANSTO -- Ricardo Ferraz Leal, ORNL -- Aaron Brewster, Lawrence Berkeley Lab -- Ray Osborn, ANL -- Ben Watts, SLS, PSI -- Jiro Suzuki, KEK -- Freddy Akeroyd, ISIS -- Eugen Wintersberger, DESY -- Afonso Mukai, ESS-DMSC (Guest) -- Mark Basham, Diamond -- Herbert Bernstein, for CIF -- Tobias Richter, ESS -- Mark Koennecke, SINQ, PSI -- Pete Jemian, APS, part-time attendant by Hangout diff --git a/content/NIAC2018.md b/content/NIAC2018.md deleted file mode 100644 index faeb6595..00000000 --- a/content/NIAC2018.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: NIAC2018 -permalink: NIAC2018.html -layout: wiki ---- - -The 2018 plenary NIAC meeting will take place in Brookhaven on the 25/26th October and is hosted by -BNL/NSLS-II. There is not code camp planned this year. -As usual the NIAC meeting is being held in conjunction with and proximity -to the NOBUGS conference. - -Topics for the NIAC meeting can be registered as -[issues](https://github.com/nexusformat/NIAC/issues) in the -[NIAC](https://github.com/nexusformat/NIAC) repository on GitHub. - -## Registration - -In order to keep things simple, please just send an email to Stuart Campbell (scampbell@bnl.gov) stating that you wish to attend. Then please complete the Site Access instructions below. I will then update a list of attendees and their status at the bottom of this page. - -## Site Access - -In order to gain entrance to the BNL site, all non-BNL personnel must register with the [BNL Guest Information System (GIS)](https://www.bnl.gov/guv/). If you are already coming to the NOBUGS conference then you can just extend that registration to also cover the NIAC meeting. There is no need to do a separate registration. - -Please use the following information to complete the GIS form for this conference: - -- Purpose of Visit: Conference Attendance -- Subject code for Visit/Assignment: Mathematics and Computers -- Anticipated Start: Oct 25, 2018 -- Anticipated End: Oct 26, 2018 -- Access Requested: Physical on-site access to BNL -- Justification of Visit/Assignment: Participate in NeXus International Advisory Committee Meeting (Oct. 25-26, 2018) - -- BNL Department Associated With: NSLS-II (PS) -- Facility being requested to Conduct Research: None -- Beam line/experiment being requested: None -- What type of Research or Work will the visitor/assignee be working on: None - -- First Name of BNL Host for Visit/Assignment: Stuart -- Last Name of BNL Host for Visit/Assignment: Campbell - - -## Attendees - -Name|Affiliation -----|---- -Stuart Campbell|BNL -Bob Sweet|BNL -Herbert Bernstein|BNL -Jiro Suzuki|J-PARC| -Tobias Richter|ESS -Matt Clarke|ESS -Ben Watts|PSI -Mark Koennecke|PSI -Michele Brambilla|PSI -Mark Basham|Diamond -Pete Jemian|APS -Armando Sole|ESRF -Ray Osborn|ANL - -## Location - -25th Oct - Conference Room A, Bldg. 725 - All Day - -26th Oct - Conference Room 156, Bldg. 741 - All Day - -Video Conference: https://bnl.bluejeans.com/6313445578 - -## Outline Agenda - -### Thursday - -#### Morning -* Welcome -* Round Table Introductions -* Confirm Memberships -* Develop Agenda based on GitHub issues, based on participants' priorities -* Start discussions - -#### Afternoon -* Continue discussions - -### Friday - -#### Morning -* Elect Officers -* Changes to Constitution -* Re-evaluate Agenda -* Discuss Business Matters - -#### Afternoon -* Continue discussions -* Closing Matters -* End of Meeting - -## Minutes - -Minutes of this meeting are reported [separately](NIAC2018Minutes.md) diff --git a/content/NIAC2018Minutes.md b/content/NIAC2018Minutes.md deleted file mode 100644 index 8513fe51..00000000 --- a/content/NIAC2018Minutes.md +++ /dev/null @@ -1,388 +0,0 @@ ---- -title: NIAC 2018 Minutes -permalink: NIAC2018Minutes.html -layout: wiki ---- - -# NIAC Meeting 2018 - -Brookhaven National Laboratory, October 25-26, 2018 - -## Thursday Morning - -We started by a group activity of arranging tables. - -Round table introduction - -Mark Basham's membership had expired. A letter of support from Diamond light source was provided. We voted on confirming Mark Basham as representative for Diamond: All YES - -### Finding an Agenda - -Suggested Topics: - -- NeXus as logbook format, #37, 3 -- NXptycho, #36, 5 -- Attribute mask, #35, 2 -- Attribute Normalisation, #34, 2 -- McStas-NAPI, #33, 2 -- HDF5 XMP, #32, 5 -- Messy, #37, 5 -- NXquadric, #30, 3 -- NXdata plottype, #29, 2 -- Extended default, #28, 2 -- Uncertainties, #27, 4 -- NXdiffractometer, NXgoniometer, #26, 6 -- NXdata, aux signal, #25, 2 -- Voting, #22, 2 -- 2014 Attributes, #4, 4 -- Interfaces/Features/App Def, example data, #3, 8 -- NXslit, #585, -- NXData, NXdet, #583, 5 -- NXenvironment, #471, 1 -- Rarely used NXDL #331, 0 -- NXsample nature, #327, 0 -- Branding, 4, - -The #numbers point to issues on either the NIAC github or the NeXus definitions. The other numbers are votes on importance in the first pass. - -We decided to put a time limit on discussions. Per default this is 20 minutes. - -### Interfaces, Features, Application Definitions, Example Data - -Clarification of what Interfaces and Features are. The Interfaces are a better way to organize base classes, Features are more fine grained application definitions and are set to replace them. - -In this first round we did not come to a conclusion. The issues at stake where unclear to most attendees. We decided to defer this discussions to after lunch. By then presentations on both topics will be presented by Mark Koennecke and Mark Basham. - -###
NXdiffractometer, NXgoniometer - -This is about having a special group in NXinstrument which describes a diffractometer. There is a lot of overlap with the content of NXtransformation. - -We voted on: we add a group to NXinstrument named diffractometer which is of type NXtransformation. Voting result: All YES, no NO, no abstain. - -### Break - -### NXdiffractometer, continuation - -We reopened NXdiffractometer because some attendees did not understand what they voted for. - -For vote: a group of no specified name in NXinstrument -of type NXtransformation which describes a diffractometer. Result: 7 for, 4 abstain - -### Uncertainties - -Uncertainties is the name the NIAC agreed upon for discussing the storage of experimental or statistical errors associated with a dataset in a NeXus file. - -This is more a discussion about a clarification of what the actual way of describing uncertainties is. There was a proposal to annotate uncertainties in 2014 but we did not arrive at a conclusion. - -Pete Jemian will research this topic and bring up a proposal in the afternoon. - -### NXdata, NXdetector - -In NXdata NeXus collects data to be plotted. In order to do perform more thorough data processing it is useful to link back from NXdata to the NXdetector group which describes the detector and data more fully. Up to now, NeXus uses the target attribute on the dataset for this function. - -Mark Basham pointed out that the target attribute pointing to the original data in NXdetector from NXdata is broken when the data pointed to is an linked external file. We may not even have the right to open the external file and add the target attribute to the dataset. - -Proposal from Mark B: The attribute DATASETNAME_target can be used in the same way as the attribute target to a dataset is used but it is attached to the parent group. - -Extending the target to annotate the target pointing to an external file does not work because the attribute may be attached to a dataset in an external file which we do not have control over. - -There is a general problem relating data in different files with each other. - -Armando suggests to have a DATASETNAME_target field which is a soft link to the group containing the dataset. - -No conclusion was reached. We closed by defining an -action item as follows: Armando and Mark Basham work out together how to do this in a proper way. Both taking into account NeXus ways of doing things and the technical possibilities of HDF5. They come back at a later stage with a documented proposal with examples. - -### NXptycho - -This is coming from the CXI community who actual took NeXus, liked it but decided that reading and writing attributes is impossible. Mark Basham put the attributes back again. The resulting files are compatible with both CXI and NeXus. - -A prerequisite for this application definition is an additional filed in the NXbeam base class which describes the extent of the beam. This change was proposed and voted for with: - -For 7, 3 abstain, 0 against - -NXptycho renamed to NXcxi and accepted. This is basically an application definition coming from an interested community. - -Results of the vote: All in favor. - -## Lunch - -## Thursday Afternoon - -### NXptycho again - -Mark Basham pointed out that CXI describes more methods then ptychography. Thus we need to be more specific with the name of the application definition. - -The proposal then is to rename NXcxi to NXcxi_ptycho. Result: All in favor - - -### HDF5XMP - -The NIAC agreed in an earlier meeting that it would be nice if file managers could show a sensible thumbnail when encountering NeXus files. A suitable approach to achieve this was implemented by Ben Watts with the help of some funds from PSI. - -Ben Watts informed the NISC about what has been done. It is possible to have a user block in a HDF5 file, before the actual HDF5 content starts. The approach is to place meta data and thumbnails in there. There will be our own magic string which describes the content of our meta data in XMP format. This is a few keywords and a thumbnail. There are already plugins for most major file browsers on different OS which can work with this extra information. These plugins will be fed upstream into OS distributions. There is python code to add thumbnails and XMP data to the HDF5 file. Sidecar files with the xmp extension are also supported. The size of that user block has to be defined when opening the file. - -The NIAC thanks Ben Watts and PSI for implementing this. - -### Uncertainties, continuation - -Pete Jemian demonstrates his proposal. He proposes an uncertainties attribute to a dataset which as a value holds the name of another dataset containing the uncertainties. With the same shape as the original dataset. - -Comment by Mark Basham: this does not work for linked datasets as you cannot add the attribute to the dataset in the external file. DATASETNAME_errors will work because in itself it can be a link. - -Proposals: - -Ben: uncertainties go into a dataset called DATASETNAME_error. We remove the error and uncertainties field from NXdata. - -Armando: DATASETNAME_errors to be used as a general pattern when an error field is required. - -Armando's proposal accepted with all YES - -The `errors` field and `uncertainties` attribute in NXdata to be marked deprecated, 8 YES - -### Attribute Mask and Normalisation - -We started the discussion by clarifying that NXdata is not only for plotting. It is used as a container for a data object. Especially in processed data. It was noted that NXprocess is intended for processed data. - -At times, there are invalid pixels in an array holding data from a detector. A means is needed to identify such pixels. This is commonly done with a mask field. - -Proposal: DATASETNAME_mask as a general way to specify a mask. We use the conventions as described for NXdetector/pixel_mask with the option to use less that 32 bit. - -1 against, all others(10) YES - - -It occurs that there is a need to divide a dataset with another one to normalize it. - -Ray's proposal: DATASETNAME_weights anywhere in a NeXus file. If it exists and has the same shape as the dataset, you are supposed to divide the data by the weights. - -9 for, abstain 1, - -Armando proposal: weights as an attribute to NXdata which denotes a dataset which the signal dataset has to be divided by. This dataset can have one value or as many values as items of the signal to be normalized. The signal can specify its type by the interpretation attribute. - -1 in favor, 5 against, rest abstain, NOT accepted - -### Review of the agenda - -- Base vs Interfaces, 4 -– app def versus interface, 5 -- example data, 2 -- NXdata aux signals, 5 -- 2014 attributes, close the ticket -- NXslit, -- NXenv, 2 -- Rarely used NXDL, close the ticket, -- NXsample nature, not at this meeting -- NeXus as a logbook, 4 -- McStas-NAPI, 4 -- Voting, 1 -- Messy specifications, 6 -- NXquadric, 2 -- Plottype, 1 -- Extended default, 2 -- Branding, 5 - -The numbers after the comma are the votes of importance. - -### Branding - -Some NIAC members felt that the NeXus logo looks outdated. -Stuart Cambell suggested to drop the NeXus graphics to the BNL design team for reevaluation. They will create a set of suggestions which the NIAC will discuss at a later stage. - -### Messy Specifications - -Over time, strings have become a messy affair in NeXus: - -- We started with arrays of bytes. Which later became NX_CHAR. -- HDF5 introduced variable length strings. Unfortunately, the popular h5py API for writing HDF5 files stores strings per default as such variable length strings. NeXus decided to support this, though the HDF-5 API for reading/writing such strings is of low quality -- After some pressure from the community, arrays of strings were introduced. Now there is a choice to store a string as a string or as an array of strings of length 1. - -After some discussion we arrived at the following proposal: - -Array of strings are not allowed in situations where a single string is expected. Cnxvalidate should flag that. Result of the vote: All YES - - -### NXdata auxiliary signals - -This is a recovery of the signal=1, signal=2, signal=n feature which we used to have in the old way of handling axes. - -Proposal: additional group level attribute auxiliary_signals which is an array of strings holding the names of additional signals to be plotted with the signal. They all need to be of the same shape. - -All in favor. - -### Extended Use of the Defaults Attribute - -Currently we have a `default` attribute at root level which points to the default data. Currently this is restricted to NXroot, NXentry, NXsubentry. - -Proposal: allow the `default` attribute for any NeXus group which contains a plotable NXdata. - -All in favor - -## Friday Morning - -Building #741, Room 156 - -### Election of Officers - -Stuart Campbell to be the technical release manager: All in favour - -Pete Jemian as documentation release manager: All in favour - -Ben Watts as NIAC Executive secretary: All in favour - -Ben Watts steps back as NIAC executive secretary - -Mark Basham as executive NIAC secretary: All in favour - -Ben Watts as NIAC Chairman, All in favour - -### Voting - -The NIAC constitution forces NIAC votes to be done by email. It is unclear however what the acceptance criteria for such email voting is. It happened often that not enough NIAC members actually voted. Moreover, there is a danger that the email vote is badly understood and the NIAC ends up with bad decisions. On the other hand, the NIAC meets only every two years. A means to vote on issues when there is a dire need is good to have. For the discussion resulted the following proposal: - -Email voting as used up to 2018 only for membership renewals - -For issues other then membership renewals the following rule applies: we vote by teleconference where the proposal can be discussed. At least 2/3 of the NIAC have to be present at the teleconference. Then normal majority vote of the attendees applies. Teleconference decisions need to be published on the NIAC mailing list. NIAC Members not attending the teleconference have a one week period in which they can add their vote to the tally. Those not responding in that week are counted as abstained. - -Results of the vote: 11 in favor, 1 abstain, 0 against - -### Review of the agenda - -- NeXus as logbook, 7 -- OFF-geometry, 4 -- NXquadric,3 -- NXdata plottype, 2 -- NXslit, -- NXenv,1 -- NXpdb, 3 -- Base CL v Interfaces, 6 -- App Def vs Features, 6 -- Example data, 3 -- NeXus @ Accelerators, 2 -- Target: NXdetector/NXdata, 2 - -The numbers after the comma are the voted importance values. - -### NeXus as Logbook - -Presentation by Mark Koennecke about how to store logbook information in a NeXus file. The added value is that a suitable tool can interact with the logbook data. - -Results of some discussion: Nice idea, but not in the NeXus scope. Nothing is stopping us to use NeXus in this way, however. No new features in NeXus are required. - -### Interfaces - -Presentation about using interfaces for structuring the base classes better by Mark Koennecke. - -Result: We bury the idea. It adds more complexity to NeXus then it is worth. We look at the github branch for interfaces for ideas on structuring the documentation of the base classes better. We add some documentation on inheritance and interfaces into the design section of the manual to the tune: we thought about it and stepped back from it because of the additional complexity introduced by this. - -Voting results: 1 against, 2 abstain, rest in favor - -### Application Definitions vs. Features - -Mark Basham presents on features. Features can also test logic. Features can also be used to select software to process a file. - -Clarification: Application definitions stay. - -Features provide an example of reading and writing files and also do some validation. - -Proposal: - -We will make features available through the NeXus-WWW site as technical preview and encourage contributions from NIAC members. We accept the feature attribute as official. - -9 in favor, 2 abstain, rest against - -### OFF geometry - -This is about the mesh geometry as described in NXoff and discussed multiple times in the NIAC. - -Proposal: accept NXoff into NeXus - -3 abstains, rest in favor, accepted - -### NXquadric - -A quadric is a 10 parameter functions which defines sheets in space. This would go into infinity: CSG needed to limit it. This is more precise then the mesh representation in NXoff. This is also the motivation for introducing it. - -Result of the discussion: This stays in the contributed definitions for the time being. - -## Friday afternoon - -### NXpdb - -Herbert Bernstein presents the proposal. There are tools to convert pdb data to NeXus and back again. This code is in CBFlib. - -Proposal: we merge this when the tool is available as a standalone program. We also want example data. At least a pdb and a converted file. - -All in favor - -### Example data - -There are two types of files in the NeXus example data repository: files suitable as a reference and NeXus files as seen in the wild. - -Discussion if github is the right place to store the possibly large NeXus files. No good alternative was named. - -Closed with: reorganize this into reference and nexus-in-the-wild examples. We encourage facilities to add more example files. - -No vote required - -### NXdata Plottype Attribute - -This is about describing in more detail how the data is to be plotted. Color maps, linear or logarithmic axis etc. This could be achieved by having a plottype attribute at group level which contains keywords hinting at the intended presentation style. - -After some discussion the NIAC came up with this -proposal: NeXus is about how to find and annotate the data to be plotted but not to describe how the data is to be plotted. - -Voting results: All in favor - -This is to be placed into the documentation. - -### NeXus Target Attribute - -The `target` attribute denoting the origin of a linked data item is broken as it only works for internal links. - -We discussed this a little but could not come to an agreement. The technical issues raised by this problems need to be looked at in more detail. - -Thus this Proposal: While the NIAC is working at the problem of the broken `target` attribute for external links, we document the problem with it. - -7 in favor, 0 abstains, 0 no - -### NeXus at Accelerators - -Feedback from the controls groups at PSI about storing data from accelerators in NeXus: - -- They like NeXus -- They stumbled over the NXsample because they do not have a sample. And NXsample defines the origin of the NeXus coordinate system. - -The situation is that they are using NeXus look alike things to describe an accelerator. They share some with other facilities. -NeXus is not built for accelerators, thus there is a case for a new tree of groups including one which describes the origin. The suggestion is to continue working on this and when they are ready to standardize, to come back to the NIAC. - -### NXenvironment - -Proposal: In NXsample, mark `magnetic_field_log` and `temperature_log` as deprecated. To be replaced with NXlog classes with `_log` dropped from the name. - -1 abstain, rest in favor - -### NXslit - -After some discussion we concluded that the NXslit definition is sufficient. The slit can always be transformed to wherever it should go. - -### End of NIAC - -## Attendees - -- Mark Basham, Diamond Light Source -- Stuart Campbell, NSLS-2 -- Ben Watts, PSI, SLS -- Jiro Suzuki, JPARC -- Michele Brambilla, PSI, (Guest) -- Mark Koennecke, PSI, SINQ -- Takahiro Matsumoto, Spring-9, Japan, (Guest) -- Pete Jemian, APS -- Armando Sole, ESRF -- Herbert Weinstein, CIF, -- Andy Moesch, DECTRIS, (Guest) -- Matt Clarke, DMSC, (Guest) -- Ray Osborn, Member at large, (Thursday) -- Freddie Akeroyd, ISIS, (remotely) -- Jens Hoffman, HZB, (remotely) -- Marie XingXing Yao, APS, (Friday morning, guest) - diff --git a/content/NIAC2020.md b/content/NIAC2020.md deleted file mode 100644 index a2d5209a..00000000 --- a/content/NIAC2020.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: NIAC2020 -permalink: NIAC2020.html -layout: wiki ---- - -Since the [NOBUGS 2020 conference](https://tiny.cc/nobugs2020) has been postponed and continuing COVID-19 issues, the 2020 NIAC will be held as a series of teleconferences on Monday 12th and Tuesday 13th October (just prior to the orginal NOBUGS2020 dates). A [NeXus code camp](https://www.nexusformat.org/CodeCamp2020-2.html) will also be held as an online event on Monday 19th and Tuesday 20th October, the week after NIAC 2020. A final short NIAC session is planned for October 20th in order to deal with new issues discovered during the code camp. Precise details will be discussed at the [NeXus teleconferences](https://www.nexusformat.org/Teleconferences.html) and published here before October 1st. - -Voting on changes to the NeXus standard is reserved for [committee members](https://www.nexusformat.org/NIAC.html), but any interested parties are welcome to observe and stimulate discussions. Topics for the NIAC meeting should be registered as -[issues](https://github.com/nexusformat/NIAC/issues) in the -[NIAC](https://github.com/nexusformat/NIAC) repository on GitHub. - -## Registration - -Registration for the NIAC and code camp is probably not going to be required, but we might set up some way to indicate intended attendence in order to improve organisation. - -## Video Conference details - -We will be using Zoom (Please mute microphone when not speaking), you can [test your connection prior to a meeting](https://ukri.zoom.us/test) - -It is possible to join sessions by telephone - please email [Freddie Akeroyd](mailto:freddie.akeroyd@stfc.ac.uk) if you wish to do this and I will send you a link to the phone numbers - -Zoom links for each sessions will be posted on the sessions spreadsheet below. - -## Agenda - -[Sessions Spreadsheet](https://docs.google.com/spreadsheets/d/1rl5tAywWW4l7wvMy-rCAg_DdwPuNCZYbYLodAQAlwO4/edit?usp=sharing) - -[Agenda on Github](https://github.com/nexusformat/NIAC/projects/1) - -## Minutes -[Initial Sessions](NIAC2020minutes.md), [Concluding Session](NIAC2020minutes_concluding.md) - -## Decisions - - - - - - - - - - - - - - - - - - -
Proposal Associated Details Final Decision
(for/against/abstain)
NXmx Approval Documentation Accepted
(13/0/3)
@creator_version pull/790 Accepted
(15/0/1)
Inconsistent field naming pull/809 Accepted
(13/1/1)
Reservation of name prefixes pull/808 Accepted
(14/1/0)
Reserve some prefixes pull/808 Accepted
(15/1/0)
Allow prefixes to be added by email voting - Accepted
(14/1/0)
Elect new: Chair Benjamin Watts Accepted
(14/1/0)
Elect new: Secretary Freddie Akeroyd Accepted
(12/0/1)
Elect new: Definition Release Manager Peter Chang Accepted
(12/0/1)
Elect new: Technical Release Manager Stuart Campbell Accepted
(12/0/2)
Clarify naming convention pull/671 Accepted
(13/0/0)
Encourage tech demo of PIDs for NeXus terminology - Accepted
(13/0/1)
Update constitution to better express voting rules approved at NIAC2018 pull/8 Accepted
(15/0/0)
Relax restrictions on links - Accepted
(12/0/1)
Allow UUID attributes,
entry_identifier_uuid field and
reserve prefix for the BlueSky project
- Accepted
(13/0/0)
- diff --git a/content/NIAC2020minutes.md b/content/NIAC2020minutes.md deleted file mode 100644 index 8e968c62..00000000 --- a/content/NIAC2020minutes.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: NIAC 2020 Minutes -permalink: NIAC2020minutes.html -layout: wiki ---- - -## Session A - -This was a pre-meeting to do initial setup for subsequence sessions, a brief review of whether items had been assigned to the correct sessions was carried out - -## Session B - -Present: HB, FA, PC, HG, PJ, MK, AB, BW, TM, SB, RO, AF - -Upcoming issue assignment was reviewed, it was decided that the `NXmx` discussion should be moved to a major session, but as there was time in this session it was started early. - -MK queried the use of `NXdetector_group` and whether it should have a `depends_on` and ususal NeXus geometry based members. -The use of `NXdetector_group`, `NXdetector_module` and `NXdetector` was discussed. The `NXdetector_group` class pre-dates `NXdetector_module` -and encompasses some of its functionality. In its original incantation it could both subdivide and group detectors, but with the addition -of `NXdetector_module` is make more sense only to group NXdetector objects. AB showed an example of how it is used in `NXmx` and it was decided -that rewording the `NXdetector_module` description to how it is being used there was most appropriate. PJ created [PR#802](https://github.com/nexusformat/definitions/pull/802) to cover the changes, BW suggested making it clear that use of `NXdetector_module` was optional but as SB pointed out we already use the work "optional" -to mean specific things in definitions so have to be careful. As part of this the old wording "detector element" would be changed to just be "detector". - -## Session C - -Present: HB FA SB HG AB PJ RO PC MK BW AS - -The review of `NXmx` was completed. After checking the constitution, there were insufficent members present for a required 2/3 quorum so as per NIAC 2018 minutes there will be an email vote of the whoile NIAC. This will be achieved by members giving a thumbs up or thumbs down indication to relevant gitbub NIAC repository issues, a list of them to vote on will be send out post meeting. The changes to NXdetector_group are purely documentational so were passed by members present, this closed [PR#802](https://github.com/nexusformat/definitions/pull/802). - -There was a discussion around `NXptychography`, this mainly related to how the beam centre should be stored - in `NXdetector` or using `NXtransformations`. RO asked if there were any examples of `NXtransformations`, there are some details on the [wiki](https://manual.nexusformat.org/design.html#coordinate-transformations) but MK will locate a previous presentation he did on the subject. PJ will take back a recommendation to the group for [issue#53](https://github.com/nexusformat/NIAC/issues/53) but further work may be done in the Code Camp on clarifying the documentation. There is code available in the CBF library to do the necessary maths for transformations. - -Representing [mathematical formulas in data files](https://github.com/nexusformat/definitions/issues/711) was discussed, PC added an interesting new [HDF5 approach](https://github.com/lucasvr/hdf5-udf) but HB raised concerns over its security model. AB will do further investigation of approaches. - -There was some discussion about character encoding of strings, NeXus recommends UTF-8 (which is what h5py will use) but this is not enforced. The NAPI certainly doesn't enforce it. It was suggested cnxvalidate could raise a warnng if non-utf8 strings were detected, there is suport in HDF5 for [specifying and checking a character encoding](https://support.hdfgroup.org/HDF5/doc/Advanced/UsingUnicode/index.html). - -## Session D - -Present: HB FA RB PC PJ AB RO SB MK TM AS BW - -The addition of a `creator_version` top level attribute was discussed and submitted for [email voting](https://github.com/nexusformat/NIAC/issues/51). - -Next, clarifying of [naming conventions](https://github.com/nexusformat/NIAC/issues/47) was discussed. PJ summarised main items in [issue#544](https://github.com/nexusformat/definitions/issues/544). Part of the history of this is that keeping field/group names to valid variable name characters allowed easy "a.b.c.d" syntax in some scripting languages and RO mentioned attribute references and command line completion in Python. However dictionary based completion is now possible and HDF5 allows a wider range of charaters. It was decided that official names for groups and fields should reamin as ASCII with the original restrictions, but the regular expression used for user specified fields would be extended to allow decimal point and items starting with a number e.g. an `NXentry` called "1.1". The wider regular expression just covers when warnings are printed, NIAC is not restricting your naming of fields and groups for special facility and program usage. The regular expression code check will be updated in the upcoming code camp. - -The next discussion was a recommendation for where dimension information such as "x" should go in field names. NeXus is not consistent here e.g. "beam_centre_x" and "x_pixel_size". It was decided that "x" as a suffix was preferred, and will be recommended for new definitions (no changes to exiting definitions). The alternative of using an array/list was also mentioned e.g. using somethign like beam_centre[0] and beam_centre[1] instead of beam_centre_x and beam_centre_y. This arose from comments on the `NXdetector` where the documentation in the NXDL header states that the i index is the x axis and the slowest varying. Given detectors can be in different orientations, it was decided to [remove the references to x and y in this header](https://github.com/nexusformat/definitions/pull/804). - -The next discussion involved inconsistent symbol naming, as noted by RB in [issue#802](https://github.com/nexusformat/definitions/issues/800) - these are names used in a definition to tie togther items with e.g. the same array length, they never appear in a data file. Across definitions there are mixtures of CamelCase v under_score and different names for "number of pixels". etc. It was agreed that standardising these would be good, and the change does not break any exisiting data files - it is purely an in-definition tool. - -[Reserved prefixes and suffixes](https://github.com/nexusformat/definitions/issues/769) were discussed next - reserving "nx" for use by the NIAC is one long standing example, but other communities may wish to reserve a prefix/suffix too. If approved by NIAC vote, a table will kept in the user manual detailing these and their owners, there will be a NIAC vote to approve the current list. It was also suggested that NIAC be asked to delegate additions (but not removals) to the table to Teleconference meetings. - -## Sessions E - -did not take place - -## Session F - -did not take place - -## Session G - -Present: BW FA MK HG HN PJ PC RO SB AB TM RB - -Discussed the [use of NX_DATE_TIME rather than NX_CHAR for file_time and file_update_time in NXroot](https://github.com/nexusformat/NIAC/issues/68). NeXus has always said to use ISO8601 for datetime, so this is just bringing the definition in line with the manual. Change was merged as effectively updating documentation. There was a discussion about timezones, which are not mandatory in ISO8601 - if none are specified local time is assumed. It was agreed to update the manual to say that supplying a timezone was recommended, this avoids issues if e.g. daylight saving time changes during an experiment. - -For the election of officers, names will be added to a [wiki page](https://github.com/nexusformat/NIAC/issues/70) for emoji based voting. A note would be sent to the NIAC, and additional names can be added during the time window. A doodle poll will be created by BW and circulated to NIAC members for the date of a NIAC summary meeting, this will repalce the final summary session I of the current NIAC. The election of officers will be completed at this additional NIAC meeting, which will also summarise the NIAC and CodeCamp. There was a brief discussion about whether to merge the documentation release and technical release manager roles, since we are not making many releasees of the NAPI these days. It was decided to defer this to the next NIAC. - -In [isse#71](https://github.com/nexusformat/NIAC/issues/71) MK pointed put that guidelines agreed at NIAC 2018 concerning online voting and teleconference voting had not yet been added to the NIAC constitution. Action to add these. We have been considering the NIAC as a "teleconference" with regard to these guidelines. - -It was agreed to move [issue#48](https://github.com/nexusformat/NIAC/issues/48) (improvemnts to NXdata) to a later session - -[Specifying precision in nexus files](https://github.com/nexusformat/NIAC/issues/69) has already been actioned and the underlying ticket closed, so no further NIAC discussion is required. - -The [future of the NeXus C API (NAPI) was discussed](https://github.com/nexusformat/NIAC/issues/64) MK gave a brief overview of the history of the interface and how it simplified the generation of files when HDF4 was the main format. This library has been marked as bugfix only in the documentation, and there are some outstanding issues and pull requests to fix. Some of the issues related to incompatibilities with newer versions of packages such as MXML, and potentially HDF5 1.12 It was agreed that MK and FA would consult the nexus mailing list as to their usage and of NAPI, it may be possible to drop support for e.g. HDF4 or XML from NAPI that would aid future maintenance. RO mentioned that the examples in the user manual use the NAPI a lot. It was agreed the code camp should also revisit the examples in the user manual and makle sure it is clear that NAPI is receiving minimal support and provide equivalent HDF5 native API c/c++ examples. We should also update examples generating or referring to HDF4 in the manual, it should only be referenced in the history section. HB pointed out that HDF4 is only minimally supported by the HDF group. - - -## Session H - -RO gave an introduction to the nexusformat python package as part of [issue#43](https://github.com/nexusformat/NIAC/issues/43) it is a wrapper around h5py that provides a simpler interface, making the generation of NeXus files easier and less error prone for a new user. Being NeXus aware, it can handle axis attributes and conventions for you, add correct class attributes, string encoding. There is also a fully featured GUI NeXpy (which is NXDL aware) built on top of nexusformat, but the discussion here was concerning just the nexusformat package. - -Several members present, in particular AB and RB, were interested in investigaing its usage on future upcoming projects, but many people present had already invested heavily in h5py based approaches. It was agreed that the NeXus manual examples should be updated to show how to read/write files using both nexusformat and h5py, the simpler interface of nexusformat could be useful to many users. The example updating will be done at the upcoming code camp. BW also noted that the package is not mentioned on the nexus utilities page and will be added there too. - -An application definition that shows [mixed use of `NXreflections` and `NXmx`](https://github.com/nexusformat/NIAC/issues/54) was discussed next. Some issues arise that are realted to `NXmx` being an application definition and `NXreflections` being a base class. There was discussion as to whether an `NXprocess` in a separate `NXentry` or new application definition was appropriate. In effect `NXmx` is thge raw data, there can be many instances of `NXreflection` showing iterations of the data processing. This will be discussed more at code camp. - -The [changes to `NXdata`](https://github.com/nexusformat/NIAC/issues/48) were briefly reviewed, the changes were mostly to wording and looked fair, but it was difficult to be sure as there were merge conflicts due to the age of the branch. It was agreed that the branch would be rebased back onto master and the changes reviews at code camp. - -BW will create a poll for a final NIAC session date and send to the mailing list, all voting will be left open until that session, which will be towards the end of October. - -## Session I - -This was the final scheduled session, but was purely for summing up. It has been posponed to a later date in October, with date determined by poll to the nexus committee list. diff --git a/content/NIAC2020minutes_concluding.md b/content/NIAC2020minutes_concluding.md deleted file mode 100644 index 287c186d..00000000 --- a/content/NIAC2020minutes_concluding.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: NIAC 2020 Concluding Session Minutes -permalink: NIAC2020minutes_concluding.html -layout: wiki ---- - -The following [NIAC](https://www.nexusformat.org/NIAC.html) members were present: SC, FA, HB, RB, PJ, AB, PC, BW, WG, AS, TM, MJ, RO, MK, HG - -Matthew Jones (MJ) was standing in for Tobias Richter. - -This was the concluding session of [NIAC2020](https://www.nexusformat.org/NIAC2020.html) and was planned to summarise the NIAC and code camp results and move onto discussions and start voting on the matters arising. Items discussed and voted on at this meeting will be left open for a final week for NIAC members who were not able to be present to add their votes or raise further questions. Minutes of the previous sessions [are available](https://www.nexusformat.org/NIAC2020minutes.html) - -The items to be discussed at this meeting were [listed at github](https://github.com/nexusformat/NIAC/projects/1#column-11377920) - -BW summarised the recent [CodeCamp 2020-2](https://www.nexusformat.org/CodeCamp2020-2.html) Achievements - -- Fixed issues in [documentation](https://github.com/nexusformat/definitions/issues?q=is%3Aissue+closed%3A%3E2020-10-18+) -- exampledata repository - - [generate example files](https://github.com/nexusformat/exampledata/pull/18) - - [better listing of file contents](https://github.com/nexusformat/exampledata/pull/22) -- [Clarify naming convention](https://github.com/nexusformat/definitions/pull/671#issuecomment-713166746) ([vote](https://github.com/nexusformat/definitions/pull/671#issuecomment-715476138)) -- [Bug fixes for NAPI](https://github.com/nexusformat/code/pull/474) - -There was a discussion over what rules were governing the current NIAC meeting. The constitution discusses regular -NIAC meetings and teleconferences, it did not mention a virtual NIAC as such. The teleconference (TC) rules say that 2/3 of a NIAC -need to be present for adequate discussion to take place before decisions are voted on, but any decision is passed to the email list -for final votes of non present members to be added. There were 15 / 22 members present at this meeting, which did constitute 2/3 of the -NIAC. It was decided to follow teleconference rules for this NIAC and leave a final week of online voting in order to ensure legality. - -There was some further discussion of 2/3 quorum rule for teleconferences and whether this might prove to be restrictive in future -for progressing decisions. Final decisions are not made at a teleconference even with more than 2/3 of the NIAC present, but -unless 2/3 of the NIAC are present then the motion is not considered to have been adequately discussed and so does not get -passed onto further consideration and voting. It was generally agreed that larger voting participation was desirable, but -the mechanism may need to be enhanced. Different timezones can make finding an optimal meeting time difficult. Maybe 2/3 of NIAC member -had been involved in the discussion over several (TC) meetings -then it could move forward to wider email/list vote, but at the moment there is no indication that any changes are needed. - -The number of votes cast by the emoji based voting so far was not large, it was wondered if some abstentions had not been recorded and -maybe instructions to indicate an abstention (by any not already mentioned emoji) were not originally clear enough. There will be a -final email conclusion to voting, so people will be asked to register a choice. We should also draw people's attention to the process -in the constitution for a NIAC member raising concern on a matter. - -As discussed at the earlier sessions, a [survey has been sent out to the NeXus community]( -https://lists.nexusformat.org/pipermail/nexus/2020/001140.html) by MK & FA as to their current use of ther old NeXus API (NAPI), -with a view to determining future support options. It had been agreed that a bugfix release of NAPI would be done after merging -current outstanding pull requests. - -## Clarify naming conventions for groups and field - -This was to clarify recommended NeXus names (lowercase letters with underscore plus trailing number, basically a valid variable name in most programming languages) verses generally allowed names in common usage (mixed case alphanumeric plus _ and . , except disallowing starting or ending with .) A regular expression was proposed for these combinations and is shown on the link and these expressions could be used by validation tools. HDF5 allows a wider range of characters in names than we currently use. AB asked about the current position on support and use of Unicode in NeXus. MK indicated the position was that unicode (via UTF8) was allowed for content by NeXus (HDF5 has a mechanism to indicate encoding), but not for field/dataset names which should be in standard/non-extended ASCII. This does mean that though NeXus does not specify a name for an NXentry for example, it is saying that a restricted character set should be used for it. After some discussion it was decided that though there are some technical issues in widening support the matter should be revisited at a later stage with input from members who may be interested in using a wider range of characters in field/dataset names. For info, [HDF5 support is described here](https://support.hdfgroup.org/HDF5/doc/Advanced/UsingUnicode/index.html) The NIAC proposed the statement "The NIAC recognises that the majority of the world uses characters outside of the basic latin (7-bit ASCII) set currently included in the allowed names. The restriction given here reflects current technical issues and we expect to revisit the issue and relax such restrictions in future." [link](https://github.com/nexusformat/definitions/pull/671#issuecomment-715476138) - -## NXmx application definition - -The next discussion concerned [NXmx](https://github.com/nexusformat/NIAC/issues/45#issuecomment-707254127) The members present were happy with the current draft and it will be passed to the NIAC list for final email voting. - -## @creator_version attribute - -This is described [here](https://github.com/nexusformat/NIAC/issues/51#issuecomment-707349309) and was the addition of an optional root level attribute to complement the "creator" attribute by indicating its (software) version. This was agreed to be passed to final email voting. - -## Inconsistent field naming conventions - -This discussion covered the use of either a prefix or a suffix to indicate a more specific part of an item, such as where to place "x": "pixel_x" or "x_pixel" ? NeXus has been inconsistent in the past, it was agreed amongst those present to recommend a suffix (i.e. "\_x") to indicate a more specific part in future definitions, using a suffix makes items group more nicely in user interfaces. Voting and details are [here](https://github.com/nexusformat/definitions/issues/791#issuecomment-707365329) - -Note: we are not planning to change any existing definitions, this is just a recommendation for future definitions - -## Reserving prefixes - -NeXus currently reserves the NX prefix for official use, this avoids potential clashes with other names that may be used. It was discussed that certain other groups may also wish to reserve a specific prefix for use within their domain to help with management of their namespace. While the general idea and use case was supported, it should not lead to an effective separate definition space and groups should still put forward definitions to be included officially. See the [proposal vote](https://github.com/nexusformat/NIAC/issues/49#issuecomment-707383140) and the [initial list of prefixes to reserve](https://github.com/nexusformat/NIAC/issues/49#issuecomment-707383223) - -There was discussion of the mechanism for how new prefixes should be added, and it was proposed that such additions could be done via a simple email vote without needing a 2/3 NIAC discussion first - -[issue link](https://github.com/nexusformat/NIAC/issues/49#issuecomment-707384329) - - -## Elect officers - -Nominations are [listed here](https://github.com/nexusformat/NIAC/issues/70) for votes to be added - -## PIDs for NeXus terminology - -Heike Görzig gave a presentation of persistent identifiers (PIDs) and their relation to Findable, Accessible, Interoperable and Reusable (FAIR) data. -There are more details [contained here](https://github.com/nexusformat/NIAC/issues/73) but the general idea was to use PIDs to attach meaning to specific terms -that may have a different names in different domains, reducing issues caused by different use or changes of vocabulary, and making the item -very easily machine locatable. So for example a -PID could be assigned (via the NXDL) to an item in the nexus file, this allows that particular item to be identified however -it may be named (or changed) in different definitions. There was general support for the idea and it was proposed to explore -a prototype via a branch of the nexus definitions repository and then return to the NIAC later with a demonstration and proposal. - -[issue link](https://github.com/nexusformat/NIAC/issues/73#issuecomment-716609739) - - -## Constitution changes - -The only matter discussed was the rules for making offical decisions at teleconference meetings, these had originally come from [discussions at NIAC 2018](https://www.nexusformat.org/NIAC2018Minutes.html#decision_voting). -The 2018 proposal had been incorporated verbatim into the constitution pages on the web and it was agreed that some context and clarification -should be added to the original wording, but the meaning should reflect intent of the 2018 decision. Both sets of wording for comparison are -described [on the ticket](https://github.com/nexusformat/NIAC/issues/71) along with the [voting link](https://github.com/nexusformat/NIAC/issues/71#issuecomment-716617317) -The 2/3 quorum requirement was again discussed as a possible difficulty for further decisions before the next full NIAC meeting. BW suggested that it simply requires adequate advertisement and organisation for properly engaging the NIAC members. It was further raised that substantial changes to the voting rules should be carefully considered in order to not repeat the mistakes made in 2018. - -## Using soft links rather than target attribute - -The NeXus API only uses hardlinks, in HDF4 they were the only option. As both linked items are indistinguishable, the target attribute was used to indicate the "interesting" end of the link. E.g. if you have linked the detector counts dataset inside an NXdetector into an NXdata you could use the target attribute to locate the NXdetector and hence further metadata about the counts. Without the target attribute, the only way you could locate the NXdetector source would be by examining object ids within the file to see whether they referred to the same dataset. HDF5 soft links are more like symbolic links in a unix filesystem, they contain the name of the item referenced (in fact pretty much what a target attribute would contain). So there is no need for a target attribute in this case. - -It was agreed to propose: - -* Any type of link (Soft, Hard and External) is allowed. -* The use of the target attribute is optional when using soft links. - -[issue link](https://github.com/nexusformat/NIAC/issues/77#issuecomment-716643766) - -## nexusformat python package - -RO gave a presentation on the [nexusformat python package](https://github.com/nexusformat/NIAC/issues/78) which provides a simpler interface to create nexus files. It was agreed that the NeXus manual should be updated to include examples using both h5py and nexusformat as solutions. It was noted that there is an old python binding included as part of the NAPI, any use of this should be removed from examples, and the future of the NAPI itself is the subject of a user consultation as described above. We thank RO for his work on NeXus over the years. - -## Adding globally unique identifier to NXentry - -The issue was introduced by SC. There is currently an "entry_identifier" field for storing a unique identifier, but at BNL they would like to store two identifiers: a "scan id" for the entry and also an "entry uuid". There was discussion as to whether the scheme for uuid should be made available to all objects e.g. a "uuid" attribute, and also if "entry_identifier_uuid" could be a group attribute of NXentry rather than a field. There are potential complications that may arise due to linking, so the proposal is to add entry_identifier_uuid as an optional NXentry field and the uuid attribute to other fields/groups. The reserving of a BS_ or BLUESKY_ prefix was also discussed and added to the ticket. - -[issue link](https://github.com/nexusformat/NIAC/issues/80#issuecomment-716662624) - -## other items mentioned - -* SC has been looking to get the NeXus API (NAPI) included with Fedora and RHEL, he will enquire as to the state of the Debian package -* PJ is planning to drop NXspecdata from the contributed definitions, he will send an email to the list -* We will have the next teleconference early December, doodle poll to follow - - -## Summary - -All NIAC members are requested to please vote on [each proposal](https://www.nexusformat.org/NIAC2020.html#decisions) by 3rd November 2020. You can either: -* use thumbs up/down emoji to indicate yes/no, any other emoji to indicate abstention, on the tickets; or -* reply to the email circulated to [nexus-committee](https://lists.nexusformat.org/pipermail/nexus-committee/2020/001026.html) - -Feel free to continue discussion on the ticket and/or NeXus mailing list. - -Decisions are [listed here](https://www.nexusformat.org/NIAC2020.html#decisions), including links to the votes. diff --git a/content/NIAC2022.md b/content/NIAC2022.md deleted file mode 100644 index 3bbfaa4d..00000000 --- a/content/NIAC2022.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: NIAC2022 -permalink: NIAC2022.html -layout: wiki ---- - -The NIAC2022 meeting will be held as a hybrid event hosted by the [Paul Scherrer Institute](https://www.psi.ch) on September 14-16th, which is the week before the [2022 NOBUGS conference](https://indico.psi.ch/event/12738/). - -As COVID19 continues to be a concern, people will be able to participate both onsite and online (via Zoom). In order to better overlap with other time zones (especially in the Americas), the meeting sessions will be shorter and later in the day (CEST) over 3 days (instead of the usual 2 days). - -Venue and Accommodation ------------------------ - -PSI is a major research institute in [northern Switzerland](https://goo.gl/maps/pfBDWUdopjhdeWFQ6) hosting a number of [large-scale facilities](https://www.psi.ch/de/science/large-research-facilities) and [specialised research laboratories](https://www.psi.ch/de/science/research-departments-and-labs). It is easy to [reach by public transport](https://www.psi.ch/en/visit/how-to-find-us). The [PSI Pocket web-app](https://pocket.psi.ch/home) provides lots of useful information for visitors. Public transport in Switzerland is very good and reliable and thus is highly recommended. Trains, busses and ferries all share the same ticketing system so that a single ticket covers a journey that may utilise a combination of vehicles. While the tickets are typically based on zones being traversed, most ticket purchases are organised by simply stating the start and end points. Journeys can be streamlined by using the [SBB Mobile app](https://www.sbb.ch/en/timetable/mobile-apps/sbb-mobile.html), which provides time tables, ticket purchasing and holds tickets (only have to show the ticket if asked by a train conductor). Trips can be [planned online](https://www.sbb.ch/en/) with links to purchase tickets in advance to be downloaded to a phone or as PDF. - -The [PSI guest house](https://www.psi.ch/de/guesthouse) is conveniently situated on site, and is probably the cheapest option but is considered basic by many. The PSI guest house also has limited availability and so should be booked as early as possible. Other [nearby hotels](https://www.psi.ch/de/guesthouse/nearby-hotels) are a short bus ride away (such busses typically run every half hour). - -The [climate](https://en.wikipedia.org/wiki/Z%C3%BCrich#Climate) in mid-September is generally cool to mild with overcast, foggy mornings being common. - -Registration ------------- - -[Registration Form](https://indico.psi.ch/event/13249/registrations/1773/) - -[One Page Overview](https://indico.psi.ch/event/13249/?print=1) - -We ask that all participants register for the meeting, regardless of whether they will be joining in person or online so that sufficient resources can be organised. People outside of the NIAC are invited to join discussions and register for the meeting but voting will be restricted to committee members only. - -COVID19 Precautions -------------------- - -There are currently no coronavirus restrictions in place at [PSI](https://www.psi.ch/en/useroffice) or by the [Swiss government](https://www.bag.admin.ch/bag/en/home/krankheiten/ausbrueche-epidemien-pandemien/aktuelle-ausbrueche-epidemien/novel-cov/empfehlungen-fuer-reisende.html). However, the situation could change, especially as the weather gets cooler, and we encourage attendees to consider both their own safety and the safety of others with appropriate hygiene, testing and vaccination. - -Agenda ------- - -The meeting agenda will be based on a [Github project](https://github.com/orgs/nexusformat/projects/2) so that it is accessible to all particpants. Any proposal to be discussed and voted on should be documented as an issue in the [nexusformat/NIAC repository](https://github.com/nexusformat/NIAC/issues). - -Minutes -------- - -[NIAC2022 minutes](NIAC2022_minutes.md) - - - -Schedule --------- - -The meeting will have sets of 2 hour sessions with 30 minute breaks. 3 sessions per day for 3 days. - -[Zoom link](https://psich.zoom.us/j/61992829752?pwd=VWs5eXluSUxRNTNWT3JhdXRFSnhHZz09) - -ID: 619 9282 9752 - -passcode: nexus - - - - - - - -
Session Local Start Times
A
September 14th
10:00-12:00 UTC
- - - - - - -
TokyoThu 19:00
San FranciscoThu 03:00
New YorkThu 06:00
LondonThu 11:00
ZürichThu 12:00
-
B
September 14th
12:30-14:30 UTC
- - - - - - -
TokyoFri 21:30
San FranciscoThu 5:30
New YorkThu 8:30
LondonThu 13:30
ZürichThu 14:30
-
C
September 14th
15:00-17:00 UTC
- - - - - - -
TokyoFri 00:00
San FranciscoFri 08:00
New YorkFri 11:00
LondonFri 16:00
ZürichFri 17:00
-
- - - - - - -
Session Local Start Times
D
September 15th
10:00-12:00 UTC
- - - - - - -
TokyoThu 19:00
San FranciscoThu 03:00
New YorkThu 06:00
LondonThu 11:00
ZürichThu 12:00
-
E
September 15th
12:30-14:30 UTC
- - - - - - -
TokyoFri 21:30
San FranciscoThu 5:30
New YorkThu 8:30
LondonThu 13:30
ZürichThu 14:30
-
F
September 15th
15:00-17:00 UTC
- - - - - - -
TokyoFri 00:00
San FranciscoFri 08:00
New YorkFri 11:00
LondonFri 16:00
ZürichFri 17:00
-
- - - - - - -
Session Local Start Times
G
September 16th
10:00-12:00 UTC
- - - - - - -
TokyoThu 19:00
San FranciscoThu 03:00
New YorkThu 06:00
LondonThu 11:00
ZürichThu 12:00
-
H
September 16th
12:30-14:30 UTC
- - - - - - -
TokyoFri 21:30
San FranciscoThu 5:30
New YorkThu 8:30
LondonThu 13:30
ZürichThu 14:30
-
I
September 16th
15:00-17:00 UTC
- - - - - - -
TokyoFri 00:00
San FranciscoFri 08:00
New YorkFri 11:00
LondonFri 16:00
ZürichFri 17:00
-
- -Official Decisions and Statements ---------------------------------- - -| Proposal (link to voting) | Discussion | Implementation | Decision
(for/against/abstain) | -| --- | --- | --- | --- | -| [Flux definitions for NXmx](https://github.com/nexusformat/definitions/pull/1035#issuecomment-1248232346) | [issue#986](https://github.com/nexusformat/definitions/issues/986) | [pull#1035](https://github.com/nexusformat/definitions/pull/1035) | Accepted
(11/0/0) | -| [Math in NXDL symbol tables](https://github.com/nexusformat/definitions/issues/1084#issuecomment-1249411564) | [issue#1084](https://github.com/nexusformat/definitions/issues/1084) | Statement | Accepted
(8/0/0) | -| [Review of NXsas](https://github.com/nexusformat/NIAC/issues/58#issuecomment-1249513045) | [issue#522](https://github.com/nexusformat/definitions/issues/522) | [pull#1194](https://github.com/nexusformat/definitions/pull/1194) | Accepted
(8/0/0) | -| [Elect Chair](https://github.com/nexusformat/NIAC/issues/137#issuecomment-1248281424) | --- | Aaron Brewster | Accepted
(13/0/0) | -| [Elect Executive Secretary](https://github.com/nexusformat/NIAC/issues/137#issuecomment-1248285986) | --- | Sandor Brockhauser | Accepted
(11/0/1) | -| [Elect Technical Manager](https://github.com/nexusformat/NIAC/issues/137#issuecomment-1248291142) | --- | Mark Koennecke | Accepted
(12/0/0) | -| [Elect Definitions Release Manager](https://github.com/nexusformat/NIAC/issues/137#issuecomment-1248292805) | --- | Peter Chang | Accepted
(12/0/0) | -| [NeXus ontology development](https://github.com/nexusformat/NIAC/issues/136#issuecomment-1246777030) | [issue#136](https://github.com/nexusformat/NIAC/issues/136) | Statement | Accepted
(10/0/0) | -| [Support "recommended" property for attributes](https://github.com/nexusformat/NIAC/issues/140#issuecomment-1246721024) | [issue#140](https://github.com/nexusformat/NIAC/issues/140) | [pull#1183](https://github.com/nexusformat/definitions/pull/1183) | Accepted
(10/0/0) | -| [Improvements to NXxas](https://github.com/nexusformat/definitions/pull/1190#issuecomment-1248133885) | [issue#1170](https://github.com/nexusformat/definitions/issues/1170) | [pull#1190](https://github.com/nexusformat/definitions/pull/1190) | Accepted
(9/0/0) | -| [Clarify data types: `NX_CHAR_XOR_NUM`](https://github.com/nexusformat/NIAC/issues/142#issuecomment-1247951551) | [issue#142](https://github.com/nexusformat/NIAC/issues/142) | --- | Accepted
(12/0/0) | -| [Clarify data types: `NX_NUMBER`](https://github.com/nexusformat/NIAC/issues/142#issuecomment-1247957679) | [issue#142](https://github.com/nexusformat/NIAC/issues/142) | --- | Accepted
(13/0/0) | -| [Clarify data types: `NX_COMPOUND`](https://github.com/nexusformat/NIAC/issues/142#issuecomment-1247961708) | [issue#142](https://github.com/nexusformat/NIAC/issues/142) | --- | Rejected
(0/11/1) | - - diff --git a/content/NIAC2022_minutes.md b/content/NIAC2022_minutes.md deleted file mode 100644 index e8416e10..00000000 --- a/content/NIAC2022_minutes.md +++ /dev/null @@ -1,483 +0,0 @@ ---- -title: NIAC2022 Minutes -permalink: NIAC2022_minutes.html -layout: wiki ---- - - -Session B: Sept 14th 12:30 UTC ------------------------------- - -NIAC members Present: Sandor Brockhaus (SB), Mark Koennecke (MK), Russ Berg (RB), Ben Watts (BW), Freddie Akeroyd (FA), Peter Chang (PC), -Heike Gorzig (HG), Wout de Nolf (WD), Pete Jemian (PJ), Luca Geliso (LG), Takahiro Matsumoto (TM), Herbert Bernstein (HB) - -non-NIAC Present: Markus Kunbach (Markus), - ------------------ - -BW proposed voting via github thumbs up/down and it was agreed - ------------------ - -SB presented issue 24, Proposal is to allow the "recommended" property (to complement "optional" which can be true or false) to be applied to attributes. https://github.com/nexusformat/NIAC/issues/140 - -PJ This "recommended" property has already been approved for fields and groups, so this will just make attributes more consistent. - -PJ suggested to add "Developers" as reviewers for pull requests - -The proposal was voted on and approved. - ------------------ - -SB preseted issue 3 (Allow NXdata dimension variables to contain a list of strings https://github.com/nexusformat/NIAC/issues/945), - -SB this would be an array of strings - -PC this issue was voted on and approved back at the spring NIAC - -PJ the changes need to be made, will set for next release - ------------------ - -SB presented issue 23, Support for non-dimensional coordinates in NXdata https://github.com/nexusformat/NIAC/issues/139 - -MK proposal refers to issues of data processing and thus goes to far for what NEXUS is expected to provide - -BW NEXUS has seen this before, NEXUS shouldnt describe how to produce plot, it should make the data accessble only - -SB proposal is also to propose future axes as well, - -BW NXdata is recomended to exist for each dataset so it should be kept more general and not be too specific about how to produce plotting which is more in the realm of data processing - -WD this can be handled using what already exists by just creating a virtual dataset - ------------------ - -SB presented issue 21, NeXus Ontology v2 https://github.com/nexusformat/NIAC/issues/136 - -BW commented The NIAC is pleased to see further development of the NeXus ontology and we encourage you to continue this work. - -PJ asked when can this work be included in public docmentation, HG said there are some issues with email addrs? FK mentioned a registration that needed to take place for nexusformat.org - -PJ can this be put onto the NEXUS home page, - -SB there are also some rendering issues, but once rendered there will be a link that can be used to link to NEXUS homepage - ------------------ - -SB presented issue 22, Group referencing an Application Definition https://github.com/nexusformat/NIAC/issues/138 - -MK proposed option D, NXsubentry was created to handle situations like these - -BW clarified the use of NXsubentry, where you have a single NXentry and references to other app defs appears in individual NXsubentries of the NXentry - -PJ offered that what maybe what SB is looking for is NXnote to describe the process that is planned - -BW NXenry is required for each measurement in a sequence, NSsubentry refers to another app def for a simulataneous measurements - -MK suggested that what SB is looking for is a workflow software tool several will be presented at NOBUGS conference next week - -WD suggested a specific example for future discussion - -SB agreed after looking at NXsubentry that it should address this proposal, future discussion likely to follow - ------------------ - - -SB presented issue 19, base classes always extend NXobject. Can a base class extend another base class? https://github.com/nexusformat/NIAC/issues/135 - -MK said that NIAC has discussed this numerous times in the past and has reasons for not adopting inheritance for base class definitions - -PJ asked what base class needs extension - -SB asked if people could reread the issue and continue discussions in next session and/or next week during NOBUGS - ------------------ - -Session C: Sept 14th 15:00 UTC ------------------------------- - -NIAC members Present: Raymond Osborn (RO), Aaron Brewster (AB), Sandor Brockhaus (SB), Mark Koennecke (MK), Russ Berg (RB), Ben Watts (BW), -Freddie Akeroyd (FA), Peter Chang (PC), Heike Gorzig (HG), Wout de Nolf (WD), Pete Jemian (PJ), Luca Geliso (LG), Herbert Bernstein (HB), CHen Zhang (CZ) - -BW raised question about when we should adress issue 20, Elect Executive Officers https://github.com/orgs/nexusformat/projects/2/views/1 - -consensus was election to occur in third session tomorrow Sept 15, - -BW to send an email to NIAC list that that is the plan - ------------------ - -SB presented issue 27, symbols to be connected to Field values https://github.com/nexusformat/NIAC/issues/141 - -MK suggests that a specific example be proposed so that the NIAC would have an actual situation to consider - -HB suggests javascript be used to provide the required structure to do what is being asked in regards to math in documentation, hooks would just need to be added into? - -AB, BW, SB, MK, RO had discussions trying to clarify the issue, - -PJ, MK reminded everyone that adding executable code into a nexus file is a security issue - -AB would like a way of using math to describe how to take 2 arrays to create a third - -BW there are equations that exist that would produce a denial of service attack on the computer, basically the computation would be so intense as to occupy the entire CPU - -HB this is a common problem, many things can occupy the entire CPU, standard code etc, people know better, and this is a neceisity - -PC if there was a determined list of approved expressions would that give AB, HB what they need - -RB suggested that there be a table called expressions similar to a symbols table, the NXentry would allow expressions to be defined by an applpication definition with the burden of security executing the expresion falling on the community that is supporting the application definition - -PJ the point of NEXUS is to provide data, not data processing - -AB said that at the moment the data isnt 100% useful without the processing so it would be great to find a solution to this - -outcome of discusson of just that raised in issue 27 is: NIAC likes the idea of proposed SB and would like SB to produce specific example for the NIAC to review later - ------------------ - - -WD presented issue 102, NXdata: errors on auxiliary signals, https://github.com/nexusformat/definitions/issues/1044 - -BW sauggests that we should go a step further and deprecate the "errors" attrubte in favor of VARIABLE_errors - -MK in 2018 NIAC decided to deprecate "errors" attribute already, it just hasnt been done yet, so this is more a documentation bug than a change of the standard required - -BW adds a comment to issue : NIAC agrees that this is just a documentation bug that should be fixed. Also the errors field was already decided to be deprecated in 2018. - -WD assigned to this task - ------------------ - -RO issue 14, Proposal to add 'angles' attribute to NXdata groups https://github.com/nexusformat/NIAC/issues/102 - -RO in the last 30 minutes wanted to have a general discussion about the angles and transformations, - -WD would replace the proposal with one that all transformations could be represented by specifying a single transforma matrix - -BW this isnt ready to vote on - -WD will put forward a proposal as mentioned above - -PC requests that there be a human readable field added to the documentation - ------------------ - -AB presented Can we have a standard rule in NeXus to validate presence of one item from a list of possibles? https://github.com/nexusformat/definitions/issues/1002 - -AB it is dependant on another issue 1002 - -BW was going to do some work on this, it should be possibele to do this, XML will need some crafting, this work doesnt stand in the way of voting on issue 1002 - -AB will switch PR to a draft - -BW issue 1002 is about making the definition available so that it can be machine readble and validated - ------------------ - - -Session D: Sept 15th 10:00-12:00 UTC ------------------------------------- - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Freddie Akeroyd (FA), Peter Chang (PC), Luca Geliso (LG), Pete Jemian (PJ), Heike Gorzig (HG), Sandor Brockhaus (SB), Mark Koennecke (MK), -non-NIAC Present: Markus Kunbach (Markus), - ------------------------------------ - -PJ raised XPCS discussion -PJ XPCS issue (1007 https://github.com/nexusformat/definitions/issues/1007) still need discussions in the technical committee and would like to invite those people to next telco to raise related issues. -BW issues 1004/5 and 6 also have been raised for discussion -PJ XPCS community write processed data data (which is what the NXxpcs definition covers) in 2 different ways so consensus needs to be discussed with a focus on standardizing on NEXUS -PJ,LG discussion about g2 function -PJ 2 ways the data (output of the g2 functions) are linked list of keys to g2 functions and the other is a 2D array -BW this is a feature of HDF5 and there is some resistance to becoming dependant on hdf5 -BW thinks that it is fine if each community writes its own storage mode and let the community decide which is more popular -PJ what is there in NXxpcs definition is version 1 and there is a version 2 in the works -PJ invited LG to review and participate in NXxpcs technical discussions -BW asked PJ if there was a preference for when the next telco should be and PJ requested later in october. -PJ the typical data size of XPCS is on the order of Gigabytes - ------------------------------------ - -BW looking at items in project there are 2 that likely do not need to be here, #13 (ISSUE 101 https://github.com/nexusformat/NIAC/issues/101) it has already been discussed in spring and merged already, -PC suggested that we wait to see if AB connects to meeting to see if he agrees that this can be closed, -BW #11 (ISSUE 88), doesn't think it needs a NIAC decision and can be left for next code camp -BW the issue author was pointing out that documentation was a bit messy so BW suggesting this be moved from NIAC repo to the DEFINITIONS repo and consensus achieved for this -BW moved issue to definitions repo and added CODECAMP label - ------------------------------------ - -SB inquired about item 3 issue https://github.com/nexusformat/definitions/issues/945, idendify labels for axis, of type NX_NUMBER or NX_CHAR, -SB inquireds about crteate something like NX_ANY that could handle either NX_NUMBER or NX_CHAR -PJ has partially proposed using the type attribute using logical operators to include "or" in the type specification -PJ forsees difficulty in XML specofication unless a new type that includes both NX_CHAR and NX_NUMBER is used -SB suggests something like NX_SIMPLE which would represnt a string or a single part number, not complex or quarternian numbers -PJ/SB maybe NX_LABEL? -BW is writing item 31 this up as an issue 142 https://github.com/nexusformat/NIAC/issues/142 that references 945 -BW and PJ had intense discussion about cats -PJ the entire point of NXdata is to be able to plot the data -MK suggests NX_ALPHANUM, consensus was in favor -BW proposaol to create NX_ALPHANUM to include NX_CHAR and NX_NUMBER - ------------------------------------ - -MK should NX_POSINT be renamed NX_UINT -PC NX_UINT already exists - ------------------------------------ - -MK/SB/Markus discussion about inheritance of base class defs, application defs and cnxvalidate, many idea's and opinions expressed faster than could be recorded accurately -there is not a consensus as to what is meant be "inheritance", -MK there is only proper inheritcance in application definitions, when it comes to base class "inheritance" it is really a reference only -MK type= will only name a base class not an application definition, extends is used for extending an application definition -SB what is the actual restriction for not allowing "inheritance"?, there should be a way to include an application def in another without having to copy everything -SB we already (using the example of NXsubentry) have an inhreitance and the questions is why is this limited to NXsubentry inheriting NXentry only -Markus we (electro microscopy) would like some guidance on how to do this then to just create 50 sub definitions and suggesting this for in an application definition -SB the main issue is to use what he is seeing is already there (NXsubentry inherits NXentry) and use that for appl defs so that there isnt all this copied definition -BW there is good arguments for inheritance, NXdetectoir is abn example as to why inheritance has been avoided for a long time, perhaps SB/Markus will be the motivators for getting this implimented - - ------------------------------------ - - - -Session E: Sept 15th 12:30-14:30 UTC ------------------------------------- - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Heike Gorzig (HG), Sandor Brockhaus (SB), Mark Koennecke (MK), - Herbert Bernstein (HB), Aaron Brewster (AB), Heike Gorzig (HG), Raymond Osborn (RO), - - -BW presented his proposed changes in item 30 , PR https://github.com/nexusformat/definitions/tree/1170-nxxas-documentation-improvement nxxas documentation improvement issue https://github.com/nexusformat/definitions/pull/1190 -PC the documentation suggests that the links that are all in lower case imply that thay should be the actual names of the fields where the documentation should use upper case to indicate they would only be NX classes not actual names -BW will make the changes and look at it again later - ------------------------------------ - -MK after the break and some further contemplation MK continued inheritance discussion from previous session -MK because SB is trying to do something new with NEXUS, it needs a proposal and a discussion -SB the data he deals with doesn't really support the idea of a "single file" data is always spread across multiple files and produced by multiple vendors, so they are trying to harmonize all the sources -SB clarified the inheritance currently exists in NEXUS and what he is looking for -Seems to be consensus that the future should include a "programmers" understanding of inheritiancr to create new base classes so that base classes can be exteneded via inheritance to avoid -duplication of definition code, but the problem is how to document this class relationship a)to non programmers and b) in a way that explains why we have inheritance in one place but not in another (NXdetector copies base class propoerties) -BW suggests that maybe we should over haul it all - ------------------------------------ - -There was discussion about issue 1038 https://github.com/nexusformat/definitions/issues/1038 -It will require more discussion and was best kept for teh next codecamp -Label changed to code camp - ------------------------------------ - -BW presented his changes to file(s) for item 30 https://github.com/nexusformat/definitions/pull/1190/files/758973719c5cab6843e7bc2a00a5bcd405339386..5716b3511a73ac76eb86e6e5b67d2346654e2090 -MK do these changes serve the significant part of the community? BW yes, to handle non single mode folks wouls really require a new NXxas definition as this one is really inadequate. -After review the changes were voted on and accepted, code merged - ------------------------------------ - -AB raised Fix up NXBeam symbols and polarization https://github.com/nexusformat/NIAC/issues/101 -AB this is likely closed and can be removed -BW changes were already merged and were included into last release -PJ there is nothing to do here, it has all been done -AB concurred - ------------------------------------ - -AB said this issue was discussed yesterday and can be reviewed now, Flux changes for NXmx https://github.com/nexusformat/definitions/pull/1035 is done -PJ requested some changes relating to the documentation reference link -BW added a comment that in order for the optional NXmonitor that is specified to be validated it must have a name https://github.com/nexusformat/definitions/pull/1035/files/a40bdc6beabeeb3c794c1083399f38bbb46300e4 -clarification was made to the docstring for the attribute flux must point to a field or link to a field with one of the 4 names listed - - - - -Session F: Sept 15th 15:00-17:00 UTC ------------------------------------- - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Wout de Nolf (WD), Freddie Akeroyd (FA), Sandor Brockhaus (SB), -Mark Koennecke (MK), Herbert Bernstein (HB), Aaron Brewster (AB), Luca Geliso (LG), Raymond Osborn (RO), Heike Gorzig (HG) - ------------------------------------ - -BW The proposal is to accept the changes to NXmx (previous session) represented by pull request #1035, vote was unanimous to accept changes, marked approve - ------------------------------------ - -SB requests to vote on item 31, Clarify Data Types https://github.com/nexusformat/NIAC/issues/142 -BW presents summary of changes to clarify data types in issue 142 -PJ that would still open up an issue of there still being text finding its way into NX_NUMBER, so PJ is not recomending including NX_BOOL in NX_NUMBER -BW Proposal is to replace the description of NX_NUMBER in the NeXus manual with: "any of the set of non-compound number representations NX_INT, NX_UINT, NX_POSINT and NX_FLOAT." Voting was unanimous to accept proposal -BW Proposal is to define NX_CHAR_XOR_NUM which encompasses NX_NUMBER and NX_CHAR such that either type can be used exclusively for all elements of the entire dataset. Voting was unanimous to accept proposal -BW Proposal is to define NX_COMPOUND as encompassing the set of compound number types such as NX_COMPLEX, NX_CCOMPLEX, NX_PCOMPLEX and NX_QUATERNION. -PC does not think there is a use case for this -PJ says we have talkde about this -BW proposes to vote to reject this with PC to add a comment explaining as to why there is no use case - ------------------------------------ - -BW presents issue 20 Elect Executive Officers issue https://github.com/nexusformat/NIAC/issues/137 -BW Position of Executine Chair request for volunteers, AB responded affirmitively, RB seconded, voting was unanimously accepted -BW Position of executive secretary, request for volunteers, SB responded affirmitively, PJ seconded, vote was accepted -BW Position of technical manager, BW request for volunteers, MK asked to accept the role and he did, PJ seconded, voting was unanimously accepted -BW Position of defintions release manager, PC asked to continue on in the position, PJ seconded, voting was unanimously accepted - ------------------------------------ - -SB items 15 -> 18 can be left until tomorrows session - ------------------------------------ - -AB presentented item 21 NXmx: Change entry/end_time_estimated from "required" to "recommended" issue https://github.com/nexusformat/definitions/issues/966 -HB proposes to leave the rules documented as they are and let Dectris deal with not being compliant -AB making comment to respond to Dectris -BW we will mark this item as done - ------------------------------------ - -BW raises item 10 NXsqom: filenames -> file_name https://github.com/nexusformat/NIAC/issues/63 -RB has not provided comment requested by BW back in feb 2022 -BW proposes to move it to next NIAC meeting - ------------------------------------ - -BW raises issue 9 NXsas: review use of minOccurs on various components https://github.com/nexusformat/NIAC/issues/58 -BW we need community involment in reccomendations PJ said he could -There was discussion about "fair" by MK, SB, PJ, HG - ------------------------------------ - -BW raises issue 1 NXdata errors on an axis, signal or auxiliary signal PR https://github.com/nexusformat/definitions/pull/1047 -WD presents the changes he made to resolve the issue as was talked about yesterday -PC wanted some discussion to clarify what is meant by the word VARIABLE, -BW suggests changing VARIABLE to FIELDNAME in the docstring, -WD asked to make the change to the docstring, as its just documentation no vote is required -BW added comment "Replacing "VARIABLE" with "FIELDNAME" would be more general and easier to understand." -WD made changes, BW made changes to NXdata.nxdl.xml -Changes can be merged - ------------------------------------ - -BW because of low turnout for first session of the day it was proposed to use the first session for homework and instead meet for the second session, it was agreed - -Session G: Sept 16th 10:00-12:00 UTC ------------------------------------- - -not used as aggreed upon in session F - - -Session H: Sept 16th 12:30-14:30 UTC ------------------------------------- - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Mark Koennecke (MK), Herbert Bernstein (HB), Aaron Brewster (AB), Sandor Brockhaus (SB), CHen Zhang (CZ) - ------------------------------------ - -PJ presented issue NXsas: review minOccurs and group names https://github.com/nexusformat/definitions/pull/1194 -PJ went through file changes he made https://github.com/nexusformat/definitions/pull/1194/files -PJ received comments from BW, MK, PC, PJ will make changes and bring this up again when they are done - ------------------------------------ - -SB question about project item 25 supporting the recommended property for Attributes https://github.com/nexusformat/NIAC/issues/140 -BW this is finished and can be marked done - ------------------------------------ - -BW asked if this was done: NXmx: Definitions for multi-channel (thresholds) data https://github.com/nexusformat/definitions/issues/940 -PJ, AB we need information from Dectris, so from perspective of NAIC 2022 this is done - ------------------------------------ - -BW raised project item 7 math in the element https://github.com/nexusformat/definitions/issues/1084 -AB we need a pull request for this -group discussion about math element added to the symbols table to define new symbols that are used in the definition to specify dimensions etc. -MK raised a practical concern that because cnxvalidate is written in C that there be a library used to convert javascript to C if javascript will be -used as the essential supported math grammer that will be allowed/supported -group discussion on possible use of javascript to exavulate math expressions in symbol definitions -BW Proposal is to explore the use of javascript syntax for mathematical expressions in NXDL symbol tables (and elsewhere in NeXus) and encourage the production of a technical demonstration. -BW proposed a vote to accept, PJ seconded,proposal was unanimously accepted - ------------------------------------ - -SB raised a discussion with BW about item 27 symbols to be connected to Field values https://github.com/nexusformat/NIAC/issues/141 -PC about having symbols definied not only in the sybmbols table but also in a new attribute to a group as an expression -The outcome was that the need for such a thing is not clear -BW asked if the topic required more discussion next session SB indicated no - - - - -Session I: Sept 16th 15:00-17:00 UTC ------------------------------------- - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Mark Koennecke (MK), Herbert Bernstein (HB), Sandor Brockhaus (SB), Freddie Akeroyd (FA), Aaron Brewster (AB), Raymond Osborn (RO), - - -PJ mentioned PR NXsas: review minOccurs and group names https://github.com/nexusformat/definitions/pull/1194 -PJ raised a question regarding signal indices -Group discussion about assumptions about indices that are not specified, assumption is the first in the list is the horizontal axis but we dont believe it is stated anywhere, it is just assumed -PJ documentation states "C storage order" which isn't really helpful, should maybe be replaced by something more immediately understandable for everyone. -MK propose change to the words "Row Major Order" instead -PJ CHanges finalized https://github.com/nexusformat/definitions/pull/1194/files/aaed8881ea25d49d7920fee2f557e6ecbfa40492 -BW proposes motion to vote to accept, RB seconded https://github.com/nexusformat/NIAC/issues/58 -after Voting motion was unanimously approved -PJ changes merged - ------------------------------------ - -BW raises [NIAC2020] Suggested improvements to the NXdata base class definition https://github.com/nexusformat/NIAC/issues/48 -PC there is a change requested before a PR can be executed -BW suggests we put this issue aside, PJ seconded, it will get a telco label to make sure it gets examined on next telco/code camp - ------------------------------------ - -RB issue 322 -how to specify list of file paths -PC shoudl be 1D array because we allow variable length strings -BW suggests changing filenames to file_list, PJ says this already exists in NXxpcs and that there would be no collision and that the meaning is the same -Group discussion on the question is there a statement in NEXUS to avoid plural in favor of singular field names, could really find anything that states that -PC proposes to reject this issue as it doesn't appear to be a problem and not worth taking the chance on disrupting things for no apparent reason -BW commented on this issue in GH that due to our conversation and the amount of time lapsed we wont change anything unless he comes back to make the case for this change -BW asked if there were any objections to closing this issue, there were none, -BW closed issue - ------------------------------------ - -SB raises that PR https://github.com/nexusformat/definitions/pull/1183 is ready for merging -PJ merged in GH - ------------------------------------ - -BW raised project item 8 because RO was attending and we had time [NIAC2020] Suggested improvements to the NXdata base class definition https://github.com/nexusformat/NIAC/issues/48 -PC, RO, BW discuss Tobias comments -BW putting this aside for today and look at in future telco, someone needs to look at teh proposed changes to NXdata to handle this - ------------------------------------ - -BW reviewing item 14 again, Proposal to add 'angles' attribute to NXdata groups https://github.com/nexusformat/NIAC/issues/102 -BW not going to reconsider this items concerns today -RO asked will this extra array in NXdata to handle transformations require a NIAC vote -BW only if itis a change to the NXdata base class and not the application definition - ------------------------------------ - -BW item 15 AppDef for Electron Microscopy https://github.com/nexusformat/NIAC/issues/103 -SB we can mark this as done for this meeting as they are still being worked on - ------------------------------------ - -same for project items: -22 NeXus Ontology v2 https://github.com/nexusformat/NIAC/issues/136 -23 Group referencing an Application Definition https://github.com/nexusformat/NIAC/issues/138 -24 Support for non-dimensional coordinates in NXdata https://github.com/nexusformat/NIAC/issues/139 - ------------------------------------ - -BW there are no more NIAC items in project board left, asked if there is anything else anyone wanted to raise for the NIAC - -RO asked PJ about PR https://github.com/nexusformat/definitions/pull/1145 Add nexusformat examples - - - -## NIAC2022 Minutes diff --git a/content/NIAC2022_minutes_freddie.md b/content/NIAC2022_minutes_freddie.md deleted file mode 100644 index 30db016c..00000000 --- a/content/NIAC2022_minutes_freddie.md +++ /dev/null @@ -1,355 +0,0 @@ ---- -title: NIAC2022 Minutes -permalink: NIAC2022_minutes.html -layout: wiki ---- - -## NIAC2022 Minutes - -### Session A: Sept 14th 10:00-12:00 UTC - -Present: BW, FA, PJ, LG, HG, SB, MK (Markus Kuhbach), RB, PC, SS (Sherjeel Shabih), AP (Allan Pinto), PM (Paolo Baraldi Mausbach) - -BW began by summarising the meeting, and then there was a round of introductions as new people were present. As well as NIAC members, there were some observers from the Brazilian Synchrotron Light Laboratory (LNLS) and other facilities. AP mentioned that he had planned meeting with Diaomond and ESRF and was interested in learning more about NeXus, it was suggested that the monthly NeXus teleconferences would be good from this perspective. They are listed on the [Teleconferences]( https://www.nexusformat.org/Teleconferences.html) page and to be notified of their dates you can join the [nexus-tech](https://lists.nexusformat.org/mailman/listinfo/nexus-tech) mailing list. There is also the [nexus manual](https://manual.nexusformat.org/user_manual.html) - -The list of items to discuss is kept as a [github project](https://github.com/orgs/nexusformat/projects/2) and the committee then took some time to look through the list and decide on who should represent a given issue at this or a future session. - -As there were not many members present it was decided to adjourn early and return in the afternoon to discuss matters - -### Session B: Sept 14th 12:30 UTC - -Present: HG, FA, WDN, SB, PJ, MarkuK, BW, PC, LG, TM, HB, CZ, MarkK - -As many people were remote, voting on issues would be via thumbs up or down attached to a voting comment on a ticket - -SB introduced [supporting the recommended property for Attributes](https://github.com/nexusformat/NIAC/issues/140) -PJ asked if there was any python code to render this this change yet, SB said that was in progress but the change did not break any existing documentation generation. -It was proposed to allow the "recommended" property (to complement "optional" which can be true or false) to be applied to attributes. This "recommended" property has already been approved for fields and groups, so this will just make attributes more consistent. VOTE: approved - -PJ commented that in general it was good if people selected nexusformat/developers in teh reviewer of tickets/PRs as we require one review. - -SB then introduced [Allow NXdata dimension variables to contain a list of strings](https://github.com/nexusformat/NIAC/issues/97) currently only NX_NUMBER data is allowed in axes, the change was to allow NX_CHAR too so e.g. channel names (i.e. an array of strings) could be used as labels along an axis for data. VOTE: approved - -SB then introduced [Support for non-dimensional coordinates in NXdata](https://github.com/nexusformat/NIAC/issues/139) which intends to introduce virtual axes, which are like the [non-dimensional coordinates of the python xarrays package](https://docs.xarray.dev/en/stable/user-guide/terminology.html?highlight=non%20dimensional#term-Non-dimension-coordinate). BW wondered if this was adding too specialist and adding too much complexity? We have discussed similar ideas previously and decided that NeXus should make data available for plotting, but should not try to describe how the plot is presented. SB mentioned that a separate NXdata of rearranged data could be created to acheieve the same result, but that would be duplicating data. WDN suggested that this could aslo be achieved by flattening the axis data and linking via a virtual dataset, he posted an example on the ticket. VOTE: it was decided not to propose this feature for NeXus at this time - -SB introduced [NeXus Ontology v2](https://github.com/nexusformat/NIAC/issues/136) The NIAC welcomed the update and unanimously supports the initiative and continuing work. PJ asked if this could be made more visible? HG said that she would be working with Steve Collins shortly to get things hosted via PURL with the new `nexus-purl` email address as the keeper. SB says there are also some rendering issues to solve. - -SB introduced [Group referencing an Application Definition](https://github.com/nexusformat/NIAC/issues/138) this listed three approaches to ther problem of a complex meaurement where you would like to apply validation to a set of entries. There was discussion about this, `NXsubentry` was mentioned but this normally applies to multiple simultaneous techniques (multi modal) as opposed to a sequence of techniques. NeXus currently treates each NXentry as validated separately, so a prescribed sequence of NXentry is not validated. WDN proposed a subentry stucture that may be appriopriate on the ticket, SB will consider this and bring back and examplefor further discussion as appropriate. HG mentioned the use of sequence_index in NXprocess that might provide some mechanism. MK suggested that what SB is looking for might be a workflow software tool and notes that several will be presented at NOBUGS conference next week. VOTE: deferred - -SB introduced [base classes always extend NXobject. Can a base class extend another base class?](https://github.com/nexusformat/NIAC/issues/135) The NIAC has traditionally avoided too much interitance in base classes to limit complexity, base classes are generally dictionaries. Such a change would also require a validator to follow the relationships. - -## Session C: Sept 14th 15:00 UTC - -Present: AB, FA, SB, RO, PJ, LG, BW, RB, PC, MK, PC, HB, HG, WDN, CZ - -As this was a larger group with some new people, BW summariesed use of the [project board](https://github.com/orgs/nexusformat/projects/2/views/1) and people taking ownership of issues to champion. - -RO mentioned he had a PR about changes to documentation and asked if it needed a vote? BW confirmed that if it did not change how files were written (i.e. was e.g. clarification) then it did not need NIAC and could just go via normal PR approval. - -It was discussed when to have a session to elect officers, later in the day looked better for best attendance due to time zones. The third session on Thursday (session F) was agreed. - -SB introduced [symbols to be connected to Field values](https://github.com/nexusformat/NIAC/issues/141) Symbols are used in definitions as placeholders for values and allow you to indicate that two arrays must have the same (or a related) size. Symbols themselves are, however, not explicitly documented and a new symbol cannot be defined in terms of existing symbols. The proposal was for a symbols table that would allow both. The NIAC likes the ideas put forward here and encourages preparatation of a more complete proposal. - -As an offshoot of this, use of math within a nexus definition of file was discussed. For the general case, a machine parsable syntax would need to be chosen - HB suggested Javascript might be a good one. As this point math was only being considered for dimension attributes, and the math is contained in the NXDL. AB mentioned [math support in nexus](https://github.com/nexusformat/definitions/issues/711) which is having math applied in the NeXus file during reading, which has potential security issues if an arbitrary equation is allowed leading to a denial of service attack. However it was pointed out that reading an extremely large dataset in an incorrect way can lead to such a thing anyway! It was discussed if a simpler set of operations rather than full equations could be used, but in this case the equation is quite complex. WDN mentioned [HDF5 UDF](https://hdf5-udf.readthedocs.io/en/latest/) which is an interesting option but this would tie nexus to HDF5. HDF5 UDF also has security issues. PC asked if there was a determined list of approved expressions would that give AB, HB what they need? SB suggested that there be a table called expressions similar to a symbols table, the NXentry would allow expressions to be defined by an applpication definition with the burden of security executing the expresion falling on the community that is supporting the application definition. PJ thinks that the point of NEXUS is to provide data, not data processing. AB said that at the moment the data isnt 100% useful without the processing so it would be great to find a solution to this. - -WDN introduced [NXdata: errors on auxiliary signals](https://github.com/nexusformat/definitions/issues/1044) which was to allow use of `VARIABLE_errors` on additional signal arrays, it is currently allowed on axes and the main signal array. NIAC agrees that this is just a documentation bug that should be fixed. Also the `errors` field was already decided to be deprecated in 2018, this was just not yet actioned. - -There was a rediscusison of [Support for non-dimensional coordinates in NXdata](https://github.com/nexusformat/NIAC/issues/139) introduced by SB as RO was now present. RO and WDN has been doing something similar using transformation matrices for the axes, so it will be considereded if allowing the addition of a transformatioin matrix to the dataset would be able t solve the use case. PC requests that there be a human readable field added to the documentation. - -AB introduced [Flux changes for NXmx](https://github.com/nexusformat/definitions/pull/1035). The NIAC agreed that this did not need to wait for [Can we have a standard rule in NeXus to validate presence of one item from a list of possibles](https://github.com/nexusformat/definitions/issues/1002) to be resolved and could be voted on and merged. The outstanding ticket referred to being able to specify that one of: flux, total_flux, flux_integrated, total_flux_integrated being present, which is currently not a rule available in NDXL. It is not possible just to use an enum for these option as one can refer to an external arbitrary named NXmonitor. - -## Session D: Sept 15th 10:00-12:00 UTC - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Freddie Akeroyd (FA), Peter Chang (PC), Luca Geliso (LG), Pete Jemian (PJ), Heike Gorzig (HG), Sandor Brockhaus (SB), Mark Koennecke (MK), -non-NIAC Present: Markus Kunbach (Markus), - ------------------------------------ - -PJ raised [XPCS issue 1007 ](https://github.com/nexusformat/definitions/issues/1007) but it still needs discussions in the technical committee and would like to invite those people to next telco to discuss related issues, such as issues [1004](https://github.com/nexusformat/definitions/issues/1004), [1005](https://github.com/nexusformat/definitions/issues/1005) and [1006](https://github.com/nexusformat/definitions/issues/1006). -PJ XPCS community write processed data data (which is what the NXxpcs definition covers) in 2 different ways so consensus needs to be discussed with a focus on standardizing on NeXus. -PJ,LG discussion about g2 function. -PJ 2 ways the data (output of the g2 functions) are linked list of keys to g2 functions and the other is a 2D array. -BW this is a feature of HDF5 and there is some resistance to becoming dependant on hdf5. -BW thinks that it is fine if each community writes its own storage mode and let the community decide which is more popular. -PJ what is there in NXxpcs definition is version 1 and there is a version 2 in the works. -PJ invited LG to review and participate in NXxpcs technical discussions. -BW asked PJ if there was a preference for when the next telco should be and PJ requested later in october. -PJ the typical data size of XPCS is on the order of Gigabytes. - ------------------------------------ - -BW looking at items in project there are 2 that likely do not need to be here, [ISSUE 101](https://github.com/nexusformat/NIAC/issues/101) has already been discussed in spring and merged already. -PC suggested that we wait to see if AB connects to meeting to see if he agrees that this can be closed. -BW think [ISSUE 88](https://github.com/nexusformat/NIAC/issues/88) doesn't needs a NIAC decision and can be left for next code camp. -BW the issue author was pointing out that documentation was a bit messy so BW suggesting this be moved from NIAC repo to the DEFINITIONS repo and consensus was achieved for this. -BW moved issue to definitions repo and added CODECAMP label. - ------------------------------------ - -SB inquired about [issue 945](https://github.com/nexusformat/definitions/issues/945), identify labels for axis, of type NX_NUMBER or NX_CHAR. -SB inquireds about crteate something like NX_ANY that could handle either NX_NUMBER or NX_CHAR. -PJ has partially proposed using the type attribute using logical operators to include "or" in the type specification. -PJ forsees difficulty in XML specofication unless a new type that includes both NX_CHAR and NX_NUMBER is used. -SB suggests something like NX_SIMPLE which would represnt a string or a single part number, not complex or quarternian numbers. -PJ/SB maybe NX_LABEL? -BW is writing this up as [issue 142](https://github.com/nexusformat/NIAC/issues/142) that references [issue 945](https://github.com/nexusformat/definitions/issues/945). -BW and PJ had intense discussion about cats. -PJ the entire point of NXdata is to be able to plot the data. -MK suggests NX_ALPHANUM, consensus was in favor. -BW prepared proposal to create NX_ALPHANUM to include NX_CHAR and NX_NUMBER, but voting is delayed until more members are present. - ------------------------------------ - -MK should NX_POSINT be renamed NX_UINT? -PC NX_UINT already exists. - ------------------------------------ - -MK/SB/Markus discussion about inheritance of base class defs, application defs and cnxvalidate, many ideas and opinions expressed faster than could be recorded accurately. -There is not a consensus as to what is meant by "inheritance". -MK there is only proper inheritcance in application definitions, when it comes to base class "inheritance" it is really a reference only. -MK `type` will only name a base class not an application definition, `extends` is used for extending an application definition. -SB what is the actual restriction for not allowing "inheritance"?, there should be a way to include an application def in another without having to copy everything. -SB we already (using the example of NXsubentry) have an inhreitance and the questions is why is this limited to NXsubentry inheriting NXentry only. -Markus we (electro microscopy) would like some guidance on how to do this then to just create 50 sub definitions and suggesting this for in an application definition. -SB the main issue is to use what he is seeing is already there (NXsubentry inherits NXentry) and use that for appl defs so that there isnt all this copied definition . -BW there are good arguments for inheritance, NXdetector is an example where inheritance could be useful, but it has been avoided for a long time. Perhaps SB/Markus will be the motivators for getting this implemented. - - - -## Session E: Sept 15th 12:30-14:30 UTC - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Heike Gorzig (HG), Sandor Brockhaus (SB), Mark Koennecke (MK), - Herbert Bernstein (HB), Aaron Brewster (AB), Heike Gorzig (HG), Raymond Osborn (RO), - - -BW presented his proposed changes to the [NXxas documentation](https://github.com/nexusformat/definitions/issues/1170) in a [pull request](https://github.com/nexusformat/definitions/pull/1190). -PC the documentation suggests that the links that are all in lower case imply that thay should be the actual names of the fields where the documentation should use upper case to indicate they would only be NX classes not actual names. -BW will make the changes and we can look at it again later. - ------------------------------------ - -MK after the break and some further contemplation MK continued inheritance discussion from previous session. -MK because SB is trying to do something new with NeXus, it needs a proposal and a discussion. -SB the data he deals with doesn't really support the idea of a "single file" data is always spread across multiple files and produced by multiple vendors, so they are trying to harmonize all the sources. -SB clarified the inheritance currently exists in NeXus and what he is looking for. -Seems to be consensus that the future should include a "programmers" understanding of inheritance to create new base classes so that base classes can be exteneded via inheritance to avoid duplication of definition code, but the problem is how to document this class relationship a)to non programmers and b) in a way that explains why we have inheritance in one place but not in another (NXdetector copies base class propoerties). -BW suggests that maybe we should consider to overhaul the entire system at a code camp. - ------------------------------------ - -There was discussion about NXDL versions in [issue 1038](https://github.com/nexusformat/definitions/issues/1038). -It will require more discussion and was best kept for the next code camp. -Label changed to code camp. - ------------------------------------ - -BW again presented his [changes to NXxas](https://github.com/nexusformat/definitions/pull/1190/files). -MK asks if these changes serve the significant part of the community? BW answers yes, these changes are a significant improvement, but it is far from perfect still. To handle experiments doing multiple modes of measurement, it would really require a new NXxas definition as this one is really restricted to a single mode. -After review the changes were voted on and accepted, code merged. - ------------------------------------ - -AB raised the [Fix up NXBeam symbols and polarization](https://github.com/nexusformat/NIAC/issues/101) issue. -AB this is likely closed and can be removed. -BW changes were already merged and were included into last release. -PJ there is nothing to do here, it has all been done. -AB concurred. - ------------------------------------ - -AB said this issue was discussed yesterday and can be reviewed now, [Flux changes for NXmx](https://github.com/nexusformat/definitions/pull/1035) is done. -PJ requested some changes relating to the documentation reference link. -BW added a comment that in order for the optional NXmonitor that is specified to be validated it [must have a name](https://github.com/nexusformat/definitions/pull/1035/files/a40bdc6beabeeb3c794c1083399f38bbb46300e4). -clarification was made to the docstring for the attribute flux must point to a field or link to a field with one of the 4 names listed. - - -## Session F: Sept 15th 15:00-17:00 UTC - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Wout de Nolf (WD), Freddie Akeroyd (FA), Sandor Brockhaus (SB), -Mark Koennecke (MK), Herbert Bernstein (HB), Aaron Brewster (AB), Luca Geliso (LG), Raymond Osborn (RO), Heike Gorzig (HG) - ------------------------------------ - -BW The proposal is to accept the changes to NXmx (previous session) represented by [pull request #1035](https://github.com/nexusformat/definitions/pull/1035), vote was unanimous to accept changes, marked approve. - ------------------------------------ - -SB requests to vote on [Clarify Data Types](https://github.com/nexusformat/NIAC/issues/142). -BW presents summary of changes to clarify data types in issue 142. -PJ that would still open up an issue of there still being text finding its way into NX_NUMBER, so PJ is not recomending including NX_BOOL in NX_NUMBER. -BW [Proposal is to replace the description of NX_NUMBER in the NeXus manual with: "any of the set of non-compound number representations NX_INT, NX_UINT, NX_POSINT and NX_FLOAT."](https://github.com/nexusformat/NIAC/issues/142#issuecomment-1247957679) Voting was unanimous to accept proposal. -BW [Proposal is to define NX_CHAR_XOR_NUM which encompasses NX_NUMBER and NX_CHAR such that either type can be used exclusively for all elements of the entire dataset](https://github.com/nexusformat/NIAC/issues/142#issuecomment-1247951551). Voting was unanimous to accept proposal. -BW [Proposal is to define NX_COMPOUND as encompassing the set of compound number types such as NX_COMPLEX, NX_CCOMPLEX, NX_PCOMPLEX and NX_QUATERNION](https://github.com/nexusformat/NIAC/issues/142#issuecomment-1247961708). -PC does not think there is a use case for this. -PJ says we have talked about this. -BW proposes to vote to reject this with PC to add a comment explaining as to why there is no valid use case. - ------------------------------------ - -BW presents issue to [Elect Executive Officers](https://github.com/nexusformat/NIAC/issues/137). -BW Position of Executine Chair request for volunteers, AB responded affirmitively, RB seconded, voting was unanimously accepted. -BW Position of executive secretary, request for volunteers, SB responded affirmitively, PJ seconded, vote was accepted. -BW Position of technical manager, BW request for volunteers, MK asked to accept the role and he did, PJ seconded, voting was unanimously accepted. -BW Position of defintions release manager, PC asked to continue on in the position, PJ seconded, voting was unanimously accepted . - ------------------------------------ - -SB items 15 -> 18 can be left until tomorrows session. - ------------------------------------ - -AB presentented item [NXmx: Change entry/end_time_estimated from "required" to "recommended"](https://github.com/nexusformat/definitions/issues/966). Dectris want it to be "recommended" since they find it difficult to guarantee compliance, but the MX community want it to be "required" in order to make sure it is included. -HB proposes to leave the rules documented as they are and let Dectris deal with not being compliant. -AB making [comment to respond](https://github.com/nexusformat/definitions/issues/966#issuecomment-1248323401) to Dectris agreeing that the detector manufacturer only has to provide an API to allow the metadata to be included in the file and that it is the responsibility of those operating the detector to provide the actual metadata. -BW we will mark this item as done. - ------------------------------------ - -BW raises item [NXsqom: filenames -> file_name](https://github.com/nexusformat/NIAC/issues/63). -RB has not provided comment requested by BW back in feb 2022. -BW proposes to move it to next NIAC meeting. - ------------------------------------ - -BW raises issue [NXsas: review use of minOccurs on various components](https://github.com/nexusformat/NIAC/issues/58). -BW we need community involment in reccomendations - PJ said he could. -There was discussion about "fair" data by MK, SB, PJ, HG. - ------------------------------------ - -BW raises issue [NXdata errors on an axis, signal or auxiliary signal](https://github.com/nexusformat/definitions/pull/1047). -WD presents the changes he made to resolve the issue as was talked about yesterday. -PC wanted some discussion to clarify what is meant by the word VARIABLE. -BW suggests changing VARIABLE to FIELDNAME in the docstring. -WD asked to make the change to the docstring, as its just documentation no vote is required. -BW added comment "Replacing "VARIABLE" with "FIELDNAME" would be more general and easier to understand." -WD made changes, BW made changes to NXdata.nxdl.xml. -Changes can be merged. - ------------------------------------ - -BW because of low turnout for first session of the day it was proposed to use the first session tomorrow for homework and instead meet for the second session, it was agreed. - -Session G: Sept 16th 10:00-12:00 UTC ------------------------------------- - -not used as agreed upon in session F. - - -## Session H: Sept 16th 12:30-14:30 UTC - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Mark Koennecke (MK), Herbert Bernstein (HB), Aaron Brewster (AB), Sandor Brockhaus (SB), CHen Zhang (CZ) - ------------------------------------ - -PJ presented issue [NXsas: review minOccurs and group names](https://github.com/nexusformat/definitions/pull/1194). -PJ went through file [changes he made](https://github.com/nexusformat/definitions/pull/1194/files). -PJ received comments from BW, MK, PC, PJ will make changes and bring this up again when they are done. - ------------------------------------ - -SB question about item [supporting the recommended property for Attributes](https://github.com/nexusformat/NIAC/issues/140). -BW this is already finished and can be marked done. - ------------------------------------ - -BW asked if this was done: [NXmx: Definitions for multi-channel (thresholds) data](https://github.com/nexusformat/definitions/issues/940). -PJ, AB we need information from Dectris, so this is done from the perspective of NIAC 2022. - ------------------------------------ - -BW raised item [math in the \ element](https://github.com/nexusformat/definitions/issues/1084). -AB we need a pull request for this. -group discussion about math element added to the symbols table to define new symbols that are used in the definition to specify dimensions etc. -MK raised a practical concern that because cnxvalidate is written in C that there be a library used to convert javascript to C if javascript will be -used as the essential supported math grammer that will be allowed/supported. -group discussion on possible use of javascript to evaluate math expressions in symbol definitions. -BW [Proposal is to explore the use of javascript syntax for mathematical expressions in NXDL symbol tables (and elsewhere in NeXus) and encourage the production of a technical demonstration](https://github.com/nexusformat/definitions/issues/1084#issuecomment-1249411564). -BW proposed a vote to accept, PJ seconded,proposal was unanimously accepted. - ------------------------------------ - -SB raised a discussion with BW about item [symbols to be connected to Field values](https://github.com/nexusformat/NIAC/issues/141). -PC about having symbols defined not only in the sybmbols table but also in a new attribute to a group as an expression. -The outcome was that the need for such a thing is not clear. -BW asked if the topic required more discussion next session SB indicated no. - - - - -## Session I: Sept 16th 15:00-17:00 UTC - -NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang (PC), Pete Jemian (PJ), Mark Koennecke (MK), Herbert Bernstein (HB), Sandor Brockhaus (SB), Freddie Akeroyd (FA), Aaron Brewster (AB), Raymond Osborn (RO), - - -PJ mentioned PR [NXsas: review minOccurs and group names](https://github.com/nexusformat/definitions/pull/1194). -PJ raised a question regarding signal indices. -Group discussion about assumptions about indices that are not specified, assumption is the first in the list is the horizontal axis but we dont believe it is stated anywhere, it is just assumed. -PJ documentation states "C storage order" which isn't really helpful, should maybe be replaced by something more immediately understandable for everyone. -MK propose change to the words "Row Major Order" instead. -PJ [Changes finalized](https://github.com/nexusformat/definitions/pull/1194/files/aaed8881ea25d49d7920fee2f557e6ecbfa40492). -BW proposes motion to [vote to accept](https://github.com/nexusformat/NIAC/issues/58#issuecomment-1249513045), RB seconded. -after Voting motion was unanimously approved. -PJ changes merged. - ------------------------------------ - -BW raises an old item from [NIAC2020](https://www.nexusformat.org/NIAC2020.html) with [Suggested improvements to the NXdata base class definition](https://github.com/nexusformat/NIAC/issues/48). -PC there is a change requested before a PR can be executed. -BW suggests we put this issue aside, PJ seconded, it will get a telco label to make sure it gets examined on next telco/code camp. - ------------------------------------ - -RB raises again [issue 322](https://github.com/nexusformat/definitions/issues/322) and how to specify list of file paths. -PC should be 1D array because we allow variable length strings. -BW suggests changing "filenames" to "file_list", PJ says this already exists in NXxpcs and that there would be no collision since the meaning is the same. -Group discussion on the question is there a statement in NEXUS to avoid plural in favor of singular field names, couldn't really find anything that states that directly. -PC proposes to reject this issue as it doesn't appear to be a problem and not worth taking the chance on disrupting things for no apparent reason. -BW commented on this issue in github that due to our conversation and the amount of time lapsed we won't change anything unless the original reporter of the issue replies to make the case for this change. -BW asked if there were any objections to closing this issue, there were none. -BW closed issue. - ------------------------------------ - -SB raises that [PR 1183](https://github.com/nexusformat/definitions/pull/1183) is ready for merging. -PJ merged in GH. - ------------------------------------ - -BW raised item [Suggested improvements to the NXdata base class definition](https://github.com/nexusformat/NIAC/issues/48) because RO was attending and we had time. -PC, RO, BW discuss Tobias' comments. -BW putting this aside for today and look at in future telco, someone needs to look at the proposed changes to NXdata to handle this. - ------------------------------------ - -BW again reviewing item [Proposal to add 'angles' attribute to NXdata groups](https://github.com/nexusformat/NIAC/issues/102). -BW not going to reconsider this items concerns today. -RO asked will this extra array in NXdata to handle transformations require a NIAC vote. -BW only if it is a change to the NXdata base class or the application definition. - ------------------------------------ - -BW raises item [AppDef for Electron Microscopy](https://github.com/nexusformat/NIAC/issues/103). - -SB we can mark this as done for this meeting as they are still being worked on. - -same for project items: -* [NeXus Ontology v2](https://github.com/nexusformat/NIAC/issues/136). -* [Group referencing an Application Definition](https://github.com/nexusformat/NIAC/issues/138). -* [Support for non-dimensional coordinates in NXdata](https://github.com/nexusformat/NIAC/issues/139). - ------------------------------------ - -BW there are no more NIAC items remaining in the project board, asked if there is anything else anyone wanted to raise for the NIAC. - -RO asked PJ about PR [Add nexusformat examples](https://github.com/nexusformat/definitions/pull/1145). - -PJ gave positive reply. - -BW calls the meeting to a close. - - - - - diff --git a/content/NIAC2022_spring.md b/content/NIAC2022_spring.md deleted file mode 100644 index c90ca6d2..00000000 --- a/content/NIAC2022_spring.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Spring Virtual NIAC 2022 -permalink: NIAC2022_spring.html -layout: wiki ---- - -The 2022 Spring Virtual NIAC will be held on March 3rd and 4th, 2022. It aims to provide some decisions and feedback requested by the community. -Since it is not the "ordinary" biennial NIAC meeting (which will be [held in September](https://www.nexusformat.org/NIAC2022.html)), the [constitution](https://www.nexusformat.org/NIAC.html) lays out stricter rules for making decisions: - -"Voting outside of the biennial NIAC meetings can take two forms. Firstly, memberships can be approved by email ballot. All other issues require a teleconference for interactive discussion that is attended by at least 2/3 of the NIAC. Votes may be cast at the teleconference, as well as during the following week in order to allow NIAC members not attending the teleconference to add their vote to the tally. The opening of the voting period must be advertised through the NIAC mailing list. At the close of the 1-week voting period, NIAC members not responding are counted as abstained and the NIAC decision follows the voting category (usually “for” and “against”) with the highest number of valid votes." - -Agenda and Sessions ----------------- -Each agenda item should be an issue in the [NIAC repository](https://github.com/nexusformat/NIAC/issues) (which should refer/link to issues in other repositories where appropriate) and organised via a [github project](https://github.com/nexusformat/NIAC/projects/4). - -The meeting will consist of 4 sessions over the 3rd and 4th of March, plus a 5th session at least a week later: - - - - - - - -
Session Date and Time Comment
A
March 3rd
14:00-16:00 UTC
- - - - - - -
TokyoThu 23:00
San FranThu 06:00
New YorkThu 09:00
LondonThu 14:00
ZürichThu 15:00
-
Zoom link
- ID: 621 7018 8565
passcode: nexus
B
March 3rd
22:00-24:00 UTC
- - - - - - -
TokyoFri 07:00
San FranThu 14:00
New YorkThu 17:00
LondonThu 22:00
ZürichThu 23:00
-
Zoom link
- ID: 621 7018 8565
passcode: nexus
C
March 4th
14:00-16:00 UTC
- - - - - - -
TokyoFri 23:00
San FranFri 06:00
New YorkFri 09:00
LondonFri 14:00
ZürichFri 15:00
-
Zoom link
- ID: 646 5018 2627
passcode: nexus
D
March 4th
22:00-24:00 UTC
- - - - - - -
TokyoSat 07:00
San FranFri 14:00
New YorkFri 17:00
LondonFri 22:00
ZürichFri 23:00
-
Zoom link
- ID: 646 5018 2627
passcode: nexus
Final
March 15th
14:00-16:00 UTC
- - - - - - -
TokyoFri 23:00
San FranFri 07:00
New YorkFri 10:00
LondonFri 14:00
ZürichFri 15:00
-
Zoom link
- ID: 612 3266 6591
passcode: nexus
- - -Minutes -------- - -Minutes have been taken [here](https://www.nexusformat.org/NIAC2022_spring_minutes.html). A chorum was achieved in session **C** and below is a summary of proposals that were voted on. As per the [constitution](https://www.nexusformat.org/NIAC.html#constitution), voting shall remain open for a week (in practice, until the final session). NIAC members can cast their vote by following the link in the "proposal" column and then adding an emoji reaction (thumbs-up to approve, thumbs-down to reject, or any other amoji to abstain). - - -| Proposal (link to voting) | Discussion | Implementation | Decision
(for/against/abstain) | -| --- | --- | --- | --- | -| [PURL for NeXus Ontology](https://github.com/nexusformat/NIAC/issues/95#issuecomment-1059210877) | [PURL for NeXus Ontology](https://github.com/nexusformat/NIAC/issues/95) | `http://purl.org/nexusformat/definitions/` | Accepted
(13/0/0) | -| [Clarify `gain_setting` in `NXdetector`](https://github.com/nexusformat/NIAC/issues/100#issue-1154265378) | [Clarify gain_setting in NXdetector](https://github.com/nexusformat/definitions/issues/894) | [Pull#896](https://github.com/nexusformat/definitions/pull/896) | Accepted
(10/0/0) | -| [Reserve field prefix `DECTRIS_`](https://github.com/nexusformat/NIAC/issues/110#issue-1158281367) | [Previously reserved](https://manual.nexusformat.org/datarules.html?#reserved-prefixes), [Request](https://github.com/nexusformat/definitions/issues/993) | | Accepted
(14/0/0) | -| [Allow strings as dimension labels in `NXdata`](https://github.com/nexusformat/NIAC/issues/97#issuecomment-1059256273) | [Allow NXdata dimension variables to contain a list of strings](https://github.com/nexusformat/definitions/issues/945) | | Accepted
(14/0/0) | -| [Add `virtual_pixel_correction_applied` to `NXdetector`](https://github.com/nexusformat/NIAC/issues/94#issuecomment-1059276075) | [Pull#942](https://github.com/nexusformat/definitions/pull/942) | [Pull#942](https://github.com/nexusformat/definitions/pull/942) | Accepted
(14/0/0) | -| [adding `depends_on` to various base classes](https://github.com/nexusformat/NIAC/issues/109#issuecomment-1059283549) | [Pull#999](https://github.com/nexusformat/definitions/pull/999) | [Pull#999](https://github.com/nexusformat/definitions/pull/999) | Accepted
(13/0/1) | -| [Protect main branch of repositories](https://github.com/nexusformat/NIAC/issues/113#issuecomment-1059291945) | [protected branches docs](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches) | | Accepted
(13/0/0) | -| [Add `image_key` to `NXdetector`](https://github.com/nexusformat/NIAC/issues/111#issuecomment-1059295950) | [Pull#994](https://github.com/nexusformat/definitions/pull/994) | [Pull#994](https://github.com/nexusformat/definitions/pull/994) | Accepted
(13/0/0) | -| [Add recommended strings for `gain_setting`](https://github.com/nexusformat/NIAC/issues/100#issuecomment-1068071881) | [Pull#896](https://github.com/nexusformat/definitions/pull/896) | [Pull#896](https://github.com/nexusformat/definitions/pull/896) | Accepted
(15/0/0) | - - diff --git a/content/NIAC2022_spring_minutes.md b/content/NIAC2022_spring_minutes.md deleted file mode 100644 index 7a6899f1..00000000 --- a/content/NIAC2022_spring_minutes.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: Minutes of the NIAC2022 Spring Meeting -permalink: NIAC2022_spring_minutes.html -layout: wiki ---- - - -Session A: March 3rd 14:00 UTC ------------------------------- - -NIAC members Present: Sandor Brockhaus (SB), Mark Koennecke (MK), Russ Berg (RB), Ben Watts (BW), Chen Zhang (CZ), Herbert Bernstein (HB), Pete Jemian (PJ), Freddie Akeroyd (FA), Peter Chang (PC), Aaron Brewster (AB), Stephen Cottrell (SC), Heike Gorzig (HG), Ray Osborn (RO) - -non-NIAC Present: Carola Emminger (CE), Markus Kunbach (Markus), Tamas Haraszti (TH), Tommaso Pincelli (TP) - -There were several new people present, including people from the FAIRmat, so a round of introductions was done. BW mentioend that his term as chair was ending at the september meeting, and also FA was standing down as secretary, so nominations would be sought. Contact BW if interested. - -BW introduced the meeting format and that issues to be discussed should be placed into the corresponding column on https://github.com/nexusformat/NIAC/projects/4 - - -SB open discussion on https://github.com/nexusformat/NIAC/issues/107: -NX_COMPLEX PC mentioned be used two items with "re" and "im" prefix to store bits. HDF5 can handle a compound type, also h5py has some documention on this. Action to look at how h5py handles this. -BW: At a previous telco Quaternions were mentioend, can they be stored in a similar scheme? HB said he can help with this - -How to use Symbols, defined at multiple levels. PJ explained how they coordinate array dimensions across items. Symbols should be listed in NXDL schema, near the top. -Markus: what is best practice, can you have multiple symbol tables e.g. makes it clearer when things are nested? PJ posted link to https://github.com/nexusformat/definitions/blob/61c2b2a6e9666a48c0ea3afc391b0d01d6bbd404/nxdl.xsd#L201-L209 as an example, symbol table needs to be early on and positioning enforced by schema. There is also one table at top to try and avoid name collisions. RB mentioned that his converter of definition to HDF file will also check the symbol table. - -linking - can we refer to a link using a PID (Persistent identifier)? BW: how does this differ from a path in file? PID can connect to items outside of file - an external reference. BW - can already have links to external files, is this to give a url/doi to refer to things instead? MK - original nexus to have all items for data reduction in one file, links were for performance reasons with large datasets. How would PID be resolved to real items? BW: DOI and PURL so some of thsi management, but maybe not at the scale needed? SB how do we do an external reference to e.g. an item in a database item rather than have to convert it to hdf5 and have a path? FA - you could store metadata about teh link in an NXnote, but e.g. an NXexternal_reference could store domain/facility specific items for linking? Agreed to discuss further and SB will create an issue - -html documenmtation: SB showed slides -inheritance and documentatiion strings, required and not required attribute. also enum. MK: base class is all optional, dictionary of terms. application definition says what is required. PJ posted link refereing to documentation https://github.com/nexusformat/NIAC/issues/119#issuecomment-1058138059 inheritance -SB volunteers to write a proposal that the NIAC can vote on to cement single inheritance for NeXus -MK makes the point that our "base classes" are not really classes and they are not supposed to inherit from each other. We only have (single) inheritance in the application definitions. -Markus asks if he needs to state everything in the application definition because he can't rely on things being inherited from the base classes. -MK says that an object in an application definition does inherit everything in the base class. - -SB proposes NX_COMPOSITE to allow composite units (e.g. meters per second) by utilising unidata. -BW wants a more detailed proposal because the minimal text presented here is not expressing the same as what you are saying. - -SB wants a way to require one of a set of fields. -PJ says that NXcansas has something similar with @resolutions. This is handled by a person following the rules stated in the docstring, but a validator cannot understand this. What we need is a way to express this properly in NXDL. -BW points out that @axes in NXdata is another example of the same mechanism that isn't formally expressed in NXDL. -Discussion of [cnxvalidate](https://github.com/nexusformat/cnxvalidate) and how it could be extended. -MK mentions [features](https://github.com/nexusformat/features) that could provide a lot more freedom if we put in the work to implement it on a wider scale. - -SB asks about how to link things together. PJ points out the target attribute can a class path, rather than a name path, since the application definitions tend to leave the group names unspecified. The NXDL is guidance for writing the file. -The manual states that links are given with absolute paths. The manual also uses the convention that unspecified names are written in all caps. - -SB asks about @default. PJ explains that there must be a chain of @default attributes where the value of one must point to the group that has the next @default attribute in the chain. SB found a file that has absolute paths in the @default attribute, but there is consensus that the file is violating the standard. attributes generally only refer to the memebrs of the local group (the @target attribute being an exception). - -SB asks if we want to always base the base classes on NXobject? Do we want to have more inheritance? NXdetector is an example where having a few specialised types of NXdetector that inherit from a basic version could make it easier to work with. PJ says that this would involve a large refactoring of NeXus rules that would affect lots of things. [NXxkappa](https://manual.nexusformat.org/classes/applications/NXxkappa.html) is already extending [NXxbase](https://manual.nexusformat.org/classes/applications/NXxbase.html), inheritance of application definitions is already demonstrated. - -SB asks if an application definition can define multiple entries. BW says that this is done in NXstxm, but it can't be done formally in NXDL. The manual describes some reasonable approaches, but doesn't say anything specific. Markus says that it is influenced by how much metadata you want to be repeating. We don't want to advocate putting "too many" measurements into a single file. -RO always has multiple entries (for different rotations) in a file and then combines the data together afterwards. He always uses external links to files containing calibrations. It is a question of bookkeeping to store the data and their relationships to each other. - - - -Session B: March 3rd 22:00 UTC ------------------------------- -NIAC members Present: Ben Watts, Freddie Akeroyd, Sandor Brockhauser, Pete Jemian, Mark Koennecke, Aaron Brewster, Herbert Bernstein, Russ Berg, Matsumoto Takahiro - -non-NIAC Present: Carola, Tommaso, Markus Kunbach - -Not enough NIAC members present for official votes - -PJ introduced NXxpcs draft https://www.jemian.org/BES-XPCS-pilot/NeXus/classes/contributed_definitions/NXxpcs.html#nxxpcs -for results of xpcs experiments. BW noticed scan_number in the definition, queried if it was a general feature? Also are both entry_identifier and scan_number needed? -PJ asked for confirmation of teh process for new definitions, do we need a NIAC vote to add a contributed definition? Answer was no, only a NIAC vote to move to full definition. -AB mentioned there are 4 new definitions, so not able to go line by line. Suggested sub committees in breakouts maybe? BW suggested telcos might also be able to do this. -PJ was asked to summarise any discussion points. He drew attention to `g2` which is proposing a new unit type of `NX_ARBITRARY_UNITS`. However as it happens to be dimensionless it was suggested to use `NX_DIMENSIONLESS`. PJ also mentioned `storage_mode` as something that may need more discussion. SB asked if they could use HDF virtual data sets for this? BW wondered if not using a 3D array was due to possible missing elements and a linked dataset routes was to avoid this. PJ suggested we had a telco with xpcs people to have a good discussion over these points. MK: sa this is processed data, we should add an NXprocess . -SB: how is the raw data stored? PJ: this is very detector dependent, collected by BlueSky, but not usually stored in HDF5 format. This data then goes to have g2 calcualated and the idea is to use nexus for sharing the processed data. So plan is to discuss at a telco. - -BW introduced #98 NXdetector_channel requested by Dectris for storing different per channel valuies e.g. gain settings See https://github.com/nexusformat/definitions/issues/940#issuecomment-972672865 The detector channels are different versions of the data. Could this be doen as separate NXdetector_groups ? Decris though a single NXdetector was better as there is only one physical detector. Tomaso: could you have nxprocess inside nxdetector to describe some of this processing? BW described this is done by chip in detector, so processing is "black box". MK: though you could use an extra array dimension to store this data, using proposed NXdetector_channel does look clearer. AB described https://github.com/nexusformat/definitions/issues/711 and that detector channel woiuld be helpful here. - -AB presents discussion of [fixing symbols of NXbeam](https://github.com/nexusformat/definitions/pull/858) (this is the version of NXbeam in NXmx). Here it is using the symbol nP for the number of scan points, while the base class doesn't use any symbols and doesn't really consider multiple scan points. -Divergence has 3 components, X, Y, and XY. This is documented in CIFS and is also called "crossfire" and we should copy from their definitions. -AB will change the size of the array corresponding to the divergence components to "c" and explain the concept of "crossfire" where there can be many moments of divergence. -Questions of whether nP symbols is normally used in the first dimension? MK says nP would be the "scan dimension" that is usually first. This is not what NXbeam currently states (we messed up) and we should change it to match the standard order of nP first. BW suggests that we shouldn't specify the size of the second dimension (components of the divergence) since we don't want to enforce it. - -Tommaso says we should state that the "extent" is measured according to the FWHM. There should be a shape description (string). SB says that at ESRF they gave the choice of a few basic shapes, together with the option of a profile. HB suggests a working group. - -The meaning of some symbols (in the old version) is not clear. We can port most of the NXmx version of NXbeam back to the base class. -"fixing" the spelling of "polarization" should involve deprecating "polarisation". - -Tobias has gone through the base classes and deprecated NXgeometry and added in NXtransformations and depends_on. It looks fairly safe and repetitive with the exception of the images that have been added. We can mark it as ready to vote on with a note to discuss the images. - -SB has [written down some details regarding inheritance](https://github.com/nexusformat/NIAC/issues/119#issuecomment-1058508119) in order to explain the way NeXus currently operates with formal language. Feedback and comments are welcome (please post to the issue). - -SB presents the [documentation for the FAIRMAT proposed application definitions](https://fairmat-experimental.github.io/nexus-fairmat-proposal/d122a69ce0c953805e60a662e9580ee2c4a6fae7/index.html) that includes the feature allowing the community to annotate the docs to make comments and suggest improvements. Carola walks us through the proposed ellipsometry application definition. PJ points out that the new files should go to the `contributed_definitions` folder, which SB has already implemented in the pull request. - -Close session. - -Session C: March 4th 14:00 UTC ------------------------------- -NIAC members Present: Ben Watts, Sandor Brockhauser, Pete Jemian, Aaron Brewster, Chen Zhang, Heike Goerzig, Herbert Bernstein, Ray Osborn, Stephen Cottrell, Wout de Nolf, Peter Chang, Mark Koennecke, Russ Berg, Takahiro Matsumoto - -non-NIAC Present: Markus Kuehbach, Tommaso Pincelli - -With 14 NIAC members attending we have a quorum to make decisions by a small margin. - -Votes are on github. Links are provided. The voting period is one week. - -Publishing the NeXus ontology on PURL. Automatically generated from NXDL. PURL provides persistent identifiers for NeXus and persists it. Quality checking the NeXus ontology is on us. Motion to publish the NeXus ontology on PURL: Voting at https://github.com/nexusformat/NIAC/issues/95#issuecomment-1059210877. 12 agreed -Thus the motion is approved. - -Changing gain_setting in NXdetector to be free form and not an enum. Votes at https://github.com/nexusformat/NIAC/issues/100, 9 agreed so far. Consensus was this should be revised with a suggestion for a controlled vocabulary for the gain settings. And the addition of numeric gain setting and offset fields. - -Reserve the private prefix DECTRIS for the company DECTRIS. Issue: https://github.com/nexusformat/NIAC/issues/110. This raised the suggestion that prefix owners store the documentation for their private fields with NeXus in NXDL. This will be a new issue. Voted for the DECTRIS prefix: 11 during the session. This is approved. - -Next issue: allowing arrays of strings as axis dimensions, https://github.com/nexusformat/NIAC/issues/97, This drifted off into a discussion if we allow date time strings here. This was deferred to another proposal. We vote on allowing NX_CHAR or NX_NUMBER arrays as axis in NXdata. 11 votes in agreement so far. - -Allow NXdetector_channel for storing detector channel specific parameters. https://github.com/nexusformat/definitions/issues/940#issuecomment-972672865. The consensus is that we encourage further development of this until we have a pull request for a NXdetector_channel base class. This is not ready for a NIAC vote yet. -This also raised questions about how to link data together in NXdata. - -Next topic is the virtual_pixel_correction_applied field, https://github.com/nexusformat/NIAC/issues/94, The vote is for accepting it. 12 votes in favour, accepted. - -The NIAC decided in 2012 to deprecate NXgeometry and introduce NXtransformations and depends_on fields in any positionable NeXus base classes. The issues is https://github.com/nexusformat/NIAC/issues/109, This vote is to confirm that the changes sugegsted reflect the NIAC vote of 2012. Approved with 12 votes. - -The next issue is to protect the main branch of the github repository in order to prevent abuse. The github link is: https://github.com/nexusformat/NIAC/issues/113#issuecomment-1059291945 Accepted with 12 votes. - -Next issue is to add image_key to NXdetector. It is already used in NXtomo. The issue is https://github.com/nexusformat/NIAC/issues/111. Approved with 11 votes. - -With the votes out of the way we started discussing NXmpes. Which improves NXmpes. This is a processed data application definition. The approach is to agree on a processed data standard and when people got used to the standard push for a raw data format. The field is dominated by vendors. In some cases, data files provided by commercial instruments can be encrypted. In many other cases, the data is obfuscated with undocumented calibrations and processing. FAIRMAT aims to provide the community with exchange formats (processed data) with the hope of increasing demand for more open formats for raw data files. - -Discuss application definitions for electron microscopy. Lenses are an integral part of microscopes and we can build a detailed model of the instrument via description of a set of lenses. Can see value in having base classes for all types of lenses - still want to find good names for the classes. BW encourages FAIRMAT to develop a very general lens base class that covers all cases - NXxraylens could be deprecated if a suitable replacement is available. -Current situation for atom probe microscopy of scraping data out of commercial file formats with limited knowledge. Atom probe data needs high precision that is difficult to get from commercial data files. Published methods tend to be incomplete and the community is wanting to not accept this in future. They are trying to include as many details as possible. -Current situation in electron microscopy is also heavily reliant on commercial suppliers, so incentive for open protocols is very low. Vendors provide all-in-one gui-based software to make customers happy, but results in lack of openness in the data and lots of undefined processing. The sample stage can be very complex with lots of versatile capabilities. This lead to NXstage_lab therefore contains some fields, but more importantly can act as a container for including lots of further base classes describing further capabilities. - -Discussion of tracking the history of a sample or session. lab books versus large files or a master-file or a database. Sample synthesis is an example where collecting an entire history together is valuable. Connecting the data and actions together with ontologies is something that FAIRMAT would like to ework towards. - -BW suggests bringing up these application definitions in future telcos. Announcing the intention beforehand can give people time to do some homework reading and we can focus on each part in detail over many meetings. - - -Close session. - -Session D: March 4th 22:00 UTC ------------------------------- -NIAC members Present: Russ Berg, Peter Jemian, Freddie Akeroyd, Mark Koennecke, Sandor Brockhauser, Ben Watts, Wout de Nolf, Aaron Brewster (AB), Takahiro Matsumoto, Ray Osborn - -non-NIAC Present: - -* Leave "Fix up NXBeam symbols and polarization" https://github.com/nexusformat/NIAC/issues/101 as need Aaron -* NXmx total_flux https://github.com/nexusformat/NIAC/issues/96 need way to specify one of a set of fields is present in NXDL. There is "flux" and "total_flux" currently, discussion was around whether NXmonitor could be used for this and also whether flux and total_flux could be merged into a single flux field. NXstxm has a NXmonitor called control. AB will consult MX community and discuss if NXmonitor would work here. There was a discussion about units for NX_FLUX and whether it was possible to have unit options that were dimensionly different e.g. per area or not per area. No other NX units currently do this. There is also an integral log in NXmonitor that may be useful for total flux. - -Deprecate incr attribute in dimensionsType https://github.com/nexusformat/NIAC/issues/112 a field was accidentally left in. ref and refindex were deprecated but https://manual.nexusformat.org/nxdl_desc.html#incr depends on them. These were deprecated in a telco, they have not been removed that needs a niac, so it was agreed they can be deprecated here. VOTE: unanimous - -NXregion https://github.com/nexusformat/NIAC/issues/118. MK: what does imgCIF do for region of interest? AB: it doesn't seem to describe it exactly, but could create a detector object that describes it. Whhat does EPICS Area Detector do? https://areadetector.github.io/master/ADCore/NDPluginROI.html Also ESRF https://bliss.gitlab-pages.esrf.fr/bliss/master/flint/flint_roi_counters.html There seems to be a branch https://github.com/nexusformat/definitions/compare/944-add-NXregion but not a PR at the moment. RO: this seems to define the data but not how to use it? Would it be clearer as a child of NXdata rather than NXdetector? Could we see an example file of usage? SB mentioened that the category element of contributed definitions wasn't always clear whether it was a base or application definition, this needs to be tidied up. - -AB presented updates to https://github.com/nexusformat/definitions/pull/858 There was discussion around "energy_transfer" field as to whether it made sense in NXbeam. Was it there for MCstas simulations? There was also discussion about the dimensionality of the variuous quantities, it looked better to not specify this directly but to add the various options in a description at the top. Various suggestions were added as review comments to the PR. - -Add geometry information to NXbeam https://github.com/nexusformat/NIAC/issues/115 and https://github.com/nexusformat/definitions/compare/925-nxbeam-geometry After discussion, looks good and would like to see PR from PC - -https://github.com/nexusformat/NIAC/issues/99 , https://github.com/nexusformat/definitions/pull/913 - this looks like a bugfix so OK to merge. - -Question about choice of fields - seems there is a choice of groups in https://github.com/nexusformat/definitions/blob/1af5f99cbfe0741c50cba3936bc793127390c410/base_classes/NXdetector.nxdl.xml#L779-L792 and this could potentially be extended to fields? - -BW will create page of votes and send out doodle for choice of final meeting date - - -Session E: March, 15, 14:00 UTC -------------------------------- - -Pete Jemian brought up the topic of holding a code camp for implementing the decisions from NIAC. After some discussions we -agreed to hold this in may. A doodle poll will be held in order to find a suitable date. BW clarified that we do not vote on code camps. - -A discussion about the default attribute. There is some confusuion about if the default attribute is a path to the default plot item or -a chain. The consensus was that it is a chain and the documentation ought to be clarified. - -Then there is the problem that now many base classes like NXcapillary have the default group attribute without there being a NXdata -group foreseen in the group. BW linked this issue to the problem about the inheritance model of NeXus. This is to be discussed at -the next code camp. MK reminded the group that the Interfaces proposal which suggested some inheritance in base classes was shot -down at NIAC 2018. - -We agreed that there are no further discussions required on the voting items from session C. - -AB brought up #896, clarifying the NXdetector gain_setting for discussion. The list of known gain settings was amended. The group made -suggestions how to improve the text even more. AB suggested to vote on the proposed and amended changes in #896. The vote is at https://github.com/nexusformat/NIAC/issues/100#issuecomment-1068071881 - -AB brought up NXmx_total_flux, #986. There is some discussion about using NXmonitor instead of the flux fields. The MX community uses flux for -a use case for which NeXus has invented NXmonitor. There is also discussion about the dimensionality of flux. Apparently, some beam lines -give a single number here as the beam line is very stable or the normalisation is done before writing the file. Others store a value per image in -order to allow for later normalisation. HB points out that for crystallography you have to be descriptive. If you are prescriptive as NeXus tries -to be, wou will be ignored. Various suggestions to improve the wording of AB's proposal were made and applied. It was felt that this needs further -discussion and the discussion was adjourned. - -The next issue is the clarification of NXbeam espcially the polarisation parameters. THis is issue #858. The proposal was reviewed. There is some discussion -about the meaning of the stokes parameters. Peter Chang agreed to clarify this. RO brought up that this has to be discussed with neutron and light scattering people. A solution is not to deprecate the old fields but rather add the new proposed new fields. With neutrons many bespoke devices are used for polarisation analysis. Thus no standard can be proposed. - -Meeting closed with one open vote. Next steps will be Doodles for the code camp and a NeXus telco. - diff --git a/content/NIAC2024.md b/content/NIAC2024.md deleted file mode 100644 index 578fbd1a..00000000 --- a/content/NIAC2024.md +++ /dev/null @@ -1,214 +0,0 @@ ---- -title: NIAC2024 -permalink: NIAC2024.html -layout: wiki ---- - -The NIAC2024 meeting will be held as a hybrid event hosted by [The European Synchrotron (ESRF)](https://www.esrf.fr/home.html) & the [Institut Laue-Langevin (ILL)](https://www.ill.eu/), in Grenoble - France from 27th to 30th September 2024, the week after the [2024 NOBUGS conference](https://indico.esrf.fr/event/114/). - -People will be able to participate both onsite and online (via Zoom). In order to better overlap with other time zones, the meeting sessions will be shorter and later in the day (CEST) over 4 days. - -Venue and Accommodation ------------------------ - -The European Synchrotron is the world's brightest synchrotron light source with 21 partner countries, 46 beamlines and 10.000 visitors per year. - -The Institut Laue-Langevin is an international research centre at the leading edge of neutron science and technology. - -Both institutes are part of the [European Photon & Neutron (EPN) Science Campus](http://www.epn-campus.eu), a science hub hosting major international institutes for the exploration of living matter and materials. - - 71 Av. des Martyrs - 38000 Grenoble - France - -Information on travel, accommodation and site entrance be found [here](https://indico.esrf.fr/event/114/page/38-practical-information). - -The [one-site restaurant](http://www.epn-campus.eu/practical-info/site-restaurant/) is available for lunch and dinner, included in the NOBUGS conference fee. - -The one-site guesthouse is NOT available for NOBUGS/NIAC participants. - -Grenoble is located at the heart of the French Alps. September is generally a very mild month with an average temperature between 13 and 23 °C (55 and 73 °F). - -Registration ------------- - -[Registration Form](https://indico.esrf.fr/event/114/registrations/) - -[One Page Overview](https://indico.esrf.fr/event/114/?print=1) - -Note there are two registration forms, for onsite and remote attendance. - -- Those onsite need to register for the NIAC satellite meeting (100 EUR registration fee), but do not need to register for NOBUGS if they are only coming for NIAC. Please see the "Registration form for in person satellite meetings (ONLY)". -- Remote attendees should use the "Registration form for remote participants". -- Remote attendees who do not participate in NOBUGS do NOT need to register. A Zoom meeting ID will be shared in due time. - -People outside of the NIAC are invited to join discussions and register for the meeting but voting will be restricted to committee members only. - -COVID19 Precautions -------------------- - -There are currently no coronavirus restrictions in place at ESRF or the French government. However, the situation could change, especially as the weather gets cooler, and we encourage attendees to consider both their own safety and the safety of others with appropriate hygiene, testing and vaccination. - -Agenda ------- - -The meeting agenda will be based on a [Github project](https://github.com/orgs/nexusformat/projects/5/) so that it is accessible to all particpants. Any proposal to be discussed and voted on should be documented as an issue in the [nexusformat/NIAC repository](https://github.com/nexusformat/NIAC/issues). - -The main task of the meeting is to ratify [contributed definitions](https://manual.nexusformat.org/classes/contributed_definitions/index.html#contributed-definitions) that are ready into the main NeXus repository of [application definitions and base classes](https://manual.nexusformat.org/classes/index.html). Initial work by a NIAC organizing committee has split the work into two projects, depending on the whether the contribution arose from the [FAIRMAT project](https://fairmat-nfdi.github.io/nexus_definitions/index.html): - -- [Review of non-FAIRMAT Contributed Definitions](https://github.com/orgs/nexusformat/projects/4/). -- Review of FAIRMAT Contributed Definitions (link will be provided when ready). - -Minutes -------- - -[NIAC2024 minutes](NIAC2024_minutes.md) - - - -Schedule --------- - -The meeting will have sets of 2 hour sessions with 30 minute breaks. 3 sessions per day for 4 days. - -Zoom link: -https://esrf.zoom.us/j/96839890153?pwd=637V63h8KTlilNAdl1Q3YT7we4wDkP.1 - -ID: -968 3989 0153 - -passcode: -727186 - - - - - - -
Session Local Start Times
A
September 27th
08:00-10:00 UTC
- - - - - - -
TokyoFri 17:00
San FranciscoFri 01:00
New YorkFri 04:00
LondonFri 9:00
GrenobleFri 10:00
-
B
September 27th
11:30-13:30 UTC
- - - - - - -
TokyoFri 20:30
San FranciscoFri 4:30
New YorkFri 7:30
LondonFri 12:30
GrenobleFri 13:30
-
C
September 27th
14:00-16:00 UTC
- - - - - - -
TokyoFri 23:00
San FranciscoFri 07:00
New YorkFri 10:00
LondonFri 15:00
GrenobleFri 16:00
-
- - - - - - -
Session Local Start Times
D
September 28th
08:00-10:00 UTC
- - - - - - -
TokyoSat 17:00
San FranciscoSat 01:00
New YorkSat 04:00
LondonSat 9:00
GrenobleSat 10:00
-
E
September 28th
11:30-13:30 UTC
- - - - - - -
TokyoSat 20:30
San FranciscoSat 4:30
New YorkSat 7:30
LondonSat 12:30
GrenobleSat 13:30
-
F
September 28th
14:00-16:00 UTC
- - - - - - -
TokyoSat 23:00
San FranciscoSat 07:00
New YorkSat 10:00
LondonSat 15:00
GrenobleSat 16:00
-
- - - - - - -
Session Local Start Times
G
September 29th
08:00-10:00 UTC
- - - - - - -
TokyoSun 17:00
San FranciscoSun 01:00
New YorkSun 04:00
LondonSun 9:00
GrenobleSun 10:00
-
H
September 29th
11:30-13:30 UTC
- - - - - - -
TokyoSun 20:30
San FranciscoSun 4:30
New YorkSun 7:30
LondonSun 12:30
GrenobleSun 13:30
-
I
September 29th
14:00-16:00 UTC
- - - - - - -
TokyoSun 23:00
San FranciscoSun 07:00
New YorkSun 10:00
LondonSun 15:00
GrenobleSun 16:00
-
- - - - - - -
Session Local Start Times
J
September 30th
08:00-10:00 UTC
- - - - - - -
TokyoMon 17:00
San FranciscoMon 01:00
New YorkMon 04:00
LondonMon 9:00
GrenobleMon 10:00
-
K
September 30th
11:30-13:30 UTC
- - - - - - -
TokyoMon 20:30
San FranciscoMon 4:30
New YorkMon 7:30
LondonMon 12:30
GrenobleMon 13:30
-
L
September 30th
14:00-16:00 UTC
- - - - - - -
TokyoMon 23:00
San FranciscoMon 07:00
New YorkMon 10:00
LondonMon 15:00
GrenobleMon 16:00
-
- -Official Decisions and Statements ---------------------------------- - -| Proposal (link to voting) | Discussion | Implementation | Decision
(for/against/abstain) | -| --- | --- | --- | --- | -| | | | | - - diff --git a/content/NIAC2024_minutes.md b/content/NIAC2024_minutes.md deleted file mode 100644 index 45efa16a..00000000 --- a/content/NIAC2024_minutes.md +++ /dev/null @@ -1,121 +0,0 @@ - ---- -title: NIAC2024 Minutes -permalink: NIAC2024_minutes.html -layout: wiki ---- - -Participants: -------------- -- in person: AB, SB, RB, BW, RO, TC, FS, WdN, PC + FAIRmat: MarkusK, HZB: HectorP, SonalR -- online: HB, BB, ZM, (MK) + FAIRmat: LukasP, RubelM - - -## NIAC2024 Minutes - -Session A: Sept 27th 10:00 UTC ------------------------------- - -- Accepted (9+3/0/0): Regarding the FAIRmat contributions when we accepting AppDefs, the corresponding base classes are also checked and can be accepted even if they have not yet been registered as contributed definitions before. - -Session B: Sept 27th 13:30 UTC ------------------------------- - -- Accepted (9+3/0/0): Aaron Brewster and Sandor Brockhauser continues serving NIAC as Executive Chair and Secratary respectavly. -- Accepted (9+3/0/0): Peter Chang continues serving NIAC as Documentation Release Manager. -- MK: informed us that he goes to retirement and leaves NIAC. NIAC appreciated his contribition along all years. -- NIAC is interested in improving the stewardship of the code which may include changing the Constitution to better describe the role of the Techincal Manager. NIAC will try to address this and elect someone in coming days. - -Session C: Sept 27th 16:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- bit-depth_image -- UPPER case -- NeXus Logo - -Joining participants: ----------------------- -- MO + OSCARS: GiannisK -- PJ - -Session D: Sept 28th 10:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- Accepted (10+2/0/0): clarification and unification of the rules for using substitutable UPPERCASE names or name parts which shall be indicated in documentation as italic following a clean use of nameType [specified, any, partial] in nxdl. See issue #1436 -- NIAC Accepted (without vote): NXdata documentation shall be improved. Gallery to show capabailities and separate pages for details. See PR #1396 - -Session E: Sept 28th 13:30 UTC ------------------------------- - -list of main topics from the issues addressed: -- NIAC Accepted (without vote): meaning of @axes is clearified as default axes for every dimension. See PR #1396 -- NIAC page to be harmonised with manual. See issue #1472 -- Accepted for review: Official full Logo for both dark and light themes and squared versions with offset. -- Accepted for review: Documentation for AppDefs and Base Classes shall contain groups for common explanation while keeping the full list of definitions, too. -- Accepted for review: versioned, published, html docs including latest unreleased docs. See issue #1434 -- Accepted (10+2/0/0): group definition type="NXentry" name="entry" is too restrictive. ENTRY/@entry shall not be declared, but rather be deprecated and later removed. -- NIAC accepted: Licenses may need to be harmonised, so let us check with leagal advisors. - -Session F: Sept 28th 16:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- github repo 'definitions' could be lighten and cleaned -- NeXus Fields: can they be represented by either dataset or NXlog group? -- support for complex units, like eV/mm - -Session G: Sept 29th 10:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- choiceTypee shall render alson on HTML documentation -- clean definition for NX_CHAR to avoid confusions -- Accepted (9+2/0/0): Base classes support inheritance. PR shall come which implements it. See issue #1442. -- NIAC cincluded on the use of multiple AppDefs. Entry shall host them in separated subentries - -Session H: Sept 29th 13:30 UTC ------------------------------- - -list of main topics from the issues addressed: -- NIAC agreed on the vesrion of the new logo to be proposing a new logo -- NIAC Accepted (9+3/0/0): cAdditionally to traditional unit categories NX_xxx, arbitrary complex units (eV/mm) are now also supported by NeXus by providing an example following Unidata description. -- FAIRmat proposed modifications on base classes are reviewed -- NIAC Accepted (9+3/0/0): NXaperture - -Session I: Sept 29th 16:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- FAIRmat proposed modifications on base classes are reviewed - -Session J: Sept 30th 10:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- FAIRmat proposed modifications on base classes are reviewed -- NIAC Accepted (8+3/0/0): the suggestions in NXenvironment, and provided guidelines for final implementation - -Session K: Sept 30th 13:30 UTC ------------------------------- - -list of main topics from the issues addressed: -- FAIRmat proposed modifications on base classes are reviewed -- NX_MATH -- NIAC Accepted (7+4/0/0): Instead of mathematical formula, one shall use forumla descriptions in NeXus. -- NIAC Accepted (7+3/0/abstain:1): the suggestions in NXinstrument, and provided guidelines for final implementation - -Session L: Sept 30th 16:00 UTC ------------------------------- - -list of main topics from the issues addressed: -- FAIRmat proposed modifications on base classes are reviewed -- NIAC Accepted (7+5/0/0): NXstress can be merged after fixes. -- Checked the constitution and how the lifecycle of definitions (Contributed, AppDef, BaseClasses) are regulated. Although the Constitution does not details, a section in the Manual describes that defnitions must go through a phase when the community has tested it and shall become part of the standard only afterwards. Both FAIRmat and NXstrass proposals are according to this rule. -- NIAC Accepted (7+4/0/abstain:1): NXmonochromator after fixing the units according to the new standard. -- NIAC Accepted (7+5/0/0) NXdistortion, NXregistration to become subclasses of NXprocess -- NIAC Accepted (7+4/0/0) NXroot with suggested modifications -- NIAC Accepted (7+4/0/0) NXsource with suggested modifications -- NIAC suggested not to change NXuser otherthan having identifier adde via subclassing. - diff --git a/content/NIACAPI.md b/content/NIACAPI.md deleted file mode 100644 index 38d4f234..00000000 --- a/content/NIACAPI.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: NIACAPI -permalink: NIACAPI.html -layout: wiki ---- - -NIAC Decisions regarding the NeXus API --------------------------------------- - -This section records decisions about the NeXus-API. - -NIAC 2003: New type NX\_BINARY with an attribute mime\_type for storing -a variety of binary data. - -NIAC 2003: New type NX\_BOOLEAN with value 0 (false) or one (true) - -NIAC 2003: The NeXus-API will be extended to support XML as a file -format. - -NIAC 2004: Develop NXopenpath - -NIAC 2007HMI: Pete Petersons C++ NeXus binding to be added to NeXus -source distribution - -NIAC 2007HMI: IDL binding added to NeXus source distribution - -NIAC 2007HMI: Mark the use of HDF-4 as deprecated, no new features for -HDF-4 - -NIAC 2012: Statements -- NAPI and applications are considered stable -- The use of NAPI is not mandatory and examples using HDF5 APIs will - be provided -- The validation tool is actively developed - - -2014 (not a NIAC decision): The NeXus-API is frozen. Maintenance is reduced to bug fixes. - diff --git a/content/NIACActionItems.md b/content/NIACActionItems.md deleted file mode 100644 index c6ac06e4..00000000 --- a/content/NIACActionItems.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: NIACActionItems -permalink: NIACActionItems.html -layout: wiki ---- - -Action Items for Definitions ----------------------------- - -### In Progress - -- [From NIAC 2006 - LBL](http://trac.nexusformat.org/definitions/query?status=new&status=assigned&status=reopened&group=owner&keywords=%7ENIAC2006LBL&order=priority) - -### Completed - -- [From NIAC 2006 - LBL](http://trac.nexusformat.org/definitions/query?status=closed&group=owner&keywords=%7ENIAC2006LBL&order=priority) - -Action Items for Code ---------------------- - -### In Progress - -- [From NIAC 2006 - LBL](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&group=owner&keywords=%7ENIAC2006LBL&order=priority) - -### Completed - -- [From NIAC 2006 - LBL](http://trac.nexusformat.org/code/query?status=closed&group=owner&keywords=%7ENIAC2006LBL&order=priority) - -Generic Action Items --------------------- - -### In Progress - -From [2006 LBL Meeting](pdfs/NIAC2006LBL_minutes.pdf "wikilink") - -- [Mark Könnecke](User%3AMark_Koennecke.html "wikilink") - to make a - picture of his geometry -- Unassigned - to put NXgenericScan text in manual -- [Paul Kienzle](User%3APaul_Kienzle.html "wikilink"), [Nick - Hauser](User%3Anick.html "wikilink"), and [Peter - Peterson](User%3APeter_Peterson.html "wikilink") - will look into making - an NSF proposal to request for money -- Unassigned - to find a solution to the linking problem for when you - need the source and target names to be different -- [Peter Peterson](User%3APeter_Peterson.html "wikilink") - to explain how - to change a definition -- [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") - some - definitions exist only on the WIKI, some are in source control - (Subversion); they should all be moved into Subversion. **STATUS:** - all base classes moved, input from other NIAC members required on - naming of instrument definitions before moving them. -- ALL - check old web site and report any - content that has not been moved to new WIKI server - -From [2006 ILL Meeting](pdfs/NIAC2006minutes.pdf "wikilink") - -- [Peter Peterson](User%3APeter_Peterson.html "wikilink") - Write down the - current responsibilities for the officers and circulate to the - committee for approval -- [Andrew Götz](User%3AAndy_Gotz.html "wikilink") - Write a report on NeXus - and submit to both the Neutron News and Synchrotron News -- Darren Kelly and [Raymond Osborn](User%3ARay_Osborn.html "wikilink") - - Existing definitions will be rendered in colored meta-DTD and table - formats. Results will be added to website -- Darren Kelly - Style sheets (XSLT) will be created to convert - definitions into colorized meta-DTD and table formats -- Unassigned - Modify/add base class definitions in accordance with - what was voted on in February. - -### Completed - -From [2007 HMI-Wannsee, Berlin Meeting](NIAC2007.html "wikilink") - -- Pete Jemian - Update website with constitution changes (some are - even from the last meeting) - -From [2006 LBL Meeting](pdfs/NIAC2006LBL_minutes.pdf "wikilink") - -- [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") - to move - NeXus code and definitions from CVS to Subversion -- [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") - to move - NeXus mailing lists from anl.gov to lists.nexusformat.org -- [Frederick Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") - to provide - a Mediawiki extension for rendering definitions held in Subversion - onto a Wiki page in a tabular format on the fly -- [Mark Könnecke](User%3AMark_Koennecke.html "wikilink") and [Raymond - Osborn](User%3ARay_Osborn.html "wikilink") - Shut down existing website - and mirror, leaving a redirection page to new site. \[The original - website at contains a redirect message, - but is still online so that NIAC members can check for content - missing on the wiki.\] -- [Peter Peterson](User%3APeter_Peterson.html "wikilink") - to write up the - versioning mechanism - -From [2006 ILL Meeting](pdfs/NIAC2006minutes.pdf "wikilink") - -- Unassigned - NXcharacterization needs to be formalized and - ratified - this has been repeated in - [\#11](http://trac.nexusformat.org/definitions/ticket/11) -- Unassigned - Synchronize the website definitions with those in cvs - (the website are considered more correct) - this is formalized as an - action item at the 2006 LBL meeting - diff --git a/content/NIACClasses.md b/content/NIACClasses.md deleted file mode 100644 index 13940af9..00000000 --- a/content/NIACClasses.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: NIACClasses -permalink: NIACClasses.html -layout: wiki ---- - -NIAC Decisions on NeXus Classes -------------------------------- - -This section records NIAC decisions on NeXus base classes and -application definitions. - -NIAC 2003: Instrument definitions and base classes will be fully self -describing - -NIAC 2003: Instrument definitions and base classes to go into CVS - -NIAC 2003: analysis item in NXentry to be replaced with definition - -NIAC 2003: NXroot will be defined as - - <NXroot file_name="{File name of original NeXus file}" - file_time="{Date and time of file creation}" - file_update_time="{Date and time of last file change at - close}" - NeXus_version="{Version of NeXus API used in writing the - file}" - HDF_version="?" - HDF5_version="?" - creator="{facility or program where file originated}?"> - <NXentry name="{entry name}">+</NXentry> - </NXroot> - -NIAC 2003: base classes and instrument definitions will not define bit -length for primitives. This means that NX\_UINT, NX\_INT or NX\_FLOAT -are all that are allowed for numerical items. - -NIAC 2003: The template for NXentry is - - <NXentry name="{Entry Name}"> - <title>{Extended title for entry}</title> - <definition version="{DTD version number}" URL="{URL of DTD - file}">{Name of entry DTD}</definition> - <start_time type="ISO8601">{Starting time of - measurement}</start_time> - <end_time type="ISO8601">{Ending time of - measurement}</end_time> - <duration type="NX_INT" units="seconds">{Duration of - measurement}</duration> - <experiment_identifier - type="NX_CHAR[]">{}</experiment_identifier> - <run_number type="NX_INT">{Number of run or scan stored in - this entry}</run_number> - <run_cycle type="NX_CHAR[]">{}</run_cycle> - <program_name version="{Program version number}">{Name of - program used to generate this file}</program_name> - <command_line>{Name of command line used to generate this - file}</command_line> - <notes>{Notes describing entry}</notes> - <NXuser name="{user}"></NXuser> - <NXsample name="{sample}"></NXsample> - <NXinstrument name="{Name of instrument}"></NXinstrument> - <NXmonitor name="{Name of monitor}"></NXmonitor> - <NXdata name="{Name of data block}"></NXdata> - </NXentry> - -NIAC 2003: NXinstrument template consists of at least the following -groups - - - {name of instrument} - - - - - - - - - - - - - - - - - -NIAC 2003: Each NXlog will contain information for one variable The -definition of a NXlog is - - - {longer description of what is logged} - - {array of logged value, such as temperature} - {array of raw information, such as voltage on a thermocouple}? - - -NIAC 2004: NXcharacterisations is removed from NXentry - -NIAC 2004: End-of-line in NXnote is cr - -NIAC 2005: describe links as NAPIlink in metaDTD - -NIAC 2005: Allow ? and \* in definitions to denote groups and fields -that are desirable but not necessary. - -NIAC 2006: TOF Raw definition ratified - -NIAC 2006: Add synchrotron changes to NXsource - -NIAC 2006: Add NXinsertion\_device - -NIAC 2006: Add NXbending\_magnet - -NIAC 2007: NXmonopowder ratified - -NIAC 2007: NXpositioner ratified - -NIAC 2007: NXmonitor ratified - -NIAC 2007: All classes ratified will be NeXus 2.0. - -NIAC 2007HMI: ratified NXcone definition (check where this one is) - -NIAC 2007HMI: replace run\_number with entry\_identifier in NXentry - -NIAC 2007HMI: ratified NXarchive - -NIAC 2007HMI: ratified NXdetector extensions for CCD cameras: 1. extend -type to include: ccd,pixel,image\_plate, cmos 2. add field data\_file 3. -add field flood 4. add field flood\_file 5. add field dark 6. add file -dark\_file 7. add field spatial\_distortion 8. add field -spatial\_distortion\_file - -NIAC 2010: NXcollection ratified - -NIAC 2010: tags scalar, image for datasets - -NIAC 2010: muon application definition ratified with some changes - -NIAC 2012: NXcharacterisation deprecated - -NIAC 2012: add some DECTRICS required fields to NXdetector - -NIAC 2014: NXmx, NXtransformations and variants ratified - -NIAC 2014: Ratified NXarpes, NXCite with addition of URL, -NXfresnel\_zone\_plate - -NIAC 2014: Add a default attribute at root and NXentry level to help in -finding default data to plot - -NIAC 2014: added decimated as a possible enum to acquisition\_mode in -NXdetector - -NIAC 2014: additional field nominal added to NXmonitor to keep the -nominal flux - -NIAC 2014: "rgbimage", "rgbaimage", "hslimage", "hslaimage", "cmykimage" -to be added to the interpretation attribute of datasets to encode 3d -datasets with colour as added dimension to the 2d image. diff --git a/content/NIACDesign.md b/content/NIACDesign.md deleted file mode 100644 index 8f3b1380..00000000 --- a/content/NIACDesign.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: NIACDesign -permalink: NIACDesign.html -layout: wiki ---- - -NIAC Decisions regarding NeXus Design Questions ------------------------------------------------ - -This section records NIAC decisions regarding the design of NeXus. With -design meaning all more general topics reagrding the layout of files, -how things are done in NeXus, general rules and such. - -### General Rules - -NIAC 2003: Recommendation: use nxs extension for files nut h5, hdf, xml -and others are prmitted - -NIAC 2003: Physical units will be stored in accordance with the udunits -utility. Dates and times will be specified in ISO8601 format. - -NIAC 2003: Positions will be stored as effective (physical) positions. -Motor offsets will be stored as attribute to the data. - -NIAC 2007: When a scan is stored, the scan variable sould be the slowest -varying variable. - -NIAC 2010: offset/stride mechanism for describing data not in C storage -order - -NIAC 2014: By default values are readback values. If a set value is -required, store it with the values name with \_set appended. - ------------------------------------------------------------------------- - -### Base classes and application definition general Rules - -NIAC 2003: Neither instrument definitions nor base classes will be -subclassed - -NIAC 2003: When NXdetector is included in a file, there will be a -one-to-one correspondence between NXdata and NXdetector. - -NIAC 2004: It is a violation of the NeXus standard to use NX in class -names or fields unless authorized by NIAC - -NIAC 2004: Keep a NIAC version number aligned with the cvs-ID in the the -header of each base class - -NIAC 2004: When linking, add a source attribute to the data item to -indicate where it is linked too. - -NIAC 2004: Allow dimension scales to have arbitary dimensions in order -to cope with non linear coordinate schemes - -NIAC 2005: Inheritance will be done in metaDTD only. This will be -annotated with a tag conforms\_to which contains a list of definitions -this definitions also conforms too. - -NIAC 2005: characterisation measurements are to referenced by linking in -another complete NXentry from another file through the external linking -mechanism. - -NIAC 2008: ratified NXprocess for processed data. File structure plus -associated groups and fields - -NIAC 2010: NXsubentry was agreed upon - -NIAC 2012: We allow application definitions to be flat and simple - -NIAC 2012: optional fields in application definitions endorsed. - -NIAC 2014: Optional fields in application definitions again ratified. - ------------------------------------------------------------------------- - -### Coordinate Systems - -NIAC 2003: A right handed coordinate system is designed with the -positive z-axis along the beam when facing downstream. - -NIAC 2003: If a simplifed position is needed the entries will be -polar\_angle, azimuthal\_angle and distance. - -NIAC 2004: Allow cylindrical and polar coordinates in NXtranslation - -NIAC 2004: every instrument component is to have a distance and -NXgeometry group. Comment in 2015: this was decided but never -implemented. - -NIAC 2007: axes follow McStas conventions. - -NIAC 2010: Added meridional\_angle axis - -NIAC 2012: accepted CIF style coordinate descriptions with depends\_on -fields and depends\_on, vector, transformation\_type etc attributes - -NIAC 2014: NXgeometry marked as deprecated. CIF style coordinate -descriptions are the preferred method. - ------------------------------------------------------------------------- - -### Errors - -NIAC 2004: Errors to a dataset will be named dataset\_error. -Alterntaively, the dataset can have an attribute, error\_formula, which -specifies how the error is calulated. - -NIAC 2010: Add an uncertainties attribute to any numeric array to -describe errors - ------------------------------------------------------------------------- - -### Axes - -NIAC 2003: Two axes schemes: via the axes attribute on the data and via -the axis=n and primary=n on the dimension scales - -NIAC 2003: Histograms can be specified either by having an extra element -in the dimension scale or by a histogram\_offset attribute on the -dimension scale - -NIAC 2012: Move axes and signal attribute as attributes of the enclosing -group - -NIAC 2014: Accepted axes and {axis}\_indices group attributes for the -description of axes in NXdata and other groups. diff --git a/content/NIACOrg.md b/content/NIACOrg.md deleted file mode 100644 index d957c9a9..00000000 --- a/content/NIACOrg.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: NIACOrg -permalink: NIACOrg.html -layout: wiki ---- - -NIAC Organsisation ------------------- - -This section collects decisions on the organisation of NIAC. - -NIAC 2003: Ratified Terms of reference NIAC 2003: Approved method for -ratifying new NeXus classes - -NIAC 2004: Created the position of NeXus Techical Chair to oversee the -NeXus-API and utilities - -NIAC 2004: Process to construct instrument definitions by instrument -editors: 1. Provide a schematic of the instrument 2. Write a brief -outline of the purpose of the instrument. List DA/DR reduction packages -for this instrument. Also list the information required for DA/DR -including calibration data. 3. Ask DA/DR package maintainers for -variables which should be in the file 4. Send the document to NIAC which -will someone to create a XML description 5. Write a sample NeXus file 6. -Test the file, repeating 4,5 for a number of times 7. Request -ratification after testing - -NIAC 2004: appoint editors for various types of instruments - -NIAC 2006: The constitution will be changed to include the technical -committee chair in the list of officers to be renewed at each annual -meeting - -NIAC 2006: The constitution will be changed to provide for a three year -term limit for the position of chair and executive secretary. - -NIAC 2007: NeXus to collaborate with imgCIF - -NIAC 2007HMI: Created a Definition Release Manager role - -NIAC 2008: change in meeting organisation: full NIAC meetings in NIAC -years, code camps and email votes in between - -NIAC 2010: term for all officers chnaged from 1 to 2 years, -corresponding to the frequency of NIAC meetings. - -NIAC 2012: NeXus guiding statements: - -- The main focus of the NeXus community is to further develop the - dictionaries, base classes and application definitions. -- The NIAC is a forum for resolving issues. -- The NIAC acts as a custodian for NeXus: definitions, examples, - documentation, reference implementations. -- HDF5 is the preferred physical file format. -- NeXus-XML is the currently supported ASCII file format. - -NIAC 2012 commitments - -- We seek cooperation with IUCr and CIF -- Have a meeting with them to figure out what this means -- Maybe have another NIAC next year to agree on this (in conjunction - with ECM) -- MK volunteers to take a lead \* We encourage the inclusion of NeXus - into CBFlib -- We invest into cleaning up NeXus, remove outdated, old or broken - stuff -- We invest into documenting NeXus better through bringing inheritance - or composition to NeXus base classes - -NIAC 2012: work as closely with PX and DECTRIS to get the EIGER detector -into NeXus - -NIAC 2012: Changes to base classes must be checked by Tech committe and -put for a vote. - -NIAC 2012: Terms length for officers to be 2 years. Executive officers -can have only two terms. - -NIAC 2014: Change constitution to agree with current terms (application -definitions and base classes) - -NIAC 2014: Remove procedures section from the constitution since it was -not used. - -NIAC 2014: Roberts Rule to be followed for setting the agenda diff --git a/content/NIACdoc.md b/content/NIACdoc.md deleted file mode 100644 index 9b1320da..00000000 --- a/content/NIACdoc.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: NIACdoc -permalink: NIACdoc.html -layout: wiki ---- - -NIAC Decisions regarding Documentation --------------------------------------- - -This section records NIAC decisions on the topic of NeXus documentation, -WWW-site and such. - -NIAC 2003: Until an appropriate format can be determined, instrument -definitions and base classes will be stored in metaDTD format. - -NIAC 2004: Decision to use NeXus meta-DTD instead of XML schema for base -classes and instrument definitions - -NIAC 2005: The documenation will consist of five documents: 1. Technical -Reference - describes the metaDTD, base classes and definitions 2. NeXus -API Reference 3. User Reference 4. Plan to testing and releasing the -NeXus API 5. Example files and code - -NIAC 2006: Move the entrire NeXus WWW-site to MediaWiki - -NIAC 2006: move to nexusformat.org and a new WWW-service, abandon -european NeXus mirror at lns00.psi.ch and original site at Argonne. - -NIAC 2007: Separate repository for base classes and definitions - -NIAC 2007: Move to subversion from CVS - -NIAC 2007: Move NeXus mailing lists from anl.gov to -lists.nexusformat.org - -NIAC 2007HMI: Redirect WWW-server to nexusformat.org - -NIAC 2007HMI: Move metaDTD to schema: NeXus 3.0 will be schema based - -NIAC 2008: move to application rather then instrument definitions - -NIAC 2008: docbook as the primary format for the NeXus manual. -Everything else to be generated from this master - -NIAC 2008: wiki to be kept as discussion forum - -NIAC 2008??: somewhere after NIAC 2008 the decision was taken to move to -NXDL and nxvalidate. - -NIAC 2010: Documentation to go under the GNU FDL, example code under the -LGPL licence - -NIAC 2012??: obviously we decided in some stage to provide the -documentation in Restructured Text and use sphinx for generating -documents. This, however, I either missed or was not properly recorded. diff --git a/content/NXaperture_and_Slits.md b/content/NXaperture_and_Slits.md deleted file mode 100644 index fce16da0..00000000 --- a/content/NXaperture_and_Slits.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: NXaperture and Slits -permalink: NXaperture_and_Slits.html -layout: wiki ---- - -The actual *NXaperture* base class is far t0o complex for most of the -apertures used at synchrotron facilities. Currently the most commonly -used aperture types are - -- pinholes -- 2 or 4 blade slits. - -From the current implementation of *NXaperture* it would be rather -difficult to obtain relevant quantities like the size of the slit gap or -the offsets of the gap. There are basically two ways how to face this -problem - -- redesign *NXaperture* -- or introduce new classes for more specific aperture types. - -Which of them is appropriate for us should be the topic of this -discussion. - -Introducing new classes ------------------------ - -#### Pinholes - *NXpinhole* - -![c|A pinhold in the -beam.](pinhole_2.png "fig:c|A pinhold in the beam.") Pinholes are most -probably the simplest apertures available. The only parameter of -importance is the diameter of the pinhole and its position with respect -to the beam (as shown in the image). From this sketch one could easily -deduce a new class *NXpinhole* with the following parameters: - - NXpinhole - diameter:NX_LENGTH - depends_on:NX_CHAR - -The first parameter *diameter* describes the diameter of the pinhole -while the depends\_on references the last element of the chain of -transformations to position the center of the pinhole. - -#### Slits - *NXslit* - -![A four-blade slit system.](slit.png "fig:A four-blade slit system.") -Two or four blade slits are the most common apertures used at -synchrotrons. In this example a 4-blade slit is shown. The most -important parameter for such a system is the size of the aperture -determined by the positions of the blades. A base class *NXslit* could -look like this - - NXslit - x_gap:NX_LENGTH - y_gap:NX_LENGTH - depends_on:NX_CHAR - -The gaps are given in the local reference frame of the slit system, -which is defined by the transformation chain referenced by the -*depends\_on* field. The *depends\_on* places the center of the slit -assembly into the coordinate system. *NXslit* basically describes a -rectangular aperture. The positions of the individual slit blades are -not included in the definition of the base class. - -#### What happens to *NXaperture* - -The original *NXaperture* remains unchanged (for the sake of -compatibility) and can still be used for all kind of more complex -apertures which cannot be represented by the the new classes. diff --git a/content/NXbrowse.f90.md b/content/NXbrowse.f90.md deleted file mode 100644 index fda30146..00000000 --- a/content/NXbrowse.f90.md +++ /dev/null @@ -1,415 +0,0 @@ ---- -title: NXbrowse.f90 -permalink: NXbrowse.f90.html -layout: wiki ---- - - !------------------------------------------------------------------------------ - ! NeXus - Neutron & X-ray Common Data Format - ! - ! Fortran 90 Browser - ! - ! Copyright (C) 1999, Ray Osborn - ! - ! This library is free software; you can redistribute it and/or - ! modify it under the terms of the GNU Lesser General Public - ! License as published by the Free Software Foundation; either - ! version 2 of the License, or (at your option) any later version. - ! - ! This library is distributed in the hope that it will be useful, - ! but WITHOUT ANY WARRANTY; without even the implied warranty of - ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - ! Lesser General Public License for more details. - ! - ! You should have received a copy of the GNU Lesser General Public - ! License along with this library; if not, write to the Free Software - ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - ! - ! Contact : R. Osborn - ! Materials Science Division - ! Argonne National Laboratory - ! Argonne, IL 60439-4845 - ! USA - ! - ! For further information, see - ! - !$Id: NXbrowse.f90,v 1.6 1999/11/24 16:30:12 nexus Exp $ - !------------------------------------------------------------------------------ - - program NXbrowse - - use NXUmodule - character(len=80) :: file_name, input_text, path - type(NXhandle) :: file_id - character(len=NX_MAXNAMELEN), allocatable :: name(:), class(:) - character(len=NX_MAXNAMELEN) :: group_name, group_class, data_name, attr_name - integer :: status, n, i, NXrank, NXtype, NXdims(NX_MAXRANK) - logical :: single_element - character(len=255) :: char_value - integer(kind=NXi4) :: int_value - integer(kind=NXi4), pointer :: int_array(:), int_2Darray(:,:), int_3Darray(:,:,:) - real(kind=NXr4) :: real_value - real(kind=NXr4), pointer :: real_array(:), real_2Darray(:,:), real_3Darray(:,:,:) - real(kind=NXr8) :: dble_value - real(kind=NXr8), pointer :: dble_array(:), dble_2Darray(:,:), dble_3Darray(:,:,:) - - write (unit=*, fmt="(a)", advance="no") " Give name of NeXus file : " - read *, file_name - !Open input file and output global attributes - if (NXopen (trim(file_name), NXACC_READ, file_id) /= NX_OK) then - call NXerror ("Can't open "//trim(file_name)) - stop - end if - do - status = NXgetnextattr (file_id, attr_name, n, NXtype) - if (status /= NX_OK) exit - !Output attribute information according to type - select case (NXtype) - case (NX_CHAR) - if (NXgetattr (file_id, attr_name, char_value) /= NX_OK) cycle - print *, " "//trim(attr_name)//" = "//trim(char_value) - char_value = " " - case (NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) - if (NXgetattr (file_id, attr_name, int_value) == NX_OK) then - print *, " "//trim(attr_name)//" = ",int_value - end if - case (NX_FLOAT32) - if (NXgetattr (file_id, attr_name, real_value) == NX_OK) then - print *, " "//trim(attr_name)//" = ",real_value - end if - case (NX_FLOAT64) - if (NXgetattr (file_id, attr_name, dble_value) == NX_OK) then - print *, " "//trim(attr_name)//" = ",dble_value - end if - end select - end do - !Input commands until the EXIT command is given - path = "NX" - do - write (unit=*, fmt="(a)", advance="no") " "//trim(path)//"> " - read "(a)", input_text - select case (command(input_text)) - !Command is to print a directory of the current group - case ("DIR") - if (NXgetgroupinfo (file_id, n) /= NX_OK) cycle - allocate (name(n), class(n)) - status = NXgroupdir (file_id, n, name, class) - if (status == NX_OK) then - do i = 1,n - if (class(i)(1:2) == "NX") then - print *, " NX Group : "//trim(name(i))//" ("//trim(class(i))//")" - else if (class(i)(1:3) == "SDS") then - print *, " NX Data : "//trim(name(i)) - end if - end do - end if - deallocate (name, class) - !Command is to open the specified group - case ("OPEN") - input_text = adjustl(input_text(5:len_trim(input_text))) - read (input_text(1:index(input_text," ")), fmt="(a)") group_name - if (NXUfindgroup (file_id, group_name, group_class) == NX_EOD) then - call NXerror (trim(group_name)//" does not exist") - cycle - end if - if (NXopengroup (file_id, group_name, group_class) /= NX_OK) cycle - !Add the group to the prompt string - path = trim(path)//"/"//trim(group_name) - !Command is to print the values of the data - !1) if the array index is specified, a single element is output - !2) if no index is given, the minimum and maximum values of the array are output - case ("READ") - input_text = adjustl(input_text(5:len_trim(input_text))) - !Check for evidence that an individual element has been specified - if (index(input_text,"(") == 0) then - read (input_text(1:index(input_text," ")), fmt="(a)") data_name - single_element = .false. - else - read (input_text(1:index(input_text,"(")-1), fmt="(a)") data_name - single_element = .true. - end if - !Check the specified data item exists - if (NXUfinddata (file_id, data_name) == NX_EOD) then - call NXerror (trim(data_name)//" does not exist") - cycle - end if - !Open the data and obtain its type and rank details - if (NXopendata (file_id, data_name) /= NX_OK) cycle - if (NXgetinfo (file_id, NXrank, NXdims, NXtype) /= NX_OK) cycle - if (single_element) then - input_text = input_text(index(input_text,"(")+1:index(input_text,")")-1) - if (dimcount(input_text) /= NXrank) then - call NXerror ("Invalid array index") - cycle - end if - read (input_text, fmt=*) NXdims(1:NXrank) - end if - !Output data according to data type - select case (NXtype) - case (NX_CHAR) - if (NXUreaddata (file_id, data_name, char_value) /= NX_OK) cycle - print *, " "//trim(data_name)//" ["//trim(NXdatatype(NXtype))//"] = "//trim(char_value) - char_value = " " - case (NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) - !Output data according to rank - select case (NXrank) - case (1) - if (single_element) then - if (NXUreaddata (file_id, data_name, int_array, data_start=NXdims, data_size=(/1/)) == NX_OK) then - print *, " "//trim(data_name)//"("//trim(input_text)//") ["//trim(NXdatatype(NXtype))& - //"] = ", int_array(1) - end if - else - if (NXUreaddata (file_id, data_name, int_array) == NX_OK) then - if (size(int_array) > 1) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(int_array), " to ", maxval(int_array) - else - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", int_array - end if - end if - end if - deallocate (int_array, stat = status) - case (2) - if (single_element) then - if (NXUreaddata (file_id, data_name, int_2Darray, data_start=NXdims, data_size=(/1,1/)) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", int_2Darray(1,1) - end if - else - if (NXUreaddata (file_id, data_name, int_2Darray) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(int_2Darray), " to ", maxval(int_2Darray) - end if - end if - deallocate (int_2Darray, stat = status) - case (3) - if (single_element) then - if (NXUreaddata (file_id, data_name, int_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", int_3Darray(1,1,1) - end if - else - if (NXUreaddata (file_id, data_name, int_3Darray) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(int_3Darray), " to ", maxval(int_3Darray) - end if - end if - deallocate (int_3Darray, stat = status) - end select - case (NX_FLOAT32) - !Output data according to rank - select case (NXrank) - case (1) - if (single_element) then - if (NXUreaddata (file_id, data_name, real_array, data_start=NXdims, data_size=(/1/)) == NX_OK) then - print *, " "//trim(data_name)//"("//trim(input_text)//") ["//trim(NXdatatype(NXtype))& - //"] = ", real_array(1) - end if - else - if (NXUreaddata (file_id, data_name, real_array) == NX_OK) then - if (size(real_array) > 1) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(real_array), " to ", maxval(real_array) - else - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", real_array - end if - end if - end if - deallocate (real_array, stat = status) - case (2) - if (single_element) then - if (NXUreaddata (file_id, data_name, real_2Darray, data_start=NXdims, data_size=(/1,1/)) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", real_2Darray(1,1) - end if - else - if (NXUreaddata (file_id, data_name, real_2Darray) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(real_2Darray), " to ", maxval(real_2Darray) - end if - end if - deallocate (real_2Darray, stat = status) - case (3) - if (single_element) then - if (NXUreaddata (file_id, data_name, real_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", real_3Darray(1,1,1) - end if - else - if (NXUreaddata (file_id, data_name, real_3Darray) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(real_3Darray), " to ", maxval(real_3Darray) - end if - end if - deallocate (real_3Darray, stat = status) - end select - case (NX_FLOAT64) - !Output data according to rank - select case (NXrank) - case (1) - if (single_element) then - if (NXUreaddata (file_id, data_name, dble_array, data_start=NXdims, data_size=(/1/)) == NX_OK) then - print *, " "//trim(data_name)//"("//trim(input_text)//") ["//trim(NXdatatype(NXtype))& - //"] = ", dble_array(1) - end if - else - if (NXUreaddata (file_id, data_name, dble_array) == NX_OK) then - if (size(dble_array) > 1) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(dble_array), " to ", maxval(dble_array) - else - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", dble_array - end if - end if - end if - deallocate (dble_array, stat = status) - case (2) - if (single_element) then - if (NXUreaddata (file_id, data_name, dble_2Darray, data_start=NXdims, data_size=(/1,1/)) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", dble_2Darray(1,1) - end if - else - if (NXUreaddata (file_id, data_name, dble_2Darray) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(dble_2Darray), " to ", maxval(dble_2Darray) - end if - end if - deallocate (dble_2Darray, stat = status) - case (3) - if (single_element) then - if (NXUreaddata (file_id, data_name, dble_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", dble_3Darray(1,1,1) - end if - else - if (NXUreaddata (file_id, data_name, dble_3Darray) == NX_OK) then - print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& - //"] = ", minval(dble_3Darray), " to ", maxval(dble_3Darray) - end if - end if - deallocate (dble_3Darray, stat = status) - end select - end select - if (single_element) cycle - !Check for attributes - do - status = NXgetnextattr (file_id, attr_name, n, NXtype) - if (status /= NX_OK) exit - !Output attribute information according to type - select case (NXtype) - case (NX_CHAR) - if (NXgetattr (file_id, attr_name, char_value) /= NX_OK) cycle - print *, " "//trim(attr_name)//" = "//trim(char_value) - char_value = " " - case (NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) - if (NXgetattr (file_id, attr_name, int_value) == NX_OK) then - print *, " "//trim(attr_name)//" = ",int_value - end if - case (NX_FLOAT32) - if (NXgetattr (file_id, attr_name, real_value) == NX_OK) then - print *, " "//trim(attr_name)//" = ",real_value - end if - case (NX_FLOAT64) - if (NXgetattr (file_id, attr_name, dble_value) == NX_OK) then - print *, " "//trim(attr_name)//" = ",dble_value - end if - end select - end do - !Command is to close the current group - case ("CLOSE") - if (NXclosegroup (file_id) /= NX_OK) cycle - !Remove the group from the prompt string - path = path(1:(index(path,"/",back=.true.)-1)) - !Command is to print help information - case ("HELP") - print *, "NXbrowse commands : DIR" - print *, " OPEN " - print *, " READ " - print *, " CLOSE" - print *, " HELP" - print *, " EXIT" - !Command is to exit the program - case ("EXIT","QUIT") - exit - end select - end do - status = NXclose (file_id) - - contains - - !Returns the first word of input text in upper case - function command (input_text) result (output_text) - - character(len=*), intent(in) :: input_text - character(len=80) :: output_text - integer :: i, letter - - output_text = " " - do i = 1,len_trim(adjustl(input_text)) - if (input_text(i:i) == " ") exit - letter = ichar(input_text(i:i)) - if (letter >= 97 .and. letter <= 122) letter = letter - 32 - output_text(i:i) = char(letter) - end do - - end function command - - !Outputs the specified dimensions as a formatted string - function dimstring (rank, dims) result (string) - - integer, intent(in) :: rank, dims(:) - character(len=50) :: string - character(len=10) :: buffer - integer :: i - - if (rank == 1 .and. dims(1) == 1) then - string = " " - else - string = "(" - do i = 1,rank - write (buffer, fmt="(i10)") dims(i) - string = trim(string)//trim(adjustl(buffer))//"," - end do - string(len_trim(string):len_trim(string)) = ")" - end if - - end function dimstring - - !Outputs the number of dimensions specified in an input string - function dimcount (string) result (rank) - - character(len=50), intent(in) :: string - integer :: rank - integer :: i - logical :: number_found - - if (verify(trim(string)," 0123456789,") /= 0) then - rank = 0 - else - i = 1 - rank = 1 - number_found = .false. - do - if (verify(string(i:i),"0123456789") == 0) then - number_found = .true. - else if (number_found .and. string(i:i) == ",") then - rank = rank + 1 - number_found = .false. - else - rank = 0 - exit - end if - i = i + 1 - if (i > len_trim(string)) exit - end do - if (.not. number_found) rank = 0 - end if - - end function dimcount - - end program NXbrowse diff --git a/content/NXbrowse.md b/content/NXbrowse.md deleted file mode 100644 index 86792924..00000000 --- a/content/NXbrowse.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: NXbrowse -permalink: NXbrowse.html -layout: wiki ---- - -NXbrowse is a terminal browser that provides a simple command-line -interface to view the contents of NeXus files. Datasets within the NeXus -file can be dumped to an ASCII file. - -If you have any questions/comments/bug reports email [Ray -Osborn](mailto:ROsborn@anl.gov). - -Usage ------ - -A simple terminal browser written in ISO C (replacing the earlier -version in Fortran 90). When compiled and linked with the NeXus API, it -can be run interactively to list the directories of each group within a -NeXus file. If used from a terminal (and installed in the default PATH -\[u\*\*x\] or defined as a symbol \[VMS\]), type - - nxbrowse - -If no file name is given, the user is prompted for the file to be -opened. NXbrowse then lists the global attributes and prompts for -further commands. The following commands may be given in upper or lower -case (although the group and data names are case sensitive) : - - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Command

Command Definition

dir

List the contents of the currently open group.

open

Open the specified group.

read <data[i,j,...]>

Read the contents of the specified data set. If no array indices are specified, the first three elements of the data set are output along with all its attributes. If an array index is specified, only that element is output. Note that the order of the array indices follows the C-convention (the last index is the most-rapidly varying).

dump

Write the entire contents of the specified data set to the specified ASCII file.

byteaschar

Toggle the output format for NX_INT8 and NX_UINT8 variables. By default, they are output as integers, but after giving this command, they are printed as character strings.

close

Close the currently open group. At the root level of the NeXus file, this command is ignored.

exit, quit

Exit the program.

help

List the available commands.

- -Installation ------------- - -NXbrowse is now installed as part of the standard NeXus installation. -See the [NeXus Downloads -section](Application_Program_Interface#Downloads.html "wikilink") for more -details. - -If you encounter any bugs, please report them using the [NeXus -bugzilla](Application_Program_Interface#Reporting_Bugs_in_the_NeXus_API.html "wikilink"). diff --git a/content/NXdetector_2012_10.md b/content/NXdetector_2012_10.md deleted file mode 100644 index 17347947..00000000 --- a/content/NXdetector_2012_10.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: NXdetector 2012 10 -permalink: NXdetector_2012_10.html -layout: wiki ---- - -This is from an discussion about additions/modifications to NXdetector -to help Dectris as it decides to write raw image data into HDF5/NeXus -format. - -on 2012-11-07, Mark Koennecke wrote ------------------------------------ - - Hi, - - at the last teleconference we agreed that I do a summary of the state and - options on the DECTRIS/detector_element issue. Well, this is it. - - In the meantime the information came in that DECTRIS is joining the two - planned workshops with a date in mid-january. Thus I assume we have a little - more time to sort this out. - - First the more political part: [...omitted...] - - Now the more technical part: let us start with a description of the problem: - - The EIGER (and other) detector is composed of multiple modules. All is fine - as long as these modules are arranged on a regular grid in order to form one - joint image. This can be easily stored in one NXdetector group. A mask stored - with the data gives information which pixels are valied and which are boundaries. - - The problem starts when the individual modules are arranged in an irregular - arrangement: for example on a half sphere. Then there are two requirements: - - The user still wants to see an image merged from the individual modules - in order to quickly get an overview of the data. This requirement is best - fulfilled by keeping the data in one fat array. - - For proper data analysis, more information on each individual module is - needed. This is: - - * The position of the module within the pixel array, offset and size - * The physical position and orientation of the module with respect to - the detector as a whole - - In order to handle this, there are several propositions. - - - Use NXgeometry - ================ - - NXdetector - module01,NXgeometry - NXtranslation - NXorientation - - module02,NXgeometry - NXtranslation - NXorientation - - ..... - This option is missing the index information. I am not sure if we want - to add that to NXgeometry. I am also not sure if we still wish to - advocate the use of NXgeometry. IMHO, the CIF mapping is better and - NXgeometry may be deprecated soon.. But is not yet.... - - - NXdetector_element - ====================== - - The second option would be a new group: NXdetector_element looking like - this: - - NXdetector - distance - module01,NXdetector_element - x[nx] - @transformation_type=translation - @offset=x,y,z - @vector= ... - depends_on=/entry/instrument/detector/distance - y[ny] - @transformation_type=translation - @offset=0,0,0 - @vector=.... - depends_on=x - pixel_offset[2]=x,y - - The x any y arrays describe the pixels of the module. This is wasting - space as it is for example for x: x[0]=0*pixelsize, x[1] = 1*pixelsize,... - The offset and vector attributes the position and orientation in space. - The start indices go into the pixel_offset - - - Tobias Suggestion - ===================== - - A variant based on the way CIF handles the same problem - - detector:NXdetector - data[j,k,l] = [....] - detector_arm[1] = [250] - @transformation=translation - @vector={1,0,0} - @units=cm - @depends_on=/entry/instrument/something/brick - depends_on=detector_arm - module:NXdetector_module - data_origin[2] = [l,m] - data_size[2] = [n,o] - module_offset[1] = [250] - @transformation=translation - @vector={0,1,1} - @units=mm - @depends_on="../detector_arm" - fast_pixel_direction[1] = [0.172] - @transformation=translation - @vector={1,0,0} - @units=mm - @depends_on="module_offset" - slow_pixel_direction[1] = [0.172] - @transformation=translation - @vector={0,1,0} - @units=mm - @depends_on="module_offset" - module:NXdetector_module - .... - - This uses less space. - - - SNS Usage - ============== - - SNS had a similar problem and has resolved the issue by storing each detector - module in a separate NXdetector group. This works perfectly and would require - no change on our side. However, this would mean that DECTRIS would need to - change their data writing for this case. And vieweing the total image cannot be - done easily anymore without a reconstruction in SW or a duplication of data. - - This looks like: - - module01,NXdetector - data[NP,i,j] - distance - ...... - module02,NXdetector - data[NP,ij] - distance... - .... - - - The General Case - ==================== - - What also works is the existing facility in NeXus to describe each - pixel individually. Any pixel gets an ID and there are arrays for - distance, coordinates etc which are nPixel long. With nPixel being - the total number of pixels. But this would again destroy the image. - - This looks like: - - detector,NXdetector - data[NP,nPixel] - distance[nPixel] - x_pixel_offset[nPixel] - y_pixel_offset[nPixel] - .... - - Of course they may be many more options. But I hope these are enough - to find a solution - - - Best Regards, - - Mark Koennecke diff --git a/content/NXdetector_documentation.md b/content/NXdetector_documentation.md deleted file mode 100644 index 233a2c02..00000000 --- a/content/NXdetector_documentation.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: NXdetector documentation -permalink: NXdetector_documentation.html -layout: wiki ---- - -There are some flaws in the documentation of NXdetector which we need -fix - -| | NXdetector field | | comment | -|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| distance | The distance field still requires documentation | -| polar\_angle | I guess here we have a collision with the definition for the canonical 'polar\_angle' in the user manual. Despite this, the reference manual still mentions that this field requires documentation. | -| azimuthal\_angle | Same as for polar\_angle (collision with definition of canonical rotations as well as missing documentation) | -| dead\_time | which dead time. What does term refer to? | -| count\_time | what do we mean with count time. Is this the time the each pixel was exposed to radiation (or particles)? | -| acquisition\_mode | this is somehow confusing: what is the difference between 'gated' and 'triggered'? Is 'event' not simply gated/triggered by an event? Why does this have its own mode? | -| angular\_calibration | we should definitely provide a formula here which explains how to use this numbers? Is a single number per pixel really enough? | -| countrate\_correction\_\_applied | are the two underscores a typo or have they been used intentionally? What exactly does this mean? Is this something we have introduced for DECTRIS? | -| frame\_time | here we should replace the term 'exposure\_time' with 'count\_time' to avoid confusion | -| gain\_setting | I guess this is something we made for DECTRIS | - -In order to make things easier we should somehow agree on a coherent -naming scheme for time values (maybe provide some timing diagram). - -Update 01/2015 --------------- - -The fields listed here have proper documentation now. INHO, this really -did not belong here but should rather have been an issue on github. But -may be it did not get enough love there..... diff --git a/content/NXdir.md b/content/NXdir.md deleted file mode 100644 index 00682b5a..00000000 --- a/content/NXdir.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: NXdir -permalink: NXdir.html -layout: wiki ---- - -NXdir is a console based tool that allows inspecting the contents of a -NeXusfile. It allows for directory like listing of contents as well as -printing out data. - -If you have any questions/comments/bug reports email Peter Peterson -<petersonpf@ornl.gov> - -News ----- - -May 7, 2004:New version of NXdir is v0.2.5. This version now supports NX\_INT8 and NX\_UINT8 as well as fixes some bugs with reading integers from a nexus file. -Apr 15, 2004:New version of NXdir is v0.2.4. The added feature is writing out an NXdata to file (1D and 2D only for now). Let me know if the format should be changed. -Mar 17, 2004:New version of NXdir is v0.2.3. This version provides more consistency between abolsute and relative paths. It also allows for anchoring the path at both ends using a “/”. -Mar 01, 2004:First public release of NXdir is v0.2.2 with linux binary here. - -Usage ------ - -NXdir runs on the command line with a variety of arguments. Below is the -online help information (note that defaults can be changed during -compilation). - -| About NXdir | -|--------------------------| -| -h|--help | -| --version | -| Node Selection | -| -p | -| Output Control | -| -o/+o | -| -l|--max-array \[value\] | -| -t|--tree-mode | -| --path-mode | -| --data-mode | -| --printline | -| --write-data | - -Some common usages are: - -- Print the online help: - nxdir --help - -- List the everything at the root level of the file: - nxdir lrcs3000.nxs - -- Find the user names in all of the files in the directory: - nxdir *.nxs -p NXuser/name -o - -- Find all the data in a file: - nxdir NPDF_E2_R0003000.nx.hdf -p NXdata - -- Print out how the entire file is organized - nxdir trics058582002.hdf -p "*" - - (The asterix is in quotes so it is not expanded by the shell) - -Downloads ---------- - -- [NXdir-v0.2.5.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- [NXdir-v0.2.4.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- [NXdir-v0.2.3.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- [NXdir-v0.2.2.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- [CHANGES](ftp://ftp.neutron.anl.gov/nexus/NXdir/CHANGES) - -Prerequisites -------------- - -- C++ compiler -- NeXus libraries - -or - -- Precompiled binary - -Installation ------------- - -Binary:Some binaries can be found above. Download, rename to something you will remember (like nxdir) and move into your path. -Unix/Linux/Irix/MacOSX:Unpack the tarball, enter the directory and type make. Copy the resulting binary nxdir into your path. - -Un-installing -------------- - -Remove the file `nxdir`. - -The installation process did not modify the registry or other system -settings in any way. - -Frequently Asked Questions (FAQ) --------------------------------- - -What is NXdir?:NXdir is a console tool used for inspection the contents of a NeXus file, it can print out the organization of the file as well as any data enclosed. It is intended to be a cross between the unix tools ls and grep. It should help people writing scripts access to NeXus files without having to compile in the NeXus API. -The way NXdir prints arrays is hard to read, could you please change it?:No, but a format easier for you to read can be added. Please send an example of a two dimensional array in a format you like. diff --git a/content/NXgeometry_and_NXshape_-_documentation_and_review.md b/content/NXgeometry_and_NXshape_-_documentation_and_review.md deleted file mode 100644 index 7c3e34e6..00000000 --- a/content/NXgeometry_and_NXshape_-_documentation_and_review.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: NXgeometry and NXshape - documentation and review -permalink: NXgeometry_and_NXshape_-_documentation_and_review.html -layout: wiki ---- - -NXgeometry ----------- - -![ upright | frame | right | c | UML diagramm of the relations between -the different geometry related base classes. -](Nxgeometry_uml.png "fig: upright | frame | right | c | UML diagramm of the relations between the different geometry related base classes. ") -Geometries in Nexus are described using the -*[NXgeometry](https://manual.nexusformat.org/classes/base_classes/NXgeometry.html)* -base class. As shown in the UML diagramm on the right side this class -consists basically of three other base classes (composition): *NXshape*, -*NXtranslation*, and *NXorientation*. As far as I understand the -*NXgeometry* class it describes a single shape (geometric object). This -fact makes the dimensionality of several attributes of the the other -classes a bit odd (see below). However, aside from this *NXgeometry* is -quite ok. - -Note: the NeXus User Guide describes the coordinate system here: - -- - -NXtranslation -------------- - -*[NXtranslation](https://manual.nexusformat.org/classes/base_classes/NXtranslation.html)* -has an attribute *distances* of shape `[numobj,3]`. If, as stated above, -*NXgeometry* seems to describe only a single shape the first dimension -has no meaning. A dimensionality of `[3]` would be enough for this -field. - -NXorientation -------------- - -*[NXorientation](https://manual.nexusformat.org/classes/base_classes/NXorientation.html)* -has an attribute *value* of shape `[numobj,6]`. If, as stated above, -*NXgeometry* seems to describe only a single shape the first dimension -has no meaning. A dimensionality of `[6]` would be enough for this -field. - -NXshape -------- - -*[NXshape](https://manual.nexusformat.org/classes/base_classes/NXshape.html)* - -This is where all the problems start. In fact there are three issues -with this class: - -1. as for *NXtranslation* and *NXorientation* the first dimension of - the *size* attribute (`numobj`) has no meaning -2. what is the attribute *direction* good for (its values *convex* and - *concave* are not defined) -3. last but not least: the shapes are not defined well (this is the - major issue) - -The last problem will be discussed in more detail in the following -sections. - -### Definition of geometric primitives - -Every geometric primitive requires a local coordinate frame. All -translations applied on a primitive will act on the origin of this local -frame. Additionally, the origin of this frame of reference will act as a -center for all rotations applied on the primitive. Unfortunately, the 9 -geometric primitives currently available in Nexus are not defined in -such a sense. The following sections provide some possible definitions -of these primitives along with the layout of their parameters stored in -the *size* attribute of *NXshape*. - - | Shape and coordinate frame for an *nxflat* - | An *nxcylinder* in its local frame - | An *nxbox* in its local frame - -#### nxflat - -*nxflag* can be considered as a flat plane. The plane defines the -x-y-plane of its local coordinate frame. The z-axis of this system is -oriented so that the resulting reference frame is a right-handed one. -The shape has two parameters: its *height* and *width* which will be -stored in the *size* attribute of *NXshape* as follows - -`NXshape::size[2]={width,height}` - -#### nxcylinder - -The origin of the local coordinate frame for *nxcylinder* is in the -center of its bottom. An *nxcylinder* has 5 parameters: radius, height, -and the three components of the direction vector v (see the figure -above). These parameters are stored in the *size*attribute of *NXshape* -as follows - -`NXshape::size[5] = {radius,height,vx,vy,vz}` - -v is here simply a unit vector pointing in the direction of the main -axis of the cylinder. - -#### nxbox - -`NXshape::size[3] = {length,width,height}` - - | Shape and coordinate frame for an *nxsphere* - | Shape and coordinate frame for an *nxsphere* - | Shape and coordinate frame for an -*nxelliptical* - -#### nxsphere - -`NXshape::size[1] = {radius}` - -#### nxcone - -Like for NXcylinder the vector v is simply a unit vector pointing to the -tip of the cylinder (no direction cosines or something else fancy). - -`NXshape::size[4] = {radius,vx,vy,vz}` - -#### nxelliptical - -`NXshape::size[2] = {semi-major axis,semi-minor axis}` - -I have no idea what the other two parameters *pole* and *angle of major -axis* are good for. Maybe we can drop them. - - | Shape and coordinate frame for an *nxtoroidal* - | Shape and coordinate frame for an *nxparabolic* - | Shape and coordinate frame for an -*nxpolynomial* - -#### nxtoroidal - -`NXshape::size[2] = {minor radius,major radius}` - -#### nxparabolic - -This is a poorly designed shape. Only the parapolic parameter *a* is -defined in the current documentation. I included here at least the -height of the parabola. However it is indeed not clear whether or not -this should be a 2D object or a 3D object. We definitely have to discuss -this. - -#### nxpolynomial - -Like *nxparabolic* this shape is rather poorly designed. Besides the -coefficients of the polynomial at least the bounds of the interval on -which the polynomial should be evaluated are required to define the -geometry. Also, like with *nxparabolic*, it is not clear if this is a 2D -or 3D object - both would be possible. We need to define this more -thoroughly. - -Update 01/2015 --------------- - -At NIAC 2014 it was decided to deprecate NXgeometry. But this can still -serve to document NXgeometry better. diff --git a/content/NXinstrument.gif b/content/NXinstrument.gif deleted file mode 100644 index 5c0b79e9921d897e0cd5d7df3bfe78ad5a0fcc11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7598 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 dyvw>iO8wDfzteZQChnQ~7^AJvGT - - - - - - NXmonoref - - - - * - {Suggested spectrum measurement for intensity vs. wavelength - for a given slit setting. Warning: beam profile is not - regular, but this effect is accomodated in the spectrum measurement} - - * - {Suggested background measurement} - - - - - ? - {Angle relative to the scattering plane, not to gravity.} - - {|Q|}? - - - - - - - - - - - - - - - ? - - - { Location of slit along beamline (midway between slits - if slits are not coplanar). This is required to compute - instrument resolution. } - - - - - { Need to add "nxslit" to list of possible shapes. If the - shape is a box, first dimension changes the sample footprint. } - - - - - - - - ? - ? - - ? - ? - - - ? - - - ? - { Need all fields so that we can calculate shadow of beam stop on detector. } - - - - - { Indicate sense of scattering: 0 is front surface of sample, - 180 is back surface of sample. If 180, change the sign of the - reflected angle in the data. It is also possible for the beam - to enter the substrate from the side and reflect off the back - surface of a film, in which case negative angles can be - interpreted as inverting the scattering length density profile - of the film (after accounting for absorption in the substrate. } - - - - - - - ? - - - - - - ? - - - - - { "intensity"|"background"|"specular"|"rock"|"slice"|"area" } - - ? - { "++"|"+-"|"-+"|"--"|"+"|"-" } - - - - ? - ? - ? - ? - ? - ? - ? - - - - ? - ? - ? - - - * - { Various logs for temperature, field, etc. which are assumed to - be constant over the duration of the run. The reduction program - should be able to display their values on a parallel graph. Note - that logs are not necessarily sampled synchronously with the - data points. } - - - diff --git a/content/NXmonoref_example-NIAC2006.md b/content/NXmonoref_example-NIAC2006.md deleted file mode 100644 index 6fb06918..00000000 --- a/content/NXmonoref_example-NIAC2006.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: NXmonoref example-NIAC2006 -permalink: NXmonoref_example-NIAC2006.html -layout: wiki ---- - - - - NXmonoref - Summer-School '02 Group B measurement of unknown sample - 2002-06-04T15:09:03-0400 - 2002-06-04T16:18:28-0400 - 4165 - 0.092328 0.18454 - - SS02 Group B - NCNR - - - - unknown sample - - 2 2.04 2.08 2.12 2.16 2.2 2.24 2.28 2.32 2.36 2.4 2.44 2.48 - 2.52 2.56 2.6 2.64 2.68 2.72 2.76 2.8 2.84 2.88 2.92 2.96 3 - 3.04 3.08 3.12 3.16 3.2 3.24 3.28 3.32 3.36 3.4 3.44 3.48 - 3.52 3.56 3.6 3.64 3.68 3.72 3.76 3.8 3.84 3.88 3.92 3.96 4 - - - - - - - 4.75 - 0.01 - - - - - - 1700 - - - nxslit - - 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 1.1582 1.1786 - 1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 - 1.3614 1.3818 1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 - 1.5443 1.5646 1.585 1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 - 1.7272 1.7475 1.7678 1.7882 1.8085 1.8288 1.8491 1.8694 1.8898 - 1.9101 1.9304 1.9507 1.971 1.9914 2.0117 2.032 - - - - - - - - - 200 - - - nxslit - - 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 1.1582 1.1786 - 1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 - 1.3614 1.3818 1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 - 1.5443 1.5646 1.585 1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 - 1.7272 1.7475 1.7678 1.7882 1.8085 1.8288 1.8491 1.8694 1.8898 - 1.9101 1.9304 1.9507 1.971 1.9914 2.0117 2.032 - - - - - - - - 4 4.08 4.16 4.24 4.32 4.4 4.48 4.56 4.64 4.72 4.8 4.88 4.96 5.04 - 5.12 5.2 5.28 5.36 5.44 5.52 5.6 5.68 5.76 5.84 5.92 6 6.08 6.16 - 6.24 6.32 6.4 6.48 6.56 6.64 6.72 6.8 6.88 6.96 7.04 7.12 7.2 - 7.28 7.36 7.44 7.52 7.6 7.68 7.76 7.84 7.92 8 - - - 194 239 256 319 291 373 393 397 399 381 375 358 331 275 256 242 - 186 171 132 114 69 64 68 49 43 50 41 61 83 80 102 110 109 143 139 - 134 138 127 147 134 124 127 106 88 87 70 60 60 49 43 41 - - 1220 - - - - - - - - - - - - - - specular - - - 600000 - - 600000 600000 600000 600000 600000 600000 600000 600000 600000 - 600000 600000 600000 600000 600000 600000 600000 600000 600000 - 600000 600000 600000 600000 600000 600000 600000 600000 600000 - 600000 600000 600000 600000 600000 600000 600000 600000 600000 - 600000 600000 600000 600000 600000 600000 600000 600000 600000 - 600000 600000 600000 600000 600000 600000 - - - - 2002-06-04T15:09:03-0400 - - - 115.8 112.8 111 109.2 106.8 105 103.8 100.8 100.2 97.8 97.2 - 94.8 93 91.8 91.2 90 88.8 87 85.8 85.2 84 82.8 81 81 79.8 - 79.2 78 76.8 76.2 75 73.8 73.2 73.2 70.8 70.8 70.2 70.2 69 - 67.8 67.8 67.2 66 64.8 64.2 64.2 63 61.8 61.8 61.8 61.2 60 - - - - diff --git a/content/NXmonotas-NIAC2006.md b/content/NXmonotas-NIAC2006.md deleted file mode 100644 index 09db6e93..00000000 --- a/content/NXmonotas-NIAC2006.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: NXmonotas-NIAC2006 -permalink: NXmonotas-NIAC2006.html -layout: wiki ---- - -Example: -[NXmonotas\_example-NIAC2006](NXmonotas_example-NIAC2006.html "wikilink") - - - - - - - <definition URL="http://www.nexus.anl.gov/instruments/xml/NXmonotas.xml" - version="1.0"> - NXmonotas - </definition> - <start_time /> - - <NXsample name="sample"> - <name /> - <unit_cell /> - <orientation_matrix /> - <sample_orientation /> - <plane_vector_0 type="NX_FLOAT32[3]"> - {Reciprocal space vector of primary reflection in the scattering plane} - </plane_vector_0> - <plane_vector_1 type="NX_FLOAT32[3]"> - {Reciprocal space vector of secondary reflection in the scattering plane} - </plane_vector_1> - <polar_angle units="degree" type="NX_FLOAT32[:,np]"> - {Polar angle of the sample with respect to the beam incident on the monochromator} - </polar_angle> - <azimuthal_angle units="degree" type="NX_FLOAT32"> - {Azimuthal angle of the sample with respect to the beam incident on the - monochromator} - </azimuthal_angle> - <rotation_angle units="degree" type="NX_FLOAT32[:,np]"> - {Rotation angle of the sample} - </rotation_angle> - <Q type="NX_Float32[nd,np]"> - {Magnitude of momemtum transfer vector}? - </Q> - <Qh type="NX_FLOAT32[nd,np]"> - {Reciprocal space component of scan}? - </Qh> - <Qk type="NX_FLOAT32[nd,np]"> - {Reciprocal space component of scan}? - </Qk> - <Ql type="NX_FLOAT32[nd,np]"> - {Reciprocal space component of scan}? - </Ql> - <energy_transfer units="meV" type="NX_FLOAT32[nd,np]"> - {Energy transfer of scan} - </energy_transfer> - </NXsample> - - <NXinstrument name="{Name of instrument}"> - - <NXcollimator name="premonochromator_collimator">? - <type /> - <soller_angle /> - </NXcollimator> - <NXfilter name="premonochromator_filter">? - <description /> - </NXfilter> - <NXcrystal name="monochromator"> - <type /> - <energy units="meV" type="NX_FLOAT32[np]"> - {Optimum diffracted energy} - </energy> - <d_spacing units="Angstrom" type="NX_FLOAT32"> - {The planar spacing of the nominal reflection} - </d_spacing> - <rotation_angle units="degree" type="NX_FLOAT32[np]"> - {Rotation angle of the monochromator} - </rotation_angle> - </NXcrystal> - <NXcollimator name="presample_collimator">?</NXcollimator> - <NXfilter name="presample_filter">?</NXfilter> - <NXcollimator name="preanalyzer_collimator">?</NXcollimator> - <NXfilter name="preanalyzer_filter">?</NXfilter> - <NXcrystal name="analyzer"> - <type /> - <energy type="NX_FLOAT32[nd,np]" /> - {Optimum diffracted energy for each analyzer} - </energy> - <d_spacing /> - <rotation_angle type="NX_FLOAT32[nd,np]" /> - </NXcrystal> - <NXcollimator name="predetector_collimator">?</NXcollimator> - <NXdetector name="detector"> - <counts signal="1" axes="energy_transfer|Qh|Qk|Ql" type="NX_INT32[:]"> - {Integer counts} - </counts> - <polar_angle units="degree" type="NX_FLOAT32[:]"> - {Polar angle of the detector with respect to the beam incident on the - monochromator} - </polar_angle> - <azimuthal_angle units="degree" type="NX_FLOAT32"> - {Azimuthal angle of the detector with respect to the beam incident on - the analyzer} - </azimuthal_angle> - </NXdetector> - - </NXinstrument> - - <NXmonitor> - <data type="FLOAT32[np]" /> - </NXmonitor> - - <NXtimer> - <preset type="FLOAT32[1|np]" units="second"> - {Preset timer value. This may be a vector if your control software - can allow different points in the sequence to be counted for different - lengths. The measured duration is not necessarily equal to the preset - since the monitor or detector may reach their presets earlier}? - </preset> - <start type="FLOAT32[np]" units="second"> - {Start times of the individual measurements relative to the start of - the scan. This field is recommend so that for example NXlog entries - can be plotted on the same scale as individual points, but it is - not required since many old data sets do not store it.}? - </start> - <duration type="FLOAT32[np]" units="second"> - {Duration of the individual measurements in the scan. If absent, then - the duration is assumed to be the value of the preset.}? - </duration> - </NXtimer> - - <NXdata name="data"> - <Qh NAPIlink="NXentry/NXsample/Qh" /> - <Qk NAPIlink="NXentry/NXsample/Qk" /> - <Ql NAPIlink="NXentry/NXsample/Ql" /> - <energy_transfer NAPIlink="NXentry/NXsample/energy_transfer" /> - <counts NAPIlink="NXentry/NXinstrument/detector/counts" /> - <count_start NAPIlink="NXentry/NXtimer/start" /> - <count_duration NAPIlink="NXentry/NXtimer/duration" /> - <count_monitor NAPIlink="NXentry/NXmonitor/data" /> - <energy NAPIlink="NXentry/NXinstrument/analyzer/energy" /> - </NXdata> - - </NXentry> diff --git a/content/NXmonotas_example-NIAC2006.md b/content/NXmonotas_example-NIAC2006.md deleted file mode 100644 index d5224598..00000000 --- a/content/NXmonotas_example-NIAC2006.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: NXmonotas example-NIAC2006 -permalink: NXmonotas_example-NIAC2006.html -layout: wiki ---- - - <?xml version="1.0" encoding="UTF-8"?> - <!-- - URL: http://www.nexus.anl.gov/classes/xml/NXmononxtas.xml - Editor: NIAC - NIAC Version: 0.80 - Date: 27 Apr 2005 - $Id$ - - Template of a generic NeXus file containing neutron or x-ray triple-axis data. - - --> - <NXroot filename="NXmononxtas_example.xml"> - - <NXentry name="entry_0"> - <title> La1.2Sr1.8Mn2O7 m=2.4g phonons - - NXmononxtas - - - 2000-05-23T19:37 - - - 2000-05-23T21:04 - - - 1620 - - - sc en 2.0 den 0.25 np 21 mn 1013000 - - - - Stephan Rosenkranz - - - Argonne National Laboratory - - - - - - Bilayer Manganite - - - 3.874 3.874 20.145 90.000 90.000 90.000 - - - -1.0 0.0 0.0 - - - 0.0 0.0 1.0 - - - 295.2380 295.2360 295.2350 295.2320 295.2310 295.2290 - 295.2270 295.2260 295.2250 295.2230 295.2220 295.2200 - 295.2190 295.2180 295.2180 295.2170 295.2160 295.2160 - 295.2150 295.2150 295.2150 - - - 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 - 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 - 41.172 41.172 41.172 41.172 41.172 - - - 218.439 218.976 219.518 220.065 220.617 221.174 221.736 - 222.304 222.878 223.458 224.044 224.637 225.236 225.843 - 226.457 227.080 227.710 228.349 228.998 229.656 230.324 - - - 180.0 - - - 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 - 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 - 2.0000 2.0000 2.0000 2.0000 2.0000 - - - 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 - 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 - 0.0000 0.0000 0.0000 0.0000 0.0000 - - - 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 - 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 - 0.6000 0.6000 0.6000 0.6000 0.6000 - - - 2.0000 2.2500 2.5000 2.7500 3.0000 3.2500 3.5000 3.7500 - 4.0000 4.2500 4.5000 4.7500 5.0000 5.2500 5.5000 5.7500 - 6.0000 6.2500 6.5000 6.7500 7.0000 - - - - - - - "Soller" - - - 60.0 - - - - - "Pyrolytic Graphite" - - - - - "PG (Highly Oriented Pyrolytic Graphite)" - - - 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 - 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 - 14.700 14.700 14.700 14.700 14.700 - - - 3.354 - - - 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 - 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 - 20.586 20.586 20.586 20.586 20.586 - - - - - "Soller" - - - 40.0 - - - - - "Soller" - - - 40.0 - - - - - "PG (Highly Oriented Pyrolytic Graphite)" - - - 16.7 16.95 17.2 17.45 17.7 17.95 18.2 18.45 18.7 18.95 19.2 - 19.45 19.7 19.95 20.2 20.45 20.7 20.95 21.2 21.45 21.7 - - - 3.354 - - - 78.344 78.766 79.195 79.631 80.074 80.526 80.985 81.453 - 81.930 82.417 82.914 83.422 83.941 84.471 85.015 85.572 - 86.144 86.731 87.335 87.956 88.597 - - - 22.230 22.465 22.706 22.956 23.214 23.481 23.758 24.044 - 24.342 24.650 24.971 25.304 25.652 26.014 26.392 26.787 - 27.200 27.634 28.088 28.567 29.070 - - - 0.0 - - - - - "Soller" - - - 99.0 - - - - - 49 43 29 22 25 21 27 44 53 80 89 80 36 20 9 18 12 16 8 13 12 - - - 44.461 44.929 45.412 45.912 46.428 46.962 47.515 48.089 48.683 - 49.300 49.942 50.609 51.304 52.028 52.784 53.574 54.401 55.267 - 56.177 57.133 58.140 - - - 180.0 - - - - - - - 4052000 - - - - - 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 - 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 - 238.20 238.20 238.20 - - - - - - - - - - - - diff --git a/content/NXnet_Proposal.md b/content/NXnet_Proposal.md deleted file mode 100644 index f53e4faa..00000000 --- a/content/NXnet_Proposal.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: NXnet Proposal -permalink: NXnet_Proposal.html -layout: wiki ---- - -The motivation for NeXus is to allow the exchange of data between -programs, instruments, establishments and branches of science where the -neutron, muon and X-ray technologies are the common theme. Recently the -NeXus community has been greatly (and crucially) occupied with choosing -what data to store in a file and how it should be described in a common -fashion. - -This proposal tackles a complementary facet of the broader problem; -namely the exchange of the data files themselves between the programs, -operating systems, instruments and establishments. - -Most scientists doing experiments on instruments at different -establishments will have experienced the joy of trying to copy data off -a variety of different computer systems, often being forced to network a -laptop machine at the last minute, write a CD or floppy disk before -racing to catch a flight, manually select and copy files one at a time -via ftp and/or negotiate a firewall to get at their data. If very lucky, -maybe they have been able to download data from a conveniently set up -web site, where remembering the password has been the only problem. - -If this state of affairs wasn’t bad enough, there are things that are -even harder to do than read your data. For example, you might want to -send a few calibration files and sample setup notes to a remote site -ready for an experiment. This would normally be seen as folly unless you -have a trusted colleague already on site to help you receive and look -after the files. And what if you’ve forgotten a file you needed on -arrival? Wouldn’t it be nice if you could do a bit of data reduction on -site and then continue at home, all the time saving the reduced files in -the same directory as the raw data (and with no need to copy the data -locally). And then permit a colleague to access a few of the files from -their own laptop whilst at home (by setting permissions like you do on a -local Unix NFS file system or Windows share)? - -There is really very little reason why we should accept such a desperate -state of affairs. With the help of the UK’s e-Science centre we have -been experimenting with the San Diego Supercomputing Centre’s SRB -(Storage Resource Broker) for several months now. This provides at a -minimum a very credible and functional globally distributable file -system. - -The proposal is in three parts. - -1. We adopt SRB as a working system on which to experiment with - building a global integrated network for sharing Neutron, Muon and - X-Ray data between our establishments and our users. We do this - pragmatically (like we have done with HDF) because it currently - seems to do the job and support is what standards like this need to - develop. -2. More fundamentally, we extend our remit of defining and organizing - data types within the NeXus file to also giving some sort of - standardisation to the organisation and location of data within a - global file system. Quite simply, this just avoids things being lost - by everyone storing things under different names and in different - places (for example, a naming convention for raw files). -3. Even more fundamentally, we spend some effort defining the sort of - meta-data which we might associate with each file (possibly not - contained in the NeXus file itself). This meta-data would enable a - data portal style search engine, just like a super data-Google - quickly to find relevant data by searching throughout this global - file system. Some of this sort of work is already underway but some - sort of standardization of the type and contents of this metadata is - very close to the sort of standardization we are aiming at with the - NeXus file contents and would greatly ease the ability to search and - find relevant information. - -The sheer use-ability of this particular system, especially for quite a -young technology is staggering. This is not something to be planning for -next year or the year after, it’s something to be using now – and then -planning how to build a data storage and access strategy around it. -NeXus has taken a long time to grow to the point where we are able to -agree on the most difficult issue of what is common within our data -files, this is because it’s a really difficult job. Taking some -responsibility for (2) and (3) in particular is a lot less work but is -something best tackled early. - -Chris Moreton-Smith diff --git a/content/NXtofnref-NIAC2006.md b/content/NXtofnref-NIAC2006.md deleted file mode 100644 index cd7aff7b..00000000 --- a/content/NXtofnref-NIAC2006.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: NXtofnref-NIAC2006 -permalink: NXtofnref-NIAC2006.html -layout: wiki ---- - -Concerns: - -- mono and tof reflectometry must inherit from a common base class; - the current definition of tofnref inheriting from monoref leaves the - definition of the monochromator in the TOF definition. -- SNS Liquids has two monitors, but our definitions only have one. - Both are not always active. - - - - - - - - - NXtofnref - - - - - - { Distance from T_o to sample along beam-path. To calculate wavelength: - L[i] = wavelength at time T[i] - T[i] = time of flight for point i. - d1 = distance from moderator to sample along beam path - d2 = distance from detector to sample along beam path - h = Planck's constant - m_n = mass of the neutron - - L[i] = h/m_n * T[i]/(d1+d2) - } - - - { Find the center of mass of the pulse shape and use that - as the T0 offset with respect to the protons hitting the target. - The TOF from target (which is the real T0) to the moderator is - insignficant compared to the uncertainty from the pulse shape and - so can be ignored. - } - - - - * - { Guides in total or in segments thgrough to sample position; may be - interspersed between other components - Check component index. - Can be nested for guides with multiple straight segments. - - Affects wavelength spectrum, both in divergence and intensity. The - spectrum scan will automatically compensate for intensity effects. - To compute divergence effects, detailed information about the guide - geometry will be required. - } - - - - - ? - - { Reduction software needs to ignore Q values outside the range - defined by the choppers. The T0 chopper is phased to the source - to block fast neutron and gamma flash. The frame overlap - chopper is set to select low wavelength neutrons (those from - the current pulse) or high wavelength neutrons (those from - the previous pulse. - - On a properly tuned instrument, the time bins recorded in - the detector will reflect the actions of the choppers and - these fields can be ignored. } - - - ? - - - { The frame overlap mirror is used to eliminate very long wavelength - neutrons from previous pulses. Together with the choppers, this - helps to choose which pulse to use in the TOF calculations. On a - properly tuned instrument the time bins recorded in the detector - will account for the actions of the mirror. - - There will be some attenuation but this will be compensated for - when correcting for the spectrum scan. - - For an ab initio calculation, you would need to store the angle - wrt the beam to compute the cutoff angle but often this will not - be explicit since the instrument is simply tuned to have the - correct cutoff. } - - - - - - { Total time of flight } - - - - - - - - diff --git a/content/NXtranslate.md b/content/NXtranslate.md deleted file mode 100644 index 82a3b110..00000000 --- a/content/NXtranslate.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: NXtranslate -permalink: NXtranslate.html -layout: wiki ---- - -NXtranslate - the anything to NeXus converter ---------------------------------------------- - -NXtranslate is an extensible console based tool that allows creating -NeXus files from information stored in other places. The program works -by parsing a translation file, which describes the structure of the -resulting file, and libraries that understand different file formats, -databases, etc. to retrieve information and put it into the resulting -NeXus file. NXtranslate was designed with “plugins” in mind to read from -new formats as needed. - -If you have any questions/comments/bug reports email Peter Peterson -<petersonpf@ornl.gov>. Also email if you wanted to be notified of -test (alpha/beta) releases. - -**News:** October 1, 2004 The NXtranslate web page is published. The -current version of NXtranslate is v0.1.1. v0.2.0 is in progress and the -can be obtain by mailing <petersonpf@ornl.gov>. - -**Downloads:** Source The manual NXtranslate.pdf - -NXtranslate-v0.1.1.tar.gz NXtranslate-v0.1.0.tar.gz - -**Prerequisites:** - -C++ compiler NeXus libraries *' Installation:*' - -Unix/Linux/Irix/MacOSX: Unpack the tarball, enter the directory and type -make;make test;make install. The resulting binary, nxtranslate, will be -in /usr/local/bin/. - -**Un-installing:** - -Remove the file nxtranslate. - -The installation process did not modify the registry or other system -settings in any way. *' Frequently Asked Questions (FAQ)*' - -Q: What do you mean by “anything to NeXus”? - -A: Because NXtranslate is extensible it can get information from more -places as new retrievers are written. Since there is no inherent -limitation on what retrievers are written, the information can be from -anything. diff --git a/content/NeXpy.md b/content/NeXpy.md deleted file mode 100644 index 2f0f5298..00000000 --- a/content/NeXpy.md +++ /dev/null @@ -1,597 +0,0 @@ ---- -title: NeXpy -permalink: NeXpy.html -layout: wiki ---- - -[NeXpy](https://nexpy.github.io/nexpy/) provides a high-level python interface to NeXus data contained -within a simple GUI. It is designed to provide an intuitive interactive -toolbox allowing users both to access existing NeXus files and to create -new NeXus-conforming data structures without expert knowledge of the -file format. - -Installation ------------- - -WARNING: NeXpy is in the early stages of development, and so there has -been no stable release yet. It is available for testing purposes only. - -To check out the latest version from the [GitHub -repository](https://github.com/nexpy/nexpy) and install the NeXpy -package to the standard python site-packages directory,: - -`> git clone `[`https://github.com/nexpy/nexpy.git`](https://github.com/nexpy/nexpy.git) -`> cd nexpy` -`> python setup.py install` - -This assumes that the standard Python script directory is in your -default path. - -The source code can also be viewed on the [NeXpy -GitHub](https://github.com/nexpy/nexpy). - -### Installation Issues - -#### Locating the NeXus library - -NeXpy utilizes the python wrapper to the NeXus C API distributed with -the standard NeXus distribution. This wrapper needs the location of the -libNeXus precompiled binary. It looks in the following places in order:: - - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Location

Operating System

os.environ['NEXUSLIB']

All

directory containing napi.py

All

os.environ['NEXUSDIR']\bin

Windows

os.environ['LD_LIBRARY_PATH']

Unix

os.environ['DYLD_LIBRARY_PATH']

Darwin

PREFIX/lib

Unix and Darwin

/usr/local/lib

Unix and Darwin

/usr/lib

Unix and Darwin

- -- On Windows it looks for one of libNeXus.dll or libNeXus-0.dll. -- On OS X it looks for libNeXus.dylib -- On Unix it looks for libNeXus.so - -NEXUSDIR defaults to r'C:\\Program Files\\NeXus Data Format'. PREFIX -defaults to /usr/local, but is replaced by the value of --prefix during -configure. - -The import will raise an OSError exception if the library wasn't found -or couldn't be loaded. Note that on Windows in particular this may be -because the supporting HDF5 dlls were not available in the usual places. - -If you are extracting the nexus library from a bundle at runtime, set -os.environ\['NEXUSLIB'\] to the path where it is extracted before the -first import of nexpy. - -#### Required Libraries - -- [nexus](http://www.nexusformat.org) -- [numpy](https://numpy.org) -- [scipy](https://scipy.org) -- [h5py](https://www.h5py.org) -- [matplotlib v1.1.0](http://matplotlib.sourceforge.net) -- [hdf5](http://www.hdfgroup.org) -- [mxml](http://www.minixml.org) (XML NeXus files only) -- [PySide v1.1.0](http://www.pyside.org/) (GUI only) -- [iPython v0.13](http://ipython.org/) (GUI only) -- [pyspec](http://pyspec.sourceforge.net) (SPEC reader only) - -Running NeXpy -------------- - -There are two ways of using the NeXpy interface to NeXus files. - -1. Within a standard python or ipython shell. -2. Using the GUI shell - -### Python Shell - -`$ python` -`Python 2.7.2 (default, Oct 11 2012, 20:14:37) ` -`[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin` -`Type `“`help`”`, `“`copyright`”`, `“`credits`”` or `“`license`”` for more information.` -`>>> from nexpy.api import nexus` -`>>> a=nexus.load('data/chopper.nxs')` - -### GUI Shell - -To run the NeXpy GUI, type - -`> nexpy` - -![NeXpy|center|800px](Nexpy.png "fig:NeXpy|center|800px") The GUI -contains three main panes: - -Tree Pane:This contains the tree structure of NeXus files opened in the File menu and/or any NXroot and NXentry groups created within the shell. -Plot Pane:Any NXdata or NXmonitor group can be plotted in this pane by right-clicking on the relevant node in the tree. -Shell Pane:This is a regular python shell, with both Numpy and NeXpy already imported (as \* so no prefixes are necessary). Any assignments to items in the tree pane are automatically reflected in the tree pane, and new NXroot, NXentry, or NXdata objects are added to the tree. Currently, it is not possible to plot directly from the shell pane, but this will be added in the future. - -There are a number of useful features available when running NeXpy -within the GUI shell. - -1. Data can be loaded with the menu item using a standard - file browser window. -2. All current NeXus data trees are easy to inspect in the pane on the - upper left side. Hovering over a data item produces a tooltip - containing a list of all the item's children. -3. Newly created group can be added to the tree at any time. -4. Any changes to data sets in the scripting window will be reflected - within the tree pane, including the creation of new NXroot or - NXentry groups. -5. NXdata and NXmonitor plots can be displayed by right-clicking and - choosing 'Plot'. -6. Axis limits are set by a series of slider bars. -7. The scripting shell provides convenient autocompletion, and - automatically displays function docstrings as a tooltip when you - open the function parentheses. - -#### Planned Enhancements - -- Editing data items in the tree within an editor pane. - -NeXus Interface ---------------- - -### Loading NeXus Data - -The entire tree structure of a NeXus file can be loaded by a single -command. - -`>>> from nexpy.api import nexus` -`>>> a=nexus.load('sns/data/ARCS_7326_tof.nxs')` - -The assigned variable now contains the entire tree structure of the -file, which can be displayed by printing the 'tree' property. - -`>>> print a.tree` -`root:NXroot` -` @HDF5_Version = 1.8.2` -` @NeXus_version = 4.2.1` -` @file_name = ARCS_7326_tof.nxs` -` @file_time = 2010-05-05T01:59:25-05:00` -` entry:NXentry` -`   `[`data:NXdata`](data:NXdata) -`     data = float32(631x461x4x825)` -`       @axes = rotation_angle:tilt_angle:sample_angle:time_of_flight` -`       @signal = 1` -`     rotation_angle = float32(632)` -`       @units = degree` -`     sample_angle = [ 210.  215.  220.  225.  230.]` -`       @units = degree` -`     tilt_angle = float32(462)` -`       @units = degree` -`     time_of_flight = float32(826)` -`       @units = microsecond` -`   run_number = 7326` -`   sample:NXsample` -`     pulse_time = 2854.94747365` -`       @units = microsecond` - -Individual data items are immediately available from the command-line. - -`>>> print a.entry.run_number` -`7326` - -Note that only the tree structure and smaller data sets are read into -memory to avoid using up memory unnecessarily. In the above example, -only the types and dimensions of the larger data sets are displayed in -the tree. However, the filename is also stored, so the data can be -loaded as soon as it is needed, either as a complete array or as a -series of slabs. - -### Creating NeXus Data - -It is just as easy to create new NeXus data sets from scratch using -Numpy arrays. The following example shows the creation of a simple -function, which is then saved to a file. - -`>>> import numpy as np` -`>>> x=y=np.linspace(0,2*np.pi,101)` -`>>> X,Y=np.meshgrid(x,y)` -`>>> z=np.sin(X)*np.sin(Y)` -`>>> a=NXdata(z,[x,y])` -`>>> a.save('function.nxs')` - -This file can then be loaded again. - -`>>> b=nexus.load('function.nxs')` -`>>> print b.tree` -`root:NXroot` -` @HDF5_Version = 1.8.2` -` @NeXus_version = 4.2.1` -` @file_name = function.nxs` -` @file_time = 2010-05-10T17:01:13+01:00` -` entry:NXentry` -`   `[`data:NXdata`](data:NXdata) -`     axis1 = float64(101)` -`     axis2 = float64(101)` -`     signal = float64(101x101)` -`       @axes = axis1:axis2` -`       @signal = 1` - -Note that the save() method automatically wraps any valid NeXus data in -an NXentry group, in order to produce a standard-compliant file. - -#### NeXus Fields - -NeXus data values are stored in NeXus objects of class 'NXfield'. The -NXfield class wraps standard Numpy arrays, scalars, and python strings -so that data attributes can be associated with them. There are two ways -to create an NXfield. - -- Explicit initialization. The data value is given by the first - positional argument, and may be a python scalar or string, or a - Numpy array. In this method, keyword arguments can be used to define - NXfield attributes. - -`>>> x = NXfield(np.linspace(0,2*np.pi,101), units='degree')` - -- Implicit initialization as the child of a NeXus group. The assigned - values are automatically converted to an NXfield. - -`>>> a.entry.sample.temperature=40.0` -`>>> a.entry.sample.temperature` -`NXfield(name=temperature,value=40.0)` - -NXfield attributes can be assigned after creating the NXfield. Note that -attribute names must not start with 'nx' to avoid name clashes. - -`>>> a.entry.sample.temperature.units='K'` - -The actual values of an NXfield are stored in the 'nxdata' attribute. If -the NXfield is read in from a data file, this attribute is not input if -the array size is large to avoid using up memory unnecessarily. It will, -however, be read in if the value is accessed for plotting or -manipulating data. If this will cause a memory exception, the data -should be read in as a series of slabs using the nxget method. - -`>>> with root.NXentry[0].data.data as slab:` -`              Ni,Nj,Nk = slab.shape` -`               size = [1,1,Nk]` -`               for i in range(Ni):` -`                   for j in range(Nj):` -`                       value = slab.get([i,j,0],size)` - -Data values can be returned converted to different units if the 'units' -attribute has been set. - -`>>> phi = x.nxdata_as(units='radian')` -`>>> y = NXfield(np.sin(phi))` - -#### NeXus Groups - -NeXus groups are defined as subclasses of the NXgroup class. Apart from -the class name, they behave identically except for the NXdata, -NXmonitor, and NXlog groups, which have extra methods defined. The -initialization parameters can be used to populate the group with other -predefined NeXus objects, either groups or fields. - -`>>> temperature = NXfield(40.0, units='K')` -`>>> sample = NXsample(temperature=temperature)` -`>>> print sample.tree` -`sample:NXsample` -`  temperature = 40.0` -`  units = K` - -Note that, in this example, it was necessary to use the keyword form to -add the NXfield 'temperature' since its name is otherwise undefined -within the NXsample group. This name is set automatically if the NXfield -is added as an attribute assignment. - -`>>> sample = NXsample()` -`>>> sample.temperature=NXfield(40.0, units='K')` -`sample:NXsample` -`  temperature = 40.0` -`  units = K` - -The objects in NeXus groups, which can be NXfields or other NXgroups, -can also be assigned and referenced as dictionary items. - -`>>> sample[`“`temperature`”`] = 40.0` -`>>> sample.keys()` -`['temperature']` - -NXdata Groups -NXdata groups contain data ready to be plotted. That means that the -group should consist of an NXfield containing the data and one or more -NXfields containing the axes. NeXus defines a method of associating axes -with the appropriate dimension, but NeXpy provides a simple constructor -that implements this method automatically. - -This was already demonstrated in the example above, reproduced here: - -`>>> import numpy as np` -`>>> x=y=np.linspace(0,2*np.pi,101)` -`>>> X,Y=np.meshgrid(y,x)` -`>>> z=np.sin(X)*np.sin(Y)` -`>>> a=NXdata(z,[x,y])` - - -The first positional argument is an NXfield or Numpy array containing -the data, while the second is a list containing the axes, again as -NXfields or Numpy arrays. In this example, the names of the arrays have -not been defined within an NXfield so default names were assigned. - -`>>> print a.tree` -`   `[`data:NXdata`](data:NXdata) -`     axis1 = float64(101)` -`     axis2 = float64(101)` -`     signal = float64(101x101)` -`       @axes = axis1:axis2` -`       @signal = 1` - - -However, names can be assigned explicitly when creating the NXfield -through the 'name' attribute. - -`>>> phi=np.linspace(0,2*np.pi,101)` -`>>> data=np.sin(phi)` -`>>> a=NXdata(NXfield(data,name='intensity'),(NXfield(phi,name='polar_angle')))` -`>>> print a.tree` -[`data:NXdata`](data:NXdata) -`  intensity = float64(101)` -`    @axes = polar_angle` -`    @signal = 1` -`  polar_angle = float64(101)` - -### Adding NeXus Data to the Tree View - -If you create a NeXus group dynamically in the iPython shell, it can be -added to the tree view using the tree's add method. - -`>>> a=NXroot()` -`>>> a.entry = NXentry()` -`>>> tree.add(a)` - -If the group is not an NXroot group, the data will be wrapped -automatically in an NXroot group and given a default name that doesn't -conflict with existing tree nodes, e.g., w4. - -### Plotting NeXus Data - -#### Python Shell - -NXdata, NXmonitor, and NXlog groups all have a plot method, which -automatically determines what should be plotted. - -`>>> data.plot()` - -![A simple NeXpy -plot|center](NeXPy-Simple_plot.png "fig:A simple NeXpy plot|center") If -the data is one-dimensional, it is possible to overplot more than one -data set using 'over=True'. Conventional Matplotlib keywords can be used -to change markers and colors. - -`>>> data.plot(log=True)` -`>>> data.plot(over=True, log=True, color='r')` - -#### GUI Shell - -NXdata, NXmonitor, and NXlog data can be plotted by right-clicking on -the group within the tree. The plot pane contains a toolbar to change -axis or signal intensity limits. The slider provides a graphical way of -setting minimum and/or maximum values or they can be typed into the text -boxes. ![Axis Limits -Toolbar|center|600px](Axis_Limits_Bar.png "fig:Axis Limits Toolbar|center|600px") -There are two checkboxes: - -Lock:If the maximum and/or minimum values are not set to the limits, then this checkbox locks the difference between the two. This checkbox disables setting of the minimum value. You can step through the z-values with automatic replots by selecting the maximum box and using the keyboard up and down arrows or by clicking the box arrows. -Autoscale: When stepping through the z-values, this checkbox determines whether the plot should change the color scale. - -### Manipulating NeXus Data - -### Slicing - -#### NXfield - -A slice of an NXfield can be obtained using the usual python indexing -syntax. - -`>>> x=NXfield(np.linspace(0,2*np.pi,101))` -`>>> print x[0:51]` -`[ 0.          0.06283185  0.12566371 ...,  3.01592895  3.0787608 3.14159265]` - -If either of the indices are floats, then the limits are set by the -values themselves (assuming the array is monotonic). - -`>>> print x[0.5:1.5]` -`[ 0.50265482  0.56548668  0.62831853 ...,  1.38230077  1.44513262 1.50796447]` - -#### NXdata - -It is also possible to slice whole NXdata groups. In this case, the -slicing works on the multidimensional NXfield, but the full NXdata group -is returned with both the signal data and the associated axes limited by -the slice parameters. If either of the limits along any one axis is a -float, the limits are set by the values of the axis. - -`>>> a=NXdata(np.sin(x),x)` -`>>> a[1.5:2.5].x` -`NXfield(name=x,value=[ 1.57079633  1.72787596  1.88495559 ...,  2.19911486  2.35619449])` - -Unless the slice reduces one of the axes to a single item, the rank of -the data remains the same. To project data along one of the axes, and so -reduce the rank by one, the data can be summed along that axis using the -nxsum() method. This employs the Numpy array sum() method. - -`>>> x=y=NXfield(np.linspace(0,2*np.pi,41))` -`>>> X,Y=np.meshgrid(x,y)` -`>>> a=NXdata(np.sin(X)*np.sin(Y), (x,y))` -`>>> print a.tree` -[`data:NXdata`](data:NXdata) -`  axis1 = float64(41)` -`  axis2 = float64(41)` -`  signal = float64(41x41)` -`    @axes = axis1:axis2` -`    @signal = 1` -`>>> print a.sum(0).tree` -[`data:NXdata`](data:NXdata) -`  axis2 = float64(41)` -`  signal = float64(41)` -`    @axes = axis2` -`    @long_name = Integral from 0.0 to 6.28318530718 ` -`    @signal = 1` - -It is also possible to slice whole NXdata groups. In this case, the -slicing works on the multidimensional NXfield, but the full NXdata group -is returned with both the signal data and the associated axes limited by -the slice parameters. If either of the limits along any one axis is a -float, the limits are set by the values of the axis. - -`>>> a=NXdata(np.sin(x),x)` -`>>> a[1.5:2.5].x` -`NXfield(name=x,value=[ 1.57079633  1.72787596  1.88495559 ...,  2.19911486  2.35619449])` - -Unless the slice reduces one of the axes to a single item, the rank of -the data remains the same. To project data along one of the axes, and so -reduce the rank by one, the data can be summed along that axis using the -nxsum() method. This employs the Numpy array sum() method. - -`>>> x=y=NXfield(np.linspace(0,2*np.pi,41))` -`>>> X,Y=np.meshgrid(x,y)` -`>>> a=NXdata(np.sin(X)*np.sin(Y), (x,y))` -`>>> print a.tree` -[`data:NXdata`](data:NXdata) -`  axis1 = float64(41)` -`  axis2 = float64(41)` -`  signal = float64(41x41)` -`    @axes = axis1:axis2` -`    @signal = 1` -`>>> print a.sum(0).tree` -[`data:NXdata`](data:NXdata) -`  axis2 = float64(41)` -`  signal = float64(41)` -`    @axes = axis2` -`    @long_name = Integral from 0.0 to 6.28318530718 ` -`    @signal = 1` - -### Arithmetic Operations - -#### NXfield - -Arithmetic operations can be applied to NXfield objects in much the same -way as scalars or Numpy arrays that they contain. This includes -addition, subtraction, multiplication and division, either with other -NXfield objects or to scalar numbers or Numpy arrays. - -`>>> x=NXfield(array((1.5,2.5,3.5),name='x')` -`>>> x` -`NXfield(name=x,value=[ 1.5  2.5  3.5])` -`>>> x+1` - -NXfield(name=x,value=\[ 2.5 3.5 4.5\]) - -`>>> 2*x` -`NXfield(name=x,value=[ 3.  5.  7.])` -`>>> x+x` -`NXfield(name=x,value=[ 3.  5.  7.])` -`>>> x-x` -`NXfield(name=x,value=[ 0.  0.  0.])` -`>>> x/x` -`NXfield(name=x,value=[ 1.  1.  1.])` - -#### NXdata - -Similar operations can also be performed on whole NXdata groups. If two -NXdata groups are to be added, the rank and dimension sizes of the main -signal array must match (although the names could be different). - -`>>> y=NXfield(np.sin(x),name='y')` -`>>> y` -`NXfield(name=y,value=[ 0.99749499  0.59847214 -0.35078323])` -`>>> a=NXdata(y,x)` -`>>> print a.tree` -[`data:NXdata`](data:NXdata) -`  x = [ 1.5  2.5  3.5]` -`  y = [ 0.99749499  0.59847214 -0.35078323]` -`    @axes = x` -`    @signal = 1` -`>>> print (a+1).tree` -[`data:NXdata`](data:NXdata) -` x = [ 1.5  2.5  3.5]` -` y = [ 1.99749499  1.59847214  0.64921677]` -`   @axes = x` -`   @signal = 1` -`>>> print (2*a).tree` -[`data:NXdata`](data:NXdata) -`  x = [ 1.5  2.5  3.5]` -`  y = [ 1.99498997  1.19694429 -0.70156646]` -`    @axes = x` -`    @signal = 1` -`>>> print (a+a).tree` -[`data:NXdata`](data:NXdata) -`  x = [ 1.5  2.5  3.5]` -`  y = [ 1.99498997  1.19694429 -0.70156646]` -`    @axes = x` -`    @signal = 1` -`>>> print (a-a).tree` -[`data:NXdata`](data:NXdata) -`  x = [ 1.5  2.5  3.5]` -`  y = [ 0.  0.  0.]` -`    @axes = x` -`    @signal = 1` -`>>> print (a/2).tree` -[`data:NXdata`](data:NXdata) -`  x = [ 1.5  2.5  3.5]` -`  y = [ 0.49874749  0.29923607 -0.17539161]` -`    @axes = x` -`    @signal = 1` - -If data errors are included in the NXdata group (with an additional -array named 'errors'), then the errors are propagated according to the -operand. - -`>>> print a.tree` -[`data:NXdata`](data:NXdata) -`  errors = [ 0.99874671  0.77360981  0.59226956]` -`  x = [ 1.5  2.5  3.5]` -`  y = [ 0.99749499  0.59847214  0.35078323]` -`    @axes = x` -`    @signal = 1` -`>>> print (a+a).tree` -[`data:NXdata`](data:NXdata) -`  errors = [ 1.41244114  1.09404949  0.83759564]` -`  x = [ 1.5  2.5  3.5]` -`  y = [ 1.99498997  1.19694429  0.70156646]` -`    @axes = x` -`    @signal = 1` diff --git a/content/NeXus_CIF_Integration.md b/content/NeXus_CIF_Integration.md deleted file mode 100644 index 40057138..00000000 --- a/content/NeXus_CIF_Integration.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: NeXus CIF Integration -permalink: NeXus_CIF_Integration.html -layout: wiki ---- - -NeXus CIF Integration -===================== - -At august, 22, 2013 some members of the NIAC will meet with -representatives of the CIF community and the IUCR in order to discuss a -possible merger or collaboration between NeXus and CIF. This wiki page -is meant as a forum to discuss the NIAC's position towards this -integration. The initial reaction was quite positive. - -Some Issues and Differences -=========================== - -- NeXus addresses a far greater range of techniques and - instrumentation then CIF does. -- NeXus is about hierarchical data storage and arrays -- CIF so far prefers tables and ASCII. -- CIF (or Herbert) are very concerned about getting data out of files - into relational databases. The NeXus position as of now is to store - the necessary information in a NeXus file and have databases - populated by external scanners. Thus NeXus makes no assumptions - about database structures. -- Both CIF and NeXus have dictionaries of documented names. In many - cases the dictionaries overlap. -- NeXus is based on HDF-5 and NXDL, CIF on the star ASCII file format - and DDL as a dictionary description language. There are many - versions of DDL. -- CIF's ASCII file format is hitting a limit when storing raw data - from modern high speed detectors. Or sometimes even when storing - atom positions for huge protein structures. -- Herbert has demonstrated that it is possible to map CIF into NeXus. - There are issues but no real show stoppers. -- DECTRIS is pushing the PX community towards HDF/NeXus through the - use of NeXus as the format for the upcoming EIGER series of - detectors - -Questions -========= - -- How can CIF and NeXus interoperate and integrate? -- Is CIF ready to expand towards a more general data format? -- How are the NeXus and CIF dictionaries to be integrated? Or are they - to be integrated? -- How will the new integrated file format be used? I assume for - deposition of data with IUCR journals. -- What exactly is the interest of the CIF community to collaborate - with NeXus? -- Which CIF concepts would need to be included into NeXus to make it - work? -- How does CIF solve the issue: we provide for everything - - but in most cases really need only 20-30 data items - - This is the problem NeXus solves with application definitions. - -The NIAC's Interest -=================== - -- NeXus has always tried to be inclusive: it is no use having a - standard if everyone has an own one! -- Recognition by the IUCR would be a selling point for NeXus and - helpful. -- Increased interoperability: Interoperability is the raison d'etre of - NeXus -- Ideal world: use CIF, HDF5 and NeXus tools on all files. - -To Discuss -========== - -- Anything to add to the statements above? -- NeXus tries to be inclusive: how far are we prepared to change? - Presumably this can only be answered after the meeting when we can - see more clearly what the merger means. It is also crystal clear - that any changes to NeXus for a CIF merger need proper process: - discussion and voting. - -### CIF-NeXus Presentation - -The draft for the NeXus CIF presentation can be downloaded here: -[CIFNeXus.pdf](pdfs/CIFNexus.pdf "wikilink"). May be we get a chance to discuss -this on the next Telco. - -Details of how NeXus and CDF might be mapped are contained on the -[ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") page - -Conclusion ----------- - -01/2015: A NXmx application definition has been designed together with -COMCIFS. The application definition was tested at diamond and it works. -This NXmx application definition together with a few changes to NeXus to -make it work were ratified at NIAC 2014. diff --git a/content/Nexus_41_Release_Notes.md b/content/Nexus_41_Release_Notes.md deleted file mode 100644 index 0cac9b89..00000000 --- a/content/Nexus_41_Release_Notes.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Nexus 41 Release Notes -permalink: Nexus_41_Release_Notes.html -layout: wiki ---- - -System Requirements -------------------- - -**MXML XML Parsing Library** - -Version 2.2.2 or higher of mxml is required. Earlier versions have a bug -and the XML API will not work. This package can be downloded in [both -source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and -will not work properly. - -Building Notes --------------- - -### NAG F90/F95 Compiler - -The NAG compiler needs the **-mismatch** flag to be specified or else it -will not compile NXmodule.f90 This is achieve by running configure with -the **FCFLAGS** environment variable set to contain the flag e.g. - - env FCFLAGS="-mismatch" ./configure --with-f90=f95 - -### HDF4 on Intel Macs - -There is a problem with the include file, hdfi.h (normally in -/usr/local/include). See - for details -of the modifications necessary to fix it. - -New Features ------------- - -- New types NX\_INT64 and NX\_UINT64 to suppport 64 bit integers (only - available in HDF5 and XML) - [details](http://trac.nexusformat.org/code/ticket/87). -- Python bindings are now included in the Windows install kit - [details](http://trac.nexusformat.org/code/ticket/86) - -Changed Features ----------------- - -Known Issues ------------- - -Miscellaneous bug fixes ------------------------ - -The following items are bugs reported in previous releases and resolved -in the 4.1 release. - -- The Fortran 90 part of testsuite failed with the Absoft compiler on - MacOSX (it passed with g95 and gfortran (4.2)) [details - here](http://trac.nexusformat.org/code/ticket/68) -- NXputattr assumed NULL termination of NX\_CHAR attributes, which is - usually the case in C but not true for JAVA. A workaround is to add - '\\0' manually [bug - report](http://trac.nexusformat.org/code/ticket/83) -- pkgconfig issue [bug - report](http://trac.nexusformat.org/code/ticket/84) -- Build issue with MXML-2.3 [bug - report](http://trac.nexusformat.org/code/ticket/91) -- XML buffer resizing performance issue [bug - report](http://trac.nexusformat.org/code/ticket/92) -- Documentation is now installed to “datadir” (/usr/share) [bug - report](http://trac.nexusformat.org/code/ticket/93) - -Upcoming Features ------------------ diff --git a/content/Nexus_42_Release_Notes.md b/content/Nexus_42_Release_Notes.md deleted file mode 100644 index 0af378bf..00000000 --- a/content/Nexus_42_Release_Notes.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Nexus 42 Release Notes -permalink: Nexus_42_Release_Notes.html -layout: wiki ---- - -4.2.1 ------ - -The following new featues have been added: - -- NXbrowse now has readline support (i.e. previous command line recall - and TAB completion of entry names) -- new API functions NXgetpath() and NXgetversion() added -- NXgetnextentry() now uses less stack space - -4.2.0 ------ - -System Requirements -------------------- - -**MXML XML Parsing Library** - -Version 2.2.2 or higher of mxml is required. Earlier versions have a bug -and the XML API will not work. This package can be downloded in [both -source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and -will not work properly. - -**Python Interface** You will need both the numpy and ctypes modules to -be available. These are provided in both the Fedora and EPEL -repositories. - -Building Notes --------------- - -### NAG F90/F95 Compiler - -The NAG compiler needs the **-mismatch** flag to be specified or else it -will not compile NXmodule.f90 This is achieve by running configure with -the **FCFLAGS** environment variable set to contain the flag e.g. - - env FCFLAGS="-mismatch" ./configure --with-f90=f95 - -### HDF4 on Intel Macs - -There is a problem with the include file, hdfi.h (normally in -/usr/local/include). See - for details -of the modifications necessary to fix it. - -New Features ------------- - -### C++ Interface (provided by [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") and [Peter Peterson](User%3APeter_Peterson.html "wikilink")) - -See the [doxygen -documentation](http://download.nexusformat.org/doxygen/html/classNeXus_1_1File.html) -and [NeXus API test -program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx). -A C++ Stream Like interface is also supported - the idea is to provide -an IOSteam like interface and allow you to type - - // create an entry and a data item - File nf(fname, NXACC_CREATE); - nf << Group("entry1", "NXentry") << Data("dat1", w, "int_attr", 3); - nf.close(); - - File nf1(fname, NXACC_RDWR); - // add a double_attr to an existing setup - nf1 >> Group("entry1", "NXentry") >> Data("dat1") << Attr("double_attr", 6.0); - nf1.close(); - - // read back data items - File nf2(fname, NXACC_READ); - nf2 >> Group("entry1", "NXentry") >> Data("dat1", w1, "int_attr", i, "double_attr", d); - // alternative way to read d1 - nf2 >> Data("dat1") >> Attr("double_attr", d1); - -See also the [NeXus API test -program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx) - -### IDL Interface (provided by Jussi Kauppila and [Mark Koennecke](User%3AMark_Koennecke.html "wikilink")) - -There is a new interface to RSI's Interactive Data Language, IDL for -NeXus. This interface has to be considered beta. Nevertheless it is -working most of the time. Known issues include: - -- Compressed reading and writing do not work for HDF-4 files, probably - because of a library version conflict on libz. - -### Python Interface - -There is now, thanks to [Paul Kienzle](User%3APaul_Kienzle.html "wikilink"), -a supported interface for the python scripting language. Arrays are -stored in numpy arrays and thus allow for efficient data manipulations. - -Changed Features ----------------- - -Known Issues ------------- - -See the comments on the IDL interface. - -Miscellaneous bug fixes ------------------------ - -The following items are bugs reported in previous releases and resolved -in the 4.2 release. - -Upcoming Features ------------------ diff --git a/content/Nexus_43_Release_Notes.md b/content/Nexus_43_Release_Notes.md deleted file mode 100644 index 2b13e8ae..00000000 --- a/content/Nexus_43_Release_Notes.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Nexus 43 Release Notes -permalink: Nexus_43_Release_Notes.html -layout: wiki ---- - -4.3.0rc1 --------- - -Dowload the release candidate from the [NeXus download -page](http://download.nexusformat.org/kits/nx43testing.shtml). Issues -reported with this release [can be found -here](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority) -and results to testing on -[NeXus\_43\_Testing](NeXus_43_Testing.html "wikilink") - -New Features ------------- - -- Links to external files via the NeXus external linking mechanism - have now been enhanced to take advantage of native HDF5 external - linking. Previously a nexus external file link was only visible to - NeXus aware programs, and this will continue to be the case for XML - and HDF4 based files. In the case of files created with the HDF5 - underlying format, external file links will now be visible to any - HDF5 (1.8.\*) aware program. -- HDF5 based files can now have multiple “unlimited” dimensions - (previously only one was allowed) -- New API functions have been added to handle very large arrays. Most - original NeXus functions had array dimensions of type “int” which - restricted the maximum size of an array. New functions with a “64” - suffix have been added which use int64\_t rather than int - existing - functions continue to work as normal, so there is no need to update - code unless you want to make use of the larger dimensions. -- A new python tree API has been added (note: need to add link for - more finformation) -- A GUI java based NXvalidate program has now been added -- The NeXus API now ensures thread safety, even if the underlying - HDF/XML library is not built that way. The current approach would - not allow any concurrency in writing, but HDF5 does not support this - anyway at the moment. -- A new function NXreopen() has been added which will create - additional NXhandle objects from an existing NXhandle, allowing you - to have several NXhandle structures referring to the same file. This - can give a large performance gain if you need to write to different - parts of a file as separate threads can be created with their own - NXhandles, thus removing the need to open and close data groups that - can lead to unnecessary flushing to disk etc. -- New application NXtraverse added -- TODO: other applications - anything of note changed in NXtranslate, - NXsummary etc? - -Changed Features ----------------- - -- The HDF5 1.6.\* series libraries are no longer supported - NeXus now - requires 1.8.\* or higher. The 1.6.\* series is now very old and - moving to 1.8.\* has allowed us to make use of new and improved - features, such as native external file linking (see above) - -System Requirements -------------------- - -**MXML XML Parsing Library** - -Version 2.2.2 or higher of mxml is required. Earlier versions have a bug -and the XML API will not work. This package can be downloded in [both -source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and -will not work properly. - -**Python Interface** You will need both the numpy and ctypes modules to -be available. These are provided in both the Fedora and EPEL -repositories. - -**HDF5 Version** Only the HDF5-1.8.\* series (and above) is now -supported. - -Building Notes --------------- - -Known Issues ------------- - -Miscellaneous bug fixes ------------------------ - -Upcoming Features ------------------ diff --git a/content/Nexus_4_Release_Notes.md b/content/Nexus_4_Release_Notes.md deleted file mode 100644 index 18113b4f..00000000 --- a/content/Nexus_4_Release_Notes.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Nexus 4 Release Notes -permalink: Nexus_4_Release_Notes.html -layout: wiki ---- - -System Requirements -------------------- - -**MXML XML Parsing Library** - -Version 2.2.2 of mxml is required. Earlier versions have a bug and the -XML API will not work. This package can be downloded in [both source and -binary rpm form](http://www.easysw.com/~mike/mxml/software.php) and is -also available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and -will not work properly. - -Building Notes --------------- - -### NAG F90/F95 Compiler - -The NAG compiler needs the **-mismatch** flag to be specified or else it -will not compile NXmodule.f90 This is achieve by running configure with -the **FCFLAGS** environment variable set to contain the flag e.g. - - env FCFLAGS="-mismatch" ./configure --with-f90=f95 - -New Features ------------- - -The following items are features added to the NeXus API to provide new -functionality to the core library or to assist in the build process. - -- Extended XML-API to handle unlimited dimensions -- Add building of Doxygen documentation -- Add support for two dimensional character arrays (HDF4 and HDF5 - only) -- Added group attribute support to HDF4 (2006/05/02). Requires HDF4 - version (???) -- Add NXmakenamedlink (2007/01/09) to all three file formats (external - linking) -- Add NXprintlink -- Improved link testing in test suite -- API can now read generic HDF5 files, such as those produced by - matlab -- Add facility to enable/disable error reporting -- New NXsummary tool for summarising contentes of a NeXus file -- Fortran 90 API now works with gfortran 4.2 and above as well as with - G95 -- PYTHON and TCL bindings provided via a [SWIG - interface](http://www.swig.org/) -- Additional NXtranslate translators: SPEC, ESRF-EDF - -Changed Features ----------------- - -The following aspects of the API have changed in a potentially -non-backward compatible way - -- The JAVA API now uses org.nexusformat rather than - gov.anl.neutron.nexus - -Known Issues ------------- - -The main problems are summarised here - for a complete list see [all -reported 4.0.0 -issues](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority) - -- The Fortran 90 part of testsuite fails with the Absoft compiler on - MacOSX (it passes with g95 and gfortran (4.2)) [details - here](http://trac.nexusformat.org/code/ticket/68) -- NXputattr assumes NULL termination of NX\_CHAR attributes, which is - usually the case in C but not true for JAVA. A workaround is to add - '\\0' manually. This error has been fixed in the code and will be - available in the next release. More information is available in the - [bug report](http://trac.nexusformat.org/code/ticket/83) - -Miscellaneous bug fixes ------------------------ - -The following items are bugs reported in the 3.x releases and resolved -for the 4.0 release. - -- Leading and trailing whitespace is stripped from char data on a - read; this can be disabled by passing the NXACC\_NOSTRIP option to - NXopen -- Fix problems with MXML (what problems?) -- Improve test procedures when not all libraries are present -- Correct sourcepath for javadoc -- Updated makefiles for swig bindings (python, tcl) - -Upcoming Features ------------------ - -Work on these features is still in progress. They are expected to be -part of the NeXus 4.1 release. - -- Add skeletal utility functions (NXU) to API (2005/04/26) - diff --git a/content/OO-NeXus.md b/content/OO-NeXus.md deleted file mode 100644 index a5224009..00000000 --- a/content/OO-NeXus.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: OO-NeXus -permalink: OO-NeXus.html -layout: wiki ---- - -Object Oriented NeXus ---------------------- - -This is a page to discuss the various options we have for defining both -object oriented instrument definitions and an object oriented NeXus-API. -The initial content of this page results from discussions at the NIAC -meeting 2007 at HMI, Berlin and between Mark Koennecke and Nick Hauser -later on. - -### Summary of OO Discussions at the NIAC Meeting 2007 at HMI - -- People seem to be happy to use a NeXusFile object with methods like - nf.makegroup(..), nf.opengroup(..) etc. as a low level object - oriented API for NeXus files. This approach only encapsulates the - file object and has already been implemented in the Java NeXus API. -- A higher level NeXus OO-API should give access to the NeXus classes - as defined in the instrument definitions. - -### Current State of the NeXus Base Classes - -The current NeXus base classes used for instrument definitions are not -really base classes. They are rather dictionaries or templates which -define names for data items which may be present in a NeXus base class -depending on the actual configuration of the instrument. As such these -NeXus base classes contain lots of fields and concepts which often -confuse both the initiated and the uninitiated. - -### OO-NeXus: Two Paths into the Future - -As things are we have two ways how to proceed with an object oriented -NeXus-API and object oriented definitions: - -- Rework the NeXus base classes in a fully object oriented way using - polymorphism and inheritance. -- A direct mapping of current neXus base classes to objects. - -### Path 1: OO Rework of the NeXus Classes - -This means to perform a full object oriented analysis of the NeXus base -classes using polymorphism and inheritance. This was suggested by Darren -Kelly at the NIAC meeting 2006 at ILL. An example of a [possible class -hierarchy](media:NeXusOBJ.pdf.html "wikilink") was given by Mark Koennecke at -the NIAC meeting 2007 at HMI. There are some advantages to this -approach: - -- Different things, like different detectors, have different names and - this makes the base classes easier to understand. It is easier to - select NXtofareadetector rather then locate all the fields necessary - for such a detector from a dictionary. -- The use of inheritance makes the definitions easier to maintain - because duplications can be avoided through inheritance. -- Choices in the definitions, like the choice of coordinate system or - shapes, can be made explicit by abstract classes and polymorphism. -- Fully OO definitions can be mapped to appropriate classes in *all* - object oriented programming languages. - -But there are serious drawbacks to this approach as well: - -- We need a much extended set of classes. -- Most importantly: we break backwards compatability: OO-NeXus files - would have a deeper nesting structure and other classes. - -### Path 2: Map the current NeXus Classes to Objects - -This means that we directly map the current NeXus base classes hook, -line and sinker into objects in an OO programming language. This has the -huge advantage of backwards compatability: Old and new NeXus files look -alike. We also would not need to vote on new base classes. But there are -disadvantages to this approach, too: - -- We loose the improved maintainability and clarity of the full - OO-approach. But this can be overcome by using the full OO-classes - plus some production rules as a tool for filling the actual NeXus - base classes. An example: you have a TOF area detector? Then suck - all fields for that class plus the inherited ones into your - NXdetector class. Make decisions on choices like coordinate system - on the way. -- The resulting API classes become ambiguous: i.e. different API - detector classes loaded from different files will have different - contents. This is less of a problem for dynamic object systems like - the ones in python, CLOS and smalltalk. Dynamic object system in - this context means that fields can be added at runtime. But there - are many interesting OO programming languages which do not feature - such an open type system: most notably C++ and Java. The problem - with such languages can be solved in a number of ways: - - NeXus base classes become catchalls: i.e. they have fields for - all data items which may possibly be there. And throw errors - when an access for an field without data is attempted. This is - ugly. - - Use some form of RunTime Type Information (RTTI). This can take - the form of a group attribute with a possible name like subtype. - Then the OO-API can read this attribute and create an - appropriate class for this NeXus base class as on Path 1. - Example: the subtype is NXtofareadetector. Then create a - NXtofareadetector API class and fill its data fields from the - content of the file. - -### Questions? - -- Where do we go? Path 1? Path 2? Or a yet to be defined Path 3? -- Do we have more options? - -### Conclusion - -01/2015: This discussion is obsolete. At NIAC 2014 it was decided to -accept interfaces as an experimental feature instead. But this text -still serves as valid statements about the difficulties which the NIAC -encountered when considering to implement OO in NeXus diff --git a/content/Object_Oriented_Interface.md b/content/Object_Oriented_Interface.md deleted file mode 100644 index 8e6d9187..00000000 --- a/content/Object_Oriented_Interface.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Object Oriented Interface -permalink: Object_Oriented_Interface.html -layout: wiki ---- - -For object oriented languages (C++, Java, and Python) it would be good -if there were a common object oriented way of working with NeXus files. -This page is set up for determining the public methods of a “NeXusFile” -object. - - class NeXusFile{ - public: - enum access(READ=NXACC_READ, WRITE=NXACC_CREATE, WRITE_HDF4=NXACC_CREATE4, - WRITE_HDF5=NXACC_CREATE5, READ_WRITE=NXACC_RDWR); - enum compress(COMP_LZW=NX_COMP_LZW,COMP_HUF=NX_COMP_HUF,COMP_RLE=NX_COMP_RLE,COMP_NONE); - - // constructor, default mode is read - NeXusFile(std::string &filename, const access mode=READ); - - // opens the specified absolute path in the file. the path is - // a '/' delimited list of the names to open. If any portion of - //the path does not exist an exception will be thrown. - void openPath(const std::string &path); - - // creates and opens a group. this throws an exception when fails - void make_group(const std::string &name, const std::string &class); - - // creates and opens a data. this throws an exception when fails - void make_data(const std::string &name, const std::string &type, const std::vector - &dimensions, const compress comp_type=COMP_NONE); - }; - -[Peter Peterson](User%3APfpeterson.html "wikilink"), SNS - -Conclusion ----------- - -01/2015 This is now obsolete. Implementations in C++ and python are -available. diff --git a/content/Objects_or_Interfaces.md b/content/Objects_or_Interfaces.md deleted file mode 100644 index 338cadf3..00000000 --- a/content/Objects_or_Interfaces.md +++ /dev/null @@ -1,412 +0,0 @@ ---- -title: Objects or Interfaces -permalink: Objects_or_Interfaces.html -layout: wiki ---- - -Objects or Interfaces -===================== - -There is a need to review the NeXus base classes. They confuse people -because of their unstructured representation of in some cases many, many -fields. I see two main ways how this can be accomplished: Object -orientation and Inheritance or Interfaces and Composition. - -Object Orientation and Inheritance ----------------------------------- - -This should be pretty clear: we define an inheritance hierarchy of base -classes. For example: - - NXarea_detector:NXdetector:NXbeamline_component - -would mean NXarea\_detector inherits from NXdetector and from -NXbeamline\_component. - -Choosing such a solution has a couple of consequences: - -- We would need to define a great number of new NeXus base classes. - This can be even more confusing. -- It is not clear how inheritance can be represented in a data file. -- The OO concept does not fit well: - - Normally OO means encapsulating behaviour with data. NeXus has - no behaviour, only data - - Some people say OO is really about message passing. There are no - messages (yet) in NeXus -- I can imagine situations when single inheritance is not enough and - we need to deal with multiple inheritance. With all its ugliness. - -Interfaces and Composition --------------------------- - -This would imply that we define interfaces in addition to the base -classes. For example beamline\_component, detector, area\_detector etc. -A base class would then get an implements field or attribute which -details which interfaces the base class implements. To stay with the -example above: NXdetector would have an implements field with: -Iarea\_detector:Ibeamline\_component. A base class would then be defined -by the interfaces it can implement, plus mandatory data fields. - -Such an approach has the following consequences: - -- Backwards compatability is maintained. We add a new feature to - NeXus. No need to generate no new base classes. -- No issues with multiple inheritance -- An application can inspect the implements field and from this can - decide what type of detector/ component it is dealing with. -- I have no clue how this can be mapped into NXDL - -NeXus Interfaces: A Possible Implementation -=========================================== - -This is a more detailed outline how NeXus Interfaces might look in -advance of a vote on the issue - -The Problem ------------ - -Quite a number of NeXus base classes have become pretty big. This is due -to the fact that NeXus base classes are dictionaries which hold field -names for all sorts of data items which can be associated with a given -NeXus component. - -A good example is NXdetector: it holds data items to describe all sorts -of detectors, single, area, arbitrarily shaped, with TOF or without etc. -Many users are confused by NeXus base classes because they mistakingly -think that they have to implement all data items even if they do not -make any sense for their application. - -A better structure would clearly help here. One way to structure this -better would be inheritance. This would mean introducing more NeXus base -classes, for example: - -NXsingle\_detector, NXarea\_detector, NXtof\_area\_detector etc which -form a hierarchy rooted at NXbeamline\_component. The applicable fields -for a component would then be derived by travelling the hierarchy. This -comes at the expense of creating many more backwards incompatible -classes. Moreover the inheritance hierarchy cannot easily be encoded in -a HDF5 file. Thus a program looking for NXdetector would need to know -about all its incarnations from an external source. This raises issues -about the maintainability of the external sources. - -The second option to be discussed is to use interfaces, like in Java or -Go. This is a separate set of finer grained dictionaries which are used -to build up the NeXus base classes. - -Examples --------- - -How could the interface method look like for NXdetector? To this purpose -let us define a set of interfaces to work this. I use the prefix NXIF -here for interfaces but this is perfectly arbitrary. - -NXIFbeamline\_component: - -`   distance` -`     @type=translation` -`     @vector=0,0,1` -`   height` -`     @type=translation` -`     @vector=0,1,0` -`   x_translation` -`     @type=translation` -`     @vector=1,0,0` -`   rotation_angle` -`     @type=rotation` -`     @vector=0,1,0` -`   azimuthal_angle` -`     @type=rotation` -`     @vector=0,0,1` -`   meridional_angle` -`     @type=rotation` -`     @vector=1,0,0` - -This is an interface meant to be implemented by all beamline components. -Its purpose is to position the component. - -NXIFmeta: - -`  type` -`  description` - -An interface which contains general meta data about anything - -NXIFsingle: - -`   data` -`     @signal=1` - -A simple interface for data from a single detector - -NXIFscanned\_single: - -`   data[NP]` -`     @signal=1` - -A single detector scanned. NP is the number of scan points - -NXIFarea\_detector: - -`   data[xdim,ydim]` -`     @signal=1` -`     @axes=x_pixel_offset,y_pixel_offset` -`   x_pixel_offset[xdim]` -`     @type=translation` -`     @vector=1,0,0` -`   x_pixel_size[xdim]    ` -`   y_pixel_offset[ydim]` -`     @type=translation` -`     @vector=0,1,0` -`   y_pixel_size[ydim]    ` - -An interface for an area detector. x\_pixel\_offset and y\_pixel\_offset -describe the grid of the detector in the detector coordinate system. The -origin is the mechanical center of the area detector. If the pixel sizes -cannot be determined from the grid span by x\_pixel\_offset and -y\_pixel\_offset, they are given in x,y\_pixel\_size. - -NXIFscanned\_area\_detector: - -`   data[NP,xdim,ydim]` -`     @signal=1` -`     @axes=scan_axis,x_pixel_offset,y_pixel_offset` -`   x_pixel_offset[xdim]` -`     @type=translation` -`     @vector=1,0,0` -`   x_pixel_size[xdim]    ` -`   y_pixel_offset[ydim]` -`     @type=translation` -`     @vector=0,1,0` -`   y_pixel_size[ydim]    ` - -An interface for a scanned area detector. The meaning of -x,y\_pixel\_offset etc are the same as above. One might consider to -allow inheritance for Interfaces. - -NXIFtof\_area\_detector: - -`   data[xdim,ydim,ntbin]` -`     @signal=1` -`     @axes=x_pixel_offset,y_pixel_offset,time_binning` -`   x_pixel_offset[xdim]` -`     @type=translation` -`     @vector=1,0,0` -`   x_pixel_size[xdim]    ` -`   y_pixel_offset[ydim]` -`     @type=translation` -`     @vector=0,1,0` -`   y_pixel_size[ydim]    ` -`   time_binning[ntbin]` - -An interface for an area detector used in time of flight mode. - -NXIF\_arbitrary\_detector: - -`   data[ndet]` -`     @signal=1` -`   distance[ndet]` -`     @type=translation` -`     @vector=0,0,1` -`   height[ndet]` -`     @type=translation` -`     @vector=0,1,0` -`   x_translation[ndet]` -`     @type=translation` -`     @vector=1,0,0` -`   rotation_angle[ndet]` -`     @type=rotation` -`     @vector=0,1,0` -`   azimuthal_angle[ndet]` -`     @type=rotation` -`     @vector=0,0,1` -`   meridional_angle[ndet]` -`     @type=rotation` -`     @vector=1,0,0` -`   ` - -This is an interface to describe a highly irregular detector. A detector -which can only be described by giving full positional and rotational -coordinates for each detector element. ISIS has this kind of detectors. - -NXIFtof\_arbitrary\_detector: - -`   data[ndet,ntbin]` -`     @signal=1` -`   distance[ndet]` -`     @type=translation` -`     @vector=0,0,1` -`   height[ndet]` -`     @type=translation` -`     @vector=0,1,0` -`   x_translation[ndet]` -`     @type=translation` -`     @vector=1,0,0` -`   rotation_angle[ndet]` -`     @type=rotation` -`     @vector=0,1,0` -`   azimuthal_angle[ndet]` -`     @type=rotation` -`     @vector=0,0,1` -`   meridional_angle[ndet]` -`     @type=rotation` -`     @vector=1,0,0` -`   time_binning[ntbin]` - -This is an interface to describe a highly irregular detector used in -time of flight mode. The rest is shared with above. - -To be continued......................... - -How to use such Interfaces --------------------------- - -Of course there have to be rules how to use NeXus Interfaces. The rule -set is simple: - -1. A group attribute implements is added which is a komma separated - list of the interfaces implemented by the component. -2. The software can then expect the fields defined by the interfaces to - appear in the component class. If this is must or optional is to be - discussed. -3. A given NeXus base class can only implement a sensible set of - interfaces. It would be dubious if NXdetector implements - NXIFspallation\_neutron\_source. - -An example is in order. Consider: - -`NXdetector` -` @implements NXIFbeamline_component,NXIFarea_detector` - -Then the following fields go into NXdetector: - -`NXdetector` -` @implements NXIFbeamline_component,NXIFarea_detector` -`   distance` -`     @type=translation` -`     @vector=0,0,1` -`   height` -`     @type=translation` -`     @vector=0,1,0` -`   x_translation` -`     @type=translation` -`     @vector=1,0,0` -`   rotation_angle` -`     @type=rotation` -`     @vector=0,1,0` -`   azimuthal_angle` -`     @type=rotation` -`     @vector=0,0,1` -`   meridional_angle` -`     @type=rotation` -`     @vector=1,0,0` -`   data[NP,xdim,ydim]` -`     @signal=1` -`     @axes=scan_axis,x_pixel_offset,y_pixel_offset` -`   x_pixel_offset[xdim]` -`     @type=translation` -`     @vector=1,0,0` -`   x_pixel_size[xdim]    ` -`   y_pixel_offset[ydim]` -`     @type=translation` -`     @vector=0,1,0` -`   y_pixel_size[ydim]    ` - -Another example: a scanned single detector - -`NXdetector` -` @implements NXIFbeamline_component, NXIFscanned_single_detector` -`   distance` -`     @type=translation` -`     @vector=0,0,1` -`   height` -`     @type=translation` -`     @vector=0,1,0` -`   x_translation` -`     @type=translation` -`     @vector=1,0,0` -`   rotation_angle` -`     @type=rotation` -`     @vector=0,1,0` -`   azimuthal_angle` -`     @type=rotation` -`     @vector=0,0,1` -`   meridional_angle` -`     @type=rotation` -`     @vector=1,0,0` -`   data[NP]` -`     @signal=1` - -Advantages and Disadvantages ----------------------------- - -### Advantages - -What would be the advantages of the NeXus interface approach: - -- We can be far more specific what goes into a base class for a use - case then with the current base class description. -- We can do so without cluttering the namespace with even more base - classes. -- User confusion is reduced. -- The approach is easily extended to new use cases by defining a new - interface for the new use case. -- The interface approach is backwards compatible. We add to NeXus - rather then defining something entirely new. Old files can be - updated to the way of the interface by adding required fields and - the interface group attribute. - -### Disadvantages - -- It is yet another concept and set of rules to teach and learn. - -NeXus Interfaces and Mapping to CIF ------------------------------------ - -When mapping between NeXus and CIF there is a major difficulty: the way -how multiples are handled in CIF and NeXus. Consider an instrument with -two detectors. In NeXus this would map to two NXdetector classes and two -NXdata classes with different names within the hierarchy. - -In CIF one would loop over detector name and all the fields of the base -class. A loop is basically a table. The above example would thus map to -a table with detector\_name and all the fields of the base class as -columns and two rows indexed by detctor name. - -With the current size of the NeXus base classes, this would make for -unwieldly and sparsely populated tables. With NeXus Interfaces this -becomes much more workable. Each NeXus interface would map to a CIF -category(table) and there would be other categories (tables) which -detail the list of components of the instrument and which interfaces are -implemented by each component. - -Herbert solved the problem in his concordance document by appending the -NeXus base class name and the component name together. But this makes -for long and unpredictable CIF category (table) names. - -Where To Go From Here? ----------------------- - -1. All the confusion generated by this document must be resolved. -2. The big thing is: do we want NeXus Interfaces? This requires a vote. -3. Which rules do we use to write NeXus Interfaces. I made something up - for the this example. But, of course, this could be different. -4. How do we document NeXus interfaces? NXDL would be the first call, - but..... -5. Polishing up NeXus interfaces most likely requires a code camp. - ------------------------------------------------------------------------- - -More on Interfaces ------------------- - -There is a branch, interfaces, on the nexus definitions github area -which generates a version of the NeXus manual with Interfaces fully -worked out. Well, how it should look like in my humble opinion. - -Update: 01/2015 ---------------- - -At NIAC 2014 it was decided to accept NeXus Interfaces as an -experimental feature. This means that a special section of the manual -will be written which uses interfaces. This section will be clearly -labelled as experimental. diff --git a/content/Proposal_NeXus_Coordinates.md b/content/Proposal_NeXus_Coordinates.md deleted file mode 100644 index 8f0f4e77..00000000 --- a/content/Proposal_NeXus_Coordinates.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Proposal NeXus Coordinates -permalink: Proposal_NeXus_Coordinates.html -layout: wiki ---- - -The current definition for NXdata groups assumes that the data (or -signal) SDS is, in general, a multidimensional array that can be plotted -against one or more independent axes, equal in number to the rank of the -signal SDS. These axes are defined through the “axes” attribute. -However, there are cases where the data represent a set of pixels that -are defined by their coordinates, i.e., they do not form a -contiguous array. The data would then consist of a one-dimensional -array. At present, such data can only be plotted against a single -one-dimensional axis even if it is distributed in two-, three-, or -higher-dimensional space. If we are to have a standard method of -plotting such data, we need to have a way of identifying the pixel -coordinates. - -Proposal --------- - -An extra attribute be defined for a data (or signal) SDS called -“coordinates”, which would consist of a text string containing the names -of one or more SDSs that represent the coordinates of the signal SDS. -The names will be separated by the same delimiters allowed for the -“axes” attribute. The signal SDS must be one-dimensional. - -There are two scenarios: - -1. The coordinates represent the centre of each pixel, so each - coordinate SDS is also one-dimensional of the same length as the - signal SDS. -2. The coordinates represent the vertices of each pixel, so each - coordinate SDS would be two-dimensional, with the slower changing - dimension having the same length as the signal SDS and the faster - changing dimension having length of the number of vertices - (=2n for cartesian coordinates, where n - is the number of coordinate SDSs. In that case, an attribute - “number\_vertices” containing an integer specifying the number of - vertices will be added to the signal SDS. - -Discussion ----------- - -Here is an example NXdata group: - - -`   ``...` -`   ``...` -`   ``...` - - -One problem is that the coordinates are not necessarily orthogonal. This -is the case for the above example, in which the spherical polar -coordinates, polar\_angle and azimuthal\_angle, are not orthogonal. Any -plotting program will have to know that SDSs with those particular names -have to be treated differently from those that are orthogonal. There may -be a case for the standard stating how to handle a number of specific -instances,e.g., spherical polar coordinates, reciprocal-space -coordinates in symmetries lower than orthorhombic, etc. - -In cases where the plotting program is only able to handle pixel -centres, but vertices are provided, the pixel centres would have to be -approximated by the average value of the vertices for each coordinate. - -I propose to present this for discussion and a possible vote at the -upcoming NIAC meeting at the SNS on October 7-8. - - -[Ray](User%3ARay_Osborn.html "wikilink") 19:08, 29 September 2010 (UTC) - -Conclusion ----------- - -01/2015: This has been superseded by the new axes annotation scheme -decided at NIAC 2014 diff --git a/content/Proposal_NeXus_Errors.md b/content/Proposal_NeXus_Errors.md deleted file mode 100644 index 0ee61ec6..00000000 --- a/content/Proposal_NeXus_Errors.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Proposal NeXus Errors -permalink: Proposal_NeXus_Errors.html -layout: wiki ---- - -The current definition for the [NXdata -group](http://www.nexusformat.org/NXdata) (which, incidentally, is -misleading on the wiki since it implies that the data SDS should be -called “data”) defines an error SDS with the name “errors” (in this -case, the name is fixed). This is a workable solution when -there is only one signal. However, the original plan for NXdata groups -(again, not particularly clear on the wiki) was that they could contain -more than one data SDS. The primary one has the attribute “signal=1”, -but secondary data sets with “signal=2”, etc., were to be allowed. This -is of particular importance to the synchrotron community, who frequently -measure, for example, fluorescence counts in addition to the main -detector counts. In principle, each one of these could have their own -errors, but there is no way in the current scheme to associate different -SDSs with those errors. - -Proposal --------- - -An extra attribute be defined for each data (or signal) SDS called -“errors”, which would be a text string defining the name of the SDS -within the same NXdata group to contain the errors SDS. The rank and -dimensions of the errors SDS must match the signal SDS. The original -method, i.e., associating an SDS with the name “errors” with -the primary signal SDS will be allowed in cases where there is no -ambiguity, and for reasons of backward compatibility. - -Discussion ----------- - -This is analogous to the use of the “axes” attribute to define the -independent axes associated with each signal SDS. However, this -attribute will only ever contain one name, since there is no reason to -associate more than one error array with a single signal array. - -Here is an example NXdata group using the proposed new attribute: - - -`   ``...` -`   ``...` -`   ``...` -`   ``...` -`   ``...` -`   ``...` - - -I propose to present this for discussion and a possible vote at the -upcoming NIAC meeting at the SNS on October 7-8. - - -[Ray](User%3ARay_Osborn.html "wikilink") 16:29, 29 September 2010 (UTC) - -Conclusion: 01/2015 -------------------- - -At NIAC 2014, the NIAC ratified a scheme for describing uncertainties. -See -[2014\_axes\_and\_uncertainties](2014_axes_and_uncertainties.html "wikilink") -and, in a short while, the NeXus manual. diff --git a/content/Proposal_to_Simplify_Nexus.md b/content/Proposal_to_Simplify_Nexus.md deleted file mode 100644 index ea24c3ab..00000000 --- a/content/Proposal_to_Simplify_Nexus.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Proposal to Simplify Nexus -permalink: Proposal_to_Simplify_Nexus.html -layout: wiki ---- - -Proposal to simplify NeXus -========================== - -*E. Farhi (ILL), A. Gotz (ESRF), R. Ghosh (ILL), D. Richard (ILL), M. -Johnson (ILL), R. Wilcke (ESRF)* - -This document presents conclusions and proposals from the NeXus ILL/ESRF -Local Advisory Committee (NLAC). - -NeXus *raison d'etre* -===================== - -- NeXus is an exchange format to all n,X,muon scattering techniques in - large facilities. - - This implicitely limits the scope of NeXus to all that is common - to these techniques, while excluding instrument/technique - peculiarities. Further descriptions (instrument details) are in - principle out of scope, but may be specified as extensions to - the basis requirements. - - The scientific data set is intrinsically the most important to - physicists, compared with the exact instrument definition (which - is essentially relevant for instrument debugging and simulation - purposes). The official 'base' NeXus format should focus on the - former rather than the latter. -- NeXus must be easy to use. - - This means that there is an efficient API (and this is the case, - thanks Mark K.) - - At the same time, NeXus should be flexible enough to potentially - evolve from HDF and XML towards other physical storage format - (Open Document, ...) -- NeXus must be appealing for people to voluntarily use it (in - programs). - - This means that the format structure must be clear, simple and - easy to understand. This is probably the most important point, - otherwise it will push people to develop their own NeXus format, - or event use their own non-NeXus format (based on HDF or not) - - The NeXus web server must present usage examples and distribute - associated software. -- NeXus must be flexible and expandible. - - This means that there should be a recommanded mechanism for - extension of the 'base' NeXus into 'proprietary' NeXus. At the - same time, a clear statement must be done concerning a limited - number of absolute requirements, as well as 'official' - recommandations for extensions. -- The scientific Data must be immediately visible in the NeXus - structure, as well as essential parameters for the data analysis. - This means that the NXData must be directly in the NXentry, that - essential parameters should be as well there (in an NXparameters - class, see below). Further information (NXinstrument, ...) is - optional. - -Format requirements -------------------- - -### Proposal R1: Simplified NeXus hierarchy - -The base NeXus format should contain the following hierarchy: - -`NXentry` -`   NXdata` -`   NXsample` -`   NXparameters` - -Other classes should be mentioned as optional, eventhough NXmonitor and -NXuser are recommanded. - -### Proposal R2: simplified NXdata - -`   * rename 'long_name' into 'label' in 'variable'` -`   * suppress 'first_good' and 'last_good'` -`   * add a 'range' attribute to 'variable' so that it can be given as a regularly sampled range.` - -=== Proposal R3: scanning mechanism (dim <= 3) === - -For low dimensionality data sets (dim <= 3), the scan may be stored -as a array in the NXdata, with associated axis. - -### Proposal R4: scanning mechanism (general): NXgroup - -As an alternative, or for higher dimensionality, each scan step is -stored as a single NXdata, with one 'master' NXgroup describing how to -assemble scan steps into series. The assembling mechanism is to be -discussed further. - -### Proposal R5: the NXparameters class - -As an alternative to the NXinstrument, which brings usually too much -information as required for a basic data analysis, a new NXparameters -class should be defined next to the NXdata, and gather 'important' -parameters to be used by scientists. The NXparameter is a kind of -'abstract' of NXinstrument. The list of these parameters should be -defined per class of instrument, based on requirements from existing -data analysis programs (FullProf, INX, Sqw, Dave, Isaw, Nathan, ...), to -be discussed further. Format extensions (optional) - -### Proposal E1: NXinstrument is optional - -The NXinstrument class is optional. No NXinstrument class should be -specifically defined as 'official'. However, some examples per class of -instrument will be available to programmers. Indeed, as all instruments -as essentially unique, no description can cope with all of them. The -usage of NXinstrument usually concerns instrument simulations (McStas, -Vitess, NISP, ResTrax, IDEAS, ...) as well as exact configuration (e.g. -for repeating experiment and debuging purposes). - -### Proposal E2: NXinstrument vs NXdata and redudancy - -If present, NXinstrument should contain all the relevant information -concerning the instrument parameters. In order to prevent redundancy for -the data set (in detector and NXdata), the usage of links is required. A -NXsample class should better appear in the NXinstrument as a link to the -NXentry/NXsample. One or more NXmonitor class should better appear in -the NXinstrument as a link to the NXentry/NXmonitor. - -### Proposal E3: positioning and distances - -The 'official' mechanism for distance/geometry specification is -NXgeometry. It derives from McStas positioning system. Other distance -specification attributes defined within NXinstrument objects should be -avoided. - -### Proposal E4: no object definition - -The usage of objects and inheritance is not envisaged as it bring too -much complexity in the associated definitions. We rather promote a -simplification of the existing NeXus. - -### Proposal E5: grouping of equivalent elements - -The NXgroup class could be used to assemble other items than scan steps -in order to define super-classes, e.g. sets of detectors and -monochromators. diff --git a/content/ReflectDiscuss.md b/content/ReflectDiscuss.md deleted file mode 100644 index 279d9f68..00000000 --- a/content/ReflectDiscuss.md +++ /dev/null @@ -1,557 +0,0 @@ ---- -title: ReflectDiscuss -permalink: ReflectDiscuss.html -layout: wiki ---- - -Three files as a starting point for discussion ... the idea is to come -up with reflectometer definitions based on inheritance from other -definitions such as [TOFRaw](TOFRaw.html "wikilink") - -- outline the parts of tofraw needed for reflectometry. -- create a reflectometry base -- create a TOF reflectometry from base+tofraw - - - - - - - - - - * - intensity - {Suggested spectrum measurement for intensity vs. wavelength - for a given slit setting. Warning: beam profile is not - regular, but this effect is accomodated in the spectrum measurement. - May measure monitor versus detector or monitor vs. monitor or - simply absolute detector counts for a particular slit setting.} - - * - background - {Suggested background measurement; needed for point detector measurements} - - * - background - {Suggested background measurement} - - - - - ? - {Angle relative to the scattering plane, not to gravity.} - - {Reflectometry characterization of samples is much more complex than - given in NXsample.} - - - - - - - - - {Slits defining the beam width and possibly the height relative - to the surface of the sample.} - - - - - ? - ? - - ? - ? - - - ? - - - ? - { Need all fields so that we can calculate shadow of beam stop on detector. } - - - - - { Angle of the detector relative to the scattering plane. } - - - { Indicate sense of scattering: 0 is front surface of sample, - 180 is back surface of sample. If 180, change the sign of the - reflected angle in the data. It is also possible for the beam - to enter the substrate from the side and reflect off the back - surface of a film, in which case negative angles can be - interpreted as inverting the scattering length density profile - of the film (after accounting for absorption in the substrate. } - - - - - - - ? - - - - - { "intensity"|"background"|"specular"|"rock"|"slice"|"area" } - - ? - { "++"|"+-"|"-+"|"--"|"+"|"-" } - - - - - ? - - - * - { Various logs for temperature, field, etc. which are assumed to - be constant over the duration of the run. The reduction program - should be able to display their values on a parallel graph. Note - that logs are not necessarily sampled synchronously with the - data points. } - - - - - - - NXmonoref - - - - - {|Q|}? - - - - - - - - - - - - - - ? - - - - - - ? - - - - ? - ? - ? - ? - ? - ? - ? - ? - ? - - - - - - - ? - - { Reduction software needs to ignore Q values outside the range - defined by the choppers. The T0 chopper is phased to the source - to block fast neutron and gamma flash. The frame overlap - chopper is set to select low wavelength neutrons (those from - the current pulse) or high wavelength neutrons (those from - the previous pulse. - - On a properly tuned instrument, the time bins recorded in - the detector will reflect the actions of the choppers and - these fields can be ignored. } - - - ? - - - { The frame overlap mirror is used to eliminate very long wavelength - neutrons from previous pulses. Together with the choppers, this - helps to choose which pulse to use in the TOF calculations. On a - properly tuned instrument the time bins recorded in the detector - will account for the actions of the mirror. - - There will be some attenuation but this will be compensated for - when correcting for the spectrum scan. - - For an ab initio calculation, you would need to store the angle - wrt the beam to compute the cutoff angle but often this will not - be explicit since the instrument is simply tuned to have the - correct cutoff. } - - - - - -also one from the old SWIKI - - - NXtofnref.xml - - - - - {Name of instrument} - - - - - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of target along beam path} - {Optional description/label}? - {Sequential order of component along beam path}? - - - - - - {"Engineering" position of moderator}? - {Effective distance as seen by measuring radiation}? - - { "H20" | "D20" | "Liquid H2" | "Liquid CH4" | "Liquid D2" | "Solid D2" | "C" |"Solid CH4" | "Solid H2"}? - {Poison depth}? - {whether the moderator is coupled}? - { Gd | Cd |...} - {average/nominal moderator temperature} - {log file of moderator temperature} - {moderator pulse shape} - - {Position and orientation of moderator}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of moderator along beam path} - - - - * - - - {} - {} - {Reflectivity as function of wavelength [nsurf,i]} - {} - {} - "vacuum"|"helium"|"argon" - {external material outside substrate} - {} - {} - {} - {} - {} - {} - {number of substrate sections} - - {Position and orientation of guide}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of guide along beam path} - - - - - ? - - - - - - {Chopper type single|contra_rotating_pair|synchro_pair}? - {chopper rotation speed}? - {Number of slits} - {angular opening} - {disc spacing in direction of beam}? - {radius to centre of slit} - {total slit height} - {chopper phase angle}? - {pulse reduction factor of this chopper in relation to other choppers/fastest pulse in the instrument}? - {Effective distance to the origin}? - {low and high values of wavelength range transmitted}? - - {Position and orientation of chopper}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of chopper along beam path} - - - - * - {Absorbing material of the aperture}? - {Description of aperture}? - - {Position and orientation of aperture}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of aperture along beam path} - - - - + - "Fission Chamber"|"Scintillator"? - "monitor"|"timer"? - {preset value for time or monitor}? - {Distance of monitor from sample position}? - {Monitor efficiency as a function of wavelength}? - {Proportion of incident beam sampled by the monitor} - - {Position and orientation of monitor}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of monitor along beam path} - - - - - - {} - {} - {Reflectivity as function of wavelength} - {} - {} - "vacuum"|"helium"|"argon" - {external material outside substrate} - {} - {} - {} - {} - {} - {} - - {Position and orientation of mirror}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of aperture along beam path} - - - - * - - - {} - {} - {Reflectivity as function of wavelength} - {} - {} - "vacuum"|"helium"|"argon" - {external material outside substrate} - {} - {} - {} - {} - {} - {} - - {Position and orientation of polariser}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of aperture along beam path} - - - - * - - {coil|current-sheet}? - {Number of turns/cm in flipping field coils}? - {Number of turns/cm in compensating field coils}? - {Number of turns/cm in guide field coils}? - {Flipping field coil current in "on" state"}? - {Compensating field coil current in "on" state"}? - {Guide field coil current in "on" state"}? - {thickness along path of neutron travel}? - - {Position and orientation of flipper}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of aperture along beam path} - - - - + - - {Total time of flight} - {Identifier for detector}? - - {Data values}? - - {Data values} - {offset from the - detector center in x-direction}? - {offset from the - detector center in the y-direction}? - - - - {name/manufacturer/model/etc. information}? - {Position and orientation of detector element}? - {translation normal to direct beam}? - {Solid angle subtended by the detector at the sample}? - {Size of each detector pixel. If it is scalar all pixels are the same size}? - {Size of each detector pixel. If it is scalar all pixels are the same size}? - {Detector dead time}? - {Delay in detector registering an event}? - {Detector gas pressure}? - {maximum drift space dimension}? - {Crate number of detector}? - {Slot number of detector}? - {Input number of detector}? - "He3 gas cylinder"|He3 PSD"|"He3 planar multidetector"| "He3 curved multidetector"| "multi-tube He3 PSD"|"BF3 gas"|"scintillator"|"fission chamber"? - {Efficiency of detector with respect to e.g. wavelength}? - {date of last calibration (geometry and/or efficiency) measurements}? - {summary of conversion of array data to pixels (e.g. - polynomial approximations) and location of details of the calibrations}? - - {Position and orientation of aperture}? - - {(x,y,z) position coordinates relative to origin at sample position}? - - - {The orientation information is stored as direction cosines relative to origin at sample position.} - - - {"nxcylinder", "nxbox", "nxsphere", ...}? - { nshapepar dimensions for selected shape}? - - {Sequential order of aperture along beam path} - - - - diff --git a/content/SAS.md b/content/SAS.md deleted file mode 100644 index 999c0660..00000000 --- a/content/SAS.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: SAS -permalink: SAS.html -layout: wiki ---- - -Small-Angle Scattering -====================== - -2006-04-19 ----------- - -Given the complex requirements for initial data treatment on pulsed -source SANS instruments there has been general agreement to separate -these from the much simpler pin-hole geometry cameras used for -monochromatic X-ray and Neutron SAS studies, shown together below as -NXmonosas. - -2006-10-05 ----------- - -Effort was made to simplify the definition below, correct errors (such -as removed fields that did not exist in base classes), and remove -unnecessary information. - -Suggest that this be called *NXsas\_mono\_area* (very cumbersome) since -the fields are appropriate to SAS instruments with area detectors at -monochromatics sources. The definition does not match well to other -types of SAS instrument such as USAS, Kratky, step-scanning, or -slit-camera with PSD. - -2006-10-06 ----------- - -A description of the wavelength and possibly a spectral description -(either vague or detailed such as a spectral profile) is needed for -analysis software to account for not only wavelength but wavelength -smearing and other spectral effects (high-order harmonics, for example). -Due to the variety of optics used to provide such a beam, rather than -define each of those possible optics in the generic instrument -definition, we define the spectral properties of the beam incident on -the sample that results from all the upstream optics. - -Two possible ways: - -- Object-oriented approach - - This needs a new base class since a generic SAS description will - define wavelength using generic hardware; not everyone has - helical velocity selector or a crystal monochromator. X-rays are - admittedly the more tedious case. - - NXspectrum might be a good choice. - - NXwavelength\_selector is more to the point. - - NXmonochromator is our choice. This will sit well next to - NXbending\_magnet, NXcrystal, NXinsertion\_device, NXmirror, - NXmoderator, and NXvelocity\_selector. - - - -- NXbeam - - Imperfect becuase NXbeam was intended for the simulation - community despite the note in the documentation about beamline - use. The fields are not entirely appropriate and some questions - will often arise. - - - - - - - - - {Name of instrument}? - - - "neutron"|"x-ray" - - - - - {The nominal fraction of the beam transmitted by the attenuator} - - - - - {location and shape of aperture} - - - {location and shape of collimator} - - - - - {characteristics of beam at sample} - {selected wavelength} - - {wavelength distribution full width at half maximum}? - - ? - - - - - {Data values}? - - - {distance between sample and detector} - - - {X-direction pixel coordinate on the detector with origin at detector center}? - - - {Y-direction pixel coordinate on the detector with origin at detector center}? - - - {signal from detector when not illuminated}? - - - - {x,y position of straight-through beam (a.k.a. beam center) on the detector}? - - - - {shape, orientation and position of the beam stop} - - {"in"|"out"} - - - - - - "monitor"|"timer"? - - {preset for terminating measurement} - - {Monitor value} - - - {signal from monitor when not illuminated}? - - - - {Elapsed actual counting time, the time the instrument - was really counting, without pauses or times lost due - beam unavailability} - - - - - - + - - {link to detector counts in NXdetector} - - - {link to x_offset in detector group} - - - {link to y_offset in detector group} - - - - diff --git a/content/Scaled_Data.md b/content/Scaled_Data.md deleted file mode 100644 index 03591061..00000000 --- a/content/Scaled_Data.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Scaled Data -permalink: Scaled_Data.html -layout: wiki ---- - -Scaled Data ------------ - -This suggestion is one of the outcomes of the NeXus for Synchrotrons -Workshop at PSI: - -The Suggestion --------------- - -NeXus STRONGLY suggests to store data as arrays of physical values in C -storage order. However, for cases where this is not possible or would -cause an efficiency concern when writing allow to store raw data. Such -data must be annotated with additional attributes as described below in -order to allow reading software to reconstruct the true physical value. - -The Reasoning -------------- - -The data rates possible at synchrotron facilities and the new pixel -detectors test current computing technology to their limits. There may -not be enough time to scale or convert data on the fly before writing to -disk. In some occasions significant space savings can be obtained by -storing data as short integers and scaling them to the desired floating -point values. - -In the formulas below Vtrue denotes the true value of the data item, -Vraw the one which is stored in the data element on file. The attributes -are: - -- transform: This is the indicator that a transformation of the Vraw - data is necessary. Transform can have one the following values: - - offset: Vtrue = Vraw + offset - - scaling: Vtrue = Vraw \* scaling - - scaling\_offset: both an offset and scaling is applied. Vtrue = - Vraw\*scaling + offset - - sqrt\_scaled: Vtrue = (Vraw/scaling)\*(Vraw/scaling) - - logarithmic\_scaled: Vtrue = (Vraw/scaling)\*\*10 - - polynomial: Vtrue = p1 + p2\*Vraw + p3\*Vraw\*Vraw + - p4\*Vraw\*Vraw\*Vraw .... -- offset: The offset to apply -- scaling: The scale factor to apply -- direction: a komma separated list of length ndim which specifies for - each dimension if it is increasing or decreasing. If this attribute - is missing, increasing is implied. -- precedence: a komma separated list of length ndim which gives the - rank order in which array indexes change with respect to other - indexes. A precedence of 1 denotes the fastest changing index. If - this attribute is missing, C storage order is implied. -- coefficients, a komma separated list of the polynomial coefficients - to use for a polynomial transform - -Update 01/2015 --------------- - -There was some discussion on this at NIAC 2010 and 2012. IMHO, the -result was that all fixed schemes fall over in some point when people -come up with new scaling schemes. It was decided to devise a NXformula -base class to solve this problem. There was some further discussion on -scaling in 2014 in the mailing list and on the teleconferences. At NIAC -2014 it was decided to accept a NXformula base class as suggested by Ben -Watts as an experimental feature. diff --git a/content/Scans.md b/content/Scans.md deleted file mode 100644 index ce84ea37..00000000 --- a/content/Scans.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Scans -permalink: Scans.html -layout: wiki ---- - -This page is currently under construction ------------------------------------------ - -When completed, this page will be used as the basis of a discussion on -how to represent scans within a NeXus file. It will bring together ideas -and discussions from [TOFRawScan](TOFRawScan.html "wikilink"), - and [GenericScan](GenericScan.html "wikilink") - -### What is a Scan - -In its broadest sense, a scan is a set of measurements where parameters -have been varied in a systematic way. These separate measurements may -all be stored in the same file (via an additional array dimension or -additional separate [NXentry](NXentry.html "wikilink")), several files or a -mixture of the two schemes. - -Issues ------- - -The goal is to be able to identify what parameters have been varied as -part of the scan. Some of the issues to consider are: - -- How to build parametric scans such as 10 temperatures for 5 fields. -- How to identify all files associated with a scan. -- How to identify whether a particular file is associated with a scan. -- What to do if a part of the scan is missing? -- What if the scan is not rectilinear? - -NXscan proposal ---------------- - -Three proposals: - -### NXscan proposal - Mark - -` ` -`   ` -`   ` -`   ` -`   ` -`     {comma separated list of scanned variables}` -`   `` ` -`   ` -`     {comma separated list of path strings to the scan variables in the file}` -`   ` -` ` - -### NXscan proposal - Paul - - - - {value store is the minimum and maximum of variable range. - - label and units help you create the axis labels for the plot. - - num_points is the number of points intended in the scan (the - actual value may be less if the scan was aborted). The intended - number may be indefinite, in which case it is absent. - - index is the position in the scan if the scan spans multiple - entries, or it is absent if all scan points are within this entry. - index is 1-orgin. - - if index is specified, it has an associated value, otherwise the - values will need to be stored elsewhere in the entry. where? - Can value be the name of a field? - - For raster scans axis will be 1, 2, 3, ... and primary will be 0 - For each axis there should be a single primary. - - For dependent variables axis will be the 1, 2, 3, ... for the variable - it is dependent upon and primary will be 1. You can have any number - of dependents. - } - - - - - <-- Example temperature scan --> - - - 10,100 - - - - <-- Example raster scan --> - - - 0,10 - - - 5,8 - - - -### NXscan - Ray - -Link entry to next entry in the scan in some way so that the system can -find all the pieces by itself. diff --git a/content/Simple.gif b/content/Simple.gif deleted file mode 100644 index 34bb2ee73f4e83bbb804a399307cca5b5046ca0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5920 zcmW-gc~sI_*vEgYvZ+6JEi!Ol%20E!2C&@PP%{;mRK~1u%pxmg>P1DHXZ#dCqh0eZJ?O`^SxrjS3CRwu8n22EgC= z1H+GHLT@zaO;xWq8ubRFUTLruqtU8VTBTmA)M<=HjaIMG>NKV^jY^}`sSHMy-lRdLGpckt)sI;dN|n;2TqW13 zWIC0^lr}1LI;B>t)M%9^aOcA=Ar!?}E2A)#OQ)+l}6;Ed1$@Dy# zmM1gyN}fc=lgN2OF;6Ju34}bJfXC(WOsNDpSE=X9ja<2bE7x)*dahW<6>GU-4Ogt> ziX~j3iYt_Jg)*){%oPZ^0)Z*VHIX3W#>v=9BU`R#%ZzN9fi2OqB|5f5!9AY!;hMm9eQ3mfXma7+7LGORQswH7ucyC6KdtCS@$1gvAxI*j&>r zi)E6<3X`z>O^TTkJyWb>3Uy4bfXS9H*%{1XHX2^^TnSmiOG9(6uSkDmZ83HYX zEo87v3K%AcVuquTE-})DI=VndXY%MwE}hP#n*fD$lrTYTOkm3r7~BK~JAuwhFk#vR z1aWj`T!KkPTwENLDW=j{R4O$rER0Ab0{;*38yxbZS@xs+_!9ui2tZKy7^!He9A)E^ zJ|=A$IRd)I31hm>->Pv8-1TIv>$lP4gvg`#*zOCr8@v)b(jU`G%dqyDna#zNij8*O zw$dlJdoJEPM=r-K!F0bwSOx7y##_zZX(Tx8vpy3i>v-6i(z7XvVw0E9y5USF$|b4u zanFwX9T{msLmMvdzTtQ1dq5SU_u$7@Pw!s+oqCG%Ogq?(RII;n*v2<=ysztyqBP_Y zF2RwLHc%VL)Q(?cQN~IW+oUsj(=*t!iJh4f;l2~%^lQTw1Fie{;OudvkMn81F@&D7 z@e}%nqnW3!U;po)>fBBJIk4Lcwhe70v^^7^{bZxB73WzQj(+3}7T;G0;aVqzW^)}1 z`5@aTG)Z*O1zvjdmt=0yx&+_&sp+H3UVQ-~NJ_6+9_ey}x&&C;2!)4Vn`3P76DyX$ zec}T))x>zTr`q3D&tKqao_wv}5j?$8n^M2B2$CI`!~t<-+^!AwurNrpfDdX5CQp$)0J`&*MITk8f=31&c8a*Svk6o(`(JW(ay3i1}sQoCa z>jadrDWh~Brmsa&vm3QG zRsenK&2Opp=*&;53HIlg0c79hk*mMYTeJNkU?S8X;yp}x%`aXC2c@nz$-PLQn-ZwF zyF=1<8FSQs@Dv2d_HetMmUn2R!<- z@UpD?{(|2CYWp8b!h3kXXYfd}E zrwctbN_=T*P8Xc*g}wRu8vK2DH`$Cf?%VMWbH(rB2j?(8csQp-<900z;!q2FkrP

A{5j~gA=UlVcJS&GB%c4>t?0DH5G1BXO4-|>h^#rm{(T?f z*VXh^a?pe3Qw_4^`O=$<`X0D$cn5up_ljB_)i{fIN1R|I?4>7wKDh@U!0+z$ZUjGF zjtGF?y%Zj#`_LWf3G_p!JGQFPSG3cMQBFy+#aBdd0zVYFJZBQMKIJ(uzCPB^LPQvJ z%Jm4%Y5rMCss=1ZY^s}Ki>x1AEzNdA$R1A}t_`eSE*Y|90&sf^a&MWJVl(l+y6X}I zMw~yt>~+d$fKbZYqaZ_yT^eSM%9fU`73&Wd7ElPZ< zrA=|mC&k6eCWa8_QRjMj*)qTQoe+YCRzp8nW?3Sl+O>&}tnetz+b}TpCEa?tJ-w5T zX(K~%Sky@RnPF5x5A8&FSs`xLH zAqrYWHIJSjg80yk(50WU&XmkY+D-Rias%!ab8OU$_O?J@WI@Q;Y2~O&#tozd5`+r` z-KO}^z1Gu!Rh7a=mr}86ON-^99q@oW^u4+{DuI+b?B+a!z-}Nz%*NWoV&g^|I&4pN zrnJ5Ye(q|R_xdF&=uXi4#Ni!FVAg%*bolsARozRX`0oeh&Re^Vl6tqeJ(O+>dcaYX z;XJB+IwBSJdwI#sk)f}gCP-_oG>PQp^ z?iSODhke&Xxs};nZeB*Q=2rx++u;T;q(HMs@G3+yDv~n<+Z75YD#(m zhX5yZI9tMg+R>fRdFY_8=k?R(6)BuN%=-(GUNf2o1{%tLit6?& zh$8KAMZG}X`QCr~;VQyN_85tmi?4M2>!1u->PJW*Pru4M(YSXm$3JYc3h_I&8|i(* zX5N-$txE#AR}|qx2NVJ8SK}^ZTcy=GGdl^jm*rZV}z`O$J>zG=`o5 z%$$YMs6s_UdMo_Y-}?%joje{qOaB?c~|X^XAa%llbycVN#Ls5LmIb*ZT6Y!dqo^`TXGG1W2**!WFXv zL!Cu}b&udP-FG2`9Y+fZGd5k7!@k3vRrhvGnH9IArb|bt?*uA;yvPj)Q|8kIb4=w3FB4E@^j{y1lFZU!t4={rN>0$TQSu?@%hk>$_!#fhP!&t4jM9- zgRGv$NT)HE7c!o&10!H&sM#Bl9z^roS}{3+i!H!fll{_eN(0*zZg6gFrEB);4M z&CY?gVEv+j!4E}#QVTxAw~YeeqtKMO&`$R>3Ds_e82mY=K$v`ig)*w{cd04_XvepM_)OQQ}N3;Cc1)=0EmQyC;Nec7Gvj2 zKi6~42JXRlfwP>dM>CW(q$}^isz|b5@A>RQ9w5G#)Al@cQB+K7^onPZpm!mMVzo6B zK%XyY^+Iy~QnKAX5!ZUO;(qGMpb5KYF-_geni5$GzTB z?xrh<_~>I_4%#bx$I7Y`P`tZY`vLN<7sh~a+76I@(G&6B)BhzhwQx;J$g$78Vf%8b zb|3J|mTsGjvAre&n1tG;?PYFKSiE{4soAW08YczJFRM|Prg83n@Ly0pR;=}~^zf^0 z1sDloV_rXzN5c%k72cx|z76SuG8gtS448(8n*j}|fLuiL+JI)K*=k$JQ3tfuNr&3i zV9D--jVaZQsgE0jy_m01HSP*`%8X{?4lzO%7f0VO8_NpikAj-si}}+c{%jj$ugX+QLRbtcZv% zM}?!hx7Vuyb7_o4tbM?Nq3kS;$M3`0sUn->Fwb8SLTRT~rjjeZp5)zQoEo#=6(H~| z$O1r;1v-zjgay%LxndN)J|Hpi4unaMISb=COomKcIcE`Hwrc@B9wvhCIyvryV35i$ zPveff!o5(Nzc7L|(`5np6bQ*Baudxn-?O6aF~1YdPwU4$I>`UB<516h_C&+(o)^pd z!_E=zlWxX>iA^ihTbox|HOdN6DSyLO9c^TQh|M%)#i_RH{x%io0+N_sG8~i&Kz7}+ zXkVbd2EERC$0lkn9e!S@uRQidm*&=l&<#VH=8@eY@USbm&G$nps0U2%(2(Gnd7%|e zmzOjhI1XF>nsfRa+VybjMKlF}m}6FVdrt(=Hhxlsx`XLdi=zI-mWwcR>XXQ>R==#! z5f{7OVGA%UAmBvy5PExYS$yIyFy^Gd;s9_L*zsR97|$r>!Xb%$xaQ##!#N$6twk@R z{2h&74i#iIQ0lOYIoKlv(YTYeMF(T>&B{5b4k-rrN~BU?u&;5sMb?qv2{S91FY&nZ zQ1kbGkVAH=T__veb@KYF&T>+dbp8rD99gbLearfNs3@)Cd7c9waXTFJ;Uj+E3&|D% zcoICB6tEBkKcC9@lDI8Wx&oRFOhO=)rx#-YShC{s=KHM&2V(iYeGb!CH@L#%;{c&A zJS1FTIl!aVVO==bqa@@OwQw`}3L_1f%Wiut!c>WR%W24`d`oX?ebCnJmNLla{Lj_(ZPbzh#sa*Y*4C*;^%UZ& zu(n9r!L<~00T~_Y@$1$)>}(n;x^r;X>npHJgVYj5OQ8j2&kY{2%)T@##NTP-p2giI zOT_``qkK`50(1R4e6y&xNraM;usW$CvMY0K>F#i59W~xO|LY(mT@jq#)&yXM3#jkv z=Ef$gD67SBL$-o0+rhg8KAF;`z%-E*A^GTRZ=9B9sTm-Ed}T@gX1Ak*y`>lc1r>R87(10gX80u!0%3XZ!L4Yb8F+(C*zu5Cl>Bl6k{gR z>PfQ{=WBdy--7oU-o(rCyB_IQMO{l572yRCboNJlV*9u*{oZh=%x(|xm}ui8g+x=< zwKhO0()DiLx7QF)eG#f9@5gVxunwJ3ht=5}#yM}vQAZ3xHd1e3bkmM6Y zJ4RT$+M{9pfnKTy$j4l|dSL*#*dc#({izLF4KJ8R9tX^B{_>=r^yKzipse89jyEI(p ze~H{zzvioa=1>a&(jI3L)qk#b4u&i>n>m5|)+eb)Y}+36X?xAHkb_Ih!zS+g&#|5Z zIw2%KV$8%fcK;ll1b>pWJk)h+0R3vNaA#(&CuD|v{^<~JmaDndgtqgqF|LD zqV#$0XqeUfY))o!Wta1c?9iA%&6}2&>tFa=hHjDM>|c6XkpJeTpO%#Lu^{vQRr|9% zaAcO@JfAY@8uorehP4gzzg6z>LvsjX_{qiTZ^$w6J=bkS|(LIpMnTy4B;qLare}YJR+M#!J$a@ocy#)}*(AF!B z7*`fh0Mw0CuK5rJylXGuI90Sezg1+sG$@}XE1v-i?K>#LQ`)y{i0a_@TTGa}kLZ$* zVt#2nZ`0IYTJ5_M$~xzID3|!OQ!7g*K&O6TyOomvefREvuRH$n+_j)|Wz=Wq;(zt1 zdj$Q@$?*fpc8v?*ako+NGjrSb_Q#!{{cAf*bbdBC>~{D)Ve=9Ph2>ZB2ao^x;J*8V S`?(LVzz=?wA0QAQ;{O1#*^Zq6 diff --git a/content/Storing_Event_Data.md b/content/Storing_Event_Data.md deleted file mode 100644 index 0a443e5d..00000000 --- a/content/Storing_Event_Data.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Storing Event Data -permalink: Storing_Event_Data.html -layout: wiki ---- - -This discussion concerns a proposal from [NIAC2008](NIAC2008.html "wikilink") -to rename [NXevent\_data](NXevent_data.html "wikilink") as NXtofevent\_data. -When this proposal was passed to the full committee, a number of issues -were raised and it was decided that a further round of discussion was -required. - -Please comment on the proposals below on the [discussion -page](Talk:Storing_Event_Data.html "wikilink") - -Listed below are some of the main reasons cited for and against: - -REASONS FOR ------------ - -- NXtofevent\_data better describes the content of the object, given - that [NXevent\_data](NXevent_data.html "wikilink") has a - “time\_of\_flight” member - -REASONS AGAINST ---------------- - -- Event data is potentially of importance to the other communities and - therefore it would be good to ensure that the definition name for - event data is as general as possible. Event data is not always - measured against “time\_of\_flight” - it may be e.g. muon decay time - and so a more general “event\_time” axis may be applicable - - - -- I'm not sure why the addition of “tof” is necessary. Pulsed source - and chopped continuous source event data can be represented in ways - that are substantially the same. By renaming the fields we can - handle different kinds of events in the same manner, so there is no - need to change the group name to be specific to time of flight - - - -- NXtofevent\_data is an ugly name. NXtof\_event\_data is a better - name, or just NXevent\_data - -PROPOSAL from Paul Kienzle regarding contents of NXevent\_data --------------------------------------------------------------- - -First note that either pulse\_height or pulse\_time is the wrong name. - -- pulse\_height\[i,k?\] refers to the voltage pulse measured by the - detector -- pulse\_time\[j\] refers to the time that the neutron pulse reached - the moderator - -The description of the pulse\_height field is confusing. It refer to -events\_per\_pulse, which has length j but it's own index is of length -i, so something is screwy. - -I suggest renaming time\_of\_flight to event\_time and pulse\_time to -frame\_time and you have something that can be used either for -continuous or pulsed sources. - -- event\_time\[i\]: time relative to the start of the frame -- pixel\_number\[i\]: detector which registered the event -- frame\_time\[j\]: time relative to the start of the measurement -- events\_per\_frame\[j\]: as before -- pulse\_height\[i,k?\]: detector voltages - -The frame\_time for continuous sources presumably refers to the time -when the detector was turned on after moving the motors during a scan -for multi-point scans. When scanning continously (a potentially useful -measurement during alignment operations), the frame time would more -likely refer to the pulses from the motor position detectors. - -Conclusion ----------- - -01/2015: There was no activity on this for a long time. There is a -NXevent\_data base class and both SNS and ISIS are writing data files -using that base class. Please consult the documentation of the base -class for the current state. diff --git a/content/TOFRaw.md b/content/TOFRaw.md deleted file mode 100644 index b4294921..00000000 --- a/content/TOFRaw.md +++ /dev/null @@ -1,675 +0,0 @@ ---- -title: TOFRaw -permalink: TOFRaw.html -layout: wiki ---- - -NXTOFRAW - A proposal for a NeXus Time-of-Flight Raw Data File Format - -Introduction ------------- - -[NeXus](http://www.nexusformat.org/) is moving onto the idea of -inherited incremental definitions as discussed at the last meeting of -the [NeXus International Advisory Committee (NIAC)](NIAC.html "wikilink") – -for example with powder diffractometers there is a definition for both -time focussing and total scattering with one being a subset of the -other; a file can conform to one or both. The initial work on this -definition comes from discussions between [SNS](https://neutrons.ornl.gov/sns/), -[J-PARC](http://j-parc.jp/index-e.html) and -[ISIS](https://www.isis.stfc.ac.uk/) - the three facilities are interested -in having a unified base for all instruments to allow for low level -instrument debugging tools to be used, without change, in a given -facility. Further discussions occured in the [TOF Breakout Group at NIAC -2006](TOF_Group.html "wikilink") - -An example file is available in [HDF4 -(2MB)](http://download.nexusformat.org/TOFRAW/examples/hrp08639.nx4), -[HDF5 -(2MB)](http://download.nexusformat.org/TOFRAW/examples/hrp08639.nx5) and -[XML(16MB)](http://download.nexusformat.org/TOFRAW/examples/hrp08639.xml) -format as well as a [basic -DTD](http://download.nexusformat.org/TOFRAW/examples/TOFRAW.xml). - -For historical information see the [draft proposal for an ISIS NeXus -based RAW data file format](pdfs/Isis_nexus_016.pdf "wikilink"). - -Goal of the Definition ----------------------- - -The definition/format should: - -- Be general i.e. not specific to any particular instrument type and - so can be used as a common root/parent format across all instruments - at a facility -- allow the sharing of diagnostic and “first look” data/detector - display programs between the facilities. -- provide a common input format to metadata capture programs (such as - the ISIS ICAT search interface) - -With the above in mind the instrument components of most importance are -the ones related to the detector, data, user, sample and sample -conditions; other instrument components are, of course, needed for -analysis but will be covered by specific NeXus instrument definitions. -The NeXus classes we will ultimately consider are then: - - NXroot - NXdata - NXdetector - NXentry - NXgeometry - NXinstrument - NXlog - NXmoderator - NXmonitor - NXsample - NXuser - NXevent_data - NXsource - NXdetector_group (proposed) - -Some of these classes, such as NXgeometry, are taken directly from what -was ratified by the [NIAC](NIAC.html "wikilink"). - -Conventions Used in this Document ---------------------------------- - -A tabular format is used for ease of viewing and printing rather than -the [NeXus XML meta-DTD format](Metaformat.html "wikilink"). The Name column -in a table identifies an item in an instance of a NeXus class. Items can -have extra “meta data” associated with them, which are called attributes -– these, if any, are listed in the next few lines in the attributes -column. Any variables in the attributes column are always attached to -the previous variable in the Name column above them; if the Name of the -variable is the same as the class (e.g. NXfile), then the attributes are -associated with an instance of that class (global) and not to any of its -specific members. - -### Identifying Mandatory and Optional Components - -The following convention will be used: - -- Variables in **bold** in the Name column of tables are mandatory – - they must be present in ALL NeXus files; otherwise they are optional - and their inclusion will depend on the instrument, experiment or - presence of other items in the class (see the class description of - usage) -- Variables in *{italics}* in the Name column are examples of names - and any variable name can in fact be used; variable names in normal - type mean that exact name must be used -- Anything in red is currently an extension to - NeXus - -This information is also included in a RE column (the name derives from -the fact that a “Regular Expression” is used here in the [XML DTD -format](Metaformat.html "wikilink")). Thus: - -| Font/style in Name Column | RE Column | Meaning | XML DTD symbol | -|---------------------------|-----------|--------------------------------------------------------------------------------------------------------|----------------| -| Something | 0/1 | A single instance of this variable may be present (optional) – if it is, it must be called “something” | ? | -| **Something** | 1 | A single instance of this variable must be present (mandatory) and called “something” |   | -| *{Something}* | 0+ | Zero or more variables of this type/class may be present (optional) and can have any unique name(s) | - | -| **{Something}** | 1+ | One or more variables of this type/class must be present (mandatory), but can have any name(s) | + | - -The above convention dictates that the name for any item that occurs -only 0 or 1 times is fixed; this is not required by the current NeXus -standard, but would add clarity and ease of location if followed. - -### Naming - -We will try and name logged variables (type NXlog) such that they end in -the \_log suffix - -NeXus Classes -------------- - -### NXroot - -The root is not a real class in the NeXus file, it is a convenient name -under which to group the global attributes of the file. This is taken -directly from the NeXus technical reference without change. - -| RE | Name | Attribute | Type | Value | Description | -|-----|---------|----------------------------------------|----------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 1 |   | NeXus\_version | NX\_CHAR |   |   | -| 0/1 |   | HDF\_version | NX\_CHAR |   |   | -| 0/1 |   | HDF5\_version | NX\_CHAR |   |   | -| 0/1 |   | XML\_version | NX\_CHAR |   |   | -| 1 |   | creator | NX\_CHAR |   |   | -| 1 |   | file\_name | NX\_CHAR |   | Original file name | -| 1 |   | file\_time | NX\_CHAR |   | Original creation time of file | -| 1 |   | file\_update\_time | NX\_CHAR |   | Last time file contents were changed | -| 1 |   | initial\_format | NX\_CHAR |   | Initial format file was created in (HDF4,HDF5 or XML) | -| 1+ | {entry} |   | NXentry |   |   | -| 0/1 |   | unique\_id | NX\_CHAR |   | UUID to uniquely identify file (even if name changes .etc). Maybe useful to have it in the NXentry instead so that you can indentify where an entry comes from even if it is copied into a new file? | - -### NXentry - -This is the top level group in a file that contains a complete set of -information (e.g. a “run”) - raw, reduced, and analyzed data can occur -in the same file, each as a separate NXentry . The definition below is -taken from the NeXus technical reference changing some elements to be -required rather an optional. Additional items are highlighted in -red. - -This definition covers a single run experiment - extensions are proposed -for [scan type experiments](TOFRawScan.html "wikilink") - -#### NXentry - -| RE | Name | Attribute | Type | Value | Description | -|------|-----------------------------------------------|-----------------------------------|-------------------------------|----------------|----------------------------------------------------------------------------------------------------------------------------------| -| 0/1 | title |   | NX\_CHAR |   | run title | -| 1 | definition |   | NX\_CHAR |   | Official NeXus definitions this file conforms to | -| 1 |   | URL | NX\_CHAR |   |   | -| 1 |   | version | NX\_CHAR |   |   | -| 0/1 | definition\_local |   | NX\_CHAR |   | Local definition this file also conforms to – this will describe the meaning of any additional local data items etc. | -| 1 |   | url | NX\_CHAR |   |   | -| 1 |   | version | NX\_CHAR |   | This would correspond to the ISIS Muon IDF\_Version | -| 1 | start\_time |   | ISO8601 |   | Time data collection started | -| 1 | end\_time |   | ISO8601 |   | Time data collection ended | -| 1 | duration |   | NX\_FLOAT |   | wall clock time transpired (end – start) | -| 1 |   | units | NX\_CHAR | second |   | -| 1 | collection\_time |   | NX\_FLOAT |   | Time transpired actually collecting data i.e. taking out time when collection was suspended due to e.g. temperature out of range | -| 1 |   | units | NX\_CHAR | second |   | -| 0/1 | proton\_charge |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR | microAmp\*hour |   | -| 0/1 | raw\_frames |   | NX\_INT |   | number of proton pulses on target | -| 0/1 | good\_frames |   | NX\_INT |   | number of proton pulses used (i.e. not vetoed) | -| 0/1 | total\_counts |   | NX\_INT |   | Total number of detector counts (events) | -| 1 | experiment\_identifier |   | NX\_CHAR |   | proposal number | -| 0/1 | discipline |   | NX\_CHAR |   | Keyword domain (e.g. chemistry, astronomy, ecology, … ) | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information (proposal, updated during experiment, after, ...) | -| 0/1 | keyword |   | NX\_CHAR |   | Keywords defined for this study. | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | keyword\_source |   | NX\_CHAR |   | A pointer to a reference work providing the definition of the restricted vocabulary of which the keyword list is a subset. | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | subject |   | NX\_CHAR |   | Subject categorisations for this study | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | description\_summary |   | NX\_CHAR |   | Brief summary of the experiment, including key objectives | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | description |   | NXnote |   | Description of the full experiment (document in pdf, latex, …) | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | requirement |   | NX\_CHAR |   | Special requirements of instrument | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | publications |   | NX\_CHAR |   | List of publication related to the proposal | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | facility\_access\_type |   | NX\_CHAR |   | Facility access type (normal, rapid access, programme access …) | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 0/1 | grant\_id |   | NX\_CHAR |   | Identifier of the funding grant. | -| 1 |   | info\_src | NX\_CHAR | propsal | Source of the information | -| 1 | run\_number |   | NX\_INT |   | Unique number identifying this data collection | -| 0 /1 | run\_cycle |   | NX\_CHAR |   |   | -| 0/1 | program\_name |   | NX\_CHAR |   |   | -| 1 |   | version | NX\_CHAR |   |   | -| 0/1 |   | command\_line | NX\_CHAR |   |   | -| 0/1 | release\_date |   | NX\_CHAR |   | Date of the public release of the data. (file\_time + X years) | -| 0/1 | revision |   | NX\_CHAR |   | Revision id of the file due to re-calibration, reprocessing, new analysis, new instrument definition format, ... | -| 0/1 | notes |   | NXnote |   | User notes | -| 0/1 | thumbnail |   | NXnote |   |   | -| 1 |   | mime\_type | NX\_CHAR | image/\* |   | -| 0+ | {characterisation} |   | NXcharacterization |   |   | -| 1+ | {user1,user2,…} |   | NXuser |   |   | -| 1 | {sample} |   | NXsample |   |   | -| 1 | {instrument} |   | NXinstrument |   |   | -| 1+ | {monitor} |   | NXmonitor |   |   | -| 1+ | {data} |   | NXdata |   |   | -| 0/1 | {process} |   | NXprocess |   |   | - -### NXuser - -As denoted in NXentry, there can be multiple NXuser, one for each person -involved with an experiment. This definition of user requires only a -name and a facility identifier and this is taken directly from the NeXus -technical reference changing some elements to be required rather an -optional. - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------------------------------|-------------------------------------|----------|-----------------------------------------------|---------------------------| -| 1 | name |   | NX\_CHAR |   |   | -| 0/1 |   | info\_src | NX\_CHAR | “proposal”, “updated”, “corrected”, “logging” | Source of the information | -| 0/1 | role |   | NX\_CHAR | “local\_contact”,”Principle Investigator”, … |   | -| 0/1 | affiliation |   | NX\_CHAR |   |   | -| 0/1 | address |   | NX\_CHAR |   |   | -| 0/1 | telephone\_number |   | NX\_CHAR |   |   | -| 0/1 | fax\_number |   | NX\_CHAR |   |   | -| 0/1 | email |   | NX\_CHAR |   |   | -| 1 | facility\_user\_id |   | NX\_CHAR |   |   | -| 0/1 | affiliation\_id |   | NX\_CHAR |   |   | - -### NXsample - -This list is limited to items that were desired by the group. See the -NeXus technical reference for a full list of possible items. - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------------------------------|-----------|------------|------------------------------------------|---------------------------------------------------------------------------------------------| -| 1 | Name |   | NX\_CHAR |   |   | -| 1 | identifier |   | NX\_CHAR |   | Identity given to the sample by health physics or sample environment. (Could be a bar code) | -| 0/1 |   | Type | NX\_CHAR | e.g.“barcode |   | -| 0/1 | chemical\_formula |   | NX\_CHAR |   |   | -| 0/1 | mass |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | volume |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | geometry |   | NXgeometry |   |   | -| 1 | nature |   | NX\_CHAR | solid | powder | liquid | single crystal |   | -| 0/1 | preparation |   | NX\_CHAR |   | Sample handling/preparation prior to experiment | -| 0/1 | changer\_position |   | NX\_INT |   | Sample changer position | -| 0/1 | sample\_holder |   | NX\_CHAR |   |   | -| 0/1 | preparation\_date |   | ISO8601 |   |   | -| 0/1 | thickness |   | NX\_FLOAT |   | | -| 0/1 | temperature |   | NX\_FLOAT |   | | - -#### Sample environment parameters - -By these we mean “temperature”, “magnetic\_field” etc. which may be -considered to be outside of the remit of this document, but we will just -add a reminder that if the file represents a scan then these values will -be annotated as described in the NXentry section. - -### NXinstrument - -This is the class that contains all information about instrument -components except the monitors and sample (which are just inside the -NXentry). This is taken directly from the NeXus technical reference -changing some elements to be required rather an optional. - -| RE | Name | Attribute | Type | Value | Description | -|-----|----------|-------------|--------------------------------------------|-------|------------------------------------| -| 1 | name |   | NX\_CHAR |   |   | -| 1 |   | short\_name | NX\_CHAR |   |   | -| 1 | beamline |   | NX\_CHAR |   | Beamline instrument is attached to | -| 0/1 |   |   | NXsource |   |   | -| 0+ |   |   | NXdisk\_chopper |   |   | -| 0+ |   |   | NXfermi\_chopper |   |   | -| 0+ |   |   | NXvelocity\_selector |   |   | -| 0+ |   |   | NXguide |   |   | -| 0+ |   |   | NXcrystal |   |   | -| 0+ |   |   | NXaperature |   |   | -| 0+ |   |   | NXfilter |   |   | -| 0+ |   |   | NXcollimator |   |   | -| 0+ |   |   | NXattenuator |   |   | -| 0+ |   |   | NXpolarizer |   |   | -| 0+ |   |   | NXflipper |   |   | -| 0+ |   |   | NXmirror |   |   | -| 1+ |   |   | NXdetector |   |   | -| 0+ |   |   | NXdetector\_group |   |   | -| 0+ |   |   | NXbeam\_stop |   |   | - -### NXmonitor - -| RE | Name | Attribute | Type | Value | Description | -|-----|-----------------------------------------|-----------|------------------|-----------------|-------------------------------------------------------| -| 0/1 | mode |   | NX\_CHAR | monitor | timer |   | -| 0/1 | preset |   | NX\_FLOAT |   |   | -| 0/1 | distance |   | NX\_FLOAT |   |   | -| 0/1 |   | units | NX\_CHAR | metre |   | -| 0/1 | range |   | NX\_FLOAT\[2\] |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | integral |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | integral\_log |   | NXlog |   | Time log of monitor integrals | -| 0/1 | type |   | NX\_CHAR |   |   | -| 1 | time\_of\_flight |   | NX\_FLOAT\[i+1\] |   |   | -| 1 |   | units | NX\_CHAR | microsecond |   | -| 0/1 | efficiency |   | NX\_FLOAT\[i\] |   |   | -| 1 | data |   | NX\_FLOAT\[i\] |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 1 |   | signal | NX\_INT |   |   | -| 1 |   | axes | NX\_CHAR |   |   | -| 0/1 | sampled\_fraction |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR | unitless |   | -| 0/1 | geometry |   | NXgeometry |   |   | -| 0/1 | monitor\_number |   | NX\_INT |   | If monitors are numbered, this is what it is known as | -| 0/1 | detector\_number |   | NX\_INT |   | Detector/spectrum number for this monitor | - -Note that for a position sensitive monitor detector\_number etc. will -need to be an array and NXmonitor will have other fields and look more -like NXdetector. - -### NXdetector - -We will now look at possible representations of the detector – we will -start with a general one and then consider the special case of an area -detector. Though the general (point) detector representation would cover -all cases, if the detector is physically “rectangular” in nature there -are advantages in using this symmetry in the representation. Which -representation is used is recorded in the layout -attribute - -#### Point Detector - -The general representation is to consider a detector as just a group of -pixels arranged in no particular order. Each pixel will be identified by -a unique single index i and then the following information will be -stored: - -| RE | Name | Attribute | Type | Value | Description | -|-----|-------------------------------------|-----------|------------------|----------------------|--------------------------------------------------------------| -| 1 | layout |   | NX\_CHAR | point | How detector is represented | -| 1 | detector\_number |   | NX\_INT\[i\] |   |   | -| 0/1 | polar\_angle |   | NX\_FLOAT\[i\] |   |   | -| 0/1 | azimuthal\_angle |   | NX\_FLOAT\[i\] |   |   | -| 0/1 | solid\_angle |   | NX\_FLOAT\[i\] |   |   | -| 0/1 | distance |   | NX\_FLOAT\[i\] | distance from sample |   | -| 1 | time\_of\_flight |   | NX\_FLOAT\[j+1\] |   | Bin boundaries | -| 0/1 |   | units | NX\_CHAR | Micro.second |   | -| 0/1 | time\_of\_flight\_raw |   | NX\_INT\[j+1\] |   | in DAQ clock pulses | -| 0/1 |   | units | NX\_CHAR | Clock\_pulses |   | -| 0/1 |   | frequency | NX\_FLOAT |   | Clock frequency of acquisition system (Hz) | -| 1 | data |   | NX\_FLOAT\[i,j\] |   |   | -| 0/1 | geometry |   | NXgeometry\[i\] |   | These will be relative to “Origin” below | -| 0/1 | group\_index |   | NX\_INT\[i\] |   | Detector grouping information – see NXdetector\_groups class | - -The detector data would be plotted with axes (detector number, tof) by -any program. An NXgeometry object included in the detector contains -arrays that store the position and orientation of each pixel. As this -detector representation imposes no constraint on the relationship -between pixels, a single NXdetector could represent the entire -instrument (so long as all detectors have the same time\_of\_flight) – -however in practice an NXdetector and NXdata would be created for each -bank. The “origin” object provides a reference point for the pixel -geometries – the “shape” part of origin is the bounding box of the -entire detector/detector bank. - -#### Linear Detector - -Here we mean a collection of linear straight strips e.g. tubes. We have -two indicies: **j** will label the strip/tube and **i** the position -along the tube. All tubes must have the same number of pixels; if not, -you must use the point detector representation above. The tubes do not -need to be parallel - they just need to be straight. Thus: - -| RE | Name | Attribute | Type | Value | Description | -|-----|-------------------------------|-----------|--------------------|-----------------|------------------------------------------| -| 1 | layout |   | NX\_CHAR | linear | How detector is represented | -| 1 | detector\_number |   | NX\_INT\[i,j\] |   |   | -| 1 | polar\_angle |   | NX\_FLOAT\[i,j\] |   |   | -| 1 | azimuthal\_angle |   | NX\_FLOAT\[i,j\] |   |   | -| 1 | distance |   | NX\_FLOAT\[i,j\] |   |   | -| 1 | time\_of\_flight |   | NX\_FLOAT\[k+1\] |   | Bin boundaries | -| 0/1 |   | Units | NX\_CHAR | Micro.second |   | -| 1 | raw\_time\_of\_flight |   | NX\_INT\[k+1\] |   | in DAQ clock pulses | -| 0/1 |   | Units | NX\_CHAR | Clock\_pulses |   | -| 0/1 |   | Frequency | NX\_FLOAT | Clock frequency |   | -| 1 | data |   | NX\_FLOAT\[i,j,k\] |   |   | -| 0/1 | geometry |   | NXgeometry\[i\] |   | These will be relative to “Origin” below | -| 0/1 | pixel\_offset |   | NX\_FLOAT\[j\] |   | 0 at origin | -| 0/1 | pixel\_size |   | NX\_FLOAT\[j\] |   |   | -|| - -By specifying both size and offset “dead space” between pixels can be -accounted for. - -This looks similar to a point detector, but with two array indices -rather than one. However note the geometry information is different - as -the tubes are straight we need only specify a location of the tube -centre and an offset along the tube. Thus: - -- NXgeometry geometry\[i\] \# defines tube/strip centre; each NXshape - member give the tube size and shape; each NXorientation member - rotates the axes such that **x** points along each tube. -- pixel\_offset\[j\] \# offset from tube centre of each pixel centre -- pixel\_size\[j\] \# size of each pixel - -#### Area Detector - -A flat rectangular area detector could be described by the “general” -representation above, but taking account of the two dimensional symmetry -of the detector allows several potential savings in the calculation of -angles and in plotting time of the data. An area detector will have -indices (i,j) indexing each pixel with i along the local detector “x” -axis and j along the local detector “y”. In the case of curved detectors -the offsets and sizes are to be considered as arc lengths along the face -of the detector. An offset of “0” is the origin of the detector and the -NXgeometry named “origin” describes the geometry of the entire detector: -the NXtranslation part describes the position of the detector, the -NXorientation part defines the local coordinates (local x and y axes) -with respect to the global position, and the NXshape describe the size -(bounding box) and topology of the detector as a whole. The NXgeometry -named “geometry” describes the pixels and their shape (assuming that -they are uniform). The necessary shapes are: rectangular prism, -cylindrical slice, and spherical slice. - -Below are the three cases for describing the pixels on a detector. - -| RE | Name | Attribute | Type | Value | Description | -|-----|----------------------------------|-----------|--------------------|-----------------|----------------------------------------------------------------------------------------| -| 1 | layout |   | NX\_CHAR | area | How detector is represented | -| 1 | detector\_number |   | NX\_INT\[i,j\] |   |   | -| 1 | polar\_angle |   | NX\_FLOAT\[i,j\] |   |   | -| 1 | azimuthal\_angle |   | NX\_FLOAT\[i,j\] |   |   | -| 1 | distance |   | NX\_FLOAT\[i,j\] |   |   | -| 1 | time\_of\_flight |   | NX\_FLOAT\[k+1\] |   | Bin boundaries | -| 0/1 |   | Units | NX\_CHAR | Micro.second |   | -| 1 | raw\_time\_of\_flight |   | NX\_INT\[k+1\] |   | in DAQ clock pulses | -| 0/1 |   | Units | NX\_CHAR | Clock\_pulses |   | -| 0/1 |   | Frequency | NX\_FLOAT | Clock frequency |   | -| 1 | data |   | NX\_FLOAT\[i,j,k\] |   |   | -| 0/1 | geometry |   | NXgeometry\[i,j\] |   | These will be relative to “Origin” below | -| 0/1 | x\_pixel\_offset |   | NX\_FLOAT\[i\] |   | 0 at origin | -| 0/1 | x\_pixel\_size |   | NX\_FLOAT\[i\] |   |   | -| 0/1 | y\_pixel\_offset |   | NX\_FLOAT\[j\] |   | 0 at origin | -| 0/1 | y\_pixel\_size |   | NX\_FLOAT\[j\] |   |   | -| 0/1 | x\_radius |   | NX\_FLOAT |   | If we are curved, the radius of curvature ( \*\_offset above will then be arc lengths) | -| 0/1 | y\_radius |   | NX\_FLOAT |   | If we are curved, the radius of curvature ( \*\_offset above will then be arc lengths) | - -You can either specify an NXgeometry\[i,j\] for the pixels or instead -use the x\_pixel\_\* arrays. By specifying both size and offset “dead -space” between pixels can be accounted for. - -azimuthal\_angle, polar\_angle and distance can be left out of -NXdetector as they can be calculated from the detector geometry - -**Hardware ganging of detector elements** - -In some cases individual detector elements are ganged together by the -acquisition system for symmetry reasons or to create a smaller data -files. In these cases the above formalisms can still be used, but the -“detector number” does not correspond to a real physical detector and so -the values of “polar\_angle”, “distance”, “azimuthal\_angle” are some -sort of average over the ganged elements. When analysis and simulation -of the data is performed, it is sometimes necessary to know the details -of the individual detectors that have been ganged together. An initial -proposal was that these additional arrays would be stored with the -“\_unganged” suffix e.g. “Polar\_angle\_unganged”, “distance\_unganged”, -“detector\_number\_unganged”. However after discussions of [TOF -Group](TOF_Group.html "wikilink") if was decided to move these arrays into a -substructure of NXdetector so we would have NXdetector.polar\_angle and -NXdetector.distance for the ganed values; -NXdetector.unganged.polar\_angle and NXdetector.unganged.distance for -the raw values. - -To relate the ganged and unganged arrays, a simple grouping scheme can -usually be used: detector.unganged.grouping\[j\] give the value \[i\] -detector.polar\_angle\[i\] that this detector contributes to. This -covers most cases, except for when a detector may have its signal fed -into more than one place; in which case a more complex mapping scheme is -needed. - -To cover the general case the “unganged” arrays are arranged so that -elements that are ganged together appear sequentially and information to -relate these arrays to the hardware ganged “polar\_angle” etc arrays are -provided by - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------------------------|-----------|--------------|-------------------------------------------------------|-------------| -| 0/1 | gang\_count |   | NX\_INT\[i\] | Number of physical detectors elements ganged together |   | -| 0/1 | gang\_index |   | NX\_INT\[i\] | Index of first ganged element |   | - -Detector\_number\[i\] is ganged from gang\_count\[i\] elements. The -values of polar\_angle\[i\] was obtained by average the gang\_count\[i\] -values of polar\_angle\_unganged\[gang\_index\[i\]\], -polar\_angle\_unganged\[gang\_index\[i\]+1\], … , -polar\_angle\[gang\_index\[i\]+gang\_count\[i\]-1\] - -### NXdata - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------|------------|----------------------|-------|---------------| -| 0/1 |   |   | NXdata |   |   | -| 1 | data |   | NX\_FLOAT\[i,j,k,m\] |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 1 |   | long\_name | NX\_CHAR |   | Title of data | -| 1 | time\_of\_flight |   | NX\_FLOAT\[k+1\] |   |   | -| 0/1 | x\_pixel\_offset |   | NX\_FLOAT\[i\] |   |   | -| 0/1 | y\_pixel\_offset |   | NX\_FLOAT\[j\] |   |   | -|| - -The exact format of this will depend on the NXdetector definition used. - -### NXmoderator - -The moderator is the effective source for all time-of-flight -instruments. This is taken directly from the NeXus technical reference -changing some elements to be required rather an optional. Additional -items are in red. - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------|-----------|-------------|--------|------------------------| -| 1 | distance |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 1 | type |   | NX\_CHAR |   | The moderator material | -| 0/1 | poison\_depth |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | coupled |   | NX\_BOOLEAN |   |   | -| 0/1 | poison\_material |   | NX\_CHAR |   |   | -| 0/1 | temperature |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR | Kelvin |   | -| 0/1 | temperature\_log |   | NXlog |   |   | -| 0/1 | pulse\_shape |   | NXdata |   |   | -| 0/1 | geometry |   | NXgeometry |   |   | - -### NXgeometry - -This group describes the shape, position, and orientation of a -component. Almost all of the information is actually stored in -subgroups. This is taken directly from the NeXus technical reference -without change. - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------|-----------|---------------|-------|--------------------------------------------| -| 0/1 |   |   | NXshape |   |   | -| 0/1 |   |   | NXtranslation |   |   | -| 0/1 |   |   | NXorientation |   |   | -| 0/1 | description |   | NX\_CHAR |   |   | -| 0/1 | component\_index |   | NX\_INT |   | Position of component along the beam path. | - -The sample has a component\_index of 0, components upstream have -negative component\_index. - -### NXlog - -Contains log information monitored during the run in a timed fashion. -This can contain the time-stamped values, or the average (with standard -deviation), minimum, maximum and total time log was taken. This is taken -directly from the NeXus technical reference without change. - -| RE | Name | Attribute | Type | Value | Description | -|-----|--------------------------------------|-----------|---------------------|-------|----------------------------------------------| -| 0/1 | time |   | NX\_FLOAT |   | relative to “start” | -| 1 |   | units | NX\_CHAR |   |   | -| 1 |   | start | ISO8601 |   | start time of logging | -| 0/1 | value |   | NX\_FLOAT / NX\_INT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | raw\_value |   | NX\_FLOAT / NX\_INT |   | e.g. voltage from thermocouple | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | description |   | NX\_CHAR |   |   | -| 0/1 | average\_value |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | average\_value\_error |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | minimum\_value |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | maximum\_value |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | duration |   | NX\_FLOAT |   |   | -| 1 |   | units | NX\_CHAR |   |   | -| 0/1 | display\_name |   | NX\_CHAR |   | short name displayed on instrument dashboard | -| 0/1 | software |   | NX\_CHAR |   | program or software used to measure value | -| 0/1 | hardware |   | NX\_CHAR |   | hardware used to measure value | - -### NXorientation - -| RE | Name | Attribute | Type | Value | Description | -|-----|-------|-----------|-----------------------|-------|------------------------------------------------------------------------------| -| 0/1 |   |   | NXgeometry |   | Link to another object for relative positioning | -| 0/1 | value |   | NX\_FLOAT\[numobj,6\] |   | The orientation information is stored as 6 direction cosines for each object | - -### NXshape - -| RE | Name | Attribute | Type | Value | Description | -|-----|-------|-----------|--------------------------------|---------------------------|-------------| -| 0/1 | shape |   | NX\_CHAR | nxcylinder|nxbox|nxsphere |   | -| 0/1 | size |   | NX\_FLOAT\[numobj, nshapepar\] |   |   | -| 1 |   | units | NX\_CHAR | metre |   | - -The interpretation of the “shapepar” depends on the “shape” - -### NXtranslation - -| RE | Name | Attribute | Type | Value | Description | -|-----|----------|-----------|-----------------------|-------|-------------------------------------------------| -| 0/1 |   |   | NXgeometry |   | Link to another object for relative positioning | -| 0/1 | distance |   | NX\_FLOAT\[numobj,3\] |   |   | -| 1 |   | Units | NX\_CHAR | metre |   | - -### NXevent\_data - -This requires that a Pixel\_number field is provided in the NXdetector -for determining geometry information. While normally this takes the -place of the NXdata in a NXentry, there is no reason that the two cannot -coexist. The index I runs over events - the index j runs counts pulses. - -| RE | Name | Attribute | Type | Value | Description | -|-----|--------------------|-----------|-------------------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 0/1 | time\_of\_flight |   | NX\_INT\[i\] |   | A list of time of flight for each event as it comes in. This list is for all pulses with information to attach to a particular pulse located in events\_per\_pulse | -| 1 |   | units | NX\_CHAR | Micro.second |   | -| 0/1 | pixel\_number |   | NX\_INT\[i\] |   | There will be extra information in the NXdetector to convert pixel\_number to detector\_number. This list is for all pulses with information to attach to a particular pulse located in events\_per\_pulse | -| 0/1 | pulse\_time |   | NX\_INT\[j\] |   | The time that each pulse started with respect to the offset | -| 1 |   | Units | NX\_CHAR |   |   | -| 1 |   | Offset | ISO8601 |   |   | -| 0/1 | events\_per\_pulse |   | NX\_INT\[j\] |   | This connects the index “i” to the index “j”. The jth element is the number of events in “i” that occured during the jth pulse | -| 0/1 | pulse\_height |   | NX\_FLOAT\[I,k?\] |   | If voltages from the ends of the detector are read out this is where they go. This list is for all events with information to attach to a particular pulse height. The information to attach to a particular pulse is located in events\_per\_pulse | - -### NXsource - -| RE | Name | Attribute | Type | Value | Description | -|-----|-----------|-----------|-------------|---------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| -|   | NXsource |   |   | Name of source |   | -| 1 | name |   | NX\_CHAR |   | Facility name | -| 1 | type |   | NX\_CHAR | “Spallation Neutron Source” | ”Pulsed Reactor Source” | ”Reactor Neutron Source” | “Synchrotron X-ray Source” |   | -| 1 | probe |   | NX\_CHAR | “neutrons” | “muons” | “x-rays” |   | -| 1 | frequency |   | NX\_FLOAT32 |   | Frequency of pulsed source at the target “at target” allows for the main proton beam being split with.g. 1 in 5 pulses diverted to another target | -| 1 |   | units | NX\_CHAR | Hertz |   | -| 0/1 | period |   | NX\_FLOAT |   |   | -| 0/1 |   | units | NX\_CHAR | microseconds | Length of an acquisition frame | -| 0/1 | notes |   | NX\_TEXT | Source/facility related messages or announcements during the experiment | At ISIS, the MCR beam messages | - -### NXdetector\_groups - -This class is used to allow a logical grouping of detector elements -(e.g. which tube, bank or group of banks) to be recorded in the file. As -well as allowing you to e.g just select the “left” or “east” detectors, -it may also be useful for determining which elements belong to the same -PSD tube and hence have e.g. the same dead time. - -| RE | Name | Attribute | Type | Value | Description | -|-----|---------------|-----------|--------------|----------------------------------------|-------------------------------------------| -| RE | Name | Attribute | Type | Value | Description | -| 1 | group\_names |   | NX\_CHAR |   | Comma separated list of name | -| 1 | group\_index |   | NX\_INT\[i\] |   | Unique ID for group | -| 1 | group\_parent |   | NX\_INT\[i\] | Index of group parent in the hierarchy | -1 means no parent i.e. a top level group | -| 1 | group\_type |   | NX\_INT\[i\] | Code number for group type | e.g. bank=1, tube=2 etc. | - -For example of we had “bank1” composed of “tube1”, “tube2” and “tube3” -then Group\_names would be the string “bank1, bank1/tube1, -bank1/tube2,bank1/tube3” Group\_index would be {1,2,3,4} Group\_parent -would be {-1,1,1,1} - -The mapping array is interpreted as group 1 is a top level group -containing groups 2, 3 and 4 - -A group\_index array in NXdetector give the base group for a detector -element. diff --git a/content/TOFRawScan.md b/content/TOFRawScan.md deleted file mode 100644 index 892eba73..00000000 --- a/content/TOFRawScan.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: TOFRawScan -permalink: TOFRawScan.html -layout: wiki ---- - -NXTOFRWSC - proposed extensions to NXTOFRW to provide a NeXus -Time-Of-Flight Raw Data File Scan Format - -Introduction ------------- - -This document defines extensions to the [single run -format](TOFRaw.html "wikilink") to deal with scans and ISIS period type -experiments; the same conventions used there apply here. - -### NXentry - -One question that is the subject of much debate is whether a single -NXentry should only describe a single measurement or whether it could -contain several measurements. The single measurement case is outlined in -[TOFRaw](TOFRaw.html "wikilink") and we outline here two possible methods of -storing multiple measurements. - -#### Type 1: linking entries to describe scans - -Often each scan point will be written as an NXentry in a separate file -e.g. the scan is controlled by some external script. In this case all -that is needed is: - -1. a way to identify which files belong together -2. preferably, a way to quickly identify what is changing during the - scan without having to compare all items in the file - -A suggestion for (1) is to have a “scan\_id” variable so that all files -with the same value of “scan\_id” will form part of the same scan; the -element scan\_point will indicate the scan point (1, 2, 3, …). If -scan\_id is set to the “run\_number” of the first scan point, it will be -guaranteed not to conflict with any other scans or run as the run number -is unique for a given file (and often part of the file name). - -| RE | Name | Attribute | Type | Value | Description | -|-----|-------------------------------------|-----------|----------|-------|----------------------------------------------------------------------------------------------------------------------| -| 0/1 | Scan\_id |   | NX\_INT |   | Allows Entries that are part of the same scan to be identified. This could be the run number of the first scan point | -| 0/1 | Scan\_point |   | NX\_INT |   | the point within a scan. 1=first, 2=second etc | -| 0/1 | Scan\_total |   | NX\_INT |   | Number of points in this scan i.e. number of separate NXentries making up the scan | -| 0/1 | Scan\_labels |   | NX\_CHAR |   | comma separated list of titles/labels for each scan point | - -For (2) above there are two choices: either tag each variable that is -being varied with an extra attribute called e.g. “scanned”, or link all -the variables that are being scanned into an “NXscan” structure. If an -NXscan structure is decided on, then scan\_id above should probably be -moved into this rather than be in NXentry. - -In the case of a scan of two variables, we could set scanned=1 for the -fastest varying variable and scanned=2 for the second fastest etc. Note -that the notion of “fastest varying” depends, of course, on the order -that you read the files in - this notion tells you which is varying -fastest if the files are read in numerical run number order. Note that -the “scanned variable” is a hint to the reading program and tells you -what is being scanned over the whole measurement - if you just picked -two files at random then only one of the many marked “scanned” variables -would have changed and it is up to the reading program to work out which -one. - -If several NXentry objects are written to the same file to describe scan -points, it would be useful to have a naming convention so that they -could be ordered quickly. NeXus convention is that entries are called -“entry1”, “entry2”, … maybe for scans this could be extended to -“entry1\_1”, “entry1\_2” for scan points 1 and 2 etc. - -#### Type 2: containing multiple measurements - -*Note: we are considering splitting “single measurement” and “scan” into -separate definitions - see the **discussion** tab for more information* - -Sometimes a scan is set up and directed by the data acquisition -electronics itself. An example would be when you want to perform a very -rapid scan of e.g. temperature or to rapidly swap between two states -(e.g. laser on and laser off). What is different about this situation -compared to above is that no data is transferred from the acquisition -system (and so no file written) until the scan is complete. Such a -situation could be treated by the same mechanism as above, but has -traditionally been done by adding an extra array dimension to the data -and the varying variables rather than writing additional files. - -To illustrate this rather than having “entry1.sample.temperature”, -“entry1.detector.counts\[i\]”, “entry2.sample.temperature” and -“entry2.detector.counts\[i\]” we would just have -“entry1.sample.temperature\[j\]” and “entry1.detector.counts\[i,j\]” -where j indexes the scan point. Advantages of this scheme over writing -seapare NXentries to a single file are: - -- If you have very many scan points, you don’t get a huge number of - NXentry structures that you need to search to get the list of - scanned values -- Your scanned variables are already stored as arrays and so can - easily be plotted i.e. counts\[1,j\] against temperature\[j\] -- You don’t have a huge number of linked entries in the file - links - can cause wasted memory if all the objects in the file are loaded - into computer memory by a language that cannot represent the links - internally and so must create copies. -- you don't have to think about having multiple copies of, or how to - split, any time dependent NXlog objects bewteen NXentries -- you can easily load all the data for all scans into memory in one go -- data analysis is more straightforward - -You still need a mechanism to indicate scanned variables (either a -scanned attribute or an NXscan structure as described above). Several of -the above variables in NXentry will also become arrays of size (number -of scan points, scan\_total) e.g. raw\_frames, good\_frames, -scan\_point. As the counts array that appears within NXdata now depends -on the the scan index \[j\], you will need to link in additional -axis/axes to the NXdata to indicate this dependence. For this you could -link in the scan\_point\[j\] array or the individual temperature\[j\], -magnetic\_field\[j\] etc. arrays depending on how you want to plot your -data. - -As as it is possible cycle rounds the scans and continue counting a -particular scan point at a later stage, the following new variable is -introduced: - -| | | | | | | -|-----|-------------------------------------|-----|--------------|-----|----------------------------------------------------------------------| -| 1 | scan\_cycles |   | NX\_INT\[j\] |   | Number of times a data acquisition was initiated for this scan point | - -### NXsample - -Some variables describing sample environment parameters may become -arrays with a Type 2 NXentry e.g. - -| RE | Name | Attribute | Type | Value | Description | -|-----|-------------|-----------|--------------------|-------|-------------| -| 0/1 | temperature |   | NX\_FLOAT\[nscan\] |   |   | - -### NXdetector - -If detetor angles are scanned, an extra array dimension may be present -with a Type 2 NXentry e.g. - -| RE | Name | Attribute | Type | Value | Description | -|-----|------------------|-----------|----------------------|----------------------|-------------| -| 1 | Polar\_angle |   | NX\_FLOAT\[i,nscan\] |   |   | -| 0/1 | Azimuthal\_angle |   | NX\_FLOAT\[i,nscan\] |   |   | -| 0/1 | Distance |   | NX\_FLOAT\[i,nscan\] | distance from sample |   | - - diff --git a/content/Telco_20150114.md b/content/Telco_20150114.md deleted file mode 100644 index 5ae6625e..00000000 --- a/content/Telco_20150114.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Telco 20150114 -permalink: Telco_20150114.html -layout: wiki ---- - -Date ----- - -Wednesday, 14th Jan, 12:00 GMT - -Hangout Link: - - -Agenda ------- - -- Welcome -- Invites to this, future of the nexus-tech mailing list -- Wiki - - access + signup - - speed? -- Jenkins builds of everything -- Next NAPI release -- post issues for items from recent Code Camp and NIAC meeting -- Logo - - - -For discussion: - - -- Progress on features, NXmx validation - - - -Something is evolving here: - -- Letter to detector vendors -- Next meeting -- AOB - -Minutes -------- - -- nexus-tech now open for subscripts, calendar invites will be send - there -- hangout link should keep working permanently, so there is no need to - generate a new one every time -- a sufficient number of people is administrator on the wiki and can - create accounts from the special pages -- jenkins is building definitions only and publishes to the web site, - it lives at The aim is to have it set - up so that github groups can be used to set up user accounts and - permissions -- release by summer would be good, maybe without cmake for Linux. Will - be investigated by Freddie and Eugen -- Tobias volunteered to generate tickets of all action items from the - NIAC meeting in github -- Logo: Tobias does not like purple and is not keen on the existing - font. Mark K would like to keep the existing logo as ported to SVG - by Ben. Pete J finds none of the proposed alternatives sufficiently - different to justify a change. Most like the idea to turn the u in - NeXus into a mu. -- features: not significant progress for discussion -- detector vendors: all to submit contact details, Tobias to publish - draft for next telco -- next meeting will be [Telco 20150203](Telco_20150203.html "wikilink") -- NoOB - diff --git a/content/Telco_20150203.md b/content/Telco_20150203.md deleted file mode 100644 index fd78d383..00000000 --- a/content/Telco_20150203.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Telco 20150203 -permalink: Telco_20150203.html -layout: wiki ---- - -Date ----- - -Tuesday, 3rd Feb, 12:00 GMT - -Hangout Link: - -(same link as last time, according to Google that should still work) - -Agenda ------- - -- Welcome -- Dectris Eiger files -- RDA Meeting San Diego -- Next NAPI release -- Logo (*not discussed due to lack of time*) - - - -For discussion: - - -Avoid looking like any of these: - - -- Progress on features, NXmx validation (*not discussed due to lack of - time*) - - - -Something is evolving here: - -- Tickets for NIAC items -- Letter to detector vendors (*not discussed due to lack of time*) -- Next meeting -- AOB - -Minutes -------- - -Present -EW, HJB, FA, MB, MK, PJ, TR, Stefan Brandstaetter - - - -Dectris -Good progress made. Herbert will gather the remaining change requests in -a document and forward to Dectris. We will see an updated file in the -near future after that. - -Herbert also to propose specification for exact location of detector -origin (tentative: centre of first pixel). This could be done in the -documentation for the *depends\_pn* in NXdetector. - - - -RDA -No one going now. Might not be worth it for the moment. - - - -NAPI release -EW and FA will have teleconference to investigate (procedure in general -and cmake in particular) and report at next meeting. - - - -Definitions versions -There is some confusion about what NAPI writes out as NeXus\_version as -root attribute, how definitions release versions integrate with NAPI -releases (or don't) and how to have backward compatibility when using -versions on individual definitions. Further investigations on the best -route forward required. Ticket opened. - - - -AOB -EW offers to try and organise a code camp in Hamburg either end of Oct -or end of Nov. The latter was preferred as Oct clashes with ICALEPCS - -Next meeting: [Telco 20150218](Telco_20150218.html "wikilink") Invites sent out to nexus-tech, Hangout URL will stay the same diff --git a/content/Telco_20150218.md b/content/Telco_20150218.md deleted file mode 100644 index e4673e21..00000000 --- a/content/Telco_20150218.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Telco 20150218 -permalink: Telco_20150218.html -layout: wiki ---- - -Date ----- - -Wednesday, 18th Feb, 12:00 GMT - -Hangout Link: - (the -eternal link) - -Agenda ------- - -- Welcome -- NXdetector origin -- depends\_on offset (renaming existing offset), Minuting of Telcos -- Next NAPI release -- Dates for Code Camp -- Progress on features, NXmx validation, flexible NXtomo - - - -Something is evolving here: - -- Letter to detector vendors -- Logo - - - -For discussion: - - -Avoid looking like any of these: - - -- Next meeting -- AOB - -Minutes -------- - -Present: MB, MK, PJ, HJB, TSR - -NXdetector origin and depends\_on clarified. Herbert sent out an email -to the discussion list: Depends\_on point to the centre of any object -unless otherwise specified. The most important (and only for the moment) -“otherwise specified” case being NXdetector, where the depends\_on -locates the first pixel. The first one being the first one in the data. -Otherwise there is some documentation missing or not sufficiently -referenced in the manual describing the CIF geometry. To that end Ticket -273 is assigned to Tobias for now. - -NAPI release, Code Camp & Logo: Not discussed due to lack of relevant -people. - -AOB: SNS representative elected, email will go out shortly. Use of -application definitions should be surveyed more frequently, could come -out of feature development. - -Next meeting will be [Telco 20150302](Telco_20150302.html "wikilink") diff --git a/content/Telco_20150302.md b/content/Telco_20150302.md deleted file mode 100644 index 9ba90978..00000000 --- a/content/Telco_20150302.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Telco 20150302 -permalink: Telco_20150302.html -layout: wiki ---- - -Date ----- - -Monday, 2nd March, 12:00 GMT - -Hangout Link: - (the -eternal link) - -Agenda ------- - -- Welcome -- CMake vs. autotools & Next NAPI release -- Dates for Code Camp - announcement on wiki? -- Letter to detector vendors -- WIKI - - - -All images including Logo disappeared (for me?) - -Editing painfully slow - -- Logo - - - -For discussion: - - -Avoid looking like any of these: - - -- flexible NXtomo (KIT) -- Progress on features -- Next meeting -- AOB - -Minutes -------- - -CMake - - - -Eugen will look into CMake for everything. NAPI may be release as Linux -only using old build system, if required. We still need input from -Freddie. Mark B to help with that. - -Code Camp - - - -Dates 16-18 Nov appear to agree with all. Thanks Eugen! - -Letter to Detector Vendors - - - -Draft is in repository, comments weclome - -Herbert suggests meeting detector vendors at ACA meeting in Philadelphia -in July. No one besides Herbert keen to go. Will check again next time. - -Logo - - - -Doodle poll or similar brought up as idea. - -Flexible Tomo - - - -Reply sent to KIT, pending response from there - -Features - - - -Mark B showed a nice Jenkins test of beamline NeXus status at DLS using -features. Code will be made available for others. - -Next meeting - - - -[Telco 20150318](Telco_20150318.html "wikilink") diff --git a/content/Telco_20150318.md b/content/Telco_20150318.md deleted file mode 100644 index 708978ed..00000000 --- a/content/Telco_20150318.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Telco 20150318 -permalink: Telco_20150318.html -layout: wiki ---- - -Date ----- - -Wednesday, 18th March, 12:00 GMT - -Hangout Link: - (link -updated!) - -Agenda ------- - -- Welcome -- E-Mail from Herbert about NXmx & - -- WIKI - - - -All images including Logo disappeared - -Editing painfully slow - -- NXmonochromator -- Letter to detector vendors -- Next meeting -- AOB - -Minutes -------- - -Technical Notes -The hangout link changed, maybe it expires after a while? - -There is a limit of 10 people for a video hangout. Audio only works -for 150. Blue Jeans (could be provided by APS) would be an alternative. -Skype group calls can have 25 people, but are more cumbersome to set up. - -Apologies for anyone who tried to join but couldn't. We try Hangout -again. If we get close to 10 (which would be good!) we need to seriously -think of another solution. - - - -Present -EW, HJB, FA, MB, PJ, TR, Stefan Brandstaetter, Graeme Winter, Harry -Powell, Andreas Foerster, Takanori Nakane - - - -NXmx -Harry Powell was disappointed by the lack of crystal orientation -information from an Eiger file we received. - -All are in agreement that NXmx was created in order to provide that -information. - -There was some discussion whether the detector was the correct place to -process that information. In the summary the detector is not seen as the -ideal device to handle that. We do encourage facilities to write their -orientation and other beamline parameters and merge that with the -detector generated HDF5 file. However for cases where this does not -happen, due to lack of facility software support Dectris will -investigate the inclusion of some more sophisticated “mxsettings” for -NeXus into their software to allow the beamline to communicate the -required information. By default this will write a sensible set of -metadata with NaN as values, so people can learn from the detector -output even if no data was provided. - -We'll discuss some ideas for a solution soon. Eugen has suggestions. - -Thanks to all participants that joined specifically for this section. - - - -NXmonochromator -Problems resolved. We go with what is currently documented and do not -now enforce the original OO ideas. - - - -Wiki -Had been updated and paths have changed. Freddie fixed the logo during -the call and has since disabled a plugin that was timing out. So the -speed is back to normal again. - - - -Letter to detector vendors -Content is fine. - -TR has no ADSC contact details. Herbert is in contact so, he'll take -that on. - -TR to contact Aaron for CSPAD leads. - - - -Next meeting: [Telco 20150408](Telco_20150408.html "wikilink") Invites sent out to nexus-tech, Hangout URL will hopefully stay the same diff --git a/content/Telco_20150408.md b/content/Telco_20150408.md deleted file mode 100644 index ea2bb6ca..00000000 --- a/content/Telco_20150408.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Telco 20150408 -permalink: Telco_20150408.html -layout: wiki ---- - -Date ----- - -Wednesday, 8th April, 12:00 BST - -Hangout Link: - (link -updated) - -Agenda ------- - -- Welcome -- Check minutes of last meeting -- NXmx update -- CMake update -- Next meeting -- AOB - -Minutes -------- - -Small meeting. Just EW, HJB and TR. - -Discussions on the future of MX detectors. - -Some progress made on cmake build for the definitions and documentation. - -Need to get NAPI release out. The current one is outdated (more than two -years old) and master has new features. During that we found some -ancient download content on the WIKI and non-editable on -download.nexformat.org. Need to update or remove. Eugen to look into. - -Will look for good slot for next meeting. diff --git a/content/Telco_20150506.md b/content/Telco_20150506.md deleted file mode 100644 index 8f9087af..00000000 --- a/content/Telco_20150506.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Telco 20150506 -permalink: Telco_20150506.html -layout: wiki ---- - -Date ----- - -Wednesday, 6th April, 12:00 BST - -Hangout Link: - - -Agenda ------- - -- Welcome -- CMake update for definitions and NAPI, release plans -- Check minutes of last meeting -- Detector developer contacts -- NXmx update -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, MB, MK, EW, PJ, TSR - -CMake for definition is homing in. Not all of it working yet, but -progress is continuously being made. - -CMake for code and hence a NAPI release still pending. - -Recent bug reported on reading string arrays with getSlab is confirmed. -No volunteer to fix for now. - -Action to make contact with detector developers is still not complete. -Hopefully more at the next meeting. - -NXmx: Herbert is fixing memory leaks in cbflib. Dectris is aware of progress and cooperative. -: Users and beamline staff will be pivotal to success of NXmx. HDF5 might be seen as an impediment to stream images for live feedback. We need to get the message out that things can be done properly without sacrificing the standard. -:DLS voiced the request to make some fields in NXmx required that are now optional. We agreed to apply community pressure to encourage vendors and facilities to write as much useful metadata as possible, but not make required more than strictly necessary. The “features” exploratory project will make it easier to mark the presence or absence of additional information. - -Mark B will come back with proposal for a minimum reliable value that -may be needed in some cases. - -Next meeting: [Telco 20150520](Telco_20150520.html "wikilink") - -AOB: PaNDaaS (as an informal project with no funding) has a NeXus work -package between DESY, ESRF, DLS and ESS. Nothing has happened yet. diff --git a/content/Telco_20150520.md b/content/Telco_20150520.md deleted file mode 100644 index 3b3b6752..00000000 --- a/content/Telco_20150520.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Telco 20150520 -permalink: Telco_20150520.html -layout: wiki ---- - -Date ----- - -Wednesday, 20th May, 12:00 BST - -Hangout Link: - - -Agenda ------- - -- Welcome -- Detector developer contacts -- CMake and release update - For the definitions distribution - - which targets should be installed - - removal of xsltproc from the source tree (there is a binary - available on the web) - - removal of the validation tool -- NXmx update -- Plan of future activities (code camp and strategic) -- Next meeting -- AOB - -Minutes -------- - -Present: EW, TSR, HJB, MK, MB, Andreas Foerster, PJ (second half) - -Contacts with LCLS II for file formats made. Touch base Skype call -arranged. Update at next Telco. - -CMake: Good progress made by Eugen on Definitions. Removal of items -agreed. However we do need a roadmap for providing a working validation -tool. NXFeatures are on the way, but still experimental. - -Discussion on foreign pull requests: It is great that we get work done -for free. We need to be careful though about copyright (notices are -intact). - -NXmx: During code development at DLS question came up to clarify named -items in nxdl. Handbook says maxOccurs is unbounded, which makes no -sense for named items. Documentation will be improved (Mark B was -volunteered). Followup question: What do we do for names of items that -can have multiple instances? name\_NNNN? Consensus was we mostly should -not be fixing names in that case. A documentation proposal might be -coming. - -Andreas proposed a single angle increment value for goniometer axes that -move during shutterless MX scans. Preference was to have a per frame -value, with separate start\_something and end\_something. There was a -proposal floating around in Diamond at one point. Mark B to dig out and -forward to HJB, who will process that into a template proposal for -Dectris. Will revisit next time. - -For those Dectris templates: Can we have a IEEE NaN fill value for data -that is to be provided outside of the detector later. Looks like we can. -We'll check. - -Clarification: Detector origin is supposed to be the first pixel in the -data. Needs to be documented prominently. Worth checking documentation -for other omissions. Task for everyone. - -Will discuss other items and relative paths for depends\_on at the next -meeting, which will be [Telco 20150603](Telco_20150603.html "wikilink") diff --git a/content/Telco_20150603.md b/content/Telco_20150603.md deleted file mode 100644 index c6031417..00000000 --- a/content/Telco_20150603.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Telco 20150603 -permalink: Telco_20150603.html -layout: wiki ---- - -Date ----- - -Wednesday, 3rd June, 12:00 BST - -Hangout Link: - - -Agenda ------- - -- Welcome - - - -- CMake and release update - - Remaining problems - - expected state of master - - merge and pull request strategy -- NXmx update - - beam center - - start and end angles for shutterless scans -- Next meeting - -Minutes -------- - -Present: MK, MB Andreas Foerster, HJB, PJ, TSR, FA, EW, Graeme Winter - -Initial problems with hangout not allowing people to join the first two -participants under the old URL. New Hangout created. - -Discussion on CMake: All look well now, except for the Windows build. -That could be solved by using the cmake inbuilt make. Eugen has updated -the ticket. In general small fixes can be done in master, larger -possibly disruptive chunks of work should be merged by an independent -person using a github pull request. This should be documented somewhere. - -NXmx: Discussion on allowing beam\_center in units of pixels, instead of -official units of length. No real agreement why that would be necessary, -but also not a strong opposition. shutterless scans: One start and -either end or interval value would be required. Not more. Encoding could -be done via naming, or attributes. No consensus for now. A proposal will -be developed. - -Moved remaining other items to next meeting. diff --git a/content/Telco_20150617.md b/content/Telco_20150617.md deleted file mode 100644 index 5e430c90..00000000 --- a/content/Telco_20150617.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Telco 20150617 -permalink: Telco_20150617.html -layout: wiki ---- - -Date ----- - -Wednesday, 17th June, 12:00 BST - -Hangout Link: - - -Agenda ------- - -- Welcome - - - -- NXmx update - - Fill values (NaN) - - start and end angles for shutterless scans - - depends\_on with relative path -- Documentation update - - detector origin (1st pixel in stream) - - anything else in need of work? -- look at issues -- Plan of future activities (code camp and strategic) - - Validation -- code (napi) release update -- example files status and plea for added or updated files -- Community engagement - - LCLS - - Dectris - - ECM -- Next meeting -- AOB - - Axis attributes in NXdetector e.g - -`   Fluo : NXdetector` -`       @signal = data` -`       @axes = (,,,energy)` -`       @energy_indices = (3)` -`       data[10,20,180,1024]` -`           @interpretation = spectrum` -`       energy[1024]` -`           @units = keV` - -Minutes -------- - -Present: MK, MB, EW, HJB, TSR, AF (Dectris, from holiday!) - -NXmx, fill values - - - -This started from an Dectris Eiger problem of having to write fields -without knowing values. Those are them meant to be filled in by beamline -acquisition system. Since as far as NeXus is concerned a fully populated -file should leave the facility, this is nothing we have a strong opinion -about. Writing an empty array (dimension 0) would work. - -NXmx, shutterless - - - -All resolved to everyone's satisfaction. - -NXmx, relative depends\_on path - - - -Not deemed required, for the moment. - -Documentation, detector pixel origin - - - -Eugen volunteered to have a look at this. Potentially including detector -modules and related “new” areas. - -Documentation, general review of tickets - - - -Quite a number of tickets are open on the definitions repository, some -of them very old. A good number of them could potentially be closed. -Looking through them and at least commenting would help the next person -make a decision. Action on all. - -Plans for Code Camp an future - - - -Eugen will advertise Code Camp on the mailing list shortly. Please have -a think about ideas to tackle there and what we need to do -strategically. Ideas so far include validation, NAPI, features. - -example file repository - - - -Is in need of new files. This would help developers to find bugs in -their code and develop common data extraction methods. Maybe a github -repo is not the best choice, for data size reasons. Might investigate at -the code camp. - -Next meeting will be [Telco 20150630](Telco_20150630.html "wikilink") - -AOB - - - -Mark Basham suggests a scheme to attribute detector axes (like for an -energy dispersive detector) analogue to NXdata. Not all detector must -have an NXdata, otherwise that could be used directly. MK asserts that -this looks good and we certainly should not have two schemes (NXdata vs -NXdetector) to assign axes. Will revisit that at next telco. diff --git a/content/Telco_20150630.md b/content/Telco_20150630.md deleted file mode 100644 index 1ae5baad..00000000 --- a/content/Telco_20150630.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Telco 20150630 -permalink: Telco_20150630.html -layout: wiki ---- - -Date ----- - -Tuesday, 30th June, 12:00 BST - -Hangout Link: - - -Agenda ------- - -- Welcome -- Axis attributes in NXdetector e.g - -`   Fluo : NXdetector` -`       @signal = data` -`       @axes = (,,,energy)` -`       @energy_indices = (3)` -`       data[10,20,180,1024]` -`           @interpretation = spectrum` -`       energy[1024]` -`           @units = keV` - -- code (napi) cmake update and release timelime -- definitions: name-tag-attribute: - -- Documentation update, summary of ticket review -- Plan of future activities (code camp and strategic) - - Validation - - example repo or area (with data, without data) - - napi - - features -- NIAC 2016 - dates maybe? -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, EW, MK, MB, TSR - -Axes for Detectors: All in favour. We should make this recommended at a -next NIAC meeting. - -napi release: Treat recent poll as priority list for new build system -and provide incremental updates until no one objects to things missing. - -Pull request 411: The placeholder is not independent of the “named” or -“any” options. So this does not look like a full solution. With the -removal of “placeholder” that completely fixes the current problem (Mark -B to check with Peter C). Would like to check with Pete J, but then it -looks reasonable. - -Tickets: Not much progress. Do comment on every ticket looked at, if you -think it is done or summarising outstanding items. Aim to close one per -person over summer. - -Next meeting: [Telco 20150715](Telco_20150715.html "wikilink") diff --git a/content/Telco_20150715.md b/content/Telco_20150715.md deleted file mode 100644 index 9ebac4d5..00000000 --- a/content/Telco_20150715.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Telco 20150715 -permalink: Telco_20150715.html -layout: wiki ---- - -Date ----- - -Wednesday, 15th July, 12:00 BST - -Hangout Link: - - -Agenda ------- - -- Welcome -- code (napi) cmake update and release timelime -- definitions: name-tag-attribute: - -- Documentation update, summary of ticket review -- DLS Auto generation questions: - - Identification of non scannable fields i.e. the scan rules say - that everything can be scanned and hence have additional - dimensions, but this does not make sense for some things, which - should only be reported once. -- 3D Detectors: slowest, slow, fast vs. x, y, z -- CXI file format -- Next meeting - July 27 or 28 at 8am Pacific Time, so Aaron can join - (5 CEST, 4 BST, 11 NY, 10 IL+TN) -- AOB - -Minutes -------- - -Present: HJB, EW, MB, TSR (summer has apparently arrived everywhere in -the northern hemisphere) - -cmake for code - -Eugen has made some progress and will have finished the configuration -and build of the main library by the next meeting. Binding and tools -will follow then, not necessarily in that order. hdf4 and xml should not -be disabled by default but be integrated when available at least for -this release. Equally building without hdf5 is not yet an error. - -pull request 411 - -With the placeholder removed that seems a reasonable approach to fix -issue 399, although not the final verdict for placeholders. But that may -require a separate NXDL tweak. (Found out after the telco: PJ had one -comment that the default “specified” should be specified. TSR commented -in the ticket.) - -Reducing number of open tickets - -We closed 3 tickets during the telco and discussed issue 407 which Eugen -will investigate. - -scan dimensions for everything? - -Rationale: Some fields, like instrument/name are unlikely to change -during a scan. If scan rules didn't apply an API could return nice and -simple strings instead of arrays of them. Consensus: No change. Since -for now we allow scan rules in all cases which is the most general way, -having a special rule for a low number of fields is not deemed to help -much. Rather have a simple rule than simple special cases. However: -There are cases other than scan rules where dimensions can be added -(detector/distance can be per pixel), so it should be clear what the -added dimensions are. That's unresolved for now. - -3D detectors - -fast and slow works for 2D. An extension for 3D might be fast, slow, -slower or slowest. However if scan rules apply the slowest detector -dimension may not be the slowest of the overall dataset. HJB suggests -fast, second\_fastest, third\_fastest, fourth\_fastest, fifth\_fastest -and so on ad nauseam as the general case. No real conclusion reached. -The disconnect between fast/slow vs. x/y was not discussed. - -CXI file format - -The NeXus compliant version of it is so close to NeXus that integrating -that as an application definition seems almost easy. We'll invite them -to the next teleconference. - -Next conference - -[Telco 20150728](Telco_20150728.html "wikilink") diff --git a/content/Telco_20150728.md b/content/Telco_20150728.md deleted file mode 100644 index 268f04f3..00000000 --- a/content/Telco_20150728.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Telco 20150728 -permalink: Telco_20150728.html -layout: wiki ---- - -Date ----- - -Tuesday, 28th July, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am IL+TN) - -Hangout Link: - - -Agenda ------- - -- Welcome -- CXI file format -- Virtual Dataset -- 3D Detectors: slowest, slow, fast vs. x, y, z -- code (napi) cmake update and release timelime -- Documentation update, summary of ticket review - - definitions: name-tag-attribute: - and issue - 399 - - issue 407 (windows builld) -- Next meeting -- AOB - -Minutes -------- - -STFC had a network outage coinciding with this meeting, making this wiki -and the NeXus mailing lists inaccessible. So joining was complicated. -Most items deferred to the next meeting. - -Present: EW, MK, TSR, Aaron Brewster, Filipe Maia - -NAPI: Eugen has made progress on the CMake build of the library and is -working on the tests. - -CXI File Format: Filipe is not opposed to the idea of creating an -application definition of the NeXus compliant variant (with attributes) -of his file coherent imaging file format. Should go into the contributed -area first. Filipe also agreed to join the next telco. - -Virtual Dataset: Filipe would like to see an HDF5 API that provides -different predefined views of the data volume, for example as image and -as a whole. If that in turn was picked up by MATLAB or other products, -analysis code developers could just read image by image without having -to worry about hyperslabs. In principle that might be possible with -virtual datasets. Eugen to ask HDF group. No consensus whether that was -a priority or effort should be directed at training users. - -Aaron had another item on virtual dataset, but his audio was not -working. Due to the initial delays we deferred the discussion to the -next meeting, which is again slotted to allow US East coast -participation. If that works for the rest of the US we might stick to -that. - -Next meeting: [Telco 20150811](Telco_20150811.html "wikilink") diff --git a/content/Telco_20150811.md b/content/Telco_20150811.md deleted file mode 100644 index e0d8535e..00000000 --- a/content/Telco_20150811.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Telco 20150811 -permalink: Telco_20150811.html -layout: wiki ---- - -Date ----- - -Tuesday, 11th August, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am IL+TN) - -Hangout Link: - - -Agenda ------- - -- Welcome -- Virtual Dataset -- 3D Detectors: slowest, slow, fast vs. x, y, z -- code (napi) cmake update and release timelime -- Documentation update, summary of ticket review - - definitions: name-tag-attribute: - and issue - 399 -- Next meeting -- AOB - -Minutes -------- - -Present: EW, HJB, MK, PJ, TSR, AB - -Virtual Dataset: EW will contact Felipe to extract more specific -requirements for an HDF5 API and feed that into THG. - -napi and tools release: slow progress. No testers have reported any -success or failure with the current state. This may improve when tools -are build as well as people has no ready way to test the build -otherwise. - -3D detectors: While the route to just define pixel\_size\_z looks easy, -this is not very general. Z may not coincide with the global z-axis and -it may correspond to any dimension in the data array (volume). So TSR -will prepare a generic proposal for n-dimensional detector data, with -m<=n spatial dimensions. EW is keen to test this on his next beamtime -in September. - -Ticket 411: Merged during the meeting. - -Windows build: Problems arise due to lack of development environment, -which should not be a hard requirement to have installed in order to -work on documentation. We will revert to old-style make files. More -background in github tickets. - -Next meeting: [Telco 20150827](Telco_20150827.html "wikilink") diff --git a/content/Telco_20150827.md b/content/Telco_20150827.md deleted file mode 100644 index 603ae659..00000000 --- a/content/Telco_20150827.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Telco 20150827 -permalink: Telco_20150827.html -layout: wiki ---- - -Date ----- - -Thursday, 27th August, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am IL+TN) - -Hangout Link: - - -Agenda ------- - -- Welcome -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- Are base classes complete? Does everything that is part of an - application definition have to be defined in a base class? Question - from DLS. -- Documentation update, summary of ticket review -- code (napi) cmake update and release timelime -- Next meeting -- AOB - -Minutes -------- - -Present: MK, HJB, MB, PJ, TSR - -HJB suggests recording these sessions via Hangout On Air. We'll think -about it. - -Detector axes: Some progress made on ideas, but no example yet. TSR to -report again next time. - -Completeness of base classes: After some discussion the agreement is -that application definitions have a higher value than base classes. Base -classes capture the common cases and should not have to carry every -domain specific field that might ever come up. There also is the -procedural problem that proposing a new application definition might -require a base class change first, if that was enforced by software -(which would be the case for the code DLS is developing). Encoding this -addition explicitly via some tag was rejected. Once application -definition can add fields that changes the framework and matching the -names to see what needs to be added is simple for software. TSR to -contact Peter Chang and edit the manual where PC was mislead. - -Technical problems and other commitments cut the meeting short. Next one -is [Telco 20150909](Telco_20150909.html "wikilink") diff --git a/content/Telco_20150909.md b/content/Telco_20150909.md deleted file mode 100644 index bf96bf92..00000000 --- a/content/Telco_20150909.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: Telco 20150909 -permalink: Telco_20150909.html -layout: wiki ---- - -Date ----- - -Wednesday, 9th September, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am -IL+TN) - -Hangout Link: - - -Agenda ------- - -- Welcome -- Documentation build server status -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- Documentation update, summary of ticket review -- code (napi) cmake update and release timelime -- CXI format, status report. -- Next meeting -- AOB - -Proposal Example ----------------- - -2d image + wave length - -raw detector \[100,100,256\] - -scan over theta and phi and temperature - -outer scan temperature - -`32 ` -`65` - -inner scan combined theta and phi - -`-15 0.1` -`-14 0.3` -`..  ..` -`14  8.4` -`15  8.7` - -**File example:** - -`entry` -`       data` -`               @signal=data` -`               @axes=temperature,theta,firstdim,seconddim,wavelength` -`               @theta_indices=0,1` -`               @/entry/sample/temperature_indices=0` -`               ...` -`               # this becomes a bit redunant` -`               ...` -`               data[2,31,100,100,256]` -`       instrument` -`               detector` -`                       @signal=data` -`                       @axes=/entry/sample/temperature,theta,firstdim,seconddim,wavelength` -`                       @/entry/sample/temperature_indices=0` -`                       @theta_indices=0,1` -`                       @wavelength_indices=2,3,4` -`                       @firstdim_indices=2` -`                       @seconddim_indices=3` -`                       @thirddim_indices=2,3` -`                       depends_on=/entry/instrument/detector/seconddim` -`                       data[2,31,100,100,256]` -`                       wavelength[100,100,256]` -`                               @units=nm` -`                       firstdim[100]` -`                               @depends_on=/entry/instrument/detector/transformations/arm` -`                               @transformation_type=translation` -`                               @vetcor=0.5,0.5,0` -`                       thirddim[100,100]` -`                               @depends_on=firstdim` -`                               @transformation_type=translation` -`                               @vetcor=0,0,1` -`                       seconddim[100]` -`                               @depends_on=thirddim` -`                               @transformation_type=translation` -`                               @vetcor=0.5,-0.5,0` -`                       transformations` -`                               theta[2,31]` -`                                       @depends_on=.` -`                                       @transformation_type=rotation` -`                                       @vetcor=1,0,0` -`                               arm[1]` -`                                       @depends_on=theta` -`                                       @transformation_type=translation` -`                                       @vetcor=0,0,1` -`       sample` -`               depends_on=/entry/sample/transformations/phi` -`               temperature[2]` -`                       units=C` -`               transformations` -`                       phi[2,31]` -`                               @depends_on=.` -`                               @transformation_type=rotation` -`                               @vetcor=0,1,0` - -unsolved problem: pixel size - -relatively straight forward for event mode using pixels\_ids instead of -data - -Minutes -------- - -Present: HJB, EW, MK, MB, TSR, FA - -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- new use cases - -See above. All reviewed this and found no obvious problems. For the next -meeting people should gather use cases that might or might not work and -report back. - -- Buildserver hickup - -Freddie fixed the configuration and the build now completes -successfully. - -- Documentation update, summary of ticket review - -Number of tickets has been close as they had been completed a while -back. appears to -be in an unclear state and would benefit from investigation. Freddie -volunteered. - -- code (napi) cmake update and release timelime - -During the call Eugen made some progress on the test build. - -- CXI format, status report. - -Mark B interested. Will contact people in Berkeley. - -- Next meeting - -[Telco 20151001](Telco_20151001.html "wikilink") diff --git a/content/Telco_20151001.md b/content/Telco_20151001.md deleted file mode 100644 index f6cd82a2..00000000 --- a/content/Telco_20151001.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Telco 20151001 -permalink: Telco_20151001.html -layout: wiki ---- - -Date ----- - -Thursday, 1st October, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am IL+TN) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Next meeting -- code camp registration and technicalities -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- new use cases -- Documentation update, summary of ticket review - -- geometric shapes and operations (mantid/mcstas geometry conversion) -- code (napi) cmake update and release timelime -- CXI update (Mark B) -- Look at a new container class (what is that?) -- How do we define the X and Y drive directions of a scan - (clarification, we know them, but how do we get back to the - NXPositioner class which specifies all the information)? -- AOB - -Minutes -------- - -Present: HJB, EW, MK, MB, TSR, PJ, AB - -- Next meeting - -[Telco 20151014](Telco_20151014.html "wikilink") - -- code camp - -ACTION: Everyone register, EW to send reminder to mailing list - -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- new use cases - -EW had a look and found no problems (so far) - -MB has no problems with the current proposal, but would like to add the -use case of recording the scan intend. One way of doing that would be to -use the old NeXus “target” linking scheme to point to an NXpositioner or -so. He'll generate a proposal. - -HJB leaves the meeting due to conflicting commitments. - -- Issue 266 - -Pete clarified that the attempted old solution didn't lead anywhere -promising. So having Freddie looking at this with fresh eyes is a good -idea. - -- shapes and boolean operations - -Mantid does require not only positions of elements on the beamline, but -also their shapes. For visualisation but also modelling and simulations. -In the discussion it became clear that knowledge about the adopted CIF -geometry is not as widespread as we would have liked. (See ticket 397.) -Tobias will add some information there. - -The existing NXgeometry or NXshape were not suggested as good starting -points. Either working from what mantid currently uses, or starting from -some general purpose geometry package would be reasonable. Avoiding the -re-inventions of wheels for object placement. - -- code (napi) cmake update and release timelime - -Will put of a reduced feature set release soon and ask for volunteer -effort to help with things further down our priority list. - -- CXI format, status report. - -Mark B mumbled something, could make out some words no coherent meaning. -ACTION: MB get better mike. - -- sample container information - -MB mentioned very careful background subtract schemes with half sample -containers in the beam (upstream and downstream) and the requirement to -provide more information on the holder material. He will propose -something and potentially provide a drawing if helpful. - -- AOB - -none (timeout) diff --git a/content/Telco_20151014.md b/content/Telco_20151014.md deleted file mode 100644 index fc15a3d6..00000000 --- a/content/Telco_20151014.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Telco 20151014 -permalink: Telco_20151014.html -layout: wiki ---- - -Date ----- - -Wednesday, 14th October, 17:00 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- code camp update and plans -- sample container proposal -- recording scan intend proposal -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- new use cases or ready? -- geometric shapes and operations (mantid/mcstas geometry conversion) - update -- code (napi) cmake update and release timelime -- CXI update (Mark B) this time with better microphone -- Next meeting -- AOB - -Minutes -------- - -Present: - -Eugen (only listening), Herbert, Andreas from Dectris, Pete Jemian, Mark -K. - -- Andreas brought up some question regrading trigger\_delay\_time - which resolved into a clarification that the one in NeXus base class - is the hardware trigger\_delay\_time. A new, - effective\_trigger\_delay, time in proposed which will sum all - trigger delays, from hardware or software or else. -- As the main players for the other topics on the Agenda were not - present, we discussed the NXvalidate white paper. Many points were - resolved. Mark K will update the white paper with the results of the - discussions shortly. It was felt that it is more important to get - the things done rather then haggle for a long time about the optimal - solution and details. -- The discussion returned to NXmx. Uptake of NeXus/HDF-5 is still - difficult. The problem are the data analysis package maintainers. - Herbert suggested to have a workshop and help them get NeXus - implemented around one of the big crystallographic conferences next - year. Dectris may be supporting this workshop. -- The next Telco is [Telco 20151104](Telco_20151104.html "wikilink") - diff --git a/content/Telco_20151104.md b/content/Telco_20151104.md deleted file mode 100644 index 02f7535e..00000000 --- a/content/Telco_20151104.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Telco 20151104 -permalink: Telco_20151104.html -layout: wiki ---- - -Date ----- - -Wednesday, 4th November, 17:00 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- code camp update and plans -- sample container proposal - DLS - - see -- recording scan intend proposal - DLS -- trigger delay time discussion - Dectris -- Generic proposal for spatial and other axes on nD Detectors: - (slowest, slow, fast) -- new use cases or ready? -- geometric shapes and operations (mantid/mcstas geometry conversion) - update -- CXI update (Mark B) this time with better microphone -- Short update on the NAPI CMake build and nxvalidate (the latter one - is important) -- Next meeting -- AOB - -Minutes -------- - -Present: EW, HJB, AB, MK, TSR, MB - -Old hangout link did not work form some. The new one is: - - -Code Camp: We'll have a Hangout form there on the first day to gauge -interest in remote participation or contribution. On the Tuesday evening -from 19.00 local time there is a C++ user group that Eugen invites to. -English language version available. Other details are already on the -code camp wiki page. - -Sample Container proposal: By the sounds a new class of NXwindow or so -carefully place in the file and instrument geometry would solve the -problem. MB to detail proposal. - -Scan Intend: Proposal in progress. More in due course. - -Trigger time delay: Diagnostics fields for detector in preparation. - -nD detectors: No problems raised. Ready for final inspection when -documentation ready. - -geometric shapes and operations: No update. - -CXI: Some insane legal situation arose that prevents a report on the -issue. Should be under control in 3-4 weeks. - -CMake: Some progress. TSR raises need to get release out at the code -camp no matter what. If we cannot do it there we have lost the ability -to do a release. The code base is better than it was and that needs to -go out. There may be stumbling blocks actually releasing binaries on the -nexusformat.org web pages. Some content still appears to be hand crafted -by special individuals, but that may be under version control now. We -will see. - -AOB: cnxvalidate: Progress made, no actual tests are run. Oddities in -NXDL were found (attributes can be defined two ways). Decision for the -best home of nxvalidate (NAPI repo, definitions, it's own) will be taken -at the code camp. For now it moves into it's own branch. - -Next Telcos: [Telco 20151116](Telco_20151116.html "wikilink") (live from the -code camp) and [Telco 20151202](Telco_20151202.html "wikilink") (regular one -from the convenience of everyone's own place) diff --git a/content/Telco_20151116.md b/content/Telco_20151116.md deleted file mode 100644 index 42c9639f..00000000 --- a/content/Telco_20151116.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Telco 20151116 -permalink: Telco_20151116.html -layout: wiki ---- - -Date ----- - -Monday, 16th November, 17:00 Central European Time (Copenhagen) - live -from the code camp - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- code camp update and plans -- AOB - -Minutes -------- diff --git a/content/Telco_20151202.md b/content/Telco_20151202.md deleted file mode 100644 index 8844be2e..00000000 --- a/content/Telco_20151202.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Telco 20151202 -permalink: Telco_20151202.html -layout: wiki ---- - -Date ----- - -Wednesday, 2nd December, 17:00 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- HDF exploratory work at SLAC -- canSAS axes arrays vs. string parsing -- sample container proposal - DLS -- recording scan intent proposal - DLS -- CXI update (Mark B) this time with better microphone and legal - advise -- Update from NAPI code and GitHub: - - Python code has been moved to its own repository - - Next NAPI release 4.4.1 scheduled for Friday 11, 2015 - - HDF5 external filter plugin repository is online on nexusformat -- Next meeting -- AOB - -Minutes -------- - -Present: FAA, HJB, EW, AB, TSR - -- HDF exploratory work at SLAC - - - -Aaron mentioned some strong interest in file formats at SLAC recently -and that he can dedicate some time for proof of concept work in relation -to the CIF-NeXus concordance. Herbert agreed to work with him. If other -help is needed Aaron will let us know. - -- canSAS axes arrays vs. string parsing - - - -It was agreed that there was no need to allow CVS axes in the newly -defined axes attribute to groups. One of the design goals was to remove -that source of trouble and not introduce more legacy. We'll revert the -change to the features repository and review the documentation to make -that clear. - -- sample container proposal - DLS -- recording scan intent proposal - DLS -- CXI update (Mark B) this time with better microphone and legal - advise - - - -No representation from DLS. No report. - -- Update from NAPI code and GitHub: - - Python code has been moved to its own repository - - Next NAPI release 4.4.1 scheduled for Friday 11, December 2015 - - HDF5 external filter plugin repository is online on nexusformat - - - -All happily acknowledged. There was a discussion on the various download -pages. Github may be a place where we can offer binary packages in the -future. EW will investigate. The goal should be that you cannot download -an old version from a page under our influence without being informed -that there is a new release out. So far only the mailing list knows and -if you happen to find the tarball on gitub. - -- Next meeting - - - -Is [Telco 20151215](Telco_20151215.html "wikilink") - -- AOB - - - -None diff --git a/content/Telco_20151215.md b/content/Telco_20151215.md deleted file mode 100644 index e0af3593..00000000 --- a/content/Telco_20151215.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Telco 20151215 -permalink: Telco_20151215.html -layout: wiki ---- - -Date ----- - -Tuesday, 15th December, 16:30 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- sample container proposal - DLS -- recording scan intent proposal - DLS -- CXI update (Mark B) this time with better microphone and legal - advise -- NAPI release and download webpages -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, AB, FAA, EW, MK, TSR - -First three agenda items require MB, skipping. - -Other business: Lz4 bit shuffle oddities reported by HJB. - -HJB will push to filter github repo when done testing. - -The HDF Group is already advertising our filters repo on their mailing -list. - -NAPI release and downloads: Github download next to working. - -Thanks go to Freddie and Stu for the Windows and RW build fixes. - -EW will upload legacy NAPI binaries to github tomorrow, so we can remove -download.nexusformat.org/kits. Only useful stuff remaining there would -be the definitions installers. TSR will contact PJ to migrate those to -github or volunteer himself. - -HJB: BNL will host MX workshop in May in collaboration with Dectris. EW -is going. Other presence will be at ACA and ECM 2016. - -Next meeting is: [Telco 20160106](Telco_20160106.html "wikilink") diff --git a/content/Telco_20160106.md b/content/Telco_20160106.md deleted file mode 100644 index e2289bc1..00000000 --- a/content/Telco_20160106.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Telco 20160106 -permalink: Telco_20160106.html -layout: wiki ---- - -Date ----- - -Wednesday, 6th January, 16:30 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- teleconference reminders - fate of nexus-tech -- sample container proposal - DLS -- recording scan intent proposal - DLS -- CXI update (Mark B) this time with better microphone and legal - advise -- NAPI release and download webpages (including definitions kits), - debian packages -- cnxvalidate update -- features update -- Next meeting -- AOB - -Minutes -------- - -Present: RO, HJB, TSR, MK - -#### nexus-tech - -- now open for subscriptions -- moderated to only allow notifications about teleconferences - - - -#### DLS reports and NAPI - -no update due to lack of relevant people - -#### cnxvalidate - -discussion of status and purpose - -alpha software, but ready for tests - -running agains existing example files is outstanding - -#### features update - -internal tests for issuing feature ids have started - -more on that hopefully next time - -#### upcoming meetings - -BNL/NSLSII meeting for Dectris/Eiger data processing, 26-28 May 2016 - -workshops at either ACA or ECM for general MX data - -#### AOB - -This year marks 20 years of NeXus. We'll need to celebrate at the NIAC. - -Github issues was discussed for electronic discussions. To initiate a -discussion face to face or video appears to be required for the moment. -We will however focus on resolving or at least discussing one github -issue per telco. - -#### Next meeting - -[Telco 20160120](Telco_20160120.html "wikilink") diff --git a/content/Telco_20160120.md b/content/Telco_20160120.md deleted file mode 100644 index 57bb4056..00000000 --- a/content/Telco_20160120.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Telco 20160120 -permalink: Telco_20160120.html -layout: wiki ---- - -Date ----- - -Wednesday, 20th January, 16:30 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- CSPAD progress -- cnxvalidate progress -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one -- version numbers -- Issues in Armando's emails -- Next meeting -- AOB - -Minutes -------- - -Present: EW, MK, AB (first half), Armando (second half), Ray Osborn, -HJB, TSR - -#### Agenda - -revised for the meeting - -#### CSPAD - -Herbert and Aaron are making some progress. Current files use absolute -paths for external links, that could be discouraged. - -#### cnxvalidate - -Has 50 tests passing and is ready for testing by friendly users. Tickets -to produce a validating tool are to be closed in code and definitions -repositories and cnxvalidate has it's own issue tracking. - -#### issue of the day - -- resolved open question about NXtransformations -- EW accepted pull request for trigger additions to NXdetector (plus - related ticket) -- closed call for validation tool - -#### version numbers for classes - -While there is version number on the class definition files this is not -used in the current infrastructure (and cannot easily be used). This -should be discussed at the next NIAC. - -There was also a discussion about a process to make simple editorial -changes to classes or backward compatible additions. Consensus was that -formal criteria enforced by a tool (like three votes on the issue -tracker) would not be a good solution. For the moment we will do this by -consensus in the telco and via pull requests to be accepted by a second -person. Also to be discussed at the NIAC. - -#### issues raised by Armando - -There are two problems: subentries and NXdata. - -NXdata appears to have some documentation problems which Ray will -confirm and raise a ticket for. - -Subentries are compatible with what Armando wants. Ray will send a -summary of the discussion to the mailing list separately for a wider -audience. - -#### Next meeting - -Eugen did not like Wednesdays: [Telco -20160202](Telco_20160202.html "wikilink") diff --git a/content/Telco_20160202.md b/content/Telco_20160202.md deleted file mode 100644 index 3971d7b1..00000000 --- a/content/Telco_20160202.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Telco 20160202 -permalink: Telco_20160202.html -layout: wiki ---- - -Date ----- - -Tuesday, 2nd February, 16:30 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- versioning classes and application definitions (per request from - Andreas) -- main landing page -- sample container proposal - DLS -- recording scan intent proposal - DLS -- CXI update (Mark B) this time with better microphone and legal - advice -- cnxvalidate testing -- Next meeting -- AOB - -Minutes -------- - -Present: AF, RO, MK, TSR, HJB, MB, AB, FA (first half hour) - -#### Version in NeXus Definitions and Classes - -There is currently no technical infrastructure in place to make version -work in a way software developers would expect. For example git does not -allow easy access to a version of a file that contains a particular -version string. There are various ways to achieve this and people will -think about this. - -In any case having a Changelog document or section on top of each file -would be a useful start in the right direction. - -More thoughts and discussions needed. - -#### Main Web Landing Page - -The current content focusses on installation and documentation of the -API, which is not the main thing we offer (any more). This could be -changed easily. - -There is a potential longer list of things to address and we can -generate and discuss a list of desirable changes. - -The possibility of using Wordpress was brought up, but it was felt that -as a tool to serve a single page it would be a too heavy handled -solution. Another possibility was to use Sphinx with a nice template and -Ray and Pete will see if they want to make a suggestion. - -Otherwise some CSS or other tools could be used to make this page look -nicer. - -#### sample contain proposal - -DLS have made some edits to allow for more flexible handling sample -containers in NXsample. ESS have made some changes to NXsample that sit -in a branch to address sample components and atom sites (analogue to -CIF) as well as fixing some crystallographic features. HJB suggested to -implement both orthogonal and fractional atom sites. Changes at least to -the documentation will be required to correct the description of -orientation matrices vs UB matrices. - -#### recording of scan intend - -DLS think they might be able to address their use case with the \_set -demand values. Probably no change or addition needed. - -#### CXI - -After some licensing problems DLS are talking to the community and they -appear happy to make the small changes required to make the current CXI -format fully NeXus compliant. Further updates in due course, but no -problems in sight. - -#### cnxvalidate - -No testers yet. Mark K is keen on feedback or bug reports. - -#### Next meeting - -[Telco 20160224](Telco_20160224.html "wikilink") diff --git a/content/Telco_20160224.md b/content/Telco_20160224.md deleted file mode 100644 index e682fbe8..00000000 --- a/content/Telco_20160224.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Telco 20160224 -permalink: Telco_20160224.html -layout: wiki ---- - -Date ----- - -Wednesday, 24th February, 16:30 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- ECM30 workshop - -- main landing page update -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one -- github branches - prune stale ones? -- definitions PR: - (update - app-defs and con-defs for new - default/default/signal/axes/AXISNAME\_indices) -- Next meeting -- AOB - -Minutes -------- - -Present: RO, HJB, AB, TSR, PJ - -### ECM 30 Workshop - -MK can go, participants need to email HJB for seats - -### Landing Page - -Discussions took place, more progress expected next time - -### Github issues - -#### 448 (PR) - -[Changes](https://github.com/nexusformat/definitions/issues/447) to -application definitions require individual approval. This will not be -merged as a whole, but is a useful reference for future updates to these -definitions. - -#### 443 - -Is a dramatic improvement to the manual and should be merged to master -as is so more eyes can provide feedback. - -### AOB - -Clarified that NXdata is currently required for a valid NeXus file. -There was 50:50 general agreement whether that this is necessary. - -### Next telco - -[Telco 20160315](Telco_20160315.html "wikilink") diff --git a/content/Telco_20160315.md b/content/Telco_20160315.md deleted file mode 100644 index 06933063..00000000 --- a/content/Telco_20160315.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Telco 20160315 -permalink: Telco_20160315.html -layout: wiki ---- - -Date ----- - -Wednesday, 15th March, 16:30 Central European Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- main landing page update -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one -- github branches - prune stale ones? -- Dectris Eiger JSON format -- cnxvalidate testing -- NAPI release and download webpages (including definitions kits), - Debian packages -- Next meeting -- AOB - -Minutes -------- - -Present: AB, PJ, MK, HJB, TSR, EW - -### Main Landing Page - -RO is preparing something, no update today - -### Github Issues - -Closed a few that on short inspection didn't require any more more. - -Recent work on updating copyright notices was welcome - -Stale Branches: Identified some candidates for deletion and some that -have valuable commits. - -### Eiger JSON Streaming Format - -Eiger has three outputs: NeXus/HDF5, Monitor and Streaming (zeroMQ) - -For the streaming the detector uses some JSON for metadata (plus binary -blob). The JSON string labels are short without hierarchy. - -After a discussion: There is nothing we can do to help their broken -mapping. JSON could be fixed easily, but maybe for their needs that is -good enough as well. Will pick up the discussion if there is input or a -proposal from Dectris or another party interested to engage. - -### cnxvalidate - -No testing reported - PJ was happy to hear about the tool though. - -### NAPI release - -All releases downloadable from d.n.o/kits should be on github. Same is -true for definitions. d.n.o/kits can go (redirect to github). - -Debian: Eugen is planning to make progress some time this year. - -### Next meeting - -[Telco 20160329](Telco_20160329.html "wikilink") diff --git a/content/Telco_20160329.md b/content/Telco_20160329.md deleted file mode 100644 index 22aba479..00000000 --- a/content/Telco_20160329.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Telco 20160329 -permalink: Telco_20160329.html -layout: wiki ---- - -Date ----- - -Tuesday, 29th March, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one -- Dectris Eiger JSON format - if participation from Dectris -- Metadata collection sites - - -- main landing page update -- cnxvalidate testing -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, MK, TSR, EW, PJ, AF, AB - -#### GIOTD (Github Issue of the Day) - -Triggered progress on -which had been dropped. - -#### Dectris JSON - -Thankfully Andreas joined can could be convinced to present the system -next time. - -#### Metadata - -Listing there seen as a good idea. Issue now created: - - -#### Landing Page - -Waiting for Ray who is currently busy travelling. - -#### cnxvalidate - -No further test reports so far. - -#### Next meeting - -[Telco 20160412](Telco_20160412.html "wikilink") - -#### AOB - -NIAC and Code Camp to be announced for October in Copenhagen. - -HJB still working on MX/NeXus publication. - -Recent addition of flow charts for data rules in the manual are very -well received. diff --git a/content/Telco_20160412.md b/content/Telco_20160412.md deleted file mode 100644 index ecc2fe9f..00000000 --- a/content/Telco_20160412.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Telco 20160412 -permalink: Telco_20160412.html -layout: wiki ---- - -Date ----- - -Tuesday, 12th April, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one - - Eugen: I suggest we continue \#414 in the NAPI repository - need - to decide how to deal with internal functions -- reminder to update [Latest News](Latest_News.html "wikilink") -- Dectris Eiger JSON format - Andreas to present -- main landing page update -- Next meeting -- AOB - -Minutes -------- - -Present: AB, EW, FA, HJB, MK, TSR, RO - -### Welcome - -Hi. - -### Github Issue - -All agree those removed functions are not only for internal use and must -be available to external code. Eugen will take care of that. - -### Lastest News - -The page is a little under used and not even linked from the home page. -If use does not pick up, we may drop it. - -### Dectris JSON - -No show from Andreas this time. We hope for the next meeting. - -### Landing Page - -No update. Ray will restart efforts. - -### Next Meeting - -Will be [Telco 20160426](Telco_20160426.html "wikilink") - -### AOB - -#### Remote Links - -Ray says there is interest in linking remote NeXus files to read trees -and not all of the data. It's not as simple as having a URL scheme for -links (which we do), there also needs to be an API. He has that with -remote python. HDF Group have something similar with a RESTful interface - That may -be a better bandwaogn to jump on. - -#### HDFGroup - -They have lost of key members of staff. There is some concern about the -future. diff --git a/content/Telco_20160426.md b/content/Telco_20160426.md deleted file mode 100644 index 5f06ce33..00000000 --- a/content/Telco_20160426.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Telco 20160426 -permalink: Telco_20160426.html -layout: wiki ---- - -Date ----- - -Tuesday, 26th April, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Dectris Eiger JSON format - Andreas to present -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one -- main landing page update -- list of competing standards -- update on research projects -- Next meeting -- AOB - -Minutes -------- - -Present: AB, AF, EW, HJB, MK, MB, RO, TSR - -### Dectris Eiger Streaming Format - -Andreas got up early in the US weat coast and fought admirably against a -poor network link in order to provide us with an overview of the Eiger -image streaming format. Information can be found here: - This all looks good and allows good -integration of a detector into local infrastructure. The main worry was -that people could write the flat format to file and call this “NeXus -light”. That will be addressed in the documentation. - -### Github Issues - -- NXroot: - simple to fix, assigned -- Missing symbols: - still not understood, but reverted to a state that should have been - working, awaiting tests -- variable length strings: - is an important - issue, but ugly to implement, hence not many volunteers, assigned to - Mark K thankfully. - -### The New Landing Page Project (TNLPP) - -Some progress, but no demoable prototype. Ray will update at the Telco -after the next - -### Competing standard - -Compiled a rough list of imgCIF, CXI, Data Exchange, TIFF, EDF, plus -things that are worse and more loosely defined. - -This was to list them in a overview slide in a presentation on NeXus. - -### Research Projects - -Dropped due to lack of time. Will attempt next time. - -### Next Meeting - -Is [Telco 20160512](Telco_20160512.html "wikilink") - -### AOB - -None. (Out of time.) diff --git a/content/Telco_20160510.md b/content/Telco_20160510.md deleted file mode 100644 index 0d9b22ea..00000000 --- a/content/Telco_20160510.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Telco 20160510 -permalink: Telco_20160510.html -layout: wiki ---- - -Date ----- - -Tuesday, 10th May, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now), otherwise we pick a random one -- variable length strings -- hdf 1.10 support - SWMR -- update on research projects -- items for NIAC -- Next meeting -- AOB - - Minor NXData Change proposal. (Mark B) - - -Minutes -------- - -Present: AF, MB, EW, MK, TSR, HJB, FAA, AB - -### Github Issues - -Quite a list that we went through. Selection of activity below. - -Missing obscure build features should be an option, not the default: -\#420 and \#425 - -Support for HDF5 1.10 should be simple to add and we'll make this happen -shortly. They API flag was even used before, but may have been dropped. -All could just work out of the box. (\#421) - -1. 329 to be merged. - - - -1. 364 assigned. - -### Items for NIAC - -Looked at - -The idea is to prepare some topics in advance to make real progress. - -While writing the minutes an Github issue repo has been created for the -upcoming NIAC discussions, primed with the results of our collection of -topics: To be reviewed. - -### Change to NXdata documentation - -Apparently it has become practise by at least certain developers at a -certain facility to just dump all data into NXdata. This is clearly not -good practise, because the extra dataset are confusing and serve no -purpose there. However the wording to prevent this is tricky to get -right. Adding useful data should still be possible in order to be -flexible and able to develop the standard. NXdata is no different from -any other place in the file in that respect. - -A general call for tidiness might be the right thing. We'll work on a -suggestion for the manual. - -### Next meeting - -[Telco 20160531](Telco_20160531.html "wikilink") diff --git a/content/Telco_20160531.md b/content/Telco_20160531.md deleted file mode 100644 index 5b4f2e29..00000000 --- a/content/Telco_20160531.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Telco 20160531 -permalink: Telco_20160531.html -layout: wiki ---- - -Date ----- - -Tuesday, 31st May, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- registering for NIAC and potential hotel shortage -- github issue of the day - suggestions welcome (there is a github - label now) - - --definitions-- - - [\#387](https://github.com/nexusformat/definitions/issues/387#issuecomment-219328772)- - proposition for version number of NeXus definitions - - --code-- - - 1. 329 - can we remove the issue branch from the repository? - - - 1. 419 - still waiting on a response from Stuart where to - install the header files - - - 1. 425 - done - - - 1. 426 - Maybe Tobias can have a look at it - - - 1. 420/421 - currently working on it (this work should be - continued by the original author - the code is a total mess) - -- release NAPI/tools with a fix for - - what else needs - to go in? -- review and discuss accepting **NXcontainer** pull request: - -- Intent to present **NXcanSAS** for ratification as application - definition by end of June -- items for NIAC -- CXI nexus integration question about virutal dataset -- Is a new graph of the base class hierarchy useful? Used to be in the - manual. - - see: - - [result of - discussion](https://github.com/prjemian/punx/issues/1) -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, MB, PJ, MK, EW, TSR, AB, ORNL (Mathieu and Steven) - -### Welcome - -Especially the ORNL! - -### Github Issues - -- definitions \#387 - consensus is that this may solve one problem - well, but certainly does not address all aspects of versioning. - There was debate whether versioning the definitions as a whole was - actually required. We encourage people to look into this to have an - informed discussion at the NIAC and code camp. -- code \#329 - branch can go -- code \#419 header files will be added -- code \#426 TSR's problem, but adding an API function to expose - information about the backend may be required -- code \#421 assigned to different developer - -### NAPI release update - -Could be done from master this week with the limited amount of changes -that went in so far. The release with support for HDF 1.10 may be NAPI -4.5 anyway, due to the high number of changes. - -### NXcontainer - -To be merged. There is a low bar for accepting contributed definitions. - -MB mentions that the use of NXshape in NXontainer may require revision. -That is to be evaluated and presented at NIAC. - -### Items for NIAC - -There is a repo for NIAC items. Please add thing that will need in depth -discussions early so we can be prepared. We may assign items to people -for preparation in later telcos. - -### CXI Compatibility - -CXI uses a n by 3 array where NeXus is more flexible and allows multiple -1D arrays of length n. To be compatible with both standards for a smooth -transition having the data both ways may a way. Doing that using HDF -virtual dataset would save storing the data twice. As far as NXDL is -concerned that data just needs to be provided twice, virtual dataset is -transparent to our abstraction. - -### Class diagram - -Very informative, might be too scary for newcomers. But we will try a -nicer layout. It is a useful tool for us in any case. Could be in an -advance section of the manual. - -### Next Meeting - -[Telco 20160614](Telco_20160614.html "wikilink") diff --git a/content/Telco_20160614.md b/content/Telco_20160614.md deleted file mode 100644 index 384ff07e..00000000 --- a/content/Telco_20160614.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Telco 20160614 -permalink: Telco_20160614.html -layout: wiki ---- - -Date ----- - -Tuesday, 14th June, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now) - - [PR \#475](https://github.com/nexusformat/definitions/pull/475): - add - [NXlog](https://manual.nexusformat.org/classes/base_classes/NXlog.html) - as child group of - [NXentry](https://manual.nexusformat.org/classes/base_classes/NXentry.html) - - [issue - \#476](https://github.com/nexusformat/definitions/pull/476): add - [NXnote](https://manual.nexusformat.org/classes/base_classes/NXnote.html) - as child group of - [NXentry](https://manual.nexusformat.org/classes/base_classes/NXentry.html) -- report from high data rate MX meeting at BNL -- registering for NIAC and potential hotel shortage -- items for NIAC -- Look at graph of the base class hierarchy - - -- Next meeting -- AOB - -Minutes -------- - -Present: AB, AF, EW, HJB, MK, PJ, TSR - -### Github Issue of the Day - -The two issues itemised above are resolved by the general agreement on -being permissive with base classes. That is while base classes aim to -cover most use cases, they don't list all acceptable groups and fields. -In order to be able to progress the standard additional data is -acceptable. Validation tools should not treat such additional items not -covered by a base class as errors, but notes or warnings. Users should -encouraged to find the best defined location for their information, but -we understand there is not a defined place for all possible data. - -This may require clarification in the manual. - -Related to that: cnxvalidate currently does no validation for files that -do not (claim to) conform to an application definition. Just checking -the use of base classes is another important use case. MK opened a -ticket to investigate. - -Issue 330 (definitions): Comments left on the ticket. Partial action -required at most. Could be resolved at the next NIAC. - -### MXHDR meeting report - - - -### PUNX - -PJ shared his latest python project: - - -It does similar things to cnxvalidate plus additional tooling. - -### Next Meeting - -[Telco 20160628](Telco_20160628.html "wikilink") diff --git a/content/Telco_20160628.md b/content/Telco_20160628.md deleted file mode 100644 index 5380e18c..00000000 --- a/content/Telco_20160628.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Telco 20160628 -permalink: Telco_20160628.html -layout: wiki ---- - -Date ----- - -Tuesday, 28th June, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now) - - [PR \#478 (NXspecdata as contributed - definition)](https://github.com/nexusformat/definitions/pull/478) -- items for NIAC (or code camp) to prepare -- Next meeting -- AOB - - look at [new - text](https://manual.nexusformat.org/classes/index.html) - in the manual - - phrase search the manual: [signal - data](https://duckduckgo.com/?q=%22signal+data%22+site%3Ahttp%3A%2F%2Fdownload.nexusformat.org%2Fdoc%2Fhtml&t=ffsb&ia=web): - - -Minutes -------- - -Present: HJB, PJ, AB (first 10 min), TSR - -### NXspecdata - -The idea is that eventually SPEC may write NeXus. Most fields are -mappings of what core macros write out. The usage of the files isn't -quite in alignment with NeXus traditions, for example with respect to -the relationships between files and NXentries. And there are other open -comments, but contributed definitions can be work in progress. Merged - -### NIAC items - -Recorded here: - -### Next Telco - -[Telco 20160712](Telco_20160712.html "wikilink") - -### AOB - -Herbert mentions this web site on HDR MX - -PJ brings the next wording on the base classes to our attention. We all -agree, but find actually developing a base class has implications on the -technical infrastructure. Ticket in NIAC opened. Also: The search on the -manual pages is not as useful as it could be. diff --git a/content/Telco_20160712.md b/content/Telco_20160712.md deleted file mode 100644 index ab9ee976..00000000 --- a/content/Telco_20160712.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Telco 20160712 -permalink: Telco_20160712.html -layout: wiki ---- - -Date ----- - -Tuesday, 12th July, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now) -- items for NIAC (or code camp) to prepare -- Next meeting -- AOB - -Minutes -------- - -Present: FAA, HJB, MK, AB, EW, TSR - -### Github Issue - -Support for HDF5 1.10 in NAPI: - - -If the test run that should be good enough to merge. Release 4.4.2 can -go out after that merge, without the changes to fix attribute arrays on -HDF4 and XML in C++. - -This adds support for reading SWMR files that are closed and VDS. This -is great. Further support for these advanced features in writing data or -reading while writing would require changes to the API and or how the -library is used. For example in SMWR you cannot create new objects once -in SWMR mode. Adding VDS support would be even harder. Eugen's PNI -library currently has support for neither. - -So for the moment that will be the extend of 1.10 support we offer, for -NAPI in maintenance mode - unless there are convincing cases presented -by the community, - -### Preparations for NIAC and code camp - -Not all able to attend the whole week. - -Will need to elect new officers and re-confirm NIAC members. Letters of -support need to be produced ahed of the meeting (September) for this. - -### Next Meeting - -Bit of a summer break, due to leave. So the next one will be [Telco -20160809](Telco_20160809.html "wikilink") diff --git a/content/Telco_20160809.md b/content/Telco_20160809.md deleted file mode 100644 index 5d437281..00000000 --- a/content/Telco_20160809.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Telco 20160809 -permalink: Telco_20160809.html -layout: wiki ---- - -Date ----- - -Tuesday, 9th August, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - suggestions welcome (there is a github - label now) -- changing the dims type in the NAPI from int to hsize\_t or - uint64\_t? -- items for NIAC (or code camp) to prepare -- Next meeting -- AOB - -Minutes -------- - -Present: EW, MK, AB, TSR, HJB (last half) - -### Github - -C++ API broken for non-HDF5 - TSR hopefully has time to address that -soon - -### dimensions data type - -All API calls consuming data dimensions have a 64 bit version already -(ex: nxputslab64). Except possibly the ones dealing with attribute -arrays. No action required. - -### NIAC - -Changes made to the tickets: - - -### Next Meeting - -[Telco 20160824](Telco_20160824.html "wikilink") - -### AOB - -None diff --git a/content/Telco_20160824.md b/content/Telco_20160824.md deleted file mode 100644 index ee52d9c4..00000000 --- a/content/Telco_20160824.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Telco 20160824 -permalink: Telco_20160824.html -layout: wiki ---- - -Date ----- - -Wednesday, 24th August, 16:30 Central European Summer Time (Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda (Tobias may be a few minutes late...) -- github issue of the day - suggestions welcome (there is a github - label now) -- further items for NIAC (or code camp) to prepare -- THG involvment in Code Camp and NIAC -- NAPI update -- web site redesign -- Next meeting -- AOB - -Minutes -------- - -Present: EW, HJB, TSR, MK, FAA, AB - -### Github and NAPI update - -Nothing flagged. The longer running problem with the C++ API for the -legacy backends is (mostly) resolved and Mantid would like an update -release. Eugen will attempt to schedule that for next week, - -### NIAC Meeting Preparations - -Mark has written a draft and welcomes feedback. It's in the ticket for -now, because Tobias forgot to give anyone write access to the NIAC -repository. (Now fixed.) - -### THG - -THG has been in contact and we're asking them to provide us an update on -the current plans of THG at the upcoming code camp. Other topics are -OpneMP support, filter repositories and status. - -### web site - -No Ray, no update. - -### AOB - -Meeting in Basel is on the 2nd at 9:00 in room 102. HJB is in charge of -the sandwich supply. - -RDA: There was a sort of survey by THG send round to RDA people on the -use of “hdf5 in the wild”. Forwarded to the committee mailing list. - -### Next Meeting - -[Telco 20160907](Telco_20160907.html "wikilink") diff --git a/content/Telco_20160907.md b/content/Telco_20160907.md deleted file mode 100644 index 5bef9d58..00000000 --- a/content/Telco_20160907.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Telco 20160907 -permalink: Telco_20160907.html -layout: wiki ---- - -Date ----- - -Wednesday, 7th September, 16:30 Central European Summer Time -(Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda (Tobias may be a few minutes late...) -- github issue of the day - suggestions welcome (there is a github - label now) -- further items for NIAC (or code camp) to prepare -- NAPI update -- web site redesign -- Next meeting -- AOB - -Minutes -------- - -Present: RO, HJB, EW, MK, TSR - -### Welcome - -Tobias was indeed late as the browser wouldn't connect. - -### Github - -No flagged item. Deferred detailed ticket work to upcoming code camp. - -### NIAC and Code Camp Agenda - -AB may have an issue to bring up with NXprocess. Could use some -preparation. Will discuss more detailed proceeding in the next Telco. - -### NAPI update - -Didn't happen as planned. EW put it on the list for tomorrow. - -### Website Update - -No progress. - -### AOB - -#### Report from Basel - -Dectris and their users have reaffirmed their commitment to NXmx. All -looks promising. A recently published article by Dectris mentions -storing data in some BioHDF format. That appears to be some editorial -mistake. We've been promised some more information - -#### HDF Group - -No reply from the HDF group on participation in the code camp or NIAC. - -#### NeXus remote object servers - -Ray presented the concepts of his successful project to serve a -sliceable NeXus file across the network. Useful in cases where you don't -want or need all the data locally. We discussed the relative merits of -doing that at the NeXus level or in plain HDF5 and also how relevant the -use case is to all science areas. There is also the competing idea that -the data stays remote and the algorithm or visualisation is sent to the -place holding the data. A further idea is to have persistent global -identifiers to the data(sets), similar to external links. Across the -network and curated like DOIs. We can discuss how much we as “NeXus” -want to be part of defining such an infrastructure. Possibly at the NIAC -or code camp. - -### Next meeting - -Last meeting before the code camp: [Telco -20160928](Telco_20160928.html "wikilink") diff --git a/content/Telco_20160928.md b/content/Telco_20160928.md deleted file mode 100644 index 4ad2df25..00000000 --- a/content/Telco_20160928.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Telco 20160928 -permalink: Telco_20160928.html -layout: wiki ---- - -Date ----- - -Wednesday, 28th September, 16:30 Central European Summer Time -(Copenhagen) - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day -- Discuss topics for upcoming code camp and NIAC meeting -- NAPI update -- web site redesign -- Next meeting (after NIAC and NOBUGS) -- AOB - -Minutes -------- diff --git a/content/Telco_20161123.md b/content/Telco_20161123.md deleted file mode 100644 index a8c0ef4d..00000000 --- a/content/Telco_20161123.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Telco 20161123 -permalink: Telco_20161123.html -layout: wiki ---- - -Date ----- - -Wednesday, 23rd November, 16:30 Brussels Time - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Discuss topics from code camp and NIAC meeting, check minutes - - Here are the [minutes](NIAC2016Minutes.html "wikilink") of NIAC 2016 -- github issue of the day - - [Pull Request: NXdata is now optional, as of - NIAC2016](https://github.com/nexusformat/definitions/pull/496) - - [add NXDL\_contact - attribute](https://github.com/nexusformat/definitions/issues/451) - - [remove unused - attributes](https://github.com/nexusformat/definitions/issues/330) - - [make distinction between required and optional content in - manual](https://github.com/nexusformat/definitions/issues/277) -- pixel as NX\_length -- web site redesign - future of wiki -- Can we rename the `uncertainties` attribute (such as in NXdata) to - be the singular `uncertainty`? -- AOB - -Minutes -------- - -Present: MK, HJB, EW, AF, AB, PJ, RO - -### Minutes from NIAC - -Generally accepted with minor corrections. All action items should be -understood and covered in tickets or already done. - -Versioning is ongoing with good progress. A lot of the workflow will -smooth out overtime and become clearer with use, we hope. - -### Github issues - -Pull request accepted with minor changes. - -NXDL contact attribute idea was rejected as detracting from proper -forums like mailing lists and NIAC. - -Unused attributes: ref and refindex seem to be unused indeed. They -should be deprecated now. (and exercise in versioning as well.) - -### pixels as length - -Not a great idea, but follows current practice at experiments. Should be -accepted. Will figure out a way to allow that and what the proper unit -name for pixels is. - -### Postponed Items - -We ran out of time on: - -- web site redesign - future of wiki -- Can we rename the `uncertainties` attribute (such as in NXdata) to - be the singular `uncertainty`? - -They have been put on the next meetings' agenda with some other items -that came up. - -### Next Meeting - -[Telco 20161213](Telco_20161213.html "wikilink") diff --git a/content/Telco_20161213.md b/content/Telco_20161213.md deleted file mode 100644 index 88fae1af..00000000 --- a/content/Telco_20161213.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Telco 20161213 -permalink: Telco_20161213.html -layout: wiki ---- - -Date ----- - -Tuesday, 13th December, 16:30 Brussels Time - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day - - [\#433: can this be - closed?](https://github.com/nexusformat/definitions/issues/433) - - [\#425: can close when 433 - closes](https://github.com/nexusformat/definitions/issues/425) - - [\#511: pixel as NX\_length - update](https://github.com/nexusformat/definitions/issues/511) - - [\#486: web site - redesign](https://github.com/nexusformat/definitions/issues/486) -- Future of wiki -- The [`uncertainties` - attribute](http://wiki.nexusformat.org/2014_axes_and_uncertainties) - (such as in - [NXdata](https://github.com/nexusformat/definitions/blob/master/base_classes/NXdata.nxdl.xml#L325) - and - [NXcanSAS](https://github.com/nexusformat/definitions/blob/NXcansas-492/applications/NXcanSAS.nxdl.xml#L424)): - - Can we rename to be the singular `uncertainty`? - - Can we add this to `fieldType` in `nxdl.xsd` as a [common - attribute of any - field](https://github.com/nexusformat/definitions/blob/master/nxdl.xsd#L578) - (such as - [`units`](https://github.com/nexusformat/definitions/blob/master/nxdl.xsd#L599))? - - What to do about [this issue - (\#370)?](https://github.com/nexusformat/definitions/issues/370) -- update on features or interfaces -- note we now have [unit testing of NXDL - files](https://github.com/nexusformat/definitions/issues/512) and - [travis-ci](https://github.com/nexusformat/definitions/issues/513) - on all pushes -- AOB - -Minutes -------- - -Present: AB (first half), HJB, MK, PJ, RO, EW, TSR - -### Github - -#### 433 - -New Ticket for the remaining work on NXatom\_site opened, this one -closed. - -#### 425 - -Done, closed. - -#### 511 - -Decided for “px” as “unit”. Should be allowed for detectors only. -Herbert makes a branch to test this out. - -#### 486 - -There were some problems getting the test site to compile. Those are -resolved. By the next meeting Pete and Ray think they can have a test -site up to demonstrate the plans for the new home page. - -### Wiki - -If we move having the main website on new foundations, dropping the wiki -has consensus. The main content this is kept up to date there is the -NIAC related information and these minutes. No collaborative editing by -community members is happening. Even for that the workflow would be -sensible through github pull requests. Maintaining pages on a low -traffic wiki is more difficult than working with a repo. - -### uncertainties - -According to the decision by the NIAC this is allowed everywhere. A -plural vs singular change was no longer requested. canSAS works on a -“resolution” field and will come up with a full example that would -inform the documentation of this feature. - -### interfaces vs features - -Progress is made, nothing to show at the moment. - -### Next meeting - -[Telco 20170117](Telco_20170117.html "wikilink") - -### AOB - -Travis now texts the nxdl commits to the definitions repo (broken -shortly after the meeting, by work on ticket 511, expect operations to -resume shortly). diff --git a/content/Telco_20170117.md b/content/Telco_20170117.md deleted file mode 100644 index 5f69b129..00000000 --- a/content/Telco_20170117.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Telco 20170117 -permalink: Telco_20170117.html -layout: wiki ---- - -Date ----- - -Tuesday, 17th January, 16:30 Brussels Time - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- [PR \#527](https://github.com/nexusformat/definitions/pull/527) - clarify if item (group, field, or attribute) is required or optional - ([examples](https://github.com/nexusformat/NIAC/issues/21#issuecomment-271126282)) -- [PR - \#529](https://github.com/nexusformat/definitions/pull/529/commits) - update copyright dates to 2017 -- `uncertainties` example ready? - - [two - examples](https://github.com/nexusformat/NIAC/issues/21#issuecomment-271126894): - Diamond and APS both have NXcanSAS files using `@uncertainties` -- AOB - -Minutes -------- - -Present: TSR, RO, MK, PJ - -Pull requests accepted and closed. - -Ticket opened for clarifying status of “anonymous” groups (without a -specific required name) in the documentation. That is currently rendered -as “(name)” without the qoutes, which is not obvious. - -Examples for uncertainties: Well received, except for the units 1/A for -1/Angstroms, which will require further discussions. We will need to -update the documentation and NXDL to formally allow uncertainties. - -AOB: Ray suggests we are present at the RDA meeting and -remote-data-pre-meeting in Barcelona in April. He will provide links via -mail. “LInks to RDA” set on the agenda for next time. diff --git a/content/Telco_20170130.md b/content/Telco_20170130.md deleted file mode 100644 index 29f199fb..00000000 --- a/content/Telco_20170130.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Telco 20170130 -permalink: Telco_20170130.html -layout: wiki ---- - -Date ----- - -Monday, 30th January, 16:30 Brussels Time - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- github issue of the day -- [\#511: pixel as NX\_length - update](https://github.com/nexusformat/definitions/issues/511) look - at work in branch - -- [\#486: web site - redesign](https://github.com/nexusformat/definitions/issues/486) - demo planned - wiki replacement? -- [\#177: delete NXcharacterization base - class](https://github.com/nexusformat/definitions/issues/177) as - suggested on Jul 28, 2015 -- update on features or interfaces -- HDRMX Lund meeting -- links to RDA -- Membership vote -- AOB - -Minutes -------- - -Present: EW, AB, HJB, MB, MK, TSR - -### 511 - -Aaron will have a closer look to make sure this is sane. - -### 486 - -No show by Ray. But we agreed moving the wiki out of mediawiki into -jekylls hands. Tobias will work with Freddie to extract the content. - -### 177 - -Tobias accidentally deleted NXcharacterization in a failed attempt to -generate a pull request. No objections. - -### features and interfaces - -Deferred - -### HDRMX Lund meeting - -Herbert invited all interested parties to attend. Mark K suggested it is -a fun meeting from the Basel experience. Tobias will attend. - -### RDA - -Someone from Diamond will attend the Alba satellite meeting. Mark K -supports the idea a few people from the NeXus community should go. He'll -look into that, as will Tobias. - -### Voting - -Some of the recent online votes carried a clear majority of the votes -cast, but have failed to reach a quorum of votes from the eligible -members. The constitution does not see that as a problem explicitly, but -it would be nice if that was formally permitted. We'll bring that up at -the next NIAC. - -Next meeting ------------- - -= [Telco 20170220](Telco_20170220.html "wikilink") - -### AOB - -Mark B has an example file for the NXevent\_data for interested people -to look at: - diff --git a/content/Telco_20170220.md b/content/Telco_20170220.md deleted file mode 100644 index 44071981..00000000 --- a/content/Telco_20170220.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Telco 20170220 -permalink: Telco_20170220.html -layout: wiki ---- - -## Date -Monday, 20th February, 16:30 Brussels Time - -Hangout Link: - - -## Agenda - -- Welcome and agree Agenda -- NeXus website - - [\#486: web site redesign](https://github.com/nexusformat/definitions/issues/486) demo planned - - wiki replacement, see https://nexusformat.github.io/wiki/ - could that work for the website as well? -- [\#511: pixel as NX\_length - update](https://github.com/nexusformat/definitions/issues/511) look - at work in branch - -- HDRMX Lund meeting -- RDA ALBA satellite -- AOB - -## Minutes - -Present: MK, MB, PJ, HJB, TSR, FAA, AB, RO - -### Website -The Github Pages redesign was well received. Action on FAA and TSR to liaise on making this the replacement of the current wiki *and* main website. - -### NXMX update -EW sent in his approval. TSR would prefer not to change non-NXMX application definitions, as they have not asked for a change. This will be dropped. MK had some issues with the new wording to be clearer about what kind of length are allowed. He will edit this and MB will merge the pull request. - -### HDRMX meeting -[HDRMX event in Lund](https://indico.maxiv.lu.se/event/233/overview) - Herbert co-hosts, let him know if you want to join. - -### RDA and similar events -Ray would like to see some NeXus participation at one of the following events: -* -* - -People will give it some good thought. - -### AOB -* Unfortunately EW missed deadlines for inclusion of latest NAPI et al into Debian. -* AB has some interest by FEL people to potentially join the NIAC. They would be very welcome to join. -* MD may have some interest by an electron microscope vendor to join discussions. This is also very welcome. For the moment DLS can facilitate this. Partcipation in Telcos is open as well. - -### Next meeting -[Telco 20170308](Telco_20170308.html) diff --git a/content/Telco_20170308.md b/content/Telco_20170308.md deleted file mode 100644 index 4a36e7dd..00000000 --- a/content/Telco_20170308.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Telco 20170308 -permalink: Telco_20170308.html -layout: wiki ---- - -Date ----- - -Wednesday, 8th March, 16:30 Central European Summer Time (Copenhagen) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- wiki & website move - - any outstanding problems - - return of user pages? -- Github NIAC repo & minutes in communication -- Questions below from Dectris (Andreas - Tobias edited for markdown) in preparation of the [HDRMX Meeting](https://indico.maxiv.lu.se/event/233/overview). For convenience here are links to [NXdetector](https://manual.nexusformat.org/classes/base_classes/NXdetector.html#nxdetector) and [NXmx](https://manual.nexusformat.org/classes/applications/NXmx.html#nxmx). - * `dead_time`, `detector_readout_time` and `frame_time` are defined as `NX_FLOAT`. `count_time` is defined as `NX_NUMBER`, all four with units=`NX_TIME`. Shouldn't the parameters be of the same data type? - * `frame_time` is described as `exposure_time + readout time`. To be consistent with the other parameters, this should be `count_time + detector_readout_time`. - * `sensor_material` is described as "the name of this converter material" for "radiation [..] not directly sensed by the detector". Can this description be expanded to include directly detected radiation? - * Same for `sensor_thickness`. - * `flatfield_applied` is currently called `flatfield_correction_applied`. This is arguably in better agreement with `angular_calibration_applied`. Can we keep it? - * Are the group names binding or only their NX classes? For example, EIGER calls the `NXcollection` group `detectorSpecific`, not `collection`. Similarly, the `NXdetector_module` group is planned to be called `module` not `detector_module`. - * What does the required parameter `/entry/instrument/detector/data[np,i,j]` entail? - * A parameter like `detector_number` that gives the serial number should be made mandatory. Or it could be an attribute to `/entry/instrument/detector/description`? -- LCLS HDF5 topics -- Next meeting -- AOB - -Minutes -------- - -Present: MK, TSR, AB, AF, HJB, PJ - -### Website Move - -No issues reported, no strong desire to keep user pages. They will be removed and can be reinstated by pull requests from the individuals if they so wish. - -### Triplicated Minutes - -Decision was to keep them in the website repo only. Remaining copies will be deleted. - -### Dectris Items - -* times will be changed to the general NX_NUMBER -* frame_time clarifcation with the field names actually used is good. -* sensor material and thickness: The documentation is both needless specific and vague. The suggestion was to speak of the "active" material. -* flatfield renaming: We should check whether that has found active use and only change if not. HDRMX meeting in Lund next week will be used. -* group names in application definitions can be made nameless, as in this case. Any name for a group of the right type is acceptable -* data is a link to the data -* `detector_number` is already taken for an `INT`. We propose to define a new string type `serial_number`. - -### LCLS HDF5 - -Aaron had some questions to the use of the new and improved NXlog. There was some discussion around the expected chronological order in there. -There was some agreement that sorting cannot always be guaranteed, but no random ordering should be allowed. - -The also have the intention of storing data that could lend itself to using ragged arrays. That is not something perceived to be simple to get right. -Aaron will prepare some example and email that around for comments. - -### Next Meeting -[Telco 20170322](Telco_20170322.html) - - - diff --git a/content/Telco_20170322.md b/content/Telco_20170322.md deleted file mode 100644 index c953c1f6..00000000 --- a/content/Telco_20170322.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Telco 20170322 -permalink: Telco_20170322.html -layout: wiki ---- - -Date ----- - -Wednesday, 22 March, 16:30 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- LCLS topics: event alignment and ragged data -- [x] [definitions issue 524](https://github.com/nexusformat/definitions/issues/524) - [already resolved by merge of PR 527](https://github.com/nexusformat/definitions/pull/527) -- Next meeting -- AOB - -Minutes -------- - -Present: David A Schneider (LCLS), Aaron, Andreas, HJB, MK, TSR (until 17:15), PJ - -### LCLS Topics - -This was an interesting and longer discussion about the use of NeXus, HDF5 and its special features, and the design of a data collection system. -The current protype of the LCLS system uses compound types and VLEN dataset. It relies on SWMR to communicate progress of the experiment to data consumers. -Since NeXus does not use compound type and VLEN only for strings (and that is painful), they anticipate some problems for efficiency and -latency when moving to an all-NeXus way of working. -Message brokers were brought into the discussion, that follow a more network-type dataflow with lower latency than what can be achieved through a filesystem. -Apart from individual suggestions, like using NXcollection when sticking to compound types for data that end users are not interested in, no final conclusion was reached at 17:15. - -### Github issue - -Was completed already, recorded here for reference. - -### Next Meeting -[Telco 20170405](Telco_20170405.html) diff --git a/content/Telco_20170405.md b/content/Telco_20170405.md deleted file mode 100644 index e08d1f43..00000000 --- a/content/Telco_20170405.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Telco 20170405 -permalink: Telco_20170405.html -layout: wiki ---- - -Date ----- - -Wednesday, 5 April, 16:30 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Cspad to NeXus: changes to NXdetector_module -- Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) -- github issue of the day - suggestions welcome (use telco github label) - - [ ] [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Github [definitions repo stale branches](https://github.com/nexusformat/definitions/branches/stale) -- Next meeting - -Minutes -------- - -Present: AB, MK, HJB, PJ, TSR - -### NXdetector_module - -Unfortunately NXdetector_mdoule is not consistent with NXdetector etc in that it does not use depends_on directly, but as an attribute to module_offset. -That does not allow preserving all axis names. The desire was to have something the reflects the hierarchical nature of the CSPAD modules. -At least TSR was reluctant to change the existing NXdetector_module for a non-functional improvement. - -The situation will be explored further and a proposal will be created as a ticket, if needed. - -### PDB - -All are in agreement that an NXPDB base class would we a good idea and we discussed ways in which we would not have to manually transcribe the definitions. -HJB will bring in experts and raise a Github ticket. - -### Github Issues - -All telco labelled issues in the definitions repo have been discussed briefly and the ones that could not be resolved immediately should all be very close to completion. - -### Stale Branches - -We had 5. One became a pull request. One deletion. One is recording potential future changes to application definitions. Leaves two to look at at a later point. - -### Next Meeting -[Telco 20170426](Telco_20170426.html) - diff --git a/content/Telco_20170426.md b/content/Telco_20170426.md deleted file mode 100644 index f49b045b..00000000 --- a/content/Telco_20170426.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Telco 20170426 -permalink: Telco_20170426.html -layout: wiki ---- - -Date ----- - -Wednesday, 26 April, 16:30 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) -- Cspad to NeXus: NXdetector_module -- Github issue of the day - suggestions welcome (use telco github label) - - [ ] [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, AB, MK, TSR - -### PDB - -Herbert will discuss at the ACA meeting 26th May (and the IUCr meeting in India). If there could be some idea of how we want to implement that, that would be good. -Assigned https://github.com/nexusformat/definitions/issues/553 to PJ, hoping he can have a look. - -### CSPAD - -Some changes are required and at the moment some software error prevents progress. Should have a proposal ready in three weeks for the next meeting. -Ideally we would have two example files. A "minimal change" and a "beautiful" version, both with output of cnxvalidate. For comparison we'd also look at Eiger files and runs of cnxvalidate with edited NXDL. - -### Github issues - -https://github.com/nexusformat/definitions/issues/562 deferred. - -https://github.com/nexusformat/definitions/pull/558 approved, but not yet merged. - -https://github.com/nexusformat/definitions/issues/559 assigned to MK to add ub_matrix - -### AOB - -NXcontainer discussion in github: We wait for DLS to decide what to do with their proposal. If they drop it, someone else might want to propose that instead. - - - - -### Next Meeting -[Telco 20170517](Telco_20170517.html) - diff --git a/content/Telco_20170517.md b/content/Telco_20170517.md deleted file mode 100644 index ef9d88d9..00000000 --- a/content/Telco_20170517.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20170517 -permalink: Telco_20170517.html -layout: wiki ---- - -Date ----- - -Wednesday, 17 May, 16:30 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) -- NXcontainer -- ub_matrix -- Github issue of the day - suggestions welcome (use telco github label) - - [ ] [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: AB, HJB, MK, Michael Wharmby, TSR - -Short meeting today. - -### PDB - -ACA meeting is before the next meeting. Nothing has to be done before. - -### NXcontainer - -Michael stated his intentions with the proposal and that was met with encouragement and no objections. -He will present a an example file (or a set of those) to illustrate the idea at the next Telco. - -### ub_matrix - -All work done and committed. MK will check the mailing list knows. - -### AOB - -AB committed himself to preparing and updated version of NXreflections incorporating the input from the fruitful discussions we had at the NIAC meeting. - -MK reports his long standing problem with the Java NAPI came from a missing close call and was made difficult to debug by the Eclipse platform. See posts on the mailing list. - -### Next Meeting -[Telco 20170607](Telco_20170607.html) - diff --git a/content/Telco_20170607.md b/content/Telco_20170607.md deleted file mode 100644 index e3870dcf..00000000 --- a/content/Telco_20170607.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Telco 20170607 -permalink: Telco_20170607.html -layout: wiki ---- - -Date ----- - -Wednesday, 7 June, 16:30 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Github HDF5 filters repo -- Update on current projects - - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) - - NXreflections - - NXcontainer -- Next meeting -- AOB - -Minutes -------- - -Present: Clemens Weninger, AB, EW, MW, TSR - -### Welcome - -Clemens takes over from David Schneider at LCLS. We welcome him very much. - -### HDF5 filter repo - -Most urgent problems: - -- Missing Readme (should detail purpose and origin of the code) -- LZ4 test failure -- Top level build instructions (CMake) - -### PDB - -No HJB, no report - -### NXreflections - -Nice pull request created by AB. Discussed some documentation issues and technical improvement. Easy to get to a finished state soon, except maybe for the flags. - -### NXcontainer - -MW created a pull request in exampledata with files to illustrate the ideas, which have changed from the original proposal. -We didn't have time to look at them in detail. Will discuss next time. - -### Next Meeting -[Telco 20170628](Telco_20170628.html) - -### AOB - -MW also has a pull request for NXstage, which is quite similar to NXtransformations. -There was potential need identified for grouping certain instrument devices, but that may lead to slightly arbitrary grouping, based on personal preference. Depending on location, funciton, motion, etc. We'll pick up the discussion next time again. diff --git a/content/Telco_20170628.md b/content/Telco_20170628.md deleted file mode 100644 index b34d9f53..00000000 --- a/content/Telco_20170628.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Telco 20170628 -permalink: Telco_20170628.html -layout: wiki ---- - -Date ----- - -Wednesday, 28 June, 16:30 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - -- Welcome and agree Agenda -- Code Camp or similar activity in 2017 -- SWMR support (HDF5 1.10) - example files -- multiple samples in one NXenty -- NXslit update -- Github HDF5 filters repo -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: AB, PJ, TSR, MB, MK, EW - -### Code Camp - -PSI, DESY and DLS look into hosting somethign this year. - -NOBUGS 2018 will be in the US, so having it in Europe again would be okay. - -### SWMR support - -We want to encourage users to adopt HDF5 1.10 and hence using SWMR files as examples is fine. -But files need to identify themselves as SWMR/HDF5-1.10 so users are not surprised by them not being readable using legacy libraries. -README information would be nice, but the filename has a safer way of conveying that information. - -### Multiple Samples in one Measurement - -Both ESS and LCLS raise that as a use case. AB will provide an example of how he would suggest to encode that. - -### NXslit - -After some discussion we agreed that having extra terms in the base class is a good solution, because many people many want to record information on individual blades. -EW will make a proposal. - -### HDF5 filters - -EW is making good progress on documenting the repo content and simplifying the build system. More to be see next time. - -### Github Issue of the day - -DLS suggest moving the @target link attribute to the group level in order to find the source location of data linked to NXdata in an external HDF5 linking scenario. -MB will produce an example file. - - -### Next Meeting -[Telco 20170711](Telco_20170711.html) diff --git a/content/Telco_20170711.md b/content/Telco_20170711.md deleted file mode 100644 index 08e01dda..00000000 --- a/content/Telco_20170711.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Telco 20170711 -permalink: Telco_20170711.html -layout: wiki ---- - -Date ----- - -Tuesday, 11 July, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Code Camp or similar activity in 2017 -- Update on current projects - - ready to [release v3.3 of NeXus definitions](https://github.com/nexusformat/definitions/milestone/4) - - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) - - NXcontainer - look at example files in pull request to examplefile repo - - identifying data source location in NXdata - - NXslit proposal - - Cspad to NeXus: NXdetector_module - - NXreflections - ragged arrays? - - Github HDF5 filters repo -- Next meeting -- AOB - -Minutes -------- - -Present: MB, MK, PJ, AB, TSR, EW, FA, HJB - -### Code Camp 2017 - -Target is last week of October, for about three days, hosted by DLS. - -### Ongoing Projects - -#### Release 3.3 - -Looks like it is ready to go. There is an automated script that generates release notes. Mid term they could move into the wiki part of that repo space. - -Target date for the next release is January, or maybe earlier at the Code Camp? - -#### PDB - -All are in agreement that this is a good idea. HJB talks to COMCIFS and COMDATA around the IUCr meeting in August. We can look at the implementation at the code camp. - -#### NXcontainer - -Nothing to report and on the back burner. DLS suggested dropping from the agenda until some progress is made there. - -#### Identifying data sources in NXdata - -DLS have prepared and example and no one could come up with a better proposal. They will put this to the test in practise now. - -#### NXslit - -We clarified the preferences raised in emails and the ticket system with the conclusion that "left" and "right" are unnecessarily vague concepts possibly overloaded with local conventions. Positive/negativ x/y direction is directly tied to the NeXus coordinate systen and will be the choice for the new proposal. - -#### CSPAD - -We did not discuss the CSPAD, but aligning timestamped data in NXlogs written with different frequencies using the cue indices. - -AB would like to see some full example file. TSR may have one or could create one for one of the next meetings. MB indicated the same. Would be nice to compare. - -#### Ragged arrays - -They are more of an HDF5 problem than a NeXus one. There is no simple efficient way to deal with them. Either you end up with many unused chunks and lots of metadata or you need to flatten the dimensions and have a run length index dataset. -AB will investigate relative merits with LCLS people. - -#### HDF5 filters repo - -Eugen is making progress on simplifying the build system, which is currently too complex to maintain. - - -### Next Meeting -[Telco 20170725](Telco_20170725.html) - -### AOB - -Dropped due to lack of time. diff --git a/content/Telco_20170725.md b/content/Telco_20170725.md deleted file mode 100644 index edd9617f..00000000 --- a/content/Telco_20170725.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Telco 20170725 -permalink: Telco_20170725.html -layout: wiki ---- - -Date ----- - -Tuesday, 25 July, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) - - PR "[Renames relative_molecular_mass #564](https://github.com/nexusformat/definitions/pull/564)" will be merged unless there are objections raised today -- Code Camp or similar activity in 2017 -- Update on current projects - - NXreflections - ragged arrays? - - multiple samples in one NXenty - - Github HDF5 filters repo -- PDB Group in NeXus -- Next meeting -- AOB - -Minutes -------- - -Present: AB, HJB, MK, FAA, TSR - -### Github Issues - -* [consistent documentation for flexible names][https://github.com/nexusformat/definitions/issues/562] commented on the issue -* relative_molecular_mass will not be renanmed, agreement on the closure of the pull request - -### Code Camp 2017 - -No update from the potential hosts - -### Project Updates - -#### NXreflections & multiple NXsample - -No update, will be available in 4 weeks time - -#### external HDF5 filters and C++ API for HDF5 - -Good progress on both fronts (EW emailed update) - -### PDB data inclusion - -Agreement that a NXPDB or PDB group should be used to wholesale import everything the PDB has to offer. Validation would occur only via the transliteration routine. - - - - - -### Next Meeting -[Telco 20170808](Telco_20170808.html) - diff --git a/content/Telco_20170808.md b/content/Telco_20170808.md deleted file mode 100644 index 94c6cba5..00000000 --- a/content/Telco_20170808.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Telco 20170808 -permalink: Telco_20170808.html -layout: wiki ---- - -Date ----- - -Tuesday, 8 August, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- PDB Group in NeXus -- Dark Field -- Code Camp or similar activity in 2017 -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting - -Minutes -------- - -Present: HJB, TSR, MK - -### PDB - -HJB created a branch. Because the PDB information is encoded in CIF the NeXus base class was named NXcif. -The request was raised to rename it to NXpdb to avoid unnecessary confusion. This was completed during the conference call. - -### Dark Field - -EW requested a dataset for storing dark frames. In extension to how `NXmx` has `flatfield` the suggestion would be to define `darkfield`. Since it is important and can be different to the main data acquisition HJB suggested also to define `darkfield_exposure_time`. - -### Code Camp - -The invite has gone out (to -committee for now). Should be more widely distributed. -Staying in the onsite accommodation wasn't recommended. We'll get in contact with MB. - - -### Github Issue of the Day - -The only issue marked "telco" was already discussed last time. Removed the label. - - - -### Next Meeting - -That was it. Short meeting. - -[Telco 20170823](Telco_20170823.html) - diff --git a/content/Telco_20170823.md b/content/Telco_20170823.md deleted file mode 100644 index aa19c3a9..00000000 --- a/content/Telco_20170823.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20170823 -permalink: Telco_20170823.html -layout: wiki ---- - -Date ----- - -Wednesday, 23 August, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Code Camp 2017 - - Features - - Shapes - - Versioning -- Update on current projects - - NXreflections - ragged arrays? - - multiple samples in one NXenty - - Github HDF5 filters repo -- Next meeting -- AOB - -Minutes -------- - -Present: Herbert Bernstein, Eugen Wintersberger, Aaron Brewster, Mark Basham, Mark Koennecke - -We discussed the upcoming code camp: - -- Mark Basham has booked us into Coseners House in Abingdon. The dates have to be October, 24-26 2017 because Coseners is booked otherwise. Details will be finalised and he will send an email to the NeXus mailing list once that is done. He expects this to happen before the end of the week. -- In addition to the topics stated above, there were more suggestions: - - NXpdb - - Mark K wants to work at the issues on cnxvalidate as discussed at the last meeting - -Regarding the pending projects: - -- No news on NXreflections -- Multiple samples in one entry: Aaron will provide an example file for review in the nexus_examples repository. -- Github HDF5 filters repo: Eugen has worked on this and this is now 75% complete. There is still some cleaning up to do. Herbert insisted on one particularly difficult filter, the blosc. It is difficult because this filter uses a library with many dependencies. Which handle reasonable well under linx but less so on windows. Testing on OSX is also still pending as Eugen has no access to an OSX installation. - -There were no AOBs. - -### Next Meeting -[Telco 20170912](Telco_20170912.html) - diff --git a/content/Telco_20170912.md b/content/Telco_20170912.md deleted file mode 100644 index 04047273..00000000 --- a/content/Telco_20170912.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Telco 20170912 -permalink: Telco_20170912.html -layout: wiki ---- - -Date ----- - -Tuesday, 12 September, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Update on current projects - - NXreflections - ragged arrays? - - multiple samples in one NXenty -- Next meeting - -Minutes -------- - -Present: RO, EW, AB, TSR - -### Welcome - -There were some problems joining the telco. Aaron had to approve the participants. Hope that doesn't happen next time. - -### Github issues - -One merged. NXdetector documentation deferred to the code camp. NXevent_data also lacks the scaling; pull request will be revised. - -### Current Projects - -Reflections: No update. We'll wait for feedback from LCLS. - -We did discuss the different use cases of multiple samples. Either as result of processing or of the fact that the experimental setup doesn't allow the data to be split between different samples, due to unknown shape or timing. Aaron put a pull request out with an example for processed data. Could be discussed at the code camp. - -### Next Meeting -[Telco 20171004](Telco_20171004.html) - diff --git a/content/Telco_20171004.md b/content/Telco_20171004.md deleted file mode 100644 index d3b3f2e5..00000000 --- a/content/Telco_20171004.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Telco 20171004 -permalink: Telco_20171004.html -layout: wiki ---- - -Date ----- - -Wednesday, 4 October, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Nested Detector Modules -- Timestamped Events -- [ICALEPCS HDF5 Workshop](https://indico.esrf.fr/indico/event/12/) -- Code Camp 2017 -- Next meeting -- AOB - -Minutes -------- - -Present: AB, HJB, MB, EW, TSR - -### Nested Detector Modules - -AB asked about correct and best practise for having a hierarchy of NXdetector_modules. The current definition would expect them to be flat in the NXdetector and have the -hierarchy represented in the geometry chain. While his current example file can be processed by DIALS, Aaron was happy to explore following the convention more. -At the code camp we would aim to come to a conclusion whether we need to improve the base classes to make encoding the relationships tidier. - -### Timestamped Events - -There have been some exchanges of example files recently, but we still don't have clear documentation on how to align events in time. Again, we will have time and expertise at the code camp for this. - -### ICALEPCS HDF5 Workshop - -No issues were put forward to be raised there by the people attending that (EW & TSR). - -### Code Camp - -Items for the agenda are collected on the wiki pages. MB has already update the list with the items above. -EW cannot attend, but will have at least 10 people attending as of today. - - -### Next Meeting - -Will be from the Code Camp, summarising the output of that (if any): -[Telco 20171026](Telco_20171026.html) - diff --git a/content/Telco_20171026.md b/content/Telco_20171026.md deleted file mode 100644 index 2c490ac5..00000000 --- a/content/Telco_20171026.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Telco 20171026 -permalink: Telco_20171026.html -layout: wiki ---- - -Date ----- - -Thursday, 26 October, 14:00 BST (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Report from [Code Camp 2017] -- AOB -- Next meeting - -Minutes -------- - -Present: -Hangout: RO, EW, PJ -Code Camp (in person): TSR, MDJ, MC, JH, MK, PC, MS, MB - -### Report from Code Camp - -Essentially as captured in the minutes. - -Ray suggested the use of the nexusformat python package for features. That was already being tried, but would need additions to the package. Those would be welcome. - -Discussion and clarification on the example file with axes with Ray. - -### AOB - -Ray: People in the US are working on a materials database similar to ICAT. Question to think about: Should there be a tag for the things to drag into a catalogue. - - -### Next Meeting -[Telco 20171107](Telco_20171107.html) - diff --git a/content/Telco_20171107.md b/content/Telco_20171107.md deleted file mode 100644 index e3a90916..00000000 --- a/content/Telco_20171107.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Telco 20171107 -permalink: Telco_20171107.html -layout: wiki ---- - -Date ----- - -Tuesday, 7 November, 16:30 CET (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Report from [ICALEPCS HDF5 Workshop](https://indico.esrf.fr/indico/event/12/) -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: AB, EW, MB, MK, PJ, TSR - -### Report from HDF5 Workshop - * C++ HDF5 API presented by EW - * Filters - HDF Group optentially has plans to sell them for writing, reading will be free. Do we want to compete with our repo? - * HDF Group still aims to be more open source - opening their bug tracker and linking to a git repo from their web pages - -### Github Issues -Two old ones have been looked at now: NXlog has the time dataset changed from NX_INT to NX_NUMBER (was probably TSR's editing error in the first place). And we decided some English language is required near the "data" dataset in Nxdetector to ensure people don't think 4 dimensions are mandatory. - -Two tickets have been generated by Ray and require further input from him. Mark B produces more example files for him to digest and will send link to Dawn source code that deal with axes for plotting. -Validation shall already check for dimensions for _indices etc in NXdata. Maybe a feature to extract the information would help. - - -### Next Meeting -[Telco 20171128](Telco_20171128.html) - -### AOB -Short meeting... diff --git a/content/Telco_20171128.md b/content/Telco_20171128.md deleted file mode 100644 index 6cc95aeb..00000000 --- a/content/Telco_20171128.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Telco 20171128 -permalink: Telco_20171128.html -layout: wiki ---- - -Date ----- - -Tuesday, 28 November, 16:30 CET (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Update on multiple detector modules -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: EW, RO, HJB, MK, AB (briefly), PJ (mainly from the AOB part) - -### Welcome -Happened. - -### Multiple Detector modules -No update. - -### Github issues -Deferred discussion on new pull request by RO (#602) until people had a chance to look at it. - -Agreed __target__ attributes should not have mandatory values defined in application definitions. That rules out working with subentries. Ticket #600. MK agreed to implement a workaround in the validation tool until the NIAC has formally edited the application definitons. - -Adding z_pixel_offset (#591) agreed to merge and get NIAC approval later. Backward compatible change. - -### Next Meeting -[Telco 20180116](Telco_20180116.html) - -### AOB -Some discussions around RO's pull request: -* specifying both _errors and @uncertainties should be avoided. This should be clarified in the documentation. -* data collected on irregular grids may leave you in situations where plotting with proper x and y axis is not straightforward or possible. -* with the versioning reaching maturity it will be possible to eventually delete things of base classes or application definition, as opposed to marking things deprecated. We're not yet in this state but that is a goal. diff --git a/content/Telco_20180116.md b/content/Telco_20180116.md deleted file mode 100644 index c0406856..00000000 --- a/content/Telco_20180116.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Telco 20180116 -permalink: Telco_20180116.html -layout: wiki ---- - -Date ----- - -Tuesday, 16 January, 16:30 CET (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Suggested NXdata changes by Ray -- Milestones for NXDL releases -- Discussion on multiple signals in NXdata -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - - Mark B has had a question on where the official location for HDF compression algorithms is with respect to the Eiger. - -Minutes -------- - -Present: TSR, AB, EW, MK, PJ, RO - -Apologies: Mark Basham, FAA - -### Welcome - -Some mixup with Hangout, session was split for the first 10 minutes. - -### NXdata - -https://github.com/nexusformat/definitions/pull/602 - -Ray will edit and present next time. uncertainties should be perferred over the old _errors. - -### Milestones - -https://github.com/nexusformat/definitions/milestones/NXDL%202018.1o - -Action on all: Resolve all possible issues; at the next meeting advaocate then unresolved tickets that still should be part of the upcoming release. We still establish the target date then. - - -### multiple signals, ESRF proposal - -(This took quite some time, just noting down one strand of the exchange.) - -PJ: Support for generic plotting is a main goal of NeXus. - -RO: Adding multiple signals does not explain to a program what to do with that additional data. - -MK: Could suggest features to solve this. - -TSR: auxiliary_axes is a solved problem. Any number of axes are possible with _indices. - -PJ: That could have been to use with the additional (auxillary) signal. - -TSR: That would generate more problems (indices). Next action? - -PJ: Ball in Armando's court to provide examples. - - -### Github issue of the day - - * https://github.com/nexusformat/definitions/issues/600 (target attribute) commented - -### Next meeting - -[Telco 20180130](Telco_20180130.html) - -### AOB - -Mark may mean this: https://github.com/nexusformat/HDF5-External-Filter-Plugins -But if that doesn't satisfy his needs, bring it up next time (or on the mailing list). diff --git a/content/Telco_20180130.md b/content/Telco_20180130.md deleted file mode 100644 index 3fd6c333..00000000 --- a/content/Telco_20180130.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Telco 20180130 -permalink: Telco_20180130.html -layout: wiki ---- - -Date ----- - -Tuesday, 30 January, 16:30 CET (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Update on multiple detector modules -- Review of NXDL [milestone](https://github.com/nexusformat/definitions/milestones) - - [Release Procedure](https://github.com/nexusformat/definitions/wiki/Release-Procedure) posted on the wiki -- Next meeting -- AOB - -Minutes -------- - -Present: AB, MB, PJ, RO, MK, TSR, HJB - -### multiple detector modules - -AB committed some changes to pixel sizes. Would be worth someone reviewing. More changes upcoming. - -### Review of Milestone Release - -Took most of the time of the meeting. Discussions are mostly captured in the github tickets. - -### Next Meeting -[Telco 20180220](Telco_20180220.html) - -### AOB - -Auxilary signals: RO to reply to the mailing list that this Telco has no objections to optionally introducing multiple signals in NXdata, provided they share the same axes. - diff --git a/content/Telco_20180220.md b/content/Telco_20180220.md deleted file mode 100644 index 32a300c3..00000000 --- a/content/Telco_20180220.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Telco 20180220 -permalink: Telco_20180220.html -layout: wiki ---- - -Date ----- - -Tuesday, 20 February, 16:30 CET (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Review of NXDL [milestone](https://github.com/nexusformat/definitions/milestones) - - [Release Procedure](https://github.com/nexusformat/definitions/wiki/Release-Procedure) posted on the wiki -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: MB, MK, HJB, TSR - -Relatively short meeting as some originally planned agenda items would have required RO or AB. - -### Definitions Release - -Closed a couple of issues and attempted to have most open ones assigned to a person now. - -### Telco tagged Tickets - -One had been discussed and the tag could be taken off. The other item was RO's proposed NXdata changes. - -### Next Meeting -[Telco 20180313](Telco_20180313.html) - -### AOB - -Short heads up on this meeting: https://www.helmholtz-berlin.de/events/scientific-data-management/index_en.html -As well as minor ones and upcoming grant proposals. diff --git a/content/Telco_20180313.md b/content/Telco_20180313.md deleted file mode 100644 index bebf5eff..00000000 --- a/content/Telco_20180313.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Telco 20180313 -permalink: Telco_20180313.html -layout: wiki ---- - -Date ----- - -Tuesday, 13 March, 16:30 CET (+0100) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Update on multiple detector modules -- Presentation on Ray's proposed changes to NXdata -- Review of NXDL [milestone](https://github.com/nexusformat/definitions/milestones) - - [Release Procedure](https://github.com/nexusformat/definitions/wiki/Release-Procedure) posted on the wiki -- Next meeting -- AOB - -Minutes -------- - -Present: MK, AB, HJB, TSR, RO, Dieter Weber, Alexander Clausen - -### NeXus for (ST)EM - -Dieter and Alexander presented their ideas and motivation behind proposing NeXus additions for electron microscopy. They were encouraged to share technical detail with the mailing list for comments. -It was general consensus that including EM support would make sense. RO pointed out that the "e" in NeXus is currently unused. - -### Multiple Detector Modules - -AB presented a file that uses the envisioned transformation hierarchy which can be displayed with the correct geometry in DIALS. Some additional attributes have been used (equipment), which may or may not be necessary, but could be helpful for refinement. Once AB is in a position to share the file, he will commit it to the examples repository with a clue what the expected geometry is. -AB was interested in learning what cnxvalidate would say to the file. - -### NXdata - -Presentation postponed, hopeing to have PJ on board for it next time. - -### Milestone - -There are still 17 issues lined up for the upcoming milestone. That may not be realistic in the remaining planned time frame. - -We did discuss the NXpdb. The work on the NXDL is minimal and mostly complete. To be able to work out what to put into the file we need to have a well defined conversion into PDB/CIF. This will be discussed next time. - -### Next Meeting -[Telco 20180403](Telco_20180403.html) diff --git a/content/Telco_20180403.md b/content/Telco_20180403.md deleted file mode 100644 index 87e04cab..00000000 --- a/content/Telco_20180403.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Telco 20180403 -permalink: Telco_20180403.html -layout: wiki ---- - -Date ----- - -Tuesday, 3 April, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Comments on [pixelated STEM](https://github.com/LiberTEM/LiberTEM/blob/master/fileformat/basic%20pixelated%20STEM.txt) and [ideas on an application hierarchy to include different kinds of STEM data](https://github.com/LiberTEM/LiberTEM/blob/master/fileformat/STEM%20application%20definition%20hierarchy.txt) -- Tool to convert NXpdb to PDB/CIF -- Review of NXDL [milestone](https://github.com/nexusformat/definitions/milestones) - - [Release Procedure](https://github.com/nexusformat/definitions/wiki/Release-Procedure) posted on the wiki -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, PJ, MK, AB, TSR - -### STEM - -The proposed STEM structure is a promising early draft that required more detail. -Some discussion of the proposed NeXus structure took place in the LiberTEM ticket system. -We should aim to keep this in view of the NeXus community. TSR to send out a reply. - -### NXpdb to PDB converter - -That is work in progress, existing as a branch in cbflib. -Some discussion on the difference between NXcollection and NXpdb. -The only common point is that both have no validation in NXDL. -NXpdb, however, has a full validation route, all content is standardised -(outside of NXDL) and can be consumed by analysis software. -None of that is true for NXcollection content. We have two different base classes -to make the distinction as clear as possible. - -### Release Procedure - -Was presented as linked above. Some edits were done to also tick boxes in the -definitions ticket [#597](https://github.com/nexusformat/definitions/issues/597) -for the new versioning scheme. - -Not enough time was left to discuss the tickets going into the next milestone. - - -### Next Meeting - -[Telco 20180418](Telco_20180418.html) - -### AOB - -None. diff --git a/content/Telco_20180418.md b/content/Telco_20180418.md deleted file mode 100644 index 2ad73705..00000000 --- a/content/Telco_20180418.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20180418 -permalink: Telco_20180418.html -layout: wiki ---- - -Date ----- - -Wednesday, 18 April, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Review of tickets for the upcoming NXDL [milestone](https://github.com/nexusformat/definitions/milestones) -- Preparations for NIAC this year -- Next meeting -- AOB - -Minutes -------- - -Present: HJB (from a moving vehicle), MK, TSR - -Small and short meeting. - -### Github issues - -Looked at: - -* [editorial corrections to NXlog](https://github.com/nexusformat/definitions/pull/618): We agreed that the pull request captures the intent of the NIAC better than the current state of the NXDL and we will merge the correction. Before that we also need to add the `@scaling` to `cue_timestamp_zero` so the identical timestamps as in `time` can be used. TSR will make the change, MK will merge. - -* [Add new geometry definitions](https://github.com/nexusformat/definitions/pull/601): Agreed that `` is the best approach here, rather than fudging this in some other way. Needs changes to the rendering of the manual and the validation tool. MK volunteers to do the latter. PJ shall be approached for the NXDL work. - -### Milestone - -Not discussed due to lack of key people. - -### NIAC and Code Camp Preparations - -DOE problems, as always. But SIC offered to host in connection with NOBUGS. Could be an option to have NIAC after NOBUGS and Code Camp after NIAC, to implement decisions rather than preparing new ones. Will discuss next time with hopefully more people. - -### AOB - -EM definition progress: There was an email today that the proposers are about to create an example file to illustrate the ideas. This is going well. - -### Next Meeting -[Telco 20180502](Telco_20180502.html) diff --git a/content/Telco_20180502.md b/content/Telco_20180502.md deleted file mode 100644 index c29559de..00000000 --- a/content/Telco_20180502.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Telco 20180502 -permalink: Telco_20180502.html -layout: wiki ---- - -Date ----- - -Wednesday, 2 May, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- NeXus for STEM -- Review of tickets for the upcoming NXDL [milestone](https://github.com/nexusformat/definitions/milestones) -- Preparations for NIAC this year -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, MK, TSR, AB - -### STEM - -People in Jülich have created a script that generates an example file. This has been posted to the NeXus mailing list with a doodle poll to discuss things further. All are invited to participate in the poll and the following Hangout call. - -### NXDL Milestone - -We should aim to release soon, even if a good number of tickets are still outstanding. -At this point we only consider tickets that have code committed against them or that are required for the release procedure are. TSR to move all tickets to a new milestone. PJ can decide if there are show stoppers for the release process that need to be included. - -Removed the NXdata suggestion from the milestone and dropped the Telco tag. - -### NIAC at NOBUGS - -Unfortunately no one joined from BNL and the dates are not yet set. -NOBUGS planning for themes is in progress, though. -For the moment we wait until dates for the main conference and satellite meetings are set and decide then. - -Brief discussion on whether we should hold a training session like we used to until (including) NOBUGS 2012. A lot of emphasis was on writing application definitions from scratch and using NAPI. -Neither are good topics for beginners today. - -We will submit a presentation to the main programme of NOBUGS to keep advertising us and HDF5, obviously. - -### Next Meeting -[Telco 20180515](Telco_20180515.html) diff --git a/content/Telco_20180515.md b/content/Telco_20180515.md deleted file mode 100644 index 4cf03684..00000000 --- a/content/Telco_20180515.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Telco 20180515 -permalink: Telco_20180515.html -layout: wiki ---- - -Date ----- - -Tuesday, 15 May, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Review of tickets for the upcoming NXDL [milestone](https://github.com/nexusformat/definitions/milestones) -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Preparations for NIAC this year -- Next meeting -- AOB - -Minutes -------- - -Present: HJB, TSR, MK, PJ - -### Milestone and Github Issues - -All is ready to go ahead with the release. We merged three final tickets in the meeting and PJ is doing the remaining manual steps probably today. - -Ambitious plan for the next release was August. That way we have two releases a year and can get some known issues out of the way before the NIAC meeting. -Release after that should be early next year, which allows time address new things that may come out of the NIAC. - -### NIAC @ NOBUGS - -Resent communications indicated that NOBUGS may not happen on the dates originally circulated. We do not rule out having the NIAC at either dates, but would like clarity soon. -People at BNL have been contacted to help. - -### Next Meeting -[Telco 20180529](Telco_20180529.html) - -### AOB - -The NeXus website (hosting these minutes) is now accessible via SSL/TLS. Thanks to GitHub and LetsEncrypt! diff --git a/content/Telco_20180529.md b/content/Telco_20180529.md deleted file mode 100644 index 34b8bfe7..00000000 --- a/content/Telco_20180529.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Telco 20180529 -permalink: Telco_20180529.html -layout: wiki ---- - -Date ----- - -Tuesday, 29 May, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Feedback from the Definitions Release -- Preparations for NIAC this year -- Updates on NeXus for pixelated STEM -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: PJ, TSR, AB, Dieter Weber - -### Celebrate the release - -The release was a success. No problems were encountered. Thanks go to PJ. - -### Pixelated STEM - -Interested parties had a -productive Telco meeting earlier today. STEM community is implementing -a file writing scheme that follows what was developed at the meeting. - -There will be some adjustments as the suggested use of -NXpositonier is not widely adopted in NeXus. NXtransformations work better for -encoding the geometry. -There are some open questions regarding scanning, which could be addressed with -the new NXlog scheme or the standard scan rules. - - -Other areas of interest are default plots (NXdata), for which a solution exists, and -OS level thumbnails which hopefully can be distributed soon. See: -https://github.com/nexusformat/definitions/issues/381 - -Dieter will send out a new draft pixelated STEM file to the NeXus mailing list to gather feedback -and develop a next iteration. - - -### NIAC - -Still no update from the organisers on exact dates NOBUGS and related events. -Making other arrangements is becoming more likely. - - -### Next Meeting -[Telco 20180619](Telco_20180619.html) diff --git a/content/Telco_20180619.md b/content/Telco_20180619.md deleted file mode 100644 index 581a5059..00000000 --- a/content/Telco_20180619.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Telco 20180619 -permalink: Telco_20180619.html -layout: wiki ---- - -Date ----- - -Tuesday, 19 June, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Tool to convert NXpdb to PDB/CIF -- Preparations for NIAC this year -- Updates on NeXus for pixelated STEM -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: AB, HJB, TSR - -### NXpdb tools - -PDB to NeXus works, going back still needs some effort. -Done in CBFlib. - -### NIAC -HJB offered to host the meetings in his living room. - -There is a bit of a backlog of tasks to be worked on in NeXu -(documentation and defintions). Code camps in the traditional -sequence before a NIAC meeting end up preparing new things for the NIAC to decide. -The small congregation today thought that having the NIAC meeting after NOBUGS and the code camp -following that would put some more focus on implementing existing NIAC decisions. - -TSR is in contact with SIC and will send out a proposal to the nexus committee mailing list, before -fully publishing the event. - -### pixelated STEM - -TSR still needs to update the proposal with NXtransformations instead of the NXpositioners. -If someone wants to volunteer to do that earlier, they are welcome to. - -### Github issue - -We're still benefitting from the recent release and there are no marked issues to discuss. - -### Next Meeting -There are not many items on the telco agendas at the moment, other than preparing the NIAC. -Summer is there with holiday so we skip forward a few weeks before we have the next meeting: - -[Telco 20180814](Telco_20180814.html) diff --git a/content/Telco_20180814.md b/content/Telco_20180814.md deleted file mode 100644 index e897d8f0..00000000 --- a/content/Telco_20180814.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Telco 20180814 -permalink: Telco_20180814.html -layout: wiki ---- - -Date ----- - -Tuesday, 14 August, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- Preparations for NIAC this year -- Next meeting -- AOB - -Minutes -------- - -Present: TSR, MK, AB - -## NIAC 2018 - -The small congregation in this telco opted for having a NIAC on October 18 & 19 (Thursday and Friday before NOBUGS). TSR will ask SIC if that can be arranged. No code camp. - -## AOB - -AB met someone at the latest Gordon Conference, doing Eiger work. -Two use cases where unclear: -Serial crystallography via a raster scan of a plate with multiple crystals and -scans with a limited amount of fixed angles, say 0, 45, 90 degree. -MK said that both should be well supported via NXtransformation scans, especially when -the raster scan does not need to define multiple distinguished samples. -AB will check this out. - - -### Next Meeting -[Telco 20180905](Telco_20180905.html) diff --git a/content/Telco_20180905.md b/content/Telco_20180905.md deleted file mode 100644 index 4d3d809e..00000000 --- a/content/Telco_20180905.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Telco 20180905 -permalink: Telco_20180905.html -layout: wiki ---- - -Date ----- - -Wednesday, 5 September, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- DOIs for definition versions (Zenodo)? -- NIAC Preparations -- AOB -- Next meeting - -Minutes -------- - -Present: RO, PJ, TSR, MB - -### DOIs via Zenodo - -The suggestion to create DOIs for definition releases was converted to a ticket. -Seems like a good idea. - -### NIAC & NOBUGS Preparations - -TSR to submit a state-of-the-union talk. Topics would be: -* (no longer so) new website/wiki -* OFF geometry -* Mantid Geometry support - weights? -* Axes (Diamond) -* STEM NeXus -* Grants -* PDB, if ready - -For the NIAC MB has two more topics than what is already registered as NIAC tickets: -* NXtyco -* CSG volumes - - -New officers need to be elected. - -## AOB - -The 2018.8 milestone release had no real improvements commited against it. -We move all open and closed ticket to the next one (2019.1). - -The NIAC can decide on priorties for the open tickets and -establish a roadmap for NeXus for the slightly longer term. - -### Next Meeting -[Telco 20180926](Telco_20180926.html) diff --git a/content/Telco_20180926.md b/content/Telco_20180926.md deleted file mode 100644 index f060ab53..00000000 --- a/content/Telco_20180926.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Telco 20180926 -permalink: Telco_20180926.html -layout: wiki ---- - -Date ----- - -Wednesday, 26 September, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- Welcome and agree Agenda -- NIAC Agenda -- Github issue of the day - suggestions welcome (use telco github label) - - [definitions PRs & issues marked as "telco"](https://github.com/nexusformat/definitions/labels/telco) -- Next meeting -- AOB - -Minutes -------- - -Present: MB, TSR, HJB, PJ, AB - -### NIAC Agenda -https://github.com/nexusformat/definitions/issues?q=is%3Aissue+is%3Aopen+label%3A%22discussion+needed%22 - -https://github.com/nexusformat/NIAC/issues - -Steve - -Flattening out - -Invite: -Dectris, ANSTO, DESY - -Catering - -### Next Meeting -[Telco 20181015](Telco_20181015.html) diff --git a/content/Telco_20181015.md b/content/Telco_20181015.md deleted file mode 100644 index bb13b352..00000000 --- a/content/Telco_20181015.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: Telco 20181015 -permalink: Telco_20181015.html -layout: wiki ---- - -Date ----- - -Monday, 15 October, 16:30 CEST (+0200) - - - -Hangout Link: - - - -Agenda ------- - -- LCLS update -- NIAC Agenda -- Next meeting - -Minutes -------- - -Present: RO, MK, HJB, AB, TSR - -## LCLS II - -AB mentioned that there is interest in using NeXus conventions at LCLS II, but -not HDF5. He will invite them to the NIAC meetings. - -## Agenda for NIAC2018 - -Outline agenda has been discussed and put on [the upcoming NIAC page](NIAC2018.html). - -## Next meeting - -Is [the upcoming NIAC meeting](NIAC2018.html). - -Next teclo TBA by the newly elected chair. diff --git a/content/Telco_20190207.md b/content/Telco_20190207.md deleted file mode 100644 index a370f77c..00000000 --- a/content/Telco_20190207.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Telco 20190207 -permalink: Telco_20190207.html -layout: wiki ---- - -Date ----- - -Thursday, 7 February, 16:30 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - - Updates for NXmx and base classes for Eiger2. - - Variant scheme. - - Meeting times to allow participation in East Asia. - - -Minutes -------- - -Present: BW, MK, HJB, TM, SC, AM - -## Updates for NXmx and base classes - -HJB and AM want the files written by the Eiger2 to include extra information that clashes with what is currently described by NXDL. Specifically, the "mask" field in NXdetector and NXmx is declared as type "boolean", but a more complex bit mask is required. Further, what is preferred and what is deprecated needs to be clearly communicated. NXDL currently allows an application definition to list an item twice, but with "minoccur=1" attribute in each to indicate that only one of the options should be present. BW proposes that an extra attribute in the NXDL tag, e.g. "priority", could take an integer value to indicate which version is preferred and perhaps a negative integer could indicate deprecation. - -HJB and AM would like to promote discussion of possible solutions for now, but strongly desire the issue be settled before the summer conference season so that the decision can be clearly communicated. - -P.S. The currentl published versions of [NXmx](https://manual.nexusformat.org/classes/applications/NXmx.html#nxmx "wikilink") and [NXdetector](https://manual.nexusformat.org/classes/base_classes/NXdetector.html#nxdetector "wikilink") both provide a "pixel_mask" field that takes a 32-bit pixel mask (and have for over 5 years), so this issue seems to be just about clearly communicating the "old way" vs "new way". - -## Variant scheme - -HJB wants an agreed way to update the value of a field (keeping track of previous values). MK pointed out the [variant attribute](https://github.com/nexusformat/definitions/issues/645 "wikilink") that was decided in the 2014 NIAC, but not yet properly documented. - -## Telco meeting times - -BW proposes that further meetings be held 1.5 hours earlier than the current meeting (3pm CET, instead of 4:30pm CET) so that TM and others in Japan can attend the meeting at 11pm local time. Those who are adversely affected (such as Californians who will have to observe the telco at 6am) are encouraged to provide comments. - -BW agreed to organise the next telco using another poll, aiming for the beginning of March. -[Poll for March Telco](https://doodle.com/poll/8tgh2kzcfitnku32 "wikilink") diff --git a/content/Telco_20190312.md b/content/Telco_20190312.md deleted file mode 100644 index 4c1bded8..00000000 --- a/content/Telco_20190312.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Telco 20190312 -permalink: Telco_20190312.html -layout: wiki ---- - -Date ----- - -Tuesday, 12 March, 15:00 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - - NeXus for XFELs - - Dectris NeXus - - Implementing NeXus at Spring8 - - -Minutes -------- - -Present: BW, MK, HJB, TM, AB - -## NeXus for FELs - -AB reports that work has been progressing on implementing NeXus for single shot crystallography experiments at the European XFEL (and SwissFEL). While still a work-in-progress, the code has already had a first use in an experiment at the Europeean XFEL. -HJB commented on an issue that a requirement for an extra geometry file wasn't properly documented. AB noted that it is because of a shortcut (reusing existing code) that will be fixed soon. - -## Dectris NeXus - -HJB and AB continue to work on improving the NeXus output of Dectris detectors. - -## Implementing NeXus at Spring8 - -TM reports that work is progressing at Spring8 for the implementation of NeXus at the beamlines. - - -BW to organise the next telco using another poll, aiming for the end of April. -[Poll for April Telco](https://doodle.com/poll/6ad77ubsfytfnstc "wikilink") diff --git a/content/Telco_20190424.md b/content/Telco_20190424.md deleted file mode 100644 index 9be5774e..00000000 --- a/content/Telco_20190424.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Telco 20190424 -permalink: Telco_20190424.html -layout: wiki ---- - -Date ----- - -Wednesday, 24 April, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - - Documentation glitch: - - Sparse containers: - - Per-image pixel mask: - - Underload for NXdetector: - - New teleconferencing system - -Minutes -------- -Present: BW, MK, AB, PJ, HB, TM - -Documentation glitch ---------------------- -All agree that proposal by AS is sensible and should be accepted. To be implemented by PJ. - -Sparse containers ------------------- -This is a bit special in that it is describing how a dataset is represented, while NeXus tends to concentrate on the physical meaning of datasets. It is, however, similar to NXlog and NXevent_data in this respect and so should definitely be considered. While we think it is probably best dealt with in HDF5, rather than NeXus, the HDF group need money for development and a NeXus solution might be better than the customised h5py code pointed to in the github issue. -This idea should be further developed into a proposal for the NIAC. - -Per-image pixel mask --------------------- -All agree on the value of allowing multiple image masks for various use cases. BW would prefer using systematic naming in order to allow many masks, suggesting 'pixel_mask_N' (where N is an integer) for all masks beyond the first, which retains the 'pixel_mask' name. AB promised to work on the issue. - -Underload for NXdetector -------------------------- -All agree it is a reasonable addition. AB to do the implementation. - -New teleconferencing system ------------------------------ -PJ is worried that Google Hangouts might disappear and suggests we consider alternative teleconferencing systems. Suggestions include: - - BlueJeans: - - Zoom: - - Skype: -The issue should be discussed at the next telco. - -Other Business ---------------- -AB points out that the ALS is making a concerted effort (through Alexandr Hexemer) to implement NeXus at beamlines. There is interest in using NeXus/XML in order to avoid putting binary files into a database. PJ suggests considering NeXus/JSON, which is already being used by Dectris. - -Next Telco ------------ - - Will aim for last week of May or first week of June. - - HB prefers not Thursday ot Friday. - - MK will not attend. diff --git a/content/Telco_20190621.md b/content/Telco_20190621.md deleted file mode 100644 index 1be07f55..00000000 --- a/content/Telco_20190621.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20190621 -permalink: Telco_20190621.html -layout: wiki ---- - -Date ----- - -Friday, 21 June, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - - * Recording NXbeam spectra at XFELs - * JSON representation - * Possible EU resources - * 2019 NeXus Code Camp - -Minutes ------- - -Present: BW, MK, AB, PJ, HB - - -Recording NXbeam spectra at XFELs ------- - * AB raised an issue with recording spectra in NXbeam at an XFEL, where the spectrum delivered can be different for each shot. It can also change between being monochromatic and polychromatic. - * PJ pointed out that the NXcanSAS application definition illustrates a possbilbe solution to the issue. - - -JSON representation ------- - * HB will be attending a number of meetings over the summer to discuss what data the MX community want Dectris detectors to provide in JSON format. This will culminate in the HDR-MX meeting at Diamond (6-7th November) where he will be seeking a final decision on the issue. This form of data will become common enough to be a kind standard and HB wants to push it towards being NeXus-like. - * BW states that the main mission of NeXus is to standardise the organisation of data and that the container format is a secondary concern. HDF5 is currently the preferred container format and where we are putting our development resources. However, we still encourage the use of NeXus principles and definitions for the organisation of data in other container formats such as JSON. - - -Possible EU resources ------- - * MK reported that some EU projects on data catalogs and related topics could be interested in providing resources for increasing NeXus adoption by employing a person to help scientists at new facilities to design and write application definitions. - * HB notes that it would be important for such a person to be knowledgable in programming in orderto be effective in such a role. - * MK and BW will follow up with the responsible people and try to make something happen. - -2019 NeXus Code Camp ------- - * HB is keen for organisation to begin on the next NeXus Code Camp. He would like to have face-to-face discussions with a group of NeXus committee members about the outcomes of the HDR-MX meeting in November. Therefore, immediately the HDR-MX meeting at Diamond in November could be convenient. - * PJ points out that Americans require a long time to get approval for travel outside the USA, so the sooner the code camp is organised, the better. - * MK points out that this years NOBUGS conference is in Hamburg, which we traditionally follow. - -Next Telco ------- - * HB would like to aim for July 15 or 16. Poll: diff --git a/content/Telco_20190715.md b/content/Telco_20190715.md deleted file mode 100644 index d295baa3..00000000 --- a/content/Telco_20190715.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Telco 20190715 -permalink: Telco_20190715.html -layout: wiki ---- - -Date ----- - -Monday, 15 July, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - - * 2019 NeXus Code Camp - * HDF5 European Workshop for Science and Industry (ESRF 17-18 September) - -Minutes ------- - -Present: BW, MK, HB, AB - - -HDF5 Workshop ------- - * BW to attend and represent NeXus. - * HB has been seeing many bugs when trying to run the .10 version in high-performance situations. Detectors like the Eiger need a parallel file system (e.g. GPFS) to keep up with the data rate, but the HDF5 library has not been very stable. - * We should ask the HDF group to please stabilise the HDF5_1.10 library on parallel file systems. - * Perhaps we can help organise facilities to combine efforts? - -NeXus Code Camp -------- - * MB to talk to David Hall about code camp dates - * Brexit issues (visas for EU citizens) - * Check dates - - -Other Business --------- - * MK asks HB about how NXmx has been viewed by the community. HB replies that NXmx is a success with ongoing collaborations and millions of images recorded using NXmx. - - * MB to leave Diamond in December and step down as NeXus Executive Secretary. - * Asks for feedback on recent pull request. - * BW asked MB to prod Mark Herron regarding discussions about EU projects. - -Poll for August Telco: diff --git a/content/Telco_20190812.md b/content/Telco_20190812.md deleted file mode 100644 index d5bcdd78..00000000 --- a/content/Telco_20190812.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Telco 20190812 -permalink: Telco_20190812.html -layout: wiki ---- - -Date ----- - -Monday, 12 August, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - - * 2019 NeXus Code Camp update? - * definitions: [next release](https://github.com/nexusformat/definitions/milestone/8) ([releases](https://github.com/nexusformat/definitions/releases)) : new: NXcif & NXptycho - * Wikipedia page (https://en.wikipedia.org/wiki/Nexus_(data_format)) - -Minutes ------- - -Present: BW, MK, HB - - -Wikipedia page ------- - -* BW has written a short article in wikipedia about NeXus and invites comments: - * "Domain specific ontology" is a major feature - * Application definitions define strictness for each implementation of a NeXus format - * Should add an example file structure -* BW to work on including these. - -2019 NeXus Code Camp ------- - -* No further news regarding early November at Diamond. -* BW to contact MB. - -Definitions ------- - -* PJ added this item to the agenda, but was not present at the meeting so we are not sure what he wanted to discuss. - -Other Business ------- - -* HB will be at ECM32 in Vienna next week to discuss NXmx Eiger format. -* Next meeting to be in the beginning of September. -* We have been having fewer telco participants than have been indicated in the polls - technical problems or just overly busy people? diff --git a/content/Telco_20190911.md b/content/Telco_20190911.md deleted file mode 100644 index d7e4cde3..00000000 --- a/content/Telco_20190911.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Telco 20190911 -permalink: Telco_20190911.html -layout: wiki ---- - -Date ----- - -Wednesday, 11 September, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - * Code camp options? (Diamond is no-go) - * (From August) definitions: [next release](https://github.com/nexusformat/definitions/milestone/8) ([releases](https://github.com/nexusformat/definitions/releases)) : new: [base/NXpdb](https://github.com/nexusformat/definitions/blob/master/base_classes/NXpdb.nxdl.xml) & [contributed_definitions/NXcxi_ptycho](https://github.com/nexusformat/definitions/blob/master/contributed_definitions/NXcxi_ptycho.nxdl.xml) - * Issues to raise at HDF5 workshop next week? - * Prune stale branches from [definitions](https://github.com/nexusformat/definitions/branches/stale)? - -Minutes ------- - -Present: BW, TM, PJ, AB, SC - - -Release -------- -Release issues to be worked on before we make the next release: -https://github.com/nexusformat/definitions/milestone/8 - * Aim for February/March release. - * Why are [PDB](https://github.com/nexusformat/definitions/pull/614/files) and [NXptycho](https://github.com/nexusformat/definitions/pull/628/files) not visible in the current master? - - they **are** in current master but neither are in applications - - [base/NXpdb](https://github.com/nexusformat/definitions/blob/master/base_classes/NXpdb.nxdl.xml) - - [contributed_definitions/NXcxi_ptycho](https://github.com/nexusformat/definitions/blob/master/contributed_definitions/NXcxi_ptycho.nxdl.xml) -[Release Procedure](https://github.com/nexusformat/definitions/wiki/Release-Procedure) - -AB points out that his recent changes to [NXmx](https://github.com/nexusformat/definitions/commit/6e837341abbe3f61a68b65f6d441f9f77c4228de) adds further detail to beam_center_x and beam_center_y than is present in [NXdetector](https://manual.nexusformat.org/classes/base_classes/NXdetector.html). BW responded that while it is not ideal to have diverging documentation, an application definition can make some deviations when needed. - -Prune Stale Branches ------- -Branches that are not ahead of master at all give no value and have now been deleted. - -Code Camp ------- -Maybe PJ can organise something at Argonne in mid-November. Otherwise we should organise a virtual event. We certainly should do plenty of cleaning up in github for the next release. - -HDF5 Workshop ---------- -No further specific issues. - -Other Business --------- - * SC to get some more graphic design input for a new logo, especially with more "corporate" colours and including a mu. - * Next meeting aiming for mid-October. - - - - diff --git a/content/Telco_20191107.md b/content/Telco_20191107.md deleted file mode 100644 index 6ef1abf3..00000000 --- a/content/Telco_20191107.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Telco 20191107 -permalink: Telco_20191107.html -layout: wiki ---- - -Date ----- - -Thursday, 7 November, 15:00 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - * Code camp details - * New executive secretary - * Membership renewal voting () - * Discuss new logo drafts - -Minutes ------- - -Present: BW, MK, PJ, RO, AB, TM, FA - -Code Camp ------- - * PJ offered to host code camp at ANL either on December 11-13th, or January 2020. - * It was agreed that Dec was too soon and difficult to arrange travel, so Jan 2020 would be better. - * Some discussion of what work should be targeted to justify a code camp - * PJ points out lots of issues on github to clean, especially for the [definitions release that is now overdue](https://github.com/nexusformat/definitions/milestone/8) - * PJ asked where to publish details - * BW has created a page on the wiki that can be viewed at - * PJ will create poll to decide precise dates - -Executive Secretary and Membership Renewal Voting ------------------- - - * MB has left NeXus and resigned as executive secretary. This is an issue especially because we need to do quite a few membership votes which are normally handled by the executive secretary. - * BW will handle voting for membership renewals, except for the vote on his own membership, which will be handled by RO. - * Discussion of duties of executive secretary: - * Run email voting - * Take minutes of meetings, especially the full NIAC meetings - * (BW currently takes minutes of telcos and can continue this) - -Logo Drafts ----------- - - * Some preference for the dark blue colour in version I and J - * Need to include consideration of background colour - * Need to consider a version with a square aspect ratio - - -Other Business --------------- - * Some web pages still only http - need to move to https - * For example, the [Manual](https://manual.nexusformat.org/user_manual.html) - * Another telco in December - [poll](https://doodle.com/poll/zw28gkvx72348bs2) diff --git a/content/Telco_20191212.md b/content/Telco_20191212.md deleted file mode 100644 index fb76fffd..00000000 --- a/content/Telco_20191212.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Telco 20191212 -permalink: Telco_20191212.html -layout: wiki ---- - -Date ----- - -Thursday, 12 December, 15:00 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - * Code camp details () - * New executive secretary? - * Membership renewal voting () - -Minutes ------ -Present: BW, AB, DW, HB, MK, PJ, FA, PC, HG - -Code Camp ------- - * PJ suggests making public presentation on NeXus during CC. He will schedule an event. - * MK wants us using github issues to make a list of items for the CC. - -Introductions ------- - * MK suggests doing a round of introductions since some new people are joining. - -New Executive Secretary ------- - * FA volunteers to take up the position. - * BW to organise an email vote. - -Membership Renewals ------- - * BW says renewals are going well, we have 6 votes complete and most of the remainder in progress. - -NXmx ----- - * HB and AB has made progress is refining the proposed application definition. - * Not sure if it will be ready for formal acceptance at the CC, but AB will present the current state at that time. - * HB intends to send a revised NXmx document for the new year. - - -Other Business ----- - * PJ and colleagues are looking to make app def for photon correlation spectroscopy - * BW would like to have a vote on a new logo at the next full NIAC meeting. - * BW encourages people to develop their preferred logo version in limited groups - * PJ suggests sharing logo version on dropbox (to keep them out of the google index) - * DW will suggest another participant - * Next telco during CC, but maybe have a longer remote session than the usual 1 hour telco. PJ suggests that starting 1 hour later than the usual telco time (ie 16:00 CET) would give best chance for intercontinental collaboration. diff --git a/content/Telco_20200224.md b/content/Telco_20200224.md deleted file mode 100644 index 882599e3..00000000 --- a/content/Telco_20200224.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Telco 20200224 -permalink: Telco_20200224.html -layout: wiki ---- - -Date ----- - -Monday, 24 February, 15:00 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - * 2020 NIAC and Code Camp dates surrounding [NOBUGS2020](https://indico.desy.de/indico/event/24321/overview) (Oct. 14-16). [Proposed dates](https://doodle.com/poll/7c39uppbs7qwsveh) are: - * NIAC meeting on Oct. 12-13th (i.e. Monday-Tuesday just before NOBUGS) - * Code Camp on either Oct. 10-11th, or 17-18th (i.e. weekend before, or after) - - -Minutes ------ -Present: BW, MK, FA - -NIAC ------- - * All agreed that the NIAC tradition is to meet together with NOBUGS and that there is no alternatives being proposed. - * All agreed that Oct. 12-13th is the obvious best choice for dates adjacent to NOBUGS2020. - -Code Camp ------- - * MK suggested that Oct. 19-20th could be better dates to avoid working over the weekend. BW would rather not lengthen the travel further than necessary. - * All agreed that after the NIAC made more sense than before since it would allow enacting NIAC decisions. - * BW suggested that we could advertise the Code Camp as an opportunity for software developers (i.e. NOBUGS attendees) to work through practical NeXus-related problems together with the experts. - * After some discussion, all agreed that Oct 17-18th was the better choice. - -Other Business ----- - * BW disappointed in attendence, considering lots of people answered the poll to decide the telco date. Perhaps this highlights the importance of the Outlook calendar event that was forgotten this time. - * Next telco to aim for mid March. - - diff --git a/content/Telco_20200323.md b/content/Telco_20200323.md deleted file mode 100644 index c962bb2c..00000000 --- a/content/Telco_20200323.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Telco 20200323 -permalink: Telco_20200323.html -layout: wiki ---- - -Date ----- - -Monday, 23 March, 15:00 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - * 2020 NIAC and Code Camp dates included in [NOBUGS2020](https://indico.desy.de/indico/event/24321/overview) website - * Concordance of data integrity metadata with CIF community - * COVID-19 (everyone else is talking about it!) - -Minutes ------- -Present: HB, TM, MK, PJ, AB, BW, TR, FA - -2020 NIAC and Code Camp --------------------- - * registration live on NOBUGS - * What detail should be published - * BW suggests opening the CC to informal Q&A and training - * MK asks that email be given to indicate numbers and intended tasks - * PJ requests separation of the open and in-house sections of the CC - * Maybe need an extra room, and should plan for combination of in-person and remote attendance. - - -Concordance with CIF ---------------------- - * BW asks if NXpdb is sufficient - * HB says NXpdb needs more detail and it is in progress with the NXmx article - * HB would like to discuss these issues and get it settled in the summer meetings, but... COVID-19... - * HB and AB say it also affects the XFEL data. - -Any Other Business ------------- - * Next meeting after Easter. - - diff --git a/content/Telco_20200424.md b/content/Telco_20200424.md deleted file mode 100644 index 932ab9c7..00000000 --- a/content/Telco_20200424.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Telco 20200424 -permalink: Telco_20200424.html -layout: wiki ---- - -Date ----- - -Friday, 24 April, 15:00 CET (+0100) - - - -Hangout Link: - - -Agenda ------- - * [Issue #748: Mixed use of NXreflections and NXmx telco](https://github.com/nexusformat/definitions/issues/748) - * [Issue #765: NXcanSAS "radiation" duplicates NXsource "type"](https://github.com/nexusformat/definitions/issues/765) - * [Issue #762: [NXtomo] Need user flags](https://github.com/nexusformat/definitions/issues/762) - * [Issue #757: How to add extra attributes and avoid conflicts with NeXus in the future?](https://github.com/nexusformat/definitions/issues/757) - -Minutes -------- -Present: BW, AB, FA, HG, HB, MK, PJ, PC - -NIAC ------ - * NOBUGS registration is split into separate days for the code camp - * linking not yet - * spacing for SD is fine - * need to make sure teleconferencing is adequate - - -Pull Request #767 ------------------ - * AB notes [PR #767](https://github.com/nexusformat/definitions/pull/767) is ready for final review. - * PJ notes that travis-ci reports a failure (reST syntax encoded within XML). - -Issue #748 ----------- - * NXreflections describes diffraction spots in a tabular format, having evolved from historical practice of attributing and recording diffraction spots from film-based photographs. - * it is a base class and not an appdef (currently) - * Both versions (base class and AppDef) have use cases. - * An Appdef should be written that has NXreflections as a major component so that it can be used together with NXmx -AB brings up related Pull Request #767 - -Issue #765 ----------- - * best to mark radiation as deprecated - * PJ to discuss with canSAS people - -Issue #762 ----------- - * user def keys should be negative - * extra (or subgroup of fields) fields (NXnotes) needed to describe user def keys - * Need stadardised name for description - * any new positive key should be NIAC approved - -AB asks MK: base classes can't be a subentry? - * subentries must be AppDef - * entries can also be AppDef - -Issue #757 ----------- - * HB suggests doing what the PDB community does and have a list of registered prefixes - * starting with an underscore didn't work out for PDB - * NIAC should grant power for approving prefix registration - * BW suggests prefixes be in uppercase to make them obvious to human readers - * PJ suggests prefixes be followed by an underscore - * PJ will post new issue with proposal for the NIAC - - -Any Other Business ---------------------- - - * PC asks NXuser for a group of users - * MK suggests using multiple instances of NXuser - * PC ask: is there a way to give numerical precision? - * should be applicable to any general field - * Outside of current scope - someone needs to propose a method - perhaps as an attribute - * HG asks: How has NeXus been approaching ontologies and mapping metadata betwen formats - * NeXus predates much of the current academic interest in ontologies - * PJ suggests talking to a group at the ALS - * PJ asks if there is a general Ontology that NeXus can fit within - * HG says that ontologies tend to sit next to each other as peers, rather than under an umbrella ontology - * PJ points to the index of the NeXus definitions as a starting point to mapping the NeXus ontology - * HG will create new GitHub issue for a published NeXus ontology - * PJ proposed using information from the manual's index as a starting point - * PJ noted that various items of NeXus structure (group, field, attribute) are automatically indexed - * MK noted that position in hierarchy is important since some terms (such as `name`) have multiple meanings - * ontology should include - * [NeXus class path](https://manual.nexusformat.org/design.html#index-15) to specify hierachy position - * documentation content from the NXDL for each item listed - - Next telco: Mid May, using a poll in the same manner as previously. - - - - - - - - - diff --git a/content/Telco_20200527.md b/content/Telco_20200527.md deleted file mode 100644 index b192169b..00000000 --- a/content/Telco_20200527.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Telco 20200527 -permalink: Telco_20200527.html -layout: wiki ---- - -Date ----- - -Wednesday, 27 May, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - - * NIAC 2020 - -Minutes --------- -AB, FA, HG, MK, PJ, PC, BW - -NIAC 2020 ----------- - - * NOBUGS is going to be postponed until next year (probably May) - * Will need to do the meeting remotely if we stick to the October dates. - * Will probably need to run it more like a teleconference with a series of teleconferences to organise the topics and then break up into interest groups. - * Need to have some discussion on the mailing list to make sure everyone is well informed. - * Could still follow the NOBUGS meeting, maybe even doing both an October virtual meeting and a 2021 meeting with NOBUGS. - * MK to check the previous NIAC minutes to clarify email voting procedures. - -Any Other Business ------------------- - * AK has a pull request to be examined: - * Jungfrau dataset format is now fully NeXus compliant. passes cnxvalidate with no errors. - * Soon the AGIP detector for EuXFEL will also be fully compliant. - * PJ has created a [milestone NXDL2020.10](https://github.com/nexusformat/definitions/milestone/9) for all issues to be considered for next release of definitions. - * PJ poked BW about making further progress on the logo issue. Will set up a repository on dropbox for people to contribute - - * Next meeting to aim for last week of June. BW will send out a doodle poll in advance to decide the exact date. - - - - diff --git a/content/Telco_20200701.md b/content/Telco_20200701.md deleted file mode 100644 index b9516642..00000000 --- a/content/Telco_20200701.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Telco 20200701 -permalink: Telco_20200701.html -layout: wiki ---- - -Date ----- - -Wednesday, 1 July, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - * NIAC2020 - * BW has updated the [NIAC2020 page](https://www.nexusformat.org/NIAC2020.html) along the lines of discussions at the previous telco. - -Minutes --------- -BW, MK, PJ, AB, TM, PC, FA, HB - -## NIAC and Code Camp - -The upcoming October NIAC and code camp were discussed. With NOBUGS being postponed until next year, a virtual event will take place. - -It was decided to split the NIAC and code camp onto separate weeks, so the main NIAC will take place Monday/Tuesday (12/13) October and the code camp Monday/Tuesday (19/20) the following week. There will be a final (extra) NIAC session after the code camp finishes on 20th to discuss any matters arising from the code camp. - -To avoid long sessions, and to try and manage participation across time zones, it is planned to try and organise sessions around specific topics and then schedule (as well as time zones allow) for interested parties to attend. Any votes would be help electronically post session, NIAC members not present at the discussion will be able to see a summary of the discussions prior to voting. A time span for voting will need to be agreed. - -The approach is to have a github issue for each matter, and then to create a google docs spreadsheet to help organise these issues into general topics and then schedule sessions. This approach worked well in the January code camp. Some sort of poll mechanism for voting is needed. - -Action: PC /AB to investigate Github polling - -## Other items - -HB mentioned there is an NXmx e-workshop taking place on 22 August, from 9 am to 3 pm Prague time. Contact him for more details. - -PJ mentioned that several USA labs are working on an application definition for x-ray photon correlation spectroscopy. They plan to use NeXus for injecting data into the Blue Sky data broker. - -RB has been working on a program to generate template NeXus file from NXDL. He is finding various inconsistencies in the definitions while doing this and has been posting issues to github about them, please check these and help him to understand the intended meaning. - -Next telco, plan for mid august to avoid clash with ACA meeting in early august. diff --git a/content/Telco_20200904.md b/content/Telco_20200904.md deleted file mode 100644 index 160043f5..00000000 --- a/content/Telco_20200904.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Telco 20200904 -permalink: Telco_20200904.html -layout: wiki ---- - -Date ----- - -Friday, 4 September, 15:00 CEST (+0200) - - - -Hangout Link: - - -Agenda ------- - * NIAC2020 - * [Github questions](https://github.com/nexusformat/definitions/issues?q=is%3Aissue+is%3Aopen+label%3Aquestion) - * NXmx "Gold Standard" changes: - * [definition changes](https://github.com/nexusformat/definitions/pull/793) - * [cnxvalidate pull request](https://github.com/nexusformat/cnxvalidate/pull/28) - * Mailing lists: - * note that signing up for the NIAC list, doesn't automatically add you to the Nexus discussion list. - * Should we remove people from the NIAC list if their membership of the NIAC ends? - -Minutes ------- - -Present: BW, HB, PJ, RB, HG, VAS, PC, WF, AP, MK - -NXmx ------ - * Pull request is making sure the tags that the community needs are included. - * HB asks that people take a look and he hopes that the PR can be accepted by September 9th. - * HB says that Dectris would appreciate this being sorted out very soon so that they can finalise their software. - * BW promises to look over it during the weekend. - * Replacing _error with _errors generally needs its own github issue to make sure the community can see why the change happened (to fit previous NIAC decision). - * We should break them up into separate PR to tackle it piece by piece. - * Dectris is specifically asking for a NeXus release to quickly follow the NXmx pull request. - * We have a milestone for this aiming for the NIAC in October. - * VAS offered to give a pull request to have CMake find the HDF5 library from an environment variable. - -Github Questions ----------- - * VAS says NXcxi_ptycho is restricted to to raster scanning. - * BW recommends NXstxm as it is quite flexible. - * The inconsistent naming issue should be brought to the NIAC. - * we should avoid ambiguity! - * PC to look into who at Diamond might be using NXarpes. - * Russ to make a PR to suggest appropriate changes. - * Should make sure that the NXmx PR #793 contains a fix for issue #782 - - - -Mailing List -------- - * BW points out some confusion about the mailing lists and suggest that we add a note that subscribing to one list doesn't automatically subscribe you to the other. - * VAS suggests a purge is required to stop it from becoming a public list - * HB and WF suggest not pushing people away - perhaps just ask if they want to be removed - -NIAC ------ - * PJ says polling on github might not work. - * VAS suggests doing a simple thumbs up/down on the github issue to indicate their vote. - * BW suggests that emojis might not be best because it is easy to mess up - but VAS corrects that a second click erases the mistake - * BW and VAS propose emoji voting: - * Thumbs Up for Yes, - * Thumbs Down for No, - * any other emoji for Abstain. - - -AOB ----- - * RB asks about the code camp - BW points to the page - * RB brings up syntax issues - BW suggests making single PR to address each type of issue for all appl defs at once. - * RB says links are tricky to name automatically and there are lots of inconsistencies - * PJ says part of the problem is that some names need to be flexible and we decided to try and indicate flexible names as upper case, while required names are lower case. - * VAS suggests that cnxvalidate doesn't check what kind of object a "link" is, just that the object is present. - * HB says the problem is going to need to be figured out for when virtual datasets become common. - * MK says the target_path of a link is somewhat historical and maybe we should review that usage. - * VAS says ESRF is using these links - * BW suggests we make this an issue to discuss in the code camp. - * HB points out that HDF5 has changed a lot in the past few years. - * Next telco will aim for the last week of Sept or first week of October. [Poll](https://doodle.com/poll/5bkzixctreag97er) - - - - - - diff --git a/content/Telco_20200930.md b/content/Telco_20200930.md deleted file mode 100644 index e2ccd713..00000000 --- a/content/Telco_20200930.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Telco 20200930 -permalink: Telco_20200930.html -layout: wiki ---- - -Date ----- - -Wednesday, 30 September, 15:00 CEST (+0200) - - - -Original Hangout Link: - - -We exceeded attendence limit and so switched to Zoom. - -Agenda ------- - * NIAC2020 - * Issues on Github - -Present --------- -RO, PC, LS, MK, BW, SB, HB, HG, FA, PJ, AS, RB, TM, MO, WG - -Minutes --------- - -There were many people at the meeting, and we exceeded the 10 person limit for Google Hangouts. FA created a ZOOM link for the meeting. It was decided that future meetings would use ZOOM and FA would generate and circulate a meeting link for upcoming teleconferences. There is no poll for the next TC as we will next be meeting at the NIAC. - -RB is current reviewing NeXus definitions as part of his software to generate a sample NeXus file from NXDL. As part of [#800](https://github.com/nexusformat/definitions/issues/800) he noticed that similar, but not always exactly the same, symbols were being used in definitions. After a discussion it was agreed that standardisation and consistent naming across definitions is a good idea and RB will collect together a proposal for discussion at the upcoming NIAC. HB asked that any changes could be phased in with the old names first deprecated before removal. - -It was pointed out by MK that the code camp dates on one of the web pages is incorrect (it refers to the pre-covid dates). This was changed by BW during the meeting. -Several new facility representatives introduced themselves: SB (European XFEL), LS (Extreme Light Infrastructure), MO (Soleil), WG (ORNL). Welcome to the NIAC. - -PJ mentioned that GitHub will be changing the default branch from [master to main](https://www.zdnet.com/article/github-to-replace-master-with-main-starting-next-month/) for new repositories in October. They will be providing tools to [enable renaming existing repositories](https://github.com/github/renaming) do this later in the year so NIAC will revisit when these tools become available. - -PJ mentioned that he has been approached regarding a NeXus ptychography format for reduced data and how best to describe e.g. beam centre x and y in NeXus. HB indicated that there are overlaps with NXmx and it would be good to have a common approach and terminology. It was agreed to discuss this at the NIAC/code camp. -NIAC - -PC offered to create ZOOM links for the NIAC - -The first day may need to start in the afternoon to allow planning the remaining schedule to fit in with people’s timezones; however this does lose the first morning. It may be possible to do some of this time zone specific planning ahead of time. As a first step a deadline of next Wednesday (7/10) has been set for submitting items for discussion at NIAC to the NIAC repository on GitHub. All items should have a ticket in the NIAC repository to record the NIAC contribution and decision, if there is already an existing ticket for the actual work then a separate NIAC ticket should be created to reference the ticket in the other repository. PJ described how using a google spreadsheet was very helpful in keeping track of items at the code camp and that approach may be taken at the NIAC too. - -Recording of the NIAC was discussed, but there may be GDPR or other privacy issues to consider, so recording of the NIAC was rejected. The ZOOM transcription system was tried and that may be useful for providing initial minutes, but would not be published as is. - -Actions -------- -All: create tickets for items at NIAC 2020 by next Wednesday (7/10) - - diff --git a/content/Telco_20201208.md b/content/Telco_20201208.md deleted file mode 100644 index 0face5bf..00000000 --- a/content/Telco_20201208.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Telco 20201208 -permalink: Telco_20201208.html -layout: wiki ---- - -Date ----- - -Tuesday, 8 December, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://ukri.zoom.us/j/97459887639?pwd=TFRuU3lYUWRiNGoxcC9MQkFQTW1iZz09](https://ukri.zoom.us/j/97459887639?pwd=TFRuU3lYUWRiNGoxcC9MQkFQTW1iZz09) -* Meeting ID: 974 5988 7639 -* Password: 243582 -* Dial in number details: [https://ukri.zoom.us/u/ag6oYfxOO](https://ukri.zoom.us/u/ag6oYfxOO) -* Test connection: [https://ukri.zoom.us/test](https://ukri.zoom.us/test) - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [September Telco](Telco_20200930.md), [NIAC 2020](NIAC2020minutes_concluding.md) - * Discuss responses to [Future of NAPI questionaire](https://lists.nexusformat.org/pipermail/nexus/2020/001140.html) - * Issues on Github labelled with "telco" - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - -Present --------- - -Present: WG, SC, RO, BW, MK, FA, RB, PJ, PC, HG, SB, TM, MO - -Minutes --------- - -The resolutions from NIAC2020 were [all passed](https://www.nexusformat.org/NIAC2020.html#decisions) - -BW will check that tickets related to these decisions are closed. Any issues that are remaining, were not discussed, or inconclusive, will be handled at a future NIAC - -RB had previously mentioned a program he has developed for generating example NeXus files from NXDL. He described how this had been recently extended to also generate example h5py files, which all agreed was a useful addition. - -The recent code camp was discussed and it was agreed that the event had been good at focussing effort and making progress and so another virtual code camp would be arranged for 2021. BW will create a poll to choose a preferred date, sometime in february/march/april. We will discuss code camp agenda items at next TC. - -PJ mentioned the recent GitHub change of default master -> main branch. He will investigate the impact of making this change over the next month or two. - -SC mentioned the recent policy change at Travis CI and how this was causing problems, PJ suggested we move to GitHiub actions. He shared a couple of useful links on [migrating travis to githuib actions](https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/migrating-from-travis-ci-to-github-actions) and -[pythin testing](https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-python) WG also shared an example of how this had been done in [another project](https://github.com/ORNL/ncio/blob/master/.github/workflows/ci-github-actions.yaml) - -SC has been working on including nexus in Linux package repositories and it is now available in [Fedora linux](https://dl.fedoraproject.org/pub/fedora/linux/releases/33/Everything/x86_64/os/Packages/n/nexus-4.4.3-6.fc33.x86_64.rpm) - -PJ is continuing to look at the generation of html anchors, which are related to persistent identifiers (PIDs) proposal [presented by HG at NIAC2020](https://github.com/nexusformat/NIAC/issues/73) - -The sphinx version of the user manual seemed to have stopped building on the STFC server. Action FA to check (turns out to be missing python package after O/S upgrade; now fixed) - -## NAPI Future - -The feedback from the questionaire circulated to the mailing list was dicussed. Most facilities are either no longer using NAPI, or are building their own copy and able to maintain that themselves. A few people are still depending on a maintained NAPI, namely the Mantid and McStas software and a planned upgrade at the LANL facility. The bindings being used here were HDF4 and HDF5, nobody reported use of NAPI XML bindings. - -It was decided to keep NAPI in maintenance mode, but to make a few changes to ease workload: -* drop support for XML bindings from NAPI -* Review dropping HDF4 support if including becomes difficult in future (due to e.g. HDF library changes or dropped support) -* provide a pre-compiled staticly linked binary of NXCONVERT that supports all formats, together with examples of how to use it to convert XML/HDF4 files -> HDF5 -* The old python bindings would be kept in the repository for now, but not be built/bundled in any distribution kit - -RO suggested that NAPI could be moved into a separate repository and community managed separate to nexusformat. As we are keeping minimal maintenance, it was decided to keep it in its current location for now, but the situation would be reviewed. Separating it from the main nexusformat organisation would make it easier for other interested parties to maintain e.g. otherwise dropped formats/utilities/bindings as needed, they could currently fork the existing code and do this, but that may lead to confusion between "official" and "unofficial" bindings. - -WG mentioned that ORNL were looking at ways to improve the interaction of programs with HDF5 in a multi threaded environment. - -Actions -------- - -* Propose Code camp items on next TC agenda -* [Poll for code camp dates](https://doodle.com/poll/b2f8qbpu6sedeccm) - - -Next Meeting ------------- - -Proposed for mid - end January 2021 ([poll](https://doodle.com/poll/vtrvxxaz25d9k96t)) - - diff --git a/content/Telco_20210120.md b/content/Telco_20210120.md deleted file mode 100644 index dd7392e9..00000000 --- a/content/Telco_20210120.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Telco 20210120 -permalink: Telco_20210120.html -layout: wiki ---- - -Date ----- - -Wednesday, 20th January, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://ukri.zoom.us/j/94744239709?pwd=WE9qakVzQkZzV29KTjV4WmV0SEhwQT09](https://ukri.zoom.us/j/94744239709?pwd=WE9qakVzQkZzV29KTjV4WmV0SEhwQT09) -* Meeting ID: 947 4423 9709 -* Password: 540966 -* Dial in number details: [https://ukri.zoom.us/u/abmDsHyAE5](https://ukri.zoom.us/u/abmDsHyAE5) -* Test connection: [https://ukri.zoom.us/test](https://ukri.zoom.us/test) - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [December Telco](Telco_20201208.md) - * Discuss [upcoming code camp](https://lists.nexusformat.org/pipermail/nexus-committee/2020/001044.html) format and [date](https://doodle.com/poll/b2f8qbpu6sedeccm) - * Issues on Github labelled with "telco" - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - -Present --------- -BC, FA, HB, MK, RB, HG, BW, PJ, SB, PC, RO, SC, MO, WG - -Minutes --------- -The committee welcomed BC, who gave a brief overview of NeXus usage at LANL. Their current system is linux based and using an old version of NAPI to write HDF4. There are plans to update this at a future time. - -PJ had been working with HG on the generation of html anchors and references to link to an ontology, see [persistent identifiers (PIDs)](https://github.com/nexusformat/NIAC/issues/73). They have also been talking to the [ExPaNDS project](https://expands.eu/) about how this might be used. PJ demonstrated how a table of anchors was now generated and displayed at the end of each class, there is not currently a table showing all of these in one place, but it could be added. HG suggested that references could be used in packages such as iCAT. HB would love to see a keyword and context document, mapping CIF to NeXus terms, that made use of these links. HG commented that terms would need an associated PID to maintain a unique context and not fix usage to any particular class link. It was agreed that the current work was complete enough to be merged, but PIDs would be looked at next - maybe some could be created, registered, and linked to anchors. Using [ePICs](https://www.pidconsortium.net/) was suggested, see also [here](http://dtr-test.pidconsortium.eu/#urls/intro.html). RO suggested that this may be something that could be linked with the [Research Data Alliance](https://en.wikipedia.org/wiki/Research_Data_Alliance). - -The upcoming code camp was discussed next. Best dates from the [Doodle poll](https://doodle.com/poll/b2f8qbpu6sedeccm) look to be 22 March or sometime April, we will discuss next meeting after dates for a few other potentialy clashing events will be known then. Last time this event was held a rolling set of VCs was arranged. FA suggested that we may be able to use Guest accounts on the STFC Microsoft Teams instance, he is investigating this for another meeting and will report back. The problem with just ZOOM is that chats are not persistent. Other options could be: -- Use Github discussions on nexusformat for persistent chats, google docs for a progress spreadsheet, plus zoom (or other vc) with breakout rooms for meeting wwhen required -- Use [zoom channels](https://support.zoom.us/hc/en-us/articles/200912909-Creating-and-using-channels) for chat as these are persistent, plus ZOOM for meetings. -- If we felt ambitious, set up a [Discourse instance](https://www.discourse.org/about) - - -It was agreed that PJ should now proceed with the change from `master` to `main` as the default git branch on our repositories - -Actions -------- - -FA to report back on using MS Teams for code camp - -Next Meeting ------------- - -End of February - [Doodle poll](https://doodle.com/poll/snhd4zdrrmvh8vgy) - - diff --git a/content/Telco_20210303.md b/content/Telco_20210303.md deleted file mode 100644 index a062cd1b..00000000 --- a/content/Telco_20210303.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Telco 20210303 -permalink: Telco_20210303.html -layout: wiki ---- - -Date ----- - -Wednesday, 3rd March, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://ukri.zoom.us/j/94651392103?pwd=aEVHSW54RVoyMDQxZjNWcGltcWhPdz09](https://ukri.zoom.us/j/94651392103?pwd=aEVHSW54RVoyMDQxZjNWcGltcWhPdz09) -* Meeting ID: 946 5139 2103 -* Password: 007154 -* Dial in number details: [https://ukri.zoom.us/u/adnVUOrsRS](https://ukri.zoom.us/u/adnVUOrsRS) -* Test connection: [https://ukri.zoom.us/test](https://ukri.zoom.us/test) - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [January Telco](Telco_20210120.md) - * Discuss upcoming code camp - * Issues on Github labelled with "telco" - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - -Present --------- - -MK, FA, PC, WG, BW, SB, AB, MO, HB, PJ, RB, BC - -Minutes --------- - -Technology options for the code camp were discussed, such as Github Discussion, Slack, zoom channels. Zoom channels looked like they may be worth a go. We could just keep all details on issues, but this may get a bit cluttered. Action on FA to set up some technology options to try. It was agreed that having the issues on a GitHub project worked well last time. - -The date of the code camp was fixed for 22nd March, taking place on Monday and Tuesday with a sum up session on Monday 29th - -Thank you to PJ for renaming GitHub master -> main in our repositories - -BW raised the issue of packaging as he had been looking at anaconda and conda-forge. PJ commented that conda-forge was better than pip at resolving dependencies and managing binaries, and it was used by [BlueSky](https://nsls-ii.github.io/bluesky/). He recommended making your own conda channel first. WG shared a link showing Conda is also more general than [just python](https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html). It was suggested that having cnxalidate on conda would be useful - maybe a code camp task? nexpy is [already available on conda-forge](https://anaconda.org/conda-forge/nexpy) and punx is on the [nsls2 forge](https://anaconda.org/nsls2forge/punx). WG shared a link to the [Spack](https://spack.io/) package manager that has been used at ORNL. - -PJ mentioned a question he had been asked regarding recording processing details from EPICS area detector plugins in NeXus files. Choices were as an NXnote or NXprocess. It was agreed that for this case NXprocess was appropriate as the pluguns could provide sufficient details. - -Actions -------- - -FA: set up some technology options for people to try - -Next Meeting ------------- - diff --git a/content/Telco_20210505.md b/content/Telco_20210505.md deleted file mode 100644 index 833ee2bb..00000000 --- a/content/Telco_20210505.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Telco 20210505 -permalink: Telco_20210505.html -layout: wiki ---- - -Date ----- - -Wednesday, 5th May, 13:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/63296893144?pwd=NlBsSjZGMERRcy9oOUJBdHk4bXRGUT09](https://psich.zoom.us/j/63296893144?pwd=NlBsSjZGMERRcy9oOUJBdHk4bXRGUT09) -* Meeting ID: 632 9689 3144 -* Password: 130129 -* Dial in number details: [https://psich.zoom.us/u/ccLS86vcDS](https://psich.zoom.us/u/ccLS86vcDS) - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [March Telco](Telco_20210303.md) - * Discuss the proposed NeXus ontology, including: - * use of the namespace http://purl.org/nexusformat/definitions - * hosting the ontology and the code to generate it from NXDL in the nexusformat github repository. - * Issues on Github labelled with "telco" - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - -Present -------- -BW, SC, HG, MK, PC, AB, HB, PJ, TM, FA, WG - -Minutes ------- -The previous TC has been combined with a closeout session of the code camp. BW thanked people for their work and the code camp and in tidying up tickets subsequently. - -The main topic for the meeting was to discuss the proposed NeXus ontology. HG had invited SC (Steve Collins, Diamond Light Source) to present some of what they had been working on. -The ontology work has been done as part of ExPaNDS task 3.2 to “develop EU photon and neutron ontologies” It aims to standardise metadata in metadata catalogues to use common semantics and also to link to similar or equivalent items in other vocabularies where possible. SC presented a summary of the ideas involved and demonstrated an ontology browser and the python code used to generate the ontology from the NXDL files and markers that had been added to them (the python uses the owlready2 package). It was proposed to host the generating scripts and output ontologies in the nexus github repository. PJ suggested a separate ontology repository, and that the ontology should be tied to an NXDL release (in the owl:versioninfo field). -* Ontologies can be uploaded to sites such as [Bioportal](https://bioportal.bioontology.org/ontologies/). -* A [PURL](https://en.wikipedia.org/wiki/Persistent_uniform_resource_locator) (or set of PURLs) provides a persistent name coupled with a (modifiable) URL to point to the location of the OWL ontology file(s). -* Scripts build the [OWL ontology](https://www.w3.org/OWL/) using only the NXDL files as input, aside from a few paragraphs of text that explain the purpose of the document. The ontology can be viewed as just an alternative documentation of NeXus, focused on the semantics, and doesn't affect how data files should be written, read or interpreted. -* The ontology itself is a single file with a format similar to XML. -* We probably want to build an ontology for each major release of NeXus. (And therefore perhaps have a PURL for each.) -* All present agreed that hosting the files on github doesn't require a NIAC vote, but the use of the NeXus name in a PURL should go to a NIAC vote. Once the files are properly set up in the new [NeXusOntology github repo](https://github.com/nexusformat/NeXusOntology) then we will have something more concrete to base a vote on. - -* PC brought up an issue where the assumption that a beam lies on the Z-axis was problematic and suggested adapting NXbeam to allow description of other geometries. -* BW brought up the case of accelerator groups wishing to use NeXus, but not having a sample, and suggested thinking about a more general solution to defining the coordinate system. -* Many facilities use "survey points" to measure the positions of equipment. - -Actions ------- -HG, PJ: Use the new [NeXusOntology github repo](https://github.com/nexusformat/NeXusOntology) to build a full demonstration of the NeXus ontology project. -PC: Investigate ways to define coordinate systems. - -Next Meeting ------------- -Aim for the beginning of June - [poll](https://doodle.com/poll/7b9nzp6zb3bwds5t) diff --git a/content/Telco_20210628.md b/content/Telco_20210628.md deleted file mode 100644 index f80e0bb1..00000000 --- a/content/Telco_20210628.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Telco 20210628 -permalink: Telco_20210628.html -layout: wiki ---- - -Date ----- - -Monday, 28th June, 13:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/62714818737?pwd=V3FJZHVWUWN1TU1IYkU3Z3Y5dlZuQT09](https://psich.zoom.us/j/62714818737?pwd=V3FJZHVWUWN1TU1IYkU3Z3Y5dlZuQT09) -* Meeting ID: 627 1481 8737 -* Password: 314159265 -* Dial in number details: [https://psich.zoom.us/u/cdW7YV91uK](https://psich.zoom.us/u/cdW7YV91uK) - - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [May Telco](Telco_20210505.md) - * The NeXus ontology and scripts are now on [github](https://github.com/nexusformat/NeXusOntology) - * The [European HDF5 users online meeting](https://www.hdfgroup.org/hug/europeanhug21/) will be held on July 7-8. - * Issues on Github labelled with "telco" - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - -Present: BW, MK, FA, HG, PC, LS, PJ, RB, WG, AB - -Minutes -------- - -At last TC, PC raised the issue with the assumption that beam lies on the Z-axis was problematic and suggested adapting NXbeam to allow description of other geometries. He has not been able to look at this further since then, but will try to. It was suggested that we might want to allow using survey points, but these may be better known to the survey team than the scientists. - -The script to generate the [NeXus ontology](https://github.com/nexusformat/NeXusOntology) is now on Github. A vote of the NIAC is required for use of a http://purl.org/nexusformat/definitions namespace as the [PURL](https://en.wikipedia.org/wiki/Persistent_uniform_resource_locator) and with summer approaching it looked unlikely to get the necessary discussion quorum as per constitiuion so this is likely to happen september. The external python modules requried to run the script are listed in comments in the script, but it was suggested a `requirements.txt` (or similar) file would be helpful. Currently the scipt version is encoded in the script name, this may make it harder to package/update later. PC offered to do a code review. - -The [European HDF users group summer 2021 meeting](https://www.hdfgroup.org/hug/europeanhug21/) is taking place afternoons of 7-8 July, unfortunately this clashes with the EPICS collaboration meeting. PC and LS indicated they may attend, BW thought it would be useful if there was a NeXus presentation at the meeting and may be able to do this if nobody else was available. AB is unable to attend the meeting due to a clash, but has some HDF5 data rate issues that he would be grateful if somebody could raise, they happen when writing 900000 frames in 5 minutes. There was some discussion about whether the use of subfiles could be avoided, maybe parallel HDF5 would help. WG, PC and AB were going to discuss further. PJ mentioned that people working at US national labs must request authorisation to attend conferences 45 days in advance - even if they are online meetings. - -AB mentioned a collaborator who wished to add the definition git commit id as an attribute to his data files. The committe was happy for a proposal to be submitted to extend the definitions, but the person concerned is free to add the value now if they follow [data/prefix rules](https://manual.nexusformat.org/datarules.html#index-4) - -A [recent submitted issue](https://github.com/nexusformat/definitions/issues/933) asked about scanning with `NXfluo`. It looks like the definition needs generalising to allow the additional scan `npts` dimension. This probably applies to other definitions too and may be a future code camp topic. In addition, we should document any implied rules that we might have e.g. can always scan an axis with an implied `npts`. - -PJ raised the question of whether counts should have a NeXus unit, or just be dimensionless. After discussion and reviewing of https://github.com/nexusformat/definitions/blob/main/nxdlTypes.xsd and https://github.com/nexusformat/definitions/blob/main/nxdlTypes.xsd#L50 it was suggested that `NX_PULSES` fulfills a similar role and maybe deprecating that for a new NX_COUNT is the way to go. PJ suggested that we consider examining a unit-conversion program (such as [pynt](https://github.com/rags/pynt)) to see how others in the scientific community address corner cases like "counts". - -Next meeting end of July diff --git a/content/Telco_20210728.md b/content/Telco_20210728.md deleted file mode 100644 index 63b24c5a..00000000 --- a/content/Telco_20210728.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Telco 20210728 -permalink: Telco_20210728.html -layout: wiki ---- - -Date ----- - -Monday, 28th July, 13:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/65466024905?pwd=ckExUG9hQm1uSFFWSTNJS0VpRThQdz09](https://psich.zoom.us/j/65466024905?pwd=ckExUG9hQm1uSFFWSTNJS0VpRThQdz09) -* Meeting ID: 654 6602 4905 -* Password: 684368 -* Dial in number details: [https://psich.zoom.us/u/cBfhroi0v](https://psich.zoom.us/u/cBfhroi0v) - - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [June Telco](Telco_20210628.md) - * Issues on Github labelled with "telco" - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue+label%3Atelco) - -Present ------- -BW, RB, MK, PJ, PC, AB, WG, TM, SC, HB - -Minutes ------- -In June, PC has promised to review the code for the NeXus ontology. He reports that comments have been provided, but that no further actions have happened yet. - -The [European HDF users group summer 2021 meeting](https://www.hdfgroup.org/hug/europeanhug21/) was attended by a few NeXus representatives. BW commented that the talk on the HDF5 embedded user functions looks very powerful, but far too risky for widespread adoption. AB commented that it would solve his issues of online data normalisation that he is currently addressing via a custom reader in DIALS that has a hardcoded formula and knows where to find the relevant pedestal and gain values to apply. - -Further discussion on adding NXcounts as a NeXus unit showed that nobody present objected to such an addition, but some wanted to make sure that there was full opportunity for anyone on the NIAC to raise an objection. It was not clear that the addition of NXcounts was significant enough to warrant a full NIAC vote (maybe the omission is just a bug that needs fixing, rather than a change to the stadard), so BW suggested starting by posting on the NIAC mailing list to request opinions. - -Revisiting the question about [scanning in NXfluo](https://github.com/nexusformat/definitions/issues/933) with the new info from the issue creator, it seems that NXstxm is a good fit. MK commented that NeXus has a general scanning strategy, but it isn't formally written down. This would make a good project for a future code camp. - -A new issue requests [adding MetalJet as a new NXsource type](https://github.com/nexusformat/definitions/issues/934). There is general agreement that new laboratory X-ray sources have been developed and are common enough to merit a new NXsource type. However, BW thinks that MetalJet might be too narrow and that "liquid jet" might be a more appropriate category name since there also exists X-ray sources based on jets of [nitrogen](https://doi.org/10.1063/1.1884186) or [water](https://doi.org/10.1063/1.4913585). BW will ask for further opinions on the mailing list. - - -New NDXL images -BW questions anySimpleType, PJ says it comes from XML. https://www.w3schools.com/XML/schema_simple.asp - -AB brought up again the request to [add a git revision attribute to NXentry](https://github.com/nexusformat/definitions/pull/937). While it was generally agreed that people were free to add extra info to their files, there were some questions about the merits of any strategy that would require knowing the git revision rather than just the NeXus release version. AB was unsure (and would ask his collaboarators), but thought is was about being able to find the full NXDL specifications online. It was noted that the [releases page for the github repository](https://github.com/nexusformat/definitions/releases) listed the commit ids together with the release versions and that this might be helpful. - -Since many people expect to be busy in the end of August, the next telco will aim for early to mid september. diff --git a/content/Telco_20210915.md b/content/Telco_20210915.md deleted file mode 100644 index 035cceff..00000000 --- a/content/Telco_20210915.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Telco 20210915 -permalink: Telco_20210915.html -layout: wiki ---- - -Date ----- - -Wednesday, 15th September, 13:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/69308827429?pwd=M2ZEYk5yREdZUWlEeHgwc0gxdXdwUT09](https://psich.zoom.us/j/69308827429?pwd=M2ZEYk5yREdZUWlEeHgwc0gxdXdwUT09) -* Meeting ID: 693 0882 7429 -* Password: 314539 -* Dial in number details: [https://psich.zoom.us/u/cbMgHelbOz](https://psich.zoom.us/u/cbMgHelbOz) - - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [July Telco](Telco_20210728.md) - * Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present --------- -BW, AB, PJ, PC, HB, MK, UH, RB, SP - -Minutes --------- -* UH presented some further info on photoemission spectroscopy of liquid surfaces (using synchrotron excitation sources on microjet targets). The NXarpes application definition has many required elements, but is not fitting in some ways requiring some extra data dimensions and missing important sample information (liquid jet). - * Advice is to write a new application definition and new or amended base classes. - * For the description of light polarisation, the Stokes parameters are recommended and HB will present something on the topic at the next telco. -* RC asks if anyone had used [NXdector_module to describe a ROI?](https://github.com/nexusformat/definitions/issues/939) -* Dectris would like to be able to add an extra ["channel" dimension](https://github.com/nexusformat/definitions/issues/940) to the data array that their detectors record. The issue seems to be driven by the feature of automatic thresholding where the gain settings of a pixel self-adjusts based on its rate of charge acquisition and therefore the gain and offset that should be applied depends on which thresholds were exceeded. More discussion is probably needed as the proposal indtroduces new complexity to some fundamental parts of NeXus. -* "axes" as a dataset attribute should be marked as "deprecated" - diff --git a/content/Telco_20211115.md b/content/Telco_20211115.md deleted file mode 100644 index 73d3f5cf..00000000 --- a/content/Telco_20211115.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Telco 20211115 -permalink: Telco_20211115.html -layout: wiki ---- - -Date ----- - -Monday, 15th November, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/69154353855?pwd=RW00eXRGa09tNWRHU202SDdLaTJzZz09](https://psich.zoom.us/j/69154353855?pwd=RW00eXRGa09tNWRHU202SDdLaTJzZz09) -* Meeting ID: 691 5435 3855 -* Passcode: 16022 - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [September Telco](Telco_20210915.md) - * Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- -BW, RO, RB, MK, TM, PC, HB - -Minutes -------- -PC presented proposal for describing a ROI in [issue #944](https://github.com/nexusformat/definitions/issues/944) -* BW asks about representing a different use case where the "parent" dataset is not recorded (e.g. the detector output is limited to a subset of pixels and only this subset is recorded). -* MK asks if this really belongs in NXdetector since it looks more like processed data than raw data -* Would be better to be described more generally than only as a child of NXdetector - -BW describes discussions with Dectris about [issue #940](https://github.com/nexusformat/definitions/issues/940) ([summary](https://github.com/nexusformat/definitions/issues/940#issuecomment-968922229)) -* RO likes restricting data variable labels to NX_NUMBER but is not opposed to [issue #945](https://github.com/nexusformat/definitions/issues/945) -* Different types of link are already [allowed](https://github.com/nexusformat/NIAC/issues/77#issuecomment-716643766) and their target can be discovered in HDF5. Perhaps we need to document and advertise which calls can/should be used - -Draft [application definition for XPCS](https://github.com/nexusformat/definitions/issues/943) -* MK thinks that the variables are not very descriptive (e.g. g2), but PC says that it is standard nomenclature in the field -* the scripts from RB could be useful to illustrate the structure of a proposed application definition -* BW suggests that the scripts from RB could be added to the nexus_format package to make it more easily available to people planning new application definitions -* RB will try to make his script more resilient against minor issues often found in contributed application definitions - -Should we have another virtual NIAC in Spring 2022? There are plans for a hybrid NOBUGS in Autumn 2022. -BW suggests encouraging more discussion on github before starting video discussions so that we can be more time-efficient. - -Next meeting in mid December - - - - - - - diff --git a/content/Telco_20211215.md b/content/Telco_20211215.md deleted file mode 100644 index 95e380e0..00000000 --- a/content/Telco_20211215.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Telco 20211215 -permalink: Telco_20211215.html -layout: wiki ---- - -Date ----- - -Wednesday, 15th December, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/65356830562?pwd=VFJ1R2ROUzU2bWZ1MjloOERYVy9mUT09](https://psich.zoom.us/j/65356830562?pwd=VFJ1R2ROUzU2bWZ1MjloOERYVy9mUT09) -* Meeting ID: 653 5683 0562 -* Passcode: 387565 - - - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [November Telco](Telco_20211115.md) - * Next release of definitions : when? (was scheduled for 2021-10) - * Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present --------- -BW, HG, LG, RB, CZ, SB, PJ, PC, WdN, AB, HB - -Minutes ------- - -New Members ---- - * WdN is new ESRF rep where there is a new data acquistion that writes HDF5/NeXus - * LG is new rep for Eu XFEL, also NeXus compliant - * SB presents FAIRmat infrastructure project that he is working in and producing lots of new draft base classes and application definitions. - * SB asks LG about links between ontology and data files. - * CZ is new rep from ORNL (had some technical issues with microphone volume), primarily workin with Neutron sources. - -Issues ---- - * PJ asks if we still need an environment.yml file in the documentation repo - * noone sees a need for it - * HG NFDI project would want to coordinate with FAIRmat, rather than working in parallel. - -Next Release ---- - * PJ aims to have a somewhat annual release of the definitions - * Schedule releae for March 2022 - -Issues ---- - * PJ suggest dropping support for python <3.7 since 2.6 is at the end of its support period. - * PC suggests also removing any use of the six module since it shouldn't be need when there shouldn't be any Python2 code - * PC further suggests switching to h5py version3 - PJ thinks it may not be needed (happens automatically) - * PJ asks if we are ready to cut the cord from the Jenkins server? PC thinks yes. PJ waiting for acknowledgement from FA. - * PJ discusses adopting Github workflow - * Github (branch, not yet main) will autonatically build the docs on every push and will publish it if there is a release tag provided. - * Will wait for FA before implementing it in main. - * HG asks for details about the yml file that PJ asked her to create for the ontology repo - * PJ says it is mostly for setting up the appropriate python/conda environment required to run the code. - * PC presents PR#957 for describing a POI. - * mostly complete, but still an issue with declaring which fields are optional. - * PC has also been working on NXbeam to define the reference plane of the polarisation. - - -Next meeting to be in the second half of January, 2022. [poll](https://doodle.com/poll/u4bpr3tzwz8cnw2h) - - - diff --git a/content/Telco_20220131.md b/content/Telco_20220131.md deleted file mode 100644 index 62c03bfe..00000000 --- a/content/Telco_20220131.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20220131 -permalink: Telco_20220131.html -layout: wiki ---- - -Date ----- - -Monday, 31st January, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/65356830562?pwd=dERIbEtvWk5mMDE0c1BBc1RmTC9UUT09](https://psich.zoom.us/j/65356830562?pwd=dERIbEtvWk5mMDE0c1BBc1RmTC9UUT09) -* Meeting ID: 653 5683 0562 -* Passcode: 602214 - - -Agenda ------- - * Welcome new members - * Review previous meeting minutes and actions: [December Telco](Telco_20211215.md) - * Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- -BW, WdN, HB, HG, TM, LG, RO, UH, AB, MK, SB, PC - -Minutes ------- - * PC has moved the ROI base class to contributed and is ready for NIAC review. NXbeam is also ready for review. - * SB asks for clarification of NXbeam vs NXsource: - * NXbeam - at some position - * NXsource - at point of beam production - * Dectris asked about [end_time_estimated being a required field](https://github.com/nexusformat/definitions/issues/966). HB says it is needed in order to make sure that something is written about the end-time since the actual end time might be omitted if things go wrong. It reflects the importance of being able to estimate the dose applied to the sample. - * RO suggested including it in the base class for more general use. - * SB asked if the FIELD_variant would be a viable alternative. There is general agreement that it would, but that the specific field could carry a more specific meaning than the FIELD_variant system. - * SB asks if we should generally be pushing new fields from application definitions into the corresponding base classes. There is general agreement that this is good - we want to bring the application definitions closer together whenever we can and the base classes are our tools for doing so. - * SB aks about showing the candidate changes/additions similar to the contributed application definitions. - * HB suggests having future release candidate branches. - * BW warns not to muddy the waters. There should be a clear distinction between what is part of the standard and what isn't. It is OK to give informal hints about which proposals are being discussed favourably, but we should not encourage usage of any field that has not yet been approved since there are often last-minute tweaks that could cause already-written fields to contain false information. - * Dectris pointed out that [NXdetector documentation refers to NXgeometry, which is deprecated](https://github.com/nexusformat/definitions/issues/967). PC points out that there is already a pull-request pending. - * BW asks about NOBUGS and options for the next NIAC: - * MK says that the plan is for a 19-22 September hybrid NOBUGS and for a hybrid NIAC the week before. - * HB says US people need the NOBUGS info published asap in order to get travel permission (tpyically takes 4-6 months). - * Still appetite for a virtual NIAC in March - SB is depending on it for his projects schedule. BW will quickly send out a poll to choose the precise dates. - - * RO says John Wright has working group with IUCR on synchrotron data standardisation and he is recommending NeXus. Newcomers are welcome. (IUCR data reporting) - * SB asks about storing complex numbers (HB extends to quaternoins). MK says it hasn't been well defined. PC says that he sets up a composite HDF dataset to match what h5py does. - * SB asks about having more than one signal in an NXdata. RO says we have auxilliary_signals and it is implemented in NeXpy. - -BW will send out a poll for the [next telco in mid-late February](https://doodle.com/poll/5wz3piy6u6vyyskm) (in addition to a poll on the [March NIAC dates](https://doodle.com/poll/pe5w6n4whvzbdp6h)). - diff --git a/content/Telco_20220225.md b/content/Telco_20220225.md deleted file mode 100644 index 657a41c6..00000000 --- a/content/Telco_20220225.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Telco 20220225 -permalink: Telco_20220225.html -layout: wiki ---- - -Date ----- - -Friday, 25th February, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/68711884689?pwd=YlF5VmtNbDdrOHJkYXc2YTlGWWMxdz09](https://psich.zoom.us/j/68711884689?pwd=YlF5VmtNbDdrOHJkYXc2YTlGWWMxdz09) -* Meeting ID: 687 1188 4689 -* Passcode: 183302 - -Agenda ------- - -* Welcome new members -* Review previous meeting minutes and actions: [January Telco](Telco_20220131.md) -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [NXxpcs](https://github.com/nexusformat/definitions/issues/943) - is a new contributed definition (to be an application definition) - * add [`NX_ARBITRARY_UNITS`](https://github.com/nexusformat/definitions/pull/980): - Does this **need** a NIAC vote? - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) -* NeXus ontology and namespace usage - * ?add to agenda for next NIAC? -* Spring virtual NIAC -* Autumn hybrid NIAC - -Present -------- -BW, CZ, HB, PJ, FA, SB, LG, RB, HG, AB, RO, WDN - -Minutes ------- - * NIAC on March 3rd, 4th, with special effort to have a chorum on the 4th. - * SB to make pull requests - * Ontology email aacount - special email address that forwards to nexus-committee? Or is it just a login ID? - * NXxpcs app def - want xpcs data in a common format - is ready for contribution - * New type of units "arbitrary units" - * SB prefers to calculate combination units on the fly - * RO asks what is supposed to be the validation consequences of arb units? - * BW says that au is problematic anyway because it is a nonstandard description that is commonly used (add to proposal #921) - * SB thinks arb units is equivalent to unknown units. - * RO and PJ can agee on "unkown" units as a compromise (NX cansas can consider using this) - * PJ will make the changes in NXxpcs - * LG wants to be able to state photon flux differently from NXmx since XFELs provide photons differently - * Problem is that a pulse has unknown time - * Other problem is that NDXL currently doesn't easily allow requiring one of a set of fields. - * AB and HB think this is just a bug and short name should be optional - AB will fix it - * SB wants to have a nexus workshop in Germany 17-18 March to bring people and projects together - * would like someone to introduce the NIAC, sample environment, validation, data processing/visualisation - * BW volunteers to talk at the meeting. - * AB thinks that he could also speak but needs to check beamtime schedule. - * AB will add the NIAC vote needed tag to #942 - * SB asks about inheritance - HB says we should look at UML, which adresses this question. HB thinks there is value in having specific inheritance rules. BW would like to see a specific proposal to avoid endless ideological discussions. - * SB asks about linking between fields and how a link can be required in an app def (using NXDL) - * AB says that NeXus is meant to be independent of the file format implementation (i.e. HDF5 is not a requirement) - * SB asks if someone from ESRF could speak at the workshop about NeXus use or utilities? WDN will discuss availability with colleagues. - * BW will publish a NIAC schedule asap - diff --git a/content/Telco_20220426.md b/content/Telco_20220426.md deleted file mode 100644 index 943eb5ab..00000000 --- a/content/Telco_20220426.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Telco 20220426 -permalink: Telco_20220426.html -layout: wiki ---- - -Date ----- - -Tuesday, 26th April, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/67499186547?pwd=b3FjR3dYRzgxTGpVaWVPODBBQjRaQT09](https://psich.zoom.us/j/67499186547?pwd=b3FjR3dYRzgxTGpVaWVPODBBQjRaQT09) -* Meeting ID: 674 9918 6547 -* Passcode: nexus - -Agenda ------- - -* Welcome guests and new members -* Review previous meeting minutes and actions: [February Telco](Telco_20220225.md), [Spring virtual NIAC](https://www.nexusformat.org/NIAC2022_spring.html) -* Review of the recent [NFDI workshop](https://events.hifis.net/event/323/) -* File format alternatives to HDF5 and XML such as [ADIOS](https://csmd.ornl.gov/software/adios2) and [Zarr](https://zarr.readthedocs.io/en/stable/). - * Discussion on mailing list showed some concerns about reading archives if the container format is not restricted. (Is this part of the NeXus mission?) - * What should be our core definition of how NeXus is expressed in each container file format? Options include: - * English description in manual (i.e. current implementation). - * Functional code (e.g. validator, reader, writer). - * XML declarations. - * Example files (maybe make an `NXexample` application definition for this purpose). -* Format of Code Camp during week of May 9-13th? - * Main aim is to reach the [release milestone](https://github.com/nexusformat/definitions/milestone/12) - * Reschedule due to conflict with [EPICS Codeathon](https://events.bizzabo.com/lcls-codeathon-2022/home)? -* [2022 HDF European user group meeting](https://www.hdfgroup.org/hug/europeanhug22/) -* [Brian Maranville](https://www.nist.gov/people/brian-b-maranville) has made on [online version of cnxvalidate](https://bmaranville.github.io/cnxvalidate-web/). We may wish to endorse this and provide hosting. -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- -BW, WDN, HB, FP, MK, RB, CZ, NS, AB, GG, HG, LG, PJ, SB, DMR, JK, PC, AD - - -Minutes -------- -* Introductions -* NFDI workshop 160-ish registrants (110 online at once) - * First day of presentations from people already working with NeXus and some newcomers - * Second day more about getting to know each other with short presentations and break-out discussions. Broad variety of projects and communities, plus some vendors. -* NS ALBA want to be able to write simultaneously to a file (perhaps with Zarr). -* FP from OpenPMD needs many different use cases and needs to optimise for different use cases. -* BW says that NeXus... -* HB says that opening to new formats raises responsibility to provide tools for such formats. Organisations are producing/collecting millions of datasets. Additional resources are going to have to be part of the discussion. -* BW asks if this is within the NeXus mission -* PC need an algortim to write a tree - file format just needs to have sufficient expressibility. -* MK - history: HDF4 came first, then HDF5, then the community demanded XML. Later the community only wanted HDF5. Maintenance of the NeXus API is lots of work. The HDF group is working on performance. We should not stop anyone using NeXus heirarchies, but I would be cautious about adding extra formats. -* HG asks if some documentation can be provided to support arguements that HDF5 is not sufficient. Providing minimum performance requirements would be helpful -* SB is using the virtual dataset features that allows the tree to be split into multiple files so that multiple readers can be implemented -* DB is open to different approaches. -* RB proposes a "contributed" status for the file formats similar to the application definition in order to provide guidance from NeXus while the community provides implementation for resources. -* BW wants to rethink how NeXus declares the implementation of the data hierarchy in a file format. The current method of describing it in the manual is informal and quickly becomes unmanageable when adding further file formats. We define everything else with NXDL, but it is unclear to me how this can be done for file formats, unless it is to create an application definition describing all of the required features to express NeXus, which would be accompanied by reference files and perhaps reference code demonstrating how the application definition is implemented in the file format. -* AB says NEXUS provides a set of services to the community: ontology, ref examples, and validation. We expect community to write further tools. -* HB suggest people recall what happened to file formats around the switch to UNIX. Solved by do what you want so long as you fit into the "streams interface". Need simple way to describe mapping inot file formats. these are huge investments worldwide when adding further formats. -* DMR points to other examples of validation (eg browser test suit). -* HG group runs a data repository. We would only want formats with long term support. Archiving should be important to NeXus. We should also consider conversion (eg write what you want, but convert to eg HDF5 for archiving). -* NS asks about a tools between the data and file formats - this is what the NAPI is -* AD openPMD has lots of similar things to consider. HDF5 was an early feature, but it stopped being able to handle the size of the simulations (TB). We changed the backend to allow different formats and this solved many problems. openPMD would like to bring the NeXus ontology in to the different backends. -* FP says implementing NeXus onto multiple backends is not straightforward. We need to agree on specific details. Data conversion is "free" with a multi-backend API. -* AB the NIAC provides ontology, validation, and example data. Other stuff is more a volunteer effort (NeXpy, NeXus API, Russ’s example file writer from NXDL). So if a file format wants a ‘badge of support’, i think it needs a validator and example data. - - -* BW advertised the HDF user meeting and asks if any NIAC members plan to attend. BW says that he will try to attend himself. -* The code camp clashes with the EPICS codeathon. Multiple people want to reschedule our code camp, so BW will send out a new poll to decide another set of dates. -* BW encourages people to try out the [online cnxvalidate implementation](https://bmaranville.github.io/cnxvalidate-web/) so that we can talk about in more detail at another meeting. -* WDN ESRF already has multiple APIs just for HDF5. This happens for performance reasons. -* FP perspective is that runtime configuration is important in order to meet different performace criteria. - - -* WDN wants errors on aux signals https://github.com/nexusformat/definitions/issues/1044 - * consensus that this just extends the convention and so should be easily accepted. - - -* BW says that the release milestone should be a priority for NeXus, especially at the upcoming code camp -* BW will make a poll for the next telco aiming for mid- to late May. - - diff --git a/content/Telco_20220527.md b/content/Telco_20220527.md deleted file mode 100644 index ceb40604..00000000 --- a/content/Telco_20220527.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Telco 20220527 -permalink: Telco_20220527.html -layout: wiki ---- - -Date ----- - -Friday, 27th May, 14:00 UTC - - - -Cancelled. diff --git a/content/Telco_20220602.md b/content/Telco_20220602.md deleted file mode 100644 index 5e2a891f..00000000 --- a/content/Telco_20220602.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20220602 -permalink: Telco_20220602.html -layout: wiki ---- - -Date ----- - -Thursday, 2nd June, 14:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/68256289400?pwd=WUJ3TmRObVA1S2k2NFdBbDE1Y3BYdz09](https://psich.zoom.us/j/68256289400?pwd=WUJ3TmRObVA1S2k2NFdBbDE1Y3BYdz09) -* Meeting ID: 682 5628 9400 -* Passcode: nexus - -Agenda ------- - -* Welcome guests and new members -* Review previous meeting minutes and actions: [April Telco](Telco_20220426.md) -* Discuss format of [Code Camp](https://www.nexusformat.org/CodeCamp2022.html) -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- - -BW, HB, AB, TM, CZ, PJ - -Minutes -------- - -* BW apologises for last week and in future will turn off the setting that requires attendees be admitted by the host in order to avoid repeting the issue. -* BW points again to [https://bmaranville.github.io/cnxvalidate-web/](https://bmaranville.github.io/cnxvalidate-web/) -* BW asks about CC format, especially how often tele-meetings should be scheduled. PJ likes the 2 hour blocks we used previously. -* BW calls vote to make telcos an hour later: All agree. -* Web page is running again after having some configuration issues that were discovered yesterday. -* HB has philosophical issue. MX field has changed considerably recently and models are often available before MX experiments. - * BW doesn't see why that should be an issue. The concern that some people have is being able to archive data and so it is only adding things to files at later times that is the issue, not adding info that is present from the beginning. - * AB asks if this would be an update to NXmx - HB says yes. - * BW says that nano-magnetism experiments are also often simulated before the experiment is run. -* PJ fed our "writer" example from the manual into the web cnxvalidate and it came up with two errors: - * does not have a valid app def - * HDF version attribute is required but not present -* Why are these errors and not warnings? Unanimous agreement that this a bug in cnxvalidate. This could be examined in the code camp. -* BW points out that the HDF version doesn't make sense in XML files. -* HB says that the HDF version is definitely useful since it cannot always be queried from the file. H5check is the utility that would give the best indication of the HDF version. -* BW will make a poll for the next telco with dates in the first half of July. - - - - diff --git a/content/Telco_20220707.md b/content/Telco_20220707.md deleted file mode 100644 index eb70f98c..00000000 --- a/content/Telco_20220707.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Telco 20220707 -permalink: Telco_20220707.html -layout: wiki ---- - -Date ----- - -Thursday, 7th July, 15:00 UTC - - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/66384346019?pwd=aG13QldUaVA1Yjdwc1RzL0FyVE13QT09](https://psich.zoom.us/j/66384346019?pwd=aG13QldUaVA1Yjdwc1RzL0FyVE13QT09) -* Meeting ID: 663 8434 6019 -* Passcode: nexus - -Agenda ------- - -* Welcome guests and new members -* Review previous meeting minutes and actions: [June Telco](Telco_20220602.md), [Code Camp](https://www.nexusformat.org/CodeCamp2022.html) -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- - -BW, HB, RB, WdN, CZ, AB, HG, SB, PC - -Minutes -------- - -* BW thanks everyone who helped in the Code Camp - we accomplished a lot of work. PJ said that he would provide a summary of our achievements but I haven't received it yet. We can see some indication of the efforts from the [github insights page](https://github.com/nexusformat/definitions/graphs/commit-activity) -* HG, WdN and SB all agree that it went well and thanks those contributing. -* SB reports that he saw that NXptycho has a bug - SB will submit an issue. -* BW also wants to submit an issue from a question on the mailing list about NXxas. -* Dectris have been asking about data required by NeXus (especially NXmx) that they don't have easy access to (need cooperation from the beamline staff). HB says that being soft on the issue in the past has not improved the situation (non-required data is not written voluntarily) so wants to be strict now. -* WdN doesn't understand why Dectris should be so concerned about so much metadata - the beamline staff should take responsibility. SB answers that the situation is kind of inherited by such metadata being included in previous file formats in the MX field and is common to lots of vendors. AB will add something to the issue and also push some discussion at the ACA-SIG meeting. -* BW will organise the next telco for the middle of August. [Poll](https://strawpoll.com/polls/PKglz4b1Qyp) - - diff --git a/content/Telco_20220824.md b/content/Telco_20220824.md deleted file mode 100644 index a96c2d5b..00000000 --- a/content/Telco_20220824.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Telco 20220824 -permalink: Telco_20220824.html -layout: wiki ---- - -Date ----- - -Wednesday, 24th August, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/63006091860?pwd=cmR2cnlZQTB2V3Y0YXRTR3hoaXVsdz09](https://psich.zoom.us/j/63006091860?pwd=cmR2cnlZQTB2V3Y0YXRTR3hoaXVsdz09) -* Meeting ID: 630 0609 1860 -* Passcode: nexus - -Agenda ------- - -* Welcome guests and new members -* Review previous meeting minutes and actions: [July Telco](Telco_20220824.md) -* Please register asap for the [NIAC meeting](https://www.nexusformat.org/NIAC2022.html) -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- -BW, CZ, WdN, AB, SB, PJ, TM, HB - -Minutes -------- - -SB asks about combining multiple eexperiments and processes together. -BW replies that this is what NXentry is designed to accomplish. Maybe using separate files for each experiment and then have a master file to link them together. -HB says that this is getting dangerous and the reason why UML was invented. Take the Java inheritance model and stick to that. -SB asks about implementing sample IDs -BW remembers there being something already in about [UUIDs](https://manual.nexusformat.org/classes/base_classes/NXentry.html?highlight=uuid#nxentry-entry-identifier-uuid-field). -PJ says that BlueSky uses UUIDs for each measurement, but it could easily be extended to IDs for anything else. -Can be useful for tracing issues, such as using detector serial numbers to find correlations of hardware with bad results. -AB says that UUIDs are 16-digit values so it might not be practical in some cases. - -SB asks about NXgeometry, which is deprecated in favour of NXtransformations. NXgeometry seems like it would be useful to describe shapes, which NXtransformation doesn't do. -PJ says it would be good to ask on the mailing list - -SB discusses the NeXus ontology. The ontology is currently flattening everything and doesn't describe any inheritance. Extension terms from the ADefs are back-ported to the base classes, which makes them huge. The flattening then causes the terms from the ADefs lose some context. Instead of flattening the ontology, we could create further entities to make a more heirarchal ontology. -PJ would like to see this as a PR and github issue to that others can see the discussion. - -SB says that he has never seen NXint32 being used. PJ suggests that it might be from back in the HDF4 days. BW says that MK probably knows more detail. -SB asks if it is appropriate for NeXus to be getting into the representation of the numbers that make up the data. -PJ says that this is an artefact of NeXus being strongly coupled to HDF5 and whatever backends we support. -AB reminds us that there is some interest in XML/NeXus, especially from people wanting to keep crystallography data in text-based databases. -BW says that NeXus is tied by our limited resources - we have no philosophical objection to further container formats, but we lack resources to support enough tools to make further container formats "official". -SB had heard of wishes for formats like JSON or YAML. PJ replies that the issue is being able to express attributes in such formats - we would need to make some adhoc way to extend the format. -BW my experience is that people wanting to be able to inspect data files with text editors have very simple files. Once NeXus starts adding lots of metadata, those files start looking much more messy and not so attractive any more. - -AB asks if the NIAC will be online? BW replies that it is hybrid so people can join in person or online. BW encourages everyone to register (even if joining online) so that he can have advanced notice of what resources are needed. - -AB points out a feature in ImageCIF called "equipment_component" that he has been using in NXmx that he had assumed might be generally in NeXus already, but it looks like it isn't. Is it useful for others? PJ says "yes" and gives an example with defining the geometry of an ad hoc diffractometer. -AB says that DIALS produces a detector model that is heirarchical, so that you get a set of transformations for each component. AB will write it up so that it can be discussed in the NIAC. - -AB talked about the [estimated time](issue #1143) at the ACA meeting and there was strong agreement the fields should be kept as "required". -SB had similar issues that it would be useful to have something between "required" and "optional", namely "reccommended". "reccommended" would be be treated as "optional" by a validator, except that it would give a warning if missing. - -Since we have the NIAC in mid-September, BW will run a [poll for a next telco in October](https://strawpoll.com/polls/NMnQBOYjdg6). - - diff --git a/content/Telco_20221026.md b/content/Telco_20221026.md deleted file mode 100644 index 52062a37..00000000 --- a/content/Telco_20221026.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Telco 20221026 -permalink: Telco_20221026.html -layout: wiki ---- - -Date ----- - -Wednesday, 26th October, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://psich.zoom.us/j/67122081089?pwd=RkpvTEo5NFYrRVd3ZDJ4VmhRbExvUT09](https://psich.zoom.us/j/67122081089?pwd=RkpvTEo5NFYrRVd3ZDJ4VmhRbExvUT09) -* Meeting ID: 671 2208 1089 -* Passcode: nexus - -Agenda ------- - -* Welcome guests and new members -* Discuss how NeXus operates and answer questions from LNLS synchrotron in Brazil -* Review previous meeting minutes and actions: [August Telco](Telco_20220824.md) -* Review the [NIAC meeting](https://www.nexusformat.org/NIAC2022.html) -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- - - -Minutes -------- - -* Welcome guests and new members - New members: - * Balazs Bago, ELI-ALPS - * Tom Caswell, NSLSII - - LNLS guests - -* Discuss how NeXus operates and answer questions from LNLS synchrotron in Brazil - * How to add new definitions (e.g. IR beamline)? - nyaml2nxdl (https://github.com/nomad-coe/nomad-parser-nexus) - - * How can NeXus be compatible to DAQ (field names)? - a) create NeXus master file and use multiple files if needed via hdf5 links - b) 3-slider intro: https://anl.box.com/s/cbaohim9nhnmmy0a3lwsd963if01z641 - c) standardized names allows interoperability, but - d) any other data can also be pushed to the data file - - * How NeXus can be compatible to cataloguing solutions, like SciCAT - e.g. ingest feeds data from NeXus to ICat (e.g. using h5py) - only metadata for search is duplicated - - * How to avoid data duplications (metadata stored in NeXus, but also in EPICS archiver) - archiver is for engineers and beamline staff, while NeXus is for scientists and users - - * What NIAC is for? - definitions (application, base, contributed) - validator and tools (C and python for hdf5) - - * Is it possible to deal with multi-dimensional datasets, like time resolved 5D datasets? - yes, in the contributed definitions MPES (https://fairmat-experimental.github.io/nexus-fairmat-proposal/), we easily work with 6 dimensions. H5Web (https://h5web.panosc.eu/) can be used to display 2D slides and use sliders to walk through the full datasets - - * SIRIUS status - SIRIUS is using hdf5 and some harminisation between beamlines just started. Next step can be the adaptation of NeXus base classes wherever applicable and then adding new ones if needed. Similarly Application Definitions can be used. - -* POSTPONED Items: - * Review previous meeting minutes and actions: August Telco - * Review the NIAC meeting - * Recent issues on Github (especially those labelled with “telco”) - * definitions - * code - -November Telco --------------- - -Please help to choose the date by responding to the poll by November 10th (https://doodle.com/meeting/participate/id/bk8wg7Jd). We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20221202.md b/content/Telco_20221202.md deleted file mode 100644 index e5c354d5..00000000 --- a/content/Telco_20221202.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Telco 20221202 -permalink: Telco_20221202.html -layout: wiki ---- - -Date ----- - -Friday, 2nd December, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) -* Contributed definitions - -Present -------- - -RB, LG, PJ, AB, CP, BW, RO, MK, BB, TC, CZ, SB (+PM) - -Minutes -------- - -* XPCS [https://github.com/nexusformat/definitions/issues/1007](https://github.com/nexusformat/definitions/issues/1007) - January Telco will have a special session on XPCS whith the community also invited - -* Documentation versioning [https://github.com/nexusformat/definitions/issues/1228](https://github.com/nexusformat/definitions/issues/1228) - PJ: - - it would be nice to select the release/version in the documentation - - number of github commit steps after the release could be added - - link to issue [https://github.com/nexusformat/definitions/issues/1021](https://github.com/nexusformat/definitions/issues/1021) - - AB: - a cleaner ID would be better than github commit - - TC: - 7 digit commit hash could be enough - - RO: - everything commited is official - - BW: - we should only consider only tagged releases being official - - PJ: - releases normally after a codecamp and NIAC meeting, but can be done on request - - AB: - We could do one now! - - The consensus of the discussion is documented in the issues. - -* Contributed definitions - AB: Would we need cleaning here? Proactivly, NIAC could reach out to authors of old definitions if the definitions should be promoted to be offical. - - CZ: - A quick update on the file NXsnsevent.nxdl.xml: it is still being used by ISIS, HFIR, and SNS. Please DO NOT remove/deprecate it. Pete, thanks for suggesting the ratification of this def file. It would be great if we can move it to the application folder. - - AB: issues should recored how and why and by whom contributed definitions are committed. See issue [https://github.com/nexusformat/definitions/issues/1229](https://github.com/nexusformat/definitions/issues/1229). - - -January Telco -------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/bq70jxRe) by December 15th. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! - diff --git a/content/Telco_20230119.md b/content/Telco_20230119.md deleted file mode 100644 index cb9a1e69..00000000 --- a/content/Telco_20230119.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Telco 20230119 -permalink: Telco_20230119.html -layout: wiki ---- - -Date ----- - -Thursday, 19nd January, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - -* XPCS Community Discussion -* Ontology -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- - -AB, SB PC, PJ, SN, BB, BW, CZ, HG, JW, LG, PM, WdN, AndiBarbour - -Minutes -------- - -* XPCS: [https://github.com/nexusformat/definitions/issues/1007](https://github.com/nexusformat/definitions/issues/1007) -Fundamental problem: -Let us have 2 optional fields. How to express in NeXus that at least one of them should be provided? Another [discussion](https://github.com/nexusformat/definitions/issues/1002) was also initiated on this topic (see [also](https://github.com/nexusformat/definitions/issues/1045), and [also](https://github.com/nexusformat/definitions/issues/1064)) showing how it can be solved by using the constract "choice". Another suggestion was to allow logical expressions on cardinality (optional/required/minOccurs/maxOccurs), similar to that of [suggested for symbol tables](https://github.com/nexusformat/definitions/issues/1084). -For the moment, the suggestion is: -1) leave both fields optional -2) use docstrinng to explain the optional/required condition, and -3) use an enums field where it can be chose which data field is provided -An example for this: -NXmx/ENTRY/INSTRUMENT/BEAM/flux-attribute: enum choices -> This can be useful solution also for NXxpcs/ENTRY/data/g2-field -One should use a list of defined enum keys (or apply "open enumeration" with adding the new enum key to the defined list in contributed case ASAP. -new Issue on: evaluating the use of 'union' in NXDL (https://github.com/nexusformat/definitions/issues/1232) - -* For issue [1004](https://github.com/nexusformat/definitions/issues/1004) -Note that the already connected [discussions](https://github.com/nexusformat/definitions/issues/1043) clarified the scopes: -scan number (deprecated): e.g. spec (no unique ID) -entry_identifier( required): external ID -entry_identifier_uuid (optional): unique ID - -* For issue [1005](https://github.com/nexusformat/definitions/issues/1005) and [1006](https://github.com/nexusformat/definitions/issues/1006) -nothing to discuss here. - -* [Ontology v2](https://github.com/nexusformat/NIAC/issues/136) -Discussions started on the PR for v2, but also questions popped up which require clarifications. -Issues shall be created for them: -* Same names for different type of children of the same(?) concept (Definition/Group/Field) -NXentry/thumbnail/type-attribute is defined in NXentry, but NXentry/thumbnail-group is referencing NXnote where NXnote/type-field is already defined (for the same purpose). Note that a machine can easily distinguish between them and the NeXus Vocabulary is already prepared for handling such cases by using a clarification postfix (as above), but are they intentionally implement two separated concepts under the same name? -Should it be really supported? -Similar, but intentional: -NXentry/SAMPLE/sample_histrory-group may be defined as NXnote for a generic use, but NXellipsometry/ENTRY/SAMPLE/sample_hisotry-filed may be defined as NX_CHAR for simplicity. -Is it OK? -Note another intentional, but controversial use case: The NeXus convention on scanning says that a Field of an NX_NUMBER dataset can be replaced by an NXlog Group with the same name if the values supposed to be stored with timestamps. What happens if this group name is already defined as another concept, so the application of a generic concept leads to a contradiction? -> Normally, it is acceptable to have the same (short) name for different concepts, because they are uniquely identifieable by their (suffixed) full vocabulary name. -Specifically, for the first example [see also](https://github.com/nexusformat/definitions/issues/395): -Depricate and Rename: NXnote/type-field to NXnote/mime_type-field -Depricate: NXentry/thumbnail/type-attribute and use NXentry/thumbnail/mime_type-field instead -[PR 396](https://github.com/nexusformat/definitions/pull/396) to discuss it further - -* [regexp enumerations](https://github.com/nexusformat/definitions/issues/1234) -NXentry/thumbnail/type-attribute is defined with the “Obligatory value: image/*”. Does it mean that it always has to be literaly "image/*” or it only means that its actual value shall start with "image/“? -Is it really an enumeration? -Shall we enable a regexp as enumeration? -> currently - enums only allow exact match -Note that the current implementation is not as intended. [see the xml file](https://github.com/nexusformat/definitions/blob/main/base_classes/NXentry.nxdl.xml) -future: maybe the [use of assert](https://github.com/nexusformat/definitions/issues/1002) or something else - -* [number enumerations](https://github.com/nexusformat/definitions/issues/1235) -In some case enumeration refers to numbers (e.g. NXguide/reflectivity/[surface,wavelength]_indices), but because of enumeration, their data type had to be forced to be NX_CHAR. Although they are now overriding the data type of the referenced(?) concept NXdata/AXISNAME_indices-attribute which is defined as NX_INT. -Note that NXdetector/time_of_flight/axis-attribute (with enumeration value of “3”) is defined as NX_POSINT. -Shall it be the way to go and allow enumeration for other data types, too, although their string value is given in the nxdl definition? - -* [default unit category](https://github.com/nexusformat/definitions/issues/1236) -In some cases our definitions do not specify a unit category (e.g. NXdetector/detector_number-field of NX_INT, NXdetector/bit_depth_readout-field of NX_INT, or even NXcapillary/focal_size-field of NX_FLOAT). -If it is only for convenience, Is there a fallback solution of a default value, like NX_ANY or NX_UNITLESS? The later does apply neither to NXdetector/bit_depth_readout-field, nor to NXcapillary/focal_size-field. -> Or if the given concept (Group/Field/Attribute) is referring to another one (e.g. from a base class as NXmonopd/MONITOR/preset of NX_FLOAT referring to the same(?) concept NXmonitor/preset of NX_NUMBER units=NX_ANY) shall it receive a default unit category, or shall it simply inherit the already defined unit category from the referred concept? - -* [complex unit categories](https://github.com/nexusformat/definitions/issues/1067) -NeXus has already complex unit categories, like NX_MASS_DENSITY, NX_MOLECULAR_WEIGHT, NX_PER_AREA, NX_PER_LENGTH, NX_WAVENUMBER, etc. but others can also be derived using the Unidata’s Udunits convention (see also https://www.unidata.ucar.edu/software/udunits/udunits-2.2.28/udunits2.html). -Is there a way to refer to such units or unit categories? -Is it planed to introduce NX_UDUNITS as unit category, so one can use derived unints according? -Or is it possible to supply a Udunits derivation as a unit category(!) (e.g. units="m/s"), so any compatible units, like "km/h” could be used? - -* [units= vs. units=](https://github.com/nexusformat/definitions/issues/1237) -As an xml tag, units= is used by NXDL to specify unit categories for Fields. units= on the other hand can be used by application definitions to specify enumeration for the dataset attribute @units which specify the actual unit of the data. -It is at least confusing in NeXus that both a unit category specification and a specific unit in a data file use the same plural form “units”. -Was it ever discussed? -Should not it be made clear: “units” for unit categories, and “unit” for the actual unit? - - -ZOOM Chat: ----------- - -- Wout De Nolf (ESRF) to Everyone (19. Jan 2023, 16:09) -Here is the link for the field: https://github.com/nexusformat/definitions/blob/9729b2488acc33aebe53f1865fa6c20615e31be0/base_classes/NXnote.nxdl.xml#L41 -- Benjamin Watts to Everyone (19. Jan 2023, 16:17) -the @type was renamed from @mime_type due to issue #395 -https://github.com/nexusformat/definitions/issues/395 -PeterC had noticed the mistake that we are discussing now, but Tobias misunderstood the issue and didn't make a good fix -- Pete Jemian to Everyone (19. Jan 2023, 16:28) -starts with "image/" -validItemType (in the nxdl.xsd file) is a regex -Paul Millar to Everyone (19. Jan 2023, 16:30) -MIME type is structured, like -type "/" subtype ["+" suffix] *[";" parameter] -Therefore, this constraint is really: - has _type_ "image" -- Pete Jemian to Everyone (19. Jan 2023, 16:32) -This becomes an issue to define clearly how to describe in NXDL. We intend to match a pattern that starts with "image/". Let's build the issue on that. and move on from here today. -- Pete Jemian to Everyone (19. Jan 2023, 16:39) -XML Schema "assert" seems to be a XML v1.1 feature. We use v1.0 so this would be a fundamental change. https://stackoverflow.com/questions/15573894/xml-schema-1-1-not-recognizing-assert-or-assertion -NXcanSAS has a structure which is either Q as vector or Q as scalar. -https://manual.nexusformat.org/classes/applications/NXcanSAS.html#nxcansas-entry-data-q-field -Wout De Nolf (ESRF) to Everyone (19. Jan 2023, 16:42) -https://manual.nexusformat.org/classes/applications/NXmx.html#nxmx-entry-instrument-beam-flux-attribute -@flux can have "flux", "total_flux", "flux_integrated", or "total_flux_integrated". -all these are optional fields -- Aaron Brewster to Everyone (19. Jan 2023, 16:45) -I have to start walking to my next meeting but I’ll be listening in on my phone -- Balazs Bago to Everyone (19. Jan 2023, 16:48) -I have to leave, Good Bye! -- Luca Gelisio (EuXFEL) to Everyone (19. Jan 2023, 16:49) -Dumb question: What about 'other'? The other two formats are well defined, but this? -- Paul Millar to Everyone (19. Jan 2023, 16:58) -Heike, we can organise a meeting of XPCS people. There's certainly multiple RIs interested in XPCS within DAPHNE. -- iPhone t (19. Jan 2023, 17:01) -Gotta go. @sandor you may want to save the chat log to help with the minutes. Thanks all -- Luca Gelisio (EuXFEL) to Everyone (19. Jan 2023, 17:03) -I agree with Sandor. -- Paul Millar to Everyone (19. Jan 2023, 17:03) -+1 Sandor -Alternatively, allow an open enumeration -Suresh Narayanan to Everyone (19. Jan 2023, 17:05) -Have to go now - - - -Fabruary Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/aQknoq7d) by January 30th. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230213.md b/content/Telco_20230213.md deleted file mode 100644 index 557da3f7..00000000 --- a/content/Telco_20230213.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Telco 20230213 -permalink: Telco_20230213.html -layout: wiki ---- - -Date ----- - -Monday, 13th February, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - -* Pump-Probe experiments (HZB) -* Recent issues on Github (especially those labelled with "telco") - * [definitions](https://github.com/nexusformat/definitions/issues?q=is%3Aopen+is%3Aissue) - * [code](https://github.com/nexusformat/code/issues?q=is%3Aopen+is%3Aissue) - -Present -------- - -SB, HG, PJ, BW, LG, RO, WdN, PC, CZ + Jack Allen (STFC), Sam Tygier(STFC), Christian Schussler(HZB) - -Minutes -------- - -* Pump-Probe experiments (HZB) -Setup: pump Laser + xray probe @3kHz with adjustable delay times -Detector: raw data -> 6-15 paralell on-the-fly processing algorithm (logged as different channels) -BW: NeXus is felxible and allows several ways to store data, but the labels should reflect the meaning properly. 2 solutions in Application Definitions: -a) define modes and label the data chanles with it -b) define different Fields for different operations -SB: can help HG with AppDef development - -* Tomography (ISIS) - * After processing(!): 3D array of attenuation values -They are floatingpoint numbers, so instead of NX_INT, NX_FLOAT would be better for storing them -SB: NX_NUMBER? -PJ: +1 -PC: +1 -Solution: apply modification in the next Code-CAMP following a PR - * imaging data (projections) -some processing (e.g. cropping) results could also be stored in the same structure. -RO: we have NXprocess for such purpose -RO: one can store big data in different files which may not be shipped -Conclusion: processing results shall be stored separately, but their structure can be similar to that of the raw data. - * NXtomo_proc/DATA/data: required attributes @offset, @scaling, @transformation, but what are they? -SB: documentation is important, NIAC shall not accept poor definition files -SB: NXdata base class also has offset and scaling_factor Fields -BW: MK added @offset, @scaling, @transformation without documentation in the nxdl file, but refferrng to 2010 NIAC. See: -[minutes of 2010 NIAC](https://github.com/nexusformat/wiki/blob/master/content/NIAC2010.md) and -[all NIAC meetings](https://www.nexusformat.org/NIAC.html) and -[specific details of 2010 NIAC](http://lns00.psi.ch/nexus2010/) -PJ: it seems it was used for something like NXtransformations now, but documentation in the nxdl files is necessary for proper understanding -SB action point for Code-CAMP: check the original intent and review (maybe depricate it) - -* NeXus Features -PJ: are they part of the standard? -SB: No, this proposal was welcomed by NIAC and some examples were provided, but NIAC never accepted them in form to be officially maintained. Note that NXentry has a reserved field 'features' for being able to refer to them. -SB: symbols require math which shall be supported and JS was chosen for first prototype implementation as JS engines provide secure sandbox runtime environment. Similar can also be achived by python wasm and other techniques, and it woud be great to be able to store machine-interpretable formulas/algortihms/codes attached to NeXus definitions and data. Note that this is also the primary aim of the Features. -HG: It would be great to be able to support such features supporting FAIR data pipelines. - -* Topics for next meeting: - * NXdata: @axes vs. @AXISNAME_indices [see the issue](https://github.com/nexusformat/definitions/issues/1212) - * CodeCamp: when to organise the next one? - - - - -March Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/az6or7ra) by Feb 28. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230314.md b/content/Telco_20230314.md deleted file mode 100644 index 5240a866..00000000 --- a/content/Telco_20230314.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Telco 20230314 -permalink: Telco_20230314.html -layout: wiki ---- - -Date ----- - -Tuesday, 14th March, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - * CodeCamp - * issues - -Present -------- - -SB, AB, HB, HG, MK, PM, PJ, RO, RB, WdN - -Minutes -------- - -* Codecamp -Agreed period: end of June, 2023 - -* General requirements for changing definitions: - * modification in Base Classes or Application Definitions which affect reading and writing files: vote is needed - * fixing documentation or bugs: PR and review is needed -anyone can issue a PR, but it is suggested to -work in a small groups (with domain experts) - - -* AB: Topic suggested by Dectris - [PR #1246](https://github.com/nexusformat/definitions/pull/1246) -NX_CHAR_OR_NUMBER to be used for NXdata/AXISNAME -NX_CHAR_OR_NUMBER NX_CHAR, NX_NUMBER - * MK: make labels separate from NUMBER typed AXISNAME, -e.g. AXISNAME@index_labels(NX_CHAR): array of NX_CHAR labels - * RO: one shall demonstrate how to use it (e.g matplotlib) - * SB: nxpy, H5web? - others plotting applications - * AB/PJ: going with MK we do not break the standard - * Conclusion: AB will be taking it back to Dectris for further discussion, to see if indirection is acceptable. - -* AB: [#940](https://github.com/nexusformat/definitions/issues/940) -threshold_1_channel(NXdetector_channel) -threshold_energy -is it generic enough? - -* PM: [#1247](https://github.com/nexusformat/definitions/issues/1247) -discussion deferred until next time. - -* WdN [#1212](https://github.com/nexusformat/definitions/issues/1212) -WdN: presented ambiguities around the interpretation of NXdata/@AXISNAME_indices - * Use Case 1: -axes=[[xp,xq],y,[z,time]] referreing to a 3D dataset -where the 1st axis can be labeled by both xp, and xq, the second by y, and the 3rd by both z and time. - * Use Case 2: -axes=[x,y,z] -x_indices=0,1 (x is a 2D array to specify x for each column along z) -y_indices=0,1 (y is a 2D array...) -from this one can do a 2D plot for each slice along z where the z values at (i,j) are ploted at the position (x(i,j),y(i,j)). - * Note that documentation says that the size of axes “must must” be the same as the rank of the signal array, which must be a bug. - * MK: maybe axes could be an array of lists (as demonstrated above) to make it clear and then we do not even need AXISNAME_indices - * RO: these are around for a while, but is there anyone who are using them? - * AB: proposal for Wout to take the discussion and make a PR that is what he thinks is the best approach. We'll use that as a discussion point for next time. - -* PM [#412](https://github.com/nexusformat/definitions/issues/412) -Documentation for NXdetector should be cleaned and updated - - - -April Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/elRzQVlb) by March 30. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230419.md b/content/Telco_20230419.md deleted file mode 100644 index d24ff58a..00000000 --- a/content/Telco_20230419.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Telco 20230419 -permalink: Telco_20230419.html -layout: wiki ---- - -Date ----- - -Wednesday, 19th April, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - * CodeCamp - * issues - -Present -------- - -SB, AB, CP, HM, RO, DMcR, MK, PM, PJ, RB, TC, WdN, BB, BW, HG, CZ, TM, and Matthew Newille(APS) - -Minutes -------- - -* Codecamp -Agreed period: June 15-16 & 20-21, 2023 - -* XAS.  From Ray: "Your concerns do however suggest that we need to find a way to identify which category best describes a particular application definition, perhaps by providing some provenance information or defining a maintainer. I can only attend the first half hour tomorrow, but I believe this is something well worth discussing." https://github.com/nexusformat/definitions/issues/1011 - * BW: XAS experiments are also using https://manual.nexusformat.org/classes/applications/NXstxm.html#nxstxm, but NXxas is not in a good shape - * HG/PM: EXAFS would also be happy to build on top of NXxas - * BW: flexible sample and detection systems are required,although the main structure is always similar - * MN: EXAFS standards and dataformats exist on top of hdf5. NeXus is pushed but proper support is still needed. - * RO: NX started with instrument and data collection description, but then AppDef arrived to define interface between data producer and consumer. - * MN: EXAFS would need clear common definitions, like monochromator d spacing, etc. RAW data is nice to have, but calibrated is even more important. What can be stored in Nexus - * SB: both, it depends on the community. See analogy with NXmonopd. - * BW: we can use immediately base classes e.g. NXdetector - * RO: multiple AppDef can de satisfied by a single file or an AppDef and other base classes - * MN: What kind of definitions are supplied by NeXus? - * BW: NXdetector is already for multi-dim detectors, and can be used (if needed also extended) Ideas can be taken from NXstxm. - * AB: You can propose new definitions so we can review and vote on it. - * RO: we could define maintainers for all AppDefs - * AB: Great! Main (NIAC) contacts can be added to the - * MN: maybe IUcR representative? - * PJ: technical contacts and follow how much the community is using the definitions. - * PM: also data analysis developers could be in the loop. - * AB: deprecation should be done VERY carefully. - * RO: APS and FAIR requirements with NeXus - * BW: what is the timeline for XAS? - * MN: do it right rather than quick. - -* Get status on NXdata: improve documentation regarding axes https://github.com/nexusformat/definitions/pull/1213 - * WdN: AXISNAME_INDICES - is it a scalar or an array? - * WdN: AXISNAME - what is its dimension should be? Is it 1D array or not? - * RO: how to plot it? - * WdN: ESRF implemented it with matplotlib - * SB: use xarrays - https://docs.xarray.dev/en/stable/examples/multidimensional-coords.html - * TC: non-regular gidding shall be supported. - * BW: recording must be supported. visualisation is secondary. - NXdata: data vs.plot?! (RO: data, but with a sensible look on it) - * PJ: NXcanSAS: use of multi-dimensional axis array (e.g. at Diamond I22) - * RO: **make a session on the code-camp** - * AB: the PR could have a py plotting code included - - -May Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/eZzrOzge) by April 30. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230524.md b/content/Telco_20230524.md deleted file mode 100644 index 7e838fa5..00000000 --- a/content/Telco_20230524.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Telco 20230524 -permalink: Telco_20230524.html -layout: wiki ---- - -Date ----- - -Wednesday, 24th May, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - * CodeCamp - * Next NIAC - * https://github.com/nexusformat/definitions/pull/1262 - * https://github.com/nexusformat/definitions/pull/1255 - * https://github.com/nexusformat/definitions/issues/1248 - - -Present -------- - -SB, AB, RB, CZ, HB, PC, BB, PM, BW, Paulo Mausbach - -Minutes -------- - -* Codecamp -Agreed period: June 15-16 & 20-21, 2023 -Info: [Code Camp June 2023](CodeCampJune2023.html) - -* Next NIAC -2024 with NOBUGS at ESRF - -* https://github.com/nexusformat/definitions/pull/1262 -AB: bit_depth of image as metadat to be added -HB: proposal in 2012 for adding all datatype info as metadata (not only as hdf property) -PM: what to do if duplicated info (NeXus metadata vs. hdf metadata) has mismatch? -AB: raise error -BW: it was not a problem for long time, so if problem does not come, we could just use the system as it is now. -NeXus as container agnostic solution, we could add. -SB: let introduce it to the base class NXdetector -AB: let us vote for it in June -SB: if data type needs to be registered (signed, unsigned, big/little endin, 8/16/32/... bit etc.), also multi dimensional slow/fast axes needs to be specified. Do we suggest it for any Field, Attribute? -AB: here we focus on NXdetector, where a single new property would be just enough for now. - -* https://github.com/nexusformat/definitions/pull/1255 -SB: electron beam? -PM: electron gun -HB: kathode-ray tube -BW: Electron Microscope should be just fine -AB: SB is in charge to call for a meeting of the EM community before the CC in June. - -* https://github.com/nexusformat/definitions/issues/1248 -Paulo: how can NXmx have SOURCE inside ENTRY if it NXentry does not allow if, but only INSTRUMENT which on the other hand does allow SOURCE -SB: base classes only define optional elements, but Application definitions can extend them -HB: structure shall not code information, but rather any information shall be on the same level. -AB: actually soft-linking solves this problem. The same information can be referenced by both ENTRY/SOURCE and ENTRY/INSTRUMENT/SOURCE. - -July Telco --------------- - -Please help to [choose the date by responding to the poll]() by . We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230724.md b/content/Telco_20230724.md deleted file mode 100644 index 42dcb467..00000000 --- a/content/Telco_20230724.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Telco 20230724 -permalink: Telco_20230724.html -layout: wiki ---- - -Date ----- - -Monday, 24th July, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - * CodeCamp - - -Present -------- - -AB, - -Minutes -------- - -* Codecamp -Agreed period: June 15-16 & 20-21, 2023 -Info: [Code Camp June 2023](CodeCampJune2023.html) - - -Aug Telco --------------- - -Please help to [choose the date by responding to the poll]() by . We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230814.md b/content/Telco_20230814.md deleted file mode 100644 index c566aa67..00000000 --- a/content/Telco_20230814.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Telco 20230814 -permalink: Telco_20230814.html -layout: wiki ---- - -Date ----- - -Monday, 14th August, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - - -Present -------- - -AB, SB, PC, CZ, LG, HG, PM, BW, RO, TM -(wrong time zone: PJ) - -Minutes -------- - -* Remote Voting: -The proposal has been discussed and a revised formulation is committed. - -* Invitations: - AB: - - mailing lists must be updated (responsible: AB) - - invitations should contain a calendar invite (to avoid time zone issues) (responsible: SB) - -* AOB: - - PM: DESY is planning to set up a NeXus Support Group - - PC: at Diamond there is already a Technical WG and a Steering WG - - - - -Sept Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/dyXWL3zb) by Aug 31. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20230920.md b/content/Telco_20230920.md deleted file mode 100644 index 96dca93f..00000000 --- a/content/Telco_20230920.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Telco 20230920 -permalink: Telco_20230920.html -layout: wiki ---- - -Date ----- - -Monday, 20th September, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - - -Present -------- - -HB, PC, CZ, BB, LG, AB, SB, PM, WdN - - - -Minutes -------- - -* https://github.com/nexusformat/definitions/pull/1312 -accepted as bugfix - -* https://github.com/nexusformat/definitions/issues/1310 -AB: recommendation should be clear and we should add code snippets to help the community -PM: are test cases available? -SB: yes, we have prepared test cases and code snippets what we can share. - -* https://github.com/nexusformat/definitions/pull/1246 -AB: Detector Channel, @default_slice is added -WdN: detector channel can be auxiliary_signal -AB: channel is more than a simple auxiliary_signal as it has additional metadata -HB: Is VDS assumed to be supported? If so, old hdf5 libs (<1.10) should be deprecated. It should be a separate issue to be voted on. -SB: NeXus does not expect officially hdf5 as a backend, but we could recommend a min version of hdf5 if it is used. -LG: NeXus is a data format and not a file format -AB: Yes, but we can give examples on how to write a file using hdf5 -SB: NXdata is independent of NXdetector, but NXdetector/plot[NXdata] can be specialised to use channels as auxiliary_signals if needed. -AB: Let us call in Dectris, and discuss it with them next week - - - -Oct Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/aM1OMg1a) by Oct 6. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20231019.md b/content/Telco_20231019.md deleted file mode 100644 index b3013c29..00000000 --- a/content/Telco_20231019.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Telco 20231019 -permalink: Telco_20231019.html -layout: wiki ---- - -Date ----- - -Thursday, 19th October, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* NIAC 2024 -* issues - -Present -------- -HB, WdN, AB, SB, PC, HG, BW, LG, BB, CZ, RO - - -Minutes -------- -* 2024 NIAC with NOBUGS at ESRF for 2 days https://indico.esrf.fr/event/114/ -* https://github.com/nexusformat/definitions/pull/1246 -AB: default_slice NX_CHAR_OR_NUMBER -* https://github.com/nexusformat/definitions/pull/1039 -reviewed quiickly, some suggestions added -* https://github.com/nexusformat/definitions/pull/1213 -(https://github.com/nexusformat/definitions/pull/1213#issuecomment-1600934279) - * AB: only change in documentation, no vote is needed - * WdN: merge it first - * AB: let us review it by the sub-committee (WdN, AB, RO, SB and HB). - * BW: further reviews are welcome - * AB: by Nov 2 -* https://github.com/nexusformat/definitions/pull/1303 - * AB: NIAC role icludes ontology, validator, example - * PC: pyprojecxt.toml might be too much - * AB: agreed to remove it; important to keep scope clear - * AB: extra note: nxdl is our contract; it must stay the single source of truth; nyaml and nxdl shall not coexists - * HG: nyaml is a nice a needed option - * SB: pyproject.toml can be removed as requested -* https://github.com/nexusformat/definitions/pull/1272 -AB: close this as 1303 is covering that, too -* https://github.com/nexusformat/definitions/pull/1282 -SB: covered by 1303 - - -Nov Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/bD0W8Gqb) by Nov 6. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20231121.md b/content/Telco_20231121.md deleted file mode 100644 index 0403e03b..00000000 --- a/content/Telco_20231121.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Telco 20231121 -permalink: Telco_20231121.html -layout: wiki ---- - -Date ----- - -Tuesday, 21st November, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* NIAC 2024/NOBUGS -* issues - -Present -------- -HB, AB, SB, MK, CZ, RB, TM, BW, HG, TC, MO, BB, CP, WdN, PJ, PM - -Minutes -------- -* NIAC 2024/NOBUGS -Sep 23-27, 2024 - ESRF -3 (or maybe even 4) continuous days before or after NOBUGS -* https://github.com/nexusformat/NIAC/issues/143 -voted with 14 yes (2 weeks waiting starts) -* https://github.com/nexusformat/definitions/pull/1246 -merge conflict to be resolved in NXdata -* https://github.com/nexusformat/definitions/pull/1252 -merge conflict to be resolved in NXdata -* NXmx gain discussion: - * AB: SACLA wants to use NXmx with a special gain calibration method which does not fit to the currently described way (see issue #711) - * WdN: scaling factor to support the requested function is defined in NXdata - * BW: offset first vs. scaling first? - * HB: more exact definitions needed which include equation for clarity - * BW: another alternative: NXdetector/acquisition_mode [decimated] -* https://github.com/nexusformat/definitions/pull/1303 -new repo in nexusformat for nyaml and then split the PR into 2 using this dependency -* https://github.com/nexusformat/definitions/pull/1271 -review needs to be finished and then merge it - - -Dec Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/e5l1L0Bd) by Dec 6. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20231220.md b/content/Telco_20231220.md deleted file mode 100644 index 07d86ebe..00000000 --- a/content/Telco_20231220.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Telco 20231220 -permalink: Telco_20231220.html -layout: wiki ---- - -Date ----- - -Wednesday, 20th December, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* issues - -Present -------- -HB, AB, SB, MK, PC, RO, MO, PJ, RB, WdN, LG, BW, PM + Markus Kuehbach (FAIRmat) - -Minutes -------- -* NIAC 2024: Sep 27-30 with early starters from Sep 26. -* feedbacks on new online voting: looked OK and smooth -* Dectris PRs: both #1246, #1252 got voted -* FAIRmat: #1336, #1337 - looks good, after review could go in - * #1271: - * PC: NXaperture_em may should be NXequipment_settings/apertture_em,… - * AB: what about NXcollection? will not NXequipment_setting will be the same? - * BW: indeed, one can put such settings to NXcollection - * WdN: yes, but those settings are validated and are not connected to any NeXus concept - * SB: as a consequence they may easily be stored incoherently and become unsearchable - * MK: AppDef shall not define always new stuff, but reference concepts defined in base classes. - * AB: NXsettings is not supporting the idea of predefined concepts. NXaperture_em can and shall be used in AppDefs - value statements: - * less number of base classes - * appdef shall speciaise base classes - * common specialisation should go back to base classes - * SB: in parctice it result in lots of copy-paste and artificial split of the same concepts, base class inheritance would solved that problem - * AB: agreed -* bugs on contributor list in HTML pages: not all contributors listed - * HB: if recent contributers are listed as contacts, it could be renamed - * RB: new suggestion will come -* PR #1332: clarification on NXdata’s scaling_factor, also in #1333 its relationship with NXdata’s offset is in question - * RO: an example: reciprocal angstrom is scaled to hkl - * MK: NXprocess couls also host such data conversion, but data duplication may not be efficient - * AB: problem is that the definition is ambigous (is it already applied or not) - * RO: yes, ambiguity shall be resolved by cleaner definition -* Formar grammar and Math support in NeXus - * HB: subcommittee would be needed to propose support for Math in NeXus - * AB: formar grammar in contributed defintion shall be OK; further decision shall be made before it goes to AppDef/BaseClasses; subcommittee is to form: FD, BW, PC, HB and resolve the question by NIAC 2024 -* release - * AB: early jan 2024; quality metters - * BW: NXaperture deprecation shall be carefully reviewed - - -Jan Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/aMEOykAa) by Jan 4. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240117.md b/content/Telco_20240117.md deleted file mode 100644 index a7dd727c..00000000 --- a/content/Telco_20240117.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Telco 20240117 -permalink: Telco_20240117.html -layout: wiki ---- - -Date ----- - -Wednesday, 17th January, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* NIAC meeting at ESRF -* release -* issues - -Present -------- -AB, SB, RB, BW, HG, MK, PJ, CZ, BB, PC - -Minutes -------- -* NIAC in Sept -cannot be discussed as WdN is not present -* FAIRmat - - https://github.com/nexusformat/definitions/pull/1336 -we merged it - - https://github.com/nexusformat/definitions/pull/1337 -we merged it - - https://github.com/nexusformat/definitions/pull/1271 -AB does a final check and then merge it -* scaling_factor in NXmx: -add _scaling_factor and _offset as postfixes to any Fields -decision: vote and implementation in documentation are needed -* units -https://github.com/nexusformat/definitions/pull/1325 -OpenPMD uses defined list of dimensions and a vector for their actual - - SB: mice to build custom units, but is it following any standard - - CP: not really human readability and missing things like ANGLE - - MK: other unit categories are also missing - - BW: outcome is that it is interesting, but it should be made universal -* release: - - https://github.com/nexusformat/definitions/issues/1231 - - NXaperture vs. NXslit - - MK: NXslit is for simple 2-blades slits, but NXaperture is for more complex geometries (to be used with NXoff_geometry as SHAPE) - - PJ: whenever we want to deprecate or undeprecate something, it shall be extremely well explained why we do so - - MK: undeprecate NXaperture and make the documentation clear, so it can be properly used. - - After voting for this and merging 1271, we can do the relase - - - - -Feb Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/ergEvJka) by Feb 4th. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240214.md b/content/Telco_20240214.md deleted file mode 100644 index d5866953..00000000 --- a/content/Telco_20240214.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Telco 20240214 -permalink: Telco_20240214.html -layout: wiki ---- - -Date ----- - -Wednesday, 14th February, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* NIAC meeting at ESRF -* release -* issues - -Present -------- -SB, HB, WdN, TC, CZ, PJ, FS, PC, MK, BB, TM, RO, PM, HG, RO - -Minutes -------- - -* release - PC summarised and announced the new NeXus release 2024.02 - -* NIAC Meeting - WdN: NIAC meeting is in place, no problem with having access to the rooms on the week-end - - in person participation is indicated by 7 people from the call - - 3 persons requested remote access - - formal invitation letter is requested by US participants - -* topics for the meeting - - SB: FAIRmat (standardisation of NXmpes, NXellipsometry…) - - PM: Sample Environment workgroup SECoP@HMC, Liquid Reflectometry - - WdN: NXstress (https://github.com/nexusformat/definitions/pull/1039) for stress-strain analysis, and NXxas review (ongoing effort in XAS working group) - - HG: NeXus Ontology (PR for v2 should use and reference the official NeXus repo) - -* NXtransformations - - SB: extending NXtransformation to be able to cover more than just translation and rotation, e.g. a matrix for generic base change - - HB: yes, we need a “general” transformation as it is called and supported in CIF. Note that it should also be open for more dimensions - - MK: non-orthogonal axis can be defined using factors. - -* NeXus Ontology - - PM: connection between NeXus and PaNet ontologies and to other ontologies is initiated at ESRF. Implementation uses rule based classification methods (e.g. if theta_max is smaller than xxx than it is SAX experiment) - - SB: we also work on references to ISO standards and ontology terms, but only in doc strings yet. - - HG: PID could also be put somewhere - - HB: reference-list should be added explicitly in definitions - - SB: NXDL could be extended to be able to describe such reference list - - -March Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/b4WyzZna) by Feb 29. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240311.md b/content/Telco_20240311.md deleted file mode 100644 index c0926e63..00000000 --- a/content/Telco_20240311.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Telco 20240311 -permalink: Telco_20240311.html -layout: wiki ---- - -Date ----- - -Monday, 11th March, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* NIAC meeting at ESRF -* issues - -Present -------- -AB, - -Minutes -------- -- NIAC 2024 -During the meeting, ensure people that are remote are notified that a vote is coming. Need time for offline people to digest proposals before votes. -Use plenary vs working sessions, multiple of each per day -- NeXus front page says next meeting is code camp 2023 -- Reviewed schema bugfixes in https://github.com/nexusformat/definitions/pull/1370 - - PM: sidestep by setting up a different way of specifying examples (nxdl namespace for example). - - PJ: this is about how to provide examples of unit types in the nexus schema. Each unit type needs an example to avoid confusionRevisit discussion of general -- NXtransformations - - AB: NXtransformations that are rotations are full basis transformations: rotation + the vector offsetHJB: non-problem, as transformation type can be omitted, for "general" basis definitions like gravity - - PM: is there an example with the current NXtransformations are insufficient? -- PM: upcoming EU funding may be available from a broad project that includes photons/neutrons. - - There are open calls for 1-2 year projects, 1 FTE. - - We could apply for some funding to update toolage. - - Call in spring (opens this friday) and sept. - - AB: remember what the NIAC is: specs, docs/examples/validator. Maybe validator help would be useful? - - MK: cnxvalidate could use an update? Should we have a reimplementation in python? - - AB: Touch base with Ray for some NeXpy support? - - PM: will think and maybe bring a proposal back - - HB: include h5py if working on NeXpy - - PM: looking for a library that exposes base class as python types - - PJ: punx has this (AB to what extent?): https://github.com/prjemian/punx - - RB: has a nxstixm file validator: https://github.com/RussBerg/nxstxm_validator - - RB: has code for autogenerating NeXus files - - -April Telco --------------- - -Please help to [choose the date by responding to the poll]() by . We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240415.md b/content/Telco_20240415.md deleted file mode 100644 index 41c06868..00000000 --- a/content/Telco_20240415.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Telco 20240415 -permalink: Telco_20240415.html -layout: wiki ---- - -Date ----- - -Monday, 15th April, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* issues - -Present -------- -SB, AB, PM, WdN, PC, BW, LG, PJ,, HG, RO, BB, CZ, FS, HB + FAIRmat: Markus Kuehbach, Florian Dobener - -Minutes -------- -- NIAC Conf: registration is needed for on site attendance, zoom attendance will be offered - https://indico.esrf.fr/event/114/ -https://indico.esrf.fr/event/114/page/27-satellite-meetings - -- Calls and External fundings - - PM: OSCARS calls (https://oscars-project.eu/) - potential topic: NeXus libraries, and software environment. Anyone to go with it? - - PM: webinars: call is open - - SB: OSCARS also for NeXus Ontology - - RO: funding for nexpy is also coming in the Summer. Another topic: use of HSDS for cloud storage (IRI is also addressing that. see https://science.osti.gov/-/media/ascr/ascac/pdf/meetings/202306/Brown_IRI_ASCAC_2023206.pdf) - -- SB: NeXus Ontology v2 - - HG: it would be great if ESRF could test it - - WdN: Yes, we shall figure out how to integrate with other ontologies - -- Base Class Inheritance - - SB: base class inheritance would be appreciated using extends= exactly on the same way as for AppDefs. It would help avoiding copy-pasting. 2 examples are shown: NXem_ebsd (specialising NXem_method) and NXdata_mpes (specialising NXdata). Note that although HTML generation accepts is already, tools like, but cnxvalidate shall probably be updated to support it as registered in a previous issue. - - PJ: Note that it is not a real OO inheritance with all common concepts, but rather like java interfaces; - - BW: software tools should also be able to follow the inheritance of the concepts. Is it supported? - - SB: yes, a python code used for the HTML generation is already implementing it and produces the first reference linking - - PM: 3D geometry description is another example to support this move and to help avoiding copy-pasting taht happens around NXtransformations. Note that composition is even more powerful than inheritance. How could we combine it? What about multiple inheritance? - - SB: during composition, we indeed already also “inherit” (auto-copy the interface) and also specialise/extend in one go. Multiple inheritance of interfaces could be great for AppDefs to be used as a comma separated string of AppDef names in NXentry/definition to tell that the given ENTRY implements all those interfaces. - - PJ (chat): Paul, your observation is correct and it was done with intent, to avoid "being" object designed. It's high time to fix that. Part of that design included consideration of multiple inheritance, and its consequences. NIAC was not ready to consider how to handle that in NXDL. - - RO (chat): https://www.nexusformat.org/Objects_or_Interfaces.html - - RO: In 2011 there was an evaluation of going for OO (MK’s presentation in OO problems in NeXus from 2007: https://anl.box.com/s/afnrbx4yujjctnciit4bk5olr64usq6n). Note that the sw implementation does use OO, e.g. for NXdata - - PC (chat): A previous discussion of the NIAC: https://www.nexusformat.org/NIAC2018Minutes.html - - PJ (chat): extends - https://github.com/nexusformat/definitions/blob/main/nxdl.xsd#L237 -The ``extends`` attribute allows this definition to *subclass* from another NXDL, otherwise ``extends="NXobject"`` should be used. - - AB: anybody against this? - - HB: objection against multiple inheritance as it is in C++. This is very problematic! Java style single inheritance would work fine, and also implementations of multiple interfaces as in Java. - - AB: yes, problems are with multiple inheritances also in python. -SB, let us set up a github issue to carry on it! - -- XAS Working Group - - WdN: from XAS working group (https://indico.esrf.fr/event/114/page/27-satellite-meetings) reusable list of enumeration items could be useful - - MK: EM, APM, XPS also having similar problems, solution may be a corresponding base class, like NXabberation - - AB: new base class for these could be an overkill, but a new functionality in NXDL or an xml feature which would support that in NXDL could also be a solution - - HG: what about a reference to external ontology/vocabulary - - PM: it would be good to have a link between enumerations we use in NeXus at different places - -- Promoting Contributed Definitions - - AB: list of contributed definitions to be promoted in Sept should be set. - - 3 member committee to do it for May Telco: SB, BW, PC - - -May Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/bDJYq0xe) by May 3. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240515.md b/content/Telco_20240515.md deleted file mode 100644 index 1e05d8e8..00000000 --- a/content/Telco_20240515.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Telco 20240515 -permalink: Telco_20240515.html -layout: wiki ---- - -Date ----- - -Wednesday, 15th May, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* issues -* contributed defintions - -Present -------- -AB, SB, HB, BW, RB, PJ, WdN, RO, PC, FS, CZ, BB, PM + Arnold Paecklar (ILL) - -Minutes -------- -* NOBUGS - registration is open; NIAC meeting attendence needs registration only for in person participation - - NIAC2024 webpage: AB starts putting it up, WdN will finalise - - schedule: similar to that of 2022 - -* NXstress - https://github.com/nexusformat/definitions/pull/1039 - - WdN: easystress consortium is proposing it: -analysis: diffraction data / ToF / … -> peak fit -> reflection -> strain -> stress (geometry is important) -beam intensity_profile: is specialised NXbeam - - AB/AP: description of the scientific use case - - RO: why peak parameters are inside NXdata - - WdN: plotable, but not necessary has to be NXdata - - SB: please note our coming proposal: https://fairmat-nfdi.github.io/nexus_definitions/classes/contributed_definitions/NXpeak.html#nxpeak - - RO: there is also a convention to map lmfit parameters inside NXprocess - - WdN: fit results for all peaks - - SB: we should talk to see if we can align with our NXpeak. Layout is nice that it does not suggest a group for each peak - - PJ: peak parameters could be described by NXparameters - - SB: NXcollection: it is not validated - - PJ: use NXparameters instead. Note that /NXparameters/term should be TERM (and NX_ANY not NX_CHAR) - - AB: let us set up a PR. Who can review? - - SB: I can represent FAIRmat developpers - -* Contributed definitions - https://github.com/orgs/nexusformat/projects/4/views/1 - - BW: non-fairmat contributions are collected -NXcxi_ptycho: simplistic, but responds to community need -> AB: should go to a PR for standardisation -NXcontainer: does not seem to be able to properly describe the use case -> AB: also with others: let us assign proposers for better book-keeping and be able to assign responsibles and ownership - - SB: FAIRmat deinfitions are collected (2 groups: to be standardised; keep in incubation) -> AB: make a project for those we want to put into the PR for Sept. Let us assign reviewers, so we can prepare the PR early enough. - - -June Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/bDJlL65e) by June 7. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240626.md b/content/Telco_20240626.md deleted file mode 100644 index 8f512eb0..00000000 --- a/content/Telco_20240626.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Telco 20240626 -permalink: Telco_20240626.html -layout: wiki ---- - -Date ----- - -Wednesday, 26th Jun, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* issues -* contributed defintions - -Present -------- -AB, SB, HB, RB, WdN, FS, PC, BW, HG, LG, BB, PM, TM + Arnold Paecklar (ILL) - -Minutes -------- -- NXstress for stress and strain analysis - - WdN: proposal to accept it as contributed - - WdN: for hotel bookings https://indico.esrf.fr/event/114/page/38-practical-information - - AB: ambiguity with having multiple NXnotes shall be guaranteed - - SB: CALIBRATION(NXnote) and notes(NXnote) are OK, only a data item called “notes” will be assigned to “notes”, and all other data objects named differently will be assigned to CALIBRATION and can have calibration_type also attached. - - BW: calibration_type could be enumeration or examples in doc string - -- NIAC2024 - - AB: schedule for sessions is prepared - -* NXdata - - PC: issue #1381 NXdata/AXES can now have multiple axes assigned to the same dimension. Is it OK? - - SB: note that also the order of items in @axes was linked to the dimensions of the DATA. - @AXISNAME_indices are now defining which axes belong to which dimensions. - - PC: we could keep restricting @axes to list the default axes for the DATA, and alternative axes could be collected from @AXISNAME_indices - - AB: let us make a PR so it can be reviewed. - -* standardisation of contributed definitions - - Projects - - AB: Project is organised with issues for each non-FAIRmat contributions (Project#4). Let us take an issue and review them! Issues have been distributed for review… - - Organisation - - AB: Number of base classes and AppDefs are increasing. We need a better organisation rather than having a flat list. AppDef could be according to experiment types - - PM: AppDef organisation according to experiment technique could use categories from PaNET ontology. - - AB: Base Classes are tricky. Maybe according to usage, like from most common to less used. - - PC: general definitions shall be on top, specific ones could be groupped - - PM: maybe tags and filters could be introduced - - HB: we miss keywords as manually curated list of topics foreach the definitions - -* acknowleding fundings - - PM: is funding contribution acknowledged? - - AB: on the webpage we have place for it, but we have not used it a lot - - PM: we could acknowledge FAIRmat for recent contribution - - -July Telco --------------- - -Please help to [choose the date by responding to the poll]() by . We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240717.md b/content/Telco_20240717.md deleted file mode 100644 index 002d0b1e..00000000 --- a/content/Telco_20240717.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Telco 20240717 -permalink: Telco_20240717.html -layout: wiki ---- - -Date ----- - -Wednesday, 17th Jul, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- -* issues -* contributed defintions - -Present -------- -AB, SB, BW, FS, HB, RO, CZ, BB, PM, WdN + Hector Perez (HZB) - -Minutes -------- -* NIAC meeting -Registration deadline for In person participation: Aug 5 - -* non-FAIRmat contributions - - AB: spin-rotator comes as a package with lots of base classes - no ISIS representations - -* PR #1343 - NXdata scaling_factor and offset - - AB: used at SACLA where float data is represented with a factor 10 - - RO: what is not it an attribute - - BW: there is a problem with handling attributes when using external links to a dataset - - AB: let us be able to define separate scaling factors for different fields, so instead of scaling_factor let us use FIELDNAME_scaling_factor - - RO: scaling_factor was originally used in NXlog - - BW: if we rename something, let us first DEPRECATE the old standard (scaling_factor in this case) and introduce the new solution - - RO: is deprecation retrieveable from the xml? - - AB: yes there is an xml tag ‘deprecated=‘ - -* NeXus logo https://github.com/nexusformat/NIAC/issues/145 - - PM: is there a logo with vector graphics and transparency? - - AB: we would need a high-resolution, svg, transparency supported logo, but no new logo shall be created - - RO: old logo was done in bitmap mode - - PM: shall be able to be converted to svg - - BW: there is an svg version already (communications/NeXus_logo.svg) - https://github.com/nexusformat/communications/blob/9c6def935cb083fa0a0a7077fb40a06c5e6ac8f9/NeXusLogo.svg - - RO: yes, but it comes with an unwanted border effect around the characters - - BW: we shall also use consistently the official logo in different web pages. volunteered to prepare the material for a vote on how to clean the situation - -* NXdata/@axes PR#1396 - - WdN: misinterpretation is now corrected in the PR. Note that documentation is also estructured for more clarity. - - RO: note that length of AXISNAME field can be longer than the respective signal dimension by 1 because of using ToF detectors at neutron sources - - RO: also note that AXISNAME_indices if given for axes listed in @axes, they shall match the order in @axes - - BW: in case of contradiction, an error shall be risen - - RO: consistent use of terms axis, coordinate, and dimension is needed - - AB: documentation needs to be easy to read - - WdN: let me prepare a new proposal for the next meeting - https://www.nexusformat.org/2014_axes_and_uncertainties.html - -* FAIRmat proposals - - AB: lets prepare PRs for: - - common base classes - - packages for separate appdefs and corresponding base classes - - SB: exactly, topics are already organised on the Project page - https://github.com/orgs/nexusformat/projects/5/views/1 - - AB: on the Aug meeting, let us allocate - - 20 mins for NXdata - - 70 mins for FAIRmat proposals - - -Aug Telco --------------- - -Please help to [choose the date by responding to the poll](https://doodle.com/meeting/participate/id/aOqlABYd) by Aug 15th. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Telco_20240820.md b/content/Telco_20240820.md deleted file mode 100644 index 8df3dc84..00000000 --- a/content/Telco_20240820.md +++ /dev/null @@ -1,35 +0,0 @@ - ---- -title: Telco 20240820 -permalink: Telco_20240820.html -layout: wiki ---- - -Date ----- - -Tuesday, 20th Aug, 15:00 UTC - - -Connect -------- -* ZOOM VC link: [https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09](https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09) -* Meeting ID: 652 7209 1306 -* Passcode: nexus - -Agenda ------- - - -Present -------- -AB, SB, - -Minutes -------- - - -Sept Telco --------------- - -Please help to [choose the date by responding to the poll]() by XXX. We are planning to hold the telco in the regular slot of UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/content/Teleconferences.md b/content/Teleconferences.md deleted file mode 100644 index 1f2a5192..00000000 --- a/content/Teleconferences.md +++ /dev/null @@ -1,431 +0,0 @@ ---- -title: Teleconferences -permalink: Teleconferences.html -layout: wiki ---- - -These were originally born out of the idea of opening the meetings of the former -Technical Subcommittee to the wider community. All interested parties are welcome. -If you wish to know the date and time in advance, join the -[nexus-tech](https://lists.nexusformat.org/mailman/listinfo/nexus-tech) mailing list. - -Currently we use Zoom as the video conferencing technology, which works reasonably well for everyone. -A new link is generated for each meeting and is published -in the corresponding agenda page below. - -We aim to publish an agenda a few days in advance of the meetings. - -### 2024 - -[Telco 20240820](Telco_20240820.html "wikilink") Tuesday, 20th Aug, 15:00 UTC - -[Telco 20240717](Telco_20240717.html "wikilink") Wednesday, 17th July, 15:00 UTC - -[Telco 20240626](Telco_20240626.html "wikilink") Wednesday, 26th June, 15:00 UTC - -[Telco 20240515](Telco_20240515.html "wikilink") Wednesday, 15th May, 15:00 UTC - -[Telco 20240415](Telco_20240415.html "wikilink") Monday, 15th April, 15:00 UTC - -[Telco 20240311](Telco_20240311.html "wikilink") Monday, 11th March, 15:00 UTC - -[Telco 20240214](Telco_20240214.html "wikilink") Wednesday, 14th February, 15:00 UTC - -[Telco 20240117](Telco_20240117.html "wikilink") Wednesday, 17th January, 15:00 UTC - -### 2023 - -[Telco 20231220](Telco_20231220.html "wikilink") Wednesday, 20th December, 15:00 UTC - -[Telco 20231121](Telco_20231121.html "wikilink") Tuesday, 21st November, 15:00 UTC - -[Telco 20231019](Telco_20231019.html "wikilink") Thursday, 19th October, 15:00 UTC - -[Telco 20230920](Telco_20230920.html "wikilink") Wednesday, 20th September, 15:00 UTC - -[Telco 20230814](Telco_20230814.html "wikilink") Monday, 14th August, 15:00 UTC - -[Telco 20230724](Telco_20230724.html "wikilink") Monday, 24th July, 15:00 UTC - -[Telco 20230524](Telco_20230524.html "wikilink") Wednesday, 24th May, 15:00 UTC - -[Telco 20230419](Telco_20230419.html "wikilink") Wednesday, 19th April, 15:00 UTC - -[Telco 20230314](Telco_20230314.html "wikilink") Tuesday, 14th March, 15:00 UTC - -[Telco 20230213](Telco_20230213.html "wikilink") Monday, 13th February, 15:00 UTC - -[Telco 20230119](Telco_20230119.html "wikilink") Thursday, 19th January, 15:00 UTC - -### 2022 - -[Telco 20221202](Telco_20221202.html "wikilink") Friday, 2nd December, 15:00 UTC - -[Telco 20221026](Telco_20221026.html "wikilink") Wednesday, 26th October, 15:00 UTC - -[Telco 20220824](Telco_20220824.html "wikilink") Wednesday, 24th August, 15:00 UTC - -[Telco 20220707](Telco_20220707.html "wikilink") Thursday, 7th July, 15:00 UTC - -[Telco 20220602](Telco_20220602.html "wikilink") Thursday, 2nd June, 14:00 UTC - -~~[Telco 20220527](Telco_20220527.html "wikilink") Friday, 27th May, 14:00 UTC~~ - -[Telco 20220426](Telco_20220426.html "wikilink") Tuesday, 26th April, 14:00 UTC - -[Telco 20220225](Telco_20220225.html "wikilink") Friday, 25th February, 14:00 UTC - -[Telco 20220131](Telco_20220131.html "wikilink") Monday, 31st January, 14:00 UTC - -### 2021 - -[Telco 20211215](Telco_20211215.html "wikilink") Wednesday, 15th December, 14:00 UTC - -[Telco 20211115](Telco_20211115.html "wikilink") Monday, 15th November, 14:00 UTC - -[Telco 20210915](Telco_20210915.html "wikilink") Wednesday, 15th September, 13:00 UTC - -[Telco 20210728](Telco_20210728.html "wikilink") Wednesday, 28th July, 13:00 UTC - -[Telco 20210628](Telco_20210628.html "wikilink") Wednesday, 28th June, 13:00 UTC - -[Telco 20210505](Telco_20210505.html "wikilink") Wednesday, 5th May, 13:00 UTC - -[Telco 20210303](Telco_20210303.html "wikilink") Wednesday, 3rd March, 14:00 UTC - -[Telco 20210120](Telco_20210120.html "wikilink") Wednesday, 20th January, 14:00 UTC - -### 2020 - -#### December - -[Telco 20201208](Telco_20201208.html "wikilink") Tuesday, 8th December, 14:00 UTC - -#### September - -[Telco 20200930](Telco_20200930.html "wikilink") Wednesday, 30 September, 15:00 CEST (+0200) - -[Telco 20200904](Telco_20200904.html "wikilink") Friday, 4 September, 15:00 CEST (+0200) - -#### July - -[Telco 20200701](Telco_20200701.html "wikilink") Wednesday, 1 July, 15:00 CEST (+0200) - -#### May - -[Telco 20200527](Telco_20200527.html "wikilink") Wednesday, 27 March, 15:00 CEST (+0200) - -#### April - -[Telco 20200424](Telco_20200424.html "wikilink") Friday, 24 March, 15:00 CET (+0100) - -#### March - -[Telco 20200323](Telco_20200323.html "wikilink") Monday, 23 March, 15:00 CET (+0100) - -#### February - -[Telco 20200224](Telco_20200224.html "wikilink") Monday, 24 February, 15:00 CET (+0100) - -### 2019 - -#### December - -[Telco 20191212](Telco_20191212.html "wikilink") Thursday, 12 December, 15:00 CET (+0100) - -#### November - -[Telco 20191107](Telco_20191107.html "wikilink") Thursday, 7 November, 15:00 CET (+0100) - -#### September - -[Telco 20190911](Telco_20190911.html "wikilink") Wednesday, 11 September, 15:00 CEST (+0200) - -#### August - -[Telco 20190812](Telco_20190812.html "wikilink") Monday, 12 August, 15:00 CEST (+0200) - -#### July - -[Telco 20190715](Telco_20190715.html "wikilink") Monday, 15 July, 15:00 CEST (+0200) - -#### June - -[Telco 20190621](Telco_20190621.html "wikilink") Friday, 21 June, 15:00 CEST (+0200) - -#### April - -[Telco 20190424](Telco_20190424.html "wikilink") Wednesday, 24 April, 15:00 CEST (+0200) - -#### March - -[Telco 20190312](Telco_20190312.html "wikilink") Tuesday, 12 March, 15:00 CET (+0100) - -#### February - -[Telco 20190207](Telco_20190207.html "wikilink") Thursday, 7 February, 16:30 CET (+0100) - - - -### 2018 - -#### October - -[Telco 20181015](Telco_20181015.html "wikilink") Monday, 15 October, 16:30 CEST (+0200) - - -#### September - -[Telco 20180926](Telco_20180926.html "wikilink") Wednesday, 26 September, 16:30 CEST (+0200) - -[Telco 20180905](Telco_20180905.html "wikilink") Wednesday, 5 September, 16:30 CEST (+0200) - -#### August - - -[Telco 20180814](Telco_20180814.html "wikilink") Tuesday, 14 August, 16:30 CEST (+0200) - - -#### June - -[Telco 20180619](Telco_20180619.html "wikilink") Tuesday, 19 June, 16:30 CEST (+0200) - - -#### May - -[Telco 20180529](Telco_20180529.html "wikilink") Tuesday, 29 May, 16:30 CEST (+0200) - -[Telco 20180515](Telco_20180515.html "wikilink") Tuesday, 15 May, 16:30 CEST (+0200) - -[Telco 20180502](Telco_20180502.html "wikilink") Wednesday, 2 May, 16:30 CEST (+0200) - - -#### April - -[Telco 20180418](Telco_20180418.html "wikilink") Wednesday, 18 April, 16:30 CEST (+0200) - -[Telco 20180403](Telco_20180403.html "wikilink") Tuesday, 3 April, 16:30 CEST (+0200) - - -#### March - -[Telco 20180313](Telco_20180313.html "wikilink") Tuesday, 13 March, 16:30 CET (+0100) - - -#### February - -[Telco 20180220](Telco_20180220.html "wikilink") Tuesday, 20 February, 16:30 CET (+0100) - - -#### January - -[Telco 20180130](Telco_20180130.html "wikilink") Tuesday, 30 January, 16:30 CET (+0100) - -[Telco 20180116](Telco_20180116.html "wikilink") Tuesday, 16 January, 16:30 CET (+0100) - - -### 2017 - -#### November - -[Telco 20171128](Telco_20171128.html "wikilink") Tuesday, 28 November, 16:30 CET (+0100) - -[Telco 20171107](Telco_20171107.html "wikilink") Tuesday, 7 November, 16:30 CET (+0100) - - -#### October - -[Telco 20171026](Telco_20171026.html "wikilink") Thursday, 26 October, 14:00 BST (+0100) - -[Telco 20171004](Telco_20171004.html "wikilink") Wednesday, 4 October, 16:30 CEST (+0200) - - -#### September - -[Telco 20170912](Telco_20170912.html "wikilink") Tuesday, 12 September, 16:30 CEST (+0200) - - -#### August - -[Telco 20170823](Telco_20170823.html "wikilink") Wednesday, 23 August, 16:30 CEST (+0200) - -[Telco 20170808](Telco_20170808.html "wikilink") Tuesday, 8 August, 16:30 CEST (+0200) - - -#### July - -[Telco 20170725](Telco_20170725.html "wikilink") Tuesday, 25 July, 16:30 CEST (+0200) - -[Telco 20170711](Telco_20170711.html "wikilink") Tuesday, 11 July, 16:30 CEST (+0200) - - -#### June - -[Telco 20170628](Telco_20170628.html "wikilink") Wednesday, 28 June, 16:30 CEST (+0200) - -[Telco 20170607](Telco_20170607.html "wikilink") Wednesday, 7 June, 16:30 CEST (+0200) - - -#### May - -[Telco 20170517](Telco_20170517.html "wikilink") Wednesday, 17 May, 16:30 CEST (+0200) - - -#### April - -[Telco 20170426](Telco_20170426.html "wikilink") Wednesday, 26 April, 16:30 CEST (+0200) - -[Telco 20170405](Telco_20170405.html "wikilink") Wednesday, 5 April, 16:30 CEST (+0200) - - -#### March - -[Telco 20170322](Telco_20170322.html "wikilink") Wednesday, 22 March, 16:30 CET (+0100) - -[Telco 20170308](Telco_20170308.html "wikilink") Wed, 8th March, 16:30 Copenhagen/Zurich/Berlin Time - -#### February - -[Telco 20170220](Telco_20170220.html "wikilink") Mon, 20th February, 16:30 Copenhagen/Zurich/Berlin Time - -#### January - -[Telco 20170130](Telco_20170130.html "wikilink") Mon, 30th January, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20170117](Telco_20170117.html "wikilink") Tue, 17th January, 16:30 Copenhagen/Zurich/Berlin Time - -### 2016 - -#### December - -[Telco 20161213](Telco_20161213.html "wikilink") Tue, 13th December, 16:30 Copenhagen/Zurich/Berlin Time - -#### November - -[Telco 20161123](Telco_20161123.html "wikilink") Wed, 23rd November, 16:30 Copenhagen/Zurich/Berlin Time - -#### October - -[NIAC2016](NIAC2016.html "wikilink") - -#### September - -[Telco 20160928](Telco_20160928.html "wikilink") Wed, 28th September, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160907](Telco_20160907.html "wikilink") Wed, 7th September, 16:30 Copenhagen/Zurich/Berlin Time - -#### August - -[Telco 20160824](Telco_20160824.html "wikilink") Wed, 24th August, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160809](Telco_20160809.html "wikilink") Tue, 9th August, 16:30 Copenhagen/Zurich/Berlin Time - -#### July - -[Telco 20160712](Telco_20160712.html "wikilink") Tue, 12th July, 16:30 Copenhagen/Zurich/Berlin Time - -#### June - -[Telco 20160628](Telco_20160628.html "wikilink") Tue, 28th June, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160614](Telco_20160614.html "wikilink") Tue, 14th June, 16:30 Copenhagen/Zurich/Berlin Time - -#### May - -[Telco 20160531](Telco_20160531.html "wikilink") Tue, 31st May, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160510](Telco_20160510.html "wikilink") Tue, 10th May, 16:30 Copenhagen/Zurich/Berlin Time - -#### April - -[Telco 20160426](Telco_20160426.html "wikilink") Tue, 26th April, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160412](Telco_20160412.html "wikilink") Tue, 12th April, 16:30 Copenhagen/Zurich/Berlin Time - -#### March - -[Telco 20160329](Telco_20160329.html "wikilink") Tue, 29th March, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160315](Telco_20160315.html "wikilink") Tue, 15th March, 16:30 Copenhagen/Zurich/Berlin Time - -#### February - -[Telco 20160224](Telco_20160224.html "wikilink") Wed, 24th February, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160202](Telco_20160202.html "wikilink") Tue, 2nd February, 16:30 Copenhagen/Zurich/Berlin Time - -#### January - -[Telco 20160120](Telco_20160120.html "wikilink") Wed, 20th January, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20160106](Telco_20160106.html "wikilink") Wed, 6th January, 16:30 Copenhagen/Zurich/Berlin Time - -### 2015 - -#### December - -[Telco 20151215](Telco_20151215.html "wikilink") Tue, 15th December, 16:30 Copenhagen/Zurich/Berlin Time - -[Telco 20151202](Telco_20151202.html "wikilink") Wed, 2nd December, 17:00 Copenhagen/Zurich/Berlin Time - -#### November - -[Telco 20151116](Telco_20151116.html "wikilink") Mon, 16th November, 17:00 Copenhagen/Zurich/Berlin Time - -[Telco 20151104](Telco_20151104.html "wikilink") Wed, 4th November, 17:00 Copenhagen/Zurich/Berlin Time - -#### October - -[Telco 20151014](Telco_20151014.html "wikilink") Wed, 14th October, 17:00 Copenhagen Time - -[Telco 20151001](Telco_20151001.html "wikilink") Thu, 1st October, 16:00 BST - -#### September - -[Telco 20150909](Telco_20150909.html "wikilink") Wed, 9th September, 16:00 BST - -#### August - -[Telco 20150827](Telco_20150827.html "wikilink") Thu, 27th August, 16:00 BST - -[Telco 20150811](Telco_20150811.html "wikilink") Tue, 11th August, 16:00 BST - -#### July - -[Telco 20150728](Telco_20150728.html "wikilink") Tue, 28th July, 16:00 BST - -[Telco 20150715](Telco_20150715.html "wikilink") Wed, 15th July, 12:00 BST - -#### June - -[Telco 20150630](Telco_20150630.html "wikilink") Tue, 30th June, 12:00 BST - -[Telco 20150617](Telco_20150617.html "wikilink") Wed, 17th June, 12:00 BST - -[Telco 20150603](Telco_20150603.html "wikilink") Wed, 3rd June, 12:00 BST - -#### May - -[Telco 20150520](Telco_20150520.html "wikilink") Wed, 20th May, 12:00 BST - -[Telco 20150506](Telco_20150506.html "wikilink") Wed, 6th May, 12:00 BST - -#### April - -[Telco 20150408](Telco_20150408.html "wikilink") Wed, 8th Apr, 12:00 BST - -#### March - -[Telco 20150318](Telco_20150318.html "wikilink") Wed, 18th Mar, 12:00 GMT - -[Telco 20150302](Telco_20150302.html "wikilink") Mon, 2nd Mar, 12:00 GMT - -#### February - -[Telco 20150218](Telco_20150218.html "wikilink") Wed, 18th Feb, 12:00 GMT - -[Telco 20150203](Telco_20150203.html "wikilink") Tue, 3rd Feb, 12:00 GMT - -#### January - -[Telco 20150114](Telco_20150114.html "wikilink") Wed, 14th Jan, 12:00 GMT diff --git a/content/Thumbnails_for_Nexus_files.md b/content/Thumbnails_for_Nexus_files.md deleted file mode 100644 index f503fd75..00000000 --- a/content/Thumbnails_for_Nexus_files.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Thumbnails for Nexus files -permalink: Thumbnails_for_Nexus_files.html -layout: wiki ---- - -Thumbnails that a file browser (or even a web browser) can use to render -a Nexus file shall be stored in an instance of NXnote directly below -NXentry - - entry:NXentry - thumbnail:NXnote - data:NX_BINARY - type:NX_CHAR - description:NX_CHAR - -The data field contains the binary data of the thumbail image. The image -type is determined by the type field. We currently recommend the image -to be stored as PNG. The description field can be used to store -provenance data which may show up as a tool-tip when the mouse pointer -hovers over the files icon. - -Topics for discussion ---------------------- - -- should it go to NXroot or NXentry? -- restrict the image type to PNG or leave this open? -- shall we restrict the size of the thumbnail image? - -Windows for instance uses 96x96 jpeg images. - -Update 01/2015 --------------- - -This topic was discussed at NIAC 2014. As a directory may contain -thousands of files, there are performance issues to be solved here. It -was deemed to slow to open each file and extract the thumbnail from a -NXnote. There are ideas to embed the thumbnail in the HDF5 file at a low -level. Some experimentation is needed before this can be resolved. diff --git a/content/Time-of-Flight_Neutron_Powder_Diffraction.md b/content/Time-of-Flight_Neutron_Powder_Diffraction.md deleted file mode 100644 index 55880b32..00000000 --- a/content/Time-of-Flight_Neutron_Powder_Diffraction.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Time-of-Flight Neutron Powder Diffraction -permalink: Time-of-Flight_Neutron_Powder_Diffraction.html -layout: wiki ---- - -Comments --------- - -- Discussion items - - time\_focusing\_type (e.g. difc, cubic, ..) - - time\_focusing\_parameters \[ndetector,nparameters\] - - Definition of groups for binning in NeXus file or via NXdetector - ? - - Deadtime correction information (in combination with gang\_..) - - Profile types and starting parameters - - Incident spectrum (here in NXcharacterization, alternative - analytical description ?) - - - -- Other - - Binned data back in NeXus - this actually is used in Rietveld. - -Proposal --------- - - diff --git a/content/Update_for_NXflou_application_definition.md b/content/Update_for_NXflou_application_definition.md deleted file mode 100644 index e51aa4b5..00000000 --- a/content/Update_for_NXflou_application_definition.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Update for NXflou application definition -permalink: Update_for_NXflou_application_definition.html -layout: wiki ---- - -Problem -------- - -In todays fluorescence experiments users often raster the sample with -the beam and record a single spectrum at each sample location. For -beamline P06 at DESY this procedure became virtually the default mode of -operation. The current NXfluo application definition does not include -this kind of experiments as it only allows to store a single spectrum -below /:NXentry/:NXinstrument/:NXdetector. However NXfluo could be -easily modified to accommodate raster scans. - -Proposed modification ---------------------- - -The changes concern only the NXdetector instance of NXfluo. The layout -should be changed as follows - - entry:NXentry - instrument:NXinstrument - flourescence:NXdetector - data[npts,nenergy] - energy[npts,nenergy] - -where npts denotes the number of raster points. It is important to note -that we do not care about the particular pattern used to raster the -sample. This would be hard to achieve taking into account that there is -a nearly arbitrary number of patterns available. Even entirely irregular -paths would be possible (and have already been requested by one of the -beamline scientists here at DESY). One advantage of this pattern -agnostic approach would be that analysis software can stick to its -current workflow: processing the spectra recorded during an experiment -in a simple sequential order. - -If the energy dataset is of shape \[nenergy\] (rank one) we can assume -that the energy range was the same for each point recorded. A single -spectrum can easily be stored by using the original schema of the -definition which could be interpreted as ntps=0. - -Just as a recommendation (must not go into the standard), it would make -sense to store the position of the beam on the sample like this - - entry:NXentry - sample:NXsample - x[npts]:NX_FLOAT - y[npts]:NX_FLOAT - -Status 01/2015 --------------- - -The suggested change is in line with NeXus scan rules. Thus the change -was accepted at NIAC 2014. No vote was necessary. diff --git a/content/Utilities.md b/content/Utilities.md deleted file mode 100644 index 7cfeefbc..00000000 --- a/content/Utilities.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Utilities -permalink: Utilities.html -layout: wiki ---- - -NeXus Browsers and Other Utilities ----------------------------------- - -[NXbrowse](NXbrowse.html "wikilink"):A command-line utility for browsing NeXus files. -NXtoXML:A utility to translate NeXus files to XML, written in ISO C. If used from a terminal (and installed in the default PATH \[u\*\*x\] or defined as a symbol \[VMS\]), type - - - - NXtoXML - - -On most systems, NXtoXML is compiled and linked during the standard -NeXus installation (v2.0 and later). Precompiled binary versions are -available for a limited number of operating systems (Linux, VMS, -Macintosh). Please contact Ray Osborn for more information. - -NXtoDTD: A utility to translate NeXus files to XML without including the data values, written in ISO C. This is useful in defining the structure of a NeXus file and can be used to produce the skeleton of a NeXus metaDTD file from an existing NeXus file. If used from a terminal (and installed in the default PATH \[u\*\*x\] or defined as a symbol \[VMS\]), type - - - - NXtoDTD - - -On most systems, NXtoDTD is compiled and linked during the standard -NeXus installation (v2.0 and later). Precompiled binary versions are -available for a limited number of operating systems (Linux, VMS, -Macintosh). Please contact Ray Osborn for more information. - -[NXdir](NXdir.html "wikilink"):CLI tool that lists contents of NeXus file and convert selected portions to ASCII. -NXtree:A utility to output the structure of a NeXus file in a tree structure. It has options to produce either HTML or LaTeX output, with or without data values and attributes. - - - - NXtree [-[no]attr] [-[no]data] [-html | -latex] - - -The file NXtree.tar.gz contains the source code to be used on u\*\*x -platforms and NXtree-win32.zip contains a binary version for various -flavors of Windows. It was written by Thomas Proffen -<tproffen@lanl.gov> - -NXvalid:GUI tool to interactively explore, plot, and validate NeXus files. -NXtranslate:Anything to NeXus converter -NDS:NeXus data server, publish NeXus files on TCP/IP, read only (SINQ) -NNDB:Java program to browse NeXus files published through NDS (SINQ) -HDFView:Java-based tool for browsing and visualizing HDF4/5 files. -HDFExplorer:Windows HDF viewer for HDF4, HDF5 and netCDF files from offers grid/scalar image/vector images and data export. -IgorPro HDF5 Browser:Windows and MacOSX HDF viewer for HDF4 and HDF5 files from provides views of raw content dumps, tables, plots, and images, and data import. - -Plotting Applications ---------------------- - -[NeXpy](NeXpy.html "wikilink"): A Python-based approach to interactive data analysis that allows complete data structures to be read into a tree and new data structures to be created using an simple intuitive syntax. The data can be plotted, sliced, manipulated, and saved to a file. -[Open Genie](http://www.opengenie.org/):Open Genie is an object-oriented data analysis and visualization package developed at the ISIS pulsed neutron facility. The latest version has the ability to load an entire NeXus file into a workspace structure, as well as write NeXus files. -ISAW:ISAW is a java-based analysis package used to read, manipulate, view, and save neutron scattering data. ISAW can read data from NeXus files and can merge and sort data from separate measurements.. -IDL:Mark Koennecke has written a set of IDL utilities for interfacing to NeXus files. -LAMP:This is a general purpose neutron data analysis package, developed at ILL and layered on IDL. A run-time version is available for those without an IDL license. It can read and write NeXus files. -[KUPLOT](http://discus.sourceforge.net):This is a universal data plotting program, that is used to visualize DISCUS or PDFFIT results as well as for other plotting purposes -NXviewer:OpenDave based viewer (FRM2). -HDFLook:Motif HDF viewer which has some impressive plotting capabilities. For example, it is possible to plot 2D data sets and then take arbitrary 1D cuts. However, it does not recognize Vgroups, so the NeXus file hierarchy is lost making it hard to identify the plottable data. However, the price is right (i.e. it's free). -MATLAB: [MATLAB](http://www.mathworks.com/products/matlab/) will read a general [HDF5](http://www.hdfgroup.org/HDF5/) format file and so is able to import any NeXus file which used HDF5 as its underlying representation. - -Data Analysis -------------- - -[NeXpy](NeXpy.html "wikilink"): A Python-based approach to interactive data analysis that allows complete data structures to be read into a tree and new data structures to be created using an simple intuitive syntax. The data can be plotted, sliced, manipulated, and saved to a file. -[Open Genie](http://www.opengenie.org/): I include Open Genie here as well since it is really more of a data analysis package than a plotting package per se. Support for performing analysis on NeXus files is currently limited, but can be acomplished by mapping parts of the imported NeXus file into a new workspace that to make it resemble an ISIS RAW data file. -LAMP: LAMP is also designed for analyzing raw data in addition to visualizing the results. -UDA and WIMDA:General purpose muon scattering analysis packages (ISIS) -hdfb.sav and h5b.sav:browser for any 1D/2D/3D data saved in HDF (APS) -GumTree:scientific workbench for instrument control (BI) -ninx:inx (ILL) adapted to read FOCUS TOF files (SINQ) -Nathan:TOF data analysis for FOCUS (IDL based) (SINQ) -anatric, cami4pcd:four circle diffractometer data analysis (SINQ) -BerSANS:data analysis for SANS through adapter (SINQ) - -fit:home grown fitting program (SINQ) -addit, subi:programs to add or subtract powder data and write files suitable for Rietveld programs (SINQ) -Redas:data analysis for Reflectometer, based on Scilab (SINQ) -Amortool:simple CLI tool for Reflectometer data analysis (SINQ) -Scilab:general matlab like data analysis tool - with a NeXus interface for that (SINQ) -[Mantid](http://www.mantidproject.org/): An instrument independant data analysis framework that supports NeXus as an output format and both [TOFRaw](TOFRaw.html "wikilink") and [Muon\_Time\_Differential](Muon_Time_Differential.html "wikilink") as input formats. diff --git a/content/Workshop_PSI_2010.md b/content/Workshop_PSI_2010.md deleted file mode 100644 index cd644be3..00000000 --- a/content/Workshop_PSI_2010.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Workshop PSI 2010 -permalink: Workshop_PSI_2010.html -layout: wiki ---- - -NeXus Workshop at PSI (May 10 - 12, 2010) ------------------------------------------ - -A NeXus workshop will be held at PSI from Monday, May 10 till Wednesday, -May 12 2010. The purpose of this workshop is twofold: - -- Disseminate detailed knowledge about the NeXus data format -- Discuss and develop the application of NeXus at synchrotron light - sources. - -In a sense this workshop is a followup to the recent [HDF-5 as -hyperspectral -dataformat](http://www.esrf.eu/events/conferences/hdf5-as-hyperspectral-data-analysis-format) -held at ESRF. - -This workshop is to go into more detail and come up with: - -- A wishlist of things to consider for the [NeXus International - Advisory Committee](NIAC.html "wikilink") -- A set of synchrotron specific application definitions. - -The intended audience for this workshop are facility scientists and -computing staff from synchrotrons who have have an interest to learn -more about NeXus and use it a synchrotron light sources. The general -part of the workshop can be of interest to other NeXus users too. - -Particiaption is free but due to space contraints we can only accept 30 -participants. Registration is now open through our WWW-site: - -`   `[`http://lns00.psi.ch/nexus2010/`](http://lns00.psi.ch/nexus2010/) diff --git a/content/XESraw.md b/content/XESraw.md deleted file mode 100644 index f07c1ebf..00000000 --- a/content/XESraw.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: XESraw -permalink: XESraw.html -layout: wiki ---- - -XESraw is a draft example of a X-Ray Experimental (Synchrotron) raw -Nexus file. - -It is basically a simple scanning format with a few manditory items -(mainly NXsource - in order to indicate the originating facility). The -variables being scanned are inferred from the links for the 'axis data' -within the NXdata class(es). For this example they have been shown to -point to values within NXpositioner classes (which will probably be the -case for most scan variables in a synchrotron experiment), but they -counld as easily refer to another place within the NXinstrument -hierarchy. - - - - - - - "Example Data File" - - - "I18" - - "Diamond Light Source" - "Synchrotron X-ray Source" - "x-ray" - - - [3001.0, 3002.0, 3003.0] - - - - - - "Ortec C-TRAIN" - "Counter Timer" - [203.0, 245.0, 233.0] - - - "Quantum 315" - "CCD" - - {a data array with dimensions[3, nx, ny]} - - - - - - {Link to detector1 counts} - - {Link to values in NXpositioner} - - - - - {Link to detector2 counts} - - {Link to values in NXpositioner} - - - - - - diff --git a/content/index.md b/content/index.md deleted file mode 100644 index ad565dfa..00000000 --- a/content/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: About the NeXus Data Format -permalink: index.html -layout: page ---- - -NeXus is a common data format for neutron, x-ray, and muon science. It -is being developed as an international standard by scientists and -programmers representing major scientific facilities in order to -facilitate greater cooperation in the analysis and visualization of -neutron, x-ray, and muon data. - -## Documentation: -* Most recent publication to cite: - *J. Appl. Cryst.* (2015). **48**, 301-305 [doi:10.1107/S1600576714027575](https://doi.org/10.1107/S1600576714027575) -* [User Manual](https://manual.nexusformat.org/user_manual.html): - * [Introduction](https://manual.nexusformat.org/introduction.html) to the concepts behind the NeXus data format - * [Design](https://manual.nexusformat.org/design.html): The hierarchical design of NeXus files - * [NeXus Class Definitions](https://manual.nexusformat.org/classes/index.html): description of each NXDL specification - * [base classes](https://manual.nexusformat.org/classes/base_classes/index.html): components that might be used in any NeXus data file - * [application definitions](https://manual.nexusformat.org/classes/applications/index.html): layout specifications for a specific purpose - * [contributed definitions](https://manual.nexusformat.org/classes/contributed_definitions/index.html): propositions from the community - * [Utilities](https://manual.nexusformat.org/utilities.html): Software applications that browse, plot, and analyze NeXus data - * [FAQ](https://manual.nexusformat.org/faq.html): Commonly asked questions about NeXus -* [Facilities](Facilities.html "wikilink") using NeXus - -## Discussion and Development: -* Next Meetings: [Autumn NIAC2024](NIAC2024.html) -* Most recent meetings: [Code Camp 2023](CodeCampJune2023.html), [Autumn NIAC2022](NIAC2022.html) -* [Teleconferences](Teleconferences.html "wikilink") -* [Current Active Projects](ActiveProjects.html "wikilink") -* [NeXus International Advisory Committee](NIAC.html "wikilink") -* [Bug / Issue Reporting](IssueReporting.html "wikilink") -* [Mailing Lists](https://manual.nexusformat.org/mailinglist.html) -* [Show and Tell](https://indico.desy.de/category/1080/) - Series of meetings, each dedicated to a specific NeXus adoption topic diff --git a/content/make-new-telco.sh b/content/make-new-telco.sh deleted file mode 100644 index ecdd2ac1..00000000 --- a/content/make-new-telco.sh +++ /dev/null @@ -1,91 +0,0 @@ -#! /bin/sh - -newdate=$1 - -echo $newdate | grep 20..[01].[0123]. > /dev/null || (echo no proper new date given as argument >&2 ; exit 1) - -# Wednesday, 8th March, 16:30 Central European Summer Time (Copenhagen) -ndatestr=`date -jf "%Y%m%d" $newdate "+%A, %e %B, 16:30 %Z (%z)"` - -nyear=`date -jf "%Y%m%d" $newdate +%Y` -nmonth=`date -jf "%Y%m%d" $newdate +%m` -nmonthstr=`date -jf "%Y%m%d" $newdate +%B` - -# copy old one -oldone=`ls Telco_*.md | tail -1 | sed -e s/Telco_// -e s/.md//` - -oyear=`date -jf "%Y%m%d" $oldone +%Y` -omonth=`date -jf "%Y%m%d" $oldone +%m` - -cat > Telco_$newdate.md <> Telco_$newdate.md - -if [ $nyear != $oyear ] ; then -ed Teleconferences.md <> Telco_$oldone.md <>P{wCAAY(d13PUi1CZpdu*uC&Da}c>D`Ewj46?hJA4q&)W@KdizyKqPn1Nyd0A?+H literal 0 HcmV?d00001 diff --git a/dev_tools/__pycache__/__main__.cpython-311.pyc b/dev_tools/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83b2b5849d4e437865e33db10975037467c14204 GIT binary patch literal 2802 zcma)8-D?|15Z{wlr?bwoEk&{{$7wE!qvRYns`F4Nq=Asqd=ZlnH>9GikhK@(RDE^t z6dWUiC@H9rhZG7iB@cc|Q|dpU{Vz`Dz~aDQD1FGAN?JJ7p~$mgI%v{!xc|x&KAsDp z!Py&tA>8JtD!*h?%P*Nt6`UZ^X*O4@ff&}ywVbJI6|+APD(5QoT&b_gm9=~+XBd4| zGBtxc=DjF@7=Y6c=c{eFK1Jq$t?0=_*!B(Qw;?oyEnXQsJ2Z%&;O)S3u>I=UH+&7> z7K<`6h)9Cl(i`4>bL_ye$TH-k;UCUHKxWvrAyf>y@~GciqmPl$NOWvQTqHpCGHKv< zj6UM`*61=BABi3?;{(xUS8fE}G5Uz#Tcd}`#7K0}Ou7-Fc5ihX;yXqk@oS*wxH&g~ zIqAw92s&uW)duekL?#LP&UcW?aP*C!DING1y|-l!pcSL8hZ%DvsOXR@n=`Hivz`Z; zdWN?K*8jk#5iCx-+8fzO4XHT|wIp2o;C**pZJ>0ck9*y8It^gd-klvg%d?Zp4 z7>XKQUQaA*ck6~ivUIA4BSA|sbb%qE8Q>`fXs#M7-hF&R@G^H1nbBiia)+LVEW1jVs z-t#r8)pAr*J~K3`+~B;Vtk(4s0Ssr%W3F}OX5aCuOJ>UDx=yqMXR)%zsB1mWv59t1 zujsv`^pa*!#w#kOtg$HT0LmJIviDCJ0jWtx%FzPkVrb69MOxrh-DE0tCUS&ijruCL zQo{)`y{AydC(gLXp|oI7_Q`N0PQXlsFA8#Gmvh++<0@yuD=rIx4a%C;0WxMq@EON% zJTx2(#s^M_N9#>{!L&6k?*VgV0JCT8!*Ru5&`dhcqJ(Nxhpz#Dvpi2`SI6iPW)ypc zIiZ1qC*1n_ws60izB+YKitEr1+*er<1}t!`mSv#~Mwf~^USCa@D`q;MW<6k}S2bFo z>4I+Fudk+8X|9sLufc52(9#Dl)d2ZHmUnSFn=R+`N;Z48_Rzshq-lU>oM`OBx2cKt z!f`u1Z!KN3!q?m3>vs5h^V9uEVmFf7iKJd!`|Wcpl4?gT+mXx7Yy0t|yYYpc_(DgD zSTk3a7x%Di$Bybl;N3}Z&LaEyUOZLCs-@^4yL*x4E))Z0q>e z@n?72a>|xd%}*eY*irk?nZ4+o9X-7lKW@jD_M)?PG}RpoOo?4sF7e+G3WmPTx8@%& zw#9@kCb}{Tgu4?6)+d0ZH$hVABdfhsJkGGz=-*#`yoPp#J5l6>3o-N-jB-*CKD z*u#}vS<7Y}tgY$hFNl7?o<9qh*V6fNmDEex1^OYV?7xojJ6yVcK@d7_i&Ruistt#}shP0tkWfOeuE7(V~!>;K@jH*7YDjmgY7ex(Aag{E6uMs|I!~gqJbq3x2 z*mb+-=kbZOq=048=DCDoT|AS-aSLbbKC)d{#(X~|H;7LtoX7Y>+3rJsaw0w7Kt>6b ziO)iH&E!G`Os7x3Gm0h8u#9JdabXk~U*^WL?X6S_MuD3pYlWfK6wIJ($u8NR?Un?} zYkALg9bvE+=Pn2JtCTAR5c$Ql%&#pg29XBm6e`ZthT%MQNCuSViG959C zLdW_;L?k{!R)xBrZI7C@_xaw>uco?+7VbmXi!p4o;4qPih5g+{p0hB4FsbP{VH|TV z*~?-7idS?Z00<`3p0k%C6Ax9hTn-b|wMu4@g>m6lxP{IVC&T0P%PhCf&@(DAxATcO z?xZ8)z0&B;bw}hwxGm#|Uy)Ve?;E#wo^IRKuiwYvgW2;ZmHYJpl77k*XViJ zjKdd?N%hg@lR&$-Hy3DQ2SW{QvK|fIhY+r`PxO>zli^c>8vd^mC0_Rt0PLfD*jF!-7Z;7Ft1YPI%_!e1H uC4?M9Z#DXwDM;yCe0#l)r5(%$gV}0-Gk$|SCQZ1&KPKeMCR}Avy8iJ~*8 literal 0 HcmV?d00001 diff --git a/dev_tools/ext/contrib_ext.py b/dev_tools/ext/contrib_ext.py new file mode 100644 index 00000000..dc37de88 --- /dev/null +++ b/dev_tools/ext/contrib_ext.py @@ -0,0 +1,30 @@ +import re + +# a custom sphinx extension that is connected to the source-read hook for rst files, +# the purpose is to read all of the contributor information from the rst file and +# place it in a string variable that will be used in the sourcelink.html jinja template +# that has been over ridden and sits in the _templates directory to produce the +# contributor information on the for right sidebar of the html pages + +variables_re = re.compile(r"\|(\w+)\| replace::\s(.+)") + + +def extract_contributor_vars(app, docname, source): + # Read the RST file content + content = source[0] + + # Extract variables using regular expressions + variables = variables_re.findall(content) + + # Create a dictionary to store the extracted variables + # this will create a list of single strings each of which contain the info about the contributor + extracted_variables = [var[1] for var in variables] + if "variables" not in app.config.html_context.keys(): + app.config.html_context["variables"] = {} + + # Add the extracted variables to the Jinja environment + app.config.html_context["variables"][docname] = extracted_variables + + +def setup(app): + app.connect("source-read", extract_contributor_vars) diff --git a/public/apple-touch-icon-144-precomposed.png b/public/apple-touch-icon-144-precomposed.png deleted file mode 100644 index 466e1573ef0b4c9a36c558050e5c5b6b0744cd43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3723 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 a>YBLgD#Z*6O \/__,_ /\/____/ - * /\___/ - * \/__/ - * - * Designed, built, and released under MIT license by @mdo. Learn more at - * https://github.com/poole/hyde. - */ - - -/* - * Contents - * - * Global resets - * Sidebar - * Container - * Reverse layout - * Themes - */ - - -/* - * Global resets - * - * Update the foundational and global aspects of the page. - */ - -html { - font-family: "PT Sans", Helvetica, Arial, sans-serif; -} -@media (min-width: 48em) { - html { - font-size: 14px; - } -} -@media (min-width: 58em) { - html { - font-size: 18px; - } -} - - -/* - * Sidebar - * - * Flexible banner for housing site name, intro, and "footer" content. Starts - * out above content in mobile and later moves to the side with wider viewports. - */ - -.sidebar { - text-align: center; - padding: 2rem 1rem; - color: rgba(255,255,255,.5); - background-color: #280028; -} -@media (min-width: 48em) { - .sidebar { - position: fixed; - top: 0; - left: 0; - bottom: 0; - width: 18rem; - text-align: left; - } -} - -/* Sidebar links */ -.sidebar a { - color: #fff; -} - -/* About section */ -.sidebar-about h1 { - color: #fff; - margin-top: 0; - font-family: "Abril Fatface", serif; - font-size: 3.25rem; -} - -/* Sidebar nav */ -.sidebar-nav { - margin-bottom: 1rem; -} -.sidebar-nav-item { - display: block; - line-height: 1.75; -} -a.sidebar-nav-item:hover, -a.sidebar-nav-item:focus { - text-decoration: underline; -} -.sidebar-nav-item.active { - font-weight: bold; -} - -/* Sticky sidebar - * - * Add the `sidebar-sticky` class to the sidebar's container to affix it the - * contents to the bottom of the sidebar in tablets and up. - */ - -@media (min-width: 48em) { - .sidebar-sticky { - position: absolute; - right: 1rem; - bottom: 1rem; - left: 1rem; - } -} - - -/* Container - * - * Align the contents of the site above the proper threshold with some margin-fu - * with a 25%-wide `.sidebar`. - */ - -.content { - padding-top: 4rem; - padding-bottom: 4rem; -} - -@media (min-width: 48em) { - .content { - max-width: 38rem; - margin-left: 20rem; - margin-right: 2rem; - } -} - -@media (min-width: 64em) { - .content { - margin-left: 22rem; - margin-right: 4rem; - } -} - - -/* - * Reverse layout - * - * Flip the orientation of the page by placing the `.sidebar` on the right. - */ - -@media (min-width: 48em) { - .layout-reverse .sidebar { - left: auto; - right: 0; - } - .layout-reverse .content { - margin-left: 2rem; - margin-right: 20rem; - } -} - -@media (min-width: 64em) { - .layout-reverse .content { - margin-left: 4rem; - margin-right: 22rem; - } -} - - - -/* - * Themes - * - * As of v1.1, Hyde includes optional themes to color the sidebar and links - * within blog posts. To use, add the class of your choosing to the `body`. - */ - -/* Base16 (http://chriskempson.github.io/base16/#default) */ - -/* Red */ -.theme-base-08 .sidebar { - background-color: #ac4142; -} -.theme-base-08 .content a, -.theme-base-08 .related-posts li a:hover { - color: #ac4142; -} - -/* Orange */ -.theme-base-09 .sidebar { - background-color: #d28445; -} -.theme-base-09 .content a, -.theme-base-09 .related-posts li a:hover { - color: #d28445; -} - -/* Yellow */ -.theme-base-0a .sidebar { - background-color: #f4bf75; -} -.theme-base-0a .content a, -.theme-base-0a .related-posts li a:hover { - color: #f4bf75; -} - -/* Green */ -.theme-base-0b .sidebar { - background-color: #90a959; -} -.theme-base-0b .content a, -.theme-base-0b .related-posts li a:hover { - color: #90a959; -} - -/* Cyan */ -.theme-base-0c .sidebar { - background-color: #75b5aa; -} -.theme-base-0c .content a, -.theme-base-0c .related-posts li a:hover { - color: #75b5aa; -} - -/* Blue */ -.theme-base-0d .sidebar { - background-color: #6a9fb5; -} -.theme-base-0d .content a, -.theme-base-0d .related-posts li a:hover { - color: #6a9fb5; -} - -/* Magenta */ -.theme-base-0e .sidebar { - background-color: #aa759f; -} -.theme-base-0e .content a, -.theme-base-0e .related-posts li a:hover { - color: #aa759f; -} - -/* Brown */ -.theme-base-0f .sidebar { - background-color: #8f5536; -} -.theme-base-0f .content a, -.theme-base-0f .related-posts li a:hover { - color: #8f5536; -} diff --git a/public/css/poole.css b/public/css/poole.css deleted file mode 100644 index 66e66639..00000000 --- a/public/css/poole.css +++ /dev/null @@ -1,430 +0,0 @@ -/* - * ___ - * /\_ \ - * _____ ___ ___\//\ \ __ - * /\ '__`\ / __`\ / __`\\ \ \ /'__`\ - * \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/ - * \ \ ,__/\ \____/\ \____//\____\ \____\ - * \ \ \/ \/___/ \/___/ \/____/\/____/ - * \ \_\ - * \/_/ - * - * Designed, built, and released under MIT license by @mdo. Learn more at - * https://github.com/poole/poole. - */ - - -/* - * Contents - * - * Body resets - * Custom type - * Messages - * Container - * Masthead - * Posts and pages - * Pagination - * Reverse layout - * Themes - */ - - -/* - * Body resets - * - * Update the foundational and global aspects of the page. - */ - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html, -body { - margin: 0; - padding: 0; -} - -html { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 1.5; -} -@media (min-width: 38em) { - html { - font-size: 20px; - } -} - -body { - color: #515151; - background-color: #fff; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -/* No `:visited` state is required by default (browsers will use `a`) */ -a { - color: #268bd2; - text-decoration: none; -} -a strong { - color: inherit; -} -/* `:focus` is linked to `:hover` for basic accessibility */ -a:hover, -a:focus { - text-decoration: underline; -} - -/* Headings */ -h1, h2, h3, h4, h5, h6 { - margin-bottom: .5rem; - font-weight: bold; - line-height: 1.25; - color: #313131; - text-rendering: optimizeLegibility; -} -h1 { - font-size: 2rem; -} -h2 { - margin-top: 1rem; - font-size: 1.5rem; -} -h3 { - margin-top: 1.5rem; - font-size: 1.25rem; -} -h4, h5, h6 { - margin-top: 1rem; - font-size: 1rem; -} - -/* Body text */ -p { - margin-top: 0; - margin-bottom: 1rem; -} - -strong { - color: #303030; -} - - -/* Lists */ -ul, ol, dl { - margin-top: 0; - margin-bottom: 0; -} - -dt { - font-weight: bold; -} -dd { - margin-bottom: .5rem; -} - -/* Misc */ -hr { - position: relative; - margin: 1.5rem 0; - border: 0; - border-top: 1px solid #eee; - border-bottom: 1px solid #fff; -} - -abbr { - font-size: 85%; - font-weight: bold; - color: #555; - text-transform: uppercase; -} -abbr[title] { - cursor: help; - border-bottom: 1px dotted #e5e5e5; -} - -/* Code */ -code, -pre { - font-family: Menlo, Monaco, "Courier New", monospace; -} -code { - padding: .25em .5em; - font-size: 85%; - color: #bf616a; - background-color: #f9f9f9; - border-radius: 3px; -} -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - padding: 1rem; - font-size: .8rem; - line-height: 1.4; - white-space: pre; - white-space: pre-wrap; - word-break: break-all; - word-wrap: break-word; - background-color: #f9f9f9; -} -pre code { - padding: 0; - font-size: 100%; - color: inherit; - background-color: transparent; -} - -/* Pygments via Jekyll */ -.highlight { - margin-bottom: 1rem; - border-radius: 4px; -} -.highlight pre { - margin-bottom: 0; -} - -/* Gist via GitHub Pages */ -.gist .gist-file { - font-family: Menlo, Monaco, "Courier New", monospace !important; -} -.gist .markdown-body { - padding: 15px; -} -.gist pre { - padding: 0; - background-color: transparent; -} -.gist .gist-file .gist-data { - font-size: .8rem !important; - line-height: 1.4; -} -.gist code { - padding: 0; - color: inherit; - background-color: transparent; - border-radius: 0; -} - -/* Quotes */ -blockquote { - padding: .5rem 1rem; - margin: .8rem 0; - color: #7a7a7a; - border-left: .25rem solid #e5e5e5; -} -blockquote p:last-child { - margin-bottom: 0; -} -@media (min-width: 30em) { - blockquote { - padding-right: 5rem; - padding-left: 1.25rem; - } -} - -img { - display: block; - max-width: 100%; - margin: 0 0 1rem; - border-radius: 5px; -} - -/* Tables */ -table { - margin-bottom: 1rem; - width: 100%; - border: 1px solid #e5e5e5; - border-collapse: collapse; -} -td, -th { - padding: .25rem .5rem; - border: 1px solid #e5e5e5; -} -tbody tr:nth-child(odd) td, -tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} - - -/* - * Custom type - * - * Extend paragraphs with `.lead` for larger introductory text. - */ - -.lead { - font-size: 1.10rem; - font-weight: 300; -} - - -/* - * Messages - * - * Show alert messages to users. You may add it to single elements like a `

`, - * or to a parent if there are multiple elements to show. - */ - -.message { - margin-bottom: 1rem; - padding: 1rem; - color: #717171; - background-color: #f9f9f9; -} - - -/* - * Container - * - * Center the page content. - */ - -.container { - max-width: 38rem; - padding-left: 1rem; - padding-right: 1rem; - margin-left: auto; - margin-right: auto; -} - - -/* - * Masthead - * - * Super small header above the content for site name and short description. - */ - -.masthead { - padding-top: 1rem; - padding-bottom: 1rem; - margin-bottom: 3rem; -} -.masthead-title { - margin-top: 0; - margin-bottom: 0; - color: #505050; -} -.masthead-title a { - color: #505050; -} -.masthead-title small { - font-size: 75%; - font-weight: 400; - color: #c0c0c0; - letter-spacing: 0; -} - - -/* - * Posts and pages - * - * Each post is wrapped in `.post` and is used on default and post layouts. Each - * page is wrapped in `.page` and is only used on the page layout. - */ - -.page, -.post { - margin-bottom: 4em; -} - -/* Blog post or page title */ -.page-title, -.post-title, -.post-title a { - color: #303030; -} -.page-title, -.post-title { - margin-top: 0; -} - -/* Meta data line below post title */ -.post-date { - display: block; - margin-top: -.5rem; - margin-bottom: 1rem; - color: #9a9a9a; -} - -/* Related posts */ -.related { - padding-top: 2rem; - padding-bottom: 2rem; - border-top: 1px solid #eee; -} -.related-posts { - padding-left: 0; - list-style: none; -} -.related-posts h3 { - margin-top: 0; -} -.related-posts li small { - font-size: 75%; - color: #999; -} -.related-posts li a:hover { - color: #268bd2; - text-decoration: none; -} -.related-posts li a:hover small { - color: inherit; -} - - -/* - * Pagination - * - * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when - * there are no more previous or next posts to show. - */ - -.pagination { - overflow: hidden; /* clearfix */ - margin-left: -1rem; - margin-right: -1rem; - font-family: "PT Sans", Helvetica, Arial, sans-serif; - color: #ccc; - text-align: center; -} - -/* Pagination items can be `span`s or `a`s */ -.pagination-item { - display: block; - padding: 1rem; - border: 1px solid #eee; -} -.pagination-item:first-child { - margin-bottom: -1px; -} - -/* Only provide a hover state for linked pagination items */ -a.pagination-item:hover { - background-color: #f5f5f5; -} - -@media (min-width: 30em) { - .pagination { - margin: 3rem 0; - } - .pagination-item { - float: left; - width: 50%; - } - .pagination-item:first-child { - margin-bottom: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - } - .pagination-item:last-child { - margin-left: -1px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - } -} diff --git a/public/css/syntax.css b/public/css/syntax.css deleted file mode 100644 index 15ad7977..00000000 --- a/public/css/syntax.css +++ /dev/null @@ -1,65 +0,0 @@ -.highlight .hll { background-color: #ffc; } -.highlight .c { color: #999; } /* Comment */ -.highlight .err { color: #a00; background-color: #faa } /* Error */ -.highlight .k { color: #069; } /* Keyword */ -.highlight .o { color: #555 } /* Operator */ -.highlight .cm { color: #09f; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #099 } /* Comment.Preproc */ -.highlight .c1 { color: #999; } /* Comment.Single */ -.highlight .cs { color: #999; } /* Comment.Special */ -.highlight .gd { background-color: #fcc; border: 1px solid #c00 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #f00 } /* Generic.Error */ -.highlight .gh { color: #030; } /* Generic.Heading */ -.highlight .gi { background-color: #cfc; border: 1px solid #0c0 } /* Generic.Inserted */ -.highlight .go { color: #aaa } /* Generic.Output */ -.highlight .gp { color: #009; } /* Generic.Prompt */ -.highlight .gs { } /* Generic.Strong */ -.highlight .gu { color: #030; } /* Generic.Subheading */ -.highlight .gt { color: #9c6 } /* Generic.Traceback */ -.highlight .kc { color: #069; } /* Keyword.Constant */ -.highlight .kd { color: #069; } /* Keyword.Declaration */ -.highlight .kn { color: #069; } /* Keyword.Namespace */ -.highlight .kp { color: #069 } /* Keyword.Pseudo */ -.highlight .kr { color: #069; } /* Keyword.Reserved */ -.highlight .kt { color: #078; } /* Keyword.Type */ -.highlight .m { color: #f60 } /* Literal.Number */ -.highlight .s { color: #d44950 } /* Literal.String */ -.highlight .na { color: #4f9fcf } /* Name.Attribute */ -.highlight .nb { color: #366 } /* Name.Builtin */ -.highlight .nc { color: #0a8; } /* Name.Class */ -.highlight .no { color: #360 } /* Name.Constant */ -.highlight .nd { color: #99f } /* Name.Decorator */ -.highlight .ni { color: #999; } /* Name.Entity */ -.highlight .ne { color: #c00; } /* Name.Exception */ -.highlight .nf { color: #c0f } /* Name.Function */ -.highlight .nl { color: #99f } /* Name.Label */ -.highlight .nn { color: #0cf; } /* Name.Namespace */ -.highlight .nt { color: #2f6f9f; } /* Name.Tag */ -.highlight .nv { color: #033 } /* Name.Variable */ -.highlight .ow { color: #000; } /* Operator.Word */ -.highlight .w { color: #bbb } /* Text.Whitespace */ -.highlight .mf { color: #f60 } /* Literal.Number.Float */ -.highlight .mh { color: #f60 } /* Literal.Number.Hex */ -.highlight .mi { color: #f60 } /* Literal.Number.Integer */ -.highlight .mo { color: #f60 } /* Literal.Number.Oct */ -.highlight .sb { color: #c30 } /* Literal.String.Backtick */ -.highlight .sc { color: #c30 } /* Literal.String.Char */ -.highlight .sd { color: #c30; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #c30 } /* Literal.String.Double */ -.highlight .se { color: #c30; } /* Literal.String.Escape */ -.highlight .sh { color: #c30 } /* Literal.String.Heredoc */ -.highlight .si { color: #a00 } /* Literal.String.Interpol */ -.highlight .sx { color: #c30 } /* Literal.String.Other */ -.highlight .sr { color: #3aa } /* Literal.String.Regex */ -.highlight .s1 { color: #c30 } /* Literal.String.Single */ -.highlight .ss { color: #fc3 } /* Literal.String.Symbol */ -.highlight .bp { color: #366 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #033 } /* Name.Variable.Class */ -.highlight .vg { color: #033 } /* Name.Variable.Global */ -.highlight .vi { color: #033 } /* Name.Variable.Instance */ -.highlight .il { color: #f60 } /* Literal.Number.Integer.Long */ - -.css .o, -.css .o + .nt, -.css .nt + .nt { color: #999; } diff --git a/source/CNAME b/source/CNAME new file mode 100644 index 00000000..53dee3b3 --- /dev/null +++ b/source/CNAME @@ -0,0 +1 @@ +manual.nexusformat.org \ No newline at end of file diff --git a/source/Makefile b/source/Makefile new file mode 100644 index 00000000..599cbfbc --- /dev/null +++ b/source/Makefile @@ -0,0 +1,31 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +fetch-logo: + wget -O _static/RUSS_logo.png https://raw.githubusercontent.com/nexusformat/definitions/main/manual/source/img/NeXus-logo.png + +html: fetch-logo + # sphinx-build -b html source build/html + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + + + diff --git a/source/__pycache__/dirlist.cpython-311.pyc b/source/__pycache__/dirlist.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..affbc870cdbf9eede5d22bba259322bf18cd3c5c GIT binary patch literal 5378 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 EFVqsZM*si- literal 0 HcmV?d00001 diff --git a/source/_static/RUSS_logo.png b/source/_static/RUSS_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..592677f36ef111517dcaaabdc14eb032c668a36b GIT binary patch literal 229540 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%0ALJD&v9;Sq|KYTA`q!FI(Sf;imcz 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%0Al)fBGayJxcY{iINe)9u3k*mNIYT!L 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 summary { + width: 0.5em; + height: 2.2ex; + overflow: hidden; +} diff --git a/source/_static/rubric.css b/source/_static/rubric.css new file mode 100644 index 00000000..3b256daf --- /dev/null +++ b/source/_static/rubric.css @@ -0,0 +1,15 @@ +/* + * rubric.css + * ~~~~~~~~~~~~~~~ + * + * custom Sphinx stylesheet -- define custom font size to match h2 in rubrics with NXDL documentation + * + * :see: http://stackoverflow.com/questions/23462494/how-to-add-custom-css-file + * + */ + + +.rubric > .styleh2 { + font-size: 1.35em; +} + diff --git a/source/_templates/google_search.html b/source/_templates/google_search.html new file mode 100644 index 00000000..c7621f67 --- /dev/null +++ b/source/_templates/google_search.html @@ -0,0 +1,35 @@ +{# + google_search.html + ~~~~~~~~~~~~~~~~~~~~ + + Sphinx sidebar template: Google Custom Search box. + + source: https://cse.google.com/cse/tools/create_onthefly + see also: http://www.sphinx-doc.org/en/stable/config.html?highlight=sidebar#confval-html_sidebars +#} +{%- if pagename != "search" and builder != "singlehtml" %} +

+ +{%- endif %} diff --git a/source/_templates/layout.html b/source/_templates/layout.html new file mode 100644 index 00000000..4d865d47 --- /dev/null +++ b/source/_templates/layout.html @@ -0,0 +1,7 @@ +{# blockquote.html #} +{# Import the theme's layout. #} +{# :see: http://stackoverflow.com/questions/23462494/how-to-add-custom-css-file #} +{% extends "!layout.html" %} + +{% set css_files = css_files + ['_static/blockquote.css', '_static/rubric.css'] %} + diff --git a/source/_templates/sourcelink.html b/source/_templates/sourcelink.html new file mode 100644 index 00000000..1e6a6b41 --- /dev/null +++ b/source/_templates/sourcelink.html @@ -0,0 +1,46 @@ +{# + basic/sourcelink.html + ~~~~~~~~~~~~~~~~~~~~~ + + Sphinx sidebar template: "show source" link. + + :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{%- if show_source and has_source and sourcename %} +
+

{{ _('This Page') }}

+

Have a Question? Get help

+
    + + {% set nx_class_nm = sourcename|replace(".rst.txt","") %} + {% if variables[nx_class_nm]|length > 0 %} +

    Contributors

    + {% else %} + {% endif %} +
    + {% for vars_string in variables[nx_class_nm] %} + {% set var_list = vars_string.split('|') %} + {% set tooltip_string = var_list[0] ~ " " ~ var_list[3] %} + + GitHub Avatar + + {% endfor %} +
+
+{%- endif %} diff --git a/source/active_projects/active_projects.rst b/source/active_projects/active_projects.rst new file mode 100644 index 00000000..a8016327 --- /dev/null +++ b/source/active_projects/active_projects.rst @@ -0,0 +1,26 @@ +================= +Active Projects +================= + +.. container:: content + + .. container:: page + + .. rubric:: Active Projects + :name: active-projects + :class: page-title + + Developers are encouraged to list ongoing projects around NeXus on + this page to enable collaboration in the active phase. Just issue + a corresponding pull reguest to `this + page `__. + Please also advertise your project on the `NeXus Mailing + List `__ for + wider visibility. + + - example project + + In order to keep this page up to date, projects with the last sign + of life (on the mailing list) older than 18 month may be removed. + If no live project are found on this page for a while, this page + may be deleted entirely. diff --git a/source/codecamps/CodeCamp2020-2.rst b/source/codecamps/CodeCamp2020-2.rst new file mode 100644 index 00000000..ec111823 --- /dev/null +++ b/source/codecamps/CodeCamp2020-2.rst @@ -0,0 +1,70 @@ +============== +CodeCamp2020-2 +============== + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - October 2020 + :name: nexus-code-camp---october-2020 + :class: page-title + + The 2020-2 NeXus Code Camp is scheduled for 2 days in October + 2020: October 19 (Monday) - 20 (Tuesday). It is taking place one + week after the `2020 NIAC + meeting `__. It was + originally planned to be immediately after the `NOBUGS 2020 + conference `__, hosted by the + `European XFEL `__, but NOBUGS has been + postponed and the 2020 NIAC become an online meeting. + + .. rubric:: Purpose + :name: purpose + + The Monday of the Code Camp will be primarily an open help session + for people to ask detailed questions and request specific help + from core NeXus developers, e.g. writing an application definition + or writing a NeXus file correctly. The Tuesday will be more for + the core NeXus developers to work on implementing `NIAC + decisions `__ + + If you have a topic you wish to discuss/cover in the Monday code + camp, please add it as a comment to this `GitHub + issue `__ + + NeXus periodically convenes a Code Camp to develop NeXus software + components through intense effort by small groups working on + specific projects and tasks. It is expected that those attending + the Monday Code Camp session will already have a strong foundation + and understanding in aspects of the NeXus software and come ready + with knowledge, tools, and ideas to make significant progress + during the event. + + (For more info on code camps, try searching Google for "code camp" + or "codeathon". Events such as the `EPICS + Codeathon `__ + would be reasonable templates for this NeXus code camp.) + + Registration for the NIAC and code camp is not required. + + .. rubric:: Video Conference details + :name: video-conference-details + + We will be using Zoom (Please mute microphone when not speaking), + you can `test your connection prior to a + meeting `__ + + Zoom links for each sessions are posted on the sessions + spreadsheet below. + + It is possible to join sessions by telephone - please email + codecamp@nexusformat.org if you wish to do this and we will send + you a link to the phone numbers. + + + `Sessions + Spreadsheet `__ + + `Agenda on + Github `__ diff --git a/source/codecamps/CodeCamp2020-attendees.rst b/source/codecamps/CodeCamp2020-attendees.rst new file mode 100644 index 00000000..ef9891a1 --- /dev/null +++ b/source/codecamps/CodeCamp2020-attendees.rst @@ -0,0 +1,22 @@ +====================== +CodeCamp2020-attendees +====================== + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - January 2020 - List of Attendees + :name: nexus-code-camp---january-2020---list-of-attendees + :class: page-title + + ================== ============================ ============== + name affiliation country + ================== ============================ ============== + Pete Jemian (host) Advanced Photon Source USA + Russ Berg Canadian Light Source Canada + Aaron Brewster Lawrence Berkeley Laboratory USA + Ben Watts Paul Scherrer Institute Switzerland + Peter Chang Diamond Light Source United Kingdom + Freddie Akeroyd UKRI STFC United Kingdom + ================== ============================ ============== diff --git a/source/codecamps/CodeCamp2020-topics.rst b/source/codecamps/CodeCamp2020-topics.rst new file mode 100644 index 00000000..79404e99 --- /dev/null +++ b/source/codecamps/CodeCamp2020-topics.rst @@ -0,0 +1,84 @@ +=================== +CodeCamp2020-topics +=================== + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - January 2020 -- Topics + :name: nexus-code-camp---january-2020----topics + :class: page-title + + Gather and prioritize issues to be resolved at the `2020 NeXus + Code Camp `__. + + .. rubric:: Topics and Prioritizations + :name: topics-and-prioritizations + + All topics should be proposed as issues. Assign issues to relevant + GitHub + `milestone `__ + for release process. Post link to each issue here, as shown below. + + +----------+----------------------------+----------------------------+ + | priority | topic | link | + +==========+============================+============================+ + | tba | NXDL release 2020.1 | `definitions | + | | | #693 `__ | + +----------+----------------------------+----------------------------+ + | tba | Clarify how beam_center_x | `definitions | + | | and beam_center_y are used | PR#682 `__ | + +----------+----------------------------+----------------------------+ + | tba | consider publishing docs | `definitions | + | | in GitHub pages | #663 `__ | + +----------+----------------------------+----------------------------+ + | tba | update Sphinx config | `definitions | + | | | #659 `__ | + +----------+----------------------------+----------------------------+ + | tba | NIAC has decided about how | `definitions | + | | to report | #634 `__ | + | | | `PR#685 `__ | + +----------+----------------------------+----------------------------+ + | tba | Suggested improvements to | `definitions | + | | the NXdata base class | PR#602 `__ | + +----------+----------------------------+----------------------------+ + | tba | can NXscan be extended to | `definitions | + | | include 1-D data? | #563 `__ | + +----------+----------------------------+----------------------------+ + | tba | add "uncertainties" | `definitions | + | | attribute to fieldType in | #532 `__ | + +----------+----------------------------+----------------------------+ + | tba | datarules.rst contains | `definitions | + | | information on 2014 | #541 `__ | + +----------+----------------------------+----------------------------+ + | tba | Recording time-stamped | `definitions | + | | data | #503 `__ | + +----------+----------------------------+----------------------------+ + | tba | more prominently document | `definitions | + | | existing scheme for | #370 `__ | + +----------+----------------------------+----------------------------+ diff --git a/source/codecamps/CodeCamp2020.rst b/source/codecamps/CodeCamp2020.rst new file mode 100644 index 00000000..3ac6c9ec --- /dev/null +++ b/source/codecamps/CodeCamp2020.rst @@ -0,0 +1,744 @@ +================= +CodeCamp2020 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - January 2020 + :name: nexus-code-camp---january-2020 + :class: page-title + + The 2020 NeXus Code Camp is scheduled for 3 days in January 2020: + Jan 21 (Tuesday) - 23 (Thursday). The code camp will take place at + the `Advanced Photon Source `__, `Argonne + National Laboratory `__, IL, USA (near + Chicago). + + (We used an `online + poll `__ to help decide + the exact dates.) + + NeXus periodically convenes a Code Camp to develop NeXus software + components through intense effort by small groups working on + specific projects and tasks. It is expected that those attending + the 2020 NeXus Code Camp will already have a strong foundation and + understanding in aspects of the NeXus software and come ready with + knowledge, tools, and ideas to make significant progress during + the event. + + Specific projects and tasks are described on the `GitHub issue + tracker `__. + Issues for consideration at 2020 NeXus Code Camp will be added to + the Code Camp's `Topics + page `__ + (`edit + here `__). + These issues will be prioritized on the first day for handling at + the Code Camp. + + (For more info on code camps, try searching Google for 'code camp' + or 'codeathon'. Events such as the `EPICS + Codeathon `__ + would be reasonable templates for this NeXus code camp.) + + .. rubric:: Attendees + :name: attendees + + The list of Attendees is + `here `__. + + .. rubric:: Remote Attendees + :name: remote-attendees + + We will open certain time slots for remote attendees to + participate using `Bluejeans `__ video + conference software. Connection details will be provided here. + Please make sure your computer is configured to run Bluejeans + before the session. + + Teleconference will be available during the *organizational* + periods in the `schedule <#schedule>`__ listed below: + + - 9 - 9:30 AM CST, daily planning + + - 5 - 6 PM CST, daily summary + + - Meeting ID: **150 847 021** + + - URL: https://bluejeans.com/150847021 + + - Phone Dial-in: +1.408.317.9254 (US (San Jose)) -or- + +1.866.226.4650 (US Toll Free) + + - Global Numbers: https://www.bluejeans.com/premium-numbers + + - Room System 199.48.152.152 or bjn.vc + + - Want to test your video connection? https://bluejeans.com/111 + + .. rubric:: Registration + :name: registration + + You **must** notify the host of your visit in advance to arrange + site access. Also, see the section below titled **ANL Visitor + Registration**. + + .. rubric:: Costs + :name: costs + + - Conference fee: no fee + + - food at morning and afternoon breaks will be provided + - perhaps (no guarantee) a small meeting souvenir + + - regular meals (breakfast, lunch, dinner) will be traveler's + expense + + .. rubric:: ANL Visitor Registration + :name: anl-visitor-registration + + The Argonne visitor registration form is for individuals who are + visiting employees. + + Argonne visitor registration form: + https://apps.anl.gov/registration/visitors/ + + Indicate that you are visiting *Pete Jemian*. + + .. rubric:: Host + :name: host + + - Pete Jemian + + - X-ray Science Division + - Advanced Photon Source, Argonne National Laboratory + - 9700 South Cass Avenue + - Argonne, IL 60439 USA + - email: jemian@anl.gov + - office phone: +1-630-252-3189 (forwards to mobile) + - Google voice: +1-847-859-9775 (forwards to mobile) + + .. rubric:: Meeting Place + :name: meeting-place + + Building 437 (LOM 437 on the sign), Conference Room C010 (Advanced + Photon Source) + + map: `google `__ + + .. rubric:: Recommended Lodging + :name: recommended-lodging + + Please reserve your own rooms directly with the hotel: + + | `Argonne Guest House `__ + | Argonne National Laboratory + | 9700 S. Cass Avenue - Building 460 + | Argonne, IL 60439 + | Web site: http://www.anlgh.org/ + | telephone: +1-800-632-8990, +1-630-739-6000 + | fax: +1-630-739-1000 + | map: `google `__ + | General information: `Visiting the + APS `__ + + .. rubric:: Directions + :name: directions + + - airport: + + - Chicago O'Hare (ORD): international + - Chicago Midway (MDW): domestic + - Milwaukee, WI Mitchell Field (MKE): distant alternative + + - taxi: + + - Call for a taxi pickup only after you have all your bags + - Must be a taxi that goes to Chicago suburbs + - suburban taxi will pickup in second lane of arrivals at + Chicago O'Hare airport + - http://www.americantaxi.com, 1-800-244-1177 (automated + system) + - ' others ' + + - airport bus: http://www.airportexpress.com/shuttles/ohare.html + - commuter train: + + - inconvenient + + .. rubric:: Practical Matters + :name: practical-matters + + .. rubric:: Equipment + :name: equipment + + +--------------------------------------------------+------------+---------------+ + | item | quantity | who provides? | + +==================================================+============+===============+ + | projector & screen | ' | host | + +--------------------------------------------------+------------+---------------+ + | LCD displays, keyboards, & mice | ' | host | + +--------------------------------------------------+------------+---------------+ + | 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | + +--------------------------------------------------+------------+---------------+ + | foreign electrical power adapter | as needed | traveler | + +--------------------------------------------------+------------+---------------+ + | Wi-Fi connections | sufficient | hotel | + +--------------------------------------------------+------------+---------------+ + + .. rubric:: Meals + :name: meals + + - No meals are provided by the code camp. + - Light refreshments will be available for the breaks. + - Attendees of the Code Camp will decide *ad hoc* on where to + have their meals. + + .. rubric:: Agenda + :name: agenda + + .. rubric:: Business Matters + :name: business-matters + + Since this is not to be a meeting of the full NIAC, no business + matters can be resolved. + + .. rubric:: Goal + :name: goal + + Resolve + `issues `__ + and + `milestone `__ + to prepare next `release of + NXDL `__. + + Suggestions: + + - We should take this opportunity to provide the standard + *Introduction to NeXus* as a public presentation. + - We should allow time for an open, working lunch on one of the + days to interact with the community able to attend. + - If someone wishes to make any other public presentation, either + during, before, or after the Code Camp, please contact the + host. + + .. rubric:: Schedule + :name: schedule + + - arrive evening before the Code Camp + - conference check-in Day 1 morning + - meet Day 1 + - meet Day 2 + - meet Day 3 + - checkout next day morning + + Here is the daily schedule (teleconference for `remote + attendees <#remote-attendees>`__ will be available during the + *organizational* periods, see `above <#remote-attendees>`__ for + connection details). All times listed are Central Standard Time + (CST): + + =================== =============== =========================== + time description comments + =================== =============== =========================== + 9:00 - 9:30 AM organizational daily planning (plenary) + 9:30 - 10:15 AM meeting work on projects and tasks + 10:15 - 10:45 AM morning break (included) + 10:45 AM - 12:00 PM meeting work on projects and tasks + 12:00 - 1:15 PM lunch offsite, traveler's expense + 1:15 - 3:15 PM meeting work on projects and tasks + 3:15 - 3:30 PM afternoon break (included) + 3:30 - 5:00 PM meeting work on projects and tasks + 5:00 - 6:00 PM organizational daily summary (plenary) + =================== =============== =========================== + + Notes: + + #. late-afternoon wrap-up (plenary) each day + #. morning and afternoon breaks will be included in amenities + charge + #. breakfast, lunch, dinner will be in a local restaurant at + traveler's expense + + .. rubric:: Day 1 + :name: day-1 + + - Check-in, Welcome, and introductions + - Decide which + `topics `__ + to work on and resolve during this code camp. + + - this took longer than expected (about 90 minutes) + - we used a `shared Google Docs + spreadsheet `__ + to list GitHub issues, assign priorities, note workers, and + report status + + - AOB? + - work on issues + + .. rubric:: Day 2 + :name: day-2 + + - work on issues + + .. rubric:: Day 3 + :name: day-3 + + - work on issues + - make release (or release candidate) of NXDL per `release + procedure `__ + - AOB? + + .. rubric:: Minutes for the meeting + :name: minutes-for-the-meeting + + | We don't typically record minutes for the Code Camps. + | Rather, the work progress is recorded in the GitHub issue + trackers for the various repositories involved. + + We'll note here certain progress items or any questions or + recommendations for the NIAC. + + - We are looking to `publish the manual through GitHub + Pages `__: + https://manual.nexusformat.org + - We made excellent progress on the *Gold Standard for NXmx*, + helping both the MX, FEL, and synchrotron communities and the + vendor support. + - We have registered a `DOI with + zenodo `__ that updates with + each release of the definitions repository. The DOI link is + noted on our `GitHub home + page `__. + - We expect to make a release of NXDL 2020.1 on 2020-01-31. + + .. rubric:: Code Camp Tasks + :name: code-camp-tasks + + We list here the various tasks we handled during the code camp, + with a disposition for each, as copied from the Google Sheet we + shared. + + +-------------+--------------------------+-------------------------+ + | repository | task | disposition | + +=============+==========================+=========================+ + | definitions | `NXDL data type vs NAPI | Done | + | | type vs NeXus data type: | | + | | clarify and | | + | | simplify! `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `more prominently | Done | + | | document existing scheme | | + | | for | | + | | uncertainties `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Recording time-stamped | Done | + | | data `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Create structure to | Done | + | | incorporate PDB | | + | | definitions into | | + | | NeXus `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `use consistent terms | Done | + | | when names are | | + | | flexible `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `NIAC has decided about | Done | + | | how to report | | + | | errors/ | | + | | uncertainties `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `[DOC] C example uses | Done | + | | old style | | + | | NXdata `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Added documentation for | Done | + | | variants to | | + | | datarules.rst `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `How to specify per-shot | Done | + | | wavelength `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `close branch | Done | + | | pixel_as_len | | + | | gth_issue_511 `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `integrate NIAC decision | Done | + | | on errors & | | + | | uncertainties `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `NXDL release | *expected 2020-01-31* | + | | 2020.1 `__ | | + +-------------+--------------------------+-------------------------+ + | exampledata | `Can we remove the file | Done | + | | trees from the readme | | + | | files as they are out of | | + | | date and need to be | | + | | manually | | + | | updated `__ | | + +-------------+--------------------------+-------------------------+ + | exampledata | `separate out | Done | + | | non-compliant data | | + | | files `__ | | + +-------------+--------------------------+-------------------------+ + | exampledata | `Example thaumatin | Done | + | | multisample | | + | | NXmx/NXreflections | | + | | file. `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Clarify note on IUCr | Done | + | | coordinate | | + | | system. `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `add 'uncertainties' | closed as wontfix | + | | attribute to fieldType | | + | | in | | + | | nxdl.xsd `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `'Are there examples of | Done | + | | NeXus data?' - asked at | | + | | Nobugs | | + | | 2018 `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `'Are there examples of | Done | + | | code that reads NeXus | | + | | data?' - asked at Nobugs | | + | | 2018 `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `docs: add text when a | Done | + | | group name is | | + | | suggested `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `can NXscan be extended | moved to next milestone | + | | to include 1-D | | + | | data? `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `update Sphinx | Done | + | | config `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `consider publishing | Done | + | | docs in GitHub | | + | | pages `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `examples of | moved to next milestone | + | | axes/AXISNAME_indices | | + | | attributes `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `datarules.rst contains | moved to next milestone | + | | information on 2014 | | + | | discussions `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `clarify how to name | NIAC to review | + | | fields and | | + | | groups `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `clarify naming | NIAC to review | + | | convention `__ | | + +-------------+--------------------------+-------------------------+ + | exampledata | `some example files for | after code camp | + | | NXptycho `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Is use of UPPER case | Done | + | | names described in the | | + | | manual? `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Need new links to | Done | + | | h5toText | | + | | program `__ | | + +-------------+--------------------------+-------------------------+ + | exampledata | `critique.py was not | Done | + | | working `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Slow/fast axis | Done | + | | inconsistent in | | + | | NXde | | + | | tector_module `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `adjust links for | Done | + | | h5toText, now punx | | + | | tree `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `update copyright date | Done | + | | to | | + | | 2020 `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `2020 | Done | + | | copyright `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `some unit tests fail | Done | + | | since flexible names are | | + | | UPPER | | + | | case `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `certain unit tests had | Done | + | | failed `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `NXmx has fields that | Done | + | | may not have to be | | + | | required `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `update Sphinx config to | Done | + | | 2.3.1 `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `DATASET_errors naming | Done | + | | convention should appear | | + | | in | | + | | manual `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `PDF manual does not | Done | + | | build `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Remove references to | Done | + | | NAPI from schema and | | + | | documentation `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `describe field suffixes | Done | + | | reserved by | | + | | NeXus `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Improved documentation | Done | + | | about time stamped | | + | | data `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `cleanup in | Done | + | | nxdl.xsd `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `cleanup in nxdl.xsd (PR | Done | + | | to | | + | | #725) `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Remove some references | Done | + | | to NAPI for | | + | | #699 `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Makefile can't build | Done | + | | the PDF | | + | | manual `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `editing needed in | Done | + | | datarules.rst new | | + | | content `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Clarify the nature of | Done | + | | NeXus application | | + | | definitions `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Clarify the nature of | Done | + | | NeXus application | | + | | definitions `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `GitHub API | Done | + | | authentication has | | + | | changed : affects the | | + | | release | | + | | process `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Revise release note | Done | + | | scripting `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `create_release_notes.py | Done | + | | should use SHA | | + | | credentials `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `added | Done | + | | type='NX_FLOAT' `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `NXstxm nxdl does not | Done | + | | specify a type for the | | + | | energy field for | | + | | [/NXentry | | + | | /NXinstrument/NXmonochro | | + | | mator/energy] `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `cite API | Done | + | | contributions `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Update example for new | Done | + | | axes syntax and for HDF | | + | | 1.8.0 and | | + | | above `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Reduce number of | Done | + | | mandatory fields in | | + | | NXcxi_ptycho `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `adjust doc string in | Done | + | | NXcxi_ptycho `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `writer_2_1 example | Done | + | | broken `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `Bad indentation in | Done | + | | NXcxi_ptycho `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `add h5py example reader | Done | + | | using attributes to find | | + | | default plottable | | + | | data `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `From code camp, clarify | Done | + | | NXmx/NXdetector | | + | | depends_on | | + | | field. `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `From code camp, Make | Done | + | | NXmx/NXdata | | + | | optional. `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `From code camp, add | Done | + | | note to NXmx that | | + | | file_name and file_time | | + | | are | | + | | recommended `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `in release notes, TOC | Done | + | | link to each | | + | | subsection `__ | | + +-------------+--------------------------+-------------------------+ + | definitions | `in release notes TOC, | Done | + | | add link to each | | + | | subsection `__ | | + +-------------+--------------------------+-------------------------+ + + page source: `GitHub link `__ diff --git a/source/codecamps/CodeCamp2021-1.rst b/source/codecamps/CodeCamp2021-1.rst new file mode 100644 index 00000000..efc0caa3 --- /dev/null +++ b/source/codecamps/CodeCamp2021-1.rst @@ -0,0 +1,64 @@ +================= +CodeCamp2021-1 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - March 2021 + :name: nexus-code-camp---march-2021 + :class: page-title + + The 2021-1 NeXus Code Camp is scheduled for 2 days in March 2021: + March 22 (Monday) - 23 (Tuesday). It will be an online meeting, + copying the format of the `2020 Code Camp + 2 `__. A + follow-up session will be held at 14:00 UTC on March 29 (Monday) + in order to finish discussions. + + The Code Camp is intended to be both an open help session for + people to ask detailed questions and request specific help from + core NeXus developers (e.g. writing an application definition or + writing a NeXus file correctly) and to focus on developing the + NeXus documentation and code. + + If you have a topic you wish to discuss in the code camp, please + mention it in a comment to this `GitHub + issue `__. + + NeXus periodically convenes a Code Camp to develop NeXus software + components through intense effort by small groups working on + specific projects and tasks. Most of those attending the Code Camp + session will already have a strong foundation and understanding in + aspects of the NeXus software and come ready with knowledge, + tools, and ideas to make significant progress during the event. If + you don"t feel confident in your current level of knowledge about + NeXus, you can contribute by reading the documentation and + pointing out errors and inconsistencies while you are learning. + Contributing new or improved images for the documentation is also + helpful. + + (For more info on code camps, try searching Google for "code camp" + or "codeathon". Events such as the `EPICS + Codeathon `__ + would be reasonable templates for this NeXus code camp.) + + Registration for the NIAC and code camp is not required. + + We will be using Zoom (Please mute microphone when not speaking), + you can `test your connection prior to a + meeting `__ + + Zoom links for each sessions are posted on the sessions table + below. + + It is possible to join sessions by telephone - please email + codecamp@nexusformat.org if you wish to do this and we will send + you a link to the phone numbers. + + `Session + times `__ + + `Project on + Github `__ diff --git a/source/codecamps/CodeCamp2022.rst b/source/codecamps/CodeCamp2022.rst new file mode 100644 index 00000000..a8a19540 --- /dev/null +++ b/source/codecamps/CodeCamp2022.rst @@ -0,0 +1,94 @@ +================= +CodeCamp2022 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - June 2022 + :name: nexus-code-camp---june-2022 + :class: page-title + + The 2022 NeXus Code Camp is scheduled for the week of June 13-17th + and will focus on fixing issues to meet the next release + milestone. + + At some point during the week, we must decide what issues and pull + requests in the definitions repository will be finished by the end + of this Code Camp for inclusion in the next release **this + month**. All unfinished issues and PRs for this milestone of the + definitions repository will be moved to the next milestone. + + .. rubric:: Issues and pull requests + :name: issues-and-pull-requests + + To help the upcoming code camp organize and track its work, a + GitHub project has been created. You can `add additional issues + and pull + requests `__ + by dragging each to the "To do" column. The list is filled from + any of the repositories that are connected to the project. As a + start, existing open pull requests were added to the appropriate + column based on inspection of the comments in each. + + If you have some other matter to add, create an issue in the + appropriate repository and then you can add it to this project. If + it should be considered for the next release of the definitions + repository, add the issue (or pull request) to the `NXDL + 2022.06 `__ + + .. rubric:: Meetings Schedule + :name: meetings-schedule + + Regular video meetings will be run over the course of the week of + June 13-17th in order to aid communication. Since we spread over + the globe, our normal work schedules are not going to overlap + perfectly and participants are encouraged to attend whichever + sessions reasoably fit their own work/life schedule. Sessions + **B** and **D** provide the best opportunities to get everyone + together and participants are encouraged to make an effort to join + these sessions. + + All sessions will use the same Zoom meeting: + + - link: + https://psich.zoom.us/j/68015435330?pwd=UHhBU2VBaldpcVFRZFY4QytpNnplZz09 + - ID: 680 1543 5330 + - password: nexus + + +-----------+-----------+-----------+-----------+-----------+-----------+ + | Session | Location | | | | | + +===========+===========+===========+===========+===========+===========+ + | Tokyo | San Fran | New York | London | Z rich | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | A | 18:00 | 02:00 | 05:00 | 10:00 | 11:00 | + | 09 | | | | | | + | :00-11:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | B | 22:00 | 06:00 | 09:00 | 14:00 | 15:00 | + | 13 | | | | | | + | :00-15:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | C | 02:00 | 10:00 | 13:00 | 18:00 | 19:00 | + | 17 | | | | | | + | :00-19:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | D | 06:00 | 14:00 | 17:00 | 22:00 | 23:00 | + | 21 | | | | | | + | :00-23:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | E | 10:00 | 18:00 | 21:00 | 02:00 | 03:00 | + | 01 | | | | | | + | :00-03:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | F | 14:00 | 22:00 | 01:00 | 06:00 | 07:00 | + | 05 | | | | | | + | :00-07:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ diff --git a/source/codecamps/CodeCampJune2023.rst b/source/codecamps/CodeCampJune2023.rst new file mode 100644 index 00000000..865acfe1 --- /dev/null +++ b/source/codecamps/CodeCampJune2023.rst @@ -0,0 +1,78 @@ +================= +CodeCampJune2023 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NeXus Code Camp - June 2023 + :name: nexus-code-camp---june-2023 + :class: page-title + + The June 2023 NeXus Code Camp is scheduled for four days split + over two weeks of June 2023, 15-16 & 20-21, and will focus on + fixing issues and discussing proposed additions. + + To help the upcoming code camp organize and track its work, a + GitHub project has been created. You can `add additional issues + and pull + requests `__ + by dragging each to the "To do" column. The list is filled from + any of the repositories that are connected to the project. As a + start, existing open pull requests were added to the appropriate + column based on inspection of the comments in each. + + If you have some other matter to add, create an issue in the + appropriate repository and then you can add it to this project. + + Regular video meetings will be run over the course of June 15-16 & + 20-21 in order to aid communication. Since we are spread over the + globe, our normal work schedules are not going to overlap + perfectly and participants are encouraged to attend whichever + sessions reasoably fit their own work/life schedule. Sessions + **B** and **D** provide the best opportunities to get everyone + together and participants are encouraged to make an effort to join + these sessions. + + All sessions will use the same Zoom meeting: + + - https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Password: nexus + + +-----------+-----------+-----------+-----------+-----------+-----------+ + | Session | Location | | | | | + +===========+===========+===========+===========+===========+===========+ + | Tokyo | San Fran | New York | London | Z rich | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | A | 18:00 | 02:00 | 05:00 | 10:00 | 11:00 | + | 09 | | | | | | + | :00-11:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | B | 22:00 | 06:00 | 09:00 | 14:00 | 15:00 | + | 13 | | | | | | + | :00-15:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | C | 02:00 | 10:00 | 13:00 | 18:00 | 19:00 | + | 17 | | | | | | + | :00-19:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | D | 06:00 | 14:00 | 17:00 | 22:00 | 23:00 | + | 21 | | | | | | + | :00-23:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | E | 10:00 | 18:00 | 21:00 | 02:00 | 03:00 | + | 01 | | | | | | + | :00-03:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ + | F | 14:00 | 22:00 | 01:00 | 06:00 | 07:00 | + | 05 | | | | | | + | :00-07:00 | | | | | | + | UTC | | | | | | + +-----------+-----------+-----------+-----------+-----------+-----------+ diff --git a/source/codecamps/Code_Camp_2015.rst b/source/codecamps/Code_Camp_2015.rst new file mode 100644 index 00000000..4d2a098a --- /dev/null +++ b/source/codecamps/Code_Camp_2015.rst @@ -0,0 +1,184 @@ +================= +Code Camp 2015 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Code Camp 2015 + :name: code-camp-2015 + :class: page-title + + This years NeXus Code Camp takes place from 16.11.-18.11.2015 at + the DESY campus in Hamburg, Germany. + + .. rubric:: Location and Accommodation + :name: location-and-accommodation + + .. rubric:: The DESY campus + :name: the-desy-campus + + The event will take place at the `DESY + Campus `__ + in Hamburg. A PDF version of our site map can be found + `here `__. + + .. rubric:: Traveling + :name: traveling + + Getting to Hamburg + + by plane + + - `Airport Hamburg `__ + + by train + + - station Hamburg-Hauptbahnhof + - station Hamburg-Altona + + Independent of whether you come by train or plane, once you are in + Hamburg, getting to DESY is easy. + + - take the S-Bahn (S1) in the direction of *Wedel/Blankenese* + until station *Othmarschen* + - take the Bus (M1) from *Othmarschen* in direction + *Wedel/Blankenese/Risse*\ n until + + - station *Trabrennbahn Bahrenfeld* (if you stay in the + Mercure Hotel) + - or until *DESY/Huennengrab* (if you stay at the DESY guest + house). + + .. rubric:: Lodging + :name: lodging + + I recommend that you book a room either at + + - the `DESY guest + house `__ + - or at the `Mercure Hotel Hamburg am + Volkspark `__ + + .. rubric:: Local contact + :name: local-contact + + Eugen Wintersberger + + Mail: eugen.wintersberger@desy.de + + Tel: +49 40 8998 1917 + + As DESY has a fairly relaxed security policy, the registration + procedure is rather simple: just write an email to + eugen.wintersberger@desy.de announcing your attendance. The mail + should include the following information + + - your name + - your institute + - additional equipment like monitors and/or keyboards if you need + one. + + No gate passes are required to enter the site. However, I will + prepare some badges for you in case you"re getting lost ;). + + .. rubric:: Registered attendees + :name: registered-attendees + + +----------------------+----------------------+----------------------+ + | Name | Institution | Special Requirements | + +======================+======================+======================+ + | Tobias Richter | European Spallation | *none* | + | | Source | | + +----------------------+----------------------+----------------------+ + | Mark K"nnecke | Paul Scherrer | *none* | + | | Institut - SINQ | | + +----------------------+----------------------+----------------------+ + | Herbert J. Bernstein | Rochester Institute | *none* | + | | of Technology | | + +----------------------+----------------------+----------------------+ + | Mark Basham | Diamond Light Source | *none* | + +----------------------+----------------------+----------------------+ + | Peter Chang | Diamond Light Source | *none* | + +----------------------+----------------------+----------------------+ + | Chris Kerr | EMBL | *none* | + +----------------------+----------------------+----------------------+ + + + ========= ========== ============ ========= ============= + Day Date Time Activity Room + ========= ========== ============ ========= ============= + Sunday 15.11.2015 all day arrival " + Monday 16.11.2015 9:00 - 18:00 Code Camp 109 Bldg. 25b + Tuesday 17.11.2015 9:00 - 18:00 Code Camp 109 Bldg. 25b + Wednesday 18.11.2015 9:00 - 18:00 Code Camp 109 Bldg. 25b + ========= ========== ============ ========= ============= + + +---------------+------------------------------------+---------------+ + | Time | Activity | Room | + +===============+====================================+===============+ + | 9:00 - 10:00 | Welcome, Discussions and setting | 109 Bldg. 25b | + | | up projects | | + +---------------+------------------------------------+---------------+ + | afternoon | project work | 109 Bldg. 25b | + +---------------+------------------------------------+---------------+ + | 12:00 - 13:00 | lunch | | + +---------------+------------------------------------+---------------+ + | 13:00 - 14:00 | after lunch discussions (report on | | + | | progress), Eiger compression, | | + | | NXmx? | | + +---------------+------------------------------------+---------------+ + | 17:00 - 18:00 | Teleconference `Telco | 109 Bldg. 25 | + | | 20151116 `__ | | + +---------------+------------------------------------+---------------+ + + ========= ============================================= ============= + Time Activity Room + ========= ============================================= ============= + morning quick report, project work 109 Bldg. 25b + afternoon reshuffle projects if required, work on tasks 109 Bldg. 25b + ========= ============================================= ============= + + ========= ============================= ============= + Time Activity Room + ========= ============================= ============= + morning quick report, project work 109 Bldg. 25b + afternoon Summary, plan ahead,close out 109 Bldg. 25b + ========= ============================= ============= + + .. rubric:: More topics for the agenda + :name: more-topics-for-the-agenda + + - NAPI Release + + - RC3 - done-ish + - TravisCI - jenkins access restrored, might be sufficient + - download pages (consolidate websites, Wiki and other + documentation) + - python will follow within two weeks as a separate build + + - Features Research Project + + - More Feature Examples + - Web service + + - Validation + + - Testing + - Location of Source (code, definitions, own repo) + - dealing with different versions of NXDL files (discussion + topic) + + - NXmx implementation -discussed with Dectris + - Detector Geometry - will look at recent DLS i16 example file in + examples repository + - NXcanSAS - discussed, documentation needs to be updated + - NXsample alignment with CIF - agreed in principle proposal will + follow + + - new repositories (to be created): + + - hdffilters + - nxvalidate + - python package diff --git a/source/codecamps/Code_Camp_2017.rst b/source/codecamps/Code_Camp_2017.rst new file mode 100644 index 00000000..889b05cb --- /dev/null +++ b/source/codecamps/Code_Camp_2017.rst @@ -0,0 +1,245 @@ +================= +Code Camp 2017 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Code Camp 2017 + :name: code-camp-2017 + :class: page-title + + .. rubric:: NeXus Code Camp - 24th to the 26th of October, 2017 + :name: nexus-code-camp---24th-to-the-26th-of-october-2017 + + .. rubric:: Location: The Cosener"s house, Abingdon UK + :name: location-the-coseners-house-abingdon-uk + + `Venue Website with contact + details `__ + + .. rubric:: Tuesday + :name: tuesday + + .. rubric:: Morning + :name: morning + + - Shape descriptions (Dean Keeble and Tim Spain will be visiting) + + .. rubric:: Afternoon + :name: afternoon + + - C++ wrappers for HDF5 + - Versioning + + .. rubric:: After Coffee + :name: after-coffee + + - Features + - Example files for Ray. + + .. rubric:: Evening + :name: evening + + - 6:00 - 6:30 pre dinner drink + - 7:00 - Dinner at cosners house + + - Main-Course: Rack of lamb with rosemary crumb, dauphinoise + potato, chargrilled courgette, vine roasted cherry tomato, + fine bean parcel and rosemary jus + - Vegetarian Option: Asparagus and broad bean risotto, + parmesan tuile and lemon balm + - Pudding: Classic glazed lemon tart, cr me fraiche and + berries + + .. rubric:: Wednesday + :name: wednesday + + .. rubric:: Morning + :name: morning-1 + + - PDB integration (Greame Winter and Charles Mita will be + visiting) + - Dealing with dropped frames + + .. rubric:: Afternoon + :name: afternoon-1 + + - 3pm VC with Pete on Versioning + - Detectors with modules in modules. (Aaron Brewster may be VCing + in) + + .. rubric:: Evening + :name: evening-1 + + - Reservartion for 7:00 at + `wildwood `__ + + .. rubric:: Thursday + :name: thursday + + .. rubric:: Morning + :name: morning-2 + + - Event data (Alan Greer also attending) + - Event log disscussion and focus on example files. + + .. rubric:: Afternoon + :name: afternoon-2 + + - Wrap up and Telco + + The aim is to start at 10:00 on the 24th, 9:00 the other days and + finish early afternoon on the 26th. + + .. rubric:: Tuesday Morning + :name: tuesday-morning + + Introductions + + - Move the PDB and versions to the afternoons so that Pete Jemian + can VC in + + First item is to investigate the shape methodoloy as investigated + by the ESS team + + - There is concern over how the shape can accurately describe + detectors, and how the data is mapped to the shape. + - Visualisation is important, but so it the use of full + descriptions for analyis + - The `OFF + format `__ + will be used for Mantid and McStas + - A new description for + `Quadrics `__ + will be developed by DLS to deal with more complex descriptions + for use with xrmc. There should be a converter for this to the + OFF NeXus description. + + .. rubric:: Tuesday Afternoon + :name: tuesday-afternoon + + 2 Seperate threads + + .. rubric:: Versioning + :name: versioning + + - Looking at the versioning concept as in the + `document `__ + - Big discussion about the complexity of local vrs. global + versioning, i.e version on baseclasses vrs. versioning on the + file. + - Came to the conclusion of a single version number which + increments gradually and incrementally to deal with new + versions. + - Things to do + + - UPDATE WORKFLOW - Questions here, but we will try to address + at the code camp. + - VERSIONING SEMANTIC - Big changes bump version by 1 + - VALIDATION - is easier now as there is only one global + version to validate against + - LEGACY DOC - Still in the repository. + + .. rubric:: C++ wrappers for HDF5 + :name: c-wrappers-for-hdf5 + + - On ess-dmsc github + `h5cpp `__ + - Came out of some HDF work, didn"t like the C++ API. + - Various parties were doing their own - Tobias asked them to + work together. + - Eugen and Martin, ocassionally Jonas Nilison + - Auto builds docs, doxygen + - Migration of Eugen PNI code at the beginning. Lack of tests, + now adding more tests. + - Aim to cover all of HDF5 features, e.g. SWMR, compound data + types etc. + - Examples of implementation: write_simple_vector + - Suggest to use clang format. + - Using google"s style guide - need consistency + - Fortnightly meetings + - Implemented types: basic types int, float etc. + - Going to be used in the file writer + - Trying to make it as easy to use as h5py + - Looked at internal Paths + - Plan to create performance tests + - Will put on to conan + - Martin will replace the na ve version he is currently using. + - Detector people are interested in using it to store diagnostic + data. + - Happy to take suggestions for things to be implement from other + parties. + - Discussed using in-memory files for performance tests + - Setting up Windows automated build and hoping to OSX + - MPI support in the future? + - Using runtime exceptions - should it use something more + tailored? Do something with the hdf error stack + + .. rubric:: Wednesday Morning + :name: wednesday-morning + + .. rubric:: NXmx PDB discussion + :name: nxmx-pdb-discussion + + - It was decided that NXmx could easily contain an NXpdb which + contains the basic information required for PDB ingest + - Charles Mita from DLS will make a first pass at this for VMXi + data + + .. rubric:: Dropped frames + :name: dropped-frames + + - could the value be set to NXdetector.undefined, or + NXdetector.saturation_value + - Could the count_time value be set to zero (or annother value) + for the frame which is not there. + + - a valid count time is anything zero or above, anything other + than this is an invalid frame. + + - The solution was to create a new dataset called frame_acquired + + - a boolean dataset + - True if the frame is correcly collected, if the frame has + been dropped by the datawriter and padded with fill value, + then this shoud be set to False + - The fill value should be set to a value larger than the + NXdetector.saturation_value + + .. rubric:: Wednesday Afternoon + :name: wednesday-afternoon + + .. rubric:: Features + :name: features + + We all continued to work on features. + + .. rubric:: Versions revisitited with Pete + :name: versions-revisitited-with-pete + + - It was agreed that Base class versions were not that useful, + and so these can be made optional to inherit from the main + version + - Agreed with the concept of global versioning + - in the January release the version numbers will move to + Year.Month instead of 3.4 + + .. rubric:: Modules in Modules, with Aaron Brewster. + :name: modules-in-modules-with-aaron-brewster + + - Seems like a sencible option + - TASK on AB to update the documentaion on modules to clarify the + usage of the depends-on and pixel size + - TASK on AB to make an NXlog index class for multiple event + streams. + + .. rubric:: Thursday Morning + :name: thursday-morning + + - Discussion on NXevent_data + - Continue on features + + .. rubric:: Thursday Afternoon + :name: thursday-afternoon diff --git a/source/codecamps/codecamps.rst b/source/codecamps/codecamps.rst new file mode 100644 index 00000000..cdc07df0 --- /dev/null +++ b/source/codecamps/codecamps.rst @@ -0,0 +1,27 @@ +========= +Codecamps +========= + +.. container:: content + + .. container:: page + + .. rubric:: Codecamps + :name: codecamps + :class: page-title + + NeXus code camps occur typically every other year to the in person meeting that occurs every two years + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + Code_Camp_2015 + Code_Camp_2017 + CodeCamp2020-2 + CodeCamp2020-attendees + CodeCamp2020 + CodeCamp2020-topics + CodeCamp2021-1 + CodeCamp2022 + CodeCampJune2023 diff --git a/source/conf.py b/source/conf.py new file mode 100644 index 00000000..453d87fd --- /dev/null +++ b/source/conf.py @@ -0,0 +1,138 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +import sys, os, datetime +import shutil +import warnings + +# Suppress all warnings in Sphinx +# warnings.filterwarnings('ignore') +suppress_warnings = ['misc'] +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# add the abs path to the custom extension for collecting the contributor variables from the rst files +sys.path.insert(0, os.path.abspath('../dev_tools/ext')) +# -- Project information ----------------------------------------------------- + +project = 'nexusformat_wiki' +copyright = '2025, nexus' +author = 'nexus' +release = '1' + +# -- General configuration --------------------------------------------------- + +# https://github.com/nexusformat/definitions/issues/659#issuecomment-577438319 +needs_sphinx = '2.3' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx_toolbox.collapse', + 'sphinx.ext.mathjax', + 'sphinx.ext.ifconfig', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages', + 'sphinx.ext.todo', + 'sphinx_tabs.tabs', + 'contrib_ext', + 'myst_parser', +] + +# Show `.. todo` directives in the output +# todo_include_todos = True +source_encoding = 'utf-8-sig' +source_suffix = { + '.rst': 'restructuredtext', + '.md': 'markdown', +} + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +# html_theme = 'alabaster' +html_theme = 'sphinxdoc' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] +# html_extra_path = ['md'] + +# Add extra files +#html_extra_path = ['CNAME'] + +html_sidebars = { + '**': [ + 'localtoc.html', + 'relations.html', + 'sourcelink.html', + 'searchbox.html', + 'google_search.html' + ], +} + +# html_extra_path = ['pdfs'] + +def setup(app): + print("Sphinx setup() function is being called") + + def copy_asset(source_dir, target_dir): + if not os.path.exists(source_dir): + print(f"WARNING: The directory {source_dir} does not exist.") + return + print(f"Copying {source_dir} to {target_dir}") + shutil.copytree(source_dir, target_dir, dirs_exist_ok=True) + + def do_copy(): + print("Sphinx do_copy() function is being called") + copy_asset(os.path.join(app.srcdir, 'extra_files'), os.path.join(app.outdir, 'extra_files')) + copy_asset(os.path.join(app.srcdir, 'pdfs'), os.path.join(app.outdir, 'pdfs')) + + + + + def copy_extra_files(app, exception): + print("Sphinx copy_extra_files() function is being called") + if exception: + return + + app.connect('build-finished', lambda app, exception: do_copy()) + app.add_css_file('details_summary_hide.css') + # Sapp.connect('build-finished', copy_extra_files) + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = "../common/NeXus_Logo_square.png" + +# Output file base name for HTML help builder. +htmlhelp_basename = 'NeXusManualdoc' + +# -- Options for Latex output ------------------------------------------------- +latex_elements = { + 'maxlistdepth':25, # some application definitions are deeply nested + 'preamble': r''' + \usepackage{amsbsy} + \DeclareUnicodeCharacter{1F517}{X} + \DeclareUnicodeCharacter{2906}{<=} + \listfiles''' +} diff --git a/source/content/2014_How_to_find_default_data.rst b/source/content/2014_How_to_find_default_data.rst new file mode 100644 index 00000000..004a5bc8 --- /dev/null +++ b/source/content/2014_How_to_find_default_data.rst @@ -0,0 +1,42 @@ +============================= +2014 How to find default data +============================= + + +--- title: 2014 How to find default data permalink: +2014_How_to_find_default_data.html layout: wiki --- (written for +[NIAC2014\\_Meeting](NIAC2014_Meeting.html "wikilink")) One of the +[motivations](https://manual.nexusformat.org/motivations.html) for NeXus +is [simple +plotting](https://manual.nexusformat.org/motivations.html#simpleplotting). +The [procedure to find the default data to be +plotted](https://manual.nexusformat.org/datarules.html#find-plottable-data) +is convoluted. In some cases (files with multiple NXentry and/or NXdata +groups), it is not certain which data will be found. This proposal is to +add a new and simpler mechanism to manage (both set and determine) the +path to the default data. The intent is that this addition to NeXus +preserves backwards compatibility and becomes the standard way for new +data files to identify the default data to be plotted. Proposal -------- +It is proposed to add a deterministic method to identify the default +data for visualization in a data file. It is expected that this will +become the preferred method from now on. - add \**default\\_NXentry*\* +attribute to the root of the file that states which NXentry is the +default. The value is the name of the NXentry group. - add +\**default\\_NXdata*\* attribute to each NXentry that states which +NXdata is the default. The value is the name of the NXdata group. - add +\**signal*\* attribute to each NXdata that states which dataset is the +default. The value is the name of the dataset to be plotted. These +default attributes only describe child elements, not child/object or +../object or other hierarchy. The procedure to identify the default data +to be plotted is quite simple, given any NeXus file, any NXentry, or any +NXdata. Follow the chain as it is described from that point. Conclusion +---------- Ratified in a slightly modified form at NIAC 2014. See Niac +2014 minutes Summary of that modification: - add \**default*\* attribute +to the root of the file that states which NXentry is the default and +only to resolve ambiguity when more than one NXentry exists. The value +is the name of the NXentry group. - add \**default*\* attribute to each +NXentry that states which NXdata is the default and only to resolve +ambiguity when more than one NXdata exists. The value is the name of the +NXdata group. - add \**signal*\* attribute to each NXdata that states +which dataset is the default. The value is the name of the dataset to be +plotted. diff --git a/source/content/2014_axes_and_uncertainties.rst b/source/content/2014_axes_and_uncertainties.rst new file mode 100644 index 00000000..fa87b360 --- /dev/null +++ b/source/content/2014_axes_and_uncertainties.rst @@ -0,0 +1,304 @@ +=========================== +2014 axes and uncertainties +=========================== + +--- +title: 2014 axes and uncertainties +permalink: 2014_axes_and_uncertainties.html +layout: wiki +--- + +(written for NIAC2014_Meeting) + +In developing the canSAS standard for storing multidimensional reduced small-angle scattering data, a new method for +identifying the related axes and uncertainties was devised. It is proposed that this will be a good addition to NeXus, +adding flexibility to data file writers while preserving an obvious path from data to axes and uncertainties. + +Proposal to describe N-dimensional data (Axes) +---------------------------------------------- + +(see this from canSAS: ) + +NeXus needs a robust method to describe and associate the axes of data with arbitrary dimensions in files. Particularly, +the existing methods rely on the concept of HDF dimension scales to describe each of the axes. There is no capability in +NeXus to describe multi-dimensional axes associated with plottable data. The current method of identifying the default +data in NeXus files by adding attributes to datasets does not work in certain important situations. For example, with +the current specifications, a dataset with @signal=1 attribute cannot be linked into a group which already has such a +dataset. Yet, the notion of NXdata to describe the default plot implies the specifications are a property of the NXdata +group, not the component datasets. An additional concern is that the method should allow great flexibility in the naming +of fields. The new method should be backwards compatible with and not spoil existing methods in NeXus. We must also +consider and allow for the common situation when **no axes** are specified. + +### Proposition + +Define the specifications of the default data and any associated axes using attributes attached to the NXdata group. +Preserve the simplicity of the signal attribute but provide it at the group level. Define how to describe slices of +multi-dimensional axes associated with the default data. + +### NXdata Attributes + +**All attributes potentially containing multiple values (axes and _indices) are to be written as integer or string +arrays, to avoid string parsing in reading applications.** + +**signal** + +**signal**: Defines the name of the default dataset. A field of this name *must* exist (either dataset or link to dataset). + +**axes**: String array that defines the independent data fields used in the default plot for all the dimensions of the signal field. One entry is provided for every dimension in the signal field. The fields named as values (known as `axes`) of this attribute must exist. An axis slice is specified using the `{axisname}_indices` below. + +When no default axis is available for a particular dimension of the plottable data, use a `.` in that position. If there are no axes at all (such as with a stack of images), the `axes` attribute can be omitted. + +**{axisname}_indices**: Integer array that defines the indices of the signal field array which need to be used in the `{axisname}` dataset to reference the corresponding axis value. This attribute is to be provided in all situations. However, if the indices attributes are missing, file readers are encouraged to make their best efforts to plot the data. + +The implementation of the `{axisname}_indices` attribute is based on the model of "strict writer, liberal reader." + +Example Data Structures +####################### + +NXroot + NXentry + NXdata + @signal="data" --> names the default data to be visualized + + @axes="x" --> names the default independent data + + @x_indices=0 + + data: float[100] --> the default dependent data + + x: float[100] --> the default independent data + +NXroot + NXentry + NXdata + @signal="data" + + @axes="time", "pressure" + + @pressure_indices=1 + + @temperature_indices=1 + + @time_indices=0 + + data: float[1000, 20] + + pressure: float[20] + + temperature: float[20] + + time: float[1000] + +NXroot + NXentry + NXdata + @signal="det" + + @axes="pressure", "tof" + + @pressure_indices=0 + + @tof_indices=1 + + det: float[100, 100000] + + pressure: float[100] + + tof: float[100000] + +NXroot + NXentry + NXdata + @signal="det" + + @axes="x", "y", "tof" + + @tof_indices=2 + + @x_indices=0, 1 + + @y_indices=0, 1 + + det: float[100, 512, 100000] + + tof: float[100000] + + x: float[100, 512] + + y: float[100, 512] + +NXroot + NXentry + NXdata + @signal="det1" + + @axes="polar_angle_demand", "frame_number", "." + + @frame_number_indices=1 + + @polar_angle_rbv_indices=0, 1 + + @time_indices=0, 1 + + @polar_angle_demand_indices=0 + + polar_angle_rbv: float[50, 5] + + det1: float[50, 5, 1024] + + polar_angle_demand: float[50] + + frame_number: float[5] + + time: float[50, 5] + + Uncertainties + +**NOTE:** At NIAC2014, this proposal on uncertainties was not accepted. +*NIAC will see a proposal when experience has been gained with all variations.* +(See this from canSAS.) + +In a scientific data file, it is assumed that uncertainty about the value of the data is expressed in an array of the same shape as the data. The uncertainty of a datum may be expressed as a single value or derived from several components. + +The way that data uncertainties are described in NeXus data files is inconsistent across the base classes and can be improved while also being generalized. Currently, the name of these uncertainties is most often called "errors," which is incorrect. At best, these are error estimates but actually describe an estimate of one's uncertainty in the data. + +While uncertainties are properties of the dataset rather than the containing group, it is difficult in some cases, such as with externally-linked datasets, to attach the attributes directly to the dataset. + +### Proposition + +The attribute-based scheme used to describe the axes (see above) can be extended to describe the uncertainties. A subgroup can be created to deposit these constituents. It seems that a new base class would be needed for this subgroup. + +It is a question for debate whether to attach the attribute to the dataset or the NXdata group. For now, this remains an open question. + +### NXdata Attributes + +We must consider the description of uncertainty as an attribute of either a dataset or the containing NXdata group. The value of the attribute should be the same in either case. + +The name of the uncertainty attribute depends on the context: + +- **Parent NXdata group:** `{name}_uncertainty` +- **Dataset:** `uncertainty` + +Value: +Defines the name of the dataset with the uncertainty to be used. +This dataset must exist and have the same shape as the signal dataset. + +**Examples:** + +NXroot + NXentry + NXdata + @signal="data" + @data_axes="xy" + @data_uncertainty="esd" + data: float[300, 300] + xy: float[300, 300] + esd: float[300, 300] + +NXroot + NXentry + NXdata + @signal="data" + @data_axes="xy" + @uncertainty="esd" + data: float[300, 300] + xy: float[300, 300] + esd: float[300, 300] + +**Name of the Uncertainty Components Subgroup Attribute:** +The naming of the uncertainty components subgroup attribute depends on the context: + +- **Parent NXdata group:** + `{name}_uncertainty_components` + - `{name}` is the uncertainty dataset name. + - `{name}` must exist as a dataset. + +- **Dataset:** + `uncertainty_components` (attached to the uncertainty dataset). + +**Value:** +Defines the name of the NXuncertainty subgroup with the uncertainty components. +This subgroup must exist. + +**Examples:** + +NXroot + NXentry + NXdata + @signal="data" + + @data_axes="xy" + + @data_uncertainty="esd" + + @esd_uncertainty_components="esd_uncertainties" + + data: float[300, 300] + + xy: float[300, 300] + + esd: float[300, 300] + + esd_uncertainties: NXuncertainty + + electronic: float[300, 300] + + @basis="Johnson noise" + + counting_statistics: float[300, 300] + + @basis="shot noise" + + secondary_standard: float[300, 300] + + @basis="esd" + +NXroot + NXentry + NXdata + @signal="data" + + @data_axes="xy" + + data: float[300, 300] + + xy: float[300, 300] + + esd: float[300, 300] + + @uncertainty="esd" + + @uncertainty_components="esd_uncertainties" + + esd_uncertainties: NXuncertainty + + electronic: float[300, 300] + + @basis="Johnson noise" + + counting_statistics: float[300, 300] + + @basis="shot noise" + + secondary_standard: float[300, 300] + + @basis="esd" + + +Topics for Discussion on this +############################# +Proposal These are some of the topics to be considered when evaluating +this proposal. + +1. There are known advantages and disadvantages to the decision to store attributes on the parent group or on the field itself. + +2. Attributes stored on the field will transfer when the field is copied or linked. + +3. It may not be possible to add or modify a field attribute which is linked due to conflicts or write permissions. + +4. The uncertainty field (and possible complex uncertainties) need to be considered when copying or linking. + +5. Uncertainty is not a popular word to spell. Yet errors is not correct in this context. + +### \*NXuncertainty\* Base Class TODO: need to write this section + diff --git a/source/content/ActiveProjects.rst b/source/content/ActiveProjects.rst new file mode 100644 index 00000000..e2ad9072 --- /dev/null +++ b/source/content/ActiveProjects.rst @@ -0,0 +1,16 @@ +============== +ActiveProjects +============== + + +--- title: Active Projects permalink: ActiveProjects.html layout: wiki +--- Developers are encouraged to list ongoing projects around NeXus on +this page to enable collaboration in the active phase. Just issue a +corresponding pull reguest to [this +page](https://github.com/nexusformat/wiki/blob/master/content/ActiveProjects.md). +Please also advertise your project on the [NeXus Mailing +List](https://manual.nexusformat.org/mailinglist.html) for wider +visibility. \* example project In order to keep this page up to date, +projects with the last sign of life (on the mailing list) older than 18 +month may be removed. If no live project are found on this page for a +while, this page may be deleted entirely. diff --git a/source/content/Archive_Definition.rst b/source/content/Archive_Definition.rst new file mode 100644 index 00000000..a46d9332 --- /dev/null +++ b/source/content/Archive_Definition.rst @@ -0,0 +1,87 @@ +================== +Archive Definition +================== + + +--- title: Archive Definition permalink: Archive_Definition.html layout: +wiki --- Introduction ------------ This 'NeXus Archive Definition' +proposal is similar to an 'Instrument Definition' but it describe the +required information for neXus files that are meant to be centrally +archived. It contains important information that will not be found in +the instrument definition as they are not needed for data analysis. The +Instrument Definitions should allow the creation of archiving software +that are common among several instruments and/or facilities. With the +Archive Definition, the aim is to allow shared data management tools. It +also emphasize important information that will be useful for search and +retrieve of the data once stored in the archive. The Instrument +Definitions and the Archive definition should not interfere with each +other. To analyze the data of an instrument, you don't need to know the +owner of the data or the name of the sample. Before archiving and +indexing the data, we need to define the granularity with which to do +it. HDF 5 should allow a user to extract only one group from a file +stored in a SRB system. I doubt that it would be very practical to +catalogue the data so finely, at least not at a facility level. This +definition assumes an indexing at the file level. Part of the definition +are optional parameters for information that are highly recommended but +not required . It is build with RAW file in mind. other parameters may +be needed for processed / result or simulation files Multiple NXentry +issue ---------------------- A NeXus file may contain several NXentry +that needs to be indexed separately. But it may also occur that not all +NXentry has to be indexed (e.g. when one entry contains the events data +and the other the histograms for the same measurement. ) The entry that +has to be indexed will have the attribute 'index' with the value 'yes'. +The one which doesn't have to be indexed, will have the value 'no'. If +some of the NXentry doesn't have to be indexed, they will have the value +'no'. Those NXentry may be associated to one of the indexed NXentry with +the attribute 'index\\_group'. If there is only one entry or if it does +not matter which entry will be indexed (all metadata are the same in all +entries) then there is no need to put the attribute 'index' or +'index\\_group'. Parameter Names --------------- When extracting the +metadata, we will not be limited to the one in this list. Facility, +Instrument, Sample specific information may be extracted. It would then +be useful to chose names that are descriptive and have a constant +meaning between experiments. It is preferable to use temp\\_control and +temp\\_sample than temp\\_1 and temp\\_2 with the sample temperature +being sometimes temp\\_1, sometimes temp\\_2. Too much metadata is +better than too little ------------------------------------------- You +can't extract information that are not there. DTD definition +-------------- ++ +{Extended title for file} +{unique identifier for the experiment, defined by the facility, possibly +linked to the proposals (see : proposal_identifier below)} {Brief +summary of the experiment, including key objectives.} {Description of +the full experiment (document in pdf, latex, )}? {User or Data +Acquisition defined group of NeXus files or NXentry}? {Brief summary of +the collection, including grouping criteria.}? {unique identifier for +the measurement, defined by the facility.}? {Starting time of +measurement} {Ending time of measurement} {Duration of measurement +(end_time - start_time)}? {Time transpired actually collecting data i.e. +taking out time when collection was suspended due to e.g. temperature +out of range}? {}? { Revision id of the file due to re-calibration, +reprocessing, new analysis, new instrument definition format, ... } +{Name of entry DTD} {Name of entry DTD}? {Name of program used to +generate this file} + {Name of user responsible for this entry} {role of +user responsible for this entry, comma separated list} {Suggested roles +are "local_contact", "principal_investigator", "proposer", +"experimenter", "funding_agency"} {Facility based unique identifier for +this person e.g. their identification code on the facility +address/contact database, should allow owner identification by the +archive system.} {Name of instrument} {Brief description of the +instrument}? {Name of source} {"Spallation Neutron Source"\|"Pulsed +Reactor Neutron Source"\| "Reactor Neutron Source"\|"Synchrotron X-ray +Source"\| "Pulsed Muon Source"\|"Rotating Anode X-ray"\|"Fixed Tube +X-ray"} neutron|x-ray|muon|electron {Descriptive name of sample} {Unique +identifier for the sample in the experiment.} {Description of the +sample}? { sample \| sample+can \| can \| calibration sample \| +normalisation sample \| simulated data \| none \| sample environment } +{The chemical formula specified using CIF conventions.}? {Date of +preparation of the sample}? { air \| vacuum \| inert atmosphere \| +oxidising atmosphere \| reducing atmosphere \| sealed can \| other } +{The atmosphere will be one of the components, which is where its +details will be stored; the relevant components will be indicated by the +entry in the sample_component member.}? {Sample temperature. }? {Applied +electric field}? {Applied magnetic field}? {External stress}? {Applied +pressure}? {Sample temperature. }? {Sample magnetic_field. }? {Sample +electric_field. }? {Sample stress_field. }? {Sample pressure. }? { Date +of the public release of the data. (file_time + X years)}? diff --git a/source/content/Associating_Axes_with_Data.rst b/source/content/Associating_Axes_with_Data.rst new file mode 100644 index 00000000..29683138 --- /dev/null +++ b/source/content/Associating_Axes_with_Data.rst @@ -0,0 +1,33 @@ +========================== +Associating Axes with Data +========================== + + +--- title: Associating Axes with Data permalink: +Associating_Axes_with_Data.html layout: wiki --- Associating Axes with +Data -------------------------- The current scheme we use in NeXus for +associating axes with data was mainly devised as a means to work around +a limitation of HDF-4. Namely the fact that there was one global +namespace for dimension scales. Dimension scales are HDF way of +associating axes with data by storing them as properties of the data. +Now, this limitation of HDF has since long fallen. Moreover there are a +number of use cases which are not well covered by what we do today. Thus +this page describes how to improve. Discussion comments should be placed +on the [ discussion](Talk:Associating_Axes_with_Data.html "wikilink") +page. ### Requirements This is a recapitulation of what we have to +achieve for a multidimensional dataset: - The axes give a plot meaning - +For data reduction or analysis we need to know exactly data was measured +in either the instrument or another coordinate system - There may be +different sets of axes for the same data in different coordinate +schemes. An example: raw time of flight binning versus the same axis +converted to energy transfer or d-spacing. - With multidimensional +scans, we may have scan intent axes (describing how the scan was +planned) and axes describing what really happened. Giving motor read +backs for each motor for each point in the multi dimensional dataset. +This situation can cause multiple axis fields for the data, one for each +variable varied in the multi dimensional scan. - Axes may or may not be +regular. Solution -------- See +[2014\\_axes\\_and\\_uncertainties](2014_axes_and_uncertainties.html +"wikilink") This proposal has been accepted by NIAC at NIAC 2014 with a +few modification. There is still some resistance to the new scheme, thus +this page stays in place. This update: 01/2015 diff --git a/source/content/ConcordanceDiscussion.rst b/source/content/ConcordanceDiscussion.rst new file mode 100644 index 00000000..47c03520 --- /dev/null +++ b/source/content/ConcordanceDiscussion.rst @@ -0,0 +1,104 @@ +===================== +ConcordanceDiscussion +===================== + + +--- title: ConcordanceDiscussion permalink: ConcordanceDiscussion.html +layout: wiki --- Concordance Summary =================== Last update: +July, 10, 2013, Mark Koennecke This document summarizes the problems +occurring when mapping CBF to NeXus how I see them from the discussion +with Herbert. In the following discussion all groups which are not NeXus +yet will be prefixed with TBD for To Be Discussed. This is the version +updated after the July, 10 teleconference. Further details on +[NeXus/HDF5/CBF Integration](https://sites.google.com/site/nexuscbf/) +The Variant Issue ================= CBF has the concept of variants for +fields. For example there is a field beam\\_center\\_x. This has somehow +been determined and written to file. Later this is refined in another +way. CBF stores this then as beam\\_center\\_x\\_variant. This concept +of variants is missing in NeXus. Another way to understand this is to +see it as a version control for values. However, as this is rarely used, +a complicated solution is not desirable. Another requirement is that it +must be possible to put similar tags on variables which change at the +same time. So far there are three options to remedy this: - A TBDvariant +group which can occur in all other groups and contains the variant +values with the same field names as in the parent group. This is felt to +be overkill. - Simply append \\_variant to the existing NeXus name. If +there is more then one variant append another qualifier to \\_variant. +For example: beam\\_center\\_x\\_variant\\_refined - As the request can +rather be understood as a means to keep track of old versions of values, +another option is this rule: When updating a value, update the value +with the NeXus name. Store the old value in a new field labelled with +nexusname\\_old\\_timestamp. Where nexusname is the original name of the +field, for example beam\\_center\\_x, and timestamp is a: timestamp like +2013-05-23. Great care has to be taken to create a timestamp format +which does not break the usability of the name as a field name in a +programming language. - Another idea is to append \\_var\\_N where N is +a number to the original NeXus field name and store the time stamp as an +attribute to the field. - Yet another idea: do not create new fields but +rather store the old values as variant attributes to the original field. +The Axisset Issue ================= NeXus chooses to document axis names +with a predefined meanings. The CBF people learned that this did not +work for them as people were using axes differently, could not be +bothered to even look which conventions others used etc. Thus they +choose rather to document axes by the way how they operate. And a given +component may even have more then one axes description associated with +it. NeXus goes a long way to support this with the recently added +offset, type, vector and depends\\_on attributes. But mapping the full +CBF scheme would require a TBDaxisset group which can occur in any +component which we care to place (sample, detector,...) This group could +look like this: TBDaxisset axis-name-or-id[NA] offset[3,NA] type[NA] +vector[3,NA] depends_on[NA] with NA being the number of axes. I can see +that such a scheme would also allow NeXus to neatly describe a given +data set in terms of different axis types: instrument coordinates, q +coordinates or whatever. At the Telco the agreement was that the current +NeXus scheme is sufficient to do the CBF mapping. But for further use, +it might be a good idea to reserve the namespace for axisset. It was +also felt that there to many ways to describe axes in NeXus and we +should discuss and aggree on a preferred way to do axes in an upcoming +NIAC meeting. The Scan Issue ============== NeXus chooses to store scans +as it is done, with the positions of components as read from the +hardware in arrays. CBF chooses to rather store the intent of the scan: +i.e. the axis moved, their start and increments etc. NeXus lacks such a +intent description. This already caused us problems because the intent +axes are nice for plotting and the actual positions as read are +necessary for detailed DA. Thus to capture the CBF description a new +group may be required: TBDscan_intent axis-name-or-id[NSA] start[NSA] +increment[NSA] NP with NSA being the Number of Scan Axes and NP the +number of points in the scan. May be some more fields. The agreement on +the NeXus Telco was that the recently aggreed upon axes scheme with the +attributes on the NX group is sufficient to do the CBF mapping. Again, +it might be worth to reserve the namespace. New Fields ========== This +may be a bit easier: the CBF mapping asks for a couple of fields to be +added to the NeXus base classes: NXxray_tube radiation_type +radiation_xray_symbol Radiation\\_type is different to probe. Probe +gives a very general description like neutrons, x-ray etc. This gives +the type of radiation like Cu Kalpha, Mo etc. The situation is further +complicated by the fact that even at synchrotrons wavelengths are +selected which match the characteristics of well known x-ray tube anode +materials. Thus, a NXxray\\_tube group may not be the appropriate place. +NXcollimator div_x_y_source radiation_filter_edge # May belong into a +NXfilter radiation_inhomegeneity # May belong into NXsource or +NXmonochromator CBF stores polarisation information of the beam in +NXmonochromator. It is an open question where this belongs: NXbeam, +NXpolariser or NXmonochromator being candidates. The fields: +polarisation_norm polarisation_ratio polarisation_source_norm +polarisation_source_ratio NXdetector gain gain_esd linerarity offset +scaling overload undefined_value Some of these fields address the +computed data value issue which we discussed some time ago. The last +state on this was that Armando was to make a proposal for calculated +data. Which, as far as I am aware, did not happen. CBF also has a +structure to describe the elements of a multi component detector. We +discussed something similar recently with the DECTRIS module . This was +then added a s a non NeXus standard group. May be we need to revise this +with input from CBF? The good news is that the proposed fields come with +documentation which we may directly copy from the CBF documents. +NXgoniometer ============ Consider the situaton when a sample is mounted +on some sort of positioning device: x-y tables, eulerian cradle +goniometer or such. The current NeXus convention is to store the values +coming from such positioning devices in the NXsample group. The +rationale is that their purpose is to position the sample. Now, the +suggestion is to separate such values out into a NXgoniometer group. +This unloads the sample group somewhat and makes for a cleaner +separation. Where in the NeXus hierarchy a NXgoniometer will be +positioned is another question to be discussed: NXsample or NXinstrument +both being good candidates. diff --git a/source/content/Connecting_NXdata_to_NXdetector.rst b/source/content/Connecting_NXdata_to_NXdetector.rst new file mode 100644 index 00000000..f1a2ff39 --- /dev/null +++ b/source/content/Connecting_NXdata_to_NXdetector.rst @@ -0,0 +1,52 @@ +=============================== +Connecting NXdata to NXdetector +=============================== + + +--- title: Connecting NXdata to NXdetector permalink: +Connecting_NXdata_to_NXdetector.html layout: wiki --- This is an attempt +to summarize the various proposals that have been discussed on this +page. Proposal 1 is, I believe ([Ray Osborn](User%3ARay_Osborn.html +"wikilink")), the original proposal when NeXus was first designed +(although we didn't link the data item itself as Freddie has sensibly +suggested). If anyone thinks that the remaining proposals have been +incorrectly summarized, please let the NeXus committee mailing list know +as soon as possible. Proposal 1 ---------- All the items within an +NXdata group (data, errors, and axes) are stored as links to parent +items stored in their logical location (NXdetector, NXsample, etc). The +absolute address of the parent item is stored as an attribute on the +data, so that other information can be conveniently located. This is the +only proposal that addresses the issue of non-NXdetector axes. This +method implies a one-to-one correspondence of NXdata and NXdetector +groups; the names do not need to match, though they could. Example: +Proposal 2 ---------- There is a one-to-one correspondence between +NXdata groups and the corresponding NXdetector group, which should have +the same name to provide a logical association. Example: Proposal 3 +---------- There is a one-to-one correspondence between NXdata groups +and the corresponding NXdetector group. The NXdata group is stored +within its respective NXdetector group and linked to the NXentry. +Example: Proposal 4 ---------- There can be multiple NXdata groups for a +single NXdetector group or multiple NXdetector groups for a single +NXdata item (e.g. to cope with groups of different types of detectors). +Detector ID's are used to provide the link between the two. Example: or +Criteria of a Good Solution --------------------------- A proper +solution should address the following: - Linking - should it be used as +a method of saving space or carry relational information (associating +things). - Grouping information into NXdetectors in a logical manner. +For example, an instrument may want to have a NXdetector for each bank, +or one for each panel, irrespective of how the NXdata is grouped. - +NXdata must be rectangular ( lxm or lxmxn so data that would be grouped +together in the analysis needs to be split up to conform to the +standard. How should the data be associated with each other. - How do +you properly deal with multi-dimensional detectors, i.e. single ended +tubes AND linear position sensitive detectors AND area detectors all +used in the same measurement. Update 01/2015 -------------- This page is +very old. I cannot remember that this has been decided upon. The current +usage though is along the lines of proposal 2: Multiple detectors give +rise to multiple NXdetector and NXdata groups with preferably the same +name. NXdata is supposed to contain links to the relevant data items +required for a default plot. There can be additional NXdata groups for +special purposes. See also the description of NXsubentry in the NeXus +manual. The above is valid for raw data NeXus files. In processed data +NeXus files NXdata has a different meaning and contains the actual +resulting processed data. diff --git a/source/content/Containers_and_Inheritance.rst b/source/content/Containers_and_Inheritance.rst new file mode 100644 index 00000000..eee6e37a --- /dev/null +++ b/source/content/Containers_and_Inheritance.rst @@ -0,0 +1,54 @@ +========================== +Containers and Inheritance +========================== + + +--- title: Containers and Inheritance permalink: +Containers_and_Inheritance.html layout: wiki --- \*Currently Under +Construction - will be linked to the discussion page when reviewed and +completed\* This page presents how neXus could benefit from an +object/container-orientated approach to its user defined instrument +definitions. By allowing base user definitions for components, datasets +from from full datasets can be expressed as a sum of components. The +XSLT standard and XQuery are methods that can possibly realize the +extraction of data from one or more XML based neXus definition and +create a new neXus XML document as desired. Relationship between +Inheritance and Containers in a neXus dataset +------------------------------------------------------------------ +![](COP_neXus_slide1.PNG "COP_neXus_slide1.PNG") Instrument +definitions can be assembled in a multitude of ways using the neXus +predefined classes. An instrument definitions are most often is a +superset of discrete components, with additional information which that +is general to all instrument definitions. The data contained in a data +set can be described via the has a/is a relationship encountered in +object orientated programming. Traits that are inherent to all data sets +in the neXus format can be inherited from a parent class. This would be +an is a relation, as the data set is a set of neXus data, and has +such properties. A dataset is also a container, and thus contain small +data subsets, usually base neXus classes. This is a has a +relationship, as a container has a data subset. +------------------------------------------------------------------------ +![](COP_neXus_slide2.PNG "COP_neXus_slide2.PNG") What is of interest in +this discussion is the has a relationship. A parent data set acts as a +container for many simpler datasets. If these subsets are specified +independently, a greater deal of compatibility and standardization can +be achieved between software written by vendors, scientists and +engineers working on different aspects of a project. XLST, Xquery, or a +similar XML transform standard can be used to realize this type of +conversion in practice. user-defined component types can be shared +amoung multiple experiment types +--------------------------------------------------------------------------- +![](COP_neXus_slide3.PNG "COP_neXus_slide3.PNG") Independent component +definitions allow vastly different experiments to share common equipment +or data, without having to redefine the data type for each experiment. +An equpiment or data library can have, in itself, a standard format. +User-defined components can be inherited by more specific user +components +------------------------------------------------------------------------- +![](COP_neXus_slide4.PNG "COP_neXus_slide4.PNG") Should additional data +be needed for a more complicated equipment or data library, it can +inherent the previous definition, and add additional information. This +allows experiments that only require a basic component definition to +also use datasets that have additional data appended. --[Greg +Sonnenfeld](User%3AGreg_Sonnenfeld.html "wikilink") 15:22, 27 January +2007 (UTC) diff --git a/source/content/DLSraw.rst b/source/content/DLSraw.rst new file mode 100644 index 00000000..7b420a85 --- /dev/null +++ b/source/content/DLSraw.rst @@ -0,0 +1,101 @@ +====== +DLSraw +====== + + +--- title: DLSraw permalink: DLSraw.html layout: wiki --- \\\* --> Zero +or many + --> One or more ? --> 0 or 1 +{Extended title for entry}? +{unique identifier for the experiment, defined by the facility, possibly +linked to the proposals}? {Number of run or scan stored in this entry}? +{}? { Date of the public release of the data. (file_time + X years)} { +Revision id of the file due to re-calibration, reprocessing new +analysis, new instrument definition format, ... } { Reason for the new +revision. (e.g. first revision, re-calibration, ) } {Name of entry DTD}? +{Name of entry DTD}? {Name of entry DTD}? {Starting time of +measurement}? {Ending time of measurement}? {Duration of measurement +(end_time - start_time)}? {Time transpired actually collecting data i.e. +taking out time when collection was suspended due to e.g. temperature +out of range}? {information on the reliability/source of the information +provided by the experimenter. (e.g.: From proposal, updated at +experiment time, ...} {Keyword domain (e.g. chemistry, astronomy, +ecology, ...)}? {Keywords defined for this study}? {A pointer to a +reference work providing the definition of the restricted vocabulary of +which the keyword list is a subset}? {Subject categorisations for this +study}? {Brief summary of the experiment, including key objectives}? +{Description of the full experiment (document in pdf, latex, ...)}? +{Special requirements of instrument}? {List of publications related to +the proposal}? {Facility access type (normal, rapid access, program +access, ...)}? {Identifier of the funding grant}? {Name of program used +to generate this file}? {Name of command line used to generate this +file}? + {Descriptive name of the input data} {Uniform Resource +Identifier of the input data} {Notes describing entry}? {An small image +that is representative of the entry.} {An example of this is a 640x480 +jpeg image automatically produced by a low resolution plot of the +NXdata.}? 1+ {Name of user responsible for this entry} {role of user +responsible for this entry, comma separated list} {Suggested roles are +"local_contact", "principal_investigator", "proposer", "experimenter", +"funding_agency"} {Affiliation of user}? +{Address of user}? +{Telephone number of user}? {Fax number of user}? {Email of user}? +{Facility based unique identifier for this person e.g. their +identification code on the facility address/contact database, should +allow owner identification by the archive system.} {Affiliation unique +identifier.}? {Descriptive name of sample} {Sample identifier} {The +chemical formula specified using CIF conventions.}{Abbreviated version +of CIF standard: 1. Only recognized element symbols may be used. 2. Each +element symbol is followed by a 'count' number. A count of '1' may be +omitted. 3. A space or parenthesis must separate each cluster of +(element symbol + count). 4. Where a group of elements is enclosed in +parentheses, the multiplier for the group must follow the closing +parentheses. That is, all element and group multipliers are assumed to +be printed as subscripted numbers. 5. Unless the elements are ordered in +a manner that corresponds to their chemical structure, the order of the +elements within any group or moiety depends on whether or not carbon is +present. If carbon is present, the order should be: C, then H, then the +other elements in alphabetical order of their symbol. If carbon is not +present, the elements are listed purely in alphabetic order of their +symbol. This is the 'Hill' system used by Chemical Abstracts.} +{Description of the sample}? {20 character fixed length sample +description for legends}? {Sample temperature.}? {Applied electric +field}? {Applied magnetic field}? {External stress}? {Applied pressure}? +{Name of instrument} {Name of source}? "Spallation Neutron +Source"\|"Pulsed Reactor Neutron Source"\| "Reactor Neutron +Source"\|"Synchrotron X-ray Source"\| "Pulsed Muon Source"\|"Rotating +Anode X-ray"\|Fixed Tube X-ray" neutron|x-ray|muon|electron? {Effective +distance from sample}{Distance as seen by radiation from sample. This +number should be negative to signify that it is upstream of the +sample.}? {Source power}? {Accelerator current}? {Accelerator voltage}? +{any source/facility related messages/events that occurred during the +experiment}? {synchrotron operating mode}{"Single Bunch"\|"Multi +Bunch"}? {Is the synchrotron operating in top_up mode}? {"Engineering" +location of source}? {critical energy}? {bending radius}? {spectrum of +bending magnet}? {"Engineering" position of bending magnet}? +{"undulator"\|"wiggler"\|...}? {gap}? {taper}? {phase}? {number of +poles}? {length of insertion device}? {total power delivered by +insertion device}? {energy of peak}? {bandwidth of peak energy}? +{harmonic of peak}? {spectrum of insertion device}? {"Engineering" +position of insertion device}? + {value of motor - need [n] as may be +scanned} {Hardware device record, e.g. EPICS process variable, +taco/tango ...} 1+ {Data values} {Data values} +{name/manufacturer/model/etc. information}? "He3 gas cylinder"\|He3 +PSD"\|"He3 planar multidetector"\| "He3 curved multidetector"\| +"multi-tube He3 PSD"\|"BF3 gas"\|"scintillator"\|"fission +chamber"\|"CCD"\|...? {Identifier for detector}? {offset from the +detector center in x-direction}? {offset from the detector center in the +y-direction}? {Size of each detector pixel. If it is scalar all pixels +are the same size}? {Size of each detector pixel. If it is scalar all +pixels are the same size}? {Distance}? {Polar Angle}? {Azimuthal Angle}? +{Position and orientation of detector element}? {translation normal to +direct beam}? {Solid angle subtended by the detector at the sample}? +{Detector dead time}? {Delay in detector registering an event}? +{Detector gas pressure}? {maximum drift space dimension}? {Crate number +of detector}? {Slot number of detector}? {Input number of detector}? +{Efficiency of detector with respect to e.g. wavelength}? {date of last +calibration (geometry and/or efficiency) measurements}? {summary of +conversion of array data to pixels (e.g. polynomial approximations) and +location of details of the calibrations}? 1+ {Data Values}? {Standard +deviations of data values - the data array is identified by the +attribute signal="1". This array must have the same dimensions as the +data}? {Dimension scale defining an axis of the data}? {Errors +associated with axis "variable"}? diff --git a/source/content/Design_Issues.rst b/source/content/Design_Issues.rst new file mode 100644 index 00000000..5d58b894 --- /dev/null +++ b/source/content/Design_Issues.rst @@ -0,0 +1,52 @@ +============= +Design Issues +============= + + +--- title: Design Issues permalink: Design_Issues.html layout: wiki --- +If you have a specific subject concerning the NeXus format design, +please add it to the following list and start a new page (see the [help +pages](Help:Contents.html "wikilink") for instructions on adding new +pages). If you want others to participate, you should announce the new +discussion on the [NeXus Mailing +List](http://lists.nexusformat.org/mailman/listinfo/nexus). Current +Discussions ------------------- - Structure of NeXus files - basic +questions: - [Objects or Interfaces](Objects_or_Interfaces.html +"wikilink") - [How to avoid name clashes during future extensions of the +Nexus +standard](How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html +"wikilink") - Geometry questions: - Data - [Associating Axes with +Data](Associating_Axes_with_Data.html "wikilink") - [Thumbnails for +Nexus files](Thumbnails_for_Nexus_files.html "wikilink") - [file\\_id +attribute for Nexus files](file_id_attribute_for_Nexus_files.html +"wikilink") - [Scaled Data](Scaled_Data.html "wikilink") - +[NXmonochromator and inheritance](NXmonochromator_and_inheritance.html +"wikilink") Coma Discussions ---------------- These are issues which +have not been attended too for a long time. - [Containers and +Inheritance](Containers_and_Inheritance.html "wikilink") - XLST and +Reusable definitions - [Units](Units.html "wikilink") Closed Discussions +------------------ - [NXaperture and Slits](NXaperture_and_Slits.html +"wikilink") - implemented in form of NXslit and NXpinhole - [Multi +Method Instruments](Multi_Method_Instruments.html "wikilink") - +implemented in form of NXsubentry - [Object oriented +NeXus](OO-NeXus.html "wikilink") - +[2014\\_How\\_to\\_find\\_default\\_data](2014_How_to_find_default_data.html +"wikilink") - a proposal for the 2014 NIAC meeting - [Proposal: NeXus +Coordinates](Proposal_NeXus_Coordinates.html "wikilink") - [Coordinate +Systems](Coordinate_Systems.html "wikilink") - [Extension of NeXus +Coordinate Systems](Extension_of_NeXus_Coordinate_Systems.html +"wikilink") - [Indirect Time-of-Flight and +Coordinates](Indirect_Time-of-Flight_and_Coordinates.html "wikilink") - +[NXgeometry and NXshape - documentation and +review](NXgeometry_and_NXshape\_-\_documentation_and_review.html +"wikilink") - [Detector Geometry](Detector_Geometry.html "wikilink") - +[Update for NXflou application +definition](Update_for_NXflou_application_definition.html "wikilink") - +[NeXus CIF Integration](NeXus_CIF_Integration.html "wikilink") - +[ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") - +[Connecting NXdata to NXdetector](Connecting_NXdata_to_NXdetector.html +"wikilink") - [Double Linking](Double_Linking.html "wikilink") - +[NXmeasurement](NXmeasurement.html "wikilink") - [Proposal: NeXus +Errors](Proposal:\_NeXus_Errors.html "wikilink") - [Storing Event +Data](Storing_Event_Data.html "wikilink") - [NXdetector +documentation](NXdetector_documentation.html "wikilink") diff --git a/source/content/Detector_Geometry.rst b/source/content/Detector_Geometry.rst new file mode 100644 index 00000000..bf763eb2 --- /dev/null +++ b/source/content/Detector_Geometry.rst @@ -0,0 +1,36 @@ +================= +Detector Geometry +================= + + +--- title: Detector Geometry permalink: Detector_Geometry.html layout: +wiki --- Issue ----- Defining the location of a detector, or any generic +object, is potentially challenging. It needs to be agreed upon how to +define the location of an object, specifically detectors, and their +phsyical extent. Proposals should be able to define a position +unambigiously in a way that is easily interpreted by analysis and +plotting software. Proposal: McStas ---------------- Taken from the +McStas manual p45: The instrument is given a global, absolute coordinate +system. In addition, every component in the instrument has its own local +coordinate system that can be given any desired position and orientation +(though the position and orientatino must remain fixed for the duration +of a single simulation). By convention, the z axis points in the +direction of the beam, the x axis is perpendicular to the beam in the +horizontal plane pointing left as seen from the source, and the y axis +points upwards (see figure 5.1). Nothin in McStas enforces this +convention, but if every component used different conventions the user +would be faced with a severe headacha! It is therefore recommended that +this convention is followed by users implementing new components. +Proposal: Vitess ---------------- ### Determined from a figure on p6 The +x axis points in the direction of the beam, the z axis up, and the y +axis to the left while facing down-stream to complete the right handed +coordinate system. ### Determined from a figure on p22 Orientation is +given by two angles which define a component's normal direction. phi is +the angle between the x axis and the normal, projected onto the xy +plane. theta is the angle between the xy plane and the normal. This does +assume that a normal direction is well defined. [Peter +Peterson](User%3APfpeterson.html "wikilink") Thursday, 28 August 2003, +12:04:51 pm Conclusion ---------- 01/2015 This got nowhere. It is also +now obsolete as NIAC is under the impression that the CIF-style +coordinate description allows us to define the position and orientation +of detector elements in space in an adequate and exact way. diff --git a/source/content/Download.rst b/source/content/Download.rst new file mode 100644 index 00000000..6efa0a81 --- /dev/null +++ b/source/content/Download.rst @@ -0,0 +1,40 @@ +======== +Download +======== + + + +The use of the NeXus-API (NAPI) is \**not*\* mandatory in order to write +perfectly valid NeXus files. > Using a direct binding to HDF5 (like +h5py) or [NeXpy](NeXpy.html) should be a better choice for new projects. +The NeXus API is distributed under the terms of the GNU Lesser General +Public License. + +-----------Requirements ------------ +==================================== + +External Libraries +================== +Since NeXus uses HDF as the main underlying binary format, it is necessary +first to install the HDF subroutine libraries and include files before +installing the NeXus API. It is not usually necessary to download the +HDF source code since precompiled object libraries exist for a variety +of operating systems including Windows, Mac OS X, Linux, and various +other flavors of Unix. Check the HDF web pages for more information: - +The NeXus API also supports using XML as the underlying on-disk format. +This uses the Mini-XML library, developed by Michael Sweet, which is +also available as a precompiled binary library for several operating +systems. Please ensure that you install version 2.2.2 or later. Check +the Mini-XML web pages for more information: + +NeXus Source Code Distribution +============================== + +The source code distribution can be obtained from GitHub. One can either checkout the git +repositories to get access to the most recent development code. To clone +the definitions repository use +gitclone [https://github.com/nexusformat/definitions.git] (https://github.com/nexusformat/definitions.git) definitions or for the NAPI +gitclone [https://github.com/nexusformat/code.git] (https://github.com/nexusformat/code.git) code +For release tarballs go to the release page for the [NAPI] (https://github.com/nexusformat/code/releases) or the +[definitions] (https://github.com/nexusformat/definitions/releases). For the definitions it is recommended to work on +the current git repository as the available release is outdated. diff --git a/source/content/Extension_of_NeXus_Coordinate_Systems.rst b/source/content/Extension_of_NeXus_Coordinate_Systems.rst new file mode 100644 index 00000000..130cdc92 --- /dev/null +++ b/source/content/Extension_of_NeXus_Coordinate_Systems.rst @@ -0,0 +1,79 @@ +===================================== +Extension of NeXus Coordinate Systems +===================================== + + +--- title: Extension of NeXus Coordinate Systems permalink: +Extension_of_NeXus_Coordinate_Systems.html layout: wiki --- Extension of +the NeXus Coordinate Systems ----------------------------------------- +This suggestion results from comparing imageCIF with NeXus. Ideally we +should be able to make a mapping from CIF to NeXus. Unfortunately, NeXus +had some weaknesses in coordinate systems (addressed by this proposal) +and scaled data. Please note, that this proposal extends in what we +already do in NeXus and does not invalidate earlier efforts. The CIF way +of specifying axis is far more accurate then what we do with NeXus. Thus +the suggestion is to align NeXus with the well thought out CIF scheme. +This section consists first of a discussion of the CIF axis system and +then of suggestions how to use this within NeXus. CIF uses a coordinate +system which is similar to the McStas coordinate system which NeXus uses +at its bottom. Just the orientation of the Z-axis differs. The +description of any given axis in CIF consists of three elements: - The +type of the axis. This can be translation or rotation - The axis vector. +This is the direction of a translation or the vector around which the +axis rotates. - The axis offset. The offset to the base of the rotation +or translation. If this is not given 0,0,0 is assumed. CIF also +describes in which order transformations have to be applied to get a +component into its final position from its zero position. In CIF this is +done by chaining axis through the depends attribute. This scheme is a +generalisation of the methods used commonly in crystallography. There a +crystal is brought into scattering position by applying a series of +rotations. Please note that order is important! ### Axis Suggestions for +NeXus 1) NeXus stays with the McStas coordinate system. 2) NeXus uses +the vector and offset scheme to document existing NeXus axis. The base +of all operations is always the component, if not specified by an offset +vector. Rotations are in degree, translations in milimetre. Some +examples: - rotation\\_angle has a vector 0 1 0, rotation around Y - +azimuthal\\_angle is a rotation around Z, vector = 0 0 1 - polar\\_angle +is also a rotation around Y, vector 0 1 0, but as the rotation axis is +with the previous component upstream, we have an offset of 0 0 -distance +In NXsample we additionally have: - chi is a rotation around Z, vector 0 +0 1 - phi is a rotation around Y, vector 0 1 0 - kappa, for kappa the +vector attribute has to be given as there are kappa goniometres with +different values of kappa. 3) Each NeXus component can have an +additional field with the name transform. This contains a komma +separated list of the operations required to place the component at its +position in the instrument. The formula is: Xcurrent = op1*op2....*opn +\* X0 with transform becoming: op1,op2,....,opn Names of operations are +the names of the axis to apply. Unqualified names relate to axis in the +same group. In order to refer axis outside the current group, full path +names must be given. Storing this separatly in a transform field gives +direct access whereas the CIF depends system requires a lot of searches +to reconstruct the sequence of transforms. This is why I like transform +better. In this description, our NeXus polar coordinate system has the +transform: azimuthal_angle, polar_angle This is also the default if the +transform field is missing. 4) NeXus strongly prefers to use the NeXus +simple coordinate system with polar\\_angle and azimuthal\\_angle as +describe above. This description has the advantage that polar\\_angle is +always two theta. 5) With the vector/offset scheme arbitrary axis can be +stored in NeXus. The rule then is that type, vector and offset have to +be specified as attributes. Type is NX\\_CHAR, vector and offset are of +dim 3 and type NX\\_FLOAT. We need these attributes anyway as there are +angles such as kappa, which differ in their rotation axis between +instruments. 6) NeXus is missing a rotation around the X axis. As we +already bought into quite lyrical names for rotation axis I suggest +aequatorial\\_angle as a name for this. 7) Consequently, as NeXus does +not have fields for describing translations, except in Nxgeometry, I +suggest to add x\\_translation, y\\_translation and z\\_translation +fields to each component. I choose to suggest separate fields for the +translations as they frequently map to dedicated motors. Please note +that all angles have to be 0 if you were to determine the operation of +any given translation motor. 8) The orientation field in NXgeometry +receives the same meaning as vector in axis descriptions. With vector +being aligned with the main axis of the component. 9) NXgeometry stays +as is as a means to describe shapes, engineering coordinates of +orientations of components. Conclusion ---------- 01/2015: CIF style +coordinate system descriptions have been ratified by NIAC in 2012. The +ratified version differs in many details, but not in the approach, from +the material on this page. Please consult a recent copy of the NeXus +manual for an update to date description of NeXus coordinate +descriptions. diff --git a/source/content/FAQ.rst b/source/content/FAQ.rst new file mode 100644 index 00000000..89adf5e4 --- /dev/null +++ b/source/content/FAQ.rst @@ -0,0 +1,96 @@ +=== +FAQ +=== + + +--- title: FAQ permalink: FAQ.html layout: wiki --- This is a list of +commonly asked questions concerning the NeXus data format. If you wish +to suggest any more questions to include on this page, please visit the +[discussion page](Talk:FAQ.html "wikilink") and add an entry. How many +facilities use NeXus ----------------------------- This is continually +evolving. It has been used as the instrument format for several years on +some or all instruments at a number of facilities including PSI +(Switzerland), LLB (France), LANSCE (USA), and APS (USA). It will be +used on all future instrumentation at ISIS (UK), NIST (USA), ANSTO +(Australia) and was used by instruments using the new data acquisition +system at IPNS (USA). Finally, it has been formally adopted by major +facilities under construction, the SNS (USA), JPARC (Japan) and Diamond +Light Source (UK). For more information see the +[Facilities](Facilities.html "wikilink") page. NeXus files are only +useful for archiving instrumental data, aren't they? +------------------------------------------------------------------------- +NeXus files can be used to store both extremely simple data, e.g. a +single (x,y) array, and highly complex instrument descriptions. In fact, +the original intention of the NeXus data format was to provide a way of +interchanging data between facilities and their user communities. +However, the power of NeXus hierarchical design has led to its adoption +as a standard archiving format by several major facilities, such as +ISIS, LANSCE, and the SNS. Why aren't NXsample and NXmonitor groups +stored in the NXinstrument group? +-------------------------------------------------------------------------- +A NeXus file can contain a number of NXentry groups, which may represent +different scans in an experiment, or sample and calibration runs, etc. +In many cases, though by no means all, the instrument has the same +configuration so that it would be possible to save space by storing the +NXinstrument group once and using multiple links in the remaining +NXentry groups. It is assumed that the sample and monitor information +would be more likely to change from run to run, and so should be stored +at the top level. How do I identify the plottable data? +------------------------------------- Any program whose aim is to +identify plottable data should use the following procedure: 1. Open the +first top level NeXus group with class NXentry. 2. Open the first NeXus +group with class NXdata. 3. Loop through NeXus data items in this group +searching for the item with attribute signal =1. This is the plottable +data. 4. Check to see if this data item has an attribute called axes. +If so, the names are defined as a comma-delimited string within this +attribute in the C-order of the data array, and you can skip the next +two steps. 5. If the axes attribute is not defined, search for the +one-dimensional NeXus data items with attribute primary = 1. \\#These +are the dimension scales to label the axes of each dimension of the +data. 6. Link each dimension scale to the respective data dimension by +the axis attribute (= 1,2,...,rank of data). 7. If necessary, close +the NXdata group, open the next one and repeat steps 3 to 6. 8. If +necessary, close the NXentry group, open the next one and repeat steps 2 +to 7. Consult the NeXus API section, which describes the routines +available to program these operations. In the course of time, generic +NeXus browsers will provide this functionality automatically. Why are +the NeXus classes so complicated? I'll never store all that information +------------------------------------------------------------------------------- +The NeXus classes are essentially glossaries of terms. If you need to +store a piece of information, consult the class definitions to see if it +has been defined. If so, use it. However, it is not compulsory to +include every item that has been defined if it is not relevant to your +experiment. On the other hand, if there is an NeXus definition for your +instrument, you are recommended to include all the compulsory items if +you want to use standard software to analyze your data. I want to +produce an instrument definition. How do I go about it? +----------------------------------------------------------------- The +first thing is to check whether the instrument you are interested in is +already being defined by an instrument editor. Check the list on the +NeXus Instruments page. The [NeXus International Advisory +Committee](NIAC.html "wikilink") is responsible for appointing editors +of special interest groups that wish to become a part of the standard, +so contact the [Executive Secretary](NIAC.html "wikilink"), if a group +does not yet exist. Of course, if you want to produce your own private +definition for personal use, you are free to do so without our approval +although we encourage people to share what they are doing . If you are +an editor, the process of defining an instrument should be quite simple: +1. Make sure that the data you wish to analyze are stored in NXdata +groups. The rest of the definition is to supply what is necessary for +simple analysis of the data, for example, the detector positions and +incident wavelength for a x-ray powder diffraction measurement. 2. Study +the base classes to decide which ones are essential for your definition. +If you believe that a new base class is needed, contact the NIAC with a +proposal. 3. Select those data items and groups that you consider +important in analyzing data from your instrument. Insert the relevant +grep character, as defined in the [NeXus Meta-DTD +format](Metaformat.html "wikilink") to denote the number of occurrences. +If the item is optional (? or \\\*), then it does not need to be +added to your definition. 1. If you encounter any problems because the +classes are not sufficient to describe your configuration, please +contact the NIAC Executive Secretary explaining the problem, and post a +suggestion at the relevant class wiki page. The NIAC is always willing +to consider proposals to amend the base classes. The procedures are +defined in the NIAC constitution. What coordinate system does NeXus use? +-------------------------------------- This is described on the +[Coordinate\\_Systems](Coordinate_Systems.html "wikilink") page diff --git a/source/content/Facilities.rst b/source/content/Facilities.rst new file mode 100644 index 00000000..468feabf --- /dev/null +++ b/source/content/Facilities.rst @@ -0,0 +1,130 @@ +========== +Facilities +========== + + +--- title: Facilities permalink: Facilities.html layout: wiki --- Status +of NeXus adoption by facility type. As it is very difficult to keep the +information here current, this page will always at least partially be +out of date. Please send any updates to the [mailing +list](https://manual.nexusformat.org/mailinglist.html). ### Pulsed Muon +Facilities \**ISIS Muon Facility, STFC Rutherford Appleton Laboratory, +UK*\*: The [ISIS facility](https://www.isis.stfc.ac.uk/) has been +producing and using NeXus files on its [muon +spectrometers](https://www.isis.stfc.ac.uk/Pages/Muon-spectroscopy.aspx) +for many years now (see +[Muon\\_Time\\_Differential](Muon_Time_Differential.html "wikilink") +definition). The current definition is in the process of being updated +to allow it to store more complex experiments and also to make it more +similar to the [TOFRaw](TOFRaw.html "wikilink") definition used on the +ISIS neutron instruments. ### X-ray Facilities \**Advanced Photon +Source, Argonne National Laboratory, US*\*: (2015) APS stores some of +its data collection in HDF5 files according to different formats, +including NeXus. These files are written using either C++ code with HDF5 +libraries or python code using the h5py package. No beam lines use the +NAPI in their own code. The [EPICS](http://www.aps.anl.gov/epics) area +detector software has two plug-ins that can write acquired images (and +metadata) into NeXus data files. The \**HDF5*\* file writer plug-in uses +the HDF5 C/C++ library interface and a user-supplied template file to +write NeXus data files. The \**NeXus*\* file writer plug-in uses the +NAPI. Note there are plans to deprecate the \**NeXus*\* plug-in in favor +of the more generic \**HDF5*\* plug-in. Also, some commercial +manufacturers of area detectors in use at the APS now write acquired +images into NeXus data files. \**Diamond Light Source, Oxfordshire, +UK*\*: The data acquisition system [GDA](http://www.opengda.org/) +deployed at most [Diamond](http://www.diamond.ac.uk) beamlines is +capable of writing and reading NeXus. In general beamlines coming online +now collect data in NeXus/HDF5 as the primary format from day one. Some +existing beamlines have already been migrated, more are following on a +case by case basis. It is aimed that all data will be contained in NeXus +for long term archiving. \**European Synchrotron Radiation Facility, +ESRF, FRANCE*\*: The [ESRF](http://www.esrf.eu) is planning on moving to +use Nexus/HDF5 for storing all raw data as part of the ambitious [ESRF +upgrade program](http://www.esrf.eu/Upgrade). The adoption of Nexus/HDF5 +is planned over the time period 2009 to 2012. Currently (2009) the ESRF +is actively exploring Nexus and HDF5 to see what the technical +implications are for data acquisition and analysis programs. The plan is +to where possible adapt data analysis to directly read data generated by +data acquisition programs in Nexus/HDF5 format. The current experience +shows that Nexus alone is not sufficient and extensions to the standard +are required. The extensions are being implemented directly in HDF5. +\**Alba Synchrotron Light Facility, Spain*\*: +[Alba](http://www.cells.es) uses NeXus with HDF5 backend as its main +format for storing data on all its beamlines (although scan data may +also be duplicated in other formats such as +[SPEC](http://www.certif.com/spec_manual/user_1_4_1.html) for +convenience). NeXus files are normally created by the +[Sardana](http://sardana-controls.org) control system. Currently (2014) +only NXscan (and recently NXtomo) compliant files are created in +production, although introduction of other Application Definitions is +being tested. \**SLS, [Paul Scherrer Institut](http://www.psi.ch/), +Switzerland*\*: The [Swiss Light Source](http://www.psi.ch/sls/) is +considering NeXus at some beamlines. The PolLux STXM beamline has been +developing and using new control software since late 2012 which records +all data in NeXus/HDF5 format. This STXM control software (and the NeXus +format with it) is propagating to a number of other STXM beamlines +around the world. The SLS is encouraging Dectris to have their new +detectors (e.g. Eiger) record data in an HDF5 format in order to ease +further adoption of NeXus. ### Neutron Scattering Facilities \**ISIS +Neutron Facility, STFC Rutherford Appleton Laboratory, UK*\*: +Instruments on the [ISIS second target +station](https://www.isis.stfc.ac.uk/) are now generating NeXus files as +per the [TOFRaw](TOFRaw.html "wikilink") definition in parallel with old +ISIS RAW format files. Currently most data analysis is carried out using +the ISIS RAW files, but the new [Mantid data analysis +framework](http://www.mantidproject.org/) supports [TOFRaw](TOFRaw.html +"wikilink") NeXus files and is being increasingly used. The long term +goal is to entirely replace the old ISIS RAW file format on both the +first and second target stations with NeXus files; the rate determining +step for this is the updating of data analysis code to read NeXus files. +\**Lujan Neutron Scattering Center, [Los Alamos National +Laboratory](http://lansce.lanl.gov/lujan), USA*\*: The Lujan Center is +generating NeXus files on all instruments. We are in the process of +making the files consistent with the emerging standards, especially +[TOFRaw](TOFRaw.html "wikilink"). The facility hosts about 65,000 NeXus +files and the number is growing. \**Materials and Life Science Facility, +[J-PARC](http://www.j-parc.jp/index-e.html), Japan*\*: In FY2008, we +have successfully received first proton beam and produced pulsed neutron +and muon beam at Materials and Life Science Facility (MLF) in J-PARC +(http://www.j-parc.jp/index-e.html). Histogrammed data converted from +event-format data and analyzed data are stored in NeXus data format with +metadata, and NeXus is common and shared data format among neutron +scattering instruments and scientists in MLF. NeXus C-API is utilized +through Manyo-Library which is the data analysis framework for neutron +scattering experiments. Data analysis softwares for each instrument have +been developed with C++ and python on Manyo-Library. \**Bragg Institute, +[Australian Nuclear Science and Technology +Organisation](http://www.ansto.gov.au/research/bragg_institute), +Australia*\*: We are currently writing NeXus files in HDF5 on 5 out of 7 +instruments, including Small Angle, Reflectometer, Powder Diffaction and +Residual Stress. NeXus is not being used on Triple Axis and Single +Crystal Diffraction. The next wave of instruments will be predominantly +NeXus. \**Institut Laue Langevin [ILL](http://www.ill.eu), Grenoble +France*\*: As of 2008-2009, the ILL has 2 instruments that generate +NeXus/HDF5 files as base format: the Disk chopper time-of-flight cold +neutrons spectrometer IN5 [IN5](http://www.ill.fr/in5) and Time of +Flight Neutron Spectrometer for Small Angle Inelastic themal neutron +Scattering BRISP [BRISP](http://www.ill.fr/brisp). Volume of data (Gb's) +is substantially higher than what we used to have at the ILL before - +because of large PSD detectors - and NeXus was then the only sensible +choice for storage. We then use +[LAMP](http://www.ill.eu/instruments-support/computing-for-science/cs-software/all-software/lamp/), +and Matlab tools (incl. Mslice from Oxford/ISIS) to read and convert +data sets. [McStas](http://www.mcstas.org) is also used to model these +instruments, and may also generate NeXus files. \**Spallation Neutron +Source [SNS](http://neutrons.ornl.gov/), Oak Ridge, TN, USA*\*: SNS is +using [TOFRaw](TOFRaw.html "wikilink") for storing histogram based data +from all instruments. We are working towards storing the raw event data +in NeXus instead as the data acquisition saves data in that form +already. \**SINQ, [Paul Scherrer Institute](http://www.psi.ch), +Switzerland*\*: At SINQ most data files are stored in NeXus format, as +of January, 5, 2009 1104153 files were collected. As PSI pioneered NeXus +file writing, most files do not adhere to the newest standards for NeXus +files anymore. This will be rectified as soon as more progress on +application definitions has been made. \**Neutronenquelle Heinz +Maier-Leibnitz [FRM II](http://www.frm2.tum.de), Germany*\*: +Introduction of NeXus is under discussion since long; as of 2011, NeXus +is used by zero (0) instruments. \**European Spallation Source +[ESS](http://www.europeanspallationsource.se), Sweden*\*: Current plans +foresee all raw data to be stored in NeXus. Processed data is set to +follow that model. diff --git a/source/content/File_id_attribute_for_Nexus_files.rst b/source/content/File_id_attribute_for_Nexus_files.rst new file mode 100644 index 00000000..5f96367d --- /dev/null +++ b/source/content/File_id_attribute_for_Nexus_files.rst @@ -0,0 +1,28 @@ +================================= +File id attribute for Nexus files +================================= + + +--- title: File id attribute for Nexus files permalink: +File_id_attribute_for_Nexus_files.html layout: wiki --- In its current +definition of \`NXroot\` no attribute is provided to hold a unique ID +for a file. Though there is one for the filename, this might not be +unique and can change over time. Several facilities are planning to +store files on large storage systems to which access is provided not +only via a file system but also via web applications. The latter ones +typically rely on a database holding an index of the files on the +storage. In such cases a file on the storage system is typically +associated with an ID which acts as a primary key for the file. +Currently this ID is only stored in the database. Thus if the names or +locations of files on the storage system change there is no way to +rebuild the map between IDs and files. I thus suggest to add an +attribute \`file_id\` to the \`NXroot\` class which allows facilities to +store such a unique key for a file directly to the Nexus file. The other +ID values available are related to a particular instance of \`NXentry\` +and are thus not feasible to identify a file. In particular if several +instances of \`NXentry\` are stored in a single file (this would make +sense for archiving purposes as tape libraries can usually handle large +files much better than very small ones). NXroot (base class, version +1.0) @NX_class @file_time @file_name @file_update_time @NeXus_version +@HDF_version @HDF5_Version @XML_version @creator @file_id NXentry The +\`file_id\` attribute should be of type \`NX_CHAR\`. diff --git a/source/content/GenericScan.rst b/source/content/GenericScan.rst new file mode 100644 index 00000000..859b7c9b --- /dev/null +++ b/source/content/GenericScan.rst @@ -0,0 +1,29 @@ +=========== +GenericScan +=========== + + +--- title: GenericScan permalink: GenericScan.html layout: wiki --- +Generic Scan Instrument ----------------------- This is a DTD for an +example generic instrument which performs scans. This example is for an +omega-two-theta (rotation\\_angle polar\\_angle in NeXus notation) scan +and serves to highlight NeXus scan data storage principles: - Assume np +to be the number of scan points - Variable data (such as motors) which +can vary during the scan are stored as arrays of length np at their +proper place in the NXinstrument hierarchy. - In NXdata links to all +varied positions and the dectector counts are created. This provides for +easy access to the popular table format for scans. - In the case of +multi dimensional detectors, the PSD data must be stored with the scan +variable being the fastest varying dimension(the first) for technical +reasons. - If you to choose to store PSD scans in separate files or +separate entries, it is the users responsibility to process the data in +the right order. ++ +{Extended title for entry} +{Descriptive name of sample} {Type of sample environment} {polar_angle +to monochromator} { sample rotation} {name of instrument} {name of +facility} "Reactor" {reactor power} {wavelength at each scan position} +{Detector counts for each scan position} {polar angle for each scan +position} monitor \| timer {preset value for monitor or timer} {Monitor +counts for each scan position} {Link to detector counts} {Link to +detector polar_angle} {Link to sample rotation_angle} diff --git a/source/content/Group_Attributes.rst b/source/content/Group_Attributes.rst new file mode 100644 index 00000000..2ea840dd --- /dev/null +++ b/source/content/Group_Attributes.rst @@ -0,0 +1,23 @@ +================ +Group Attributes +================ + + +--- title: Group Attributes permalink: Group_Attributes.html layout: +wiki --- ### Group Attributes Implementation At the last NIAC meeting we +decided that group attributes shall be implemented for NAPI-4.0. I now +looked into this. As recent versions of HDF4 now also support group +attributes, the implementation is not a big problem. However there is +one issue: The most logical approach would be to modify NXputattr, +NXgetattr, NXgetnextattr etc. to do group attributes. But this changes +the way the NeXus-API works in a subtle and incompatible way: Now the +NeXus-API writes a file global attribute when no dataset is open. After +the change, file global attributes would only be written at root level, +else group attributes would be written when no dataset is open. This can +break older code. Or we can keep the way the API works and introduce a +new set of functions for handling group attributes. So we have two +choices: - Use the existing NX attribute functions and introduce a +subtle version incompatibility - Define new functions for group +attributes. I am in favour of the first solution because it prevents +API-bloat. But what does everyone else think? Mark Koennecke, January, +6, 2006 Decided: february, 3, 2006, we go with the incompatible change diff --git a/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst b/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst new file mode 100644 index 00000000..3a44f641 --- /dev/null +++ b/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst @@ -0,0 +1,52 @@ +======================================================================== +How to avoid name clashes during future extensions of the Nexus standard +======================================================================== + + +--- title: How to avoid name clashes during future extensions of the +Nexus standard permalink: +How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html +layout: wiki --- The Problem ----------- The current standard allows +users to use any name they want for fields and groups within base +classes. This can cause troubles for future extensions of the standard. +Consider the simple case where a user has chosen a name for a field +within a base class which is not used by the current standard. What will +happen when the NIAC decides 3 years later that this name will be used +for a new standard field in the same base class. This is in particular +problematic if the new field has an entirely different semantics as the +one the user had in mind when he created its own field. There are three +possible approaches to avoid this problem - every user defined field +must start with a particular prefix - use strong typing not only for +groups but also for fields - store all non-standard fields in an +instance of NXcollection Each of these approaches has its pros and cons +which should be discussed in this article. Question: I readily agree +that there is a potential problem. But what does it tell us that we +needed 20 years to discover it? MK Prefixes for user defined names +------------------------------- The most obvious way would be to add a +prefix to a field in order to distinguish standard- from user-defined +fields. For instance we could require users to prefix their own fields +with \`user\_\_\` so a user defined angle would have a name like +\`user\__tth\` ### Pros :\\\* easy to implement -- a paragraph in the +documentation would suffice ### Cons :\\\* it is virtually impossible to +force users to stick to this convention :\\\* every field name must be +parsed before we can tell whether it is a standard or a user defined +field :\\\* users hardly ever read a manual that careful to recognize +such a convention Strong typing for fields ------------------------ A +type could be added to each field by adding an attribute like +\*NX\\_class\* for groups. Indeed we could reuse \*NX\\_class\* for +fields. Such an approach might makes names entirely arbitrary as we +search for fields by type rather than by name (as we are doing it for +groups). ### Pros ### Cons - We break heavily with NeXus: the dictionary +is part of NeXus - All searches would need to be for type. Types which +are encoded in attributes. This becomes only practical with a special +tool. Do we like special tools? Given our limited resources to maintain +them? Using of NXcollection --------------------- The third approach is +to make more extensive use of \*NXcollection\*. Every field or group +which is not defined by the standard will be stored in an instance of +\*NXcollection\*. ### Pros :\\\* like the prefix approach this is easy +to do - just add a section in the documentation :\\\* no need to invent +new concepts as \*NXcollection\* already exists :\\\* could use +\*NXcollection\* as a kind of staging area for future class extensions +### Cons :\\\* add an additional hierarchy to the Nexus tree :\\\* need +to define standard name for instances of \*NXcollection\* to avoid +future name clashes with the collection instance itself diff --git a/source/content/IndirectDiscuss.rst b/source/content/IndirectDiscuss.rst new file mode 100644 index 00000000..5786cf04 --- /dev/null +++ b/source/content/IndirectDiscuss.rst @@ -0,0 +1,117 @@ +=============== +IndirectDiscuss +=============== + + +--- title: IndirectDiscuss permalink: IndirectDiscuss.html layout: wiki +--- This file is from the old SWIKI and a starting point for discussion +... the idea is to come up with a definition based on inheritance from +other definitions such as [TOFRaw](TOFRaw.html "wikilink") NXtofnigs.xml +{Name of instrument} {(x,y,z) position coordinates relative to origin at +sample position}? {The orientation information is stored as direction +cosines relative to origin at sample position.} {"nxcylinder", "nxbox", +"nxsphere", ...}? { nshapepar dimensions for selected shape}? +{Sequential order of target along beam path} {Optional +description/label}? {Sequential order of component along beam path}? +{"Engineering" position of moderator}? {Effective distance as seen by +measuring radiation}? { "H20" \| "D20" \| "Liquid H2" \| "Liquid CH4" \| +"Liquid D2" \| "Solid D2" \| "C" \|"Solid CH4" \| "Solid H2"}? {Poison +depth}? {whether the moderator is coupled}? { Gd \| Cd \|...} +{average/nominal moderator temperature} {log file of moderator +temperature} {moderator pulse shape} {Position and orientation of +moderator}? {(x,y,z) position coordinates relative to origin at sample +position}? {The orientation information is stored as direction cosines +relative to origin at sample position.} {"nxcylinder", "nxbox", +"nxsphere", ...}? { nshapepar dimensions for selected shape}? +{Sequential order of moderator along beam path} \* {} {} {Reflectivity +as function of wavelength [nsurf,i]} {} {} "vacuum"\|"helium"\|"argon" +{external material outside substrate} {} {} {} {} {} {} {number of +substrate sections} {Position and orientation of guide}? {(x,y,z) +position coordinates relative to origin at sample position}? {The +orientation information is stored as direction cosines relative to +origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { +nshapepar dimensions for selected shape}? {Sequential order of guide +along beam path} ? \* {Chopper type +single|contra_rotating_pair|synchro_pair}? {chopper rotation speed}? +{Number of slits} {angular opening} {disc spacing in direction of beam}? +{radius to centre of slit} {total slit height} {chopper phase angle}? +{pulse reduction factor of this chopper in relation to other +choppers/fastest pulse in the instrument}? {Effective distance to the +origin}? {low and high values of wavelength range transmitted}? +{Position and orientation of chopper}? {(x,y,z) position coordinates +relative to origin at sample position}? {The orientation information is +stored as direction cosines relative to origin at sample position.} +{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for +selected shape}? {Sequential order of chopper along beam path} \* +{Absorbing material of the aperture}? {Description of aperture}? +{Position and orientation of aperture}? {(x,y,z) position coordinates +relative to origin at sample position}? {The orientation information is +stored as direction cosines relative to origin at sample position.} +{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for +selected shape}? {Sequential order of aperture along beam path} + +"Fission Chamber"\|"Scintillator"? "monitor"\|"timer"? {preset value for +time or monitor}? {Distance of monitor from sample position}? {Monitor +efficiency as a function of wavelength}? {Proportion of incident beam +sampled by the monitor} {Position and orientation of monitor}? {(x,y,z) +position coordinates relative to origin at sample position}? {The +orientation information is stored as direction cosines relative to +origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { +nshapepar dimensions for selected shape}? {Sequential order of monitor +along beam path} {Coordinate system reference marker} 0 \* {"Beryllium" +\| "Pyrolytic Graphite" \| "Graphite" \| "Sapphire" \| "Silicon"}? {in +\| out}? {Wavelength transmission profile of filter}? {average/nominal +filter temperature} {Linked temperature_log for the filter}? {Sensor(s) +used to monitor the filter temperature}? {Unit cell parameters for +single crystal filter(lengths and angles)}? {Unit cell}? {Orientation +matrix of single crystal filter}? {Position and orientation of filters +within bank}? {(x,y,z) position coordinates relative to origin at sample +position}? {The orientation information is stored as direction cosines +relative to origin at sample position.} {"nxcylinder", "nxbox", +"nxsphere", ...}? { nshapepar dimensions for selected shape}? +{Sequential order of filter bank along beam path} \* "Soller"\|"radial" +{divergence of collimator in local x direction} {divergence of +collimator in local y direction}? {thickness of absorbing blades}? {gap +between absorbing blades}? {coating on or complete material of blades}? +{material separating absorbing blades}? {Position and orientation of +collimators within bank}? {(x,y,z) position coordinates relative to +origin at sample position}? {The orientation information is stored as +direction cosines relative to origin at sample position.} {"nxcylinder", +"nxbox", "nxsphere", ...}? { nshapepar dimensions for selected shape}? +{Sequential order of collimator bank along beam path} + { "PG (Highly +Oriented Pyrolytic Graphite)" \| "Ge" \| "Si" \| "Cu" \| "Fe3Si" \| +"CoFe" \| "Cu2MnAl (Heusler)" \| "Multilayer" } {horizontal mosaic Full +Width Half Maximum}? {vertical mosaic Full Width Half Maximum}? {Optimum +diffracted wavelength} {Bragg angle of nominal reflection} {Lattice +parameter of the nominal reflection}? {Scattering vector, Q, of nominal +reflection}? {Unit cell parameters (lengths and angles)}? {Volume of the +unit cell}? {(hkl) values of nominal reflection}? {average/nominal +crystal temperature}? {log file of crystal temperature}? {crystal +reflectivity versus wavelength}? {crystal transmission versus +wavelength}? {Horizontal width of individual segment}? {Vertical height +of individual segment}? {Thickness of individual segment}? {Typical gap +between adjacent segments}? {number of segment columns in horizontal +direction}? {number of segment rows in vertical direction}? {Horizontal +curvature of focusing crystal}? {Vertical curvature of focusing +crystal}? {Cut angle of reflecting Bragg plane and plane of crystal +surface}? {Position and orientation of crystals within bank}? {(x,y,z) +position coordinates relative to origin at sample position}? {The +orientation information is stored as direction cosines relative to +origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { +nshapepar dimensions for selected shape}? {Sequential order of analyser +bank along beam path} + {Identifier for detector} +{name/manufacturer/model/etc. information}? {Detector gas pressure}? +{maximum drift space dimension}? {Crate number of detector}? {Slot +number of detector}? {Input number of detector}? {"He3 gas +cylinder"\|He3 PSD"\|"He3 planar multidetector"\| "He3 curved +multidetector"\| "multi-tube He3 PSD"\|"BF3 gas"\|"scintillator"? {Total +distance from sample position to detector through secondary +spectrometer} {Position and orientation of detector elements in bank}? +{(x,y,z) position coordinates relative to origin at sample position}? +{The orientation information is stored as direction cosines relative to +origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { +nshapepar dimensions for selected shape}? {Sequential order of detector +bank along beam path} {Total time of flight from sample position to +detector through secondary spectrometer} {Detector dead time}? {Delay in +detector registering an event}? {date of last calibration (geometry +and/or efficiency) measurements}? {details of the calibration method}? +{Efficiency of detector with respect to e.g. wavelength}? \*? diff --git a/source/content/Indirect_Time-of-Flight_and_Coordinates.rst b/source/content/Indirect_Time-of-Flight_and_Coordinates.rst new file mode 100644 index 00000000..d6f44ccd --- /dev/null +++ b/source/content/Indirect_Time-of-Flight_and_Coordinates.rst @@ -0,0 +1,45 @@ +======================================= +Indirect Time-of-Flight and Coordinates +======================================= + + +--- title: Indirect Time-of-Flight and Coordinates permalink: +Indirect_Time-of-Flight_and_Coordinates.html layout: wiki --- I am +having some problems describing a indirect time-of-flight instrument we +are currently building. The name of the instrument is MARS. See this +image for a schema. ![MARS|center](mars.png "MARS|center") The +instrument has 12 elastic detectors. These go in a separate NXentry +group and are covered by the the TOFNPD DTD. However, I missed +information about choppers in that DTD. This leads to my first question: +Is TOF-monitors, data and distances really the only items needed for +data analysis for TOFNPD? There are also 12 inelastic detectors. Theya +are supposed to go in another NXentry group following the to-be-defined +TOFNIG-DTD. Each of them is mounted on a triffid together with an +analyzer. The triffids are positioned at various polar\\_angles with +respect to the sample. On each triffid the analyzers move upwards and +scatter neutrons into the detectors below them. In order to make this +perfectly clear: scattering happens in the vertical plane. There are +several problem here: I tend to treat both the analyzers and the +detectors as a bank each. They are usually moved together; any +differences can be caught in parameter arrays. How to describe the +analyzer position? The polar\\_angle is clear. I like to think of the +polar\\_angle corresponding to longitude in a polar coordinate system +with the incoming beam describing the null meridian. But the tile angle +or latitude is missing from our simple coordinate system. What we have +is the azimuthal angle. From the use at the triple axis I deduce that +this is really a rotation around a vector connecting the sample and the +analyzer. This simply does not cut it. I suggest to add a tilt angle out +of the instrument plane, corresponding to latitude to our simple +coordinate system which would then consist of: polar\\_angle, tilt, +distance and azimuthal\\_angle. How to describe the scattering between +the analyzer and the detector? Rather then defining yet another +coordinate system, I would like to wrap two theta between analyzer and +detector into the tilt angle. +------------------------------------------------------------------------ +May be I am just confused about [Coordinate +Systems](Coordinate_Systems.html "wikilink") here. ---- +------------------------------------------------------------------------ +------------------------------------------------------------------------ +Conclusion ---------- 01/2015 This page is totally obsolete. I think the +problem was resolved by changing the scattering plane. Now, the adequate +solution is the CIF-style description of the axes used. diff --git a/source/content/Instruments.rst b/source/content/Instruments.rst new file mode 100644 index 00000000..533300ac --- /dev/null +++ b/source/content/Instruments.rst @@ -0,0 +1,96 @@ +=========== +Instruments +=========== + + +--- title: Instruments permalink: Instruments.html layout: wiki --- The +NeXus Design page lists the group classes from which a NeXus file is +constructed. They provide the glossary of items that could, in +principle, be stored in a standard-conforming NeXus file (other items +may be inserted into the file if the author wishes, but they won't be +part of the standard). If you are going to include a particular piece of +metadata, consult the [class definitions](Design.html "wikilink") to +find out what to call it. However, to assist those writing data analysis +software, it is useful to provide more than a glossary; it is important +to define the required contents of NeXus files that contain data from +particular classes of neutron, x-ray, or muon instrument. As part of the +NeXus standard, we have identified a number of generic instruments that +describe an appreciable number of existing instruments around the world. +Although not identical in every detail, they share enough common +characteristics, and more importantly, they require sufficiently similar +modes of data analysis, to make a standard description useful. They are +in the process of being defined for the NeXus standard. The definitions +will be in XML using the NXDL (NeXus Definition Language) format. +Instrument Definitions List --------------------------- ### TRAC +[Pete](User%3APete_Jemian.html "wikilink") 15:49, 14 December 2009 +(UTC): [NeXus definitions TRAC ticket +\\#3](http://trac.nexusformat.org/definitions/ticket/3) was created to +describe the items on this page. Classes that were not already described +in NXDL have TRAC tickets created. The status of each of these classes +is described in the comments on that page. All new propositions for +classes should be described with a [new TRAC +ticket](http://trac.nexusformat.org/definitions/newticket). ### Ratified +These have been voted on by the [NIAC](NIAC.html "wikilink") and so are +official NeXus definitions - [NXTOFRaw: Time-of-Flight Raw +Data](TOFRaw.html "wikilink") Editors: [Freddie +Akeroyd](User%3AFreddie_Akeroyd.html "wikilink"), [Peter +Peterson](User%3APeter_Peterson.html "wikilink") - [Monochromatic +Neutron and X-ray Powder +Diffraction](Monochromatic_Neutron_and_X-ray_Powder_Diffraction.html +"wikilink") Editor: [Mark Knnecke](User%3AMark_Koennecke.html +"wikilink"), PSI - [Generic Scanning Instrument](GenericScan.html +"wikilink") Editor: [Mark Knnecke](User%3AMark_Koennecke.html +"wikilink"), PSI - [Monochromatic Neutron and X-ray Triple-Axis +Spectrometer](Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html +"wikilink") Editor: [Nicholas Maliszewskyj](User%3ANickm.html +"wikilink") (NIST Center for Neutron Research, USA). ### Proposed In +this case the need for a particular definition has been identified, an +editor has been assigned and some detailed discussions have taken place; +however the definition has not yet been voted on by the [NIAC](NIAC.html +"wikilink") and so could still undergo modification. - [Monochromatic +Neutron and X-ray Single Crystal +Diffractometer](Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.html +"wikilink") Editor: [Mark Knnecke](User%3AMark_Koennecke.html +"wikilink"), PSI - [Archive Definition](Archive_Definition.html +"wikilink") Editor: [Laurent Lerusse](User%3AL.lerusse.html "wikilink") +(CCLRC - Rutherford Appleton Laboratory, e-Science, UK) - [Monochromatic +Neutron and X-ray Small Angle Scattering](SAS.html "wikilink") Editor: +Ron Ghosh (Institut Laue Langevin, France). - [Processed +Data](Processed_Data.html "wikilink") Editor: [Ray +Osborn](User%3ARay_Osborn.html "wikilink") (Argonne National Laboratory, +USA) - [X-Ray Synchrotron Raw](XESraw.html "wikilink") Editor: [Stuart +Campbell](User%3AStuart_Campbell.html "wikilink") (Diamond Light Source, +UK) - [Muon Time Differential](Muon_Time_Differential.html "wikilink") +Editor: [Steve Cottrell](User%3ASteve_Cottrell.html "wikilink") (ISIS, +UK) ### Planned These definitions are currently being worked on and so +could still undergo major revisions. When they near completion they will +be moved into the \*Proposed\* category above. - Diffraction - Protein +Crystallography - [Time-of-Flight Neutron Powder +Diffraction](Time-of-Flight_Neutron_Powder_Diffraction.html "wikilink"), +Editor: [Peter Peterson](User%3APfpeterson.html "wikilink") (Spallation +Neutron Source, USA). - [Time-of-Flight Neutron Single Crystal +Diffractometer](Time-of-Flight_Neutron_Single_Crystal_Diffractometer.html +"wikilink"), Editor: TBA - Reflectometry - [Time-of-Flight Neutron +Reflectometry](Time-of-Flight_Neutron_Reflectometry.html "wikilink"), +Editor: Robert Dalgliesh (ISIS Pulsed Neutron and Muon Source, UK) - +[Monochromatic Neutron and X-ray +Reflectometry](Monochromatic_Neutron_and_X-ray_Reflectometry.html +"wikilink"), Editor: Paul Kienzle (NIST Center for Neutron Research, +USA) - Imaging - X-ray Tomography - Small-Angle Scattering - Grazing +Incidence Small-Angle X-ray Scattering, Editor: TBA - [Time-of-Flight +Small Angle Scattering](Time-of-Flight_Small_Angle_Scattering.html +"wikilink"), Editor: Stephen King (ISIS Pulsed Neutron and Muon Source, +UK) - Ultra-Small-Angle Neutron Scattering, Editor: TBA - +Ultra-Small-Angle X-ray Scattering, Editor: [User%3APete +Jemian](User%3APete_Jemian.html "wikilink") (Advanced Photon Source, +USA) - Spectrometers - [Time-of-Flight Neutron Direct Geometry +Spectrometer](Time-of-Flight_Neutron_Direct_Geometry_Spectrometer.html +"wikilink"), Editor: Toby Perring (ISIS Pulsed Neutron and Muon Source, +UK) - [Time-of-Flight Neutron Indirect Geometry +Spectrometer](Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html +"wikilink"), Editor: Martyn Bull (ISIS Pulsed Neutron and Muon Source, +UK) - XAS: X-ray Absorption Spectroscopy - XPCS: X-ray Photon +Correlation Spectroscopy - Spin-Echo - [Neutron Spin +Echo](Neutron_Spin_Echo.html "wikilink"), Editor: Robert Georgii +(FRM-II, Germany) - [Time-of-Flight Neutron Spin +Echo](Time-of-Flight_Neutron_Spin_Echo.html "wikilink"), Editor: TBA diff --git a/source/content/IssueReporting.rst b/source/content/IssueReporting.rst new file mode 100644 index 00000000..b8bd651a --- /dev/null +++ b/source/content/IssueReporting.rst @@ -0,0 +1,15 @@ +============== +IssueReporting +============== + + +--- title: IssueReporting permalink: IssueReporting.html layout: wiki +--- NeXus Instrument/Base Class Definitions +--------------------------------------- - [View current +issues](https://github.com/nexusformat/definitions/issues) - [Timeline +(recent changes and ticket +activitiy)](https://github.com/nexusformat/definitions/pulse) NeXus +Library and Applications ------------------------------ - [View current +issues](https://github.com/nexusformat/code/issues) - [Timeline (recent +changes and ticket +activitiy)](https://github.com/nexusformat/code/pulse) diff --git a/source/content/Japinotes.rst b/source/content/Japinotes.rst new file mode 100644 index 00000000..93d5550a --- /dev/null +++ b/source/content/Japinotes.rst @@ -0,0 +1,277 @@ +========= +Japinotes +========= + +The NeXus API for Java +====================== + +Introduction +------------ + +NeXus is a proposal for a common file format for neutron and X-ray scattering. NeXus uses HDF as its physical file format. At the last NOBUGS conference, a strong need for a Java-API to NeXus files was expressed. Version 1.0 of this Java API has now (October 2000) become available. As recoding the HDF library in Java was no option, the Java API for NeXus (jnexus) was implemented through the Java Native Methods Interface (JNI). This has the consequence that the Java API for NeXus cannot be used in applets as the security restrictions for applets prohibit downloading of shared libraries and local file access. Applets can use a NeXus Data Server in order to access NeXus files in readonly mode. + +Acknowledgement +--------------- + +This implementation uses classes and native methods from NCSA's Java HDF Interface project. Basically, all conversions from native types to Java types are done through code from the NCSA HDF group. Without this code, the implementation of this API would have taken much longer. See NCSA's copyright for more information. + +Installation +------------ + +### Requirements + +For the binary distribution, only a JDK1.1 compatible Java runtime is required. Suitable runtime environments for Solaris, Linux, and Windows32 can be downloaded from Sun's Java homepage. This website also holds pointers to Java runtime systems for other platforms. Jnexus has not been tested with Java 2 but should work with it. In order to compile the Java API for NeXus, the following components are required: + +- A Java Development Kit 1.1 or better. For downloads, see above. +- A C compiler for your platform. +- The HDF libraries version 4.1r3 or better. Can be downloaded from NCSA's HDF homepage. +- A complete copy of the latest NAPI sources (including jnexus sources). + +### Installation under Windows32 (Windows NT, Windows 95, 98, ME) + +1. Copy the HDF DLL's (\*413m.dll) and the file jnexus.dll to a directory in your path. For instance, `C:\\Windows\\system32`. +2. Copy the jnexus.jar to the place where you usually keep library jar files. + +### Installation under Unix + +Two files are needed: the jnexus.so shared library and the jnexus.jar file holding the required Java class. Copy them wherever you like and see below for instructions on how to run programs using jnexus. + +Running Programs with the NeXus API for Java +-------------------------------------------- + +In order to successfully run a program with jnexus, the Java runtime system needs to locate two items: + +- The shared library implementing the native methods. +- The nexus.jar file in order to find the Java classes. + +### Locating the shared library + +Of course, the method for locating a shared library differs between systems. Under Windows32 systems, the best method is to copy the jnexus.dll and the HDF-library DLL's into a directory in your path. The HDF DLL's have to go there anyway. On a Unix system, the problem can be solved in three different ways: + +- Make your system administrator copy the jnexus.so file into the system's default shared library directory (usually `/usr/sbin`). +- Put the jnexus.so file wherever you see fit and set the `LD_LIBRARY_PATH` environment variable to point to the directory of your choice. +- Specify the full pathname of the jnexus shared library on the java command line with the `-Dneutron.nexus.JNEXUSLIB=full-path-2-shared-library` option. + +### Locating jnexus.jar + +This is easier: just add the full pathname to jnexus.jar to the classpath when starting java. + +Examples + +A Unix example shell script: + + #!/sbin/sh + java -classpath /usr/lib/classes.zip:../jnexus.jar:. \ + -Dneutron.nexus.JNEXUSLIB=../bin/du40/libjnexus.so TestJapi + +A Windows 32 example batch file: + + set JL=-Dneutron.nexus.JNEXUSLIB=..\jnexus\bin\win32\jnexus.dll + java -classpath C:\jdk1.1.5\lib\classes.zip;..\jnexus.jar;. %JL% TestJapi + + +Programming with the NeXus API for Java. +---------------------------------------- +note: for experienced NeXus API +Programmers! The NeXus C-API is good enough but for Java a few adaptions +of the API have been made in order to match the API better to the idioms +used by Java programmers. In order to understand the Java -API it is +useful to study the NeXus C-API because many methods work in the same +way as their C equivalents. A full API documentation is available in +Java documentation format. For full reference look especially at: - The +interface NeXusFile Interface first. It gives an uncluttered view of the +API. + +- The implementation NexusFile which gives more details about constructors and constants. However this documentation is interspersed with information about native methods which should not be called by an application programmer as they are not part of the standard and might change in future. Some more general explanation will be given below. + +General Things +-------------- + +See the following code example for opening a file, opening a vGroup and closing the file again in order to get a feeling for the API. + +.. code-block:: java + + try { + NexusFile nf = new NexusFile(filename, NexusFile.NXACC_READ); + nf.opengroup("entry1", "NXentry"); + nf.finalize(); + } catch (NexusException ne) { + // Something was wrong! + } + +Some notes on this little example: + +- Each NeXus file is represented by a NexusFile object which is created through the constructor. + +- The NexusFile object takes care of all file handles for you. So there is no need to pass in a handle anymore to each method as in the C language API. + +- All error handling is done through the Java exception handling mechanism. This saves all the code checking return values in the C language API. Most API functions return void. + +- Closing files is tricky. The Java garbage collector is supposed to call the finalize method for each object it decides to delete. In order to enable this mechanism, the NXclose function was replaced by the finalize method. In practice it seems not to be guranteed that the garbage collector calls the finalize method. It is safer to call finalize yourself in order to properly close a file. Multiple calls to the finalize method for the same object are safe and do no harm. + +Data Writing and Reading +------------------------ + +Again a code sample which shows how this looks like: + +.. code-block:: java + + idata = [[0] * 20 for _ in range(10)] + iDim = [0] * 2 + + # put some data into idata....... + + # write idata + iDim[0] = 10 + iDim[1] = 20 + nf.makedata("idata", NexusFile.NX_INT32, 2, iDim) + nf.opendata("idata") + nf.putdata(idata) + + # read idata + nf.getdata(idata) + +The dataset is created as usual with makedata and opened with putdata. The +trick is in putdata. Java is meant to be type safe. One would think then +that a putdata method would be required for each Java data type. In +order to avoid this the data to write is passed into putdata as type +Object. Then the API proceeds to analyze this object through the Java +introspection API and convert the data to a byte stream for writing +through the native method call. This is an elegant solution with one +drawback: An array is needed at all times. Even if only a single data +value is written (or read) an array of length one and an appropriate +type is the required argument. Another issue are strings. Strings are +first class objects in Java. HDF (and NeXus) sees them as dumb arrays of +bytes. Thus strings have to be converted to and from bytes when reading +string data. +See a writing example: + +.. code-block:: java + + // Writing + String name = "Alle meine Entchen"; + nf.makedata("string_data", NexusFile.NX_CHAR, 1, name.length() + 2); + nf.opendata("string_data"); + nf.putdata(name.getBytes()); + + // Reading + byte bData[] = new byte[132]; + nf.opendata("string_data"); + nf.getdata(bData); + String string_data = new String(bData); + + +The aforementioned holds for all strings written as SDS content or as an attribute. SDS or +vGroup names do not need this treatment. ### Inquiry Routines Let us +compare the C-API and Java-API signatures of the getinfo routine or +method: + +// C-API + +.. code-block:: C + + NXstatus NXgetinfo(NXhandle handle, int *rank, int iDim[], int *datatype); + +.. code-block:: java + + // Java + void getinfo(int iDim[], int args[]); + +The problem is that Java +passes arguments only by value, which means they cannot be modified by +the method. Only array arguments can be modified. Thus args in the +getinfo method holds the rank and datatype information passed in +separate items in the C-API version. For resolving which one is which +consult a debugger or the API-reference. The attribute and vGroup search +routines have been simplified using Hashtables. The Hastable returned by +groupdir() holds the name of the item as a key and the classname or the +string SDS as ths stored object for the key. Thus the code for a vGroup +search looks like this: + +.. code-block:: java + + nf.opengroup(group, nxclass); + h = nf.groupdir(); + e = h.keys(); + System.out.println("Found in vGroup entry:"); + while (e.hasMoreElements()) { + vname = (String) e.nextElement(); + vclass = (String) h.get(vname); + System.out.println("Item: " + vname + " class: " + vclass); + } + + +For an attribute search both at global or SDS level the +returned Hashtable will hold the name as the key and a little class +holding the type and size information as value. Thus an attribute search +looks like this in the Java-API: + +.. code-block:: java + + Hashtable h = nf.attrdir(); + Enumeration e = h.keys(); + while (e.hasMoreElements()) { + attname = (String) e.nextElement(); + atten = (AttributeEntry) h.get(attname); + System.out.println("Found global attribute: " + attname + " type: " + atten.type + ", length: " + atten.length); + } + +For more information about the usage of the API routines +see the reference or the NeXus C-API reference pages. Another good +source of information is the source code of the test program which +exercises each API routine. + +Limitations Known Problems +-------------------------- +These are a couple of known problems which you might run into: Memory: +As the Java API for NeXus has to convert between native and Java number +types a copy of the data must be made in the process. This means that if +you want to read or write 20MB of data your memory requirement will be +40MB! This can be reduced by using getslab/putslab for data transfers. +Java.lang.OutOfMemoryException: By default the Java runtime has a +ceiling of 16MB of memory use. This ceiling can be increased through the +-mxXXm option to the Java runtime. An example: java -mx32m ..... starts +the Java runtime with a memory ceiling of 32MB. DigitalUnix4.0D and LZW +compression: An error occurs in the HDF library when trying to compress +a dataset with COMP\\_CODE\\_LZW. This works just fine on other +platforms and also when using the NeXus C language API. The reason for +this is still an area for research. Maximum 8192 files open: The NeXus +API for Java has a fixed buffer for file handles which allows only 8192 +NeXus files to be open at the same time. If you ever hit this limit, +increase the MAXHANDLE define in native/handle.h and recompile +everything. + +Compiling the Java API for NeXus +-------------------------------- +You will need a complete copy of the +latest NAPI sources (including jnexus sources). See other requirements +under installation above. For Windows32 a Microsoft Visual C++ 6.0 +project file is supplied in the jnexus/jnexus directory. Use this +project file. You will need to adapt the directory settings under +Tools/Options/Directories for both include and library directories in +order to reflect the placement of the HDF libraries and the jnexus +source code in your directory hierarchy. Hitting F7 after that should +build the shared library. Hint: Only a release build is possible with +the HDF library binaries. If a debug build is needed you have to +recompile the HDF libraries yourself. For a recompilation of the Java +classes use the compilejava batch file in the jnexus main directory. For +DigitalUnix4.0D and Redhat Linux 6.2 Makefiles are provided (Makefile +and Make.tux respectively). For these systems everything can be build +with make du40 of make -f make.tux respectively. If the Makefiles do not +work edit the directory paths in the configuration section to match your +installation. If you wish to compile on another unix system, create a +copy of one of the above mentioned Makefiles and edit the configuration +section in your copy to match your installation of java and the HDF +libraries. If you succeed in building the NeXus API for Java on a new +system, please put back modified sources into the CVS repository and +make your Makefile and the compiled shared library available to the NAPI +team in order to provide a new binary distribution. + +Support Author +-------------- +I'm sure this software contains swarms of bugs. If you manage to +find one you may send requests either to the NAPI developer mailing list +or to Mark Knnecke who wrote the Java API for NeXus. Author: Mark +Knnecke Laboratory for Neutron Scattering Paul Scherrer Institut +CH-5232-Villigen-PSI Switzerland and the NeXus Design team. Last Update: +October, 19, 2000 \ No newline at end of file diff --git a/source/content/Java_API.rst b/source/content/Java_API.rst new file mode 100644 index 00000000..9af3fca4 --- /dev/null +++ b/source/content/Java_API.rst @@ -0,0 +1,45 @@ +======== +Java API +======== + + +--- title: Java API permalink: Java_API.html layout: wiki --- The NeXus +for Java API Download and Information Page +---------------------------------------------------- NeXus for Java is +an API which provides access to NeXus data files to programs written in +the programming language Java. This API was implemented by Java code +calling the original C language NeXus API through the Java Native +Methods Interface. ### Documentation The following documentation is +browsable online: 1. The [NeXus for Java API](japinotes.html "wikilink") +general instructions including installation notes, instructions for +running NeXus for Java programs and a brief introduction to the API. 2. +The +[Source](https://github.com/nexusformat/code/tree/master/bindings/java/) +documentation 3. A verbose tutorial for the NeXus for Java API. 4. The +API Reference. 5. Finally, the source code for the test driver for the +API which also serves as a documented usage example. ### Acknowledgement +All the code for number type conversion has been taken from the Java HDF +Interface library provided by NCSA. JHI also served as an inspiration +for many aspects of this API. See NCSA's copyright statement for more +details. Downloads All binary distributions carry the full +documentation, the Java source files and the shared libraries necessary +to run the NeXus for Java API on the platforms supported. By downloading +anything from here you agree to the following disclaimer: ### DISCLAIMER +THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND THE CONTRIBUTORS AS IS +WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no event +shall the Author or the Contributors be liable for any damages suffered +by the users arising out of the use of this software, even if advised of +the possibility of such damage. +------------------------------------------------------------------------ +Binary Packages for the Java NeXus API 1.3x These packages are based on +version 1.3.x of the NeXus-API and support only HDF-4. System type +Creation Date DigitalUnix4.0D October, 19, 2000 Redhat Linux 6.2 Intel +October, 19, 2000 Windows NT, 95, 98 October, 19, 2000 Binary Packages +for the Java NeXus API 2.0 These packages are based on the NeXus-API +version 2.0. This version supports both HDF-4 and HDF-5. System type +Creation Date True64Unix 5.1 December, 18, 2002 Redhat Linux 6.2 Intel +December, 18, 2002 Windows NT, 95, 98 December, 18, 2002 Please send +shared libraries compiled by you for platforms not in this list to the +maintainer of this page for inclusion. Source Code The source code for +the NeXus for Java API is included in the general NeXus API developer +package downloadable from the NeXus API page. diff --git a/source/content/Jnexustut.rst b/source/content/Jnexustut.rst new file mode 100644 index 00000000..0710f0d9 --- /dev/null +++ b/source/content/Jnexustut.rst @@ -0,0 +1,185 @@ +========= +Jnexustut +========= + +The NeXus for Java API Tutorial +-------------------------------- + +This document explains in more detail how to program with the NeXus API for Java. The intended audience are Java programmers who do not know the C language NeXus API. This document will only explain how to deal with NeXus files. For a general description of NeXus, see the NeXus WWW-pages. For reference, see the jnexus API documentation. Another good source of information is the test driver source code for the NeXus API for Java. It is a more involved example of API usage, and it is documented! + +Before doing anything with the NeXus for Java API, the necessary classes need to be imported. This is done with the statement: + +.. code-block:: java + + import neutron.nexus.*; + +at the head of your Java file. A NeXus programmer has to deal with the following five concepts: + +### NeXus Files + + You should have guessed as much. + +### Groups + + Groups are NeXus means of structuring data in a file. Groups can hold other groups or datasets. The filesystem analog to groups would be directories. + +### SDS + + SDS are scientific datasets. This is an n-dimensional array of numbers stored in the file. + +### Attributes + + Attributes are auxiliary information stored in the file. Two types of attributes are possible: global file-wide attributes and attributes linked to an SDS. + +### Links + + For organizational reasons, it might be useful to refer to an SDS in more than one group. To avoid duplicating data, it is possible to link an SDS wherever you want. This concept is quite similar to a symbolic link in a Unix file system. + +All these concepts will be explained in more detail below. A note about error handling: a ``NexusException`` is thrown whenever an error occurs. This implies that all code samples stated below should be included in a ``try-catch`` block, as shown here: + +.. code-block:: java + + try { + // some NeXus for Java calls. + } catch (NexusException ne) { + // analyze and treat the error + } + +For brevity and clarity, this will be left out in the following text. + +### NeXus Files + +A NeXus file is opened by: + +.. code-block:: java + + NexusFile nf = new NexusFile(name, NexusFile.NXACC_CREATE); + +The first parameter to the constructor is, of course, the file name. The second parameter is the access code valid for the file. Three access codes are supported: + +- **NXACC_CREATE**: For creating a new NeXus file. +- **NXACC_RDWR**: For opening an existing NeXus file for modification or for appending. +- **NXACC_READ**: Open a file for reading only. + +Please note that for all further examples, the name ``nf`` is assumed for the ``NexusFile`` object. + +Closing files is accomplished through the ``finalize`` method. This should be called automatically by the Java garbage collector, but it is safer to explicitly call this method when done with a file: + +.. code-block:: java + + nf.finalize(); + +Sometimes it is necessary to flush all buffered data to disk before doing, for instance, something else in a program to prevent data loss. This can be done with the ``flush`` method: + +.. code-block:: java + + nf.flush(); + +``flush`` has the side effect of closing all open SDS. + +### Groups + +A group (or vGroup) is the NeXus equivalent of a directory. Like a directory hierarchy, a hierarchy of groups can be built in a NeXus file. Unlike directory names, NeXus group names consist of two strings: the ``groupname`` and the ``groupclass``. Both strings are needed to address a NeXus group. + +The API provides functions for all necessary operations on groups. The first is group creation: + +.. code-block:: java + + nf.makegroup(name, nxclass); + +This corresponds to a ``mkdir`` in a Unix filesystem. + +To use a group, we need a means of traversing the group hierarchy. For this, the methods: + +.. code-block:: java + + nf.opengroup(name, nxclass); + nf.closegroup(); + +are provided. ``opengroup`` corresponds to a ``cd name,class`` and steps into the group ``name`` with class ``nxclass``. ``closegroup`` corresponds to ``cd ..`` and steps one group lower in the group hierarchy. + +NeXus is self-describing. A method is needed to find out about the contents of the current group: + +.. code-block:: java + + Hashtable ha = nf.groupdir(); + +The ``Hashtable`` returned contains pairs of ``name, class`` as entries. For datasets, the class name is set to ``SDS``. See the following code snippet as an example of how to print the contents of a NeXus group: + +.. code-block:: java + + Hashtable h = nf.groupdir(); + Enumeration e = h.keys(); + System.out.println("Found in Group"); + while (e.hasMoreElements()) { + String vname = (String) e.nextElement(); + String vclass = (String) h.get(vname); + System.out.println("Item: " + vname + " class: " + vclass); + } + +### SDS + +SDS are scientific datasets used to store n-dimensional arrays of data in various number types in a NeXus file. The following number types are allowed in NeXus files: + +- **NexusFile.NX_INT8** +- **NexusFile.NX_UINT8** +- **NexusFile.NX_CHAR** +- **NexusFile.NX_INT16** +- **NexusFile.NX_UINT16** +- **NexusFile.NX_INT32** +- **NexusFile.NX_UINT32** +- **NexusFile.NX_FLOAT32** +- **NexusFile.NX_FLOAT64** + +These types are defined as constants in ``NexusFile.java``. + +When creating a new file, a means is needed for creating a new SDS in the NeXus file. An SDS is fully characterized by its name, its number type (from the list above), the number of dimensions it has (its rank), and its size in each dimension. With this information, an SDS can be created: + +.. code-block:: java + + nf.makedata(name, type, rank, iDim); + +Here, ``iDim`` is an integer array holding the size of the dataset in each dimension. A specialty of NeXus (and HDF) is that the first dimension can be unlimited. Simply set the dimension to 0. Data can then be appended in consecutive steps along this dimension. Please note that ``makedata`` does not automatically open the SDS. Before writing data to it, a call to ``opendata`` is required. + +To write and read SDS data, methods such as ``putdata`` and ``getdata`` are used. Here is an example: + +.. code-block:: java + + // Example data + int iData[][] = new int[3][10]; + + // Write it + nf.putdata(iData); + + // Read it + nf.getdata(iData); + +The handling of strings and subsets, compression options, and other specific operations on SDS are described similarly. + +### Attributes + +Attributes are auxiliary information stored in a NeXus file. They can be global (file-level) or specific to an SDS. Attributes are managed with methods like ``putattr``, ``getattr``, and ``attrdir``. Examples for writing and reading attributes are: + +.. code-block:: java + + // Writing an attribute + nf.putattr(name, data, type); + + // Reading an attribute + nf.getattr(name, data, args); + +### Linking + +Linking an SDS into more than one group requires some precautions. First, internal information needed for linking must be retrieved while the SDS is still open: + +.. code-block:: java + + NXlink nl = nf.getdataID(); + +Then, after navigating to the appropriate place for the link in the group hierarchy, the link can be created: + +.. code-block:: java + + nf.makelink(nl); + +This covers the core aspects of using the NeXus API for Java. diff --git a/source/content/Latest_News.rst b/source/content/Latest_News.rst new file mode 100644 index 00000000..d3b1ccaf --- /dev/null +++ b/source/content/Latest_News.rst @@ -0,0 +1,391 @@ +=========== +Latest News +=========== + + +--- title: Latest News permalink: Latest_News.html +layout: wiki --- 2017 +---- October: The upcoming Code Camp will be hosted by Diamond Light +Source 24th to 26th October. Visit [Code Camp 2017](Code_Camp_2017.html) +for more information and registration. February: The main NeXus webpage +migrated away from being a single static page and the wiki stopped being +driven by mediawiki. Both are now (again) hosted together as Github +Pages with pages being build out of markup files. In the (still ongoing) +process we aim to reduce the amount of outdated information offered. +2016 + +---- October: [NIAC2016](NIAC2016.html "wikilink") took place in +Copenhagen 13th & 14th hosted by ESS, on the three days before we had be +a Code Camp. Version [3.2 of the NeXus +Defintions](https://github.com/nexusformat/definitions/releases/tag/v3.2) +was released. 2015 + +---- November: [Code Camp 2015](Code_Camp_2015.html +"wikilink") happened 16th - 18th at DESY in Hamburg January: As a result +of [NIAC2014](NIAC2014.html "wikilink") the +[Teleconferences](Teleconferences.html "wikilink") are now open to the +whole community. Dates and joining instructions are to be published on +the wiki page. 2014 + +---- December: [NIAC2014](NIAC2014.html "wikilink") +has happened. The [Code Camp](NIAC2014_CodeCamp.html "wikilink") had a +meeting with the HDF Group, but was largely a preparation for the [NIAC +meeting](NIAC2014_Meeting.html "wikilink"). The NIAC elected new members +and officers and there were many fruitful discussions. Important items +and decisions are recorded in the +[minutes](NIAC2014_Meeting#Minutes.html "wikilink"). Wednesday, +2014-08-07: A [NeXus code camp](NIAC2014.html "wikilink") has been +planned for 15th / 17th December 2014 with a [NIAC](NIAC2014.html +"wikilink") meeting to follow on 18th / 19th December 2014. This meeting +has been scheduled apart from the [2014 NOBUGS +conference](http://j-parc.jp/researcher/MatLife/en/meetings/nobugs2014) +to accommodate travel permissions of a majority on the technical +subcommittee. 2012 + +---- A [NeXus code camp](NIAC2012.html "wikilink") +happened 18th / 19th September 2012 with a [NIAC](NIAC2012.html +"wikilink") meeting to follow on 20th / 21th September 2012. These +meetings are the week before the [NOBUGS +conference](https://www.nobugsconference.org/) on 24th-26th September +2012 See [ NIAC: meetings](NIAC#Meetings.html "wikilink") for historical +information about the NIAC meetings and Code Camps. Wednesday, March 6, +2012: Release candidates for NeXus 4.3 are now available from +[NeXus\\_43\\_Testing](NeXus_43_Testing.html "wikilink") 2010 ---- +Thursday, October 21, 2010: NeXus Manual moved from the wiki to a \*book +format*(\``http://www.nexusformat.org/Documentation`\`) (PDF & HTML are +available). The revised manual also documents the \*class +definitions*(\``http://download.nexusformat.org/doc/html/ClassDefinitions.html`\`) +in [NXDL](https://manual.nexusformat.org/nxdl.html). Content has been +reorganised and divided into a volume containing the [User +Manual](https://manual.nexusformat.org/pdf/NeXusManual.pdf) and a volume +containing the \*Reference +Documentation*(\``http://download.nexusformat.org/doc/NeXusRefDoc.pdf`\`). +It is planned to release NXDL v1.0 next year. The scientific community +is encouraged to review existing [Application NXDL +definitions](https://manual.nexusformat.org/classes/applications/) or +propose new ones to the NIAC. A [tutorial on constructing new NXDL +definitions](http://download.nexusformat.org/doc/html/Tutorial.html) has +been add to the manual. Tuesday, April 13, 2010: NeXus API version 4.2.1 +has now been released and is available from the [download +area](http://download.nexusformat.org/kits/) - see +[Nexus\\_42\\_Release\\_Notes](Nexus_42_Release_Notes.html "wikilink") +for further information Tuesday, March 9, 2010: A [NeXus +Workshop](Workshop_PSI_2010.html "wikilink") will be held at +[PSI](http://www.psi.ch/) on May 10th - 12th. Its main purpose is to +discuss the application of NeXus at synchrotron sources. Thursday, +February 25, 2010: NeXus API 4.2 Release Candidate 5 (candidate for +4.2.1) is now [available for testing](NeXus_42_Testing.html "wikilink") +2009 + +---- Tuesday, May 5, 2009: [NeXus API 4.2.0 +released](http://lists.nexusformat.org/pipermail/nexus/2009/000326.html) +2008 + +---- Wednesday, December 3, 2008:NeXus API 4.2 Release Candidate 2 +(candidate for 4.2.0) is now [available for +testing](NeXus_42_Testing.html "wikilink") Wednesday, August 27, +2008:Work is currently in progress to convert NeXus definitions from +[Meta-DTDs](Metaformat.html "wikilink") into [XML +Schema](http://www.w3.org/XML/Schema) - for more details see the [NeXus +schema](Schema.html "wikilink") page. 2007 ---- Wednesday, October 31, +2007:The NeXus technical committee is pleased to announce the official +release of version 4.1 of the eXus API. The NeXus API provides a unified +interface for writing hierarchical data files in HDF4, HDF5, and XML +formats. Version 4.1 resolves a number of bugs reported in the 4.0 +release including issues with python bindings, text strings in the XML +library, and problems encountered with using the Absoft FORTRAN90 +compiler. Details of the new features contained in 4.1 can be found in +the [Release +Notes](http://trac.nexusformat.org/code/browser/tags/4.1.0/NEWS) Source +code, binary packages, and example code can be downloaded from [download +page](Download.html "wikilink"). Tuesday, September 11, 2007: The +upcoming 4.1 release of the NeXus API is now undergoing testing. More +details can be found on the [testing site](NeXus_41_Testing.html +"wikilink") as well as [provisional release +notes](Nexus_41_Release_Notes.html "wikilink") Friday, May 25, 2007:The +NeXus technical committee is pleased to announce the official release of +version 4.0 of the NeXus API. The NeXus API provides a unified interface +for writing hierarchical data files in HDF4, HDF5, and XML formats. +Version 4.0 resolves a number of bugs reported in the 3.0 release by +providing updated makefiles, support for the gfortran compiler, and an +improved test suite. New functionality in the NeXus API includes support +for two dimensional character arrays, linking to data items in other +files (external linking) via the NXmakenamedlink() call, and print the +target to a link reference with via the NXprintlink() call. File format- +specific developments include extension of the XML API to handle +unlimited dimensions, support for group attributes in HDF4, and +support for reading generic (non-NeXus) HDF5 files. The new release also +automagically generates documentation from the source code using the +Doxygen documentation system. Details of the new features contained in +4.0.0 can be found in the [Release +Notes](http://trac.nexusformat.org/code/browser/tags/4.0.0/NEWS) Friday, +March 16, 2007: The upcoming 4.0 release of the NeXus API is now +undergoing testing. More details can be found on the [testing +site](NeXus_4_Testing.html "wikilink") as well as [provisional release +notes](Nexus_4_Release_Notes.html "wikilink") 2006 ---- Thursday, +December 7, 2006: Site updated to MediaWiki 1.8.2 Tuesday, November 28, +2006: A NeXus install kit for Microsoft Windows is [now +available](http://download.nexusformat.org/kits/windows) The kit +includes the standard NeXus applications as well as libraries for +building applications with both [MinGW](http://www.mingw.org/) and +Microsoft Visual Studio. Tuesday, November 21, 2006: The NeXus +[MailingLists](mailinglist.html "wikilink") have been moved to a [new +server](http://lists.nexusformat.org). Future postings should be made to +\*listname*@nexusformat.org rather than to \*listname*@anl.gov Tuesday, +September 26, 2006: The NeXus WIKI has been moved to new site at +[](https://www.nexusformat.org/) and updated to MediaWiki 1.7.1 2005 +---- Monday, November 7, 2005:We are planning the next meeting of the +[NeXus International Advisory Committee](NIAC.html "wikilink"). The +current proposal is to hold it in Grenoble in the first week of +February, but details will be announced as they are finalized. In the +meantime, check the [NeXus Wiki pages](NIAC2006ILL.html "wikilink") for +discussions of the agenda. Friday, July 15, 2005:The technical committee +is pleased to announce the official release of [version 3.0.0 of the +NeXus API](http://www.nexus.anl.gov/nexus_api.html#download). Mark +Koennecke has incorporated infrastructure permitting the use of XML as +an additional data format in the same way that it is already possible to +switch between HDF4 and HDF5. The same API calls will be used for all +underlying formats so that their use will be transparent to the calling +program. The distribution now includes [Peter +Peterson's](User%3APfpeterson.html "wikilink") +[NXtranslate](NXtranslate.html "wikilink") utility to map data in +existing files to NeXus format via XML translation files. This +application will aid developers to write NeXus reading applications by +converting real data in a facility-native format to the NeXus standard. +In addition a [bugzilla server](http://nexus.isis.rl.ac.uk/) has been +established as a clearinghouse for bug reports and feature requests. +Thursday, June 23, 2005:The NeXus wiki is born. It uses the MediaWiki +software that powers [Wikipedia](http://www.wikipedia.org/) and is much +more flexible than the [Swiki](http://www.neutron.anl.gov:8080/NeXus) we +have been using until now. Thursday, March 17, 2005:The next meeting of +the NeXus International Advisory Committee (NIAC) will be held April +26-28 at the [Bishop's Lodge](http://www.bishopslodge.com/) in Sante Fe, +NM. The main task during these three days is to create instrument +definitions. 2004 ---- Monday, November 1, 2004:The minutes of the +second meeting of the NeXus International Advisory Committee (October +21-22, 2004) are now available. Wednesday, October 13, 2004:The draft +agenda of the upcoming NIAC meeting is now on the NeXus Swiki - we +invite comments up to the day of the meeting. Saturday, October 9, +2004:The new version of the web site has just been installed. The most +significant new feature, apart from the change in design is that the +recently voted NeXus classes are now displayed in a simplified table +format, that we hope is easier to read. This is generated automatically +from the XML file so will reflect the latest version at all times. There +is still a little cleaning up of the documentation of these classes, +with the final CVS uploads occurring at the upcoming meeting of the +[NeXus International Advisory Committee](NIAC.html "wikilink"). If you +find any errors, please contact the chair (Ray Osborn) or executive +secretary (Peter Peterson) of NIAC. Thursday, August 31, 2004:NXvalid +allows a user to look at the contents of a NeXus file, like a graphical +version of NXbrowse. The latest version is the first to incorporate the +ISAW viewers for plotting 1D and 2D NXdata and NXmonitor. ISAW is a +separate application developed at IPNS and needs to be separately +installed. If ISAW is not installed, NXvalid will still work, but the +viewers will not be available. Friday, June 4, 2004:The second meeting +of the NeXus International Advisory Committee will be held at the Paul +Scherrer Institut, near Villigen, Switzerland, on October 21-22, 2004, +immediately following NOBUGS 2004. See the NeXus Swiki page for more +details. Thursday, April 15, 2004:NXdir is a console based tool that +allows inspecting the contents of a NeXus file. It allows for directory +like listing of contents as well as printing out data. Version 0.2.4, +which allows the user to select a 1D or 2D NXdata to write out to a +file, has just been released. 2003 ---- Friday, September 24, 2003:The +minutes of the first meeting of the NeXus International Advisory +Committee are now available. Friday, July 25, 2003:The first meeting of +the NeXus International Advisory Committee will be held at the +California Institute of Technology, Pasadena, California, USA, from +1:30pm September 8 to 12:30pm, September 10, 2003. See the NIAC 2003 web +page for more details. 2002 ---- Saturday, December 14, 2002:Another +proposal made at the NOBUGS conference was that we set up an interactive +web forum to allow anyone to suggest changes to the NeXus format. We +have now set up the NeXus Swiki for this purpose. This is an +implementation of a Wiki Wiki Web which allows visitors to edit the web +pages directly in their browser. We welcome any constructive +contributions, and just ask that you respect the guidelines that are +referenced on the Swiki home page. Monday, December 2, 2002:Following a +meeting of NeXus users and developers at the recent NOBUGS conference, +we have decided to set up the NeXus Advisory Committee to oversee future +developments of the format. The proposed Terms of Reference are given +here. The membership of the committee will be nominated by neutron, +x-ray, and muon facilities, and announced in the next few weeks. +Saturday, September 14, 2002:This is the official release of version +2.0.0 of the NeXus API. Mark Koennecke and Uwe Filges have produced a +version that will read and/or write both HDF4 and HDF5 files. This is +transparent to the user (except when he/she is choosing to write either +an HDF4 or HDF5 file), i.e., the API calls are identical for both sets +of files. Being able to migrate from one underlying format to another is +one of the reasons why we developed a separate API, so it is good to see +that it works in practice. Also included in this release are two new +utilities, NXtoXML and NXtoDTD, which convert existing NeXus files to +XML, with and without data values respectively. NXtoDTD can be used to +produce the skeleton of a NeXus metaDTD file from an existing NeXus +file. Monday, July 8, 2002:We have created a new XML meta-DTD format for +specifying the contents of NeXus files. These files are well-conformed +DTD-less XML files, which therefore allow us to use standard XML forms +to edit or display them. The aim is to make the instrument and other +formats much more formally defined. 2000 ---- Thursday, December 14, +2000:The first public workshop devoted to the NeXus format will occur +from March 20-21, 2001, at PSI, near Zurich, Switzerland. Check the +NeXus'2001 web page for further details. Wednesday, December 6, +2000:Version 1.3.3 of the API has been released. It includes a new +routine, NXflush, to flush data to the output file, and the new Java API +as part of the standard distribution. Friday, October 20, 2000:Mark +Koennecke has released the initial version of NeXus API in the Java +programming language. It uses the Java Native Methods Interface in order +to access the C language NAPI calls, so it can only be used by Java +applications, not by applets. A shared library is needed in order to run +a NeXus for Java program. Tuesday, September 5, 2000:The NeXus FTP site +has been moved to a (hopefully permanent) location at <>. The API +installation section has been updated accordingly. Tuesday, June 20, +2000:At the recent NOBUGS III conference, several members of the NeXus +design team made presentations of their work on NeXus. Mark Koennecke +described a java web-based data server and browser, Przemek Klosowski +discussed efforts at NIST to build a Tcl/Tk-based data explorer, and +Chris Moreton-Smith presented a proposal to formalize the NeXus format +in XML. NeXus was also discussed in a data formats subgroup. Watch these +pages for further developments. Thursday, March 9, 2000:Version 1.3.2 +has now been released. It contains some enhancements to the +functionality of the NeXus terminal browser, NXbrowse, including the +ability to specify the file name in the command line and to dump data +into an ASCII file. It also fixes potential problems when compiling on +systems which do not use 4-byte int's and simplifies the interface +between Fortran and C on Windows systems. See the release notes for more +details. Monday, January 24, 2000:The latest version of the NeXus +terminal browser, NXbrowse, is now written in ISO C (NXbrowse.c), and +can be installed from the NAPI Makefile (i.e. make NXbrowse). See the +section on NeXus browsers for more details. Four extra routines have +been added to the C and F77 core API's. They are NXgetgroupinfo, +NXinitgroupdir, NXgetattrinfo, and NXinitattrdir. NXinitgroupdir and +NXinitattrdir allow the reinitialization of group and attribute searches +using NXgetnextentry and NXgetnextattr respectively. The NeXus API +version number is now 1.3.1. 1999 ---- Tuesday, December 14, +1999:Following popular demand, Mark Koennecke has updated the NeXus API +to include data compression. In the core API, compression is invoked by +a call to NXcompress between calls to NXopendata and NXputdata. N.B. +Mark Koennecke pointed out that earlier claims that NXcompress could be +used with NXputslab are incorrect; if data are to be compressed, they +must be written in one go using NXputdata. It may be possible to relax +this constraint when appending data along an unlimited dimension. We +will let you know when that's possible. The C, F77 and F90 API's have +been updated. Data is automatically compressed in NXUwritedata +(currently only a part of the F90 Utility API) if there has been a call +to NXUsetcompress, which defines the compression algorithm and the +minimum size of data set to be compressed (it makes no sense to compress +very small arrays). The current version of the NeXus API is v1.3.0. +Wednesday, November 24, 1999:There was yet another small error in the +Fortran 90 example program. The call to NXUwriteglobals did not have the +correct syntax. This has prompted a change to NXUwriteglobals to make +all the arguments optional, allowing the use of the F90 keyword syntax +when only a few attributes are to be written. Monday, November 22, +1999:The latest version of the ILL's popular data analysis package LAMP +is able to read and write NeXus files. Although it normally requires an +IDL license, they are also distributing a run-time version for various +operating systems. Friday, November 5, 1999:The NeXus API has been +re-released as version 1.2.1 under the terms of the GNU Lesser General +Public License. While this maintains the freedom of use of the NeXus API +available under the GNU General Public License, it allows commercial +developers to incorporate the code into any software that is +subsequently sold for profit. We feel that this should be beneficial to +the NeXus community in the long run. If you have any comments on this +decision, please send them to the NeXus mailing list. Monday, October +18, 1999:A new version of the NeXus API has been released. It is now +version 1.2.0. Check the release notes for information concerning the +changes, which mostly involve minor bug fixes. Monday, September 20, +1999:The NeXus Home Page has been redesigned to make it easier to find +individual web pages. If it does not format well in your browser, please +let me know. Friday, September 10, 1999:A small (but significant) error +has been corrected in the Fortran 90 example program. The file\\_id +variable should be declared as the derived type NXhandle, i.e. +type(NXhandle) :: file_id and not as a character string. Apologies if +that caused any confusion. Separate HTML files dedicated to the three +language interfaces, C, F77 and F90 have been added, along with improved +navigation aids within them. Thursday, August 19, 1999:The first version +of the Fortran 90 API has been installed on the FTP server and updated +the API file accordingly. It includes both an F90 version of the core +API and a utility API to simplify some of the NeXus file navigation. If +they prove useful, we will see if they can be implemented in C and/or +F77. A simple terminal browser for a NeXus file, NXbrowse.f90, has been +written. After compiling, linking, and running, type HELP at the +terminal for a list of available commands (upper or lower case). +Thursday, August 12, 1999:Freddie Akeroyd has set up an archive of the +NeXus mailing list. The latest version of the NeXus API, which contains +changes to the way NeXus groups are linked, has been installed. The +previous method was not 100% reliable. Some of the links to Fortner +Software have been updated at their request. Saturday, June 5, 1999:Some +extra definitions to the NeXus glossary have been added e.g. definitions +of NXdetector, NXcollimator, and NXattenuator. These are based on +suggestions by Ron Ghosh and Chris Moreton-Smith a while ago, but I +never got around to putting them on the web. Please view these +definitions critically when you have need to use them. Friday, April 2, +1999:A site map has been added so that it is easier to find some of the +lower-lying web pages. 1998 ---- Wednesday, November 25, 1998:An +explicit set of instructions for identifying plottable data has been +added, since this is an important aim of the NeXus format. This issue +came up in the NeXus mailing list a while ago, but I never added it to +the web pages. The instructions reported here will, at some stage, be +incorporated into a higher-level suite of API routines. Friday, November +20, 1998:The first release of HDF5 v 1.0.0 is now available. Only Unix +platforms are currently supported, so we will not change the NeXus API +just yet. However, preliminary views of the revised HDF API suggest that +we can layer the NeXus API transparently on top of HDF5 with no effect +on user applications. Since HDF have not yet finalized their plans to +ensure backward compatibility, we don't know what the implications for +existing NeXus files are yet. I have added some notes to the +introduction to the NeXus API. Friday, September 4, 1998:Mark Koennecke +has provided an IDL 5.1 interface to the NeXus API. I have included +links to it in the API section. I also updated the Status section. +Friday, April 17, 1998:The NAPI code has been updated on the FTP site to +change the type specification in NXgetattr from char \\*data to void +\\*data. Tuesday, April 14, 1998:Although there have been no major +changes to the NeXus web pages for several months, there has been +considerable activity behind the scenes in developing the NeXus API. A +CVS (Concurrent Versions System) server has been set up by Freddie +Akeroyd to coordinate those involved in developing the NeXus API. The +FTP site has just been updated to the latest version of the API, and we +intend to provide more examples of its use very soon, in order to make +the operation of NeXus easier to understand. The new version of the API +does define the NX\\\_ datatypes so I have removed the previous +instructions to use the HDF DFNT\\\_ datatypes in the API section. From +now on, we encourage the use of the NX\\\_ datatypes to ensure +compatibility with future versions of the API. In order to ensure the +most efficient reads and writes in each language, the Fortran API has +been amended so that the array index order is reversed from that in C +i.e. a set of time-of-flight spectra for 150 detectors with 800 time +channels would be stored as S(800,150) in Fortran and +S\\[150\\]\\[800\\] in C i.e. the actual values are stored in the same +order but addressed differently in the two languages. At the moment, +this means that there would be a discrepancy in the meaning of the +axis attribute in NXdata groups, unless the NeXus files are written +and read in the same language. We have not yet decided how to address +this issue, though the most likely is that the axis attribute will +have to have different meanings in the two languages i.e. in C, axis=1 +will refer to the first dimension whereas in Fortran, it will refer to +the last. If you have any views on this vexed subject, please address +them to the NeXus mailing list. Thursday, February 12, 1998:The latest +version of openGenie can read and write NeXus files. Check the openGenie +web pages for more details. 1997 ---- Monday, August 25, 1997:A few +minor errors in the example programs in the NeXus API section have been +corrected. Following Freddie Akeroyd's suggestion, I have added a +conversion table from C to Fortran for the subroutine arguments. Some of +the instrument descriptions have been modified to make them simpler. The +aim of this section is to give the minimum required parameters for +meaningful data analysis although, in general, people will want to store +extra information. Installation instructions have been added to the end +of the API section. Thursday, August 14, 1997:As I warned, we have moved +the FTP site to its semi-permanent location. Look for the API at <>. The +web pages have been updated accordingly. Sunday, August 10, 1997:A +discussion of the storage of histograms in NXdata groups to the NeXus +structure chapter has been added following some comments by Phil Seeger +(LANL). Phil Seeger also pointed out that we had omitted to specify the +storage of data errors. This has been added to the NeXus glossary. +Friday August 8, 1997:The FTP URLs have been moved to <> because of some +problems with the original server. This is a temporary move, so please +check these pages before downloading future versions of the API. A set +of helper routines designed to simplify the base API by combining +multiple function calls into a single function call ,e.g. NXmakedata, +NXopendata and NXputdata, is under development. This may be ready in the +next week, so watch this space. There will be a symposium during ICNS'97 +in Toronto in order to present the NeXus proposal to the neutron +scattering community, and to receive feedback on its design. It will be +held at 8pm on Tuesday evening in McLennan Physical Laboratories room +134, adjacent to where the poster sessions are being held. diff --git a/source/content/Linking_External_Files.rst b/source/content/Linking_External_Files.rst new file mode 100644 index 00000000..6f57182b --- /dev/null +++ b/source/content/Linking_External_Files.rst @@ -0,0 +1,89 @@ +====================== +Linking External Files +====================== + + +--- title: Linking External Files permalink: Linking_External_Files.html +layout: wiki --- Linking External Files ---------------------- This +discussion is on how to access external files from within a given NeXus +files. This defeats one guiding principle of NeXus: to have everything +in one file, somewhat. However, having everything in one file can mean +replicating large time-of-flight empty can or vanadium datasets in each +data file. In such cases it would be nice to access transparently an +external file holding such data. This page discusses some of the +implementation issues of such a scheme. ### Storing External File +Information Somehow the information that an external file has to be +accessed must be stored within the parent NeXus file. Given the feature +set of NeXus, I suggest storing this information as an attribute of a +NeXus object. It would be sensible to restrict this attribute to NeXus +groups only. As the name of the attribute, I suggest \**mount*\* +following the example of HDF-5. The data content of this attribute +should be a URL pointing to the requested file. This not only follows +the fashion of the day but also gives a lot of freedom to implement +various file access strategies and even file formats. As it might be +necessary to specify alternative locations for a given external file, I +suggest allowing multiple URLs separated by :: It must be :: because a +single colon can be part of a valid URL. ### Implementing External File +Access At The NAPI Level Various issues have to be adressed when +implementing external file access. The most important one is how to +transparently navigate the file hierarchy resulting from external +linking. In order to handle this, I suggest changing NXhandle. Currently +NXhandle maps to a pNexusFunction structure. Navigating the file +hierarchy becomes possible when NXhandle is modified to become a stack +of pNexusFunction structures. All functions in napi.c would need to be +changed to access the bottom element of this stack. NXopengroup would +then be modified to check for the mount attribute. If the mount +attribute is found, NXopengroup would open the file specified in the URL +and push the new pNexusFunction onto the stack. Likewise NXclosegroup +has to check if it is leaving a mounted file and if this is the case, +has to close the file and to pop the expired pNexusFunction structure +from the stack. If we choose to implement external linking on datasets +too a similar scheme would have to be implemented for NXopendata and +NXclosedata. ### Actually Accessing The External File This section is +about schemes for actually opening an external file as specified by a +URL. Accessing an external NeXus file within the same file system is the +easiest case: just open the path! It becomes moderately more complex +when accessing NeXus files which are available through the http or ftp +series of protocols. In that case, I suggest downloading such a file +through a suitable library and accessing it in the cache area. Such a +copy and access method would also help minimise the download of possibly +large files as a cache lookup can be implemented to precede an actual +download. A good library to choose for http and ftp style downloads +might be cURL. A drawback of such a solution (or any general URL +solution) is that another meta data API would be required in order to +keep such information as usernames, passwords and possibly proxy +servers. The degree of implementation complexity increases when we wish +to support general URL schemes or wish to support files not in a +supported NeXus physical file format. In such cases, a means would be +needed to dynamically add URL handlers to the NeXus-API. However, if we +restrict ourselves to the copy, cache and access scheme outlined above, +another easily implemented option is to call external utility programs +for downloading files into the cache. This solution will appeal to the +unix crowd (including the Macs who are also unix), but might leave the +utility deprived Windows users in a tight spot. The most ambitious +implementation would be to allow loading both file format and URL +handlers dynamically into the NeXus-API. Both are possible but will +cause stability and maintainance problems due to the reliance on many +shared libraries. ### Summary And Open Issues Summing it up, +implementing external linking is definitely possible and implementable +within a reasonable amount of time. Group attributes would have to be +implemented first though. Open questions include: - Do we restrict +external linking to groups? - Is the suggested path to an implementation +acceptable? There might be others. - Which level do we implement? - +Local NeXus files only? - Download, cache, access through a library +included with the NeXus-API? Which library then? - cURL? - Download and +cache delegated to external programs? - Dynamically loadable URL +Handlers? - Dynamically loadable physical file format handlers? - Your +question here! My two cents worth of opinion: shared libraries always +annoy me, I like big statically built things, especially as disk space +is cheap these days. I would implement a local disk access version first +in order to get the mechanics right, followed by a version implementing +the download, cache and access NeXus files scheme using cURL. Both +versions would restrict external linking to groups. Decisions NIAC 2006, +ILL, February 2006 --------------------------------------- - mount +becomes napimount - NXinquirefile, which file we are actually - nxdir +expanded to print and copy dependencies - Files are searched in +NX\\_LOAD\\_PATH - getenv becomes napigetenv in order to address +platform problems with getenv - External linking will only implement +local linking first. - If network linking is implemented, the use of +libcurl is preferred. - network linking is deferred, may be indefinitly diff --git a/source/content/Metaformat.rst b/source/content/Metaformat.rst new file mode 100644 index 00000000..3812d941 --- /dev/null +++ b/source/content/Metaformat.rst @@ -0,0 +1,62 @@ +========== +Metaformat +========== + + +--- title: Metaformat permalink: Metaformat.html layout: wiki --- +(\*work is currently in progress to replace Meta-DTDs with [XML +schema](Schema.html "wikilink")\*) The contents of NeXus files are +defined using XML. The hierarchical structure of NeXus files maps very +conveniently into XML files with NeXus groups and items as the XML +entities, and data attributes as XML attributes. NeXus utilities are +being developed to help people determine whether their files are +standard-conforming. However, formal XML format definitions (DTDs) are +difficult for the non-expert to read, so we have produced a much simpler +meta-DTD format, which produces well-formed (DTD-less) XML files that +will be converted into DTD files. This page describes the rules for +producing these files - some examples are available below and in the +NeXus content section. The utility NXtoDTD can be used to generate the +skeleton of such a file from an existing NeXus file; it outputs the XML +tags without the data or any annotation. Meta-DTD Definition +------------------- - Each meta-DTD file should begin with a standard +XML document tag, i.e. +This should be followed by a comment block giving the URL of the XML +file, the name of the editor, the keyword $Id$, which will generate a +revision number when the file is committed to the +[SubversionServer](SubversionServer.html "wikilink"), and a brief +description of the file, e.g. - Each NeXus group is an XML entity +defined by its class, e.g. NXuser, NXdata, .... - The name of the group +is given by the name attribute of the entity. N.B. XML attributes are +the name=value pairs located within the opening tag of the XML entity, +e.g. All other data items are XML entities defined by their name, e.g. - +Data attributes are stored as XML attributes. The data type is defined +as an XML attribute although it is not defined as an HDF attribute in +the NeXus file itself, e.g. - If the value of an attribute is not +defined by the DTD, a short description is enclosed within quotes and +curly braces, e.g. - Similarly, the value of a data item which is not +defined by the DTD should be placed within curly braces between the +opening and closing tag, e.g. {Temperature of sample} - Following the +opening tag of a group entity and before the closing tag of a data +entity, there may be one of three symbols, which have the same meanings +that they have in regular expressions. - \`*\` May occur 0 or more times +- \`+\` May occur one or more times (i.e. at least once) - \`?\` May +occur 0 or one times (i.e. no more than once) e.g. ? {Temperature of +sample}? If no symbol is given, the item is mandatory. - If a data item +is an array, add the array dimensions in square brackets to the type +attribute. Use a colon if the dimension length is not defined by the +DTD, e.g. Replace the colon with i, j, ... if you wish to match the +dimension length to other data items within the same group. - If no data +type is specified, it is assumed to be a character string (NX\\_CHAR). - +The version attribute of the analysis entity, defined in each +NXentry group should be set to $Revision$ when the file is first written +so that the CVS revision number is substituted when the XML file is +committed to the CVS server, e.g. Example ------- The instrument +definitions are being constructed out of XML files for each of the +component groups. If you are interested in defining your own definition, +please form them from these component parts (remove the XML document +type at the top of each file). See NXtofnpd.xml for a complete example. +The following is a colorized version of NXmonitor.xml. ### NXmonitor.xml +{Distance of monitor from sample} {Integral over monitor spectrum}? +{Time-of-flight range over which the integral was calculated}? "Fission +Chamber"\|"Scintillator"? {Height of monitor}? {Width of monitor}? +{Time-of-flight}? {Monitor efficiency}? {Monitor data}? diff --git a/source/content/MonoXPSD.rst b/source/content/MonoXPSD.rst new file mode 100644 index 00000000..04c1c32f --- /dev/null +++ b/source/content/MonoXPSD.rst @@ -0,0 +1,45 @@ +======== +MonoXPSD +======== + + +--- title: MonoXPSD permalink: MonoXPSD.html layout: wiki --- +Monochromatic Single Crystal Diffractometer with Position Sensitive +Detector +---------------------------------------------------------------------------- +Instrument definition for a single crystal diffractometer at a +monochromatic neutron or X-ray beam. This is the version for a position +sensitive detector. Such an instrument can be used in various ways: In +one mode the instrument is driven to each reflection individually and a +short scan is performed in order to measure the reflections intensity. +In such cases each reflection should be stored in either separate files +or in separate entries as they constitute separate measurements. In +another mode a larger range in omega is scanned, saving detector data at +each step. This is similar to the way PX instruments operate. In such a +case, omit the Miller indices in the sample group. A Eulerian cradle is +assumed. If you do not have this, or you are using a rotation camera, +feel free to adapt the Nxsample group. The definition assumes the +measurement to be an omega - two-theta or omega scan of a given +reflection. This definition is fairly minimal and shall cater for +standard data reduction needs. If your most favourite items are missing, +feel free to add them. If you think something is missing which is +required for standard data reduction tasks, please contact the +maintainer of this definition. If you to choose to store PSD scans in +separate files or separate entries, it is the users responsibility to +process the data in the right order. NP is again the number of scan +points ++ +{Title of the experiment} +{start time of measurement} {nominal wavelength selected} + {Polar +Angle, or two theta as an array with values for each scan point} {The +counts detected in the area detector, np is the number of scan points} +{distance to sample position} {offsets of each pixels centers x-value to +the detector center} {offsets of each pixels centers y-value to the +detector center} monitor \| timer {preset value for monitor or timer} +{Monitor counts at each scan point} {Descriptive name of sample} { +Sample rotation, also known as omega } { chi angle } { phi angle } +{Orientation matrix of single crystal according to conventions +established by Busing, Levy, 1967 } ? { Miller indices of the target +reflection} + {Link to detector counts in NXdetector} {Link to polar +angle data in NXdetector} {Link to pixel_offset_x in NXdetector} {Link +to pixel_offset_y in NXdetector} diff --git a/source/content/MonoXSingle.rst b/source/content/MonoXSingle.rst new file mode 100644 index 00000000..eec31166 --- /dev/null +++ b/source/content/MonoXSingle.rst @@ -0,0 +1,33 @@ +=========== +MonoXSingle +=========== + + +--- title: MonoXSingle permalink: MonoXSingle.html layout: wiki --- +Monochromatic Single Crystal Diffractometer with Single Detector +---------------------------------------------------------------- +Instrument definition for a single crystal diffractometer at a +monochromatic neutron or X-ray beam. This is the single detector +version. General Notes: - A Eulerian cradle is assumed. If you do not +have this, or you are using a rotation camera, feel free to adapt the +Nxsample group. - If you put measurements for multiple reflections in +one file, they should go into separate entries. - The definition assumes +the measurement to be an omega - two-theta or omega scan of a given +reflection. If this is not the case, i.e. a general scan is performed, +feel free to make HKL, chi and phi arrays with the length of the scan as +a dimension. As the NeXus scan paradigm of the day requires. - This +definition is fairly minimal and shall cater for standard data reduction +needs. If your most favourite items are missing, feel free to add them. +If you think something is missing which is required for standard data +reduction tasks, please contact the maintainer of this definition. ++ +{Title of the experiment} +{start time of measurement} {nominal wavelength selected} + {Polar +Angle, commonly known as two theta} {Polar Angle, or two theta as an +array with values for each detector element} {The counts detected in the +detector} monitor \| timer {preset value for monitor or timer} {Monitor +counts} {Descriptive name of sample} { Sample rotation, aslo known as +omega } { chi angle } { phi angle } {Orientation matrix of single +crystal according to conventions established by Busing, Levy, 1967 } { +Miller indices of the target reflection} + {Link to detector counts in +NXdetector} {Link to polar angle data in NXdetector} diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst b/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst new file mode 100644 index 00000000..6964600e --- /dev/null +++ b/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst @@ -0,0 +1,11 @@ +================================================== +Monochromatic Neutron and X-ray Powder Diffraction +================================================== + + +--- title: Monochromatic Neutron and X-ray Powder Diffraction permalink: +Monochromatic_Neutron_and_X-ray_Powder_Diffraction.html layout: wiki --- +Monochromatic Neutron and X-Ray Powder Diffraction +-------------------------------------------------- Find below my version +of a DTD for monochromatic powder diffraction. I kept it fairly minimal; +just the necessary stuff to do a normal Rietveld with it. diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst b/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst new file mode 100644 index 00000000..b67063ed --- /dev/null +++ b/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst @@ -0,0 +1,51 @@ +============================================= +Monochromatic Neutron and X-ray Reflectometry +============================================= + +--- +title: Monochromatic Neutron and X-ray Reflectometry +permalink: Monochromatic_Neutron_and_X-ray_Reflectometry.html +layout: wiki +--- + +**Please add comments to the discussion tab of this page and sign them** + +This proposed instrument definition adds a new class (NXspin) and also incorporates a few additions to existing base classes. + +Additions +--------- + +### New background + +NXcharacterization type: `specular_offset_background` + +The two existing backgrounds are `isotropic_scatter` and `empty_container`. Physically, we are moving the detector/sample slightly away from the specular reflection condition and measuring the strength of the signal rather than putting an isotropic scatter at the sample position or leaving it empty. Note: this simply identifies the location of the background scan, but does not specify how the background was measured. + +### Need to know the sample angle + +Propose adding the following to NXsample: +- Polar angle of the sample with respect to the beam incident on the monochromator +- Azimuthal angle of the sample with respect to the beam incident on the monochromator +- Rotation angle of the sample + +These fields are already used in the ratified NXmonotas, so there should be no problem ratifying them in the base class. + +### Record Spin State + +For polarized neutron reflectometry, the control software allows the user to select and tune a particular spin state. Expressed in terms of the individual filters and flipper currents, it is difficult to determine which spin state is desired. Instead, the instrument component should record the target spin state. Propose NXspin class to record the target spin at the sample or at the detector: +- 90 for spin up, -90 for spin down +- Constant usually ignored. 0 in the direction of the beam path. + +### Accurate record of the start and stop of every scan + +We need an accurate record of the start and stop of every measurement in a scan (e.g., to normalize by measurement time, and to correct for He3 polarizer efficiency decay). NXmonitor already stores count duration. Propose adding `count_start_time` as well: +- Start time for each scan point + +The alternative is to use NXlog and assume a particularly named log corresponds to the NXmonitor, with the same length as the measured points: +- Start of the measurement of point np +- Durations of the measurement point np + +The first solution is cleaner. + +Full Definition +--------------- \ No newline at end of file diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst b/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst new file mode 100644 index 00000000..356a1c5d --- /dev/null +++ b/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst @@ -0,0 +1,24 @@ +============================================================= +Monochromatic Neutron and X-ray Single Crystal Diffractometer +============================================================= + + +--- title: Monochromatic Neutron and X-ray Single Crystal Diffractometer +permalink: +Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.html +layout: wiki --- Monochromatic Neutron and X-Ray Single Crystal +Diffractometer +------------------------------------------------------------- This is +the instrument definition for a single crystal diffractometer at a +monochromatic beam port, be it X-ray or neutrons. A eulerian cradle is +assumed as the sample positioner. However, with the exchange of a few +fields in NXsample, CAD-4 geometry is covered too. The description also +holds for a rotation camera, just drop the eulerian cradle related +fields in NXsample. As the mode of measurement an omega or omega +two-theta scan covering a certain range is assumed. There are +instructions how to deal with the case of a general scans in the DTD's. +The common case is that multiple reflections are scanned in succession; +in that case each reflection should have its own entry in the file. +There are actually two DTD's which differ only in the NXdetector group: +- [Four Circle with Single Detector](MonoXSingle.html "wikilink") - +[Four Circle with Position Sensitive Detector](MonoXPSD.html "wikilink") diff --git a/source/content/Multi_Method_Instruments.rst b/source/content/Multi_Method_Instruments.rst new file mode 100644 index 00000000..9f3444c4 --- /dev/null +++ b/source/content/Multi_Method_Instruments.rst @@ -0,0 +1,74 @@ +======================== +Multi Method Instruments +======================== + + +--- title: Multi Method Instruments permalink: +Multi_Method_Instruments.html layout: wiki --- Multi Method Instruments +------------------------ This suggestion is one of the outcomes of the +NeXus for Synchrotrons Workshop at PSI: ### The Suggestion Add to +NXentry a new class named NXsubentry which has the same structure as +NXentry. Each NXsubentry is to hold the data or links thereto of a +single application definition in a multi method instrument. ### The +Reasoning Synchrotron beamlines often utilise several different +detectors and detector types in order to combine multiple techniques in +simultaneous measurements. NeXus currently asks for separate NXentry +groups to be written for each technique. This is good if one measurement +is written to a file. However, there is a second requirement that +multiple scans, multiple measurements, possibly a whole log of an +experimental session is written to one NeXus file. Then having different +techniques in different NXentries will make the files difficult to +understand as the relationship between different measurements is lost. +Thus, in order to keep the data from these multiple techniques together, +it is desirable to have the ability to write it all into a single +NXentry in a NeXus. The current NeXus application definitions refer to +the same names and paths and so there are many name collisions when +trying to satisfy two application definitions in one NXentry in a file. +The ability to combine application definitions could be enabled by +modifying the application definitions to refer to new and separate +groups inside the main NXentry of the NeXus file that refer to the +particular application/technique name and which contains all of the data +(or links to it) that is relevant to that application/technique. For an +example experiment that involves a combination of SAS and Fluorescence, +the proposed NeXus structure could look like: entry:NXentry/ definition += "NXSas, NXFluo" user:NXuser/ sample:NXsamle/ instrument:NXinstument/ +SASdet:NXdetector/ fancyname:NXdetector/ fancyname2:NXdetector/ ... +SAS:NXsubentry/ definition = "NXSas" instrument:NXinstrument/ +detector:link to SASdet data:NXdata/ Fluo:NXsubentry/ definition = +"NXFluo" instrument:NXinstrument/ detector:link to fancyname +detector2:link to fancyname2 data:NXdata/ In the above NeXus tree, the +entire beamline state could be stored in entry/instrument and then any +subset of this that is relevant to the SAS or Fluorescence techniques +would then be linked within the entry/SAS/instrument and the +entry/Fluo/instrument groups as defined by the current application +definitions with a minor change in the heirarchy. The advantages of this +approach are: - Only minor changes from current practice. - The only +name collisions to worry about are the names of the +applications/techniques themselves. - Application definitions need not +be concerned with the names and paths that other application definitions +proscribe. - The paths for each application remains well defined and an +analysis program for either technique can find the relevant data without +having to understand the other techniques present in the file. Further, +the same analysis programs can read the multi-technique files in the +same way (i.e. with the same code) exactly the same as they read +single-technique files. - A user inspecting the data manually can find +all the relevant information for a particular analysis in the one group +and so doesn't need to understand the entire beamline. One drawback of +this approach is that the beamline staff would have to define many links +when configuring the data acquisition software. However, this is +necessary work regardless of how the data is saved since the user must +be informed of how the different instrument components and detectors +relate to the various analyses anyway. In fact, NeXus and the above +proposal simplifies this task by clearly documenting in a formal manner +where the relevant information can be read. Some examples of beamlines +that would benefit from this proposal include: - Fluorescence + +Absorption + Diffraction (Beamline L, Doris, Beamline P06, PETRA III). - +PX + fluorescence: In PX often a fluorescence-signal is recorded, +especially for SAD-/MAD-measurements (PETRA beamlines P11 P13 P14). - +SAXS+fluorescence: fluorescence is often used as a second signal in SAXS +(PETRA P03). - SAXS + ellipsometry: Beamline BW4, DORIS Summarizing this +discussion, the suggestion is to allow NXentry or possibly new +NXsubentry groups underneath NXentry. Each of which can adhere to a +different application definition. All participants agreed that a good +means of handling multi technique instruments in NeXus is essential for +the adoption of NeXus at synchrotron facilities. This is a MUST HAVE! diff --git a/source/content/Muon_Time_Differential.rst b/source/content/Muon_Time_Differential.rst new file mode 100644 index 00000000..658a1a30 --- /dev/null +++ b/source/content/Muon_Time_Differential.rst @@ -0,0 +1,16 @@ +====================== +Muon Time Differential +====================== + + +--- title: Muon Time Differential permalink: Muon_Time_Differential.html +layout: wiki --- The Instrument Definition for the Muon instruments has +evolved from that proposed in 2001 to the more robust definition +outlined in the linked discussion document (pdfs/Muon_V2R7.pdf). For +completeness both are discussed in this document; however, the NIAC are +asked to vote on and ratify the 'Muon Instrument Definition: Version 2 - +pulsedTD' Aspects of the Muon Definition either introduce new NeXus +Classes or extend existing definitions. These are discussed separately +in the linked document (pdfs/Elements_for_Muons.pdf), and the NIAC are +asked to separately consider and ratify these elements that are key to +the Muon definition. diff --git a/source/content/NAPI_Routines.rst b/source/content/NAPI_Routines.rst new file mode 100644 index 00000000..0d7fb920 --- /dev/null +++ b/source/content/NAPI_Routines.rst @@ -0,0 +1,305 @@ +============= +NAPI Routines +============= + + +--- title: NAPI Routines permalink: NAPI_Routines.html layout: wiki --- +OUT OF DATE ----------- This page is now out of date and has been +replaced by [Doxygen generated +documentation](https://manual.nexusformat.org/doxygen/html-c/) General +Initialization and Shutdown ----------------------------------- ### +NXopen Opens the NeXus file, and creates and initializes the NeXus file +structure. The returned handle is a pointer to this structure. ;Usage: +status = NXopen (file_name, access_method, file_id) \|- ! rowspan=2 \| +Input Arguments \| file\\_name \| char \\\* \| Name of NeXus file to be +opened \|- \| access\\_method \| int \| File Access:NXACC\\_READ - read +only NXACC\\_RDWR - read and write access NXACC\\_CREATE - create (HDF4) +file NXACC\\_CREATE4 - create HDF4 file NXACC\\_CREATE5 - create HDF5 +file NXACC\\_CREATEXML - create XML file \|- ! \| Output Arguments \| +file\\_id \| NXhandle \\\* \| Identifier of NeXus file \|} ### NXclose +Closes NeXus file and deletes all associated data structures from +memory. ;Usage: status = NXclose (file_id) \|- ! \| Input Arguments \| +file\\_id \| NXhandle \\\* \| Identifier of NeXus file \|} ### +NXmakegroup Creates a NeXus group at the current level in the group +hierarchy, defining its name and class. This does not open the new group +automatically. ;Usage: status = NXmakegroup (file_id, group_name, +group_class) \|- ! rowspan=3 \| Input Arguments \| file\\_id \| +NXhandle \| Identifier of NeXus file \|- \| group\\_name \| char \\\* \| +Name of NeXus group \|- \| group\\_class \| char \\\* \| Class of NeXus +group \|} ### NXopengroup Opens an existing NeXus group for input and +output of data. ;Usage: status = NXopengroup (file_id, group_name, +group_class) \|- ! rowspan=3 \| Input Arguments \| file\\_id \| +NXhandle \| Identifier of NeXus file \|- \| group\\_name \| char \\\* \| +Name of NeXus group \|- \| group\\_class \| char \\\* \| Class of NeXus +group \|} ### NXopenpath Opens a NeXus group or dataset from a path +string. The NeXus item must exist for NXopenpath to work correctly. The +path string for NXopenpath has the same form as a unix path string: +/group1/group/group2/dataset. Both absolute and relative path are +supported. ;Usage: status = NXopenpath(file_id, path_string) \|- \| +rowspan=3 \| Input Arguments \| file\\_id \| NXhandle \|Identifier of +NeXus file \|- \| path\\_string \| char\\\* \| path to dataset or group +in NeXus file \|} ### NXopengrouppath Opens a NeXus group from a path +string. This function is subtly different from NXopenpath in that it +only opens the path to the last group; it does not open datasets. The +NeXus item must exist for NXopengrouppath to work correctly. The path +string for NXopengrouppath has the same form as a unix path string: +/group1/group/group2/dataset. Both absolute and relative path are +supported. ;Usage: status = NXopengrouppath(file_id, path_string) \|- \| +rowspan=3 \| Input Arguments \| file\\_id \| NXhandle \|Identifier of +NeXus file \|- \| path\\_string \| char\\\* \| path to dataset or group +in NeXus file \|} ### NXclosegroup Closes the currently open group. If +this group is a top-level group (i.e. with class NXentry), no groups are +left open. Otherwise, the next group up in the hierarchy (i.e. the group +containing the currently open group) is left open. ;Usage: status = +NXclosegroup (file_id) \|- ! \| Input Arguments \| file\\_id \| NXhandle +\| Identifier of NeXus file \|} ### NXmakedata Creates a new NeXus data +set with the specified name, type, rank and dimensions. ;Usage: status = +NXmakedata (file_id, data_name, data_type, rank, dimensions[]) \|- ! +rowspan=5 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of +NeXus file \|- \| data\\_name \| char \\\* \| Name of NeXus data set \|- +\| data\\_type \| int \| Data Type:NX\\_CHAR - Character string +NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte +integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer +NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer +NX\\_UINT32 - unsigned 4-byte integer \|- \| rank \| int \| Rank of data +\|- \| dimensions \| int\\[\\] \| Dimensions of data. The array is of +size 'rank' \|} ### NXcompmakedata Creates a new NeXus data set with the +specified name, type, rank and dimensions, compressed using the +specified protocol. ;Usage: status = NXcompmakedata (file_id, data_name, +data_type, rank, dimensions[], compress_type, bufsize[]) \|- ! +rowspan=7 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of +NeXus file \|- \| data\\_name \| char \\\* \| Name of NeXus data set \|- +\| data\\_type \| int \| Data Type:NX\\_CHAR - Character string +NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte +integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer +NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer +NX\\_UINT32 - unsigned 4-byte integer \|- \| rank \| int \| Rank of data +\|- \| dimensions \| int\\[\\] \| Dimensions of data. The array is of +size 'rank' \|- \| compress\\_type \| int \| Compression +algorithm:NX\\_COMP\\_LZW - GZIP NX\\_COMP\\_HUF - Skipping Huffman +NX\\_COMP\\_RLE - Run Length Encoding \|- \| bufsize \| int\\[\\] \| The +typical buffersize for writing. \|} The buffersize requires further +explanation. HDF-5 compresses data in chunks. And the buffersize is this +chunksize. If data is written in one go with a NXputdata, this is the +dimensions of the data. If data is written in slabs, this is the +preferred size of the slabs. Please note, that this has only a +performance impact when writing, it is no show stopper. Please note that +HDF-4 does not support compression on data sets written in slabs: If you +want compression with HDF-4, data must be written with one call to +NXputdata. Compression is ignored for XML-NeXus files. ### NXopendata +Opens an existing NeXus data set for further processing i.e. reading and +writing data or attributes, defining compression algorithms, and +obtaining data set information. ;Usage: status = NXopendata (file_id, +data_name) \|- ! rowspan=2 \| Input Arguments \| file\\_id \| NXhandle +\| Identifier of NeXus file \|- \| data\\_name \| char \\\* \| Name of +NeXus data set \|} ### NXcompress Defines a compression algorithm for +subsequent calls to NXputdata. This routine is now deprecated; please +use NXcompmakedata instead. ;Usage: status = NXcompress (file_id, +compress_type) \|- ! rowspan=2 \| Input Arguments \| file\\_id \| +NXhandle \| Identifier of NeXus file \|- \| compress\\_type \| int \| +Compression algorithm:NX\\_COMP\\_LZW - GZIP NX\\_COMP\\_HUF - Skipping +Huffman NX\\_COMP\\_RLE - Run Length Encoding \|} ### NXclosedata Ends +access to the currently active data set ;Usage: status = NXclosedata +(file_id) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| +Identifier of NeXus file \|- \|} ### NXsetnumberformat Sets the number +format when writing to ASCII files. When serializing NeXus file to +ASCII-XML files a format for printing numbers is required. The NeXus-API +has reasonable defaults for this. However, with this function a desired +format can be choosen for special cases. Please note that calls to this +function will be silently ignored for the binary NeXus formats HDF-4 and +HDF-5. ;Usage: status = +NXsetnumberformat(file_id,data_type,format_string \|- ! rowspan=3 \| +Input Arguments \| file\\_id \| NXhandle \| Identifier of NeXus file \|- +\|data\\_type \| int \| The NeXus data type for which to change the +print format. Data Type:NX\\_CHAR - Character string NX\\_FLOAT32 - +4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer +NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer +NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer +NX\\_UINT32 - unsigned 4-byte integer \|- \| format\\_string \| char\\\* +\| A ANSI-C language style format string \|- \|} Reading and Writing +------------------- ### NXgetdata Reads data values from the currently +open data set. Please note that memory overwrite occurs if the caller +has not allocated enough memory to hold all the data available. Call +NXgetinfo to determine the required dimension sizes. The data set must +have been opened by NXopendata. ;Usage: status = NXgetdata (file_id, +data) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of +NeXus file \|- ! \| Output Arguments \| data \| void \\\* \| Data values +\|} ### NXgetslab Reads a subset of the data in the current data set +specifying the starting indices and size of each dimension. The caller +is responsible for allocating enough memory for the data. ;Usage: status += NXgetslab (file_id, data, start[], size[]) \|- ! rowspan=3 \| Input +Arguments \| file\\_id \| NXhandle \| Identifier of NeXus file \|- \| +start\\[\\] \| int \| Indices of starting values in each dimension \|- +\| size\\[\\] \| int \| Length of slab in each dimension \|- ! \| Output +Arguments \| data \| void \\\* \| Data values \|} ### NXgetattr Reads +attribute values associated with the currently open data set. The +attribute is defined by its name. Attributes are meta-data; data that +provides information on the associated data set such as units, long +names etc. If no data set is open, it looks for a global attribute i.e. +attributes of the NeXus file. The caller is responsible for allocating +enough memory for the attribute values. Note, however, that only the +first 'length' bytes of the attribute are read to prevent memory +overwrite. ;Usage: status = NXgetattr (file_id, attr_name, value, +length, type) \|- ! rowspan=4 \| Input Arguments \| file\\_id \| +NXhandle \| Identifier of NeXus file \|- \| attr\\_name \| char \\\* \| +Name of attribute \|- \| length \| int \\\* \| Length of buffer for +storing attribute data \|- \| type \| int \\\* \| Attribute Data +Type:NX\\_CHAR - Character string NX\\_FLOAT32 - 4-byte real +NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer NX\\_UINT8 - +unsigned 1-byte integer NX\\_INT16 - 2-byte integer NX\\_UINT16 - +unsigned 2-byte integer NX\\_INT32 - 4-byte integer NX\\_UINT32 - +unsigned 4-byte integer \|- ! rowspan=2 \| Output Arguments \| value +\| void \\\* \| Value of attribute \|- \| length \| int \\\* \| Actual +length of attribute data \|} ### NXputdata Writes data into the +specified data set. ;Usage: status = NXputdata (file_id, data[]) \|- ! +rowspan=2 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of +NeXus file \|- \| data \| void \\\* \| Data values \|} ### NXputslab +Writes a subset of a multidimensional data array, specified by the +starting indices and size of each dimension, into the currently open +dataset. ;Usage: status = NXputslab (file_id, data, start[], size[]) \|- +! rowspan=4 \| Input Arguments \| file\\_id \| NXhandle \| Identifier +of NeXus file \|- \| data \| void \\\* \| Data values \|- \| start\\[\\] +\| int \| Indices of starting values in each dimension \|- \| size\\[\\] +\| int \| Length of slab in each dimension \|} ### NXputattr Writes an +attribute of the currently open data set. If no data set is open, a +global attribute is generated. The attribute has both a name and a +value. ;Usage: status = NXputattr (file_id, attr_name, value, length, +type) \|- ! \| Return Value \| status \| int \| Error status \|- ! +rowspan=5 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of +NeXus file \|- \| attr\\_name \| char \\\* \| Name of attribute \|- \| +value \| void \\\* \| Value of attribute \|- \| length \| int \| Length +of data \|- \| type \| int \| Data Type:NX\\_CHAR - Character string +NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte +integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer +NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer +NX\\_UINT32 - unsigned 4-byte integer \|} ### NXflush Flushes all data +to the NeXus file. Since this command closes and reopens the file, a new +file handle is returned. The command leaves the program in the same +state, i.e. with the same group and/or data set open. ;Usage: status = +NXflush (file_id) \|- ! \| Input & Output Argument \| file\\_id \| +NXhandle \\\* \| Identifier of NeXus file \|} Meta-Data Routines +------------------ ### NXgetinfo Gets the rank, dimensions and data type +of the currently open data set. ;Usage: status = NXgetinfo (file_id, +rank, dimensions[], data_type) \|- ! \| Input Arguments \| file\\_id \| +NXhandle \| Identifier of NeXus file \|- ! rowspan=3 \| Output +Arguments \| rank \| int \\\* \| Rank of data \|- \| dimensions \| +int\\[\\] \| Dimensions of data \|- \| data\\_type \| int \\\* \| Data +Type:NX\\_CHAR - Character string NX\\_FLOAT32 - 4-byte real +NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer NX\\_UINT8 - +unsigned 1-byte integer NX\\_INT16 - 2-byte integer NX\\_UINT16 - +unsigned 2-byte integer NX\\_INT32 - 4-byte integer NX\\_UINT32 - +unsigned 4-byte integer \|} ### NXgetgroupinfo Returns the number of +items in the current group, and the name and class of the current group. +;Usage: status = NXgetgroupinfo (file_id, item_number, group_name, +group_class) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| +Identifier of NeXus file \|- ! rowspan=3 \| Output Arguments \| +item\\_number \| int \\\* \| Number of NeXus data items in the current +group \|- \| group\\_name \| char \\\* \| Name of currently open NeXus +group \|- \| group\\_class \| char \\\* \| Class of currently open NeXus +group \|} ### NXinitgroupdir Initializes directory searches of the +currently open group. This is required to reset searches using +NXgetnextentry that may have been interrupted before completion. ;Usage: +status = NXinitgroupdir (file_id) \|- ! \| Input Arguments \| file\\_id +\| NXhandle \| Identifier of NeXus file \|} ### NXgetnextentry +Implements a directory search facility on the current group level. The +first call initializes the search and returns information on the first +data item in the list. Subsequent calls yield information about the +remaining items. If the item is a group, its name and class is returned. +If it is a data set, its name and type is returned with a class of +SDS. ;Usage: status = NXgetnextentry (file_id, name, class, data_type) +\|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of NeXus +file \|- ! rowspan=3 \| Output Arguments \| name \| char \\\* \| Name +of NeXus data item (group or set) \|- \| class \| char \\\* \| Class of +NeXus group (SDS for a data item) \|- \| data\\_type \| int \\\* \| +Data Type:NX\\_CHAR - Character string NX\\_FLOAT32 - 4-byte real +NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer NX\\_UINT8 - +unsigned 1-byte integer NX\\_INT16 - 2-byte integer NX\\_UINT16 - +unsigned 2-byte integer NX\\_INT32 - 4-byte integer NX\\_UINT32 - +unsigned 4-byte integer \|} ### NXgetattrinfo Returns the number of +attributes in the current data set. ;Usage: status = NXgetattrinfo +(file_id, attr_number) \|- ! \| Input Arguments \| file\\_id \| NXhandle +\| Identifier of NeXus file \|- ! \| Output Arguments \| attr\\_number +\| int \\\* \| Number of attributes in the current data set \|} ### +NXinitattrdir Initializes attribute searches of the currently open data +set. This is required to reset searches using NXgetnextattr that may +have been interrupted before completion. ;Usage: status = NXinitattrdir +(file_id) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| +Identifier of NeXus file \|} ### NXgetnextattr Implements a search +facility of the attributes of the currently open data set. The first +call initializes the search and returns information on the first +attribute in the list. Subsequent calls yield information about the +remaining attributes. This routine returns global attributes if no data +set is open. ;Usage: status = NXgetnextattr (file_id, attr_name, length, +attr_type) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| +Identifier of NeXus file \|- ! rowspan=3 \| Output Arguments \| +attr\\_name \| char \\\* \| Name of next attribute \|- \| length \| int +\\\* \| Length of next attribute \|- \| attr\\_type \| int \\\* \| Data +type of next attribute:NX\\_CHAR - Character string NX\\_FLOAT32 - +4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer +NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer +NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer +NX\\_UINT32 - unsigned 4-byte integer \|} ### NXgetgroupID Returns the +identifier of the currently open group as an NXlink structure. ;Usage: +status = NXgetgroupID (file_id, group_id) \|- ! \| Input Arguments \| +file\\_id \| NXhandle \| Identifier of NeXus file \|- ! \| Output +Arguments \| group\\_id \| NXlink \\\* \| Identifier of NeXus group \|} +### NXgetdataID Gets the identifier of the currently open data set as an +NXlink structure. Returns NX\\_ERROR if there is no open data set. +;Usage: status = NXgetdataID (file_id, data_id) \|- ! \| Input Arguments +\| file\\_id \| NXhandle \| Identifier of NeXus file \|- ! \| Output +Arguments \| data\\_id \| NXlink \\\* \| Identifier of NeXus data set +\|} ### NXmakelink Links a data item (group or set) to a NeXus group. +Returns NX\\_ERROR if the current group level is the root level, since +no data item can be linked here. ;Usage: status = NXmakelink (file_id, +link) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of +NeXus file \|- ! \| Output Arguments \| link \| NXlink \\\* \| +Identifier of linked group \|} ### NXsameID Tests if two data items are +the same, i.e. one is linked to the other. ;Usage: status = NXsameID +(file_id, link1, link2) \|- ! rowspan=3\| Input Arguments \| file\\_id +\| NXhandle \| Identifier of NeXus file \|- \| link1 \| NXlink \\\* \| +Identifier of first item \|- \| link2 \| NXlink \\\* \| Indentifier of +second item \|- \|} ### NXopensourcegroup Opens the group from which a +linked dataset was linked. This is useful for accessing auxiliary +information related to the dataset. This works only if the linked +dataset is currently open. ;Usage: status = NXopensourcegroup (file_id) +\|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of NeXus +file \|- \|} Memory Allocation ----------------- ### NXmalloc Allocates +memory to the specified data pointer according to the specifed data +type, rank and dimensions. ;Usage: status = NXmalloc (void*\* data, int +rank, int dimensions[], int datatype) \|- ! \| Output Arguments \| data +\| void \\*\\\* \| Data pointer \|- ! rowspan=3 \| Input Arguments \| +rank \| int \| Rank of data \|- \| dimensions \| int\\[\\] \| Dimensions +of data \|- \| datatype \| int \| Data Type:NX\\_CHAR - Character string +NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte +integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer +NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer +NX\\_UINT32 - unsigned 4-byte integer \|} ### NXfree Frees memory +allocated to the specified data pointer. ;Usage: status = NXfree (data) +\|- ! \| Input Arguments \| data \| void \\*\\\* \| Pointer to the +allocated memory \|} External Linking ---------------- ### NXinquirefile +Queries which file is really active. ;Usage: status = +NXinquirefile(handle,filename, filenameLength); \|- ! rowspan=2 \| +Input Arguments \| handle \| NXhandle \| handle to a currently open +NeXus file. \|- \| filenameLength \| int \| length of filename buffer +\|- ! \|Output Arguments \| filename \| char\\\* \| buffer to receive +filename \|} ### NXlinkexternal Links an external file. This happens by +creating a group which points to an external file. Navigating into such +a group automatically opens the external file. ;Usage: status = +NXlinkexternal(handle,name, nxclass, nxurl); \|- ! rowspan=4 \| Input +Arguments \| handle \| NXhandle \| handle to a currently open NeXus +file. \|- \| name \| NXname \| The name of the group to link the file +to. \|- \| nxclass \| NXname \| The NeXus class of the group to which +the external file is to be linked. \|- \| nxurl \| NXURL \| An URL of a +format which the NeXus-API understands. The only URL format so far is: +nxfile://path-to-file\\#path-to-group-in-file. This consistes of two +parts: The file path and a path to a group in the file which is to be +mapped into the source file. \|} ### NXisexternalgroup Tests in the +group is an external group. If not, NX\\_ERROR is returned. If yes, +NX\\_OK is returned and the URL of the external file is copied into +nxurl. ;Usage: status = NXisexternalgroup(handle,name, nxclass, +nxurl,nxurllen); \|- ! rowspan=4 \| Input Arguments \| handle \| +NXhandle \| handle to a currently open NeXus file. \|- \| name \| NXname +\| The name of the group to test. \|- \| nxclass \| NXname \| The NeXus +class of the group to test. \|- \| nxurllen \| int \| length of the +nxurl buffer \|- ! rowspan=4 \| Output Arguments \| nxurl \| char \\\* +\| buffer to copy the URL, too. \|} diff --git a/source/content/NAPI_Utility_Routines.rst b/source/content/NAPI_Utility_Routines.rst new file mode 100644 index 00000000..76ed0a1d --- /dev/null +++ b/source/content/NAPI_Utility_Routines.rst @@ -0,0 +1,155 @@ +===================== +NAPI Utility Routines +===================== + + +--- title: NAPI Utility Routines permalink: NAPI_Utility_Routines.html +layout: wiki --- ### NXUwriteglobals Writes the global attributes +defined in the NeXus standard. Note that NeXus\\_version, file\\_name +and file\\_time are written automatically by the NeXus API. The +attribute arguments are optional, so the F90 keyword syntax can be used +for all of them, \*e.g.\*, status = NXUwriteglobals (file_id, user="Joe +Bloggs", email="JB@some.where") ;Usage: status = NXUwriteglobals +(file_id, user, affiliation, address, phone, fax, email) \|- ! +rowspan=7 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| user \| character(len=\\\*) \| Name of +user \|- \| affiliation \| character(len=\\\*) \| User's affiliation \|- +\| address \| character(len=\\\*) \| User's address \|- \| phone \| +character(len=\\\*) \| User's telephone number \|- \| fax \| +character(len=\\\*) \| User's fax number \|- \| email \| +character(len=\\\*) \| User's email address \|} ### NXUwritegroup +Creates a NeXus group leaving it open for subsequent data output. +;Usage: status = NXUwritegroup (file_id, group_name, group_class) \|- ! +rowspan=3 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| group\\_name \| character(len=\\\*) \| +Name of group \|- \| group\\_class \| character(len=\\\*) \| Class of +group \|} ### NXUwritedata Creates, opens and writes a NeXus data set in +the current group. data can be a scalar value, or a one-, two-, or +three-dimensional array. If higher dimensions are required, use the core +API (see NXputdata). units, data\\_start and data\\_size are +optional parameters. If you want the data set to be compressed, set +default compression parameters in NXUsetcompress. ;Usage: status = +NXUwritedata (file_id, data_name, data, units, data_start, data_size) +\|- ! rowspan=7\| Input Arguments \|- \| file\\_id \| type(NXhandle) +\| Identifier of NeXus file \|- \| data\\_name \| character(len=\\\*) \| +Name of data set \|- \| data \| integer integer(:) integer(:,:) +integer(:,:,:) real real(:) real(:,:) real(:,:,:) character(len=\\\*) \| +Data values \|- \| units \| character(len=\\\*) \| Data units (optional) +\|- \| start \| integer(:) \| Starting indices of data slab (optional) +\|- \| size \| integer(:) \| Length of each dimension of data slab +(optional) \|} ### NXUreaddata Opens and reads a NeXus data set in the +current group. data can be a scalar value, or a one-, two-, or +three-dimensional array. If higher dimensions are required, use the core +API (see NXgetdata). units, data\\_start and data\\_size are +optional parameters. ;Usage: status = NXUreaddata (file_id, data_name, +data, units, data_start, data_size) \|- ! rowspan=4 \| Input Arguments +\| file\\_id \| type(NXhandle) \| Identifier of NeXus file \|- \| +data\\_name \| character(len=\\\*) \| Name of data set \|- \| start \| +integer(:) \| Starting indices of data slab (optional) \|- \| size \| +integer(:) \| Length of each dimension of data slab (optional) \|- ! +rowspan=2 \| Output Arguments \| data \| integer integer(:) +integer(:,:) integer(:,:,:) real real(:) real(:,:) real(:,:,:) +character(len=\\\*) \| Data values \|- \| units \| character(len=\\\*) +\| Data units (optional) \|} ### NXUwritehistogram Creates, opens and +writes a one dimensional NeXus data item with units. The input data +are assumed to be histogram bin boundaries, and the stored data contains +the histogram centers, i.e. the stored array has a dimension one less +than the data. The histogram\\_offset attribute is automatically set +to half the width of the first bin, which allows the regeneration of the +bin boundaries by NXUreadhistogram. ;Usage: status = NXUwritehistogram +(file_id, data_name, data, units) \|- ! rowspan=4 \| Input Arguments +\| file\\_id \| type(NXhandle) \| Identifier of NeXus file \|- \| +data\\_name \| character(len=\\\*) \| Name of histogram \|- \| data \| +real(:), pointer \| Histogram bin boundaries \|- \| units \| +character(len=\\\*) \| Data units (optional) \|} ### NXUreadhistogram +Opens and reads a one dimensional real data set in the current group. +The data are assumed to be histogram bin boundaries, which are stored in +NeXus files as bin centers with the first bin offset defined as the +attribute histogram\\_offset, i.e. the returned array has a dimension +one greater than the stored array (see NXUwritehistogram). If the +histogram\\_offset attribute is not present, it is assumed that the +first bin width equals the separation of the first two bin centers. +;Usage: status = NXUreadhistogram (file_id, data_name, data, units) \|- +! rowspan=2 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| data\\_name \| character(len=\\\*) \| +Name of histogram \|- ! rowspan=2 \| Output Arguments \| data \| +real(:), pointer \| Histogram bin boundaries \|- \| units \| +character(len=\\\*) \| Data units (optional) \|} ### NXUsetcompress Sets +the compression type to be used in subsequent calls to NXUwritedata. The +second parameter, which is optional, sets the minimum number of elements +in a data set before any compression is performed. This is to prevent +inefficient compression of small data sets. The default value is 100. +;Usage: status = NXUsetcompress (file_id, compress_type, compress_size) +\|- ! rowspan=3 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| compress\\_type \| integer \| +Compression algorithm:NX\\_COMP\\_LZW - GZIP NX\\_COMP\\_HUF - Skipping +Huffman NX\\_COMP\\_RLE - Run Length Encoding NX\\_COMP\\_NONE - No +compression \|- \| compress\\_size \| integer \| Minimum number of +elements in data set before data compression is attempted. \|} ### +NXUfindgroup Finds if NeXus group exists in the current group and +returns its class. The returned status is NX\\_EOD if the group is not +found. ;Usage: status = NXUfindgroup (file_id, group_name, group_class) +\|- ! rowspan=2 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| group\\_name \| character(len=\\\*) \| +Name of group \|- ! \| Output Arguments \| group\\_class \| +character(len=\\\*) \| Class of group \|} ### NXUfindclass Finds if a +NeXus group of the requested class exists in the current group and +returns its name. find\\_index is used when there is more than one +group of the required class; find\\_index = 3 returns the name of the +third group found. The returned status is NX\\_EOD if no such group is +found. ;Usage: status = NXUfindclass (file_id, group_class, group_name, +find_index) \|- ! rowspan=3 \| Input Arguments \| file\\_id \| +type(NXhandle) \| Identifier of NeXus file \|- \| group\\_class \| +character(len=\\\*) \| Requested class \|- \| find\\_index \| integer \| +Search index \|- ! \| Output Arguments \| group\\_name \| +character(len=\\\*) \| Name of group with that class \|} ### NXUfinddata +Finds if a NeXus data set of the requested name exists in the current +group. The returned status is NX\\_EOD if the data set is not found. +;Usage: status = NXUfinddata (file_id, data_name) \|- ! rowspan=2 \| +Input Arguments \| file\\_id \| type(NXhandle) \| Identifier of NeXus +file \|- \| data\\_name \| character(len=\\\*) \| Requested data set \|} +### NXUfindattr Finds if a NeXus attribute of the current data set +exists. The returned status is NX\\_EOD if the attribute is not found. +;Usage: status = NXUfindattr (file_id, attr_name) \|- ! rowspan=2 \| +Input Arguments \| file\\_id \| type(NXhandle) \| Identifier of NeXus +file \|- \| attr\\_name \| character(len=\\\*) \| Requested attribute +name \|} ### NXUfindsignal Finds the NeXus data set in the current group +with the required signal attribute, and returns its name, rank, type and +dimensions. The returned status is NX\\_EOD if the signal data set is +not found. ;Usage: status = NXUfindsignal (file_id, signal, data_name, +data_rank, data_type, data_dimensions) \|- ! rowspan=2 \| Input +Arguments \| file\\_id \| type(NXhandle) \| Identifier of NeXus file \|- +\| signal \| integer \| Required value of signal attribute \|- ! +rowspan=4 \| Output Arguments \| data\\_name \| character(len=\\\*) \| +Data set with required signal attribute \|- \| data\\_rank \| integer \| +Rank of data set \|- \| data\\_type \| integer \| Type of data set (see +list of valid data types) \|- \| data\\_dimensions \| integer(:) \| +Dimensions of data set \|} ### NXUfindaxis Finds the NeXus data set in +the current group with the required axis and primary attributes, and +returns its name, rank, type and dimensions. Note that the axis data set +should be one-dimensional. The returned status is NX\\_EOD if the axis +data set is not found. ;Usage: status = NXUfindaxis (file_id, axis, +primary, data_name, data_rank, data_type, data_dimensions) \|- ! +rowspan=3 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| axis \| integer \| Required value of +axis attribute \|- \| primary \| integer \| Required value of primary +attribute \|- ! rowspan=4 \| Output Arguments \| data\\_name \| +character(len=\\\*) \| Data set with required signal attribute \|- \| +data\\_rank \| integer \| Rank of data set \|- \| data\\_type \| integer +\| Type of data set (see list of valid data types) \|- \| +data\\_dimensions \| integer(:) \| Dimensions of data set \|} ### +NXUfindlink Finds another group to which the currently open data set is +linked and leaves it open for getting associated data. group\\_id +stores the ID of the original group to enable a subsequent return (see +NXUresumelink). group\\_class is an optional argument which restricts +the search to the specified group class. The returned status is NX\\_EOD +if the group is not found. ;Usage: status = NXUfindlink (file_id, +group_id, group_class) \|- ! rowspan=2 \| Input Arguments \| file\\_id +\| type(NXhandle) \| Identifier of NeXus file \|- \| group\\_class \| +character(len=\\\*) \| Group classes to be searched. \|- ! \| Output +Arguments \| group\\_id \| type(NXlink) \| ID of current group. \|} ### +NXUresumelink Returns to the original group from which an NXfindlink +call was issued. ;Usage: status = NXUresumelink (file_id, group_id) \|- +! rowspan=2 \| Input Arguments \| file\\_id \| type(NXhandle) \| +Identifier of NeXus file \|- \| group\\_id \| type(NXlink) \| ID of +original group \|} diff --git a/source/content/NXaperture_and_Slits.rst b/source/content/NXaperture_and_Slits.rst new file mode 100644 index 00000000..03964835 --- /dev/null +++ b/source/content/NXaperture_and_Slits.rst @@ -0,0 +1,40 @@ +==================== +NXaperture and Slits +==================== + + +--- title: NXaperture and Slits permalink: NXaperture_and_Slits.html +layout: wiki --- The actual \*NXaperture\* base class is far t0o complex +for most of the apertures used at synchrotron facilities. Currently the +most commonly used aperture types are - pinholes - 2 or 4 blade slits. +From the current implementation of \*NXaperture\* it would be rather +difficult to obtain relevant quantities like the size of the slit gap or +the offsets of the gap. There are basically two ways how to face this +problem - redesign \*NXaperture\* - or introduce new classes for more +specific aperture types. Which of them is appropriate for us should be +the topic of this discussion. Introducing new classes +----------------------- #### Pinholes - \*NXpinhole\* ![c|A pinhold in +the beam.](pinhole_2.png "fig:c|A pinhold in the beam.") Pinholes are +most probably the simplest apertures available. The only parameter of +importance is the diameter of the pinhole and its position with respect +to the beam (as shown in the image). From this sketch one could easily +deduce a new class \*NXpinhole\* with the following parameters: +NXpinhole diameter:NX_LENGTH depends_on:NX_CHAR The first parameter +\*diameter\* describes the diameter of the pinhole while the +depends\\_on references the last element of the chain of transformations +to position the center of the pinhole. #### Slits - \*NXslit\* ![A +four-blade slit system.](slit.png "fig:A four-blade slit system.") Two +or four blade slits are the most common apertures used at synchrotrons. +In this example a 4-blade slit is shown. The most important parameter +for such a system is the size of the aperture determined by the +positions of the blades. A base class \*NXslit\* could look like this +NXslit x_gap:NX_LENGTH y_gap:NX_LENGTH depends_on:NX_CHAR The gaps are +given in the local reference frame of the slit system, which is defined +by the transformation chain referenced by the \*depends\\_on\* field. +The \*depends\\_on\* places the center of the slit assembly into the +coordinate system. \*NXslit\* basically describes a rectangular +aperture. The positions of the individual slit blades are not included +in the definition of the base class. #### What happens to \*NXaperture\* +The original \*NXaperture\* remains unchanged (for the sake of +compatibility) and can still be used for all kind of more complex +apertures which cannot be represented by the the new classes. diff --git a/source/content/NXbrowse.f90.rst b/source/content/NXbrowse.f90.rst new file mode 100644 index 00000000..7362cde4 --- /dev/null +++ b/source/content/NXbrowse.f90.rst @@ -0,0 +1,219 @@ +============ +NXbrowse.f90 +============ + + +--- title: NXbrowse.f90 permalink: NXbrowse.f90.html layout: wiki --- +!------------------------------------------------------------------------------ +! NeXus - Neutron & X-ray Common Data Format ! ! Fortran 90 Browser ! ! +Copyright (C) 1999, Ray Osborn ! ! This library is free software; you +can redistribute it and/or ! modify it under the terms of the GNU Lesser +General Public ! License as published by the Free Software Foundation; +either ! version 2 of the License, or (at your option) any later +version. ! ! This library is distributed in the hope that it will be +useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! +Lesser General Public License for more details. ! ! You should have +received a copy of the GNU Lesser General Public ! License along with +this library; if not, write to the Free Software ! Foundation, Inc., 59 +Temple Place, Suite 330, Boston, MA 02111-1307 USA ! ! Contact : R. +Osborn ! Materials Science Division ! Argonne National Laboratory ! +Argonne, IL 60439-4845 ! USA ! ! For further information, see ! !$Id: +NXbrowse.f90,v 1.6 1999/11/24 16:30:12 nexus Exp $ +!------------------------------------------------------------------------------ +program NXbrowse use NXUmodule character(len=80) :: file_name, +input_text, path type(NXhandle) :: file_id character(len=NX_MAXNAMELEN), +allocatable :: name(:), class(:) character(len=NX_MAXNAMELEN) :: +group_name, group_class, data_name, attr_name integer :: status, n, i, +NXrank, NXtype, NXdims(NX_MAXRANK) logical :: single_element +character(len=255) :: char_value integer(kind=NXi4) :: int_value +integer(kind=NXi4), pointer :: int_array(:), int_2Darray(:,:), +int_3Darray(:,:,:) real(kind=NXr4) :: real_value real(kind=NXr4), +pointer :: real_array(:), real_2Darray(:,:), real_3Darray(:,:,:) +real(kind=NXr8) :: dble_value real(kind=NXr8), pointer :: dble_array(:), +dble_2Darray(:,:), dble_3Darray(:,:,:) write (unit=\*, fmt="(a)", +advance="no") " Give name of NeXus file : " read \*, file_name !Open +input file and output global attributes if (NXopen (trim(file_name), +NXACC_READ, file_id) /= NX_OK) then call NXerror ("Can't open +"//trim(file_name)) stop end if do status = NXgetnextattr (file_id, +attr_name, n, NXtype) if (status /= NX_OK) exit !Output attribute +information according to type select case (NXtype) case (NX_CHAR) if +(NXgetattr (file_id, attr_name, char_value) /= NX_OK) cycle print \*, " +"//trim(attr_name)//" = "//trim(char_value) char_value = " " case +(NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) if (NXgetattr +(file_id, attr_name, int_value) == NX_OK) then print \*, " +"//trim(attr_name)//" = ",int_value end if case (NX_FLOAT32) if +(NXgetattr (file_id, attr_name, real_value) == NX_OK) then print \*, " +"//trim(attr_name)//" = ",real_value end if case (NX_FLOAT64) if +(NXgetattr (file_id, attr_name, dble_value) == NX_OK) then print \*, " +"//trim(attr_name)//" = ",dble_value end if end select end do !Input +commands until the EXIT command is given path = "NX" do write (unit=\*, +fmt="(a)", advance="no") " "//trim(path)//"> " read "(a)", input_text +select case (command(input_text)) !Command is to print a directory of +the current group case ("DIR") if (NXgetgroupinfo (file_id, n) /= NX_OK) +cycle allocate (name(n), class(n)) status = NXgroupdir (file_id, n, +name, class) if (status == NX_OK) then do i = 1,n if (class(i)(1:2) == +"NX") then print \*, " NX Group : "//trim(name(i))//" +("//trim(class(i))//")" else if (class(i)(1:3) == "SDS") then print \*, +" NX Data : "//trim(name(i)) end if end do end if deallocate (name, +class) !Command is to open the specified group case ("OPEN") input_text += adjustl(input_text(5:len_trim(input_text))) read +(input_text(1:index(input_text," ")), fmt="(a)") group_name if +(NXUfindgroup (file_id, group_name, group_class) == NX_EOD) then call +NXerror (trim(group_name)//" does not exist") cycle end if if +(NXopengroup (file_id, group_name, group_class) /= NX_OK) cycle !Add the +group to the prompt string path = trim(path)//"/"//trim(group_name) +!Command is to print the values of the data !1) if the array index is +specified, a single element is output !2) if no index is given, the +minimum and maximum values of the array are output case ("READ") +input_text = adjustl(input_text(5:len_trim(input_text))) !Check for +evidence that an individual element has been specified if +(index(input_text,"(") == 0) then read (input_text(1:index(input_text," +")), fmt="(a)") data_name single_element = .false. else read +(input_text(1:index(input_text,"(")-1), fmt="(a)") data_name +single_element = .true. end if !Check the specified data item exists if +(NXUfinddata (file_id, data_name) == NX_EOD) then call NXerror +(trim(data_name)//" does not exist") cycle end if !Open the data and +obtain its type and rank details if (NXopendata (file_id, data_name) /= +NX_OK) cycle if (NXgetinfo (file_id, NXrank, NXdims, NXtype) /= NX_OK) +cycle if (single_element) then input_text = +input_text(index(input_text,"(")+1:index(input_text,")")-1) if +(dimcount(input_text) /= NXrank) then call NXerror ("Invalid array +index") cycle end if read (input_text, fmt=\*) NXdims(1:NXrank) end if +!Output data according to data type select case (NXtype) case (NX_CHAR) +if (NXUreaddata (file_id, data_name, char_value) /= NX_OK) cycle print +\*, " "//trim(data_name)//" ["//trim(NXdatatype(NXtype))//"] = +"//trim(char_value) char_value = " " case +(NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) !Output data +according to rank select case (NXrank) case (1) if (single_element) then +if (NXUreaddata (file_id, data_name, int_array, data_start=NXdims, +data_size=(/1/)) == NX_OK) then print \*, " +"//trim(data_name)//"("//trim(input_text)//") +["//trim(NXdatatype(NXtype))& //"] = ", int_array(1) end if else if +(NXUreaddata (file_id, data_name, int_array) == NX_OK) then if +(size(int_array) > 1) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(int_array), " to ", +maxval(int_array) else print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", int_array end if end if end if +deallocate (int_array, stat = status) case (2) if (single_element) then +if (NXUreaddata (file_id, data_name, int_2Darray, data_start=NXdims, +data_size=(/1,1/)) == NX_OK) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", int_2Darray(1,1) end if else if +(NXUreaddata (file_id, data_name, int_2Darray) == NX_OK) then print \*, +" "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(int_2Darray), " to ", +maxval(int_2Darray) end if end if deallocate (int_2Darray, stat = +status) case (3) if (single_element) then if (NXUreaddata (file_id, +data_name, int_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == +NX_OK) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", int_3Darray(1,1,1) end if else +if (NXUreaddata (file_id, data_name, int_3Darray) == NX_OK) then print +\*, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(int_3Darray), " to ", +maxval(int_3Darray) end if end if deallocate (int_3Darray, stat = +status) end select case (NX_FLOAT32) !Output data according to rank +select case (NXrank) case (1) if (single_element) then if (NXUreaddata +(file_id, data_name, real_array, data_start=NXdims, data_size=(/1/)) == +NX_OK) then print \*, " "//trim(data_name)//"("//trim(input_text)//") +["//trim(NXdatatype(NXtype))& //"] = ", real_array(1) end if else if +(NXUreaddata (file_id, data_name, real_array) == NX_OK) then if +(size(real_array) > 1) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(real_array), " to ", +maxval(real_array) else print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", real_array end if end if end if +deallocate (real_array, stat = status) case (2) if (single_element) then +if (NXUreaddata (file_id, data_name, real_2Darray, data_start=NXdims, +data_size=(/1,1/)) == NX_OK) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", real_2Darray(1,1) end if else if +(NXUreaddata (file_id, data_name, real_2Darray) == NX_OK) then print \*, +" "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(real_2Darray), " to ", +maxval(real_2Darray) end if end if deallocate (real_2Darray, stat = +status) case (3) if (single_element) then if (NXUreaddata (file_id, +data_name, real_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == +NX_OK) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", real_3Darray(1,1,1) end if else +if (NXUreaddata (file_id, data_name, real_3Darray) == NX_OK) then print +\*, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(real_3Darray), " to ", +maxval(real_3Darray) end if end if deallocate (real_3Darray, stat = +status) end select case (NX_FLOAT64) !Output data according to rank +select case (NXrank) case (1) if (single_element) then if (NXUreaddata +(file_id, data_name, dble_array, data_start=NXdims, data_size=(/1/)) == +NX_OK) then print \*, " "//trim(data_name)//"("//trim(input_text)//") +["//trim(NXdatatype(NXtype))& //"] = ", dble_array(1) end if else if +(NXUreaddata (file_id, data_name, dble_array) == NX_OK) then if +(size(dble_array) > 1) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(dble_array), " to ", +maxval(dble_array) else print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", dble_array end if end if end if +deallocate (dble_array, stat = status) case (2) if (single_element) then +if (NXUreaddata (file_id, data_name, dble_2Darray, data_start=NXdims, +data_size=(/1,1/)) == NX_OK) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", dble_2Darray(1,1) end if else if +(NXUreaddata (file_id, data_name, dble_2Darray) == NX_OK) then print \*, +" "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(dble_2Darray), " to ", +maxval(dble_2Darray) end if end if deallocate (dble_2Darray, stat = +status) case (3) if (single_element) then if (NXUreaddata (file_id, +data_name, dble_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == +NX_OK) then print \*, " +"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", dble_3Darray(1,1,1) end if else +if (NXUreaddata (file_id, data_name, dble_3Darray) == NX_OK) then print +\*, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" +["//trim(NXdatatype(NXtype))& //"] = ", minval(dble_3Darray), " to ", +maxval(dble_3Darray) end if end if deallocate (dble_3Darray, stat = +status) end select end select if (single_element) cycle !Check for +attributes do status = NXgetnextattr (file_id, attr_name, n, NXtype) if +(status /= NX_OK) exit !Output attribute information according to type +select case (NXtype) case (NX_CHAR) if (NXgetattr (file_id, attr_name, +char_value) /= NX_OK) cycle print \*, " "//trim(attr_name)//" = +"//trim(char_value) char_value = " " case +(NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) if (NXgetattr +(file_id, attr_name, int_value) == NX_OK) then print \*, " +"//trim(attr_name)//" = ",int_value end if case (NX_FLOAT32) if +(NXgetattr (file_id, attr_name, real_value) == NX_OK) then print \*, " +"//trim(attr_name)//" = ",real_value end if case (NX_FLOAT64) if +(NXgetattr (file_id, attr_name, dble_value) == NX_OK) then print \*, " +"//trim(attr_name)//" = ",dble_value end if end select end do !Command +is to close the current group case ("CLOSE") if (NXclosegroup (file_id) +/= NX_OK) cycle !Remove the group from the prompt string path = +path(1:(index(path,"/",back=.true.)-1)) !Command is to print help +information case ("HELP") print \*, "NXbrowse commands : DIR" print \*, +" OPEN " print \*, " READ " print \*, " CLOSE" print \*, " HELP" print +\*, " EXIT" !Command is to exit the program case ("EXIT","QUIT") exit +end select end do status = NXclose (file_id) contains !Returns the first +word of input text in upper case function command (input_text) result +(output_text) character(len=\*), intent(in) :: input_text +character(len=80) :: output_text integer :: i, letter output_text = " " +do i = 1,len_trim(adjustl(input_text)) if (input_text(i:i) == " ") exit +letter = ichar(input_text(i:i)) if (letter >= 97 .and. letter <= 122) +letter = letter - 32 output_text(i:i) = char(letter) end do end function +command !Outputs the specified dimensions as a formatted string function +dimstring (rank, dims) result (string) integer, intent(in) :: rank, +dims(:) character(len=50) :: string character(len=10) :: buffer integer +:: i if (rank == 1 .and. dims(1) == 1) then string = " " else string = +"(" do i = 1,rank write (buffer, fmt="(i10)") dims(i) string = +trim(string)//trim(adjustl(buffer))//"," end do +string(len_trim(string):len_trim(string)) = ")" end if end function +dimstring !Outputs the number of dimensions specified in an input string +function dimcount (string) result (rank) character(len=50), intent(in) +:: string integer :: rank integer :: i logical :: number_found if +(verify(trim(string)," 0123456789,") /= 0) then rank = 0 else i = 1 rank += 1 number_found = .false. do if (verify(string(i:i),"0123456789") == 0) +then number_found = .true. else if (number_found .and. string(i:i) == +",") then rank = rank + 1 number_found = .false. else rank = 0 exit end +if i = i + 1 if (i > len_trim(string)) exit end do if (.not. +number_found) rank = 0 end if end function dimcount end program NXbrowse diff --git a/source/content/NXbrowse.rst b/source/content/NXbrowse.rst new file mode 100644 index 00000000..ee74272f --- /dev/null +++ b/source/content/NXbrowse.rst @@ -0,0 +1,60 @@ +======== +NXbrowse +======== + + +--- title: NXbrowse permalink: NXbrowse.html layout: wiki --- NXbrowse +is a terminal browser that provides a simple command-line interface to +view the contents of NeXus files. Datasets within the NeXus file can be +dumped to an ASCII file. If you have any questions/comments/bug reports +email [Ray Osborn](mailto:ROsborn@anl.gov). Usage ----- A simple +terminal browser written in ISO C (replacing the earlier version in +Fortran 90). When compiled and linked with the NeXus API, it can be run +interactively to list the directories of each group within a NeXus file. +If used from a terminal (and installed in the default PATH +\\[u\\*\\*x\\] or defined as a symbol \\[VMS\\]), type nxbrowse If no +file name is given, the user is prompted for the file to be opened. +NXbrowse then lists the global attributes and prompts for further +commands. The following commands may be given in upper or lower case +(although the group and data names are case sensitive) : + ++--------------------+-------------------------------------------------+ +| Command | Command Definition | ++====================+=================================================+ +| dir | List the contents of the currently open group. | ++--------------------+-------------------------------------------------+ +| open | Open the specified group. | ++--------------------+-------------------------------------------------+ +| read | Read the contents of the specified data set. If | +| | no array indices are specified, the first three | +| | elements of the data set are output along with | +| | all its attributes. If an array index is | +| | specified, only that element is output. Note | +| | that the order of the array indices follows the | +| | C-convention (the last index is the | +| | most-rapidly varying). | ++--------------------+-------------------------------------------------+ +| dump | Write the entire contents of the specified data | +| | set to the specified ASCII file. | ++--------------------+-------------------------------------------------+ +| byteaschar | Toggle the output format for NX_INT8 and | +| | NX_UINT8 variables. By default, they are output | +| | as integers, but after giving this command, | +| | they are printed as character strings. | ++--------------------+-------------------------------------------------+ +| close | Close the currently open group. At the root | +| | level of the NeXus file, this command is | +| | ignored. | ++--------------------+-------------------------------------------------+ +| exit, quit | Exit the program. | ++--------------------+-------------------------------------------------+ +| help | List the available commands. | ++--------------------+-------------------------------------------------+ + +Installation ------------ NXbrowse is now installed as part of the +standard NeXus installation. See the [NeXus Downloads +section](Application_Program_Interface#Downloads.html "wikilink") for +more details. If you encounter any bugs, please report them using the +[NeXus +bugzilla](Application_Program_Interface#Reporting_Bugs_in_the_NeXus_API.html +"wikilink"). diff --git a/source/content/NXdetector_2012_10.rst b/source/content/NXdetector_2012_10.rst new file mode 100644 index 00000000..2f5fc246 --- /dev/null +++ b/source/content/NXdetector_2012_10.rst @@ -0,0 +1,74 @@ +================== +NXdetector 2012 10 +================== + + +--- title: NXdetector 2012 10 permalink: NXdetector_2012_10.html layout: +wiki --- This is from an discussion about additions/modifications to +NXdetector to help Dectris as it decides to write raw image data into +HDF5/NeXus format. on 2012-11-07, Mark Koennecke wrote +----------------------------------- Hi, at the last teleconference we +agreed that I do a summary of the state and options on the +DECTRIS/detector_element issue. Well, this is it. In the meantime the +information came in that DECTRIS is joining the two planned workshops +with a date in mid-january. Thus I assume we have a little more time to +sort this out. First the more political part: [...omitted...] Now the +more technical part: let us start with a description of the problem: The +EIGER (and other) detector is composed of multiple modules. All is fine +as long as these modules are arranged on a regular grid in order to form +one joint image. This can be easily stored in one NXdetector group. A +mask stored with the data gives information which pixels are valied and +which are boundaries. The problem starts when the individual modules are +arranged in an irregular arrangement: for example on a half sphere. Then +there are two requirements: - The user still wants to see an image +merged from the individual modules in order to quickly get an overview +of the data. This requirement is best fulfilled by keeping the data in +one fat array. - For proper data analysis, more information on each +individual module is needed. This is: \* The position of the module +within the pixel array, offset and size \* The physical position and +orientation of the module with respect to the detector as a whole In +order to handle this, there are several propositions. Use NXgeometry +================ NXdetector module01,NXgeometry NXtranslation +NXorientation module02,NXgeometry NXtranslation NXorientation ..... This +option is missing the index information. I am not sure if we want to add +that to NXgeometry. I am also not sure if we still wish to advocate the +use of NXgeometry. IMHO, the CIF mapping is better and NXgeometry may be +deprecated soon.. But is not yet.... NXdetector_element +====================== The second option would be a new group: +NXdetector_element looking like this: NXdetector distance +module01,NXdetector_element x[nx] @transformation_type=translation +@offset=x,y,z @vector= ... +depends_on=/entry/instrument/detector/distance y[ny] +@transformation_type=translation @offset=0,0,0 @vector=.... depends_on=x +pixel_offset[2]=x,y The x any y arrays describe the pixels of the +module. This is wasting space as it is for example for x: +x[0]=0*pixelsize, x[1] = 1*pixelsize,... The offset and vector +attributes the position and orientation in space. The start indices go +into the pixel_offset Tobias Suggestion ===================== A variant +based on the way CIF handles the same problem detector:NXdetector +data[j,k,l] = [....] detector_arm[1] = [250] @transformation=translation +@vector={1,0,0} @units=cm @depends_on=/entry/instrument/something/brick +depends_on=detector_arm module:NXdetector_module data_origin[2] = [l,m] +data_size[2] = [n,o] module_offset[1] = [250] +@transformation=translation @vector={0,1,1} @units=mm +@depends_on="../detector_arm" fast_pixel_direction[1] = [0.172] +@transformation=translation @vector={1,0,0} @units=mm +@depends_on="module_offset" slow_pixel_direction[1] = [0.172] +@transformation=translation @vector={0,1,0} @units=mm +@depends_on="module_offset" module:NXdetector_module .... This uses less +space. SNS Usage ============== SNS had a similar problem and has +resolved the issue by storing each detector module in a separate +NXdetector group. This works perfectly and would require no change on +our side. However, this would mean that DECTRIS would need to change +their data writing for this case. And vieweing the total image cannot be +done easily anymore without a reconstruction in SW or a duplication of +data. This looks like: module01,NXdetector data[NP,i,j] distance ...... +module02,NXdetector data[NP,ij] distance... .... The General Case +==================== What also works is the existing facility in NeXus +to describe each pixel individually. Any pixel gets an ID and there are +arrays for distance, coordinates etc which are nPixel long. With nPixel +being the total number of pixels. But this would again destroy the +image. This looks like: detector,NXdetector data[NP,nPixel] +distance[nPixel] x_pixel_offset[nPixel] y_pixel_offset[nPixel] .... Of +course they may be many more options. But I hope these are enough to +find a solution Best Regards, Mark Koennecke diff --git a/source/content/NXdetector_documentation.rst b/source/content/NXdetector_documentation.rst new file mode 100644 index 00000000..390ff73c --- /dev/null +++ b/source/content/NXdetector_documentation.rst @@ -0,0 +1,35 @@ +======================== +NXdetector documentation +======================== + + +--- title: NXdetector documentation permalink: +NXdetector_documentation.html layout: wiki --- There are some flaws in +the documentation of NXdetector which we need fix \| \| NXdetector field +\| \| comment \| +\|----------------------------------\ +\| distance \| The distance field still requires documentation \| \| +polar\\_angle \| I guess here we have a collision with the definition +for the canonical 'polar\\_angle' in the user manual. Despite this, the +reference manual still mentions that this field requires documentation. +\| \| azimuthal\\_angle \| Same as for polar\\_angle (collision with +definition of canonical rotations as well as missing documentation) \| +\| dead\\_time \| which dead time. What does term refer to? \| \| +count\\_time \| what do we mean with count time. Is this the time the +each pixel was exposed to radiation (or particles)? \| \| +acquisition\\_mode \| this is somehow confusing: what is the difference +between 'gated' and 'triggered'? Is 'event' not simply gated/triggered +by an event? Why does this have its own mode? \| \| +angular\\_calibration \| we should definitely provide a formula here +which explains how to use this numbers? Is a single number per pixel +really enough? \| \| countrate\\_correction\\\_\\_applied \| are the two +underscores a typo or have they been used intentionally? What exactly +does this mean? Is this something we have introduced for DECTRIS? \| \| +frame\\_time \| here we should replace the term 'exposure\\_time' with +'count\\_time' to avoid confusion \| \| gain\\_setting \| I guess this +is something we made for DECTRIS \| In order to make things easier we +should somehow agree on a coherent naming scheme for time values (maybe +provide some timing diagram). Update 01/2015 -------------- The fields +listed here have proper documentation now. INHO, this really did not +belong here but should rather have been an issue on github. But may be +it did not get enough love there..... diff --git a/source/content/NXdir.rst b/source/content/NXdir.rst new file mode 100644 index 00000000..3552ea6f --- /dev/null +++ b/source/content/NXdir.rst @@ -0,0 +1,55 @@ +===== +NXdir +===== + + +--- title: NXdir permalink: NXdir.html layout: wiki --- NXdir is a +console based tool that allows inspecting the contents of a NeXusfile. +It allows for directory like listing of contents as well as printing out +data. If you have any questions/comments/bug reports email Peter +Peterson News ---- May 7, 2004:New version of +NXdir is v0.2.5. This version now supports NX\\_INT8 and NX\\_UINT8 as +well as fixes some bugs with reading integers from a nexus file. Apr 15, +2004:New version of NXdir is v0.2.4. The added feature is writing out an +NXdata to file (1D and 2D only for now). Let me know if the format +should be changed. Mar 17, 2004:New version of NXdir is v0.2.3. This +version provides more consistency between abolsute and relative paths. +It also allows for anchoring the path at both ends using a /. Mar 01, +2004:First public release of NXdir is v0.2.2 with linux binary here. +Usage ----- NXdir runs on the command line with a variety of arguments. +Below is the online help information (note that defaults can be changed +during compilation). \| About NXdir \| \|--------------------------\| \| +-h\|--help \| \| --version \| \| Node Selection \| \| -p \| \| Output +Control \| \| -o/+o \| \| -l\|--max-array \\[value\\] \| \| +-t\|--tree-mode \| \| --path-mode \| \| --data-mode \| \| --printline \| +\| --write-data \| Some common usages are: - Print the online help: +nxdir --help - List the everything at the root level of the file: nxdir +lrcs3000.nxs - Find the user names in all of the files in the directory: +nxdir \*.nxs -p NXuser/name -o - Find all the data in a file: nxdir +NPDF_E2_R0003000.nx.hdf -p NXdata - Print out how the entire file is +organized nxdir trics058582002.hdf -p "\*" (The asterix is in quotes so +it is not expanded by the shell) Downloads --------- - +[NXdir-v0.2.5.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) +- +[NXdir-v0.2.4.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) +- +[NXdir-v0.2.3.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) +- +[NXdir-v0.2.2.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) +- [CHANGES](ftp://ftp.neutron.anl.gov/nexus/NXdir/CHANGES) Prerequisites +------------- - C++ compiler - NeXus libraries or - Precompiled binary +Installation ------------ Binary:Some binaries can be found above. +Download, rename to something you will remember (like nxdir) and move +into your path. Unix/Linux/Irix/MacOSX:Unpack the tarball, enter the +directory and type make. Copy the resulting binary nxdir into your path. +Un-installing ------------- Remove the file \`nxdir\`. The installation +process did not modify the registry or other system settings in any way. +Frequently Asked Questions (FAQ) -------------------------------- What +is NXdir?:NXdir is a console tool used for inspection the contents of a +NeXus file, it can print out the organization of the file as well as any +data enclosed. It is intended to be a cross between the unix tools ls +and grep. It should help people writing scripts access to NeXus files +without having to compile in the NeXus API. The way NXdir prints arrays +is hard to read, could you please change it?:No, but a format easier for +you to read can be added. Please send an example of a two dimensional +array in a format you like. diff --git a/source/content/NXgeometry_and_NXshape_-_documentation_and_review.rst b/source/content/NXgeometry_and_NXshape_-_documentation_and_review.rst new file mode 100644 index 00000000..2bb235c5 --- /dev/null +++ b/source/content/NXgeometry_and_NXshape_-_documentation_and_review.rst @@ -0,0 +1,86 @@ +================================================= +NXgeometry and NXshape - documentation and review +================================================= + + +--- title: NXgeometry and NXshape - documentation and review permalink: +NXgeometry_and_NXshape\_-\_documentation_and_review.html layout: wiki +--- NXgeometry ---------- ![ upright \| frame \| right \| c \| UML +diagramm of the relations between the different geometry related base +classes. ](Nxgeometry_uml.png "fig: upright \| frame \| right \| c \| +UML diagramm of the relations between the different geometry related +base classes. ") Geometries in Nexus are described using the +\*[NXgeometry](https://manual.nexusformat.org/classes/base_classes/NXgeometry.html)\* +base class. As shown in the UML diagramm on the right side this class +consists basically of three other base classes (composition): +\*NXshape\*, \*NXtranslation\*, and \*NXorientation\*. As far as I +understand the \*NXgeometry\* class it describes a single shape +(geometric object). This fact makes the dimensionality of several +attributes of the the other classes a bit odd (see below). However, +aside from this \*NXgeometry\* is quite ok. Note: the NeXus User Guide +describes the coordinate system here: - NXtranslation ------------- +\*[NXtranslation](https://manual.nexusformat.org/classes/base_classes/NXtranslation.html)\* +has an attribute \*distances\* of shape \`[numobj,3]\`. If, as stated +above, \*NXgeometry\* seems to describe only a single shape the first +dimension has no meaning. A dimensionality of \`[3]\` would be enough +for this field. NXorientation ------------- +\*[NXorientation](https://manual.nexusformat.org/classes/base_classes/NXorientation.html)\* +has an attribute \*value\* of shape \`[numobj,6]\`. If, as stated above, +\*NXgeometry\* seems to describe only a single shape the first dimension +has no meaning. A dimensionality of \`[6]\` would be enough for this +field. NXshape ------- +\*[NXshape](https://manual.nexusformat.org/classes/base_classes/NXshape.html)\* +This is where all the problems start. In fact there are three issues +with this class: 1. as for \*NXtranslation\* and \*NXorientation\* the +first dimension of the \*size\* attribute (\`numobj\`) has no meaning 2. +what is the attribute \*direction\* good for (its values \*convex\* and +\*concave\* are not defined) 3. last but not least: the shapes are not +defined well (this is the major issue) The last problem will be +discussed in more detail in the following sections. ### Definition of +geometric primitives Every geometric primitive requires a local +coordinate frame. All translations applied on a primitive will act on +the origin of this local frame. Additionally, the origin of this frame +of reference will act as a center for all rotations applied on the +primitive. Unfortunately, the 9 geometric primitives currently available +in Nexus are not defined in such a sense. The following sections provide +some possible definitions of these primitives along with the layout of +their parameters stored in the \*size\* attribute of \*NXshape\*. \| +Shape and coordinate frame for an \*nxflat\* \| An \*nxcylinder\* in its +local frame \| An \*nxbox\* in its local frame #### nxflat \*nxflag\* +can be considered as a flat plane. The plane defines the x-y-plane of +its local coordinate frame. The z-axis of this system is oriented so +that the resulting reference frame is a right-handed one. The shape has +two parameters: its \*height\* and \*width\* which will be stored in the +\*size\* attribute of \*NXshape\* as follows +\`NXshape::size[2]={width,height}\` #### nxcylinder The origin of the +local coordinate frame for \*nxcylinder\* is in the center of its +bottom. An \*nxcylinder\* has 5 parameters: radius, height, and the +three components of the direction vector v (see the figure above). These +parameters are stored in the \*size*attribute of \*NXshape\* as follows +\`NXshape::size[5]={radius,height,vx,vy,vz}\` v is here simply a unit +vector pointing in the direction of the main axis of the cylinder. #### +nxbox \`NXshape::size[3]={length,width,height}\` \| Shape and +coordinate frame for an \*nxsphere\* \| Shape and coordinate frame for +an \*nxsphere\* \| Shape and coordinate frame for an \*nxelliptical\* +#### nxsphere \`NXshape::size[1]={radius}\` #### nxcone Like for +NXcylinder the vector v is simply a unit vector pointing to the tip of +the cylinder (no direction cosines or something else fancy). +\`NXshape::size[4]={radius,vx,vy,vz}\` #### nxelliptical +\`NXshape::size[2]={semi-majoraxis,semi-minoraxis}\` I have no idea +what the other two parameters \*pole\* and \*angle of major axis\* are +good for. Maybe we can drop them. \| Shape and coordinate frame for an +\*nxtoroidal\* \| Shape and coordinate frame for an \*nxparabolic\* \| +Shape and coordinate frame for an \*nxpolynomial\* #### nxtoroidal +\`NXshape::size[2]={minorradius,majorradius}\` #### nxparabolic This +is a poorly designed shape. Only the parapolic parameter \*a\* is +defined in the current documentation. I included here at least the +height of the parabola. However it is indeed not clear whether or not +this should be a 2D object or a 3D object. We definitely have to discuss +this. #### nxpolynomial Like \*nxparabolic\* this shape is rather poorly +designed. Besides the coefficients of the polynomial at least the bounds +of the interval on which the polynomial should be evaluated are required +to define the geometry. Also, like with \*nxparabolic\*, it is not clear +if this is a 2D or 3D object - both would be possible. We need to define +this more thoroughly. Update 01/2015 -------------- At NIAC 2014 it was +decided to deprecate NXgeometry. But this can still serve to document +NXgeometry better. diff --git a/source/content/NXlrcs.f90.rst b/source/content/NXlrcs.f90.rst new file mode 100644 index 00000000..13daec7b --- /dev/null +++ b/source/content/NXlrcs.f90.rst @@ -0,0 +1,127 @@ +========== +NXlrcs.f90 +========== + + +--- title: NXlrcs.f90 permalink: NXlrcs.f90.html layout: wiki --- +program NXlrcs use IPNS_module use NXUmodule type(IPNS_histogram) :: +hist type(IPNS_sgarray) :: sgarray type(IPNS_subgroup) :: sg +type(IPNS_timefield) :: tf integer, dimension(:), allocatable :: sglist +integer :: int_value real :: real_value character(len=80) :: char_value, +entry character(len=40) :: argv character(len=4) :: run_no +character(len=24) :: iso_time character(len=18) :: IPNS_time real :: L1 +integer :: char_size, Nhist, Nsg, i, j, status type(NXhandle) :: file_id +type(NXlink) :: phi_id, time_id, M1_id, M2_id !Open LRMECS run file i = +IARGC() if (i == 0) then write (unit=\*, fmt="(a)", advance="no") " Give +run number : " read \*, int_value else call GETARG (i, argv) read +(trim(argv), "(i10)") int_value end if write (run_no, fmt="(i4.4)") +int_value call open_IPNS_file ("/data/lrmecs/lrcs"//run_no//".run") if +(.not. IPNS_OK) then print \*, IPNS_message stop end if !Open NeXus +output file and write global attributes if (NXopen +("lrcs"//run_no//".nxs", NXACC_CREATE, file_id) /= NX_OK) stop call +get_IPNS_item ("NAM", char_value, item_size=char_size) if +(NXUwriteglobals (file_id, trim(char_value(1:char_size))) /= NX_OK) stop +call get_IPNS_item ("NHT", Nhist) !Set default compression algorithm for +larger data sets if (NXUsetcompress (file_id, NX_COMP_LZW) /= NX_OK) +stop !Loop over each run-file histogram do i = 1,Nhist !Open one NXentry +for each histogram write (entry, fmt="(a,i1)") "Histogram", i if +(NXUwritegroup (file_id, entry, "NXentry") /= NX_OK) stop call +get_IPNS_item ("TTL", char_value) if (NXUwritedata (file_id, "title", +char_value) /= NX_OK) stop if (NXUwritedata (file_id, "analysis", +"TOFNDGS") /= NX_OK) stop call get_IPNS_item ("SDT", char_value) +IPNS_time(1:10) = char_value//" " call get_IPNS_item ("STM", char_value) +IPNS_time(11:18) = char_value call convert_time (IPNS_time, iso_time) if +(NXUwritedata (file_id, "start_time", iso_time) /= NX_OK) stop call +get_IPNS_item ("EDT", char_value) IPNS_time(1:10) = char_value//" " call +get_IPNS_item ("ETM", char_value) IPNS_time(11:18) = char_value call +convert_time (IPNS_time, iso_time) if (NXUwritedata (file_id, +"end_time", iso_time) /= NX_OK) stop call get_IPNS_item ("RUN", +int_value) if (NXUwritedata (file_id, "run_number", int_value) /= NX_OK) +stop !Open NXsample if (NXUwritegroup (file_id, "sample", "NXsample") /= +NX_OK) stop call get_IPNS_item ("L1", L1) if (NXUwritedata (file_id, +"distance", 0.0, "m") /= NX_OK) stop if (NXUwritedata (file_id, +"moderator_distance", L1, "m") /= NX_OK) stop if (NXclosegroup (file_id) +/= NX_OK) stop !Open NXinstrument call get_IPNS_item (i, hist) Nsg = +size(hist%sg) if (i == 1) then allocate (sglist(nsg-2)) sglist = (/ (i, +i=3,Nsg) /) else allocate (sglist(Nsg)) sglist = (/ (i, i=1,Nsg) /) end +if call get_IPNS_item (sglist, sgarray, i) deallocate (sglist) if +(NXUwritegroup (file_id, "LRMECS", "NXinstrument") /= NX_OK) stop !Open +NXsource if (NXUwritegroup (file_id, "source", "NXsource") /= NX_OK) +stop if (NXUwritedata (file_id, "distance", -L1, "m") /= NX_OK) stop +call get_IPNS_item ("PLS", int_value) if (NXUwritedata (file_id, +"proton_pulses", int_value) /= NX_OK) stop if (NXUwritedata (file_id, +"name", "IPNS") /= NX_OK) stop if (NXUwritedata (file_id, "type", +"Spallation Neutron Source") /= NX_OK) stop if (NXUwritedata (file_id, +"frequency", 30.0, "Hz") /= NX_OK) stop if (NXUwritedata (file_id, +"target_material", "depleted_U") /= NX_OK) stop if (NXUwritedata +(file_id, "moderator", "CH4") /= NX_OK) stop if (NXclosegroup (file_id) +/= NX_OK) stop !Open NXchopper if (NXUwritegroup (file_id, +"monochromator", "NXchopper") /= NX_OK) stop call get_IPNS_item ("LCH", +real_value) if (NXUwritedata (file_id, "distance", real_value-L1, "m") +/= NX_OK) stop if (NXUwritedata (file_id, "moderator_distance", +real_value, "m") /= NX_OK) stop if (NXUwritedata (file_id, "type", +"Fermi") /= NX_OK) stop call get_IPNS_item ("EIN", real_value) if +(NXUwritedata (file_id, "energy", real_value, "meV") /= NX_OK) stop if +(NXputattr (file_id, "calibration_status", "Nominal") /= NX_OK) stop if +(NXclosegroup (file_id) /= NX_OK) stop !Open NXdetector if +(NXUwritegroup (file_id, "detector_bank", "NXdetector") /= NX_OK) stop +if (NXUwritedata (file_id, "distance", sgarray%L2, "m") /= NX_OK) stop +if (NXUwritedata (file_id, "type", "He3 gas cylinder") /= NX_OK) stop if +(NXUwritedata (file_id, "gas_pressure", 6.0, "bars") /= NX_OK) stop if +(NXUwritedata (file_id, "time_of_flight", sgarray%time_of_flight, +"microseconds") /= NX_OK) stop if (NXgetdataID (file_id, time_id) /= +NX_OK) stop if (NXputattr (file_id, "long_name", "Time-of-Flight +[microseconds]") /= NX_OK) stop if (NXUwritedata (file_id, +"polar_angle", sgarray%phi, "degrees") /= NX_OK) stop if (NXgetdataID +(file_id, phi_id) /= NX_OK) stop if (NXputattr (file_id, "long_name", +"Polar Angle [degrees]") /= NX_OK) stop if (NXclosegroup (file_id) /= +NX_OK) stop if (NXclosegroup (file_id) /= NX_OK) stop !Open NXmonitor if +(i == 1) then if (NXUwritegroup (file_id, "monitor1", "NXmonitor") /= +NX_OK) stop call get_IPNS_item (1, sg, i) if (NXUwritedata (file_id, +"distance", sg%L2, "m") /= NX_OK) stop if (NXUwritedata (file_id, +"moderator_distance", L1+sg%L2, "m") /= NX_OK) stop if (NXUwritedata +(file_id, "time_of_flight", sg%time_of_flight, "microseconds") /= NX_OK) +stop if (NXputattr (file_id, "long_name", "Time-of-Flight +[microseconds]") /= NX_OK) stop if (NXUwritedata (file_id, "data", +sg%counts, "counts") /= NX_OK) stop if (NXputattr (file_id, "signal", 1) +/= NX_OK) stop if (NXputattr (file_id, "long_name", "Monitor 1 Counts") +/= NX_OK) stop if (NXputattr (file_id, "axes", "[time_of_flight]") /= +NX_OK) stop if (NXgetgroupID (file_id, M1_id) /= NX_OK) stop call +free_IPNS_subgroup (sg) if (NXclosegroup (file_id) /= NX_OK) stop else +if (NXmakelink (file_id, M1_id) /= NX_OK) stop end if !Open NXmonitor if +(i == 1) then if (NXUwritegroup (file_id, "monitor2", "NXmonitor") /= +NX_OK) stop call get_IPNS_item (2, sg, i) if (NXUwritedata (file_id, +"distance", sg%L2, "m") /= NX_OK) stop if (NXUwritedata (file_id, +"moderator_distance", L1+sg%L2, "m") /= NX_OK) stop if (NXUwritedata +(file_id, "time_of_flight", sg%time_of_flight, "microseconds") /= NX_OK) +stop if (NXputattr (file_id, "long_name", "Time-of-Flight +[microseconds]") /= NX_OK) stop if (NXUwritedata (file_id, "data", +sg%counts, "counts") /= NX_OK) stop if (NXputattr (file_id, "signal", 1) +/= NX_OK) stop if (NXputattr (file_id, "long_name", "Monitor 2 Counts") +/= NX_OK) stop if (NXputattr (file_id, "axes", "[time_of_flight]") /= +NX_OK) stop if (NXgetgroupID (file_id, M2_id) /= NX_OK) stop if +(NXclosegroup (file_id) /= NX_OK) stop call free_IPNS_subgroup (sg) else +if (NXmakelink (file_id, M2_id) /= NX_OK) stop end if !Open NXdata if +(NXUwritegroup (file_id, "data", "NXdata") /= NX_OK) stop call +get_IPNS_item ("TTL", char_value) if (NXUwritedata (file_id, "title", +char_value) /= NX_OK) stop if (NXUwritedata (file_id, "data", +sgarray%counts, "counts") /= NX_OK) stop if (NXputattr (file_id, +"signal", 1) /= NX_OK) stop if (NXputattr (file_id, "axes", +"[polar_angle,time_of_flight]") /= NX_OK) stop if (NXputattr (file_id, +"long_name", "Neutron Counts") /= NX_OK) stop if (NXmakelink (file_id, +time_id) /= NX_OK) stop if (NXmakelink (file_id, phi_id) /= NX_OK) stop +if (NXclosegroup (file_id) /= NX_OK) stop if (NXclosegroup (file_id) /= +NX_OK) stop call free_IPNS_sgarray (sgarray) end do if (NXclose +(file_id) /= NX_OK) stop contains subroutine convert_time (IPNS_time, +iso_time) character(len=\*), intent(in) :: IPNS_time character(len=\*), +intent(out) :: iso_time integer :: year, month, day character(len=\*), +parameter :: months="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" iso_time = +"2000-01-01T01:01:00-0600" read (IPNS_time(8:9), fmt=\*) year if (year < +80) then iso_time(1:4) = "20"//IPNS_time(8:9) else iso_time(1:4) = +"19"//IPNS_time(8:9) end if month = ((index(months, IPNS_time(4:6)) - +1)/3) + 1 if (month < 10) then iso_time(6:6) = "0" write (iso_time(7:7), +fmt="(i1)") month else write (iso_time(6:7), fmt="(i2)") month end if +read (IPNS_time(1:2), fmt=\*) day if (day < 10) then iso_time(9:9) = "0" +write (iso_time(10:10), fmt="(i1)") day else write (iso_time(9:10), +fmt="(i2)") day end if iso_time(12:19) = IPNS_time(11:18) end subroutine +convert_time end program NXlrcs diff --git a/source/content/NXmeasurement.rst b/source/content/NXmeasurement.rst new file mode 100644 index 00000000..22f69a39 --- /dev/null +++ b/source/content/NXmeasurement.rst @@ -0,0 +1,32 @@ +============= +NXmeasurement +============= + + +--- title: NXmeasurement permalink: NXmeasurement.html layout: wiki --- +NXmeasurement ------------- This is a proposal for NeXus which comes out +of the NeXus for Synchrotrons workshop at PSI In order to satisfy the +requirements of the beamline scientist an additional, simplified NeXus +hierarchy is proposed: entry:NXentry measurement:NXmeasurement +positions:NXpositioners scalars:NXscalar images:NXimagedata Please note +that this is an example how a NXmeasurement group may look like. The +general feeling was to allow much freedom in NXmeasurement and +standardize later on if a common pattern emerges. The meaning is that +the NXpositioners groups contains a list of all constants and motor +positions, NXscalar arrays of all parameters varied during the scan and +NXimageData the images and other detector data which has been captured +during a scan or measurement. This structure is for the expert, the +instrument scientist, who knows his instrument by heart and wishes to be +able to plot anything against anything in his instrument. NXmeasurement +is not meant to stand alone but is to be augmented with further +NXsubentries containing the data in proper NeXus notation and hierarchy. +It was pointed out that such a simplified view can be generated by a +data analysis application from a full NeXus NXinstrument view. +Conclusion ---------- 01/2015 As an in part answer to this proposal the +NIAC adopted the NXcollection base class as a free form container for +things which no one cares to standardize. Data in NXcollection will not +be validated. But such a free form structure defeats one objective of +NeXus, namely providing a dictionary of well defined field names. Thus +users are encouraged to use the base classes as far as possible and +communicate with the NIAC about missing fields. NXmeasurement as +suggested here was rejected. diff --git a/source/content/NXmonoref-NIAC2006.rst b/source/content/NXmonoref-NIAC2006.rst new file mode 100644 index 00000000..10a86436 --- /dev/null +++ b/source/content/NXmonoref-NIAC2006.rst @@ -0,0 +1,43 @@ +================== +NXmonoref-NIAC2006 +================== + + +--- title: NXmonoref-NIAC2006 permalink: NXmonoref-NIAC2006.html layout: +wiki --- The following is the proposed monochromatic reflectometry +definition. Concerns: - Using classes rather than names in links (e.g., +NXdetector) will break if the user adds another detector group to the +entry. - I don't record whether the reflectometer is horizontal or +vertical geometry, but with slit and angles defined relative to the +sample surface this doesn't matter. - I'm asking the control software to +write the wavelength divergence into the file so that the user can read +it off directly without performing calculations. - Not recording region +of interest used to measure count duration. Could create a virtual +detector for this. - Normalization by monitor/timer not currently +supported - For backgrounds, don't know if the nominal Qz should be +calculated from the theta or twotheta. The correct choice depends on +the source of background. Example: +[NXmonoref\\_example-NIAC2006](NXmonoref_example-NIAC2006.html +"wikilink") +NXmonoref \* {Suggested spectrum measurement for intensity vs. +wavelength for a given slit setting. Warning: beam profile is not +regular, but this effect is accomodated in the spectrum measurement} \* +{Suggested background measurement} ? {Angle relative to the scattering +plane, not to gravity.} {\|Q\|}? ? { Location of slit along beamline +(midway between slits if slits are not coplanar). This is required to +compute instrument resolution. } { Need to add "nxslit" to list of +possible shapes. If the shape is a box, first dimension changes the +sample footprint. } ? ? ? ? ? ? { Need all fields so that we can +calculate shadow of beam stop on detector. } { Indicate sense of +scattering: 0 is front surface of sample, 180 is back surface of sample. +If 180, change the sign of the reflected angle in the data. It is also +possible for the beam to enter the substrate from the side and reflect +off the back surface of a film, in which case negative angles can be +interpreted as inverting the scattering length density profile of the +film (after accounting for absorption in the substrate. } ? ? { +"intensity"\|"background"\|"specular"\|"rock"\|"slice"\|"area" } ? { +"++"\|"+-"\|"-+"\|"--"\|"+"\|"-" } ? ? ? ? ? ? ? ? ? ? \* { Various logs +for temperature, field, etc. which are assumed to be constant over the +duration of the run. The reduction program should be able to display +their values on a parallel graph. Note that logs are not necessarily +sampled synchronously with the data points. } diff --git a/source/content/NXmonoref_example-NIAC2006.rst b/source/content/NXmonoref_example-NIAC2006.rst new file mode 100644 index 00000000..454c6d57 --- /dev/null +++ b/source/content/NXmonoref_example-NIAC2006.rst @@ -0,0 +1,44 @@ +========================== +NXmonoref example-NIAC2006 +========================== + + +--- title: NXmonoref example-NIAC2006 permalink: +NXmonoref_example-NIAC2006.html layout: wiki --- NXmonoref +Summer-School '02 Group B measurement of unknown sample +2002-06-04T15:09:03-0400 2002-06-04T16:18:28-0400 4165 0.092328 0.18454 +SS02 Group B NCNR unknown sample 2 2.04 2.08 2.12 2.16 2.2 2.24 2.28 +2.32 2.36 2.4 2.44 2.48 2.52 2.56 2.6 2.64 2.68 2.72 2.76 2.8 2.84 2.88 +2.92 2.96 3 3.04 3.08 3.12 3.16 3.2 3.24 3.28 3.32 3.36 3.4 3.44 3.48 +3.52 3.56 3.6 3.64 3.68 3.72 3.76 3.8 3.84 3.88 3.92 3.96 4 4.75 0.01 +1700 nxslit 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 1.1582 1.1786 +1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 1.3614 1.3818 +1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 1.5443 1.5646 1.585 +1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 1.7272 1.7475 1.7678 1.7882 +1.8085 1.8288 1.8491 1.8694 1.8898 1.9101 1.9304 1.9507 1.971 1.9914 +2.0117 2.032 200 nxslit 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 +1.1582 1.1786 1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 +1.3614 1.3818 1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 1.5443 +1.5646 1.585 1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 1.7272 1.7475 +1.7678 1.7882 1.8085 1.8288 1.8491 1.8694 1.8898 1.9101 1.9304 1.9507 +1.971 1.9914 2.0117 2.032 4 4.08 4.16 4.24 4.32 4.4 4.48 4.56 4.64 4.72 +4.8 4.88 4.96 5.04 5.12 5.2 5.28 5.36 5.44 5.52 5.6 5.68 5.76 5.84 5.92 +6 6.08 6.16 6.24 6.32 6.4 6.48 6.56 6.64 6.72 6.8 6.88 6.96 7.04 7.12 +7.2 7.28 7.36 7.44 7.52 7.6 7.68 7.76 7.84 7.92 8 194 239 256 319 291 +373 393 397 399 381 375 358 331 275 256 242 186 171 132 114 69 64 68 49 +43 50 41 61 83 80 102 110 109 143 139 134 138 127 147 134 124 127 106 88 +87 70 60 60 49 43 41 1220 specular 600000 600000 600000 600000 600000 +600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 +600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 +600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 +600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 +600000 600000 600000 600000 600000 600000 600000 +2002-06-04T15:09:03-0400 0.0 115.8 228.6 339.6 448.8 555.6 660.6 764.4 +865.2 965.4 1063.2 1160.4 1255.2 1348.2 1440 1531.2 1621.2 1710 1797 +1882.8 1968 2052 2134.8 2215.8 2296.8 2376.6 2455.8 2533.8 2610.6 2686.8 +2761.8 2835.6 2908.8 2982 3052.8 3123.6 3193.8 3264 3333 3400.8 3468.6 +3535.8 3601.8 3666.6 3730.8 3795 3858 3919.8 3981.6 4043.4 4104.6 115.8 +112.8 111 109.2 106.8 105 103.8 100.8 100.2 97.8 97.2 94.8 93 91.8 91.2 +90 88.8 87 85.8 85.2 84 82.8 81 81 79.8 79.2 78 76.8 76.2 75 73.8 73.2 +73.2 70.8 70.8 70.2 70.2 69 67.8 67.8 67.2 66 64.8 64.2 64.2 63 61.8 +61.8 61.8 61.2 60 diff --git a/source/content/NXmonotas-NIAC2006.rst b/source/content/NXmonotas-NIAC2006.rst new file mode 100644 index 00000000..839aba63 --- /dev/null +++ b/source/content/NXmonotas-NIAC2006.rst @@ -0,0 +1,32 @@ +================== +NXmonotas-NIAC2006 +================== + + +--- title: NXmonotas-NIAC2006 permalink: NXmonotas-NIAC2006.html layout: +wiki --- Example: +[NXmonotas\\_example-NIAC2006](NXmonotas_example-NIAC2006.html +"wikilink") +NXmonotas {Reciprocal space vector of primary reflection in the +scattering plane} {Reciprocal space vector of secondary reflection in +the scattering plane} {Polar angle of the sample with respect to the +beam incident on the monochromator} {Azimuthal angle of the sample with +respect to the beam incident on the monochromator} {Rotation angle of +the sample} {Magnitude of momemtum transfer vector}? {Reciprocal space +component of scan}? {Reciprocal space component of scan}? {Reciprocal +space component of scan}? {Energy transfer of scan} ? ? {Optimum +diffracted energy} {The planar spacing of the nominal reflection} +{Rotation angle of the monochromator} ? ? ? ? {Optimum diffracted energy +for each analyzer} ? {Integer counts} {Polar angle of the detector with +respect to the beam incident on the monochromator} {Azimuthal angle of +the detector with respect to the beam incident on the analyzer} {Preset +timer value. This may be a vector if your control software can allow +different points in the sequence to be counted for different lengths. +The measured duration is not necessarily equal to the preset since the +monitor or detector may reach their presets earlier}? {Start times of +the individual measurements relative to the start of the scan. This +field is recommend so that for example NXlog entries can be plotted on +the same scale as individual points, but it is not required since many +old data sets do not store it.}? {Duration of the individual +measurements in the scan. If absent, then the duration is assumed to be +the value of the preset.}? diff --git a/source/content/NXmonotas_example-NIAC2006.rst b/source/content/NXmonotas_example-NIAC2006.rst new file mode 100644 index 00000000..e1e8127d --- /dev/null +++ b/source/content/NXmonotas_example-NIAC2006.rst @@ -0,0 +1,45 @@ +========================== +NXmonotas example-NIAC2006 +========================== + + +--- title: NXmonotas example-NIAC2006 permalink: +NXmonotas_example-NIAC2006.html layout: wiki --- +La1.2Sr1.8Mn2O7 m=2.4g phonons +NXmononxtas 2000-05-23T19:37 2000-05-23T21:04 1620 sc en 2.0 den 0.25 np +21 mn 1013000 Stephan Rosenkranz Argonne National Laboratory Bilayer +Manganite 3.874 3.874 20.145 90.000 90.000 90.000 -1.0 0.0 0.0 0.0 0.0 +1.0 295.2380 295.2360 295.2350 295.2320 295.2310 295.2290 295.2270 +295.2260 295.2250 295.2230 295.2220 295.2200 295.2190 295.2180 295.2180 +295.2170 295.2160 295.2160 295.2150 295.2150 295.2150 41.172 41.172 +41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 +41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 218.439 +218.976 219.518 220.065 220.617 221.174 221.736 222.304 222.878 223.458 +224.044 224.637 225.236 225.843 226.457 227.080 227.710 228.349 228.998 +229.656 230.324 180.0 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 +2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 +2.0000 2.0000 2.0000 2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 +0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 +0.0000 0.0000 0.0000 0.0000 0.0000 0.6000 0.6000 0.6000 0.6000 0.6000 +0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 +0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 2.0000 2.2500 2.5000 2.7500 +3.0000 3.2500 3.5000 3.7500 4.0000 4.2500 4.5000 4.7500 5.0000 5.2500 +5.5000 5.7500 6.0000 6.2500 6.5000 6.7500 7.0000 "Soller" 60.0 +"Pyrolytic Graphite" "PG (Highly Oriented Pyrolytic Graphite)" 14.700 +14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 +14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 +3.354 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 +20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 +20.586 20.586 "Soller" 40.0 "Soller" 40.0 "PG (Highly Oriented Pyrolytic +Graphite)" 16.7 16.95 17.2 17.45 17.7 17.95 18.2 18.45 18.7 18.95 19.2 +19.45 19.7 19.95 20.2 20.45 20.7 20.95 21.2 21.45 21.7 3.354 78.344 +78.766 79.195 79.631 80.074 80.526 80.985 81.453 81.930 82.417 82.914 +83.422 83.941 84.471 85.015 85.572 86.144 86.731 87.335 87.956 88.597 +22.230 22.465 22.706 22.956 23.214 23.481 23.758 24.044 24.342 24.650 +24.971 25.304 25.652 26.014 26.392 26.787 27.200 27.634 28.088 28.567 +29.070 0.0 "Soller" 99.0 49 43 29 22 25 21 27 44 53 80 89 80 36 20 9 18 +12 16 8 13 12 44.461 44.929 45.412 45.912 46.428 46.962 47.515 48.089 +48.683 49.300 49.942 50.609 51.304 52.028 52.784 53.574 54.401 55.267 +56.177 57.133 58.140 180.0 4052000 238.20 238.20 238.20 238.20 238.20 +238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 +238.20 238.20 238.20 238.20 238.20 238.20 diff --git a/source/content/NXnet_Proposal.rst b/source/content/NXnet_Proposal.rst new file mode 100644 index 00000000..ba734eef --- /dev/null +++ b/source/content/NXnet_Proposal.rst @@ -0,0 +1,68 @@ +============== +NXnet Proposal +============== + + +--- title: NXnet Proposal permalink: NXnet_Proposal.html layout: wiki +--- The motivation for NeXus is to allow the exchange of data between +programs, instruments, establishments and branches of science where the +neutron, muon and X-ray technologies are the common theme. Recently the +NeXus community has been greatly (and crucially) occupied with choosing +what data to store in a file and how it should be described in a common +fashion. This proposal tackles a complementary facet of the broader +problem; namely the exchange of the data files themselves between the +programs, operating systems, instruments and establishments. Most +scientists doing experiments on instruments at different establishments +will have experienced the joy of trying to copy data off a variety of +different computer systems, often being forced to network a laptop +machine at the last minute, write a CD or floppy disk before racing to +catch a flight, manually select and copy files one at a time via ftp +and/or negotiate a firewall to get at their data. If very lucky, maybe +they have been able to download data from a conveniently set up web +site, where remembering the password has been the only problem. If this +state of affairs wasnt bad enough, there are things that are even +harder to do than read your data. For example, you might want to send a +few calibration files and sample setup notes to a remote site ready for +an experiment. This would normally be seen as folly unless you have a +trusted colleague already on site to help you receive and look after the +files. And what if youve forgotten a file you needed on arrival? +Wouldnt it be nice if you could do a bit of data reduction on site and +then continue at home, all the time saving the reduced files in the same +directory as the raw data (and with no need to copy the data locally). +And then permit a colleague to access a few of the files from their own +laptop whilst at home (by setting permissions like you do on a local +Unix NFS file system or Windows share)? There is really very little +reason why we should accept such a desperate state of affairs. With the +help of the UKs e-Science centre we have been experimenting with the +San Diego Supercomputing Centres SRB (Storage Resource Broker) for +several months now. This provides at a minimum a very credible and +functional globally distributable file system. The proposal is in three +parts. 1. We adopt SRB as a working system on which to experiment with +building a global integrated network for sharing Neutron, Muon and X-Ray +data between our establishments and our users. We do this pragmatically +(like we have done with HDF) because it currently seems to do the job +and support is what standards like this need to develop. 2. More +fundamentally, we extend our remit of defining and organizing data types +within the NeXus file to also giving some sort of standardisation to the +organisation and location of data within a global file system. Quite +simply, this just avoids things being lost by everyone storing things +under different names and in different places (for example, a naming +convention for raw files). 3. Even more fundamentally, we spend some +effort defining the sort of meta-data which we might associate with each +file (possibly not contained in the NeXus file itself). This meta-data +would enable a data portal style search engine, just like a super +data-Google quickly to find relevant data by searching throughout this +global file system. Some of this sort of work is already underway but +some sort of standardization of the type and contents of this metadata +is very close to the sort of standardization we are aiming at with the +NeXus file contents and would greatly ease the ability to search and +find relevant information. The sheer use-ability of this particular +system, especially for quite a young technology is staggering. This is +not something to be planning for next year or the year after, its +something to be using now and then planning how to build a data +storage and access strategy around it. NeXus has taken a long time to +grow to the point where we are able to agree on the most difficult issue +of what is common within our data files, this is because its a really +difficult job. Taking some responsibility for (2) and (3) in particular +is a lot less work but is something best tackled early. Chris +Moreton-Smith diff --git a/source/content/NXtofnref-NIAC2006.rst b/source/content/NXtofnref-NIAC2006.rst new file mode 100644 index 00000000..4ae8f67f --- /dev/null +++ b/source/content/NXtofnref-NIAC2006.rst @@ -0,0 +1,42 @@ +================== +NXtofnref-NIAC2006 +================== + + +--- title: NXtofnref-NIAC2006 permalink: NXtofnref-NIAC2006.html layout: +wiki --- Concerns: - mono and tof reflectometry must inherit from a +common base class; the current definition of tofnref inheriting from +monoref leaves the definition of the monochromator in the TOF +definition. - SNS Liquids has two monitors, but our definitions only +have one. Both are not always active. +NXtofnref { Distance from T_o to sample along beam-path. To calculate +wavelength: L[i] = wavelength at time T[i] T[i] = time of flight for +point i. d1 = distance from moderator to sample along beam path d2 = +distance from detector to sample along beam path h = Planck's constant +m_n = mass of the neutron L[i] = h/m_n \* T[i]/(d1+d2) } { Find the +center of mass of the pulse shape and use that as the T0 offset with +respect to the protons hitting the target. The TOF from target (which is +the real T0) to the moderator is insignficant compared to the +uncertainty from the pulse shape and so can be ignored. } \* { Guides in +total or in segments thgrough to sample position; may be interspersed +between other components - Check component index. Can be nested for +guides with multiple straight segments. Affects wavelength spectrum, +both in divergence and intensity. The spectrum scan will automatically +compensate for intensity effects. To compute divergence effects, +detailed information about the guide geometry will be required. } ? { +Reduction software needs to ignore Q values outside the range defined by +the choppers. The T0 chopper is phased to the source to block fast +neutron and gamma flash. The frame overlap chopper is set to select low +wavelength neutrons (those from the current pulse) or high wavelength +neutrons (those from the previous pulse. On a properly tuned instrument, +the time bins recorded in the detector will reflect the actions of the +choppers and these fields can be ignored. } ? { The frame overlap mirror +is used to eliminate very long wavelength neutrons from previous pulses. +Together with the choppers, this helps to choose which pulse to use in +the TOF calculations. On a properly tuned instrument the time bins +recorded in the detector will account for the actions of the mirror. +There will be some attenuation but this will be compensated for when +correcting for the spectrum scan. For an ab initio calculation, you +would need to store the angle wrt the beam to compute the cutoff angle +but often this will not be explicit since the instrument is simply tuned +to have the correct cutoff. } { Total time of flight } diff --git a/source/content/NXtranslate.rst b/source/content/NXtranslate.rst new file mode 100644 index 00000000..721e36ca --- /dev/null +++ b/source/content/NXtranslate.rst @@ -0,0 +1,31 @@ +=========== +NXtranslate +=========== + + +--- title: NXtranslate permalink: NXtranslate.html layout: wiki --- +NXtranslate - the anything to NeXus converter +--------------------------------------------- NXtranslate is an +extensible console based tool that allows creating NeXus files from +information stored in other places. The program works by parsing a +translation file, which describes the structure of the resulting file, +and libraries that understand different file formats, databases, etc. to +retrieve information and put it into the resulting NeXus file. +NXtranslate was designed with plugins in mind to read from new formats +as needed. If you have any questions/comments/bug reports email Peter +Peterson . Also email if you wanted to be notified +of test (alpha/beta) releases. \**News:\*\* October 1, 2004 The +NXtranslate web page is published. The current version of NXtranslate is +v0.1.1. v0.2.0 is in progress and the can be obtain by mailing +. \**Downloads:\*\* Source The manual +NXtranslate.pdf NXtranslate-v0.1.1.tar.gz NXtranslate-v0.1.0.tar.gz +\**Prerequisites:\*\* C++ compiler NeXus libraries \*' Installation:\*' +Unix/Linux/Irix/MacOSX: Unpack the tarball, enter the directory and type +make;make test;make install. The resulting binary, nxtranslate, will be +in /usr/local/bin/. \**Un-installing:\*\* Remove the file nxtranslate. +The installation process did not modify the registry or other system +settings in any way. \*' Frequently Asked Questions (FAQ)\*' Q: What do +you mean by anything to NeXus? A: Because NXtranslate is extensible it +can get information from more places as new retrievers are written. +Since there is no inherent limitation on what retrievers are written, +the information can be from anything. diff --git a/source/content/NeXpy.rst b/source/content/NeXpy.rst new file mode 100644 index 00000000..6d3495e9 --- /dev/null +++ b/source/content/NeXpy.rst @@ -0,0 +1,329 @@ +===== +NeXpy +===== + + +--- title: NeXpy permalink: NeXpy.html layout: wiki --- +[NeXpy](https://nexpy.github.io/nexpy/) provides a high-level python +interface to NeXus data contained within a simple GUI. It is designed to +provide an intuitive interactive toolbox allowing users both to access +existing NeXus files and to create new NeXus-conforming data structures +without expert knowledge of the file format. Installation ------------ +WARNING: NeXpy is in the early stages of development, and so there has +been no stable release yet. It is available for testing purposes only. +To check out the latest version from the [GitHub +repository](https://github.com/nexpy/nexpy) and install the NeXpy +package to the standard python site-packages directory,: +\`> git clone \`[\`https://github.com/nexpy/nexpy.git\`](https://github.com/nexpy/nexpy.git) +\`> cd nexpy\` \`> python setup.py install\` This assumes that the +standard Python script directory is in your default path. The source +code can also be viewed on the [NeXpy +GitHub](https://github.com/nexpy/nexpy). ### Installation Issues #### +Locating the NeXus library NeXpy utilizes the python wrapper to the +NeXus C API distributed with the standard NeXus distribution. This +/wrapper needs the location of the libNeXus precompiled binary. It looks +in the following places in order:: + + +-----------------------------------+-----------------------------------+ + | Location | Operating System | + +===================================+===================================+ + | os.environ['NEXUSLIB'] | All | + +-----------------------------------+-----------------------------------+ + | directory containing napi.py | All | + +-----------------------------------+-----------------------------------+ + | os.environ['NEXUSDIR']\\bin | Windows | + +-----------------------------------+-----------------------------------+ + | os.environ['LD_LIBRARY_PATH'] | Unix | + +-----------------------------------+-----------------------------------+ + | os.environ['DYLD_LIBRARY_PATH'] | Darwin | + +-----------------------------------+-----------------------------------+ + | PREFIX/lib | Unix and Darwin | + +-----------------------------------+-----------------------------------+ + | /usr/local/lib | Unix and Darwin | + +-----------------------------------+-----------------------------------+ + | /usr/lib | Unix and Darwin | + +-----------------------------------+-----------------------------------+ + | | | + +-----------------------------------+-----------------------------------+ + +- On Windows it looks for one of libNeXus.dll or libNeXus-0.dll. +- On OS X it looks for libNeXus.dylib. +- On Unix it looks for libNeXus.so. + +NEXUSDIR defaults to r'C:\\Program Files\\NeXus Data Format'. PREFIX defaults to /usr/local, but is replaced by the +value of --prefix during configure. The import will raise an OSError exception if the library wasn't found or couldn't +be loaded. Note that on Windows in particular this may be because the supporting HDF5 dlls were not available in the +usual places. If you are extracting the nexus library from a bundle at runtime, set os.environ['NEXUSLIB'] to the path +where it is extracted before the first import of nexpy. + +#### Required Libraries +[nexus](http://www.nexusformat.org) - [numpy](https://numpy.org) - +[scipy](https://scipy.org) - [h5py](https://www.h5py.org) - [matplotlib +v1.1.0](http://matplotlib.sourceforge.net) - +[hdf5](http://www.hdfgroup.org) - [mxml](http://www.minixml.org) (XML +NeXus files only) - [PySide v1.1.0](http://www.pyside.org/) (GUI only) - +[iPython v0.13](http://ipython.org/) (GUI only) - +[pyspec](http://pyspec.sourceforge.net) (SPEC reader only) Running NeXpy +------------- There are two ways of using the NeXpy interface to NeXus +files. 1. Within a standard python or ipython shell. 2. Using the GUI +shell ### Python Shell \`$ python\` +\`Python 2.7.2 (default, Oct 11 2012, 20:14:37) \` +\`[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin\` +\`Type \`\`help\`\`, \`\`copyright\`\`, \`\`credits\`` or \`\`license\`` for more information.\` +\`>>> from nexpy.api import nexus\` +\`>>> a=nexus.load('data/chopper.nxs')\` ### GUI Shell To run the NeXpy +GUI, type \`> nexpy\` ![NeXpy|center|800px](Nexpy.png +"fig:NeXpy|center|800px") The GUI contains three main panes: Tree +Pane:This contains the tree structure of NeXus files opened in the File +menu and/or any NXroot and NXentry groups created within the shell. Plot +Pane:Any NXdata or NXmonitor group can be plotted in this pane by +right-clicking on the relevant node in the tree. Shell Pane:This is a +regular python shell, with both Numpy and NeXpy already imported (as +\\\* so no prefixes are necessary). Any assignments to items in the tree +pane are automatically reflected in the tree pane, and new NXroot, +NXentry, or NXdata objects are added to the tree. Currently, it is not +possible to plot directly from the shell pane, but this will be added in +the future. There are a number of useful features available when running +NeXpy within the GUI shell. 1. Data can be loaded with the menu item +using a standard file browser window. 2. All current NeXus data trees +are easy to inspect in the pane on the upper left side. Hovering over a +data item produces a tooltip containing a list of all the item's +children. 3. Newly created group can be added to the tree at any time. +4. Any changes to data sets in the scripting window will be reflected +within the tree pane, including the creation of new NXroot or NXentry +groups. 5. NXdata and NXmonitor plots can be displayed by right-clicking +and choosing 'Plot'. 6. Axis limits are set by a series of slider bars. +7. The scripting shell provides convenient autocompletion, and +automatically displays function docstrings as a tooltip when you open +the function parentheses. #### Planned Enhancements - Editing data items +in the tree within an editor pane. NeXus Interface --------------- ### +Loading NeXus Data The entire tree structure of a NeXus file can be +loaded by a single command. \`>>> from nexpy.api import nexus\` +\`>>> a=nexus.load('sns/data/ARCS_7326_tof.nxs')\` The assigned variable +now contains the entire tree structure of the file, which can be +displayed by printing the 'tree' property. \`>>> print a.tree\` +\`root:NXroot\` ` @HDF5_Version = 1.8.2\` ` @NeXus_version = 4.2.1\` +` @file_name = ARCS_7326_tof.nxs\` +` @file_time = 2010-05-05T01:59:25-05:00\` ` entry:NXentry\` +` \`[\`data:NXdata\`](data:NXdata) +` data = float32(631x461x4x825)\` +` @axes = rotation_angle:tilt_angle:sample_angle:time_of_flight\` +` @signal = 1\` ` rotation_angle = float32(632)\` +` @units = degree\` +` sample_angle = [ 210. 215. 220. 225. 230.]\` +` @units = degree\` ` tilt_angle = float32(462)\` +` @units = degree\` ` time_of_flight = float32(826)\` +` @units = microsecond\` ` run_number = 7326\` +` sample:NXsample\` ` pulse_time = 2854.94747365\` +` @units = microsecond\` Individual data items are immediately +available from the command-line. \`>>> print a.entry.run_number\` +\`7326\` Note that only the tree structure and smaller data sets are +read into memory to avoid using up memory unnecessarily. In the above +example, only the types and dimensions of the larger data sets are +displayed in the tree. However, the filename is also stored, so the data +can be loaded as soon as it is needed, either as a complete array or as +a series of slabs. ### Creating NeXus Data It is just as easy to create +new NeXus data sets from scratch using Numpy arrays. The following +example shows the creation of a simple function, which is then saved to +a file. \`>>> import numpy as np\` +\`>>> x=y=np.linspace(0,2*np.pi,101)\` \`>>> X,Y=np.meshgrid(x,y)\` +\`>>> z=np.sin(X)*np.sin(Y)\` \`>>> a=NXdata(z,[x,y])\` +\`>>> a.save('function.nxs')\` This file can then be loaded again. +\`>>> b=nexus.load('function.nxs')\` \`>>> print b.tree\` +\`root:NXroot\` ` @HDF5_Version = 1.8.2\` ` @NeXus_version = 4.2.1\` +` @file_name = function.nxs\` ` @file_time = 2010-05-10T17:01:13+01:00\` +` entry:NXentry\` ` \`[\`data:NXdata\`](data:NXdata) +` axis1 = float64(101)\` ` axis2 = float64(101)\` +` signal = float64(101x101)\` ` @axes = axis1:axis2\` +` @signal = 1\` Note that the save() method automatically wraps +any valid NeXus data in an NXentry group, in order to produce a +standard-compliant file. #### NeXus Fields NeXus data values are stored +in NeXus objects of class 'NXfield'. The NXfield class wraps standard +Numpy arrays, scalars, and python strings so that data attributes can be +associated with them. There are two ways to create an NXfield. - +Explicit initialization. The data value is given by the first positional +argument, and may be a python scalar or string, or a Numpy array. In +this method, keyword arguments can be used to define NXfield attributes. +\`>>> x = NXfield(np.linspace(0,2*np.pi,101), units='degree')\` - +Implicit initialization as the child of a NeXus group. The assigned +values are automatically converted to an NXfield. +\`>>> a.entry.sample.temperature=40.0\` +\`>>> a.entry.sample.temperature\` +\`NXfield(name=temperature,value=40.0)\` NXfield attributes can be +assigned after creating the NXfield. Note that attribute names must not +start with 'nx' to avoid name clashes. +\`>>> a.entry.sample.temperature.units='K'\` The actual values of an +NXfield are stored in the 'nxdata' attribute. If the NXfield is read in +from a data file, this attribute is not input if the array size is large +to avoid using up memory unnecessarily. It will, however, be read in if +the value is accessed for plotting or manipulating data. If this will +cause a memory exception, the data should be read in as a series of +slabs using the nxget method. +\`>>> with root.NXentry[0].data.data as slab:\` +` Ni,Nj,Nk = slab.shape\` ` size = [1,1,Nk]\` +` for i in range(Ni):\` +` for j in range(Nj):\` +` value = slab.get([i,j,0],size)\` Data values can +be returned converted to different units if the 'units' attribute has +been set. \`>>> phi = x.nxdata_as(units='radian')\` +\`>>> y = NXfield(np.sin(phi))\` #### NeXus Groups NeXus groups are +defined as subclasses of the NXgroup class. Apart from the class name, +they behave identically except for the NXdata, NXmonitor, and NXlog +groups, which have extra methods defined. The initialization parameters +can be used to populate the group with other predefined NeXus objects, +either groups or fields. \`>>> temperature = NXfield(40.0, units='K')\` +\`>>> sample = NXsample(temperature=temperature)\` +\`>>> print sample.tree\` \`sample:NXsample\` ` temperature = 40.0\` +` units = K\` Note that, in this example, it was necessary to use the +keyword form to add the NXfield 'temperature' since its name is +otherwise undefined within the NXsample group. This name is set +automatically if the NXfield is added as an attribute assignment. +\`>>> sample = NXsample()\` +\`>>> sample.temperature=NXfield(40.0, units='K')\` \`sample:NXsample\` +` temperature = 40.0\` ` units = K\` The objects in NeXus groups, +which can be NXfields or other NXgroups, can also be assigned and +referenced as dictionary items. +\`>>> sample[\`\`temperature\`\`] = 40.0\` \`>>> sample.keys()\` +\`['temperature']\` NXdata Groups NXdata groups contain data ready to be +plotted. That means that the group should consist of an NXfield +containing the data and one or more NXfields containing the axes. NeXus +defines a method of associating axes with the appropriate dimension, but +NeXpy provides a simple constructor that implements this method +automatically. This was already demonstrated in the example above, +reproduced here: \`>>> import numpy as np\` +\`>>> x=y=np.linspace(0,2*np.pi,101)\` \`>>> X,Y=np.meshgrid(y,x)\` +\`>>> z=np.sin(X)*np.sin(Y)\` \`>>> a=NXdata(z,[x,y])\` The first +positional argument is an NXfield or Numpy array containing the data, +while the second is a list containing the axes, again as NXfields or +Numpy arrays. In this example, the names of the arrays have not been +defined within an NXfield so default names were assigned. +\`>>> print a.tree\` ` \`[\`data:NXdata\`](data:NXdata) +` axis1 = float64(101)\` ` axis2 = float64(101)\` +` signal = float64(101x101)\` ` @axes = axis1:axis2\` +` @signal = 1\` However, names can be assigned explicitly when +creating the NXfield through the 'name' attribute. +\`>>> phi=np.linspace(0,2*np.pi,101)\` \`>>> data=np.sin(phi)\` +\`>>> a=NXdata(NXfield(data,name='intensity'),(NXfield(phi,name='polar_angle')))\` +\`>>> print a.tree\` [\`data:NXdata\`](data:NXdata) +` intensity = float64(101)\` ` @axes = polar_angle\` +` @signal = 1\` ` polar_angle = float64(101)\` ### Adding NeXus Data +to the Tree View If you create a NeXus group dynamically in the iPython +shell, it can be added to the tree view using the tree's add method. +\`>>> a=NXroot()\` \`>>> a.entry = NXentry()\` \`>>> tree.add(a)\` If +the group is not an NXroot group, the data will be wrapped automatically +in an NXroot group and given a default name that doesn't conflict with +existing tree nodes, e.g., w4. ### Plotting NeXus Data #### Python Shell +NXdata, NXmonitor, and NXlog groups all have a plot method, which +automatically determines what should be plotted. \`>>> data.plot()\` ![A +simple NeXpy plot|center](NeXPy-Simple_plot.png "fig:A simple NeXpy +plot|center") If the data is one-dimensional, it is possible to overplot +more than one data set using 'over=True'. Conventional Matplotlib +keywords can be used to change markers and colors. +\`>>> data.plot(log=True)\` +\`>>> data.plot(over=True, log=True, color='r')\` #### GUI Shell NXdata, +NXmonitor, and NXlog data can be plotted by right-clicking on the group +within the tree. The plot pane contains a toolbar to change axis or +signal intensity limits. The slider provides a graphical way of setting +minimum and/or maximum values or they can be typed into the text boxes. +![Axis Limits Toolbar|center|600px](Axis_Limits_Bar.png "fig:Axis Limits +Toolbar|center|600px") There are two checkboxes: Lock:If the maximum +and/or minimum values are not set to the limits, then this checkbox +locks the difference between the two. This checkbox disables setting of +the minimum value. You can step through the z-values with automatic +replots by selecting the maximum box and using the keyboard up and down +arrows or by clicking the box arrows. Autoscale: When stepping through +the z-values, this checkbox determines whether the plot should change +the color scale. ### Manipulating NeXus Data ### Slicing #### NXfield A +slice of an NXfield can be obtained using the usual python indexing +syntax. \`>>> x=NXfield(np.linspace(0,2*np.pi,101))\` +\`>>> print x[0:51]\` +\`[ 0. 0.06283185 0.12566371 ..., 3.01592895 3.0787608 3.14159265]\` +If either of the indices are floats, then the limits are set by the +values themselves (assuming the array is monotonic). +\`>>> print x[0.5:1.5]\` +\`[ 0.50265482 0.56548668 0.62831853 ..., 1.38230077 1.44513262 1.50796447]\` +#### NXdata It is also possible to slice whole NXdata groups. In this +case, the slicing works on the multidimensional NXfield, but the full +NXdata group is returned with both the signal data and the associated +axes limited by the slice parameters. If either of the limits along any +one axis is a float, the limits are set by the values of the axis. +\`>>> a=NXdata(np.sin(x),x)\` \`>>> a[1.5:2.5].x\` +\`NXfield(name=x,value=[ 1.57079633 1.72787596 1.88495559 ..., 2.19911486 2.35619449])\` +Unless the slice reduces one of the axes to a single item, the rank of +the data remains the same. To project data along one of the axes, and so +reduce the rank by one, the data can be summed along that axis using the +nxsum() method. This employs the Numpy array sum() method. +\`>>> x=y=NXfield(np.linspace(0,2*np.pi,41))\` +\`>>> X,Y=np.meshgrid(x,y)\` +\`>>> a=NXdata(np.sin(X)*np.sin(Y), (x,y))\` \`>>> print a.tree\` +[\`data:NXdata\`](data:NXdata) ` axis1 = float64(41)\` +` axis2 = float64(41)\` ` signal = float64(41x41)\` +` @axes = axis1:axis2\` ` @signal = 1\` +\`>>> print a.sum(0).tree\` [\`data:NXdata\`](data:NXdata) +` axis2 = float64(41)\` ` signal = float64(41)\` ` @axes = axis2\` +` @long_name = Integral from 0.0 to 6.28318530718 \` +` @signal = 1\` It is also possible to slice whole NXdata groups. In +this case, the slicing works on the multidimensional NXfield, but the +full NXdata group is returned with both the signal data and the +associated axes limited by the slice parameters. If either of the limits +along any one axis is a float, the limits are set by the values of the +axis. \`>>> a=NXdata(np.sin(x),x)\` \`>>> a[1.5:2.5].x\` +\`NXfield(name=x,value=[ 1.57079633 1.72787596 1.88495559 ..., 2.19911486 2.35619449])\` +Unless the slice reduces one of the axes to a single item, the rank of +the data remains the same. To project data along one of the axes, and so +reduce the rank by one, the data can be summed along that axis using the +nxsum() method. This employs the Numpy array sum() method. +\`>>> x=y=NXfield(np.linspace(0,2*np.pi,41))\` +\`>>> X,Y=np.meshgrid(x,y)\` +\`>>> a=NXdata(np.sin(X)*np.sin(Y), (x,y))\` \`>>> print a.tree\` +[\`data:NXdata\`](data:NXdata) ` axis1 = float64(41)\` +` axis2 = float64(41)\` ` signal = float64(41x41)\` +` @axes = axis1:axis2\` ` @signal = 1\` +\`>>> print a.sum(0).tree\` [\`data:NXdata\`](data:NXdata) +` axis2 = float64(41)\` ` signal = float64(41)\` ` @axes = axis2\` +` @long_name = Integral from 0.0 to 6.28318530718 \` +` @signal = 1\` ### Arithmetic Operations #### NXfield Arithmetic +operations can be applied to NXfield objects in much the same way as +scalars or Numpy arrays that they contain. This includes addition, +subtraction, multiplication and division, either with other NXfield +objects or to scalar numbers or Numpy arrays. +\`>>> x=NXfield(array((1.5,2.5,3.5),name='x')\` \`>>> x\` +\`NXfield(name=x,value=[ 1.5 2.5 3.5])\` \`>>> x+1\` +NXfield(name=x,value=\\[ 2.5 3.5 4.5\\]) \`>>> 2*x\` +\`NXfield(name=x,value=[ 3. 5. 7.])\` \`>>> x+x\` +\`NXfield(name=x,value=[ 3. 5. 7.])\` \`>>> x-x\` +\`NXfield(name=x,value=[ 0. 0. 0.])\` \`>>> x/x\` +\`NXfield(name=x,value=[ 1. 1. 1.])\` #### NXdata Similar operations +can also be performed on whole NXdata groups. If two NXdata groups are +to be added, the rank and dimension sizes of the main signal array must +match (although the names could be different). +\`>>> y=NXfield(np.sin(x),name='y')\` \`>>> y\` +\`NXfield(name=y,value=[ 0.99749499 0.59847214 -0.35078323])\` +\`>>> a=NXdata(y,x)\` \`>>> print a.tree\` +[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` +` y = [ 0.99749499 0.59847214 -0.35078323]\` ` @axes = x\` +` @signal = 1\` \`>>> print (a+1).tree\` +[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` +` y = [ 1.99749499 1.59847214 0.64921677]\` ` @axes = x\` +` @signal = 1\` \`>>> print (2*a).tree\` +[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` +` y = [ 1.99498997 1.19694429 -0.70156646]\` ` @axes = x\` +` @signal = 1\` \`>>> print (a+a).tree\` +[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` +` y = [ 1.99498997 1.19694429 -0.70156646]\` ` @axes = x\` +` @signal = 1\` \`>>> print (a-a).tree\` +[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` +` y = [ 0. 0. 0.]\` ` @axes = x\` ` @signal = 1\` +\`>>> print (a/2).tree\` [\`data:NXdata\`](data:NXdata) +` x = [ 1.5 2.5 3.5]\` ` y = [ 0.49874749 0.29923607 -0.17539161]\` +` @axes = x\` ` @signal = 1\` If data errors are included in the +NXdata group (with an additional array named 'errors'), then the errors +are propagated according to the operand. \`>>> print a.tree\` +[\`data:NXdata\`](data:NXdata) +` errors = [ 0.99874671 0.77360981 0.59226956]\` +` x = [ 1.5 2.5 3.5]\` ` y = [ 0.99749499 0.59847214 0.35078323]\` +` @axes = x\` ` @signal = 1\` \`>>> print (a+a).tree\` +[\`data:NXdata\`](data:NXdata) +` errors = [ 1.41244114 1.09404949 0.83759564]\` +` x = [ 1.5 2.5 3.5]\` ` y = [ 1.99498997 1.19694429 0.70156646]\` +` @axes = x\` ` @signal = 1\` diff --git a/source/content/NeXus_CIF_Integration.rst b/source/content/NeXus_CIF_Integration.rst new file mode 100644 index 00000000..ad495b73 --- /dev/null +++ b/source/content/NeXus_CIF_Integration.rst @@ -0,0 +1,57 @@ +===================== +NeXus CIF Integration +===================== + + +--- title: NeXus CIF Integration permalink: NeXus_CIF_Integration.html +layout: wiki --- NeXus CIF Integration ===================== At august, +22, 2013 some members of the NIAC will meet with representatives of the +CIF community and the IUCR in order to discuss a possible merger or +collaboration between NeXus and CIF. This wiki page is meant as a forum +to discuss the NIAC's position towards this integration. The initial +reaction was quite positive. Some Issues and Differences +=========================== - NeXus addresses a far greater range of +techniques and instrumentation then CIF does. - NeXus is about +hierarchical data storage and arrays - CIF so far prefers tables and +ASCII. - CIF (or Herbert) are very concerned about getting data out of +files into relational databases. The NeXus position as of now is to +store the necessary information in a NeXus file and have databases +populated by external scanners. Thus NeXus makes no assumptions about +database structures. - Both CIF and NeXus have dictionaries of +documented names. In many cases the dictionaries overlap. - NeXus is +based on HDF-5 and NXDL, CIF on the star ASCII file format and DDL as a +dictionary description language. There are many versions of DDL. - CIF's +ASCII file format is hitting a limit when storing raw data from modern +high speed detectors. Or sometimes even when storing atom positions for +huge protein structures. - Herbert has demonstrated that it is possible +to map CIF into NeXus. There are issues but no real show stoppers. - +DECTRIS is pushing the PX community towards HDF/NeXus through the use of +NeXus as the format for the upcoming EIGER series of detectors Questions +========= - How can CIF and NeXus interoperate and integrate? - Is CIF +ready to expand towards a more general data format? - How are the NeXus +and CIF dictionaries to be integrated? Or are they to be integrated? - +How will the new integrated file format be used? I assume for deposition +of data with IUCR journals. - What exactly is the interest of the CIF +community to collaborate with NeXus? - Which CIF concepts would need to +be included into NeXus to make it work? - How does CIF solve the issue: +we provide for everything - but in most cases really need only 20-30 +data items - This is the problem NeXus solves with application +definitions. The NIAC's Interest =================== - NeXus has always +tried to be inclusive: it is no use having a standard if everyone has an +own one! - Recognition by the IUCR would be a selling point for NeXus +and helpful. - Increased interoperability: Interoperability is the +raison d'etre of NeXus - Ideal world: use CIF, HDF5 and NeXus tools on +all files. To Discuss ========== - Anything to add to the statements +above? - NeXus tries to be inclusive: how far are we prepared to change? +Presumably this can only be answered after the meeting when we can see +more clearly what the merger means. It is also crystal clear that any +changes to NeXus for a CIF merger need proper process: discussion and +voting. ### CIF-NeXus Presentation The draft for the NeXus CIF +presentation can be downloaded here: [CIFNeXus.pdf](pdfs/CIFNexus.pdf +"wikilink"). May be we get a chance to discuss this on the next Telco. +Details of how NeXus and CDF might be mapped are contained on the +[ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") page +Conclusion ---------- 01/2015: A NXmx application definition has been +designed together with COMCIFS. The application definition was tested at +diamond and it works. This NXmx application definition together with a +few changes to NeXus to make it work were ratified at NIAC 2014. diff --git a/source/content/Nexus_41_Release_Notes.rst b/source/content/Nexus_41_Release_Notes.rst new file mode 100644 index 00000000..826be3e2 --- /dev/null +++ b/source/content/Nexus_41_Release_Notes.rst @@ -0,0 +1,42 @@ +====================== +Nexus 41 Release Notes +====================== + + +--- title: Nexus 41 Release Notes permalink: Nexus_41_Release_Notes.html +layout: wiki --- System Requirements ------------------- \**MXML XML +Parsing Library*\* Version 2.2.2 or higher of mxml is required. Earlier +versions have a bug and the XML API will not work. This package can be +downloded in [both source and binary rpm +form](http://www.easysw.com/~mike/mxml/software.php) and is also +available as part of [Fedora +Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT +NOTE: Debian also provides the mxml package, but it based on 2.0 and +will not work properly. Building Notes -------------- ### NAG F90/F95 +Compiler The NAG compiler needs the \*\*-mismatch*\* flag to be +specified or else it will not compile NXmodule.f90 This is achieve by +running configure with the \**FCFLAGS*\* environment variable set to +contain the flag e.g. env FCFLAGS="-mismatch" ./configure --with-f90=f95 +### HDF4 on Intel Macs There is a problem with the include file, hdfi.h +(normally in /usr/local/include). See for details of the modifications +necessary to fix it. New Features ------------ - New types NX\\_INT64 +and NX\\_UINT64 to suppport 64 bit integers (only available in HDF5 and +XML) [details](http://trac.nexusformat.org/code/ticket/87). - Python +bindings are now included in the Windows install kit +[details](http://trac.nexusformat.org/code/ticket/86) Changed Features +---------------- Known Issues ------------ Miscellaneous bug fixes +----------------------- The following items are bugs reported in +previous releases and resolved in the 4.1 release. - The Fortran 90 part +of testsuite failed with the Absoft compiler on MacOSX (it passed with +g95 and gfortran (4.2)) [details +here](http://trac.nexusformat.org/code/ticket/68) - NXputattr assumed +NULL termination of NX\\_CHAR attributes, which is usually the case in C +but not true for JAVA. A workaround is to add '\\\\0' manually [bug +report](http://trac.nexusformat.org/code/ticket/83) - pkgconfig issue +[bug report](http://trac.nexusformat.org/code/ticket/84) - Build issue +with MXML-2.3 [bug report](http://trac.nexusformat.org/code/ticket/91) - +XML buffer resizing performance issue [bug +report](http://trac.nexusformat.org/code/ticket/92) - Documentation is +now installed to datadir (/usr/share) [bug +report](http://trac.nexusformat.org/code/ticket/93) Upcoming Features +----------------- diff --git a/source/content/Nexus_42_Release_Notes.rst b/source/content/Nexus_42_Release_Notes.rst new file mode 100644 index 00000000..3502710b --- /dev/null +++ b/source/content/Nexus_42_Release_Notes.rst @@ -0,0 +1,59 @@ +====================== +Nexus 42 Release Notes +====================== + + +--- title: Nexus 42 Release Notes permalink: Nexus_42_Release_Notes.html +layout: wiki --- 4.2.1 ----- The following new featues have been added: +- NXbrowse now has readline support (i.e. previous command line recall +and TAB completion of entry names) - new API functions NXgetpath() and +NXgetversion() added - NXgetnextentry() now uses less stack space 4.2.0 +----- System Requirements ------------------- \**MXML XML Parsing +Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions +have a bug and the XML API will not work. This package can be downloded +in [both source and binary rpm +form](http://www.easysw.com/~mike/mxml/software.php) and is also +available as part of [Fedora +Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT +NOTE: Debian also provides the mxml package, but it based on 2.0 and +will not work properly. \**Python Interface*\* You will need both the +numpy and ctypes modules to be available. These are provided in both the +Fedora and EPEL repositories. Building Notes -------------- ### NAG +F90/F95 Compiler The NAG compiler needs the \*\*-mismatch*\* flag to be +specified or else it will not compile NXmodule.f90 This is achieve by +running configure with the \**FCFLAGS*\* environment variable set to +contain the flag e.g. env FCFLAGS="-mismatch" ./configure --with-f90=f95 +### HDF4 on Intel Macs There is a problem with the include file, hdfi.h +(normally in /usr/local/include). See for details of the modifications +necessary to fix it. New Features ------------ ### C++ Interface +(provided by [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") +and [Peter Peterson](User%3APeter_Peterson.html "wikilink")) See the +[doxygen +documentation](http://download.nexusformat.org/doxygen/html/classNeXus_1_1File.html) +and [NeXus API test +program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx). +A C++ Stream Like interface is also supported - the idea is to provide +an IOSteam like interface and allow you to type // create an entry and a +data item File nf(fname, NXACC_CREATE); nf << Group("entry1", "NXentry") +<< Data("dat1", w, "int_attr", 3); nf.close(); File nf1(fname, +NXACC_RDWR); // add a double_attr to an existing setup nf1 >> +Group("entry1", "NXentry") >> Data("dat1") << Attr("double_attr", 6.0); +nf1.close(); // read back data items File nf2(fname, NXACC_READ); nf2 >> +Group("entry1", "NXentry") >> Data("dat1", w1, "int_attr", i, +"double_attr", d); // alternative way to read d1 nf2 >> Data("dat1") >> +Attr("double_attr", d1); See also the [NeXus API test +program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx) +### IDL Interface (provided by Jussi Kauppila and [Mark +Koennecke](User%3AMark_Koennecke.html "wikilink")) There is a new +interface to RSI's Interactive Data Language, IDL for NeXus. This +interface has to be considered beta. Nevertheless it is working most of +the time. Known issues include: - Compressed reading and writing do not +work for HDF-4 files, probably because of a library version conflict on +libz. ### Python Interface There is now, thanks to [Paul +Kienzle](User%3APaul_Kienzle.html "wikilink"), a supported interface for +the python scripting language. Arrays are stored in numpy arrays and +thus allow for efficient data manipulations. Changed Features +---------------- Known Issues ------------ See the comments on the IDL +interface. Miscellaneous bug fixes ----------------------- The following +items are bugs reported in previous releases and resolved in the 4.2 +release. Upcoming Features ----------------- diff --git a/source/content/Nexus_43_Release_Notes.rst b/source/content/Nexus_43_Release_Notes.rst new file mode 100644 index 00000000..78cd258d --- /dev/null +++ b/source/content/Nexus_43_Release_Notes.rst @@ -0,0 +1,57 @@ +====================== +Nexus 43 Release Notes +====================== + + +--- title: Nexus 43 Release Notes permalink: Nexus_43_Release_Notes.html +layout: wiki --- 4.3.0rc1 -------- Dowload the release candidate from +the [NeXus download +page](http://download.nexusformat.org/kits/nx43testing.shtml). Issues +reported with this release [can be found +here](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority) +and results to testing on [NeXus\\_43\\_Testing](NeXus_43_Testing.html +"wikilink") New Features ------------ - Links to external files via the +NeXus external linking mechanism have now been enhanced to take +advantage of native HDF5 external linking. Previously a nexus external +file link was only visible to NeXus aware programs, and this will +continue to be the case for XML and HDF4 based files. In the case of +files created with the HDF5 underlying format, external file links will +now be visible to any HDF5 (1.8.\\\*) aware program. - HDF5 based files +can now have multiple unlimited dimensions (previously only one was +allowed) - New API functions have been added to handle very large +arrays. Most original NeXus functions had array dimensions of type int +which restricted the maximum size of an array. New functions with a 64 +suffix have been added which use int64\\_t rather than int - existing +functions continue to work as normal, so there is no need to update code +unless you want to make use of the larger dimensions. - A new python +tree API has been added (note: need to add link for more finformation) - +A GUI java based NXvalidate program has now been added - The NeXus API +now ensures thread safety, even if the underlying HDF/XML library is not +built that way. The current approach would not allow any concurrency in +writing, but HDF5 does not support this anyway at the moment. - A new +function NXreopen() has been added which will create additional NXhandle +objects from an existing NXhandle, allowing you to have several NXhandle +structures referring to the same file. This can give a large performance +gain if you need to write to different parts of a file as separate +threads can be created with their own NXhandles, thus removing the need +to open and close data groups that can lead to unnecessary flushing to +disk etc. - New application NXtraverse added - TODO: other applications +- anything of note changed in NXtranslate, NXsummary etc? Changed +Features ---------------- - The HDF5 1.6.\\\* series libraries are no +longer supported - NeXus now requires 1.8.\\\* or higher. The 1.6.\\\* +series is now very old and moving to 1.8.\\\* has allowed us to make use +of new and improved features, such as native external file linking (see +above) System Requirements ------------------- \**MXML XML Parsing +Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions +have a bug and the XML API will not work. This package can be downloded +in [both source and binary rpm +form](http://www.easysw.com/~mike/mxml/software.php) and is also +available as part of [Fedora +Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT +NOTE: Debian also provides the mxml package, but it based on 2.0 and +will not work properly. \**Python Interface*\* You will need both the +numpy and ctypes modules to be available. These are provided in both the +Fedora and EPEL repositories. \**HDF5 Version*\* Only the HDF5-1.8.\\\* +series (and above) is now supported. Building Notes -------------- Known +Issues ------------ Miscellaneous bug fixes ----------------------- +Upcoming Features ----------------- diff --git a/source/content/Nexus_4_Release_Notes.rst b/source/content/Nexus_4_Release_Notes.rst new file mode 100644 index 00000000..196fe04a --- /dev/null +++ b/source/content/Nexus_4_Release_Notes.rst @@ -0,0 +1,57 @@ +===================== +Nexus 4 Release Notes +===================== + + +--- title: Nexus 4 Release Notes permalink: Nexus_4_Release_Notes.html +layout: wiki --- System Requirements ------------------- \**MXML XML +Parsing Library*\* Version 2.2.2 of mxml is required. Earlier versions +have a bug and the XML API will not work. This package can be downloded +in [both source and binary rpm +form](http://www.easysw.com/~mike/mxml/software.php) and is also +available as part of [Fedora +Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT +NOTE: Debian also provides the mxml package, but it based on 2.0 and +will not work properly. Building Notes -------------- ### NAG F90/F95 +Compiler The NAG compiler needs the \*\*-mismatch*\* flag to be +specified or else it will not compile NXmodule.f90 This is achieve by +running configure with the \**FCFLAGS*\* environment variable set to +contain the flag e.g. env FCFLAGS="-mismatch" ./configure --with-f90=f95 +New Features ------------ The following items are features added to the +NeXus API to provide new functionality to the core library or to assist +in the build process. - Extended XML-API to handle unlimited dimensions +- Add building of Doxygen documentation - Add support for two +dimensional character arrays (HDF4 and HDF5 only) - Added group +attribute support to HDF4 (2006/05/02). Requires HDF4 version (???) - +Add NXmakenamedlink (2007/01/09) to all three file formats (external +linking) - Add NXprintlink - Improved link testing in test suite - API +can now read generic HDF5 files, such as those produced by matlab - Add +facility to enable/disable error reporting - New NXsummary tool for +summarising contentes of a NeXus file - Fortran 90 API now works with +gfortran 4.2 and above as well as with G95 - PYTHON and TCL bindings +provided via a [SWIG interface](http://www.swig.org/) - Additional +NXtranslate translators: SPEC, ESRF-EDF Changed Features +---------------- The following aspects of the API have changed in a +potentially non-backward compatible way - The JAVA API now uses +org.nexusformat rather than gov.anl.neutron.nexus Known Issues +------------ The main problems are summarised here - for a complete list +see [all reported 4.0.0 +issues](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority) +- The Fortran 90 part of testsuite fails with the Absoft compiler on +MacOSX (it passes with g95 and gfortran (4.2)) [details +here](http://trac.nexusformat.org/code/ticket/68) - NXputattr assumes +NULL termination of NX\\_CHAR attributes, which is usually the case in C +but not true for JAVA. A workaround is to add '\\\\0' manually. This +error has been fixed in the code and will be available in the next +release. More information is available in the [bug +report](http://trac.nexusformat.org/code/ticket/83) Miscellaneous bug +fixes ----------------------- The following items are bugs reported in +the 3.x releases and resolved for the 4.0 release. - Leading and +trailing whitespace is stripped from char data on a read; this can be +disabled by passing the NXACC\\_NOSTRIP option to NXopen - Fix problems +with MXML (what problems?) - Improve test procedures when not all +libraries are present - Correct sourcepath for javadoc - Updated +makefiles for swig bindings (python, tcl) Upcoming Features +----------------- Work on these features is still in progress. They are +expected to be part of the NeXus 4.1 release. - Add skeletal utility +functions (NXU) to API (2005/04/26) diff --git a/source/content/OO-NeXus.rst b/source/content/OO-NeXus.rst new file mode 100644 index 00000000..5a91b477 --- /dev/null +++ b/source/content/OO-NeXus.rst @@ -0,0 +1,79 @@ +======== +OO-NeXus +======== + + +--- title: OO-NeXus permalink: OO-NeXus.html layout: wiki --- Object +Oriented NeXus --------------------- This is a page to discuss the +various options we have for defining both object oriented instrument +definitions and an object oriented NeXus-API. The initial content of +this page results from discussions at the NIAC meeting 2007 at HMI, +Berlin and between Mark Koennecke and Nick Hauser later on. ### Summary +of OO Discussions at the NIAC Meeting 2007 at HMI - People seem to be +happy to use a NeXusFile object with methods like nf.makegroup(..), +nf.opengroup(..) etc. as a low level object oriented API for NeXus +files. This approach only encapsulates the file object and has already +been implemented in the Java NeXus API. - A higher level NeXus OO-API +should give access to the NeXus classes as defined in the instrument +definitions. ### Current State of the NeXus Base Classes The current +NeXus base classes used for instrument definitions are not really base +classes. They are rather dictionaries or templates which define names +for data items which may be present in a NeXus base class depending on +the actual configuration of the instrument. As such these NeXus base +classes contain lots of fields and concepts which often confuse both the +initiated and the uninitiated. ### OO-NeXus: Two Paths into the Future +As things are we have two ways how to proceed with an object oriented +NeXus-API and object oriented definitions: - Rework the NeXus base +classes in a fully object oriented way using polymorphism and +inheritance. - A direct mapping of current neXus base classes to +objects. ### Path 1: OO Rework of the NeXus Classes This means to +perform a full object oriented analysis of the NeXus base classes using +polymorphism and inheritance. This was suggested by Darren Kelly at the +NIAC meeting 2006 at ILL. An example of a [possible class +hierarchy](media:NeXusOBJ.pdf.html "wikilink") was given by Mark +Koennecke at the NIAC meeting 2007 at HMI. There are some advantages to +this approach: - Different things, like different detectors, have +different names and this makes the base classes easier to understand. It +is easier to select NXtofareadetector rather then locate all the fields +necessary for such a detector from a dictionary. - The use of +inheritance makes the definitions easier to maintain because +duplications can be avoided through inheritance. - Choices in the +definitions, like the choice of coordinate system or shapes, can be made +explicit by abstract classes and polymorphism. - Fully OO definitions +can be mapped to appropriate classes in \*all\* object oriented +programming languages. But there are serious drawbacks to this approach +as well: - We need a much extended set of classes. - Most importantly: +we break backwards compatability: OO-NeXus files would have a deeper +nesting structure and other classes. ### Path 2: Map the current NeXus +Classes to Objects This means that we directly map the current NeXus +base classes hook, line and sinker into objects in an OO programming +language. This has the huge advantage of backwards compatability: Old +and new NeXus files look alike. We also would not need to vote on new +base classes. But there are disadvantages to this approach, too: - We +loose the improved maintainability and clarity of the full OO-approach. +But this can be overcome by using the full OO-classes plus some +production rules as a tool for filling the actual NeXus base classes. An +example: you have a TOF area detector? Then suck all fields for that +class plus the inherited ones into your NXdetector class. Make decisions +on choices like coordinate system on the way. - The resulting API +classes become ambiguous: i.e. different API detector classes loaded +from different files will have different contents. This is less of a +problem for dynamic object systems like the ones in python, CLOS and +smalltalk. Dynamic object system in this context means that fields can +be added at runtime. But there are many interesting OO programming +languages which do not feature such an open type system: most notably +C++ and Java. The problem with such languages can be solved in a number +of ways: - NeXus base classes become catchalls: i.e. they have fields +for all data items which may possibly be there. And throw errors when an +access for an field without data is attempted. This is ugly. - Use some +form of RunTime Type Information (RTTI). This can take the form of a +group attribute with a possible name like subtype. Then the OO-API can +read this attribute and create an appropriate class for this NeXus base +class as on Path 1. Example: the subtype is NXtofareadetector. Then +create a NXtofareadetector API class and fill its data fields from the +content of the file. ### Questions? - Where do we go? Path 1? Path 2? Or +a yet to be defined Path 3? - Do we have more options? ### Conclusion +01/2015: This discussion is obsolete. At NIAC 2014 it was decided to +accept interfaces as an experimental feature instead. But this text +still serves as valid statements about the difficulties which the NIAC +encountered when considering to implement OO in NeXus diff --git a/source/content/Object_Oriented_Interface.rst b/source/content/Object_Oriented_Interface.rst new file mode 100644 index 00000000..84434d6a --- /dev/null +++ b/source/content/Object_Oriented_Interface.rst @@ -0,0 +1,26 @@ +========================= +Object Oriented Interface +========================= + + +--- title: Object Oriented Interface permalink: +Object_Oriented_Interface.html layout: wiki --- For object oriented +languages (C++, Java, and Python) it would be good if there were a +common object oriented way of working with NeXus files. This page is set +up for determining the public methods of a NeXusFile object. class +NeXusFile{ public: enum access(READ=NXACC_READ, WRITE=NXACC_CREATE, +WRITE_HDF4=NXACC_CREATE4, WRITE_HDF5=NXACC_CREATE5, +READ_WRITE=NXACC_RDWR); enum +compress(COMP_LZW=NX_COMP_LZW,COMP_HUF=NX_COMP_HUF,COMP_RLE=NX_COMP_RLE,COMP_NONE); +// constructor, default mode is read NeXusFile(std::string &filename, +const access mode=READ); // opens the specified absolute path in the +file. the path is // a '/' delimited list of the names to open. If any +portion of //the path does not exist an exception will be thrown. void +openPath(const std::string &path); // creates and opens a group. this +throws an exception when fails void make_group(const std::string &name, +const std::string &class); // creates and opens a data. this throws an +exception when fails void make_data(const std::string &name, const +std::string &type, const std::vector &dimensions, const compress +comp_type=COMP_NONE); }; [Peter Peterson](User%3APfpeterson.html +"wikilink"), SNS Conclusion ---------- 01/2015 This is now obsolete. +Implementations in C++ and python are available. diff --git a/source/content/Objects_or_Interfaces.rst b/source/content/Objects_or_Interfaces.rst new file mode 100644 index 00000000..7a9f303b --- /dev/null +++ b/source/content/Objects_or_Interfaces.rst @@ -0,0 +1,357 @@ +===================== +Objects or Interfaces +===================== + +--- +title: Objects or Interfaces +permalink: Objects_or_Interfaces.html +layout: wiki +--- + +Objects or Interfaces +===================== + +There is a need to review the NeXus base classes. They confuse people because of their unstructured representation of, in some cases, many, many fields. I see two main ways how this can be accomplished: Object orientation and Inheritance or Interfaces and Composition. + +Object Orientation and Inheritance +---------------------------------- + +This should be pretty clear: we define an inheritance hierarchy of base classes. For example: ``NXarea_detector:NXdetector:NXbeamline_component`` +would mean ``NXarea_detector`` inherits from ``NXdetector`` and from ``NXbeamline_component``. Choosing such a solution has a couple of consequences: +- We would need to define a great number of new NeXus base classes. This can be even more confusing. +- It is not clear how inheritance can be represented in a data file. +- The OO concept does not fit well: +- Normally OO means encapsulating behavior with data. NeXus has no behavior, only data. +- Some people say OO is really about message passing. There are no messages (yet) in NeXus. +- I can imagine situations when single inheritance is not enough and we need to deal with multiple inheritance, with all its ugliness. + +Interfaces and Composition +-------------------------- + +This would imply that we define interfaces in addition to the base classes. For example, ``beamline_component``, ``detector``, ``area_detector``, etc. A base class would then get an ``implements`` field or attribute which details which interfaces the base class implements. To stay with the example above: ``NXdetector`` would have an ``implements`` field with: ``Iarea_detector:Ibeamline_component``. A base class would then be defined by the interfaces it can implement, plus mandatory data fields. Such an approach has the following consequences: +- Backwards compatibility is maintained. We add a new feature to NeXus. No need to generate new base classes. +- No issues with multiple inheritance. +- An application can inspect the ``implements`` field and from this can decide what type of detector/component it is dealing with. +- I have no clue how this can be mapped into NXDL. + +NeXus Interfaces: A Possible Implementation +=========================================== + +This is a more detailed outline of how NeXus Interfaces might look in advance of a vote on the issue. + +The Problem +----------- + +Quite a number of NeXus base classes have become pretty big. This is due to the fact that NeXus base classes are dictionaries which hold field names for all sorts of data items which can be associated with a given NeXus component. A good example is ``NXdetector``: it holds data items to describe all sorts of detectors, single, area, arbitrarily shaped, with TOF or without, etc. Many users are confused by NeXus base classes because they mistakenly think that they have to implement all data items even if they do not make any sense for their application. A better structure would clearly help here. + +One way to structure this better would be inheritance. This would mean introducing more NeXus base classes, for example: ``NXsingle_detector``, ``NXarea_detector``, ``NXtof_area_detector``, etc., which form a hierarchy rooted at ``NXbeamline_component``. The applicable fields for a component would then be derived by traveling the hierarchy. This comes at the expense of creating many more backwards incompatible classes. Moreover, the inheritance hierarchy cannot easily be encoded in an HDF5 file. Thus, a program looking for ``NXdetector`` would need to know about all its incarnations from an external source. This raises issues about the maintainability of the external sources. + +The second option to be discussed is to use interfaces, like in Java or Go. This is a separate set of finer-grained dictionaries which are used to build up the NeXus base classes. + +Examples +-------- + +How could the interface method look like for ``NXdetector``? To this purpose, let us define a set of interfaces to work this. I use the prefix ``NXIF`` here for interfaces but this is perfectly arbitrary. + +``NXIFbeamline_component``: + ``distance`` + ``@type=translation`` + ``@vector=0,0,1`` + + ``height`` + ``@type=translation`` + ``@vector=0,1,0`` + + ``x_translation`` + ``@type=translation`` + ``@vector=1,0,0`` + + ``rotation_angle`` + ``@type=rotation`` + ``@vector=0,1,0`` + + ``azimuthal_angle`` + ``@type=rotation`` + ``@vector=0,0,1`` + + ``meridional_angle`` + ``@type=rotation`` + ``@vector=1,0,0`` + +is an interface meant to be implemented by all beamline components. Its +purpose is to position the component. +NXIFmeta: +``type\`` +``description\`` +An interface which contains general meta data about +anything +NXIFsingle: +``data\`` ``@signal=1\`` +A simple interface for data from a single detector +NXIFscanned\\_single: + +``data[NP]`` + ``@signal=1`` + A single detector scanned. NP is the number of scan points. + +NXIFarea_detector: + +``data[xdim, ydim]`` + ``@signal=1`` + ``@axes=x_pixel_offset, y_pixel_offset`` + +``x_pixel_offset[xdim]`` + ``@type=translation`` + ``@vector=1,0,0`` + +``x_pixel_size[xdim]`` + +``y_pixel_offset[ydim]`` + ``@type=translation`` + ``@vector=0,1,0`` + +``y_pixel_size[ydim]`` + +An interface for an area detector. +x\\_pixel\\_offset and y\\_pixel\\_offset describe the grid of the +detector in the detector coordinate system. The origin is the mechanical +center of the area detector. If the pixel sizes cannot be determined +from the grid span by x\\_pixel\\_offset and y\\_pixel\\_offset, they +are given in x,y\\_pixel\\_size. NXIFscanned\\_area\\_detector: + +``data[xdim, ydim]`` + ``@signal=1`` + ``@axes=x_pixel_offset, y_pixel_offset`` + +``x_pixel_offset[xdim]`` + ``@type=translation`` + ``@vector=1,0,0`` + +``x_pixel_size[xdim]`` + +``y_pixel_offset[ydim]`` + ``@type=translation`` + ``@vector=0,1,0`` + +``y_pixel_size[ydim]`` + +An interface for a +scanned area detector. The meaning of x,y\\_pixel\\_offset etc are the +same as above. One might consider to allow inheritance for Interfaces. +NXIFtof\\_area\\_detector: + +``data[xdim, ydim, ntbin]`` + ``@signal=1`` + ``@axes=x_pixel_offset, y_pixel_offset, time_binning`` + +``x_pixel_offset[xdim]`` + ``@type=translation`` + ``@vector=1,0,0`` + +``x_pixel_size[xdim]`` + +``y_pixel_offset[ydim]`` + ``@type=translation`` + ``@vector=0,1,0`` + +``y_pixel_size[ydim]`` + +``time_binning[ntbin]`` + +An interface for an area detector used in time +of flight mode. NXIF\\_arbitrary\\_detector: + +``data[ndet]`` + ``@signal=1`` + +``distance[ndet]`` + ``@type=translation`` + ``@vector=0,0,1`` + +``height[ndet]`` + ``@type=translation`` + ``@vector=0,1,0`` + +``x_translation[ndet]`` + ``@type=translation`` + ``@vector=1,0,0`` + +``rotation_angle[ndet]`` + ``@type=rotation`` + ``@vector=0,1,0`` + +``azimuthal_angle[ndet]`` + ``@type=rotation`` + ``@vector=0,0,1`` + +``meridional_angle[ndet]`` + ``@type=rotation`` + ``@vector=1,0,0`` + +This is an interface to describe a highly +irregular detector. A detector which can only be described by giving +full positional and rotational coordinates for each detector element. +ISIS has this kind of detectors. NXIFtof\\_arbitrary\\_detector: + +``data[ndet, ntbin]`` + ``@signal=1`` + +``distance[ndet]`` + ``@type=translation`` + ``@vector=0,0,1`` + +``height[ndet]`` + ``@type=translation`` + ``@vector=0,1,0`` + +``x_translation[ndet]`` + ``@type=translation`` + ``@vector=1,0,0`` + +``rotation_angle[ndet]`` + ``@type=rotation`` + ``@vector=0,1,0`` + +``azimuthal_angle[ndet]`` + ``@type=rotation`` + ``@vector=0,0,1`` + +``meridional_angle[ndet]`` + ``@type=rotation`` + ``@vector=1,0,0`` + +``time_binning[ntbin]`` + +This is an interface to describe a highly irregular detector used in time of flight mode. The rest is shared with above. + +To be continued... + +How to use such Interfaces +-------------------------- + +Of course, there have to be rules on how to use NeXus Interfaces. The rule set is simple: +1. A group attribute ``implements`` is added, which is a comma-separated list of the interfaces implemented by the component. +2. The software can then expect the fields defined by the interfaces to appear in the component class. Whether this is mandatory or optional is to be discussed. +3. A given NeXus base class can only implement a sensible set of interfaces. It would be dubious if ``NXdetector`` implements ``NXIFspallation_neutron_source``. + +An example is in order. Consider: +``NXdetector`` +``@implements=NXIFbeamline_component, NXIFarea_detector`` + +Then the following fields go into ``NXdetector``: + +``@implements=NXIFbeamline_component, NXIFarea_detector`` + +``distance`` + ``@type=translation`` + ``@vector=0,0,1`` + +``height`` + ``@type=translation`` + ``@vector=0,1,0`` + +``x_translation`` + ``@type=translation`` + ``@vector=1,0,0`` + +``rotation_angle`` + ``@type=rotation`` + ``@vector=0,1,0`` + +``azimuthal_angle`` + ``@type=rotation`` + ``@vector=0,0,1`` + +``meridional_angle`` + ``@type=rotation`` + ``@vector=1,0,0`` + +``data[NP, xdim, ydim]`` + ``@signal=1`` + ``@axes=scan_axis, x_pixel_offset, y_pixel_offset`` + +``x_pixel_offset[xdim]`` + ``@type=translation`` + ``@vector=1,0,0`` + +``x_pixel_size[xdim]`` + +``y_pixel_offset[ydim]`` + ``@type=translation`` + ``@vector=0,1,0`` + +``y_pixel_size[ydim]`` + +Another example: a +scanned single detector \``NXdetector\`` + +``@implements=NXIFbeamline_component, NXIFscanned_single_detector`` + +``distance`` + ``@type=translation`` + ``@vector=0,0,1`` + +``height`` + ``@type=translation`` + ``@vector=0,1,0`` + +``x_translation`` + ``@type=translation`` + ``@vector=1,0,0`` + +``rotation_angle`` + ``@type=rotation`` + ``@vector=0,1,0`` + +``azimuthal_angle`` + ``@type=rotation`` + ``@vector=0,0,1`` + +``meridional_angle`` + ``@type=rotation`` + ``@vector=1,0,0`` + +``data[NP]`` + ``@signal=1`` + +Advantages and Disadvantages +---------------------------- + +### Advantages + +What would be the advantages of the NeXus interface approach: +- We can be far more specific about what goes into a base class for a use case than with the current base class description. +- We can do so without cluttering the namespace with even more base classes. +- User confusion is reduced. +- The approach is easily extended to new use cases by defining a new interface for the new use case. +- The interface approach is backwards compatible. We add to NeXus rather than defining something entirely new. Old files can be updated to the way of the interface by adding required fields and the interface group attribute. + +### Disadvantages + +- It is yet another concept and set of rules to teach and learn. + +NeXus Interfaces and Mapping to CIF +----------------------------------- + +When mapping between NeXus and CIF there is a major difficulty: the way multiples are handled in CIF and NeXus. Consider an instrument with two detectors. In NeXus, this would map to two ``NXdetector`` classes and two ``NXdata`` classes with different names within the hierarchy. In CIF, one would loop over detector name and all the fields of the base class. A loop is basically a table. The above example would thus map to a table with ``detector_name`` and all the fields of the base class as columns and two rows indexed by detector name. With the current size of the NeXus base classes, this would make for unwieldy and sparsely populated tables. With NeXus Interfaces, this becomes much more workable. Each NeXus interface would map to a CIF category (table) and there would be other categories (tables) which detail the list of components of the instrument and which interfaces are implemented by each component. Herbert solved the problem in his concordance document by appending the NeXus base class name and the component name together. But this makes for long and unpredictable CIF category (table) names. + +Where To Go From Here? +---------------------- + +1. All the confusion generated by this document must be resolved. +2. The big thing is: do we want NeXus Interfaces? This requires a vote. +3. Which rules do we use to write NeXus Interfaces? I made something up for this example. But, of course, this could be different. +4. How do we document NeXus interfaces? NXDL would be the first call, but... +5. Polishing up NeXus interfaces most likely requires a code camp. + +------------------------------------------------------------------------ + +More on Interfaces +------------------ + +There is a branch, interfaces, on the NeXus definitions GitHub area which generates a version of the NeXus manual with Interfaces fully worked out. Well, how it should look like in my humble opinion. + +Update: 01/2015 +--------------- + +At NIAC 2014 it was decided to accept NeXus Interfaces as an experimental feature. This means that a special section of the manual will be written which uses interfaces. This section will be clearly labeled as experimental. diff --git a/source/content/Proposal_NeXus_Coordinates.rst b/source/content/Proposal_NeXus_Coordinates.rst new file mode 100644 index 00000000..6159084b --- /dev/null +++ b/source/content/Proposal_NeXus_Coordinates.rst @@ -0,0 +1,31 @@ +========================== +Proposal NeXus Coordinates +========================== + +--- +title: Proposal NeXus Coordinates +permalink: Proposal_NeXus_Coordinates.html +layout: wiki +--- + +The current definition for NXdata groups assumes that the data (or signal) SDS is, in general, a multidimensional array that can be plotted against one or more independent axes, equal in number to the rank of the signal SDS. These axes are defined through the axes attribute. However, there are cases where the data represent a set of pixels that are defined by their coordinates, *i.e.*, they do not form a contiguous array. The data would then consist of a one-dimensional array. At present, such data can only be plotted against a single one-dimensional axis even if it is distributed in two-, three-, or higher-dimensional space. If we are to have a standard method of plotting such data, we need to have a way of identifying the pixel coordinates. + +Proposal +-------- + +An extra attribute be defined for a data (or signal) SDS called coordinates, which would consist of a text string containing the names of one or more SDSs that represent the coordinates of the signal SDS. The names will be separated by the same delimiters allowed for the axes attribute. The signal SDS must be one-dimensional. There are two scenarios: +1. The coordinates represent the centre of each pixel, so each coordinate SDS is also one-dimensional of the same length as the signal SDS. +2. The coordinates represent the vertices of each pixel, so each coordinate SDS would be two-dimensional, with the slower changing dimension having the same length as the signal SDS and the faster changing dimension having a length of the number of vertices (=2\ :sup:`n` for cartesian coordinates, where *n* is the number of coordinate SDSs). In that case, an attribute number\_vertices containing an integer specifying the number of vertices will be added to the signal SDS. + +Discussion +---------- + +Here is an example NXdata group: +One problem is that the coordinates are not necessarily orthogonal. This is the case for the above example, in which the spherical polar coordinates, polar\_angle and azimuthal\_angle, are not orthogonal. Any plotting program will have to know that SDSs with those particular names have to be treated differently from those that are orthogonal. There may be a case for the standard stating how to handle a number of specific instances, *e.g.*, spherical polar coordinates, reciprocal-space coordinates in symmetries lower than orthorhombic, *etc*. In cases where the plotting program is only able to handle pixel centres, but vertices are provided, the pixel centres would have to be approximated by the average value of the vertices for each coordinate. + +I propose to present this for discussion and a possible vote at the upcoming NIAC meeting at the SNS on October 7-8. Ray 19:08, 29 September 2010 (UTC) + +Conclusion +---------- + +01/2015: This has been superseded by the new axes annotation scheme decided at NIAC 2014. \ No newline at end of file diff --git a/source/content/Proposal_NeXus_Errors.rst b/source/content/Proposal_NeXus_Errors.rst new file mode 100644 index 00000000..ac092918 --- /dev/null +++ b/source/content/Proposal_NeXus_Errors.rst @@ -0,0 +1,28 @@ +===================== +Proposal NeXus Errors +===================== + +--- +title: Proposal NeXus Errors +permalink: Proposal_NeXus_Errors.html +layout: wiki +--- + +The current definition for the NXdata group (which, incidentally, is misleading on the wiki since it implies that the data SDS should be called data) defines an error SDS with the name errors (in this case, the name *is* fixed). This is a workable solution when there is only one signal. However, the original plan for NXdata groups (again, not particularly clear on the wiki) was that they could contain more than one data SDS. The primary one has the attribute signal=1, but secondary data sets with signal=2, etc., were to be allowed. This is of particular importance to the synchrotron community, who frequently measure, for example, fluorescence counts in addition to the main detector counts. In principle, each one of these could have their own errors, but there is no way in the current scheme to associate different SDSs with those errors. + +Proposal +-------- + +An extra attribute be defined for each data (or signal) SDS called errors, which would be a text string defining the name of the SDS within the same NXdata group to contain the errors SDS. The rank and dimensions of the errors SDS must match the signal SDS. The original method, *i.e.*, associating an SDS with the name errors with the primary signal SDS will be allowed in cases where there is no ambiguity, and for reasons of backward compatibility. + +Discussion +---------- + +This is analogous to the use of the axes attribute to define the independent axes associated with each signal SDS. However, this attribute will only ever contain one name, since there is no reason to associate more than one error array with a single signal array. Here is an example NXdata group using the proposed new attribute: + +I propose to present this for discussion and a possible vote at the upcoming NIAC meeting at the SNS on October 7-8. Ray 16:29, 29 September 2010 (UTC) + +Conclusion: 01/2015 +------------------- + +At NIAC 2014, the NIAC ratified a scheme for describing uncertainties. See 2014_axes_and_uncertainties and, in a short while, the NeXus manual. \ No newline at end of file diff --git a/source/content/Proposal_to_Simplify_Nexus.rst b/source/content/Proposal_to_Simplify_Nexus.rst new file mode 100644 index 00000000..615598b9 --- /dev/null +++ b/source/content/Proposal_to_Simplify_Nexus.rst @@ -0,0 +1,86 @@ +========================== +Proposal to Simplify Nexus +========================== + +--- +title: Proposal to Simplify Nexus +permalink: Proposal_to_Simplify_Nexus.html +layout: wiki +--- + +Proposal to simplify NeXus +========================== + +*E. Farhi (ILL), A. Gotz (ESRF), R. Ghosh (ILL), D. Richard (ILL), M. Johnson (ILL), R. Wilcke (ESRF)* + +This document presents conclusions and proposals from the NeXus ILL/ESRF Local Advisory Committee (NLAC). + +NeXus *raison d'être* +===================== + +- NeXus is an exchange format for all neutron, X-ray, and muon scattering techniques in large facilities. +- This implicitly limits the scope of NeXus to all that is common to these techniques, while excluding instrument/technique peculiarities. Further descriptions (instrument details) are in principle out of scope, but may be specified as extensions to the basic requirements. +- The scientific data set is intrinsically the most important to physicists, compared with the exact instrument definition (which is essentially relevant for instrument debugging and simulation purposes). The official 'base' NeXus format should focus on the former rather than the latter. +- NeXus must be easy to use. + - This means that there is an efficient API (and this is the case, thanks to Mark K.) + - At the same time, NeXus should be flexible enough to potentially evolve from HDF and XML towards other physical storage formats (Open Document, ...) +- NeXus must be appealing for people to voluntarily use it (in programs). + - This means that the format structure must be clear, simple, and easy to understand. This is probably the most important point, otherwise it will push people to develop their own NeXus format, or even use their own non-NeXus format (based on HDF or not). +- The NeXus web server must present usage examples and distribute associated software. +- NeXus must be flexible and expandable. + - This means that there should be a recommended mechanism for extension of the 'base' NeXus into 'proprietary' NeXus. At the same time, a clear statement must be made concerning a limited number of absolute requirements, as well as 'official' recommendations for extensions. +- The scientific data must be immediately visible in the NeXus structure, as well as essential parameters for the data analysis. This means that the NXdata must be directly in the NXentry, and that essential parameters should be there as well (in an NXparameters class, see below). Further information (NXinstrument, ...) is optional. + +Format requirements +------------------- + +### Proposal R1: Simplified NeXus hierarchy + +The base NeXus format should contain the following hierarchy: +- `NXentry` +- `NXdata` +- `NXsample` +- `NXparameters` + +Other classes should be mentioned as optional, even though NXmonitor and NXuser are recommended. + +### Proposal R2: simplified NXdata + +- Rename `long_name` into `label` in variable +- Suppress `first_good` and `last_good` +- Add a `range` attribute to variable so that it can be given as a regularly sampled range. + +### Proposal R3: scanning mechanism (dim <= 3) + +For low dimensionality data sets (dim <= 3), the scan may be stored as an array in the NXdata, with associated axis. + +### Proposal R4: scanning mechanism (general): NXgroup + +As an alternative, or for higher dimensionality, each scan step is stored as a single NXdata, with one 'master' NXgroup describing how to assemble scan steps into series. The assembling mechanism is to be discussed further. + +### Proposal R5: the NXparameters class + +As an alternative to the NXinstrument, which usually brings too much information as required for a basic data analysis, a new NXparameters class should be defined next to the NXdata, and gather 'important' parameters to be used by scientists. The NXparameter is a kind of 'abstract' of NXinstrument. The list of these parameters should be defined per class of instrument, based on requirements from existing data analysis programs (FullProf, INX, Sqw, Dave, Isaw, Nathan, ...), to be discussed further. + +Format extensions (optional) +---------------------------- + +### Proposal E1: NXinstrument is optional + +The NXinstrument class is optional. No NXinstrument class should be specifically defined as 'official'. However, some examples per class of instrument will be available to programmers. Indeed, as all instruments are essentially unique, no description can cope with all of them. The usage of NXinstrument usually concerns instrument simulations (McStas, Vitess, NISP, ResTrax, IDEAS, ...) as well as exact configuration (e.g., for repeating experiments and debugging purposes). + +### Proposal E2: NXinstrument vs NXdata and redundancy + +If present, NXinstrument should contain all the relevant information concerning the instrument parameters. In order to prevent redundancy for the data set (in detector and NXdata), the usage of links is required. An NXsample class should better appear in the NXinstrument as a link to the NXentry/NXsample. One or more NXmonitor classes should better appear in the NXinstrument as a link to the NXentry/NXmonitor. + +### Proposal E3: positioning and distances + +The 'official' mechanism for distance/geometry specification is NXgeometry. It derives from the McStas positioning system. Other distance specification attributes defined within NXinstrument objects should be avoided. + +### Proposal E4: no object definition + +The usage of objects and inheritance is not envisaged as it brings too much complexity in the associated definitions. We rather promote a simplification of the existing NeXus. + +### Proposal E5: grouping of equivalent elements + +The NXgroup class could be used to assemble other items than scan steps in order to define super-classes, e.g., sets of detectors and monochromators. diff --git a/source/content/ReflectDiscuss.rst b/source/content/ReflectDiscuss.rst new file mode 100644 index 00000000..b0d6f0a9 --- /dev/null +++ b/source/content/ReflectDiscuss.rst @@ -0,0 +1,148 @@ +============== +ReflectDiscuss +============== + + +--- title: ReflectDiscuss permalink: ReflectDiscuss.html layout: wiki +--- Three files as a starting point for discussion ... the idea is to +come up with reflectometer definitions based on inheritance from other +definitions such as [TOFRaw](TOFRaw.html "wikilink") - outline the parts +of tofraw needed for reflectometry. - create a reflectometry base - +create a TOF reflectometry from base+tofraw +\* intensity {Suggested spectrum measurement for intensity vs. +wavelength for a given slit setting. Warning: beam profile is not +regular, but this effect is accomodated in the spectrum measurement. May +measure monitor versus detector or monitor vs. monitor or simply +absolute detector counts for a particular slit setting.} \* background +{Suggested background measurement; needed for point detector +measurements} \* background {Suggested background measurement} ? {Angle +relative to the scattering plane, not to gravity.} {Reflectometry +characterization of samples is much more complex than given in +NXsample.} {Slits defining the beam width and possibly the height +relative to the surface of the sample.} ? ? ? ? ? ? { Need all fields so +that we can calculate shadow of beam stop on detector. } { Angle of the +detector relative to the scattering plane. } { Indicate sense of +scattering: 0 is front surface of sample, 180 is back surface of sample. +If 180, change the sign of the reflected angle in the data. It is also +possible for the beam to enter the substrate from the side and reflect +off the back surface of a film, in which case negative angles can be +interpreted as inverting the scattering length density profile of the +film (after accounting for absorption in the substrate. } ? { +"intensity"\|"background"\|"specular"\|"rock"\|"slice"\|"area" } ? { +"++"\|"+-"\|"-+"\|"--"\|"+"\|"-" } ? \* { Various logs for temperature, +field, etc. which are assumed to be constant over the duration of the +run. The reduction program should be able to display their values on a +parallel graph. Note that logs are not necessarily sampled synchronously +with the data points. } NXmonoref {\|Q\|}? ? ? ? ? ? ? ? ? ? ? ? ? { +Reduction software needs to ignore Q values outside the range defined by +the choppers. The T0 chopper is phased to the source to block fast +neutron and gamma flash. The frame overlap chopper is set to select low +wavelength neutrons (those from the current pulse) or high wavelength +neutrons (those from the previous pulse. On a properly tuned instrument, +the time bins recorded in the detector will reflect the actions of the +choppers and these fields can be ignored. } ? { The frame overlap mirror +is used to eliminate very long wavelength neutrons from previous pulses. +Together with the choppers, this helps to choose which pulse to use in +the TOF calculations. On a properly tuned instrument the time bins +recorded in the detector will account for the actions of the mirror. +There will be some attenuation but this will be compensated for when +correcting for the spectrum scan. For an ab initio calculation, you +would need to store the angle wrt the beam to compute the cutoff angle +but often this will not be explicit since the instrument is simply tuned +to have the correct cutoff. } also one from the old SWIKI NXtofnref.xml +{Name of instrument} {(x,y,z) position coordinates relative to origin at +sample position}? {The orientation information is stored as direction +cosines relative to origin at sample position.} {"nxcylinder", "nxbox", +"nxsphere", ...}? { nshapepar dimensions for selected shape}? +{Sequential order of target along beam path} {Optional +description/label}? {Sequential order of component along beam path}? +{"Engineering" position of moderator}? {Effective distance as seen by +measuring radiation}? { "H20" \| "D20" \| "Liquid H2" \| "Liquid CH4" \| +"Liquid D2" \| "Solid D2" \| "C" \|"Solid CH4" \| "Solid H2"}? {Poison +depth}? {whether the moderator is coupled}? { Gd \| Cd \|...} +{average/nominal moderator temperature} {log file of moderator +temperature} {moderator pulse shape} {Position and orientation of +moderator}? {(x,y,z) position coordinates relative to origin at sample +position}? {The orientation information is stored as direction cosines +relative to origin at sample position.} {"nxcylinder", "nxbox", +"nxsphere", ...}? { nshapepar dimensions for selected shape}? +{Sequential order of moderator along beam path} \* {} {} {Reflectivity +as function of wavelength [nsurf,i]} {} {} "vacuum"\|"helium"\|"argon" +{external material outside substrate} {} {} {} {} {} {} {number of +substrate sections} {Position and orientation of guide}? {(x,y,z) +position coordinates relative to origin at sample position}? {The +orientation information is stored as direction cosines relative to +origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { +nshapepar dimensions for selected shape}? {Sequential order of guide +along beam path} ? {Chopper type +single|contra_rotating_pair|synchro_pair}? {chopper rotation speed}? +{Number of slits} {angular opening} {disc spacing in direction of beam}? +{radius to centre of slit} {total slit height} {chopper phase angle}? +{pulse reduction factor of this chopper in relation to other +choppers/fastest pulse in the instrument}? {Effective distance to the +origin}? {low and high values of wavelength range transmitted}? +{Position and orientation of chopper}? {(x,y,z) position coordinates +relative to origin at sample position}? {The orientation information is +stored as direction cosines relative to origin at sample position.} +{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for +selected shape}? {Sequential order of chopper along beam path} \* +{Absorbing material of the aperture}? {Description of aperture}? +{Position and orientation of aperture}? {(x,y,z) position coordinates +relative to origin at sample position}? {The orientation information is +stored as direction cosines relative to origin at sample position.} +{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for +selected shape}? {Sequential order of aperture along beam path} + +"Fission Chamber"\|"Scintillator"? "monitor"\|"timer"? {preset value for +time or monitor}? {Distance of monitor from sample position}? {Monitor +efficiency as a function of wavelength}? {Proportion of incident beam +sampled by the monitor} {Position and orientation of monitor}? {(x,y,z) +position coordinates relative to origin at sample position}? {The +orientation information is stored as direction cosines relative to +origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { +nshapepar dimensions for selected shape}? {Sequential order of monitor +along beam path} {} {} {Reflectivity as function of wavelength} {} {} +"vacuum"\|"helium"\|"argon" {external material outside substrate} {} {} +{} {} {} {} {Position and orientation of mirror}? {(x,y,z) position +coordinates relative to origin at sample position}? {The orientation +information is stored as direction cosines relative to origin at sample +position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar +dimensions for selected shape}? {Sequential order of aperture along beam +path} \* {} {} {Reflectivity as function of wavelength} {} {} +"vacuum"\|"helium"\|"argon" {external material outside substrate} {} {} +{} {} {} {} {Position and orientation of polariser}? {(x,y,z) position +coordinates relative to origin at sample position}? {The orientation +information is stored as direction cosines relative to origin at sample +position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar +dimensions for selected shape}? {Sequential order of aperture along beam +path} \* {coil|current-sheet}? {Number of turns/cm in flipping field +coils}? {Number of turns/cm in compensating field coils}? {Number of +turns/cm in guide field coils}? {Flipping field coil current in "on" +state"}? {Compensating field coil current in "on" state"}? {Guide field +coil current in "on" state"}? {thickness along path of neutron travel}? +{Position and orientation of flipper}? {(x,y,z) position coordinates +relative to origin at sample position}? {The orientation information is +stored as direction cosines relative to origin at sample position.} +{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for +selected shape}? {Sequential order of aperture along beam path} + {Total +time of flight} {Identifier for detector}? {Data values}? {Data values} +{offset from the detector center in x-direction}? {offset from the +detector center in the y-direction}? {name/manufacturer/model/etc. +information}? {Position and orientation of detector element}? +{translation normal to direct beam}? {Solid angle subtended by the +detector at the sample}? {Size of each detector pixel. If it is scalar +all pixels are the same size}? {Size of each detector pixel. If it is +scalar all pixels are the same size}? {Detector dead time}? {Delay in +detector registering an event}? {Detector gas pressure}? {maximum drift +space dimension}? {Crate number of detector}? {Slot number of detector}? +{Input number of detector}? "He3 gas cylinder"\|He3 PSD"\|"He3 planar +multidetector"\| "He3 curved multidetector"\| "multi-tube He3 PSD"\|"BF3 +gas"\|"scintillator"\|"fission chamber"? {Efficiency of detector with +respect to e.g. wavelength}? {date of last calibration (geometry and/or +efficiency) measurements}? {summary of conversion of array data to +pixels (e.g. polynomial approximations) and location of details of the +calibrations}? {Position and orientation of aperture}? {(x,y,z) position +coordinates relative to origin at sample position}? {The orientation +information is stored as direction cosines relative to origin at sample +position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar +dimensions for selected shape}? {Sequential order of aperture along beam +path} diff --git a/source/content/SAS.rst b/source/content/SAS.rst new file mode 100644 index 00000000..00c8045e --- /dev/null +++ b/source/content/SAS.rst @@ -0,0 +1,53 @@ +=== +SAS +=== + + +--- title: SAS permalink: SAS.html layout: wiki --- Small-Angle +Scattering ====================== 2006-04-19 ---------- Given the +complex requirements for initial data treatment on pulsed source SANS +instruments there has been general agreement to separate these from the +much simpler pin-hole geometry cameras used for monochromatic X-ray and +Neutron SAS studies, shown together below as NXmonosas. 2006-10-05 +---------- Effort was made to simplify the definition below, correct +errors (such as removed fields that did not exist in base classes), and +remove unnecessary information. Suggest that this be called +\*NXsas\\_mono\\_area\* (very cumbersome) since the fields are +appropriate to SAS instruments with area detectors at monochromatics +sources. The definition does not match well to other types of SAS +instrument such as USAS, Kratky, step-scanning, or slit-camera with PSD. +2006-10-06 ---------- A description of the wavelength and possibly a +spectral description (either vague or detailed such as a spectral +profile) is needed for analysis software to account for not only +wavelength but wavelength smearing and other spectral effects +(high-order harmonics, for example). Due to the variety of optics used +to provide such a beam, rather than define each of those possible optics +in the generic instrument definition, we define the spectral properties +of the beam incident on the sample that results from all the upstream +optics. Two possible ways: - Object-oriented approach - This needs a new +base class since a generic SAS description will define wavelength using +generic hardware; not everyone has helical velocity selector or a +crystal monochromator. X-rays are admittedly the more tedious case. - +NXspectrum might be a good choice. - NXwavelength\\_selector is more to +the point. - NXmonochromator is our choice. This will sit well next to +NXbending\\_magnet, NXcrystal, NXinsertion\\_device, NXmirror, +NXmoderator, and NXvelocity\\_selector. - NXbeam - Imperfect becuase +NXbeam was intended for the simulation community despite the note in the +documentation about beamline use. The fields are not entirely +appropriate and some questions will often arise. +{Name of instrument}? "neutron"\|"x-ray" {The nominal fraction of the +beam transmitted by the attenuator} {location and shape of aperture} +{location and shape of collimator} {characteristics of beam at sample} +{selected wavelength} {wavelength distribution full width at half +maximum}? ? {Data values}? {distance between sample and detector} +{X-direction pixel coordinate on the detector with origin at detector +center}? {Y-direction pixel coordinate on the detector with origin at +detector center}? {signal from detector when not illuminated}? {x,y +position of straight-through beam (a.k.a. beam center) on the detector}? +{shape, orientation and position of the beam stop} {"in"\|"out"} +"monitor"\|"timer"? {preset for terminating measurement} {Monitor value} +{signal from monitor when not illuminated}? {Elapsed actual counting +time, the time the instrument was really counting, without pauses or +times lost due beam unavailability} + {link to detector counts in +NXdetector} {link to x_offset in detector group} {link to y_offset in +detector group} diff --git a/source/content/Scaled_Data.rst b/source/content/Scaled_Data.rst new file mode 100644 index 00000000..978f2f46 --- /dev/null +++ b/source/content/Scaled_Data.rst @@ -0,0 +1,44 @@ +=========== +Scaled Data +=========== + + +--- title: Scaled Data permalink: Scaled_Data.html layout: wiki --- +Scaled Data ----------- This suggestion is one of the outcomes of the +NeXus for Synchrotrons Workshop at PSI: The Suggestion -------------- +NeXus STRONGLY suggests to store data as arrays of physical values in C +storage order. However, for cases where this is not possible or would +cause an efficiency concern when writing allow to store raw data. Such +data must be annotated with additional attributes as described below in +order to allow reading software to reconstruct the true physical value. +The Reasoning ------------- The data rates possible at synchrotron +facilities and the new pixel detectors test current computing technology +to their limits. There may not be enough time to scale or convert data +on the fly before writing to disk. In some occasions significant space +savings can be obtained by storing data as short integers and scaling +them to the desired floating point values. In the formulas below Vtrue +denotes the true value of the data item, Vraw the one which is stored in +the data element on file. The attributes are: - transform: This is the +indicator that a transformation of the Vraw data is necessary. Transform +can have one the following values: - offset: Vtrue = Vraw + offset - +scaling: Vtrue = Vraw \\\* scaling - scaling\\_offset: both an offset +and scaling is applied. Vtrue = Vraw\\*scaling + offset - sqrt\\_scaled: +Vtrue = (Vraw/scaling)\\*(Vraw/scaling) - logarithmic\\_scaled: Vtrue = +(Vraw/scaling)\\*\\*10 - polynomial: Vtrue = p1 + p2\\*Vraw + +p3\\*Vraw\\*Vraw + p4\\*Vraw\\*Vraw\\*Vraw .... - offset: The offset to +apply - scaling: The scale factor to apply - direction: a komma +separated list of length ndim which specifies for each dimension if it +is increasing or decreasing. If this attribute is missing, increasing is +implied. - precedence: a komma separated list of length ndim which gives +the rank order in which array indexes change with respect to other +indexes. A precedence of 1 denotes the fastest changing index. If this +attribute is missing, C storage order is implied. - coefficients, a +komma separated list of the polynomial coefficients to use for a +polynomial transform Update 01/2015 -------------- There was some +discussion on this at NIAC 2010 and 2012. IMHO, the result was that all +fixed schemes fall over in some point when people come up with new +scaling schemes. It was decided to devise a NXformula base class to +solve this problem. There was some further discussion on scaling in 2014 +in the mailing list and on the teleconferences. At NIAC 2014 it was +decided to accept a NXformula base class as suggested by Ben Watts as an +experimental feature. diff --git a/source/content/Scans.rst b/source/content/Scans.rst new file mode 100644 index 00000000..892f02a7 --- /dev/null +++ b/source/content/Scans.rst @@ -0,0 +1,47 @@ +===== +Scans +===== + +--- +title: Scans +permalink: Scans.html +layout: wiki +--- + +This page is currently under construction +----------------------------------------- + +When completed, this page will be used as the basis of a discussion on how to represent scans within a NeXus file. It will bring together ideas and discussions from TOFRawScan and GenericScan. + +### What is a Scan + +In its broadest sense, a scan is a set of measurements where parameters have been varied in a systematic way. These separate measurements may all be stored in the same file (via an additional array dimension or additional separate NXentry), several files, or a mixture of the two schemes. + +Issues +------ + +The goal is to be able to identify what parameters have been varied as part of the scan. Some of the issues to consider are: +- How to build parametric scans such as 10 temperatures for 5 fields. +- How to identify all files associated with a scan. +- How to identify whether a particular file is associated with a scan. +- What to do if a part of the scan is missing? +- What if the scan is not rectilinear? + +NXscan proposal +--------------- + +Three proposals: + +### NXscan proposal - Mark +{commaseparatedlistofscannedvariables} {commaseparatedlistofpathstringstothescanvariablesinthefile} + +### NXscan proposal - Paul + +{value store is the minimum and maximum of variable range. label and units help you create the axis labels for the plot. num_points is the number of points intended in the scan (the actual value may be less if the scan was aborted). The intended number may be indefinite, in which case it is absent. index is the position in the scan if the scan spans multiple entries, or it is absent if all scan points are within this entry. index is 1-origin. if index is specified, it has an associated value, otherwise the values will need to be stored elsewhere in the entry. where? Can value be the name of a field? For raster scans axis will be 1, 2, 3, ... and primary will be 0. For each axis there should be a single primary. For dependent variables axis will be the 1, 2, 3, ... for the variable it is dependent upon and primary will be 1. You can have any number of dependents.} + +<-- Example temperature scan --> 10,100 +<-- Example raster scan --> 0,10 5,8 + +### NXscan - Ray + +Link entry to next entry in the scan in some way so that the system can find all the pieces by itself. \ No newline at end of file diff --git a/source/content/Storing_Event_Data.rst b/source/content/Storing_Event_Data.rst new file mode 100644 index 00000000..d095abae --- /dev/null +++ b/source/content/Storing_Event_Data.rst @@ -0,0 +1,51 @@ +================== +Storing Event Data +================== + + +--- title: Storing Event Data permalink: Storing_Event_Data.html layout: +wiki --- This discussion concerns a proposal from +[NIAC2008](NIAC2008.html "wikilink") to rename +[NXevent\\_data](NXevent_data.html "wikilink") as NXtofevent\\_data. +When this proposal was passed to the full committee, a number of issues +were raised and it was decided that a further round of discussion was +required. Please comment on the proposals below on the [discussion +page](Talk:Storing_Event_Data.html "wikilink") Listed below are some of +the main reasons cited for and against: REASONS FOR ----------- - +NXtofevent\\_data better describes the content of the object, given that +[NXevent\\_data](NXevent_data.html "wikilink") has a +time\\_of\\_flight member REASONS AGAINST --------------- - Event data +is potentially of importance to the other communities and therefore it +would be good to ensure that the definition name for event data is as +general as possible. Event data is not always measured against +time\\_of\\_flight - it may be e.g. muon decay time and so a more +general event\\_time axis may be applicable - I'm not sure why the +addition of tof is necessary. Pulsed source and chopped continuous +source event data can be represented in ways that are substantially the +same. By renaming the fields we can handle different kinds of events in +the same manner, so there is no need to change the group name to be +specific to time of flight - NXtofevent\\_data is an ugly name. +NXtof\\_event\\_data is a better name, or just NXevent\\_data PROPOSAL +from Paul Kienzle regarding contents of NXevent\\_data +-------------------------------------------------------------- First +note that either pulse\\_height or pulse\\_time is the wrong name. - +pulse\\_height\\[i,k?\\] refers to the voltage pulse measured by the +detector - pulse\\_time\\[j\\] refers to the time that the neutron pulse +reached the moderator The description of the pulse\\_height field is +confusing. It refer to events\\_per\\_pulse, which has length j but it's +own index is of length i, so something is screwy. I suggest renaming +time\\_of\\_flight to event\\_time and pulse\\_time to frame\\_time and +you have something that can be used either for continuous or pulsed +sources. - event\\_time\\[i\\]: time relative to the start of the frame +- pixel\\_number\\[i\\]: detector which registered the event - +frame\\_time\\[j\\]: time relative to the start of the measurement - +events\\_per\\_frame\\[j\\]: as before - pulse\\_height\\[i,k?\\]: +detector voltages The frame\\_time for continuous sources presumably +refers to the time when the detector was turned on after moving the +motors during a scan for multi-point scans. When scanning continously (a +potentially useful measurement during alignment operations), the frame +time would more likely refer to the pulses from the motor position +detectors. Conclusion ---------- 01/2015: There was no activity on this +for a long time. There is a NXevent\\_data base class and both SNS and +ISIS are writing data files using that base class. Please consult the +documentation of the base class for the current state. diff --git a/source/content/content.rst b/source/content/content.rst new file mode 100644 index 00000000..32b1b63f --- /dev/null +++ b/source/content/content.rst @@ -0,0 +1,88 @@ +========== +Content +========== + +.. container:: content + + .. container:: page + + .. rubric:: Content + :name: content + :class: page-title + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + 2014_axes_and_uncertainties + 2014_How_to_find_default_data + ActiveProjects + Archive_Definition + Associating_Axes_with_Data + ConcordanceDiscussion + Connecting_NXdata_to_NXdetector + Containers_and_Inheritance + Design_Issues + Detector_Geometry + DLSraw + Download + Extension_of_NeXus_Coordinate_Systems + Facilities + FAQ + File_id_attribute_for_Nexus_files + GenericScan + Group_Attributes + How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard + index + IndirectDiscuss + Indirect_Time-of-Flight_and_Coordinates + Instruments + IssueReporting + Japinotes + Java_API + Jnexustut + Latest_News + Linking_External_Files + Metaformat + Monochromatic_Neutron_and_X-ray_Powder_Diffraction + Monochromatic_Neutron_and_X-ray_Reflectometry + Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer + MonoXPSD + MonoXSingle + Multi_Method_Instruments + Muon_Time_Differential + NAPI_Routines + NAPI_Utility_Routines + NeXpy + Nexus_41_Release_Notes + Nexus_42_Release_Notes + Nexus_43_Release_Notes + Nexus_4_Release_Notes + NeXus_CIF_Integration + NXaperture_and_Slits + NXbrowse.f90 + NXbrowse + NXdetector_2012_10 + NXdetector_documentation + NXdir + NXgeometry_and_NXshape_-_documentation_and_review + NXlrcs.f90 + NXmeasurement + NXmonoref_example-NIAC2006 + NXmonoref-NIAC2006 + NXmonotas_example-NIAC2006 + NXmonotas-NIAC2006 + NXnet_Proposal + NXtofnref-NIAC2006 + NXtranslate + Object_Oriented_Interface + Objects_or_Interfaces + OO-NeXus + Proposal_NeXus_Coordinates + Proposal_NeXus_Errors + Proposal_to_Simplify_Nexus + ReflectDiscuss + SAS + Scaled_Data + Scans + Storing_Event_Data \ No newline at end of file diff --git a/source/content/index.rst b/source/content/index.rst new file mode 100644 index 00000000..2de46e1e --- /dev/null +++ b/source/content/index.rst @@ -0,0 +1,41 @@ +===== +index +===== + + +--- title: About the NeXus Data Format permalink: index.html layout: +page --- NeXus is a common data format for neutron, x-ray, and muon +science. It is being developed as an international standard by +scientists and programmers representing major scientific facilities in +order to facilitate greater cooperation in the analysis and +visualization of neutron, x-ray, and muon data. ## Documentation: \* +Most recent publication to cite: \*J. Appl. Cryst.\* (2015). \**48*\*, +301-305 +[doi:10.1107/S1600576714027575](https://doi.org/10.1107/S1600576714027575) +\* [User Manual](https://manual.nexusformat.org/user_manual.html): \* +[Introduction](https://manual.nexusformat.org/introduction.html) to the +concepts behind the NeXus data format \* +[Design](https://manual.nexusformat.org/design.html): The hierarchical +design of NeXus files \* [NeXus Class +Definitions](https://manual.nexusformat.org/classes/index.html): +description of each NXDL specification \* [base +classes](https://manual.nexusformat.org/classes/base_classes/index.html): +components that might be used in any NeXus data file \* [application +definitions](https://manual.nexusformat.org/classes/applications/index.html): +layout specifications for a specific purpose \* [contributed +definitions](https://manual.nexusformat.org/classes/contributed_definitions/index.html): +propositions from the community \* +[Utilities](https://manual.nexusformat.org/utilities.html): Software +applications that browse, plot, and analyze NeXus data \* +[FAQ](https://manual.nexusformat.org/faq.html): Commonly asked questions +about NeXus \* [Facilities](Facilities.html "wikilink") using NeXus ## +Discussion and Development: \* Next Meetings: [Autumn +NIAC2024](NIAC2024.html) \* Most recent meetings: [Code Camp +2023](CodeCampJune2023.html), [Autumn NIAC2022](NIAC2022.html) \* +[Teleconferences](Teleconferences.html "wikilink") \* [Current Active +Projects](ActiveProjects.html "wikilink") \* [NeXus International +Advisory Committee](NIAC.html "wikilink") \* [Bug / Issue +Reporting](IssueReporting.html "wikilink") \* [Mailing +Lists](https://manual.nexusformat.org/mailinglist.html) \* [Show and +Tell](https://indico.desy.de/category/1080/) - Series of meetings, each +dedicated to a specific NeXus adoption topic diff --git a/source/dirlist.py b/source/dirlist.py new file mode 100644 index 00000000..2c811724 --- /dev/null +++ b/source/dirlist.py @@ -0,0 +1,173 @@ +# -*- coding:utf-8 -*- +""" +Created on 2011-03-04 + +@author: bergr +""" +import os, sys +import pathlib + + +def dirlist(path, suffix, fname=None, remove_suffix=False): + """ + Takes a path and a file suffix as a filter and returns a list of the files in + that path that match the filter + ex: alist = dirlist(r'C:\pythonxy\workspace\PyQtStxmViewer\src\data\101207\A101207022', '.xim') + """ + ret = [] + containsStr = suffix + dirList = os.listdir(path) + + for f in dirList: + # if(f.find(containsStr) > -1): + # get the last 4 characters of filename as they are the file extension + extension = f[-(len(suffix)) :] + if suffix == extension: + if remove_suffix: + f = f.replace(extension, "") + if fname: + if f.find(fname) > -1: + ret.append(f) + else: + ret.append(f) + + return ret + + +def dirlist_withdirs(path, suffix, fname=None, remove_suffix=False, exclude=[".tmp"]): + """ + Takes a path and a file suffix as a filter and returns a list of the files in + that path that match the filter + ex: alist = dirlist(r'C:\pythonxy\workspace\PyQtStxmViewer\src\data\101207\A101207022', '.xim') + """ + ret = [] + containsStr = suffix + dirList = os.listdir(path) + files = [] + dirs = [] + + for f in dirList: + skip = False + for e in exclude: + if f.find(e) > -1: + # we want to skip anything in the exclude list + skip = True + if skip: + continue + # if(f.find(containsStr) > -1): + # get the last 4 characters of filename as they are the file extension + if f.find(".") > -1: + # its a file + if f.find(suffix) > -1: + # its a file we want + if remove_suffix: + f = f.replace(suffix, "") + files.append(f) + else: + # its a file but we dont want these kinds + pass + else: + # its a directory + dirs.append(f) + + # for f in files: + # extension = f[-(len(suffix)):] + # if (suffix == extension): + # if (remove_suffix): + # f = f.replace(extension, '') + # if (fname): + # if (f.find(fname) > -1): + # ret.append(f) + # else: + # ret.append(f) + + return dirs, files + + +def get_dirs(dirpath, skip_lst=[]): + dir_lst = [] + for i in pathlib.Path(dirpath).iterdir(): + if i.is_dir(): + if i.name in skip_lst: + continue + dir_lst.append(i) + l = get_dirs(i, skip_lst) + if len(l) > 0: + dir_lst.append(l) + return dir_lst + + +def get_all_dirs(basedir, skip_lst=[]): + basepath = pathlib.PurePath(basedir) + _lst = get_dirs(basepath, skip_lst) + dir_lst = [x for x in _lst if x != []] + + return dir_lst + + +def get_all_files_and_subdirs(basepath_str, skip_lst=[]): + l = [] + for path, subdirs, files in os.walk(basepath_str): + for name in files: + skip = False + subdir = path.replace(basepath_str + "\\", "") + for skipit in skip_lst: + if subdir.find(skipit) > -1: + skip = True + if not skip: + l.append(os.path.join(path, name)) + return l + +def get_subdir_names(basepath_str, skip_lst=[]): + subs = [] + dirs = os.listdir(basepath_str) + for d in dirs: + for skip in skip_lst: + if d.find(skip) > -1: + break + else: + if d not in subs: + subs.append(d) + return subs + +def get_files_with_extension(basepath_str, ext=".py", skip_lst=[]): + lst = get_all_files_and_subdirs(basepath_str, skip_lst=skip_lst) + ll = [] + for nm in lst: + if nm.find(ext) > -1: + ll.append(nm) + return ll + + +if __name__ == "__main__": + from cls.utils.list_utils import merge_to_one_list + + # dirlist(sys.argv[1:]) + # dirlist(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5') + # dirlist(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', 'C180111004') + # dirlist(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5', fname = 'C180111004') + + # dirs, files = dirlist_withdirs(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5') + # dirs, files = dirlist_withdirs(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', 'C180111004') + # dirs, files = dirlist_withdirs(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5', fname='C180111004') + + # skip_lst = ['ui', 'sim_bkps', 'logs', '__pycache__', 'bl_configs', 'icons'] + # dirs = get_all_dirs('C:/controls/sandbox/pyStxm3/cls/applications/pyStxm', skip_lst=skip_lst) + # #lst = merge_to_one_list(dirs) + # for d in dirs: + # print(d) + skip_dir_lst = ["ui", "sim_bkps", "logs", "__pycache__", "bl_configs", "icons"] + # dirs = get_all_files_and_subdirs('C:/controls/sandbox/pyStxm3/cls/applications/pyStxm', skip_lst=skip_dir_lst) + # # for d in dirs: + # # print(d) + + names = get_files_with_extension( + "C:/controls/sandbox/pyStxm3/cls/applications/pyStxm", + ext=".py", + skip_lst=skip_dir_lst, + ) + for d in names: + print(d) + + +# __all__ = ['dirlist'] diff --git a/source/encoding_convert.py b/source/encoding_convert.py new file mode 100644 index 00000000..7bb0e4c0 --- /dev/null +++ b/source/encoding_convert.py @@ -0,0 +1,37 @@ + +import os +import subprocess +from dirlist import get_all_files_and_subdirs + +def convert_to_utf8(file_list, output_directory): + for file_path in file_list: + + parts = file_path.split(os.path.sep) + fname = parts[-1] + + try: + # Try reading the file with 'utf-8' encoding + with open(file_path, 'r', encoding='utf-8') as file: + content = file.read() + except UnicodeDecodeError: + # If 'utf-8' fails, try reading with 'latin-1' encoding + with open(file_path, 'r', encoding='latin-1') as file: + content = file.read() + + out_file = os.path.join(output_directory, fname) + print(f"writing [{out_file}]") + # Write the content back to the file with 'utf-8' encoding + with open(out_file, 'w', encoding='utf-8') as file: + file.write(content) + +if __name__ == '__main__': + # Directory containing HTML files + input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content' + output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content-enc' + + # Ensure output directory exists + #os.makedirs(output_directory, exist_ok=True) + + #basedir = os.path.join(os.getcwd(),'codecamps-fix') + file_list = get_all_files_and_subdirs(input_directory) + convert_to_utf8(file_list,output_directory) diff --git a/content/2014-CodeCamp-Schedule-MTW.png b/source/extra_files/2014-CodeCamp-Schedule-MTW.png similarity index 100% rename from content/2014-CodeCamp-Schedule-MTW.png rename to source/extra_files/2014-CodeCamp-Schedule-MTW.png diff --git a/content/2014-NIAC-Schedule-HF.png b/source/extra_files/2014-NIAC-Schedule-HF.png similarity index 100% rename from content/2014-NIAC-Schedule-HF.png rename to source/extra_files/2014-NIAC-Schedule-HF.png diff --git a/content/Axis_Limits_Bar.png b/source/extra_files/Axis_Limits_Bar.png similarity index 100% rename from content/Axis_Limits_Bar.png rename to source/extra_files/Axis_Limits_Bar.png diff --git a/content/CIMG0434.JPG b/source/extra_files/CIMG0434.JPG similarity index 100% rename from content/CIMG0434.JPG rename to source/extra_files/CIMG0434.JPG diff --git a/content/CIMG0435.JPG b/source/extra_files/CIMG0435.JPG similarity index 100% rename from content/CIMG0435.JPG rename to source/extra_files/CIMG0435.JPG diff --git a/content/COP_neXus_slide1.PNG b/source/extra_files/COP_neXus_slide1.PNG similarity index 100% rename from content/COP_neXus_slide1.PNG rename to source/extra_files/COP_neXus_slide1.PNG diff --git a/content/COP_neXus_slide2.PNG b/source/extra_files/COP_neXus_slide2.PNG similarity index 100% rename from content/COP_neXus_slide2.PNG rename to source/extra_files/COP_neXus_slide2.PNG diff --git a/content/COP_neXus_slide3.PNG b/source/extra_files/COP_neXus_slide3.PNG similarity index 100% rename from content/COP_neXus_slide3.PNG rename to source/extra_files/COP_neXus_slide3.PNG diff --git a/content/COP_neXus_slide4.PNG b/source/extra_files/COP_neXus_slide4.PNG similarity index 100% rename from content/COP_neXus_slide4.PNG rename to source/extra_files/COP_neXus_slide4.PNG diff --git a/content/Dalek.jpg b/source/extra_files/Dalek.jpg similarity index 100% rename from content/Dalek.jpg rename to source/extra_files/Dalek.jpg diff --git a/content/IMAG1085_1.jpg b/source/extra_files/IMAG1085_1.jpg similarity index 100% rename from content/IMAG1085_1.jpg rename to source/extra_files/IMAG1085_1.jpg diff --git a/content/Mars.png b/source/extra_files/Mars.png similarity index 100% rename from content/Mars.png rename to source/extra_files/Mars.png diff --git a/content/NIAC2006LBL-PRJ3.jpg b/source/extra_files/NIAC2006LBL-PRJ3.jpg similarity index 100% rename from content/NIAC2006LBL-PRJ3.jpg rename to source/extra_files/NIAC2006LBL-PRJ3.jpg diff --git a/content/NIAC2006LBL-PRJ4.jpg b/source/extra_files/NIAC2006LBL-PRJ4.jpg similarity index 100% rename from content/NIAC2006LBL-PRJ4.jpg rename to source/extra_files/NIAC2006LBL-PRJ4.jpg diff --git a/content/NIAC2006LBL-PRJ5.jpg b/source/extra_files/NIAC2006LBL-PRJ5.jpg similarity index 100% rename from content/NIAC2006LBL-PRJ5.jpg rename to source/extra_files/NIAC2006LBL-PRJ5.jpg diff --git a/content/NIAC2006LBL-PRJ6.jpg b/source/extra_files/NIAC2006LBL-PRJ6.jpg similarity index 100% rename from content/NIAC2006LBL-PRJ6.jpg rename to source/extra_files/NIAC2006LBL-PRJ6.jpg diff --git a/content/NIAC2006LBL-PRJ7.jpg b/source/extra_files/NIAC2006LBL-PRJ7.jpg similarity index 100% rename from content/NIAC2006LBL-PRJ7.jpg rename to source/extra_files/NIAC2006LBL-PRJ7.jpg diff --git a/content/NIAC2007-PRJ-CIMG0432.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0432.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0432.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0432.JPG diff --git a/content/NIAC2007-PRJ-CIMG0433.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0433.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0433.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0433.JPG diff --git a/content/NIAC2007-PRJ-CIMG0434.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0434.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0434.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0434.JPG diff --git a/content/NIAC2007-PRJ-CIMG0435.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0435.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0435.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0435.JPG diff --git a/content/NIAC2007-PRJ-CIMG0436.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0436.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0436.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0436.JPG diff --git a/content/NIAC2007-PRJ-CIMG0437.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0437.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0437.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0437.JPG diff --git a/content/NIAC2007-PRJ-CIMG0438.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0438.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0438.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0438.JPG diff --git a/content/NIAC2007-PRJ-CIMG0439.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0439.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0439.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0439.JPG diff --git a/content/NIAC2007-PRJ-CIMG0440.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0440.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0440.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0440.JPG diff --git a/content/NIAC2007-PRJ-CIMG0441.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0441.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0441.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0441.JPG diff --git a/content/NIAC2007-PRJ-CIMG0442.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0442.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0442.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0442.JPG diff --git a/content/NIAC2007-PRJ-CIMG0443.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0443.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0443.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0443.JPG diff --git a/content/NIAC2007-PRJ-CIMG0444.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0444.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0444.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0444.JPG diff --git a/content/NIAC2007-PRJ-CIMG0445.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0445.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0445.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0445.JPG diff --git a/content/NIAC2007-PRJ-CIMG0446.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0446.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0446.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0446.JPG diff --git a/content/NIAC2007-PRJ-CIMG0447.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0447.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0447.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0447.JPG diff --git a/content/NIAC2007-PRJ-CIMG0448.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0448.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0448.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0448.JPG diff --git a/content/NIAC2007-PRJ-CIMG0449.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0449.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0449.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0449.JPG diff --git a/content/NIAC2007-PRJ-CIMG0450.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0450.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0450.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0450.JPG diff --git a/content/NIAC2007-PRJ-CIMG0451.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0451.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0451.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0451.JPG diff --git a/content/NIAC2007-PRJ-CIMG0452.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0452.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0452.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0452.JPG diff --git a/content/NIAC2007-PRJ-CIMG0453.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0453.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0453.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0453.JPG diff --git a/content/NIAC2007-PRJ-CIMG0454.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0454.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0454.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0454.JPG diff --git a/content/NIAC2007-PRJ-CIMG0455.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0455.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0455.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0455.JPG diff --git a/content/NIAC2007-PRJ-CIMG0456.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0456.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0456.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0456.JPG diff --git a/content/NIAC2007-PRJ-CIMG0457.JPG b/source/extra_files/NIAC2007-PRJ-CIMG0457.JPG similarity index 100% rename from content/NIAC2007-PRJ-CIMG0457.JPG rename to source/extra_files/NIAC2007-PRJ-CIMG0457.JPG diff --git a/content/NeXPy-Simple_plot.png b/source/extra_files/NeXPy-Simple_plot.png similarity index 100% rename from content/NeXPy-Simple_plot.png rename to source/extra_files/NeXPy-Simple_plot.png diff --git a/content/NeXus.png b/source/extra_files/NeXus.png similarity index 100% rename from content/NeXus.png rename to source/extra_files/NeXus.png diff --git a/content/NeXusCodeCamp2009-logo.png b/source/extra_files/NeXusCodeCamp2009-logo.png similarity index 100% rename from content/NeXusCodeCamp2009-logo.png rename to source/extra_files/NeXusCodeCamp2009-logo.png diff --git a/content/NeXusCodeCamp2011-logo.png b/source/extra_files/NeXusCodeCamp2011-logo.png similarity index 100% rename from content/NeXusCodeCamp2011-logo.png rename to source/extra_files/NeXusCodeCamp2011-logo.png diff --git a/content/NeXus_narrow.png b/source/extra_files/NeXus_narrow.png similarity index 100% rename from content/NeXus_narrow.png rename to source/extra_files/NeXus_narrow.png diff --git a/content/Nexpy.png b/source/extra_files/Nexpy.png similarity index 100% rename from content/Nexpy.png rename to source/extra_files/Nexpy.png diff --git a/content/Nexus_wide.png b/source/extra_files/Nexus_wide.png similarity index 100% rename from content/Nexus_wide.png rename to source/extra_files/Nexus_wide.png diff --git a/content/Niac2008-attendees.jpg b/source/extra_files/Niac2008-attendees.jpg similarity index 100% rename from content/Niac2008-attendees.jpg rename to source/extra_files/Niac2008-attendees.jpg diff --git a/content/Niac2008-hotel.jpg b/source/extra_files/Niac2008-hotel.jpg similarity index 100% rename from content/Niac2008-hotel.jpg rename to source/extra_files/Niac2008-hotel.jpg diff --git a/content/Niac2008-view.jpg b/source/extra_files/Niac2008-view.jpg similarity index 100% rename from content/Niac2008-view.jpg rename to source/extra_files/Niac2008-view.jpg diff --git a/content/Nxbox_image.png b/source/extra_files/Nxbox_image.png similarity index 100% rename from content/Nxbox_image.png rename to source/extra_files/Nxbox_image.png diff --git a/content/Nxcone.png b/source/extra_files/Nxcone.png similarity index 100% rename from content/Nxcone.png rename to source/extra_files/Nxcone.png diff --git a/content/Nxcylinder.png b/source/extra_files/Nxcylinder.png similarity index 100% rename from content/Nxcylinder.png rename to source/extra_files/Nxcylinder.png diff --git a/content/Nxeliptical_image.png b/source/extra_files/Nxeliptical_image.png similarity index 100% rename from content/Nxeliptical_image.png rename to source/extra_files/Nxeliptical_image.png diff --git a/content/Nxflat_image.png b/source/extra_files/Nxflat_image.png similarity index 100% rename from content/Nxflat_image.png rename to source/extra_files/Nxflat_image.png diff --git a/content/Nxgeometry_uml.png b/source/extra_files/Nxgeometry_uml.png similarity index 100% rename from content/Nxgeometry_uml.png rename to source/extra_files/Nxgeometry_uml.png diff --git a/content/Nxparabolic.png b/source/extra_files/Nxparabolic.png similarity index 100% rename from content/Nxparabolic.png rename to source/extra_files/Nxparabolic.png diff --git a/content/Nxpolynomial.png b/source/extra_files/Nxpolynomial.png similarity index 100% rename from content/Nxpolynomial.png rename to source/extra_files/Nxpolynomial.png diff --git a/content/Nxsphere_image.png b/source/extra_files/Nxsphere_image.png similarity index 100% rename from content/Nxsphere_image.png rename to source/extra_files/Nxsphere_image.png diff --git a/content/Nxtoroidal.png b/source/extra_files/Nxtoroidal.png similarity index 100% rename from content/Nxtoroidal.png rename to source/extra_files/Nxtoroidal.png diff --git a/content/PICT0004.JPG b/source/extra_files/PICT0004.JPG similarity index 100% rename from content/PICT0004.JPG rename to source/extra_files/PICT0004.JPG diff --git a/content/Pinhole_2.png b/source/extra_files/Pinhole_2.png similarity index 100% rename from content/Pinhole_2.png rename to source/extra_files/Pinhole_2.png diff --git a/content/Pinhole_2D.png b/source/extra_files/Pinhole_2D.png similarity index 100% rename from content/Pinhole_2D.png rename to source/extra_files/Pinhole_2D.png diff --git a/content/Slit.png b/source/extra_files/Slit.png similarity index 100% rename from content/Slit.png rename to source/extra_files/Slit.png diff --git a/content/Slit_2d.png b/source/extra_files/Slit_2d.png similarity index 100% rename from content/Slit_2d.png rename to source/extra_files/Slit_2d.png diff --git a/source/facilities/facilities.rst b/source/facilities/facilities.rst new file mode 100644 index 00000000..034059f7 --- /dev/null +++ b/source/facilities/facilities.rst @@ -0,0 +1,176 @@ +========== +Facilities +========== + +.. container:: content + + .. container:: page + + .. rubric:: Facilities + :name: facilities + :class: page-title + + Status of NeXus adoption by facility type. As it is very difficult + to keep the information here current, this page will always at + least partially be out of date. Please send any updates to the + `mailing + list `__. + + .. rubric:: Pulsed Muon Facilities + :name: pulsed-muon-facilities + + **ISIS Muon Facility, STFC Rutherford Appleton Laboratory, UK**: + The `ISIS facility `__ has been + producing and using NeXus files on its `muon + spectrometers `__ + for many years now (see + `Muon_Time_Differential `__ + definition). The current definition is in the process of being + updated to allow it to store more complex experiments and also to + make it more similar to the `TOFRaw `__ definition + used on the ISIS neutron instruments. + + .. rubric:: X-ray Facilities + :name: x-ray-facilities + + **Advanced Photon Source, Argonne National Laboratory, US**: + (2015) APS stores some of its data collection in HDF5 files + according to different formats, including NeXus. These files are + written using either C++ code with HDF5 libraries or python code + using the h5py package. No beam lines use the NAPI in their own + code. The `EPICS `__ area detector + software has two plug-ins that can write acquired images (and + metadata) into NeXus data files. The **HDF5** file writer plug-in + uses the HDF5 C/C++ library interface and a user-supplied template + file to write NeXus data files. The **NeXus** file writer plug-in + uses the NAPI. Note there are plans to deprecate the **NeXus** + plug-in in favor of the more generic **HDF5** plug-in. Also, some + commercial manufacturers of area detectors in use at the APS now + write acquired images into NeXus data files. + + **Diamond Light Source, Oxfordshire, UK**: The data acquisition + system `GDA `__ deployed at most + `Diamond `__ beamlines is capable of + writing and reading NeXus. In general beamlines coming online now + collect data in NeXus/HDF5 as the primary format from day one. + Some existing beamlines have already been migrated, more are + following on a case by case basis. It is aimed that all data will + be contained in NeXus for long term archiving. + + **European Synchrotron Radiation Facility, ESRF, FRANCE**: The + `ESRF `__ is planning on moving to use + Nexus/HDF5 for storing all raw data as part of the ambitious `ESRF + upgrade program `__. The adoption of + Nexus/HDF5 is planned over the time period 2009 to 2012. Currently + (2009) the ESRF is actively exploring Nexus and HDF5 to see what + the technical implications are for data acquisition and analysis + programs. The plan is to where possible adapt data analysis to + directly read data generated by data acquisition programs in + Nexus/HDF5 format. The current experience shows that Nexus alone + is not sufficient and extensions to the standard are required. The + extensions are being implemented directly in HDF5. + + **Alba Synchrotron Light Facility, Spain**: + `Alba `__ uses NeXus with HDF5 backend as its + main format for storing data on all its beamlines (although scan + data may also be duplicated in other formats such as + `SPEC `__ for + convenience). NeXus files are normally created by the + `Sardana `__ control system. + Currently (2014) only NXscan (and recently NXtomo) compliant files + are created in production, although introduction of other + Application Definitions is being tested. + + **SLS,** `Paul Scherrer Institut `__\ **, + Switzerland**: The `Swiss Light Source `__ + is considering NeXus at some beamlines. The PolLux STXM beamline + has been developing and using new control software since late 2012 + which records all data in NeXus/HDF5 format. This STXM control + software (and the NeXus format with it) is propagating to a number + of other STXM beamlines around the world. The SLS is encouraging + Dectris to have their new detectors (e.g. Eiger) record data in an + HDF5 format in order to ease further adoption of NeXus. + + .. rubric:: Neutron Scattering Facilities + :name: neutron-scattering-facilities + + **ISIS Neutron Facility, STFC Rutherford Appleton Laboratory, + UK**: Instruments on the `ISIS second target + station `__ are now generating NeXus + files as per the `TOFRaw `__ definition in parallel + with old ISIS RAW format files. Currently most data analysis is + carried out using the ISIS RAW files, but the new `Mantid data + analysis framework `__ supports + `TOFRaw `__ NeXus files and is being increasingly + used. The long term goal is to entirely replace the old ISIS RAW + file format on both the first and second target stations with + NeXus files; the rate determining step for this is the updating of + data analysis code to read NeXus files. + + **Lujan Neutron Scattering Center,** `Los Alamos National + Laboratory `__\ **, USA**: The Lujan + Center is generating NeXus files on all instruments. We are in the + process of making the files consistent with the emerging + standards, especially `TOFRaw `__. The facility hosts + about 65,000 NeXus files and the number is growing. + + **Materials and Life Science Facility,** + `J-PARC `__\ **, Japan**: In + FY2008, we have successfully received first proton beam and + produced pulsed neutron and muon beam at Materials and Life + Science Facility (MLF) in J-PARC + (http://www.j-parc.jp/index-e.html). Histogrammed data converted + from event-format data and analyzed data are stored in NeXus data + format with metadata, and NeXus is common and shared data format + among neutron scattering instruments and scientists in MLF. NeXus + C-API is utilized through Manyo-Library which is the data analysis + framework for neutron scattering experiments. Data analysis + softwares for each instrument have been developed with C++ and + python on Manyo-Library. + + **Bragg Institute,** `Australian Nuclear Science and Technology + Organisation `__\ **, + Australia**: We are currently writing NeXus files in HDF5 on 5 out + of 7 instruments, including Small Angle, Reflectometer, Powder + Diffaction and Residual Stress. NeXus is not being used on Triple + Axis and Single Crystal Diffraction. The next wave of instruments + will be predominantly NeXus. + + **Institut Laue Langevin** `ILL `__\ **, + Grenoble France**: As of 2008-2009, the ILL has 2 instruments that + generate NeXus/HDF5 files as base format: the Disk chopper + time-of-flight cold neutrons spectrometer IN5 + `IN5 `__ and Time of Flight Neutron + Spectrometer for Small Angle Inelastic themal neutron Scattering + BRISP `BRISP `__. Volume of data (Gb’s) + is substantially higher than what we used to have at the ILL + before - because of large PSD detectors - and NeXus was then the + only sensible choice for storage. We then use + `LAMP `__, + and Matlab tools (incl. Mslice from Oxford/ISIS) to read and + convert data sets. `McStas `__ is also used + to model these instruments, and may also generate NeXus files. + + **Spallation Neutron Source** + `SNS `__\ **, Oak Ridge, TN, USA**: SNS + is using `TOFRaw `__ for storing histogram based data + from all instruments. We are working towards storing the raw event + data in NeXus instead as the data acquisition saves data in that + form already. + + **SINQ,** `Paul Scherrer Institute `__\ **, + Switzerland**: At SINQ most data files are stored in NeXus format, + as of January, 5, 2009 1104153 files were collected. As PSI + pioneered NeXus file writing, most files do not adhere to the + newest standards for NeXus files anymore. This will be rectified + as soon as more progress on application definitions has been made. + + **Neutronenquelle Heinz Maier-Leibnitz** `FRM + II `__\ **, Germany**: Introduction of + NeXus is under discussion since long; as of 2011, NeXus is used by + zero (0) instruments. + + **European Spallation Source** + `ESS `__\ **, Sweden**: + Current plans foresee all raw data to be stored in NeXus. + Processed data is set to follow that model. diff --git a/source/faq/faq.rst b/source/faq/faq.rst new file mode 100644 index 00000000..ff96ab0e --- /dev/null +++ b/source/faq/faq.rst @@ -0,0 +1,140 @@ +=== +FAQ +=== + +.. container:: content + + .. container:: page + + This is a list of commonly asked questions concerning the NeXus + data format. If you wish to suggest any more questions to include + on this page, please visit the `discussion page `__ + and add an entry. + + .. rubric:: How many facilities use NeXus + :name: how-many-facilities-use-nexus + + This is continually evolving. It has been used as the instrument + format for several years on some or all instruments at a number of + facilities including PSI (Switzerland), LLB (France), LANSCE + (USA), and APS (USA). It will be used on all future + instrumentation at ISIS (UK), NIST (USA), ANSTO (Australia) and + was used by instruments using the new data acquisition system at + IPNS (USA). Finally, it has been formally adopted by major + facilities under construction, the SNS (USA), JPARC (Japan) and + Diamond Light Source (UK). For more information see the + `Facilities <../facilities/facilities.html>`__ page. + + .. rubric:: NeXus files are only useful for archiving instrumental + data, aren’t they? + :name: FAQ_nexus-files-are-only-useful-for-archiving-instrumental-data-arent-they + + NeXus files can be used to store both extremely simple data, e.g. + a single (x,y) array, and highly complex instrument descriptions. + In fact, the original intention of the NeXus data format was to + provide a way of interchanging data between facilities and their + user communities. However, the power of NeXus hierarchical design + has led to its adoption as a standard archiving format by several + major facilities, such as ISIS, LANSCE, and the SNS. + + .. rubric:: Why aren’t NXsample and NXmonitor groups stored in the + NXinstrument group? + :name: why-arent-nxsample-and-nxmonitor-groups-stored-in-the-nxinstrument-group + + A NeXus file can contain a number of NXentry groups, which may + represent different scans in an experiment, or sample and + calibration runs, etc. In many cases, though by no means all, the + instrument has the same configuration so that it would be possible + to save space by storing the NXinstrument group once and using + multiple links in the remaining NXentry groups. It is assumed that + the sample and monitor information would be more likely to change + from run to run, and so should be stored at the top level. + + .. rubric:: How do I identify the plottable data? + :name: how-do-i-identify-the-plottable-data + + Any program whose aim is to identify plottable data should use the + following procedure: + + #. Open the first top level NeXus group with class NXentry. + #. Open the first NeXus group with class NXdata. + #. Loop through NeXus data items in this group searching for the + item with attribute “signal” =1. This is the plottable data. + #. Check to see if this data item has an attribute called “axes”. + If so, the names are defined as a comma-delimited string within + this attribute in the C-order of the data array, and you can + skip the next two steps. + #. If the “axes” attribute is not defined, search for the + one-dimensional NeXus data items with attribute “primary” = 1. + #These are the dimension scales to label the axes of each + dimension of the data. + #. Link each dimension scale to the respective data dimension by + the “axis” attribute (= 1,2,…,rank of data). + #. If necessary, close the NXdata group, open the next one and + repeat steps 3 to 6. + #. If necessary, close the NXentry group, open the next one and + repeat steps 2 to 7. + + Consult the NeXus API section, which describes the routines + available to program these operations. In the course of time, + generic NeXus browsers will provide this functionality + automatically. + + .. rubric:: Why are the NeXus classes so complicated? I’ll never + store all that information + :name: why-are-the-nexus-classes-so-complicated-ill-never-store-all-that-information + + The NeXus classes are essentially glossaries of terms. If you need + to store a piece of information, consult the class definitions to + see if it has been defined. If so, use it. However, it is not + compulsory to include every item that has been defined if it is + not relevant to your experiment. On the other hand, if there is an + NeXus definition for your instrument, you are recommended to + include all the compulsory items if you want to use standard + software to analyze your data. + + .. rubric:: I want to produce an instrument definition. How do I + go about it? + :name: i-want-to-produce-an-instrument-definition-how-do-i-go-about-it + + The first thing is to check whether the instrument you are + interested in is already being defined by an instrument editor. + Check the list on the NeXus Instruments page. The `NeXus + International Advisory Committee `__ is responsible for + appointing editors of special interest groups that wish to become + a part of the standard, so contact the `Executive + Secretary `__, if a group does not yet exist. Of + course, if you want to produce your own private definition for + personal use, you are free to do so without our approval although + we encourage people to share what they are doing . If you are an + editor, the process of defining an instrument should be quite + simple: + + #. Make sure that the data you wish to analyze are stored in + NXdata groups. The rest of the definition is to supply what is + necessary for simple analysis of the data, for example, the + detector positions and incident wavelength for a x-ray powder + diffraction measurement. + #. Study the base classes to decide which ones are essential for + your definition. If you believe that a new base class is + needed, contact the NIAC with a proposal. + #. Select those data items and groups that you consider important + in analyzing data from your instrument. + + Insert the relevant grep character, as defined in the `NeXus + Meta-DTD format `__ to denote the number of + occurrences. If the item is optional (“?” or “\*”), then it does + not need to be added to your definition. + + #. If you encounter any problems because the classes are not + sufficient to describe your configuration, please contact the + NIAC Executive Secretary explaining the problem, and post a + suggestion at the relevant class wiki page. The NIAC is always + willing to consider proposals to amend the base classes. The + procedures are defined in the NIAC constitution. + + .. rubric:: What coordinate system does NeXus use? + :name: what-coordinate-system-does-nexus-use + + This is described on the + `Coordinate_Systems `__ page diff --git a/source/fix_encoding_warns.py b/source/fix_encoding_warns.py new file mode 100644 index 00000000..28996ae0 --- /dev/null +++ b/source/fix_encoding_warns.py @@ -0,0 +1,86 @@ +import glob +import os +import subprocess +from dirlist import get_all_files_and_subdirs +import os +import glob + + +def fix_encoding(input_dir, output_dir): + """ + Fix encoding issues in .rst files by replacing non-UTF-8 characters. + + Args: + input_dir (str): Directory containing the input .rst files. + output_dir (str): Directory where the fixed files will be saved. + """ + # Define replacements + replacements = { + b'\x91': b'"', + b'\x92': b'"', + b'\x93': b'"', # Opening smart quote + b'\x94': b'"', # Closing smart quote + b'\x96': b'"', + b'\xf6': b'"', + b'\xa0': b' ', + b'\xfc': b' ', + b'\xe8': b' ', + b'\xef': b' ', + b'\xbf': b' ', + + b'\x85': b' ', + b'\xbd': b' ', + b'\xe2': b' ', + b'\x80': b' ', + b'\xc2': b' ', + + b'\x9c': b' ', + b'\x9d': b' ', + b'\x99': b' ', + + b'\xa6': b' ', + b'\xb0': b' ', + + b'\x97': b' ', + b'\xa3': b' ', + + b'\x84': b' ', + b'\xe9': b' ', + b'\xe9': b' ', + + + + + + + + } + + # Ensure output directory exists + os.makedirs(output_dir, exist_ok=True) + + # Process all .rst files in the input directory + for file in glob.glob(os.path.join(input_dir, "*.rst")): + with open(file, "rb") as f: + content = f.read() + + # Apply replacements + for old, new in replacements.items(): + content = content.replace(old, new) + + # Save the fixed file in the output directory + output_file = os.path.join(output_dir, os.path.basename(file)) + with open(output_file, "wb") as f: + f.write(content) + print(f"Wrote fixed output to [{output_file}]") + + print(f"Processed all .rst files from {input_dir} and saved them to {output_dir}.") + + +if __name__ == '__main__': + # Directory containing HTML files + input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac' + output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac-fix' + + fix_encoding(input_directory, output_directory) + diff --git a/source/fix_title.py b/source/fix_title.py new file mode 100644 index 00000000..f1b7c8bc --- /dev/null +++ b/source/fix_title.py @@ -0,0 +1,63 @@ +import os +import subprocess +from dirlist import get_all_files_and_subdirs + +def generate_equals_string(input_string): + length = len(input_string) + return '=' * length + +def fix_title(fpath, output_directory): + try: + is_content = False + if fpath.find('content') > -1: + is_content = True + final_lines = [] + write_file = False + if os.path.exists(fpath): + parts = fpath.split(os.path.sep) + fname = parts[-1] + with open(fpath, 'r', encoding='utf-8', errors='replace') as f: + lines = f.readlines() + + idx = 0 + for l in lines: + if is_content or ((idx < 2) and l.find(".. container:: content") > -1): + #insert title + name = f"{parts[-1].replace('.rst','').replace('_',' ')}" + final_lines.append(f"{generate_equals_string(name)}\n") + #final_lines.append(f"{parts[-1].replace('.rst','').replace('_',' ')}\n") + final_lines.append(f"{name}\n") + final_lines.append(f"{generate_equals_string(name)}\n\n\n") + final_lines.append(l) + idx -=1000000000 + write_file = True + #now turn it off + is_content = False + else: + final_lines.append(l) + idx += 1 + if idx > 5 and not write_file: + return + if write_file: + outfile = os.path.join(output_directory,fname) + with open(outfile, 'w') as f: + f.writelines(final_lines) + print(f'Done fixing title for {outfile}') + except Exception as err: + print(f"Unexpected {err=}, {type(err)=}") + + + +if __name__ == '__main__': + # Directory containing HTML files + input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content' + output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content-fix' + + # Ensure output directory exists + #os.makedirs(output_directory, exist_ok=True) + + #basedir = os.path.join(os.getcwd(),'codecamps-fix') + files = get_all_files_and_subdirs(input_directory) + for file in files: + if file.find('.bak') == -1: + fix_title(file, output_directory) diff --git a/source/img/NeXus.png b/source/img/NeXus.png new file mode 100644 index 0000000000000000000000000000000000000000..22af50e4903ab29b0dfc08edc8f92c05e7f85681 GIT binary patch literal 13469 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 literal 0 HcmV?d00001 diff --git a/source/index.rst b/source/index.rst new file mode 100644 index 00000000..a77cc744 --- /dev/null +++ b/source/index.rst @@ -0,0 +1,62 @@ +.. nexusformat_wiki documentation master file, created by + sphinx-quickstart on Sat Sep 28 16:51:17 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. image:: ../common/NeXus_Logo.png + :width: 400 + :alt: Alternative text + +About the NeXus Data Format +=========================== + +NeXus is a common data format for neutron, x-ray, and muon science. It +is being developed as an international standard by scientists and +programmers representing major scientific facilities in order to +facilitate greater cooperation in the analysis and visualization of +neutron, x-ray, and muon data. + +Documentation: +-------------- + + * Most recent publication to cite: + *J. Appl. Cryst.* (2015). **48**, 301-305 [doi:10.1107/S1600576714027575](https://doi.org/10.1107/S1600576714027575) + * `[User Manual] `_ + * `[Introduction] `_ to the concepts behind the NeXus data format + * `[Design] `_ The hierarchical design of NeXus files + * `[NeXus Class Definitions] `_ description of each NXDL specification + * `[base classes] `_ components that might be used in any NeXus data file + * `[application definitions] `_ layout specifications for a specific purpose + * `[contributed definitions] `_ propositions from the community + * `[Utilities] `_ Software applications that browse, plot, and analyze NeXus data + * `[FAQ] `_ Commonly asked questions about NeXus + * `[Facilities] `_ using NeXus + +Discussion and Development: +--------------------------- + + * Next Meetings: `[Autumn NIAC2024] `_ + * Most recent meetings: `[Code Camp 2023] `_ `[Autumn NIAC2022] `_ + * `[Previous Meetings:] `_ + * `[Tele conferences] `_ + * `[Current Active Projects] `_ + * `[NeXus International Advisory Committee] `_ + * `[Bug/Issue Reporting] `_ + * `[Mailing Lists] `_ + * `[Show and Tell] `_ - Series of meetings, each dedicated to a specific NeXus adoption topic + + + +.. toctree:: + :maxdepth: 1 + :caption: Sections: + + active_projects/active_projects + codecamps/codecamps + teleconferences/teleconferences + niac/niac + faq/faq + facilities/facilities + content/content + + diff --git a/source/make.bat b/source/make.bat new file mode 100644 index 00000000..32bb2452 --- /dev/null +++ b/source/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/source/niac/Membership_Dates.rst b/source/niac/Membership_Dates.rst new file mode 100644 index 00000000..e03d3cec --- /dev/null +++ b/source/niac/Membership_Dates.rst @@ -0,0 +1,63 @@ +============ +Team Members +============ + +The members of the NIAC, with the expiration of their +membership are listed below. If a member wishes to be renewed, they must +provide a letter of support from the facility and be approved by the +NIAC as stated in the [constitution](NIAC.html "wikilink"). + +Expire July, 2023 +================= +- Ray Osborn, Argonne National Laboratory (non-facilityrepresentative) +- Tobias Richter, European Spallation Source, Sweden + +Expire August, 2023 +=================== +- Majid Ounsy, Synchrotron Soleil, France + +Expire December, 2023 +===================== +- Bjørn Clausen , Los Alamos Neutron Science Center(LANSCE), USA + +Expire November, 2024 +===================== +- Takahiro Matsumoto, Spring8,Japan +- Luca Geliso, EuXFEL, Germany +- Sandor Brockhauser, NOMAD Data Center (HU Berlin), Germany + +Expire December, 2024 +===================== +- Wout de Nolf,ESRF, France +- Chen Zhang, Oak Ridge National Laboratory (SNS/HFIR), USA + +Expire September 2025 +===================== +- Herbert Bernstein, CIF community (non-facility representative) +- Thomas Caswell, BNL/NSLS-2, USA + +Expire October, 2025 +==================== +- Balázs Bagó, the Extreme Light Infrastructure,Czech Republic, Hungary and Romania + +Expire February 2026 +==================== +- Pete Jemian, APS, USA +- Russ Berg, Canadian Light Source, Canada +- Peter Chang, Diamond Light Source, UK +- Heike Görzig, HZB, Germany +- Paul Millar, DESY, Germany + +Expire April 2026 +================= +- Benjamin Watts, SLS, Switzerland +- Mark Könnecke, PSI, Switzerland + +Expire August 2026 +================== +-Zdenek Matej - MAX IV, Sweden + +Expire February 2027 +==================== +- Fernan Saiz, ALBA, Spain +- Aaron Brewster, Lawrence Berkeley Laboratory, USA diff --git a/source/niac/NIAC2006ILL.rst b/source/niac/NIAC2006ILL.rst new file mode 100644 index 00000000..4dfcc7b5 --- /dev/null +++ b/source/niac/NIAC2006ILL.rst @@ -0,0 +1,233 @@ +================= +NIAC2006ILL +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006ILL + :name: NIAC2006ILL_niac2006ill + :class: page-title + + .. rubric:: NIAC Meeting - February 2006 + :name: NIAC2006ILL_niac-meeting---february-2006 + + The next meeting of the `NeXus International Advisory + Committee `__ will be held at the `Institut Laue + Langevin `__ in Grenoble, France. The meeting + will be held from February 1 to 3, 2006, preceded by an informal + workshop to prepare agenda items on January 30-31, 2006. + + Accommodation will be at the ILL/ESRF guest-house (approx 28 Euros + per night bed+breakfast) and a contribution towards meals of about + 130 Euros per person (3 lunches, 2 dinners, coffee etc.), based on + 20 participants. + + If you wish to attend, please contact `Ron + Ghosh `__ as soon as possible. + + .. rubric:: Proposed Agenda + :name: NIAC2006ILL_proposed-agenda + + Please add suggestions for agenda items here in `bullet + form `__. If you want to add extended + comments concerning any agenda item, please use this Wiki page"s + `Talk Page `__. + + - Welcome and Introduction + - Review of NIAC"2005 minutes + - `Renew members `__ + - Add additional member - Pete Jemian Advanced Photon Source, USA + - Elect `chair and executive + secretary `__ - effective at the + end of the meeting + - Amend constitution to state that all officers, including + technical chair, are elected at each meeting, effective at the + end of the meeting + - Discuss and vote on `TOF raw file definition `__ + + .. rubric:: General Information + :name: NIAC2006ILL_general-information + + **Arriving at the site** + + Try: + + ```http://www.ill.fr/pages/science/User/UGuide.html`` `__ + + or + + ```http://www.esrf.fr/AboutUs/CompanyInfo/Access`` `__ + + **General information** + + CIBB->Carl-Ivar Braenden Building is adjacent to the roundabout + before reaching the ESRF main building. Our main meeting room is + here on the second floor. + + Meeting rooms are also foreseen in the ESRF annexe close to the + CIBB building. + + ILL4->The ILL main building (most offices/meeting rooms to be used + are on 1st floor above ground floor) + + .. container:: language-plaintext highlighter-rouge + + .. container:: python + + .. code:: python + + Ron Ghosh office ILL4-117 tel. 7178 + Sectretariat + Marie-Rose Guillermet office ILL4-114 tel. 7226 + +33-4 76 20 72 26 + FAX +33-4 76 20 76 48 + + .. rubric:: Meeting layout + :name: meeting-layout + + The format of the last meeting at Santa Fe was very productive, + and so similar break-out group meeting rooms are envisaged at this + meeting. Such groups might be + + **technical programming the api** + + "'"instruments-1 + 3-axis/reflection/`SAS `__/polarised/muons """ + + - (step-scanning/multi-detector/X-ray/neutron) + - examples + - update definitions + - prototype treated data + + **instruments-2 TOF inelastic/TOF Powder diffraction** + + - (Principally multi-detector neutron instruments) + - experts from completed instruments offer feedback to the + remainder + - example data + - update definitions + - prototype treated data 1D,2D data + - rebinning, constant (Q,w) + + `Synchrotron_Group `__ **(Andy G"tz)** + + - this group will meet separately on the second and third days, + and may be expected to offer objective feedback and criticism + on the NeXus project from their fresh point of view. + + It will be possible, too, to find additional space if other + specific interest groups wish to meet separately. + + We should designate a publication sub-committee to write a report + for Synchrotron Radiation News and Neutron News + + The problem of regular finance of NIAC activities has been posed + to the ILL directors, and one is invited to the opening of the + meeting. + + .. rubric:: NIAC Meeting Provisional Timetable + :name: NIAC2006ILL_niac-meeting-provisional-timetable + + .. rubric:: pre-meeting 31st January + :name: pre-meeting-31st-january + + - 0900 onwards ILL4-117 (R. Ghosh) + - 1100 onwards ILL4-158 + + - 1400 Planning of discussions (subjects, leaders) + - 1430 Pre-discussions (detector configurations, scanning) + - 1530 Coffee + - 1600 Break out into groups + + .. rubric:: 1st February + :name: 1st-february + + - 0840 Registration, payment + - 0900 Initial welcome formalities in the CIBB conference room + (214) + - 0910 Greeting from one of the directors of the ILL + - 0915 Brief self-presentation of participants and their + activities + - 0930 Basic committee business, adoption of new members etc. + - 0945 Overview of aims of public presentation on 2nd Feb. + - 1000 Review of current NeXus design (Ray Osborn) + - 1030 Review of current NeXus API (Mark Koennecke) + - 1045 Coffee + - 1100 Discussion of online documentation + - 1115 Generic scanning discussion + - 1300 Lunch - ILL/ESRF joint restaurant + - 1400 Review of HDF (Elena Pourmal; ESRF3-1-114) + - 1430 Establishment of working groups + - 1445 Break out into working groups + (CIBB/ILL4-127/ESRF3-1-114/5) + - 1600 Coffee (CIBB 214) + - 1615 Generic detector discussion + - 1645 Break out into working groups (see below) + - 1930 Dinner - buffet at Guesthouse + + .. rubric:: 2nd February + :name: 2nd-february + + - 0900 Introduction to using UML"s and schemas to optimize code + production (Darren Kelly) + - 0930 Break out into working groups + - 1045 Coffee CIBB-214 + - 1100 Break out into working groups (see below) + - 1215 Reconvent in CIBB-214 for review + - 1300 Lunch - ILL/ESRF joint resturant + - 1400 Speakers convene to review presentation + + `` remainder - site visits`` + + - 1500 Reconvene in CIBB-214 for review + - 1545 Refreshments on the Mezzanine of the ESRF main building + - 1600 Presentation to ESRF/ILL scientists and engineers (see + below) in the main Auditorium of the ESRF + - 1715 Apperitif for all at presentation, Mezzanine, ESRF + - 1930 Dinner in Grenoble + + .. rubric:: 3rd February + :name: 3rd-february + + - 0900 Plenary review of working group progress (CIBB 214) + - 0915 Discussion of TOFraw proposal (Peter Peterson) + - 0945 Break out into working groups (see below) + - 1045 coffee (CIBB 214) + - 1300 Lunch ILL/ESRF joint restaurant + - 1400 Report from working groups and votes on resulting + definitions (CIBB 214) + - 1500 Discussion of meeting reports and any other business + - 1600 close + + .. rubric:: NeXus Presentation + :name: NIAC2006ILL_nexus-presentation + + - "Welcome" - Ray Osborn (5 minutes) + + - "Introduction to NeXus design" - Przemek Klosowski (15 minutes) + + - "The potential for NeXus at synchrotron sources" - Andy G"tz + (10 minutes) + + - "The muon community" - Steve Cottrell (5-10 mins) + + - "HDF software and utilities a sound and evolving foundation for + NeXus" - Elena Pourmal (10 minutes) + + - "Demonstration" - Ray Osborn (10-15 minutes) + + - "Where we are today (and tomorrow) with this must-have + solution" - Darren Kelly (10 minutes) + + .. rubric:: Working Groups + :name: NIAC2006ILL_working-groups + + - `Synchrotron_Group `__ (Andy G"tz) + - `TOF Group `__ (Freddie Akeroyd) + - `Scanning Group `__ (Paul Kienzle) + - `Technical Computing/API + Group `__ (Nick + Maliszewskyj) + - `Small-Angle Scattering Group `__ (Ron Ghosh) diff --git a/source/niac/NIAC2006LBL.rst b/source/niac/NIAC2006LBL.rst new file mode 100644 index 00000000..f357d1a8 --- /dev/null +++ b/source/niac/NIAC2006LBL.rst @@ -0,0 +1,203 @@ +================= +NIAC2006LBL +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006LBL + :name: NIAC2006LBL_niac2006lbl + :class: page-title + + .. rubric:: NIAC Meeting - October 2006 + :name: NIAC2006LBL_niac-meeting---october-2006 + + The next meeting of the `NeXus International Advisory + Committee `__ will be held at the `Lawrence Berkeley + National Laboratory `__ near San Francisco, + California, USA. The meeting will be held from October 5 to 6, + 2006, immediately following `NOBUGS + 2006 `__. + + .. rubric:: List of Attendees + :name: NIAC2006LBL_list-of-attendees + + If you are interested in attending (and are not already on the + `list of attendees `__), contact + `Andrew G"tz `__. + + .. rubric:: Start of the Meeting + :name: start-of-the-meeting + + - You are responsible for your own breakfast and travel to the + lab. In theory there are many people staying at the DoubleTree + and the Durant so carpooling is encouraged. + - Arrive at the badging office and they will give you a visitor + badge and a "blue triangle" parking pass. For those of you + without a car there is a lab shuttle bus that will take you + from there to building two (2). + - We will be starting at 8:30 am (pacific time) in building two + (2) room 100B. This is the biggest room and will be where + refreshments are served. + + .. rubric:: Agenda + :name: NIAC2006LBL_agenda + + .. rubric:: Proposed Agenda Items + :name: NIAC2006LBL_proposed-agenda-items + + - Discuss NeXus collaborating with imgCIF. see `MEDSBIO + proposal `__ + - Request institutes from the NeXus community sponsor a full-time + technical secretary for next 12-24 months. + - Institutes that write NeXus files are **data providers.**. + NeXus provides an interface between **data providers** and + **data requirers**. Discuss if the NIAC constitution should be + change to allow data requirers e.g. DANSE to have + representation on the NIAC as a stakeholder that requires + NeXus. + - SCAN definition similar to TOFRAW definition + - NXcharacterization needs to be formalized + - Finalize `archive definition `__ + + .. rubric:: Tabled Until Next Time + :name: tabled-until-next-time + + - Moving from `Meta-DTDs `__ to XML Schema. see + `NeXML proposal `__ + + .. rubric:: October 5 + :name: october-5 + + - 08:30 Welcome and Introduction + - First buisiness + + - Review of NIAC"2006ILL minutes + - `Renew members `__ + - Add new members + + - Jens-Uwe Hoffmann - Hahn-Meitner-Institut Berlin + - Paul Kienzle - DANSE + + - Triage + + - Define missing agenda items + - Vote on things already ready for voting + - Define working groups and divide items + + - 09:30 break + - 09:45 Ratify instrument definitions + - 12:00 break for lunch + - 13:00 Ratify instrument definitions + - 15:00 break + - 15:30 split into groups + + .. rubric:: October 6 + :name: october-6 + + - 08:30 Small items (see `Roadmap `__) + + - Examine classes for ratification + + - `X-ray Experimental (Synchrotron) raw NeXus + data `__ + - `Archive_Definition `__ + + - + + - Examine instruments for ratification + + - `Monochromatic Neutron and X-ray Small-Angle + Scattering `__ + - Reflectometry + - `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer `__ + - `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer `__ + - `Time-of-Flight_Neutron_Powder_Diffraction `__ + - `Muon_Time_Differential `__ + - `MonoXPSD `__ Monochromatic Single Crystal + Diffractometer with Position Sensitive Detector + - `MonoXSingle `__ Monochromatic Single + Crystal Diffractometer with Single Detector + + - ??:?? Triage + + .. rubric:: General Information + :name: NIAC2006LBL_general-information + + **Accomodations** + + LBL has a list of housing in the area: + ` `__\ http://www.lbl.gov/Workplace/near-our-shuttle.html + + The NOBUGS 2006 conference suggests two hotels: + ` `__\ http://nobugs2006.lbl.gov/index.php?content=Lodging + + .. rubric:: Room Reservations + :name: room-reservations + + For help in locating the buildings with the meeting rooms, please + refer to the `http://www.lbl.gov/Workplace/lab-site-map.html LBL + campus + map `__. + + +---------+---------+---------+---------+---------+---------+---+---------+---+------+---+------+ + | | room | | session | | network | | pro | | 10/5 | | 10/6 | + | | | | | | | | jector? | | | | | + +=========+=========+=========+=========+=========+=========+===+=========+===+======+===+======+ + | Bldg. | Plenary | w | no | 7:00 AM | 7:00 AM | | | | | | | + | 2-100B | | ireless | | to 6:30 | to 6:30 | | | | | | | + | | | | | PM | PM | | | | | | | + +---------+---------+---------+---------+---------+---------+---+---------+---+------+---+------+ + | Bldg. | B | wired | yes | 12:00 - | 7:00 AM | | | | | | | + | 6-2202 | reakout | | | 6:30 PM | - 6:30 | | | | | | | + | | | | | | PM | | | | | | | + +---------+---------+---------+---------+---------+---------+---+---------+---+------+---+------+ + | Bldg. | B | wired | no | 12:00 - | 7:00 AM | | | | | | | + | 7-211 | reakout | | | 6:30 PM | - 6:30 | | | | | | | + | | | | | | PM | | | | | | | + +---------+---------+---------+---------+---------+---------+---+---------+---+------+---+------+ + + .. rubric:: Working Groups + :name: NIAC2006LBL_working-groups + + .. rubric:: API/Technical Issues + :name: apitechnical-issues + + - Improving NeXus internal code documention on private structures + and functions. Only API developer needs to know about these, + but at the moment the knowledge is restricted to a few people. + The existing in-code documentation needs to be tidied up and it + would be a good idea if programs such as + `Doxygen `__ + could parse it. + - Move from the current `CVS `__ (for + version control) / `Bugzilla `__ (for + bugs/issues) system to using + `Subversion `__ / + `TRAC `__. Freddie has set up two + sites at + ` `__\ http://svn.nexusformat.org/code + and + ` `__\ http://trac.nexusformat.org + for testing + - Move mailing list to nexusformat.org + - Determine location to store definitions + - Design and implement a way to deal with having approved + definitions and a way to modify a working copy on the website + - It would be useful if NeXus could support arrays of strings + - Source and target of a link must have same name + - Java package name should be org.nexusformat + + .. rubric:: Minutes + :name: NIAC2006LBL_minutes + + Here are the minutes in `pdf + format <../pdfs/NIAC2006LBL_minutes.pdf>`__ or `MS-Word + format `__. + + .. rubric:: Photos + :name: photos + + - `Group photos `__ + - `other photos `__ diff --git a/source/niac/NIAC2006LBL_RoadMap.rst b/source/niac/NIAC2006LBL_RoadMap.rst new file mode 100644 index 00000000..546902e7 --- /dev/null +++ b/source/niac/NIAC2006LBL_RoadMap.rst @@ -0,0 +1,105 @@ +=================== +NIAC2006LBL RoadMap +=================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006LBL RoadMap + :name: NIAC2006LBL_RoadMap_niac2006lbl-roadmap + :class: page-title + + .. rubric:: **ALL** neutron definitions **done** + :name: all-neutron-definitions-done + + - priority 1 + + - Monochromatic Neutron and X-ray Reflectometry + - Time-of-Flight Neutron Reflectometery + - Monochromatic Neutron and X-ray Single Crystal + Diffractometers + + - `MonoXPSD `__ Monochromatic Single Crystal + Diffractometer with Position Sensitive Detector + - `MonoXSingle `__ Monochromatic Single + Crystal Diffractometer with Single Detector + + - `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer `__ + - `Archive_Definition `__ + + - priority 2 + + - `Time-of-Flight_Neutron_Powder_Diffraction `__ + - `Monochromatic Neutron and X-ray Small Angle + Scattering `__ + - Time-of-Flight Small Angle Scattering + + - priority 3 + + - `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer `__ + - Time-of-Flight Neutron Direct Geometry Spectrometer + + - priority 4 + + - Time-of-Flight Neutron Single-Crystal Diffractometer + - Time-of-Flight Neutron Spin Echo Editor + + .. rubric:: Small Items + :name: small-items + + .. rubric:: Axis attributes on fields + :name: axis-attributes-on-fields + + The current documentation describes that the fastest varying + dimension is annotated with "axis=1". In practice the slowest + varying dimension is "axis=1". + + .. rubric:: Geometry order of operations + :name: geometry-order-of-operations + + When looking at a geometry is the orientation applied before the + translation or the other way around. + + .. rubric:: `XESraw `__ + :name: xesraw + + .. rubric:: scanning environment variables + :name: scanning-environment-variables + + - Make sure we have an example of scanning an environment + variable in scanraw + - Consider how parametric scans will be represented (within and + between entries) + + .. rubric:: Later + :name: later + + - sequencing entries and measurements + - counting time for each data point + + - Does this belong to some base class? + - Which one? + + - implement a versioning system + + - switch to subversion + - use SVN tagging system + + .. rubric:: Proposed Agenda Items + :name: NIAC2006LBL_RoadMap_proposed-agenda-items + + - Discuss NeXus collaborating with imgCIF. see `MEDSBIO + proposal `__ + - Request institutes from the NeXus community sponsor a full-time + technical secretary for next 12-24 months. + - (*completed*) Institutes that write NeXus files are **data + providers.**. NeXus provides an interface between **data + providers** and **data requirers**. Discuss if the NIAC + constitution should be change to allow data requirers e.g. + DANSE to have representation on the NIAC as a stakeholder that + requires NeXus. + - (*working*) SCAN definition similar to TOFRAW definition + - (*working*) NXcharacterization needs to be formalized + - (*working*) Finalize `archive + definition `__ diff --git a/source/niac/NIAC2006LBL_attendees.rst b/source/niac/NIAC2006LBL_attendees.rst new file mode 100644 index 00000000..39056e75 --- /dev/null +++ b/source/niac/NIAC2006LBL_attendees.rst @@ -0,0 +1,93 @@ +===================== +NIAC2006LBL attendees +===================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006LBL attendees + :name: NIAC2006LBL_attendees_niac2006lbl-attendees + :class: page-title + + .. rubric:: NIAC 2006 at LBL List of Attendees + :name: NIAC2006LBL_attendees_niac-2006-at-lbl-list-of-attendees + + Attendees of the `2006 NIAC Meeting `__ at + Lawrence Berkeley Laboratory, Berkeley, CA, USA. + + +-------------------+---+-------------------+---+-------------------+ + | `Freddie | | CCLRC ISIS | | DoubleTree | + | Akeroy | | facility | | | + | d `__ | | | | | + +===================+===+===================+===+===================+ + | `Stuart | | Diamond Light | | DoubleTree | + | Campbel | | Source | | | + | l `__ | | | | | + +-------------------+---+-------------------+---+-------------------+ + | Matthias Drochner | | Forschungzentrum | | | + | | | J lich | | | + +-------------------+---+-------------------+---+-------------------+ + | `Andrew | | European | | DoubleTree | + | Gotz `__ | | Radiation | | | + | | | Facility | | | + +-------------------+---+-------------------+---+-------------------+ + | `Nick | | Australian | | Durant | + | Hauser `__ | | and Technology | | | + | | | Organisation | | | + +-------------------+---+-------------------+---+-------------------+ + | Jens-Uwe Hoffman | | Hahn | | | + | | | -Meitner-Institut | | | + +-------------------+---+-------------------+---+-------------------+ + | `Pete | | Advanced Photon | | | + | J | | Source, Argonne | | | + | emian `__ | | Laboratory | | | + +-------------------+---+-------------------+---+-------------------+ + | Paul Kienzle | | National | | | + | | | Institute of | | | + | | | Standards and | | | + | | | Technology | | | + +-------------------+---+-------------------+---+-------------------+ + | `Przemek | | National | | | + | Klosowski | | Institute of | | | + | `__ | | Technology | | | + +-------------------+---+-------------------+---+-------------------+ + | `Mark | | Paul Scherrer | | | + | Koennec | | Institut | | | + | ke `__ | | | | | + +-------------------+---+-------------------+---+-------------------+ + | `Laurent | | Rutherford | | Durant | + | Lerusse `__ | | Laboratory , | | | + | | | e-Science | | | + +-------------------+---+-------------------+---+-------------------+ + | `Mike | | CalTech | | | + | McKerns `__ | | | | | + +-------------------+---+-------------------+---+-------------------+ + | `Ray | | Intense Pulsed | | DoubleTree | + | Osborn `__ | | Argonne National | | | + | | | Laboratory | | | + +-------------------+---+-------------------+---+-------------------+ + | `Peter | | Spallation | | DoubleTree | + | Peters | | Neutron Source, | | | + | on `__ | | National | | | + | | | Laboratory | | | + +-------------------+---+-------------------+---+-------------------+ + | `Thomas | | Los Alamos | | Berkeley | + | Proff | | National | | Travelodge, 1820 | + | en `__ | | | | | + +-------------------+---+-------------------+---+-------------------+ + | Jiro Suzuki | | J-Parc | | | + +-------------------+---+-------------------+---+-------------------+ diff --git a/source/niac/NIAC2006LBL_photos.rst b/source/niac/NIAC2006LBL_photos.rst new file mode 100644 index 00000000..054dcf76 --- /dev/null +++ b/source/niac/NIAC2006LBL_photos.rst @@ -0,0 +1,46 @@ +================== +NIAC2006LBL photos +================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006LBL photos + :name: NIAC2006LBL_photos_niac2006lbl-photos + :class: page-title + + .. rubric:: Photos from NIAC 2006 at LBL + :name: photos-from-niac-2006-at-lbl + + .. rubric:: NIAC2006LBL-PRJ4.jpg + :name: NIAC2006LBL_photos_niac2006lbl-prj4jpg + + ==================================================== ======= + ![ NIAC2006LBL-PRJ4 image + 600px](NIAC2006LBL-PRJ4.jpg " NIAC2006LBL-PRJ4 image 600px") + ==================================================== ======= + + .. rubric:: NIAC2006LBL-PRJ5.jpg + :name: NIAC2006LBL_photos_niac2006lbl-prj5jpg + + ==================================================== ======= + ![ NIAC2006LBL-PRJ5 image + 600px](NIAC2006LBL-PRJ5.jpg " NIAC2006LBL-PRJ5 image 600px") + ==================================================== ======= + + .. rubric:: NIAC2006LBL-PRJ6.jpg + :name: NIAC2006LBL_photos_niac2006lbl-prj6jpg + + ==================================================== ======= + ![ NIAC2006LBL-PRJ6 image + 600px](NIAC2006LBL-PRJ6.jpg " NIAC2006LBL-PRJ6 image 600px") + ==================================================== ======= + + .. rubric:: NIAC2006LBL-PRJ7.jpg + :name: NIAC2006LBL_photos_niac2006lbl-prj7jpg + + ==================================================== ======= + ![ NIAC2006LBL-PRJ7 image + 600px](NIAC2006LBL-PRJ7.jpg " NIAC2006LBL-PRJ7 image 600px") + ==================================================== ======= diff --git a/source/niac/NIAC2006_Scanning_Group.rst b/source/niac/NIAC2006_Scanning_Group.rst new file mode 100644 index 00000000..efd67ebd --- /dev/null +++ b/source/niac/NIAC2006_Scanning_Group.rst @@ -0,0 +1,193 @@ +======================= +NIAC2006 Scanning Group +======================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006 Scanning Group + :name: NIAC2006_Scanning_Group_niac2006-scanning-group + :class: page-title + + Definitions for some measurement classes: + + - Triple axis definition: + `NXmonotas-NIAC2006 `__ + - Reflectometry definition: + `NXmonoref-NIAC2006 `__ + - TOF Reflectometry definition: + `NXtofnref-NIAC2006 `__ + + .. rubric:: Session 1 + :name: session-1 + + - Paul Kienzle (NIST) + - Nick Maliszewskyj (NIST) + - Stephen Cotrell (RAL) + - Ron Ghosh (ILL) + - Mark Konnecke (PSI) + - Laurent Lerusse(RAL) + - Stefan Flemming (HMI) + - Jens-Uwe Hoffmann (HMI) + + #. A scan is a set of tuples. + + The intention is to associate intensity data with a collection of + independent variables (e.g., motor positions, tunable physical + quantities, etc.). + + Scan dimension is the slowest moving dimension, and is of length + np (number of points). + + Scans can be an extension to "sit and count" measurements and may + therefore be applied to parametric studies (e.g., varying sample + temperature). + + #. Components of the tuples are stored in separate vectors in the + instrument definition. + + Components/environment parameters which can change during the scan + may have an additional scan dimension, as will monitors and + detectors. Scalars become vectors. + + The vectors are stored where they usually are in the instrument + definition, and linked to from NXdata. We rejected the idea of + storing an arbitrary state in the instrument definition and + storing the vectors in a new NXscan class even though this would + mean that further entries in the file could link to the instrument + rather than having to copy all the details of the instrument + definition. + + #. Multidetector systems have an additional dimension, nd the + number of detectors. + + Some instruments have multiple moving detectors, e.g., separated + by 5 degrees. If these are fixed relative to each other and do not + have an analyzer then the resulting bank of detectors can be + treated as a linear detector with gaps and no special encoding is + needed. + + If the detectors can move relative to each other, or if they have + separate analyzers, then we need a bank of detectors and + analyzers. The Q/HKL coordinates are defined in NXsample as usual, + but there is an additional leading dimension of length nd for each + detector angle and analyzer. Quantities that can be used as + dimension scales must have the same dimensionality as the stored + dataset (to make the association of intensity data with the other + members of the measurement tuple). + + #. Optional components such as polarizers and analyzers are + listed. + + Optional components possibly appear on the particular class of + instrument though not required. Software which claims to fully + support e.g. monochromatic reflectometers should treat polarizers + and analyzers correctly. + + #. Sample contains optional momentum transfer \|Q\| for powder + data samples with no HKL. + + #. Agree on the definition of sample. + + #. Agree to not included scan range metadata in the file. + + Applications which want to help the user select the appropriate + runs will need to keep track of the range of data in the datafiles + themselves. This may be part of the data catalogue at the + institution (but not explicitly in the datafile?). + + .. rubric:: Session 2 + :name: session-2 + + Present: NickM, MarkK, PaulK, MatthiasD, Jens-UweH + + - How are detectors associated with detector number in the bank + of analyzer case? Or is there only one detector with an + additional dimension? [option 2] + + - Are we using names such as precollimator_analyzer or are we + using NXgeometry.component_index instead to figure out where + things are. Latter is slightly more work for reduction, but + otherwise better. [answer: use symbolic name in NXdata and link + to appropriate element for varying; can reconstruct order from + geometry; NXgeometry.component_index is required for each + component; names of particular components are part of the + definition, matching the names in the NXdata] + + - What happens with multiple beam paths? [ignore this issue for + now since we invented analyzer banks] + + - How do we know it is a scan? + - What about scan intent, such as spec/back/slit and ++/" + polarization? + - Where to store start time for each measurement? + + - NXmonitor? Okay. + - NXdata? Data doesn"t otherwise contain data. + - NXentry? Okay. + - New NXscan class? Too complex, unless needed for other + things. + - NXlog? No synchronization with scan points in general. + - NXsample? Maybe. + + - Definition should list fields and maybe attributes needed for + standard reduction for that instrument class; others should be + dropped from definition. [agreed elsewhere] + + - Monitor and detector need efficiency and dead time correction + information [out of scope] + + - Need NXbeamstop for details such as shadow on the detector. + + - Polarizer/flipper: reduction only wants the angle of incidence + on the sample, not things such as flipper current from which it + is derived. Alternatively, use a scan intent tag such as + polarization=++. [unresolved] + + - Links to calibration files [out of scope] + + - Partial reduction [out of scope] + + - Summary data + - treated data + - excluded data + - resolution function + + - TAS [agreed] + + - Fewer collimator types available than in NXcollimator is + this what we want? Similarly for filter. [use base component + as is] + - HKL in sample rather than detector still feels wrong. + [overruled] + - Add efficiency, deadtime and sampled portion to monitor + description [out of scope] + - Polarization analysis: + + - Store cross section measurements in separate NXentries + [agreed] + - Need refinements to NXflipper, NXpolarizer base classes + [deferred] + - Still need symbolic means of identifying which cross + section is which [deferred] + + - Reflectometry [good progress] + + - Generic scan for things which are not reflectometry + measurements? [out of scope] + - How to link to background and slit scan? [deferred] + - NXcrystal is missing wavelength spread [calculate from + mosaic] + - How to store slits; how to reference in-plane and out of + plane slits? [box or slit; need "vertical/horizontal slit" + shapes in NXshape] + - Raw counts may be meaningless without normalization. + [deferred] + - Combine spec, back, slit, rock for all +- polarization in + one entry? Or use separate entries? [separate] + - Scan start times [in NXlog called "timer"] + + Note: Paul Kienzle added wavelength_spread back into NXcrystal. + May want to simply list the formula for calculating it from other + NXcrystal fields instead. diff --git a/source/niac/NIAC2006_Synchrotron_Group.rst b/source/niac/NIAC2006_Synchrotron_Group.rst new file mode 100644 index 00000000..dc88494d --- /dev/null +++ b/source/niac/NIAC2006_Synchrotron_Group.rst @@ -0,0 +1,131 @@ +========================== +NIAC2006 Synchrotron Group +========================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006 Synchrotron Group + :name: NIAC2006_Synchrotron_Group_niac2006-synchrotron-group + :class: page-title + + .. rubric:: Nexus " Synchrotron breakout group + :name: NIAC2006_Synchrotron_Group_nexus--synchrotron-breakout-group + + These are notes from our first discussion on 2006-02-01 + + present : AG (ESRF), RW (ESRF), PJ (APS), CM (Soleil), SP + (Soleil), SC (Diamond), LL (CCLRC,RAL) + + RW " ESRF has their own format but willing to adopt + + PJ " need an international collaborative effort, EPICS low level + + SP " Soleil has adopted Nexus, need tools, developed a tango + generic system store data in Nexus, NO DATA to store yet, need to + start quickly to store data, do not need a complete DTD + + SC " committed to Nexus, MX beamlines will store imageCIF, prefer + to store data in Nexus in the long term, EPICS low level + simulators, simple classes to start with + + LL " working on catalogue information, TOF meta-data definition, + data portal to access different type of data for modelled and + measured data + + PJ " basic questions about which class contains which ? + + .. rubric:: PROPOSED CLASSES + :name: proposed-classes + + - COMMON + + - source + - insertion device + - bending magnet + + - INSTRUMENTS + + - tomography + - pin hole saxs + - exafs + - powder diffraction + - single crystal diffraction + - protein crystallography + + - BEAMLINE COMPONENTS + + - bpm + - goniometer + + - DETECTORS + + - ccd + - psd + - ionisation chamber + - opaque data (image plates, other large data slugs) + + .. rubric:: NXsource additions + :name: nxsource-additions + + +--------+------+-------------+---+--------------------------------------------------+ + | Name | Type | Description | | | + +========+======+=============+===+==================================================+ + | mode | | NX_CHAR | | synchrotron mode e.g. single bunch, multi bunch | + +--------+------+-------------+---+--------------------------------------------------+ + | top_up | | NX_BOOLEAN | | flag indicating top-up mode | + +--------+------+-------------+---+--------------------------------------------------+ + + *NXsource is more like NXfacility for us* + + .. rubric:: NXinsertion_device + :name: nxinsertion_device + + ========= ==== =========== = ========================================= + Name Type Description + ========= ==== =========== = ========================================= + name NX_CHAR name of insertion device (ID33, UD02) + type NX_CHAR undulator, wiggler, + gap NX_FLOAT gap in mm + taper NX_FLOAT taper in mm + phase NX_FLOAT phase in degrees + poles NX_INT number of poles + length NX_FLOAT length of insertion device + power NX_FLOAT total power delivered by insertion device + energy NX_FLOAT energy of peak + bandwidth NX_FLOAT bandwidth of peak energy + harmonic NX_INT harmonic of peak + spectrum NXdata spectrum of insertion device + geometry NXgeometry position, orientation of insertion device + ========= ==== =========== = ========================================= + + .. rubric:: NXbending_magnet + :name: nxbending_magnet + + +-----------------+------+-------------+---+-------------------------------------------+ + | Name | Type | Description | | | + +=================+======+=============+===+===========================================+ + | name | | NX_CHAR | | name of bending magnet | + +-----------------+------+-------------+---+-------------------------------------------+ + | critical energy | | NX_FLOAT | | critical energy | + +-----------------+------+-------------+---+-------------------------------------------+ + | bending radius | | NX_FLOAT | | | + +-----------------+------+-------------+---+-------------------------------------------+ + | spectrum | | NXdata | | spectrum of insertion device | + +-----------------+------+-------------+---+-------------------------------------------+ + | geometry | | NXgeometry | | position, orientation of insertion device | + +-----------------+------+-------------+---+-------------------------------------------+ + + .. rubric:: Questions + :name: questions + + #. Can we have NX_BOOLEAN ? + #. Do we have to use microamp units for current ? + #. Why is NXmonitor not NXdata ? + + .. rubric:: IDEAS + :name: ideas + + NXbeam_position_monitor could be a separate class (subclass of + NXlog) ? diff --git a/source/niac/NIAC2006_TOF_Group.rst b/source/niac/NIAC2006_TOF_Group.rst new file mode 100644 index 00000000..1ceff13f --- /dev/null +++ b/source/niac/NIAC2006_TOF_Group.rst @@ -0,0 +1,215 @@ +================== +NIAC2006 TOF Group +================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2006 TOF Group + :name: NIAC2006_TOF_Group_niac2006-tof-group + :class: page-title + + .. rubric:: Time-of-Flight Working Group + :name: time-of-flight-working-group + + - `Freddie Akeroyd `__ + - `Franck Cecillon `__ + - `Ray Osborn `__ + - `Peter Peterson `__ + - `Thomas Proffen `__ + - `Jiro Suzuki `__ + + This group was charged with discussing matters arising from the + [NXTOFRW + + - NeXus Time-of-Flight Raw File Format (simple sit and count + case)](TOFRaw.html "wikilink") proposal in preparation for a + full group discussion. + + .. rubric:: Summary of main proposals in `TOFRaw `__ + :name: summary-of-main-proposals-in-tofraw + + #. Some new meta-data names in NXentry for archiving and + cataloguing of data + #. Some thoughts about scans (now moved to + `NXTOFRWSC `__ and being considered by the + `Scanning Group `__) + #. General and Area detector specific NXdetector + #. Additional options for specifying pixel geometry with area + detectors (edges, corners, etc.) + #. New NXdetector_groups class for logically grouping and + labelling detector elements + #. Representing hardware ganging of detectors + + .. rubric:: General, linear and Area detector specific NXdetector + :name: general-linear-and-area-detector-specific-nxdetector + + In all the definitions below we will leave out the Time-of-flight + array index as what we are discussing is equally valid for non + time-of-flight instruments. One new member of type NXgeometry + called **origin** is introduced into all NXdetectors - this member + is used to define a logical centre of the detector and its + `NXshape `__ member defines a bounding box for the + whole detector bank/array. If the `NXgeometry `__ + instance **geometry** within NXdetector is used to specify pixel + locations, it should be define positions relative to this detector + origin. + + .. rubric:: Inheritance of definitions + :name: inheritance-of-definitions + + To aid with making definitions clearer we spent some time + considereing an inheritance system for NeXus. One method would be + to use a period (.) in a class name to denote inheritance and so + define classes called NXdetector.area and NXdetector.point which + would imply they inherited from NXdetector. The API would need a + minor change so that is you asked for **getnext("NXdetector")** it + would not look for an exact match of this string, but look for any + NeXus class that started with the prefix "detector" and so would + return either an NXdetector.area or NXdetector.point etc. By using + this (.) method the reading API does not need to know about + separately about the inheritance structure as it is encoded in the + name of the item when it is written by the API. + + Though we would not introduce such inheritance into the API at + thois instance, it is something that is needed. For the moment we + will just have an NXdetector with the **layout** variable + indicating the type (area, point or linear) + + .. rubric:: NXgeometry revisited + :name: nxgeometry-revisited + + Before giving the definitions a quick recap of + `NXgeometry `__ is in order. This class, through + its members `NXtranslation `__, + `NXorientation `__ and + `NXshape `__, allows the position, orientation and + physical extent (size) of an object, or set of objects, to be + specified. Translation and orientation can be relative i.e. with + respect to an arbitrary origin whihc is just another + `NXgeometry `__ object which defines a point in + space and a set of default axes directions. When we write + **NXgeometry[i]** in the definitions below we do not mean an array + of NXgeometry object (which is not allowed by NeXus) - instead we + are using this as shorthand for indexing the **numobj** array + dimension the `NXtranslation `__, + `NXorientation `__ and + `NXshape `__ objects within the + `NXgeometry `__ + + .. rubric:: Type 1: Point Detector + :name: type-1-point-detector + + A point detector is the most general case and represents a + collection of pixels **i** over some surface. Within the + NXdetector all pixels properties would be indxed by **i** e.g.: + + - NX_CHAR layout = "point" (Really an Enum) + - NX_INT counts[i] + - NX_FLOAT polar_angle[i] + - NX_FLOAT distance[i] + - NX_FLOAT solid_angle[i] + + If desired, additional information about each pixel (shape, + engineering position) can be added via an + + - NXgeometry geometry[i] # for each pixel + + instance **geometry**. Any detector can be represented by this + general case, though in the case of e.g. flat rectangualar + detectors it is useful to make use of simplifications introduced + by this topology (see below). + + .. rubric:: Type 2: linear Detector + :name: type-2-linear-detector + + Here we mean a collection of linear straight strips e.g. tubes. We + have two indicies: **j** will label the strip/tube and **i** the + position along the tube. All tubes must have the same number of + pixels; if not, you must use the point detector representation + above. The tubes do not need to be parallel - they just need to be + straight. Thus: + + - NX_CHAR layout = "linear" (Really an Enum) + - NX_INT counts[j,i] + - NX_FLOAT polar_angle[j,i] + - NX_FLOAT distance[j,i] + - NX_FLOAT solid_angle[j,i] + + So far this just looks like the point detector, but with two array + indices rather than one. However when we start adding geometry + information the differences become more clear. As the tubes are + straight we need only specify a location of the tube centre and an + offset along the tube. Thus: + + - NXgeometry geometry[j] # defines tube/strip centre; each + NXshape member give the tube size and shape; each NXorientation + member rotates the axes such that **x** points along each tube. + - pixel_offset[i] # offset from tube centre of each pixel centre + - pixel_size[i] # size of each pixel + + .. rubric:: Type 3: Area Detector + :name: type-3-area-detector + + Here we have a rectangle for which each position can be defined by + two indices: **i** will label the pixel along the local detector + **x** axis and **j** the pixel along the local y axis. Using a + third index **k** allows us to represent a group of such detectors + so: + + - NX_CHAR layout = "area" (Really an Enum) + - NX_INT counts[k,j,i] + - NX_FLOAT polar_angle[k,j,i] + - NX_FLOAT distance[k,j,i] + - NX_FLOAT solid_angle[k,j,i] + + As the detector is a rectangle we just need to specdify x and y + offsets from the centre to indicate each pixel. Thus: + + - NXgeometry geometry[k] defines each detector centre and extent + - pixel_offset_x[k,i] # offset from detector centre of each + pixel"s x centre + - pixel_offset_y[k,j] # offset from detector centre of each + pixel"s y centre + - pixel_size_x[k,i] # x extent of pixel + - pixel_size_y[k,j] # y extent of pixel + + .. rubric:: Hardware detector ganging + :name: hardware-detector-ganging + + `TOFRaw `__ originally suggested using an + **\_unganged** suffix on the ungrouped elements e.g. + polar_angle_unganged. It was decided that creating a substructure + within the NXdetector and putting the information there was better + so we will now have e.g. + + - detector.counts[i] - grouped values + - detector.polar_angle[i] - grouped values + - detector.detector_number[i] - identifier for each grouped + detector + - detector.gang.polar_angle[j] - raw values + - detector.gang.detector_number[j] - identifier for each raw + detector + + As for showing the mapping scheme, a simple scheme would be + + - detector.gang.grouping[j] - gives the grouped value **i** + appropriate for each detector element **j** (only allows 1->1 + mapping) + + - An alternative is the gang_count and gang_index method in + `TOFRaw `__, but this does require sorting of the + polar_angle etc. arrays prior to writing to the file + + .. rubric:: Proposals + :name: NIAC2006_TOF_Group_proposals + + #. That the new data items in required in NXentry and NXuser for + archiving be ratified. `Laurent + Lerusse `__ has volunteered to produce a + description such that any instruement definition that wishes + can "conform to" this. + #. That NeXus implement inheritance in definitions and classes by + a method yet to be finalised. + #. That the three types of detector representation are accepted diff --git a/source/niac/NIAC2007.rst b/source/niac/NIAC2007.rst new file mode 100644 index 00000000..8fa34351 --- /dev/null +++ b/source/niac/NIAC2007.rst @@ -0,0 +1,379 @@ +================= +NIAC2007 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2007 + :name: NIAC2007_niac2007 + :class: page-title + + .. rubric:: NIAC Meeting - September 2007 + :name: NIAC2007_niac-meeting---september-2007 + + The next meeting of the `NeXus International Advisory + Committee `__ will be held at the + `Hahn-Meitner-Institut `__ in Berlin, Germany. + The meeting is planned for September 24-26, 2007. + + .. rubric:: Location + :name: NIAC2007_location + + In the `map of the + area `__ you find the gate + called "Pforte". On the backsite is the cantina. The guest house + is in building U. The room LS 206 is in the building LS on the + first flour and sign with "BENSC Seminarraum". + + The office of Jens-Uwe Hoffmann is in A 241 (1st flour). + + .. rubric:: Accommodation + :name: accommodation + + Accommodation will be at the HMI guest-house on the `HMI campus + Wannsee `__. The + rate for a single room is for the first overnight stay 34 and 24 + for every following one (double room 52 /34 ). *It is not possible + to pay with credit card, sorry.* `Jens-Uwe + Hoffmann `__ + `1 `__ is you local contact for + reservation and access authorization, please send your name, + address and your **passport number**. It is not possible to pay by + credit card, sorry. + + Arriving information `to Berlin + Wannsee `__. + + **Sunday Special** + + On Sunday you must take the bus from the station in Wannsee to + Wilhelmplatz with line 118. + + To plan your trip from the airport Tegel to the HMI use this link + + http://www.fahrinfo-berlin.de/Fahrinfo/bin/query.bin/en?from=Flughafen%20Tegel%20%26%23x0028;Berlin%26%23x0029;&to=Wilhelmplatz%20%26%23x0028;Berlin%26%23x0029;&REQ0JourneyStopsSA1=1&REQ0JourneyStopsZA1=1&&) + + you have only set your departure time/date and click the button + "search connection". + + Please note, you must walk form the bus stop Wilhelmplatz, + straightforward on the Schferstra e and Glienicker Stae to the + end. + + http://maps.google.de/maps?f=d&hl=de&geocode\ =&saddr=52.412969,13.141859&daddr=Glienicker+Stra%C3%9Fe+100,+Wannsee+14109+Berlin,+Berlin,+Berlin,+Deutschland&mrcr=0&mrsp=0&sz=16&mra=dme&sll=52.411988,13.139091&sspn=0.008874,0.016437&ie=UTF8&z=16&om=1 + + Check-in for the guest house is at the HMI gate. There you get you + badge. + + The cantina is open for breakfast at 8:30 on Monday. + + .. rubric:: Conference Fee + :name: NIAC2007_conference-fee + + We impose a conference fee of about 100 per person for coffee, + lunch, etc. For bank information follow this link: + ` `__\ http://www.hmi.de/bensc/misc/flat-cone/nexus/NIACinfo.html + + .. rubric:: List of Attendees + :name: NIAC2007_list-of-attendees + + If you are interested in attending (and not already on the `list + of attendees `__), contact `Jens-Uwe + Hoffmann `__. + + .. rubric:: Proposed Agenda + :name: NIAC2007_proposed-agenda + + .. rubric:: Timetable + :name: timetable + + All topics that are discussed within the whole group will meet in + LS 206. + + +-------------------------------+ + | Monday 24th September 2007 | + +===============================+ + | Time | + +-------------------------------+ + | 9:00 - 9:15 | + +-------------------------------+ + | 9:15 - 12:00 | + +-------------------------------+ + | 12:00 - 13:00 | + +-------------------------------+ + | 13:00 - 18:00 | + +-------------------------------+ + | | + +-------------------------------+ + | | + +-------------------------------+ + | Tuesday 25th September 2007 | + +-------------------------------+ + | Time | + +-------------------------------+ + | 9:00 - 10:00 | + +-------------------------------+ + | 10:00 - 12:00 | + +-------------------------------+ + | 12:00 - 13:00 | + +-------------------------------+ + | 13:00 - 16:00 | + +-------------------------------+ + | 16:00 - 17:00 | + +-------------------------------+ + | 20:00 | + +-------------------------------+ + | | + +-------------------------------+ + | Wednesday 26th September 2007 | + +-------------------------------+ + | Time | + +-------------------------------+ + | 9:00 - 10:30 | + +-------------------------------+ + | 10:30 - 12:00 | + +-------------------------------+ + | 12:00 - 13:00 | + +-------------------------------+ + | 13:00 - 15:00 | + +-------------------------------+ + | 15:00 | + +-------------------------------+ + | | + +-------------------------------+ + + .. rubric:: M1: General Business + :name: m1-general-business + + - Welcome and Introduction + - Review of NIAC"2006LBL minutes + + - `NIAC Action Items `__ + - `Open + tickets `__ + + - `Renew members `__ + - Elect chair, executive secretary, and technical committee chair + - Path forward for NeXus - overview + + - Future of NAPI + - Future of definitions + + - v2.1 - additions to current definitions + - v3.0 - what is this + + .. rubric:: M2: Policy discussion + :name: m2-policy-discussion + + - Documenting policy + - General policy questions + + - `netCDF `__ + - `imgCIF `__ + - `strainet `__ + - ASI^2 + + - Definition policy questions + + - metaDTD vs Schema (XSD) + - Definition URL declaration + - Object oriented definitions, `Marks + suggestion `__ + - NeXusBeans + + .. rubric:: Unscheduled + :name: unscheduled + + .. rubric:: Geometry + :name: geometry + + - Ratify `Coordinate Systems `__ + - Explicit geometry definition in base class definition + - New shapes + + - Cylinder + - Conic section + + .. rubric:: Tech Group Meeting + :name: tech-group-meeting + + Led by `Akeroyd `__ + + - Definition URL discussion + - NXtranslate + - NAPI for object oriented languages + - Utility API ported to C - who and when + - New API routines + - IDL NeXus API + - Review `open + tickets `__ + - Python binding + - Object oriented changes + + .. rubric:: NeXus Supervised Applications + :name: NIAC2007_nexus-supervised-applications + + - NXtranslate - anything to NeXus converter + - TVneXus - viz package + - NXextract - NeXus to anything converter + - Metadata extract + - HMI DataCollector + + .. rubric:: Ratify Definitions + :name: ratify-definitions + + - Archive + - ScanRaw (`G"tz `__) + - Muon instruments (`Cottrell `__) + - `Event Data `__ - lessons learned + (`Peterson `__) + + .. rubric:: Break-out Groups + :name: break-out-groups + + - ScanRaw Goetz + - NXsas instrument definition Koennecke + - Documenting definitions Peterson + - Flat-cone diffractometer Hoffmann + - Synchrotron Poirier + - CCD Jemian + - Tech group Akeroyd + + .. rubric:: Suggested Discussion Topics + :name: suggested-discussion-topics + + .. rubric:: `Jens `__ + :name: -jens + + - Flat-Cone Diffractometer Definition + (`Details `__) + - NXcrandle Proposal + - Strainet Proposal + - Software development + + - data collector and configuration tool + - TVneXus, data analysis tool + + - Visit Reactor BER II + + .. rubric:: `Steve `__ + :name: -steve + + - Definitions for Muon Instruments + - Software development + + - Extensions to NXtranslate + + .. rubric:: `Nick `__ + :name: -nick + + - Ratify the Coordinate Systems definition from Freddie. + http://www.nexusformat.org/Coordinate_Systems + - Explicit geometry definition in base class definition + - Proposal: Cylindrical geometry detectors for powder diffraction + - Proposal: Endorse netcdf as data model for Nexus + - Proposal: imgCIF Nexus collaboration + + Proposals to follow + + .. rubric:: `Mark `__ + :name: -mark + + - Future of IDL-NeXus API + - Ratification of further instrument definitions + - I remember that we agreed at the last NIAC-Meeting to have a + kick off session towards NeXus Definitions 2.0. I wonder if + this is still on. I think Darren prepared something for this. + And so did I. But if we have more pressing business to attent + too, then this has lower priority. + + .. rubric:: `Freddie `__ + :name: -freddie + + - New API routines for handling chunked datasets: + NXchunkmakedata, NXgetchunk, NXputchunk + + .. rubric:: `Laurent `__ + :name: -laurent + + - `Archive Definition `__ + - nxingest a tool to extract metadata from a NeXus files and + store it into a reformated xml document. + - Status of NeXus/imgCif usage in the facilities (who is using + it, who is planning to and when) + + .. rubric:: Subsequent Talks + :name: subsequent-talks + + We plan some additional talks (especially for HMI colleagues, + guest are welcome) on Thursday 27th September LS 206: + + - 10:00 L. Lerusse: "STFC e-Infrastructure: Data management for + large facilities" + - 11:30 S. Flemming: INSPIRE + - 15:00 M. K"nnecke: SICS + - 16:00 O. Sauer: CARESS + + .. rubric:: Detail Information + :name: detail-information + + .. rubric:: Public Talk + :name: public-talk + + .. rubric:: Conference Dinner + :name: conference-dinner + + The conference dinner will take place at `Habel + Weinkultur `__ in Mitte, not + far from the "Brandenburger Tor" + ([http://www.berlin.de/stadtplan/map.asp?ADR_ZIP=10117&ADR_STREET=Luisenstr.&ADR_HOUSE=19&show=108 + plan]). I reserve the table at 20:00 (25. September 2007). + + I order the "Berlin Menu No. 1": + + - Berlin ceps-potato-soup with fresh marjoram + - Smoked saddle of young pork with cumin gravy on Riesling + sauerkraut with herbs potatoes + - Marinated berries with honey- poppy seed- vanilla sauce + + If somebody don"t like pork, **please inform me 10 days before!** + I will order the meals at the 17th September. + + So you can eat the "Berlin Menu No. 2" + + - Berlin cray-fish soup with crayfish tails + - Pike perch fillets roasted on the skin on black salsify with + leek and peas and to herbs- rice edge + - Apple fritters in hot pepper-cinnamon-sugar on wild berry cream + + or a "Vegetarian" Menu. + + Feel free to add this information in the `list of + attendees `__. + + There is time for a "small" sight seeing tour before or/and after + the dinner. + + Jens + + .. rubric:: Visit the BER II + :name: visit-the-ber-ii + + We can visit the experimental hall with thermal instruments and + the new and old neutron guide hall for cold neutrons. Please + inform me if you are interested or if the date is untimely for + you. + + .. rubric:: Minutes + :name: NIAC2007_minutes + + These are available `online `__ or in `pdf + format `__. + + .. rubric:: NIAC2007 photos + :name: NIAC2007_niac2007-photos + + Various people took photos at the meeting. `Take a + look. `__ diff --git a/source/niac/NIAC2007_Minutes.rst b/source/niac/NIAC2007_Minutes.rst new file mode 100644 index 00000000..c840d3c6 --- /dev/null +++ b/source/niac/NIAC2007_Minutes.rst @@ -0,0 +1,885 @@ +================= +NIAC2007 Minutes +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2007 Minutes + :name: NIAC2007_Minutes_niac2007-minutes + :class: page-title + + Version in `PDF `__ format + + .. rubric:: NIAC meeting " HMI, Berlin (Germany) 24, 25, 26 + September 2007 + :name: NIAC2007_Minutes_niac-meeting--hmi-berlin-germany-24-25-26-september-2007 + + The NIAC meeting for 2007 was held at HMI (Berlin) in September + 2007. List of attendees + + - Gwenaelle Abeille, Synchrotron Soleil, France + - Freddie Akeroyd, ISIS Facility, Rutherford Appleton Laboratory, + UK + - Stuart Campbell, Diamond Light Source, UK + - Stephen Cottrell, ISIS Facility, Rutherford Appleton + Laboratory, + - Matthias Drochner, Forschungzentrum J lich, Germany + - Stefan Flemming, The Open University, UK + - Andrew Gotz, European Synchrotron Radiation Facility, France + - Nick Hauser, Australian Nuclear Science and Technology + Organisation, Australia + - Jens-Uwe Hoffmann, Hahn-Meitner-Institut Berlin, Germany + - Pete Jemian, Advanced Photon Source, USA + - Mark Koennecke, Paul Scherrer Institut + - Laurent Lerusse, Rutherford Appleton Laboratory , e-Science + - Ray Osborn, Argonne National Laboratory, USA + - Peter Peterson, Spallation Neutron Source, Oak Ridge National + Laboratory, USA + - Fr d ric Picca, Synchrotron Soleil, France + - Stephane Poirier, Synchrotron Soleil, France + - Thomas Proffen, Lujan Neutron Scattering Center, Los Alamos + National Laboratory, USA + - Rainer Schneider, STRAINET c/o HMI Berlin, Germany + - Jiro Suzuki, KEK, Japan + + .. rubric:: Welcome + :name: NIAC2007_Minutes_welcome + + - Pete Peterson (president) gave the welcome talk. In this talk + he noted that the term of the current acting officers has come + to an end and they should either be re-elected or new officers + elected + - Nick Hauser proposed to talk about NexusBeans and object + orientation. + - Mark Koennecke mentioned that he had also prepared a talk on + object orientation. + - It was also noted that the `NXgeometry `__ + class supported boxes and cylinders. + - Nexus paper: Mark Koennecke noted that there is a publication + on Nexus which appeared as part of the ICNS proceedings + *Physica B 385-386 (2006) 1343-1345* + - There was a short discussion on scans and the role of + `TOFRawScan `__. Nick Hauser wanted to know if + there was a Nexus scan object + + ACTION : Nick Hauser to take over the + `NXgenericScan `__ definition + + .. rubric:: Thanks + :name: thanks + + - To Freddie Akeroyd for setting up the new MediaWiki + **nexusformat.org** site + - To Jens for organising the meeting + + .. rubric:: Review of Outstanding Actions + :name: review-of-outstanding-actions + + .. rubric:: Request NSF money was discussed + :name: request-nsf-money-was-discussed + + Paul Kienzle, Nick Hauser, and Peter Peterson would look into + making an NSF proposal to request for money. It was decided to + leave this action item open. + + Nick and Peter Turner mentioned they have requested and obtained + funds for doing some work with NexusBeans. + + ACTION : Pete + Nick to look into requesting money from the NSF + for Nexus + + .. rubric:: The linking problem for when you need the source and + target names to be different + :name: the-linking-problem-for-when-you-need-the-source-and-target-names-to-be-different + + This has been fixed by Mark. A new API call has been added: + + .. container:: language-plaintext highlighter-rouge + + .. container:: python + + .. code:: python + + NXMakeNamedLink() + + .. rubric:: There is no explanation on the wiki on how to change a + Nexus class definition + :name: there-is-no-explanation-on-the-wiki-on-how-to-change-a-nexus-class-definition + + ACTION : Pete Peterson to explain how to change a definition + + .. rubric:: Some definitions exist only on the WIKI, some are in + source control (Subversion) + :name: some-definitions-exist-only-on-the-wiki-some-are-in-source-control-subversion + + They should all be moved into Subversion. + + Current status is that Freddie Akeroyd has moved all base classes, + but input from other NIAC members is required on naming of + instrument definitions before moving them too. This leads onto the + open question of how to name definitions like + `TOFRaw `__ " should all definitions have an NX + prefix like base classes or not? + + Pete Jemian suggests differentiating names between Instruments + + Base classes " maybe using an NXD prefix for definitions? + + .. rubric:: Check old http://www.nexus.anl.gov/ web site and + report any content that has not been moved to new WIKI server + :name: check-old-httpwwwnexusanlgov-web-site-and-report-any-content-that-has-not-been-moved-to-new-wiki-server + + This has been done - Ray suggests leaving the site up but with a + warning message that the content had been moved. + + | VOTE to redirect site (pending moving logos) : FOR = all , + AGAINST = none + | ACTION : redirect old site to new web site (Ray) + | ACTION : move logos to new web site + + .. rubric:: Write down the current responsibilities for the + officers and circulate to the committee for approval + :name: write-down-the-current-responsibilities-for-the-officers-and-circulate-to-the-committee-for-approval + + In progress (Peter Peterson) + + .. rubric:: Write a report on NeXus and submit to both the Neutron + News and Synchrotron News + :name: write-a-report-on-nexus-and-submit-to-both-the-neutron-news-and-synchrotron-news + + Assigned to Andrew G"tz and not yet done. Mark has an article in + ICNS 2005 (Physica B 385"386 (2006) 1343"1345 ). Everyone is + encouraged to cite this paper. + + ACTION : Andy to publish the article, don"t wait for comments, set + a deadline + + .. rubric:: Existing definitions will be rendered in coloured + meta-DTD and table formats on website + :name: existing-definitions-will-be-rendered-in-coloured-meta-dtd-and-table-formats-on-website + + Completed by Freddie Akeroyd + + .. rubric:: Style sheets (XSLT) will be created to convert + definitions into colorized meta-DTD and table formats + :name: style-sheets-xslt-will-be-created-to-convert-definitions-into-colorized-meta-dtd-and-table-formats + + Assigned to Darren Kelly + + .. rubric:: Update website with constitution changes (some are + even from the last meeting) + :name: update-website-with-constitution-changes-some-are-even-from-the-last-meeting + + Currently Unassigned + + ACTION : Pete Peterson to update website with constitution changes + + .. rubric:: Modify/add base class definitions in accordance with + what was voted on in February + :name: modifyadd-base-class-definitions-in-accordance-with-what-was-voted-on-in-february + + Currently Unassigned. Some of the TOF base class has not made it + to SVN. + + ACTION : Freddie Akeroyd to add missing TOF base class to SVN + + .. rubric:: Completed Actions + :name: completed-actions + + .. rubric:: From 2006 LBL Meeting + :name: from-2006-lbl-meeting + + - Freddie Akeroyd - to move NeXus code and definitions from CVS + to Subversion + - Freddie Akeroyd - to move NeXus mailing lists from anl.gov to + http://lists.nexusformat.org/ + - Freddie Akeroyd - to provide a Mediawiki extension for + rendering definitions held in Subversion onto a Wiki page in a + tabular format on the fly + - Mark K"nnecke and Raymond Osborn - Shut down existing website + and mirror, leaving a redirection page to new site. (The + original website at http://www.nexus.anl.gov/ contains a + redirect message, but is still online so that NIAC members can + check for content missing on the wiki.) + - Peter Peterson - to write up the versioning mechanism + + .. rubric:: From 2006 ILL Meeting + :name: from-2006-ill-meeting + + - Unassigned - `NXcharacterization `__ + needs to be formalized and ratified - this has been repeated in + #11 + - Unassigned - Synchronize the website definitions with those in + cvs (the website are considered more correct) - this is + formalized as an action item at the 2006 LBL meeting + + .. rubric:: Agreed Tags for NeXus definition versions + :name: agreed-tags-for-nexus-definition-versions + + - Version 1.0 = prior to 2006-2 + - Version 2.0 = everything ratified at 2006-2 + - Version 3.0 = next version + + .. rubric:: Member Renewal + :name: member-renewal + + - Matthias Drochner " to be renewed + - Andy Gotz " to be renewed + - Peter Link " expired (no news) + - Nick Maliszewskyj " replaces Przemek for NIST + + | VOTE : to renew members FOR = all ; AGAINST = none + | ACTION : have meetings in October in the future, not in + September at the end of the fiscal year + + .. rubric:: Officer Renewal + :name: officer-renewal + + - Andy gives up secretary + - Freddie and Stuart ready to be secretary + - Nick to stay technical chair if not Mark will take it + + | VOTE :for technical chair FOR = all ; AGAINST = none + | VOTE :for Freddie and Stuart as secretary FOR = all ; AGAINST = + none + | VOTE : for Pete as president FOR = 1 ; AGAINST = none + + Nick Hauser raised the point of how to speed up adopting + proposals. Thomas mentioned there is a lack of manpower. Therefore + we need a simple web interface. Freddie suggested adding an upload + page. Mark said put new proposals on the wiki or send an email to + the NIAC via the nexus-committee mailing list. + + Andy raised the point that we need a manual. The current + documentation is very techie oriented. There is no introduction + for beginners. Ray said the wiki is the documentation. Pete Jemian + suggested making full use of the wiki and the discussion page on + the wiki. Mark said the problem is the wiki is not kept updated. + Conclusion " breakout group on how to organise wiki for users + + .. rubric:: Pete Petersons" talk - Trees + :name: pete-petersons-talk---trees + + Pete gave a fascinating talk about trees and Nexus. In his vision + Nexus would be machine validated in future versions (V2.1), object + oriented definitions (V3.0) i.e. get rid of meta-DTD + + .. rubric:: Nick"s talk - Meta-DTD vs. Schema + :name: nicks-talk---meta-dtd-vs-schema + + Schema are machine readable XML. How to generate the schema ? A + small group of specialists will do this. Use a graphical schema + editor. Easy to generate meta-DTD from schema. Tools " emacs, + Eclipse + WTP, Netbeans are all free. General interest in using + Eclipse + WTP and providing it as a web start. Jens showed his C++ + tool for defining instruments. + + PROPOSAL : canonical Nexus definitions to be stored in schema. + Meta-dtd can be generated from these + + Thomas " 3 action types " move to schema, explain tools, + + VOTE : Nexus meta-DTD to be moved to schema FOR : all ; AGAINST : + none + + Mark use schema for V3.0 and object oriented + + VOTE : Version 3.0 will be schema based + + Nick happy to manage this move with help others What other formats + should we support e.g. html, tables, uml + + .. rubric:: Mark"s talk " Primer on Nexus and object oriented + :name: marks-talk--primer-on-nexus-and-object-oriented + + Mark presented uml diagrams for the different base classes. Thomas + said an Instrument definition is actually an experiment definition + i.e. analysis-driven. Thomas suggested having multiple instrument + classes stored for the same instrument stored in the same file + e.g. GSAS class and Instrument class. + + Nick presented NexusBeans as a Java technology. Ray said there is + general agreement that an object oriented type api is the way to + go. Pete Petersons"s talk " on URL"s URI " version, implementation + version e.g. + + `` ``\ ```http://www.nexusformat.org/instruments/NXmonotas`` `__ + + Laurent suggested do not include the version in the uri. Freddie + wanted to have a url and uri. + + .. rubric:: imgCIF + :name: imgcif + + A discussion ensued on imgCIF and what is happening in this field. + Nick read an email from Herbert Bernstein. Freddie mentioned the + imgCIF meeting in Manchester. There it was decided that the first + step is to do an imgCIF to NX and back converter, Freddie and + Herbert Bernstein will handle this. Stuart is our official contact + with imgCIF. + + .. rubric:: netCDF + :name: netcdf + + Nick gave a talk about netCDF. netCDF has a number of advantages + e.g. gives array manipulation in Java. Nick proposes to promote + netCDF within the Nexus community as a tool for reading and + writing HDF5 in Nexus. netCDF have added support for HDF5. Mark + said there are a lot of issues to consider, array manipulation of + netCDF is an advantage, we need to discuss with netCDF team to see + how far they can go to support us. Pete P. said there is a + discussion on an Nxutility api. Nick said netCDF provides a memory + object. Pete P. discussion is about an in memory data format. Ray + needs a white paper with more information. Pete P. create a + separate api based on netCDF. Nick noted if the NIAC adopts netCDF + for internal data representation then this opens the way to + sharing more code. Andy suggested to start sharing netCDF between + a few institutes to gain more experience and then report back to + the committee before making a general decision on whether to + support netCDF or not. + + CONCLUSION : more people to try out netCDF and bring this up again + at the meeting + + .. rubric:: Nexus top level entry + :name: NIAC2007_Minutes_nexus-top-level-entry + + Ray relayed a request from microscopists to have a top level entry + which identifies Nexus files e.g. /nexus. Mark said we should + invite someone from this community to discuss with us. NXEntry is + an attribute on a name and not a namespace. This could be done + automatically by the napi. Nick said there was a problem with + conformity and validation. + + .. rubric:: Laser community want to use Nexus + :name: laser-community-want-to-use-nexus + + Laurent mentioned the laser community would like to use Nexus. + Laurent will the representative + + .. rubric:: Argonne Scattering and Imaging Institute + :name: argonne-scattering-and-imaging-institute + + Ray gave a talk on the ASI^2 proposal. If it gets funding then + would be largest investment by the DOE in software. Other + communities are solving problems which are of interest to us, idea + is to get these people on board. How should this group interact + with the Nexus group ? ASI^2 could replace IPNS as institute. Pete + Jemian proposed next NIAC to be held at Argonne + + .. rubric:: Improving Scientific efficiency at APS + :name: improving-scientific-efficiency-at-aps + + Pete Jemian gave a talk on Improving Scientific Efficiency at APS. + He showed the canonical Scientific Workflow Diagram " feedback is + open loop at the moment. There is a working group headed by Ken + Evans. APS has created a Scientific Software Section for solving + local challenges as opposed to the ASI^2 which is for grand + challenges. The group consists of one person at present, it will + grow in time. There is a pilot visualisation application with + 1-ID. There is resistance to Java + Eclipse - Python is the lingua + franca of scientists. This group could look after a Nexus person. + Nick said the NIAC should endorse this position. The group is + interested in helping the community. Ray said we need funding for + Nexus meetings. Thomas suggested this should be contributed by + each institute. + + | ACTION : Pete P to talk to SNS to setup a fund for Nexus + MeetingsBeans + | ACTION : everyone to talk to their management on how much they + can contribute to the fund + | ACTION : everyone to send their Berlin trip costs to the + secretaries + | ACTION : Thomas to look into how much it costs to finance half a + person + + Next meeting candidates are : + + - Argonne + - Australia (NOBUGS) + - SNS + + CONCLUSION : next NIAC meeting at NOBUGS with 6 month meeting + possibility at Argonne if ASI^2 is funded + + There was a long discussion about breakout groups. + + .. rubric:: Nexus API OO + :name: NIAC2007_Minutes_nexus-api-oo + + Mark gave a talk about the Nexus OO API. He made the following + proposals : + + - maintain file structure as a tree in memory + - larger data sets are left on file and retrieved or written on + demand + - Nxclose, Nxflush serialise all changes to disk + - how to link items together ? + - what shall the shape of the Iterator class be ? + - how much leeway are implementers allowed ? + + There was a counter proposal by Pete Peterson. A python api which + uses the Nxfile as an object. Ray said this is not object + oriented. Ray wants to add to NXData together. Pete is against + building a Nexus scripting framework like Ray wants it. Pete P. + said for python drop swig and write python binding by hand, return + NumPy objects. Pete proposes to write zeroth level python binding + " strings are python strings, scalars are python basic types (he + has already done most of the work) + + ACTION : Pete to do Python binding to NumPy + + Ray will play with the Python binding to generate a library for + manipulating Nexus data + + ACTION : Ray to play with Python binding and make a proposal for + manipulating Nexus data + + Pete proposed code for C++ binding, supports void and std::vector + put_slab() Pete " current Java binding returns an object which has + to be cast to the right type, Pete proposes to extend the api to + return a typed type + + ACTION : Freddie to add Pete"s C++ binding to be added to Nexus + source code distribution + + Mark would like templates to be an option in the C++ binding Pete + would like to have doxygen comments in the C napi, + + ACTION : Mark will add doxygen comments to napi.h + + Mark proposed an IDL binding + + ACTION : Freddie to add Mark"s IDL binding to Nexus repository + + .. rubric:: TRAC items + :name: trac-items + + Went through open items and closed those that could be. Discussion + on memory allocation in the NXU utility library + + ACTION : Freddie to add an *Unassigned* user to TRAC backend + + Could we add an external link to a non-Nexus file + + - Pete " should we write native bindings for Matlab, IDL, etc + - Mark " no, NAPI is 3 to 4000 lines + + .. rubric:: Nxtranslate + :name: nxtranslate + + Pete P. gave a talk on Nxtranslate, a plugin based system. All + plugins are statically linked. Walked through test_simple.nxs + example. SNS uses Nxtranslate. Freddie has developed a dynamic + retriever which uses dynamic shared libraries. + + .. rubric:: HDF4 + :name: hdf4 + + HDF4 to be marked as deprecated. New users should use only HDF5. + + VOTE : all in favour of deprecating HDF4 i.e. do not add new + features to NAPI for HDF4 + + FOR = all-2 ; AGAINST = 2 (Freddie + Steve) + + ACTION : Freddie to put a How To on the wiki for Nxtranslate and + other programs with links to the pdf and doxygen + + .. rubric:: Documentation + :name: documentation + + | ACTION : Pete to propose an outline for a Nexus manual in + docbook + | ACTION : Freddie to look how to integrate this into the wiki + + Long discussion about how to integrate the docbook into the wiki + and include user comments. Frederic Picca suggested taking a look + at asciidoc. Pete P comments should go on the wiki, changes on + subversion. + + .. rubric:: NXGeometry + :name: nxgeometry + + Mark presents simple coordinate system + polar coordinate system. + Ray corrected Mark"s notion of polar angle, Ray says polar angle + should be defined wrt to beam direction (Z). Pete P. said do not + call it theta or whatever, it should be called polar angle. + + | ACTION : Pete to dig out jpeg demonstrating NXGeometry + | ACTION : document the McStas convention for coordinate + transformation i.e. translate then rotate or vice versa " pick + one + + Jens wants to store only the information about the physical + information concerning the detector. Pete P. said do consumer"s + need to calculate how to convert your Nxpositioners to scientific + units e.g. HKL. Ray wants to add cylindrical coordinates. + + VOTE : accept NXcone definition + + FOR = all ; AGAINST = none + + .. rubric:: Nxarchive + Nxingest + :name: nxarchive--nxingest + + Laurent Lerusse gave a talk on NXarchive and Nxingest. Some points + he raised : + + - do not archive multiple Nxentry, only archive metadata in first + Nxentry + - this caused discussion about not enforcing one Nxentry per + file, ICAT should be changed + - this is a limitation of ICAT + - Nxarchive is simply a definition i.e. what ICAT expects, and + does not exist per se in the Nexus file + + .. rubric:: Event data in Nexus + :name: event-data-in-nexus + + Pete Peterson gave a talk on event data in Nexus and how SNS event + data are being stored in Nexus + + ACTION : Pete P to look at th Root toolkit to see how they handle + events + + .. rubric:: Nxextract " extracting data from Nexus at Soleil + :name: nxextract--extracting-data-from-nexus-at-soleil + + Stephan Poirier gave a talk on a tool he has developed (Nxextract) + which allows data to be extracted from Nexus files into almost any + format. Some points raised : + + - tool is called Nxextract + - allows data to be extracted from a Nexus file using a + proprietary extraction language + - Pete P " would like a feature to do maths on extracted data + - why not use an existing scripting language + - binding Nxextract to a scripting language is a new project + + ACTION : Stephane to upload Nxextract to Nexus applications + + .. rubric:: Flat Cone diffractometer + :name: flat-cone-diffractometer + + Jens gave a talk on Nexus and the Flat Cone diffractometer. + + - Tvtueb a platform for analysing data from powder + flat cone + diffractometer written in VC++ and MFC + - TVNexus is the new program for doing Reciprocal Space Explorer + of Nexus files (similar to HDFView currently) + - TVNexus uses Win64 to be able to display large data sets > 4GB + + NAPI is thread safe if you read/write to different files, but not + if sharing the same Nxhandle in the different threads + + .. rubric:: Laurent " multiple Nxentry issue for archiving + :name: laurent--multiple-nxentry-issue-for-archiving + + - extended to support multiple Nxentries for indexing + - tools used to index data will not archive data if necessary + items are not found + - killed run_number , replaced with entry_identifier as string + + VOTE : replace run_number with entry_identifier + + FOR = ALL-1 ; AGAINST = 1 (Andy) ; ABSTAINED = 1 (Nick) + + VOTE on NXarchive proposal : + + FOR = all ; AGAINST = none + + | ACTION : Laurent to get NXarchive information back to base class + | ACTION : Nick to check the result with the schema + + All changes must be reflected in the base class + + .. rubric:: Rainer Schneider"s talk " STRAINET + :name: rainer-schneiders-talk--strainet + + - will make a proposal for STRAINET scanning Nexus format + - NIAC " would like to work with STRAINET and help them + - will start with powder definitions and then add missing tags + needed by scanners + + .. rubric:: Breakout groups for CCD"s + :name: breakout-groups-for-ccds + + The breakout group for CCD"s proposed adding the following to + Nxdetector to accommodate CCD + + - extended type to include "ccd, pixel, image plate, cmos" + - data_file + - flood + - flood_file + - dark + - dark_file + - spatial_distortion + - spatial_distortion_file + + Discussion on whether Nxcharacterization would be more suitable. + The flood, dark and spatial_distortion would be added as extra + types of NXcharacterization. There can be multiple + NXcharacterization entries with the NXdetector class. These would + link to either another NXentry or external file. The data_file is + added to NXdetector as an Nxnote. NXcharacterizations to be + renamed to NXcharacterisation. + + VOTE on CCD proposal : + + FOR = all ; AGAINST = none + + .. rubric:: Breakout groups for Documentation + :name: breakout-groups-for-documentation + + The breakout group on documentation reported the following : + + - Use Docbook for user manuals, including + + - introduction + - FAQ + - HowTo + - JPEGs of UML schema + + - Doxygen for source code and API + - Schema in UML + - HTML version of docbook for wiki + + Have a section for active discussions and an archive for closed + discussions (which should be marked closed). Create a "DISCUSSION" + namespace to restrict editing of these pages to NIAC members only. + The "discussion" tab would be open for everyone to edit for all + pages. + + More detailed minutes, prepared by Nick Hauser, are in the + appendix + + ACTION: Freddie Akeroyd to add voting to the wiki. + + Creation of a document editorial review committee (with initial + members Freddie Akeroyd, Peter Peterson, Ray Osborn, Nick Hauser, + Laurent L, Stuart Campbell) + + ACTION: Ray Osborn to provide the skeleton structure for the + document editorial review committee. + + VOTE to create a Definition Release Manager role : + + (VOTE): YES:ALL (12) + + This required a 2/3 majority of all committee members as it is + creating a new officer"s post: as 12 of the 17 committee members + were present and the vote was unanimous, this was achieved. + + VOTE Nick Hauser to take this role : + + (VOTE): YES:ALL (12) + + A proposal for a definition change should be discussed on the wiki + for a period of time (6 weeks to 6 months). After this a vote + would be held to ratify the changes. These would then be committed + to the trunk. Then it would be at the Definition Release Manager"s + discretion to create a release. + + .. rubric:: Meeting Closed. + :name: meeting-closed + + .. rubric:: APPENDIX 1 " Herbert Bernstein"s email + :name: appendix-1--herbert-bernsteins-email + + .. container:: language-plaintext highlighter-rouge + + .. container:: python + + .. code:: python + + ---------- Forwarded message ---------- + Date: Fri, 21 Sep 2007 01:37:27 -0400 + From: Herbert J. Bernstein + To: Peter Turner + Cc: p.turner@chem.usyd.edu.au, message@arcib.org, + "Akeroyd, FA (Freddie)" + Subject: Re: NIAC meeting (fwd) + + Dear Peter, + + Here is the current status. + + cif2nx: I have been working on a conversion utility from CIF or CBF + to a NeXus file, but with additional groups so all the CIF tags can have + a home without colliding with the existing NeXus tags. The idea will be + to then complete the cross-mapping of the CIF table-oriented structure + to the NeXus tree structure using the NeXus API and then to prune out + the duplications. So far I have the complete parse of the CIF data and + the loading of the CIF dictionaries and am working on the following + initial mapping: + + Each CIF data block maps to group NXentry, with the name of the + datablock prefixed by "NXcif_" + + Each CIF category within a CIF data block maps to a new group + NXcifcat (as a subgroup of NXentry) with the name of the CIF category + prefixed by "NXcif_" + + Each column within a CIF category maps in one of two ways depending + on whether it contains any binary sections. If there are no binary + sections, the entire column maps as a rank 2 data array with a column of + the CIF data values as strings and a column of the CIF data types as + strings. In this case the entire column is one NeXus data set with the + name of the CIF column prefixed by "NXcif_" If there are binary + sections, then instead of using one data set, a column is mapped to a + new group NXcifcol that contains multiple arrays of whatever ranks fit + the binary sections, and the data sets are given names consisting of the + row number converted to a string and prefixed by NXcif_. (This is a + rework of the approach to the handling of columns that I had been + following in which each data item in a column was a separate data set to + allow for the handling of binary section. I think this new mixed + approach will provide a reasonable balance between performance + and flexibility.) + + Each CIF save frame within a CIF data block maps to a new group + NXcifsf (as a subgroup of NXentry). Each CIF category within a CIF save + frame maps to the group NXcifcat (as a subgroup of NXcifsf in this case) + and then the columns are handled as above. + + It would be nice if we could add the packed and byte offset + compressions to the current list of NeXus compressions, but this is not + critical. + + I hope to have this first cut done and tested in a few more days, and + then I will try to upload this phase to the NeXus repository under + contrib. Freddie offered to handle the NeXus side of the code, but I + seem to be getting along well with the API, so I will try to go a little + further first. + + Once that is done, the next step is to do the denormalization of the + CIF categories, using the dictionary information that has been loaded to + identify the cases in which tables in subcategories should be broken up + and moved under the parent items in the supercategories. + + Finally, the last step will be to translate those CIF tags that match + NeXus tags into the equivalent NeXus tags. Those that don't match would + stay as CIF tags. + + nx2cif: If the cif2nx works out the other direction should be a lot + easier, since there are fewer NeXus tags than CIF tags. The biggest + problem will be preserving the finer type details from NeXus on the CIF + side. + + binutf: G. Darakev is working on integrating binutf into the NeXus + API. Thsi will allow fairly efficient handling of NeXus binaries in + XML. + + + Regards, + Herbert + + .. rubric:: APPENDIX 2 - Process and documentation breakout + session + :name: appendix-2---process-and-documentation-breakout-session + + Tuesday, 25th September, 2007. 11.00am + + Present: Peter Peterson, Ray Osborn, Laurent Lerusse, Freddie + Akeroyd, Nick Hauser. + + .. rubric:: Controlled user and developer documentation + :name: controlled-user-and-developer-documentation + + #. The list of documents to be produced. The group proposes the + following list as a minimal set of documentation required for + NeXus. + + #. Docbook for user manuals, including + + #. Introduction + #. FAQ, + #. How To + #. jpeg"s of UML schema + + #. Doxygen for source code and api + #. HTML version of docbook for wiki + + #. How is the documents produced? This group will provide a report + on the tools used for generating the documentation. + #. Who produces the documentation? Anyone from the NeXus community + may submit documentation. This group will be responsible for + editorial control & release. This group is responsible to + ensure the completeness of the documentation. + + ACTION: Nick to ensure the above actions are completed + + .. rubric:: Discussions on the nexusformat.org wiki + :name: discussions-on-the-nexusformatorg-wiki + + #. It was decided to have 2 types of Discussion. "Open forums" + open to the entire community, and "NIAC only" discussions. To + enable this, each discussion requires a namespace. The "NIAC + only" discussions are read-write to the community + #. Discussions have 2 attributes, active & closed. Closed + discussions will be marked as closed + #. The "NIAC only" discussions may have a voting attribute. Only + NIAC members may vote. + #. It was decided to have the design area in the open forum. + + ACTION: Freddie to enable voting on the wiki, and the discussion + types and attributes. + + .. rubric:: Document editorial review committee + :name: document-editorial-review-committee + + #. The document editorial review committee is Peter Peterson, Ray + Osborn, Laurent Lerrusse, Freddie Akeroyd, Nick Hauser + #. Document release manager is Nick Hauser + + ACTION: Nick to provide documentation for the tasks & + responsibilities of the document editorial review committee, + document release manager & NIAC + + ACTION: Ray to provide the structure of the user documentation + + ACTION: Freddie to provide Doxygen documentation of the API on the + web. + + .. rubric:: SQA Process + :name: sqa-process + + #. It was decided that the NeXus definitions, napi and + documentation should be versioned and packaged. Compatibility + between versions should be explicit. + #. The required version of autoconf should be in the + `README.developers `__ + file + #. SQA_process for the napi is documented at + http://www.nexusformat.org/SQA_Process + #. As part of an integrated SQA, it was proposed that releases be: + + #. Patch level releases would be unit tested and released every + 2 months, + #. Major revisions would be unit tested and a release candidate + built. Frequency of major revision is approximately every 18 + months. + + ACTION: Nick to provide a proposal to the for an integrated SQA on + the SQA discussion page + + .. rubric:: Proposals + :name: NIAC2007_Minutes_proposals + + #. Proposals are additions or modifications to NeXus class + definitions, napi & documentation. + + #. Additions are to be posted as a new article. Discussion of + the addition is posted on the discussion tab of the article. + #. Modifications are to be posted on the discussion tab of the + relevant article. + + #. When proposals are posted, it is the responsibility of the + proposer to send an email to the nexus@nexusformat.org with a + link to the proposal. + #. Discussions of a proposal will have duration of 6 weeks. Minor + impact proposals e.g. additions or modification of a class, can + be voted for after this period. Major impact proposals e.g. + additions or modifications of a class of global scope will go + to the annual NIAC for discussion and voting. diff --git a/source/niac/NIAC2007_attendees.rst b/source/niac/NIAC2007_attendees.rst new file mode 100644 index 00000000..0f6c7102 --- /dev/null +++ b/source/niac/NIAC2007_attendees.rst @@ -0,0 +1,120 @@ +================== +NIAC2007 attendees +================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2007 attendees + :name: niac2007-attendees + :class: page-title + + .. rubric:: NIAC 2007 at HMI List of Attendees + :name: niac-2007-at-hmi-list-of-attendees + + **Do not write someting in this table. The row "Guesthouse" and + "Passport number" inform you, that I receive you e-mail with this + information (sometimes problems with the spam-filter). I receipted + this only with my OK in the table. Jens** + + Attendees of the `2007 NIAC Meeting `__ at + Hahn-Meitner-Institut Berlin, Germany. + + +------------------+------------------+------------------+------+----+ + | Name | C | Guesthouse | paid | | + | | ompany/Institute | | | | + +==================+==================+==================+======+====+ + | Gwenaelle | | Synchrotron | OK | OK | + | Abeille | | Soleil, France | | | + +------------------+------------------+------------------+------+----+ + | Frederick | | ISIS Facility, | OK | | + | Akeroyd | | Rutherford | | | + | | | Appleton | | | + | | | Laboratory, UK | | | + +------------------+------------------+------------------+------+----+ + | Stuart | | Diamond Light | OK | OK | + | Campbell | | Source, UK | | | + | | | | | | + | | | | | | + +------------------+------------------+------------------+------+----+ + | Stephen | | ISIS Facility, | OK | | + | Cottrell | | Rutherford | | | + | | | Appleton | | | + | | | Laboratory, UK | | | + +------------------+------------------+------------------+------+----+ + | Matthias | | Forschungzentrum | OK | | + | Drochner | | J lich, Germany | | | + | | | | | | + | | | | | | + +------------------+------------------+------------------+------+----+ + | Stefan Flemming | | The Open | " | OK | + | | | University, UK | | | + +------------------+------------------+------------------+------+----+ + | Andrew | | European | OK | | + | Gotz | | Synchrotron | | | + | | | Radiation | | | + | | | Facility | | | + +------------------+------------------+------------------+------+----+ + | Nick | | Australian | OK | | + | Hauser | | Nuclear Science | | | + | | | and Technology | | | + | | | Organisation, | | | + | | | Australia | | | + +------------------+------------------+------------------+------+----+ + | Jens-Uwe | | Hahn- | " | OK | + | Hoffmann | | Meitner-Institut | | | + | | | Berlin, Germany | | | + | | | | | | + +------------------+------------------+------------------+------+----+ + | Pete | | Advanced Photon | OK | OK | + | Jem | | Source, USA | | | + | ian | | | | | + | | | | | | + +------------------+------------------+------------------+------+----+ + | Mark | | Paul Scherrer | OK | OK | + | Koennecke | | Institut | | | + | | | | | | + | | | | | | + +------------------+------------------+------------------+------+----+ + | Laurent | | Rutherford | OK | OK | + | Le | | Appleton | | | + | russe | | Laboratory , | | | + | | | e-Science | | | + +------------------+------------------+------------------+------+----+ + | Ray | | Argonne National | OK | | + | Os | | Laboratory, USA | | | + | born | | | | | + | _ | | | | | + +------------------+------------------+------------------+------+----+ + | Peter | | Spallation | OK | OK | + | Peterson | | Neutron Source, | | | + | | | Oak Ridge | | | + | | | National | | | + | | | Laboratory, USA | | | + +------------------+------------------+------------------+------+----+ + | Fr d ric Picca | | Synchrotron | OK | OK | + | | | Soleil, France | | | + +------------------+------------------+------------------+------+----+ + | Stephane | | Synchrotron | OK | OK | + | Poirier | | Soleil, France | | | + | | | | | | + | | | | | | + +------------------+------------------+------------------+------+----+ + | Thomas | | Lujan Neutron | OK | OK | + | Proffen | | Scattering | | | + | | | Center, Los | | | + | | | Alamos National | | | + | | | Laboratory, USA | | | + +------------------+------------------+------------------+------+----+ + | Rainer Schneider | | `STRAI | " | OK | + | | | NET `__ | | | + | | | c/o HMI Berlin, | | | + | | | Germany | | | + +------------------+------------------+------------------+------+----+ + | Jiro Suzuki | | KEK, Japan | OK | OK | + +------------------+------------------+------------------+------+----+ + | Peter Turner | | University of | OK | | + | | | Sydney | | | + +------------------+------------------+------------------+------+----+ diff --git a/source/niac/NIAC2007_photos.rst b/source/niac/NIAC2007_photos.rst new file mode 100644 index 00000000..637a2ee9 --- /dev/null +++ b/source/niac/NIAC2007_photos.rst @@ -0,0 +1,94 @@ +================= +NIAC2007 photos +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2007 photos + :name: NIAC2007_photos_niac2007-photos + :class: page-title + + .. rubric:: Pete Jemian"s photos + :name: pete-jemians-photos + + - |NIAC2007-PRJ-CIMG0432.JPG| + - |NIAC2007-PRJ-CIMG0433.JPG| + - |NIAC2007-PRJ-CIMG0434.JPG| + - |NIAC2007-PRJ-CIMG0435.JPG| + - |NIAC2007-PRJ-CIMG0436.JPG| + - |NIAC2007-PRJ-CIMG0437.JPG| + - |NIAC2007-PRJ-CIMG0438.JPG| + - |NIAC2007-PRJ-CIMG0439.JPG| + - |NIAC2007-PRJ-CIMG0440.JPG| + - |NIAC2007-PRJ-CIMG0441.JPG| + - |NIAC2007-PRJ-CIMG0442.JPG| + - |NIAC2007-PRJ-CIMG0443.JPG| + - |NIAC2007-PRJ-CIMG0444.JPG| + - |NIAC2007-PRJ-CIMG0445.JPG| + - |NIAC2007-PRJ-CIMG0446.JPG| + - |NIAC2007-PRJ-CIMG0447.JPG| + - |NIAC2007-PRJ-CIMG0448.JPG| + - |NIAC2007-PRJ-CIMG0449.JPG| + - |NIAC2007-PRJ-CIMG0450.JPG| + - |NIAC2007-PRJ-CIMG0451.JPG| + - |NIAC2007-PRJ-CIMG0452.JPG| + - |NIAC2007-PRJ-CIMG0453.JPG| + - |NIAC2007-PRJ-CIMG0454.JPG| + - |NIAC2007-PRJ-CIMG0455.JPG| + - |NIAC2007-PRJ-CIMG0456.JPG| + - |NIAC2007-PRJ-CIMG0457.JPG| + +.. |NIAC2007-PRJ-CIMG0432.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0432.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0433.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0433.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0434.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0434.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0435.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0435.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0436.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0436.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0437.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0437.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0438.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0438.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0439.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0439.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0440.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0440.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0441.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0441.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0442.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0442.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0443.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0443.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0444.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0444.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0445.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0445.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0446.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0446.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0447.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0447.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0448.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0448.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0449.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0449.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0450.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0450.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0451.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0451.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0452.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0452.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0453.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0453.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0454.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0454.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0455.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0455.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0456.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0456.JPG + :width: 600px +.. |NIAC2007-PRJ-CIMG0457.JPG| image:: ../extra_files/NIAC2007-PRJ-CIMG0457.JPG + :width: 600px diff --git a/source/niac/NIAC2008.rst b/source/niac/NIAC2008.rst new file mode 100644 index 00000000..9766f561 --- /dev/null +++ b/source/niac/NIAC2008.rst @@ -0,0 +1,171 @@ +================= +NIAC2008 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2008 + :name: NIAC2008_niac2008 + :class: page-title + + .. rubric:: NIAC meeting - October 2008 + :name: NIAC2008_niac-meeting---october-2008 + + The next meeting of the `NeXus International Advisory + Committee `__ will be held at `Rydges Cronulla Beach + Hotel `__ + in `Sydney Australia `__ on + October 30-31, 2008. This is a satellite meeting of the `NOBUGS + 2008 `__ + conference. + + .. rubric:: Conference Fee + :name: NIAC2008_conference-fee + + venue. + + .. rubric:: List of Attendees + :name: NIAC2008_list-of-attendees + + If you are interested in attending (and not already on the `list + of attendees `__), contact `Nick + Hauser `__. + + .. rubric:: Proposed Agenda + :name: NIAC2008_proposed-agenda + + .. rubric:: Thursday, October 30 + :name: NIAC2008_thursday-october-30 + + 09:00 Meeting commences + + .. rubric:: General Business + :name: general-business + + - Welcome and Introduction + - Review of `NIAC"2007HMI minutes `__ + + - `NIAC Action Items `__ + - `Open + tickets `__ + + - `Renew members `__ + - Elect chair, executive secretary, and technical committee chair + - Discus what topics are most important + - `Mission statement `__ + + Lunch + + .. rubric:: CIF + :name: cif + + - presentation by James Hester on lessons learned from CIF + standardisation + + .. rubric:: Discussion of technology for describing base classes + and instrument definitions + :name: discussion-of-technology-for-describing-base-classes-and-instrument-definitions + + - Review Darren Kelly"s latest work. Provide feedback to Darren. + - limited to one hour total + + .. rubric:: Other items + :name: NIAC2008_other-items + + 18:00 Adjourn for dinner + + .. rubric:: Friday, October 31 + :name: NIAC2008_friday-october-31 + + 09:00 Meeting commences + + 18:00 Meeting adjourns + + .. rubric:: Discussion Items + :name: discussion-items + + - Roadmap for NeXus + + .. rubric:: Instrument definitions + :name: instrument-definitions + + - Should we store pixel corners rather than centres? + - Extending NXshape to handle `Constructive Solid Geometry + (CSG) `__ + descriptions of the instrument (see last part of + `MantidNeXusWorkspaceFormat <../pdfs/MantidNexusWorkspaceFormat.pdf>`__) + + .. rubric:: XML schema definitions + :name: xml-schema-definitions + + - Objective: why schema? - validation, tools e.g. IDE. + Informative session. + - Pros and cons of xsd and rng + - Review of `current work `__. (Overview) + - Vote on use of xsd. + - schema as a path to O-O NeXus + + .. rubric:: Reduced data storage + :name: reduced-data-storage + + - `review of canSAS 1-D v1.0 XML data + format `__ + for reduced Small-Angle Scattering data. + + - Objective + - Why not use NeXus? + - How to merge/nudge community towards NeXus? + - Next steps + + - 2-D and higher-dimensionality **reduced** data sets + - How to standardize storage of results from data analysis + steps and provenance + + - Is the next big priority after schema to provide reduced data + formats for all instrument classes? + - Proposal for storage of reduced data by the `Mantid + project `__ (see + `MantidNeXusWorkspaceFormat <../pdfs/MantidNexusWorkspaceFormat.pdf>`__) + + .. rubric:: Tech Group Breakout + :name: tech-group-breakout + + - review minutes/decision of last NIAC and tech teleconferences + - Features for NeXus API 4.3 + - XML schema review and implementation + - Review `open + tickets `__ + - Python bindings: + + - `Paul Kienzle"s new high level + interface `__ + - Developing a "Open GENIE like" NeXus python application + + - C++ bindings + - "Object oriented" NeXus + + .. rubric:: Documentation breakout + :name: documentation-breakout + + - review minutes/decision of last NIAC + - ACTION (from 2007 NIAC): How is the offline documentation + produced? + - Is the proposed system of a snapshot of relevant mediawiki + pages into DocBook at the time of a definition release + acceptable? + - Discuss issues with mediawiki to DocBook converter + - Decide which mediawiki pages are required in DocBook format + e.g. do we include the FAQ page? + - Is there documentation that is uniquely offline or online? This + will become clearer with the mapping in the previous item + - should the representation of the base classes in the appendices + be UML and/or table version? + - html to DocBook transform post processing - are these steps + acceptable? + + - documentation transformed from mediawiki to DocBook, edited + where necessary, chapters concatenated, and converted to pdf + - pdf bundled with napi release and versions available at + `Download <../content/Download.html>`__ diff --git a/source/niac/NIAC2008_attendees.rst b/source/niac/NIAC2008_attendees.rst new file mode 100644 index 00000000..16bdd8e4 --- /dev/null +++ b/source/niac/NIAC2008_attendees.rst @@ -0,0 +1,73 @@ +================== +NIAC2008 attendees +================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2008 attendees + :name: NIAC2008_attendees_niac2008-attendees + :class: page-title + + Attendees of the `2008 NIAC Meeting `__ at Rydges + Cronulla Beach Hotel in Sydney, Australia. + + +----------------------+----------------------+----------------------+ + | Name | Company/Institute | | + +======================+======================+======================+ + | `Peter Peterson | | Oak Ridge National | + | (Chair) `__ | | | + +----------------------+----------------------+----------------------+ + | `Freddie Akeroyd | | ISIS, UK | + | (Secretary) | | | + | `__ | | | + +----------------------+----------------------+----------------------+ + | `Nick | | Australian Nuclear | + | Hauser `__ | | Technology | + | | | Organisation, | + | | | Australia | + +----------------------+----------------------+----------------------+ + | `Jens-Uwe | | Helmholtz Zentrum | + | Hof | | Berlin (HMI before), | + | fmann `__ | | | + +----------------------+----------------------+----------------------+ + | `Mark | | Paul Scherrer | + | K | | Institut | + | oennecke `__ | | | + +----------------------+----------------------+----------------------+ + | Peter Lewis | | Australian | + | | | Synchrotron | + +----------------------+----------------------+----------------------+ + | `Jiro | | KEK, Japan | + | Suzuki `__ | | | + +----------------------+----------------------+----------------------+ + | `Pete | | Argonne National | + | Jemian `__ | | | + +----------------------+----------------------+----------------------+ + | Paul Lewis | Los Alamos National | | + | | Laboratory | | + +----------------------+----------------------+----------------------+ + | `Matthias | Juelich | | + | Dro | | | + | chner `__ | | | + +----------------------+----------------------+----------------------+ + + |photo of NIAC 2008 attendees| |Rydges Cronulla Sydney hotel, site + of NIAC2008 meeting| |Panorama view of North Cronulla Beach from + Rydges Cronulla Sydney hotel, site of NIAC2008 meeting| + +.. |photo of NIAC 2008 attendees| image:: ../extra_files/Niac2008-attendees.jpg + :width: 400px +.. |Rydges Cronulla Sydney hotel, site of NIAC2008 meeting| image:: ../extra_files/Niac2008-hotel.jpg + :width: 200px +.. |Panorama view of North Cronulla Beach from Rydges Cronulla Sydney hotel, site of NIAC2008 meeting| image:: ../extra_files/Niac2008-view.jpg + :width: 400px diff --git a/source/niac/NIAC2009.rst b/source/niac/NIAC2009.rst new file mode 100644 index 00000000..98be89f9 --- /dev/null +++ b/source/niac/NIAC2009.rst @@ -0,0 +1,54 @@ +================= +NIAC2009 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2009 + :name: NIAC2009_niac2009 + :class: page-title + + .. rubric:: 2009 NeXus Code Camp + :name: 2009-nexus-code-camp + + .. rubric:: Purpose + :name: NIAC2009_purpose + + Develop NeXus software components through intense effort by small + groups working on specific projects and tasks. It is expected that + those attending the 2009 NeXus Code Camp will already have strong + foundation and understanding in aspects of the NeXus software and + come ready with knowledge, tools, and ideas to make significant + progress during the event. The specific projects and tasks, as + well as the list of participants, are described on this wiki and + will be revised as the event draws near. + + (For more info on code camps, try searching Google for "code camp" + or "codeathon". Events such as the `EPICS + Codeathon `__ + would be reasonable templates for this first NeXus code camp.) + + .. rubric:: Dates + :name: NIAC2009_dates + + - October 16-18, 2009 (Friday - Sunday) + + .. rubric:: Agenda + :name: NIAC2009_agenda + + .. rubric:: Business Matters + :name: NIAC2009_business-matters + + Since this is not to be a meeting of the full NIAC, no business + matters can be resolved. + + .. rubric:: Projects and Tasks + :name: NIAC2009_projects-and-tasks + + These items are sorted in order of priority that they be finished. + Only items that currently exist in the project plan are being + worked on. + + #. NXDL - NeXus Definition Language diff --git a/source/niac/NIAC2010.rst b/source/niac/NIAC2010.rst new file mode 100644 index 00000000..448dc349 --- /dev/null +++ b/source/niac/NIAC2010.rst @@ -0,0 +1,134 @@ +================= +NIAC2010 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2010 + :name: NIAC2010_niac2010 + :class: page-title + + Planning is currently underway for the NIAC / Code Camp meeting in + 2010. This is being organised to take place at the `SNS, ORNL, + USA `__ and occur prior to the `NOBUGS + meeting `__. + + Currently the tentative dates are: + + - `NeXus code camp `__ -> 5th / 6th + October 2010 + - NIAC Meeting -> 7th / 8th October 2010 + - NeXus workshop -> 10th October + - `NoBugs meeting `__ -> + 11th-13th October + + .. rubric:: Location + :name: NIAC2010_location + + Spallation Neutron Source, SNS Building 8600 (Main Office Block) + C-152 (Ground Floor) + + .. rubric:: Accommodations and logistics + :name: accommodations-and-logistics + + Recommended hotels: + + - `Double + Tree `__ + + If you are attending the NOBUGS conference the following week the + plan is for people to stay in Oak Ridge for October 7-8 and move + to the `Park + Vista `__ + in Gatlinburg during the weekend. We will help facilitate ride + sharing during the meeting to make the move easier for everybody. + + .. rubric:: NIAC List of Attendees + :name: NIAC2010_niac-list-of-attendees + + **Do not write in this table. This is to indicate the list of + people we know are attending** + + If you want to attend please email either `Stuart + Campbell `__ or `Peter + Peterson `__. + + | **It is important that if entering the US on a Visa Waiver to + ensure that you get a VWB (Visa Waiver Business) and NOT a + tourist one.** + | It is likely that you will not be allowed into ORNL with a + Tourist Visa! + + Here is the corrected table: + + + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | Name | Company/Institute | ORNL Pass | NOBUGS? | Registration | ANL gate pass? | + +=======================================================+===================================================+========================+========================+========================+========================+ + | `Frederick Akeroyd `__ | ISIS Facility, Rutherford Appleton Laboratory, UK | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Stuart Campbell `__ | ORNL, USA | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | Peter Chang | Diamond Light Source, UK | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Steve Cottrell `__ | Rutherford Appleton Laboratory, UK | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | Matthias Drochner | Julich, Germany | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Nick Hauser `__ | ANSTO, Australia | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Jens-Uwe Hoffmann `__ | Helmholtz Zentrum Berlin (renamed HMI), Germany | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Pete Jemian `__ | APS, ANL, USA | approved | **NO** | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | Suzuki Jiro | J-PARC, Japan | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Mark Koennecke `__ | PSI, Switzerland | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Ray Osborn `__ | ANL, USA | approved | **NO** | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Peter Peterson `__ | ORNL, USA | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Tobias Richter `__ | Diamond Light Source, UK | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | Claude Saunders | APS, ANL, USA | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | `Armando Sole `__ | European Synchrotron Radiation Facility, France | approved | YES | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + | Benjamin Watts | Swiss Light Source, Switzerland | approved | **NO** | | | + +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ + + + .. rubric:: Planned Agenda + :name: NIAC2010_planned-agenda + + Agenda for NeXus International Advisory Committee Meeting + + | **Thursday 7th October 2010** + | 9:00-9:15 Welcome + | 9:15-9:30 Review of minutes from last meeting + | 9:30- 9:45 Break + | 10:00-11:00 Election of Officers + | 11:00-12:00 Report from Code Camp + | 12:00-13:00 Lunch + | 13:00-14:00 Update on NAPI + | 14:00-15:00 Update on Definitions + | 15:00-15:15 Break + | 15:15-17:00 Doc Subgroup & Tech Committee Meetings + | **Friday 8th October 2010** + | 9:00-9:30 Plan for Day + | 9:30-10:00 Break + | 10:00-12:00 Proposals for Definitions + | 12:00-13:00 Lunch + | 13:00-15:00 Further discussions on Definitions/NAPI + | 15:00-15:15 Break + | 15:15-16:00 Voting on proposed issues + | 16:00-17:00 Meeting Summary + + .. rubric:: Talks + :name: talks + + - `Mark Koennecke <../pdfs/Mark_Nexus_NIAC_2010.pdf>`__ + - `Ray Osborn <../pdfs/NeXpy.pdf>`__ diff --git a/source/niac/NIAC2010_CodeCamp.rst b/source/niac/NIAC2010_CodeCamp.rst new file mode 100644 index 00000000..3dc49c8f --- /dev/null +++ b/source/niac/NIAC2010_CodeCamp.rst @@ -0,0 +1,174 @@ +================= +NIAC2010 CodeCamp +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2010 CodeCamp + :name: NIAC2010_CodeCamp_niac2010-codecamp + :class: page-title + + .. rubric:: Location + :name: NIAC2010_CodeCamp_location + + Building 5200, Room 214 (Emory) Oak Ridge National Laboratory + + .. rubric:: Code Camp Attendees + :name: NIAC2010_CodeCamp_code-camp-attendees + + **Do not write in this table. This is to indicate the list of + people we know are attending** + + If you want to attend please email either `Stuart + Campbell `__ or `Peter + Peterson `__. + + | **It is important that if entering the US on a Visa Waiver to + ensure that you get a VWB (Visa Waiver Business) and NOT a + tourist one.** + | It is likely that you will not be allowed into ORNL with a + Tourist Visa! + + +-----------+-----------+-----------+-----------+-----------+---+ + | Name | Company/ | PAS | spaces in | | | + | | Institute | status | car | | | + +===========+===========+===========+===========+===========+===+ + | | | ISIS | | approved | | + | Frederick | | Facility, | | | | + | Aker | | R | | | | + | oyd | | boratory, | | | | + | | | UK | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Stuart | | ORNL, USA | | approved | 2 | + | Campb | | | | | | + | ell | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Peter | | Diamond | | approved | | + | Chang | | Light | | | | + | | | Source, | | | | + | | | UK | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Pete | | APS, ANL, | | approved | | + | Jemian < | | USA | | | | + | User%3APe | | | | | | + | te_Jemian | | | | | | + | .html> | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Jens-Uwe | | Helmholtz | | approved | | + | Hoffman | | Zentrum | | | | + | n | | Germany | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Mark | | PSI, | | approved | | + | Koenn | | Sw | | | | + | ecke | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Peter | | ORNL, USA | | approved | 3 | + | Pete | | | | | | + | rson | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Michael | | ORNL, USA | | approved | | + | Reuter | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Tobias | | Diamond | | approved | | + | Ric | | Light | | | | + | hter | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Benjamin | | Swiss | | awaiting | | + | Watts | | Light | | approval | | + | | | Source, | | | | + | | | Sw | | | | + | | | itzerland | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | Marie | | ORNL, USA | | approved | | + | Yao | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + | | | | | | | + +-----------+-----------+-----------+-----------+-----------+---+ + + .. rubric:: Planned Agenda + :name: NIAC2010_CodeCamp_planned-agenda + + Tuesday 5th October 2010 + + ===== ===== =================================== + + ===== ===== =================================== + 9:00 9:15 Welcome + 9:15 9:30 Progress on tasks from last meeting + 9:30 9:45 Break + 10:00 11:00 Work Package Planning + 11:00 12:00 Prioritize and Allocate Tasks + 12:00 13:00 Lunch + 13:00 14:00 Define working groups + 14:00 15:00 Development work in Teams + 15:00 15:15 Break + 15:15 17:00 Development work in Teams + + ===== ===== =================================== + + Wednesday 6th October 2010 + + ===== ===== ============================= + + ===== ===== ============================= + 9:00 9:30 Discussion on progress so far + 9:30 9:45 Break + 10:00 12:00 Continued Development + 12:00 13:00 Lunch + 13:00 15:00 Final Development Session + 15:00 15:15 Break + 15:15 17:00 Wrap up and assign Actions + + ===== ===== ============================= + + .. rubric:: Topics + :name: NIAC2010_CodeCamp_topics + + - Documentation + + - resolve incomplete sections and reorder layout + - prepare report to present to NIAC + - SNS nxdl + + - Doxygen API documentation + - prepare Tech Committee report on progress to NIAC + + - Concepts + + - Coordinate Systems + - **NXmeasurement** + - implement **NXsubentry** + - implement scaled data + + - project plan + - NAPI + + - NAPI is not thread-safe + - problem is deep inside C API + - NAPI Java interface + - consider object-oriented or higher-level API + - build system to cmake/cpack + + - confirm validation process for NeXus data files **NXvalidate** diff --git a/source/niac/NIAC2011_CodeCamp.rst b/source/niac/NIAC2011_CodeCamp.rst new file mode 100644 index 00000000..29322df0 --- /dev/null +++ b/source/niac/NIAC2011_CodeCamp.rst @@ -0,0 +1,414 @@ +================= +NIAC2011 CodeCamp +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2011 CodeCamp + :name: NIAC2011_CodeCamp_niac2011-codecamp + :class: page-title + + |logo for the 2011 NeXus Code Camp| + + .. rubric:: Purpose + :name: NIAC2011_CodeCamp_purpose + + Develop NeXus software components through intense effort by small + groups working on specific projects and tasks. It is expected that + those attending the 2011 NeXus Code Camp will already have strong + foundation and understanding in aspects of the NeXus software and + come ready with knowledge, tools, and ideas to make significant + progress during the event. The specific projects and tasks, as + well as the list of participants, are described on this wiki and + will be revised as the event draws near. + + See previous NeXus Code Camps: + + - http://www.nexusformat.org/NIAC2010_CodeCamp + - http://www.nexusformat.org/index.php?title=NIAC2009 + + .. rubric:: Dates + :name: NIAC2011_CodeCamp_dates + + - 2011 October 20-22 (Thursday - Saturday) + + .. rubric:: Daily Agenda + :name: daily-agenda + + Meeting room is Building 401, Room B2100 + + .. rubric:: Thursday, 2011 October 20 + :name: NIAC2011_CodeCamp_thursday-2011-october-20 + + +---------------------+----------------------+----------------------+ + | time | description | comments | + +=====================+======================+======================+ + | 9:00 - 10:15 AM | meeting | organize slate of | + | | | projects and tasks | + +---------------------+----------------------+----------------------+ + | 10:15 - 10:45 AM | morning break | (included) | + +---------------------+----------------------+----------------------+ + | 10:45 AM - 12:00 PM | meeting | work on projects and | + | | | tasks | + +---------------------+----------------------+----------------------+ + | 12:00 - 1:15 PM | **Comparison of APS | (\*) working lunch | + | | Data_Exchange+HDF5 | onsite, hosted by | + | | for Tomography with | APS, 401/B2100 | + | | NeXus+HDF5** | | + +---------------------+----------------------+----------------------+ + | 1:15 - 3:15 PM | meeting | work on projects and | + | | | tasks | + +---------------------+----------------------+----------------------+ + | 3:15 - 3:30 PM | afternoon break | (included) | + +---------------------+----------------------+----------------------+ + | 3:30 - 5:00 PM | meeting | work on projects and | + | | | tasks | + +---------------------+----------------------+----------------------+ + | 5:00 - 6:00 PM | meeting | daily summary | + | | | (plenary) | + +---------------------+----------------------+----------------------+ + + (\*) speakers for the working lunch include: + + - Chris Jacobsen, APS (scientific lead, APS Data Exchange format) + |image1| + - Mark Koennecke, PSI (NeXus, chairman of NIAC) + + .. rubric:: Friday, 2011 October 21 + :name: NIAC2011_CodeCamp_friday-2011-october-21 + + +---------------------+----------------------+----------------------+ + | time | description | comments | + +=====================+======================+======================+ + | 9:00 - 10:15 AM | meeting | work on projects and | + | | | tasks | + +---------------------+----------------------+----------------------+ + | 10:00 - 10:30 AM | morning break | (included) | + +---------------------+----------------------+----------------------+ + | 10:30 AM - 11:30 PM | **The Current State | public talk, | + | | of NeXus** | 401/A1100 | + +---------------------+----------------------+----------------------+ + | 12:00 - 1:15 PM | lunch | offsite, traveler"s | + | | | expense | + +---------------------+----------------------+----------------------+ + | 1:15 - 3:15 PM | meeting | work on projects and | + | | | tasks | + +---------------------+----------------------+----------------------+ + | 3:15 - 3:30 PM | afternoon break | (included) | + +---------------------+----------------------+----------------------+ + | 3:30 - 5:00 PM | meeting | work on projects and | + | | | tasks | + +---------------------+----------------------+----------------------+ + | 5:00 - 6:00 PM | meeting | daily summary | + | | | (plenary) | + +---------------------+----------------------+----------------------+ + + .. rubric:: Saturday, 2011 October 22 + :name: saturday-2011-october-22 + + =================== =============== =========================== + time description comments + =================== =============== =========================== + 9:00 - 10:15 AM meeting work on projects and tasks + 10:15 - 10:45 AM morning break (included) + 10:45 AM - 12:00 PM meeting work on projects and tasks + 12:00 - 1:15 PM lunch offsite, traveler"s expense + 1:15 - 3:15 PM meeting work on projects and tasks + 3:15 - 3:30 PM afternoon break (included) + 3:30 - 5:00 PM meeting work on projects and tasks + 5:00 - 6:00 PM meeting Code Camp wrap-up (plenary) + =================== =============== =========================== + + .. rubric:: Planning + :name: planning + + .. rubric:: Business Matters + :name: NIAC2011_CodeCamp_business-matters + + Since this is not to be a meeting of the full NIAC, no business + matters can be resolved. + + .. rubric:: Projects and Tasks + :name: NIAC2011_CodeCamp_projects-and-tasks + + These items are sorted in order of priority that they be finished. + Only items that currently exist in the project plan are being + worked on. + + #. move to using 1.8 version of **HDF5** API (would allow HDF5 + transparent external linking) + #. NXclonehandle + #. PyTree API + #. discuss axes for multi dimensional scans + #. discuss axis dependency encoding + #. discuss and decide switch to CMake for building NeXus + #. discuss and decide on the use of sphinx for documentation + #. Design NXdict replacement based on NXDL + #. Improve nxvalidate + #. Link NeXus WWW-site with docbook manual + #. A Fedora installer + #. Discuss and write NeXus for the Impatient + #. Cleanup NeXus applications + + .. rubric:: Other Tasks + :name: other-tasks + + Items not currently on the project plan, but have arisen recently: + + #. support for more than one unlimited array dimension + (http://trac.nexusformat.org/code/ticket/258) + #. support larger dataset dimensions (currently dimensions are + "int" so overflow at > 2^31 elements) + + .. rubric:: Presentations + :name: NIAC2011_CodeCamp_presentations + + #. presentation about **cmake** (Freddie Akeroyd or Pete Peterson) + #. about **sphinx** for documentation (Pete Jemian) |PDF| + #. about **parallel HDF** (Mark Koennecke, anyone else with more + experience?) + #. assessment of work to migrate from HDF 1.6 to HDF 1.8 (Freddie + Akeroyd) + #. public talk: **The Current State of NeXus**, Building 401, Room + A1100, Friday, Oct. 21, 10:30 - 11:30 AM + #. + + .. rubric:: Schedule + :name: NIAC2011_CodeCamp_schedule + + - arrive the previous day (Wednesday, 2011-10-19) + - conference check-in first morning (Thursday, 2011-10-20), + 401-B2100 + - meet all day (Thursday), 401-B2100 + - meet all day (Friday), 401-B2100 + - meet all day (Saturday), 401-B2100 + - checkout next day (Sunday, 2011-10-23) + + Meeting room is Building 401, Room B2100 + + Here is the daily schedule (tentative): + + =================== =============== =========================== + time description comments + =================== =============== =========================== + 9:00 - 10:15 AM meeting work on projects and tasks + 10:15 - 10:45 AM morning break (included) + 10:45 AM - 12:00 PM meeting work on projects and tasks + 12:00 - 1:15 PM lunch offsite, traveler"s expense + 1:15 - 3:15 PM meeting work on projects and tasks + 3:15 - 3:30 PM afternoon break (included) + 3:30 - 5:00 PM meeting work on projects and tasks + 5:00 - 6:00 PM meeting daily summary (plenary) + =================== =============== =========================== + + Notes: + + #. late-afternoon wrap-up (plenary) each day + #. morning and afternoon breaks will be included in amenities + charge + #. breakfast, lunch, dinner will be in a local restaurant at + traveler"s expense + + .. rubric:: Practical Matters + :name: NIAC2011_CodeCamp_practical-matters + + .. rubric:: Registration + :name: NIAC2011_CodeCamp_registration + + | Step 1: Register with the APS as a visitor to start the process. + | Step 2: Send an email to jemian@anl.gov announcing your plan to + attend. + + .. rubric:: APS Visitor registration + :name: NIAC2011_CodeCamp_aps-visitor-registration + + web site: + https://www.aps.anl.gov/About/Visiting/visitor_registration.php + + You must register as an APS Visitor in advance (to identify + matters related to Passport, Visa, and ANL Site Access) or you + should not expect access to the ANL site. If asked, indicate that + you are visiting *Pete Jemian*. + + For the paperwork of all international visitors, we need each + degree, year earned, and institution name. Additionally for + certain visas, we need additional information: + + | F1 visa: we need the I-20 number and expiration date. + | J1 visa: we need the DS-2019 number and expiry date. + | H1 visa: we need the I797 number and expiry date. + + .. rubric:: Venue + :name: NIAC2011_CodeCamp_venue + + | Argonne Guest House + | Argonne National Laboratory + | 9700 S. Cass Avenue - Building 460 + | Argonne, IL 60439 + | USA + + Please reserve your own rooms directly with the hotel: + + | Web site: http://www.anlgh.org/ + | telephone: +1 - 800-632-8990, +1 - 630-739-6000 + | fax: +1 - 630-739-1000 + | map link: + http://maps.google.com/maps?q=Argonne+Guest+House&hl=en&ll=41.708228,-87.985897&spn=0.024798,0.049953&sll=37.0625,-95.677068&sspn=27.008217,51.152344&t=h&z=14 + + .. rubric:: Directions and Maps + :name: NIAC2011_CodeCamp_directions-and-maps + + - map to hotel: + - airport: + + - Chicago O"Hare (ORD): international + - Chicago Midway (MDW): domestic + - Milwaukee, WI Mitchell Field (MKE): distant alternative + + - taxi: + + - Call for a taxi pickup only after you have all your bags + - Must be a taxi that goes to Chicago suburbs + - suburban taxi will pickup in second lane of arrivals at + Chicago O"Hare airport + - http://www.americantaxi.com, 1-800-244-1177 (automated + system) + - others + + - airport bus: http://www.airportexpress.com/shuttles/ohare.html + - commuter train: + + - inconvenient + + .. rubric:: Host + :name: NIAC2011_CodeCamp_host + + - Pete Jemian + + - Advanced Photon Source, Argonne National Laboratory + - email: jemian \_at\* anl.gov + - office phone: 1-630-252-3189 (forwards to mobile) + - Google voice: +1-847-859-9775 (forwards to mobile) + + .. rubric:: Costs + :name: NIAC2011_CodeCamp_costs + + - Expect hotel rate to be US$### (approximate, subject to change) + + - Please reserve your own rooms directly with the hotel + (website, phone, ) + + - Conference fee: no fee + + - food at morning and afternoon breaks will be provided + - perhaps (no guarantee) a small meeting souvenir + + - regular meals (breakfast, lunch, dinner) will be traveler"s + expense + + .. rubric:: Equipment + :name: NIAC2011_CodeCamp_equipment + + +--------------------------------------------------+------------+---------------+ + | item | quantity | who provides? | + +==================================================+============+===============+ + | projector & screen | | host | + +--------------------------------------------------+------------+---------------+ + | LCD displays, keyboards, & mice | | host | + +--------------------------------------------------+------------+---------------+ + | 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | + +--------------------------------------------------+------------+---------------+ + | foreign electrical power adapter | as needed | traveler | + +--------------------------------------------------+------------+---------------+ + | Wi-Fi connections | sufficient | hotel | + +--------------------------------------------------+------------+---------------+ + + .. rubric:: Participants + :name: NIAC2011_CodeCamp_participants + + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | participant | affiliation | arriving | departing | registration? | ANL gate pass? | + +===========================================================+==========================================+============+============+===============+================+ + | `Pete Jemian `__ | `APS `__ | host | host | host | host | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Mark K"nnecke `__ | `PSI `__ | 20-11-10 | 20-11-24 | complete | yes | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Tobias Richter `__ | `Diamond `__ | 20-11-19 | 20-11-25 | complete | yes | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Eugen Wintersberger `__ | `DESY `__ | 20-11-19 | 20-11-23 | complete | yes | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Freddie Akeroyd `__ | `ISIS `__ | 20-11-19 | 20-11-23 | complete | yes | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Peter Peterson `__ | `SNS `__ | 20-11-19 | 20-11-22 | complete | yes | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Ray Osborn `__ | `MSD/ANL `__ | 20-11-20 | 20-11-22 | N/A | yes | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + | `Paul Kienzle `__ | `NCNR/NIST `__ | 20-11-19 | 20-11-23 | ? | pending | + +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + + + .. rubric:: Final Report + :name: final-report + + As some of you might know, the NeXus technical subcommittee and + especially Pete Jemian have invested a lot of work to update the + NeXus manual in the last year. It is now current and much better + then it used to be. In this work we arrived at a major milestone + on our last code camp in Chicago, October 20 - 22. Now, the NeXus + WWW site has received a new front page and its content is created + from the NeXus manual. Though not all of it looking as beautiful + as it could be, at least the content is correct and up to data. + + Another good news is that we had some discussions with the + detector manufacturer Dectris. They do the Mythen, Pilatus and + Eiger detectors. With the Eiger detector they will start writing + HDF-5 files with NeXus conventions. The programming model will be + that Dectris writes the detector data and the local DAQ system + adds further meta data to the HDF-5 NeXus file. In order to + support this, some more fields have been added to NXdetector. + + Other things which we addressed during the code camp: + + - For HDF-5 all dimensions can now be unlimited + - NAPI was moved from HDF-5 1.6 to HDF-5 1.8 which is now + current. Support for HDF-5 1.6 was stopped two years ago. + - A set of additional API functions was defined which allow to + use 64 bit integers for the dimensions. + - Some more manual work was done: there will be examples how to + write NeXus files with the HDF-5 API alone soon. A new manual, + NeXus for the Impatient, is in progress. This is a short + introduction to NeXus in about 10 pages. + - Some more work was done to integrate Ray Osborn"s tree python + API and to write more tests for the python interface. + - Some progress was made on axis dependency encoding + - We will gradually move from autotools to cmake for the NeXus + API. + - We had some discussions on a new C++ tree API to be written by + Eugen Wintersberger, on a parallel HDF driver for NeXus, and a + possible move to sphinx for the NeXus manual. + + All in all, we managed to put a man-month of work into NeXus + between the seven of us who attended the code camp. Many thanks to + everyone who participated and to Pete Jemian who did a wonderful + job as a local organiser. [PRJ: I thank all of you.] + + We are in good hope that a new version of the NeXus-API will be + released before the end of this year. We also strive to make a 1.0 + release of the NeXus application definitions by then. + + Best Regards, Mark Koennecke + + .. rubric:: Added note + :name: added-note + + We also has a good discussion with scientists and staff of the APS + regarding the release of details of how NeXus is implemented in + HDF5. Also discussed were current APS plans to store data in HDF5 + files but, for performance reasons as well as simplicity, not + necessarily in compliance with NeXus. + +.. |logo for the 2011 NeXus Code Camp| image:: ../extra_files/NeXusCodeCamp2011-logo.png +.. |image1| image:: ../pdfs/2011_10_20_nexus_heretics_v5.pdf +.. |PDF| image:: ../pdfs/2011-10-20_NeXus_manual_in_sphinx.pdf diff --git a/source/niac/NIAC2012.rst b/source/niac/NIAC2012.rst new file mode 100644 index 00000000..edfe9aa3 --- /dev/null +++ b/source/niac/NIAC2012.rst @@ -0,0 +1,991 @@ +================= +NIAC2012 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2012 + :name: NIAC2012_niac2012 + :class: page-title + + Planning is currently underway for the NIAC / Code Camp meeting in + 2012. This is being organised to take place at `The Cosner"s House, Abingdon, + UK `__ + and occur prior to the `NOBUGS meeting `__. + + Dates are: + + - NeXus code camp -> 18th / 19th September 2012 + - NIAC Meeting -> 20th / 21th September 2012 + + - `NoBugs meeting `__ -> + 24th-26th September 2012 + + .. rubric:: Location and Accomodation + :name: NIAC2012_location-and-accomodation + + `The Cosner"s House, Abingdon, + UK `__ + + .. container:: language-plaintext highlighter-rouge + + .. container:: python + + .. code:: python + + Science and Technology Facilities Council + The Cosener's House + Abbey Close + Abingdon + Oxfordshire + OX14 3JD + United Kingdom + + The fee of 200 per event covers two nights accommodation and all + meals during the days - see Logistics below + + Registration is via the `NOBUGS conference + website `__ + + .. rubric:: Travel + :name: travel + + If arriving at Heathrow, take the `Oxford "airline" + bus `__, but get + off at the penultimate stop `St + Aldates `__ + rather than Oxford bus station. Public transport to Abingdon + `leaves from St + Aldates `__ + either `Oxford bus company buses 35 or + X3 `__ or `Thames + travel bus X2 `__ + get off at the Vineyard or Stratton Way and walk to `Coseners + house `__ + + If you are arriving later and wish to take a taxi/minicab from + Oxford to Coseners House, there is a taxi rank at the final Oxford + "airline" stop (Gloucester Green coach station). More information + about taxi/minicab servcies in Oxford are on `this + page `__. + + .. rubric:: Logistics + :name: logistics + + People arriving for the NIAC and staying on for NOBUGS conference + the following week at [https://stfc.ukri.org/about-us/\ \| RAL] + can keep their rooms in Cosner"s. Daily transport will be + available to and from the NOBUGS venue at the RAL site. + + The meeting fee for NIAC/Nexus code camp is the Coseners house 24 + hour delegate rate, which covers Dinner, B+B, plus lunch. So: + + - the code camp fee will cover dinner on Monday and Tuesday + evenings, 2 nights accommodation, breakfast+lunch on Tuesday + and Wednesday. + - the NIAC fee will cover dinner on Wednesday and Thursday + evenings, 2 night accommodation, breakfast+lunch on Thursday + and Friday. + + **If you will be staying Friday evening (and onwards) you need + to**\ `reserve and pay for this separately yourself with Coseners + house `__ + + .. rubric:: List of Attendees + :name: NIAC2012_list-of-attendees + + Please add your name to this table after registering for the + meetings via the `NOBUGS + site `__ + + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Name | Compa | Code | NIAC | NOBUGS | A | Dep | | | | | | | + | | ny/Ins | Camp | ( | ( | rrival | arture | | | | | | | + | | titute | ( | 20/21) | 24-26) | date | date | | | | | | | + | | | 18/19) | | | (a | | | | | | | | + | | | | | | ccommo | | | | | | | | + | | | | | | dation | | | | | | | | + | | | | | | needed | | | | | | | | + | | | | | | from) | | | | | | | | + +========+========+========+========+========+========+========+===+========+===+========+===+========+ + | F | | ISIS | | YES | | YES | | YES | | Day | | Day | + | reddie | | Fac | | | | | | | | at | | at | + | Aker | | ility, | | | | | | | | tendee | | tendee | + | oyd | | atory, | | | | | | | | | | | + | | | UK | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | | | D | | YES | | YES | | YES | | Day | | Day | + | Tobias | | iamond | | | | | | | | at | | at | + | Ric | | Light | | | | | | | | tendee | | tendee | + | hter < | | S | | | | | | | | | | | + | User%3 | | ource, | | | | | | | | | | | + | ATobia | | UK | | | | | | | | | | | + | s_Rich | | | | | | | | | | | | | + | ter.ht | | | | | | | | | | | | | + | ml> | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Steve | | ISIS | | NO | | YES | | YES | | Day | | Day | + | Cott | | Fac | | | | | | | | at | | at | + | rell < | | ility, | | | | | | | | tendee | | tendee | + | User%3 | | Ruth | | | | | | | | | | | + | ASteve | | erford | | | | | | | | | | | + | _Cottr | | Ap | | | | | | | | | | | + | ell.ht | | pleton | | | | | | | | | | | + | ml> | | Labor | | | | | | | | | | | + | | | atory, | | | | | | | | | | | + | | | UK | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Ben | | Swiss | | YES | | YES | | NO | | 18/0 | | 22/0 | + | Wa | | Light | | | | | | | | 9/2012 | | 9/2012 | + | tts | | herrer | | | | | | | | | | | + | | | Ins | | | | | | | | | | | + | | | titut, | | | | | | | | | | | + | | | Switz | | | | | | | | | | | + | | | erland | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Jiro | | J | | NO | | YES | | YES | | 19/0 | | | + | Suzuk | | -PARC, | | | | | | | | 9/2012 | | | + | i | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | J | | JCNS | | NO | | YES | | YES | | 19/0 | | | + | oachim | | at FRM | | | | | | | | 9/2012 | | | + | Wu | | II | | | | | | | | | | | + | ttke < | | | | | | | | | | | | | + | User%3 | | | | | | | | | | | | | + | AJoach | | | | | | | | | | | | | + | im_Wut | | | | | | | | | | | | | + | tke.ht | | | | | | | | | | | | | + | ml> | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Mark | | Paul | | YES | | YES | | YES | | 17/0 | | | + | Koenn | | Sc | | | | | | | | 9/2012 | | | + | ecke < | | herrer | | | | | | | | | | | + | User%3 | | Inst | | | | | | | | | | | + | AMark | | itute, | | | | | | | | | | | + | Koenne | | Switz | | | | | | | | | | | + | cke.ht | | erland | | | | | | | | | | | + | ml> | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Je | | Helmh | | YES | | YES | | YES | | 18/0 | | | + | ns-Uwe | | oltz-Z | | | | | | | | 9/2012 | | | + | H | | entrum | | | | | | | | | | | + | offman | | Berlin | | | | | | | | | | | + | n | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Eugen | | DESY | | YES | | YES | | YES | | 17/0 | | | + | Wi | | | | | | | | | | 9/2012 | | | + | ntersb | | | | | | | | | | | | | + | erger | | | | | | | | | | | | | + | | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | H | | D | | NO | | YES | | YES | | 19/0 | | 21/0 | + | erbert | | owling | | | | | | (24th) | | 9/2012 | | 9/2012 | + | J | | Co | | | | | | | | | | | + | Bern | | llege, | | | | | | | | | | | + | stein | | USA | | | | | | | | | | | + | | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Fajin | | D | | YES | | YES | | YES | | Day | | Day | + | Yu | | iamond | | | | | | | | at | | at | + | an | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | | | D | | YES | | YES | | NO | | Day | | Day | + | Graeme | | iamond | | (19th) | | (20th) | | | | at | | at | + | W | | Light | | | | | | | | tendee | | tendee | + | inter | | Source | | | | | | | | | | | + | | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | David | | ANSTO | | YES | | YES | | YES | | 17/0 | | 27/0 | + | Mann | | | | | | | | | | 9/2012 | | 9/2012 | + | icke < | | | | | | | | | | | | | + | User%3 | | | | | | | | | | | | | + | ADavid | | | | | | | | | | | | | + | _Manni | | | | | | | | | | | | | + | cke.ht | | | | | | | | | | | | | + | ml> | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Peter | | SNS, | | NO | | YES | | YES | | 19/0 | | 27/0 | + | Pete | | ORNL, | | | | | | | | 9/2012 | | 9/2012 | + | rson < | | USA | | | | | | | | | | | + | User%3 | | | | | | | | | | | | | + | APeter | | | | | | | | | | | | | + | _Peter | | | | | | | | | | | | | + | son.ht | | | | | | | | | | | | | + | ml> | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | A | | ESRF | | NO | | YES | | NO | | 19/0 | | 22/0 | + | rmando | | | | | | | | | | 9/2012 | | 9/2012 | + | Sole | | | | | | | | | | | | | + | | | | | | | | | | | | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + | Pete | | APS | | Skype | | Skype | | NO | | 2012 | | 2012 | + | Jemia | | | | | | | | | | -09-18 | | -09-21 | + | n | | | | | | | | | | ingreq | | | + | | | | | | | | | | | uired) | | | + +--------+--------+--------+--------+--------+--------+--------+---+--------+---+--------+---+--------+ + + + |Pete Jemian's physical avatar at the meeting| + + .. rubric:: Agenda + :name: NIAC2012_agenda + + Both meetings are taking place in the Hamilton room at Coseners + house, starting at 9am. Evening meal is scheduled for 7pm each day + + .. rubric:: NeXus Code Camp + :name: NIAC2012_nexus-code-camp + + The code camp allows existing NeXus developers to meet and work + together on developing software or resolving particular NeXus + design issues. A preliminary list of items is listed below, but + the exact subset is decided on the first day of the meeting. + + - Finish CIF coordinate issue + - PyTree API Tests + - Cleanup NeXus applications + - NXdict replacement design + - Automatisation and documentation of NeXus release process + + - Implement Continuous Integration + - Write more unit tests + + - Change documentation from DocBook to Restructured Text + (Sphinx)\ ``http://download.nexusformat.org/sphinx/`` + - Cleanup trac-tickets + - Discuss timed data + - Develop a materials definition to present to NIAC + - Do we switch to CMake for all builds? + - How to integrate sphinx documentation building into Cmake + + .. rubric:: NIAC Meeting + :name: NIAC2012_niac-meeting + + This is a meeting for members of the NeXus International Advisory + committee and other interested persons. It generally discusses + matters of policy and strategy, but can discuss specific NeXus + instrument definitions if the relevant experts are in attendance. + + - Report on the status of NeXus and Overview + - Voting officers + - Strategy discussion: Where do we go with NeXus? + - Develop and ratify material definition for samples and sensors + - Roadmap to OO-NeXus + - Review of DECTRIS additions to NXdetector + - Review of added synchrotron beamline base classes + - Will the tech committee be allowed decide on fields and base + classes? + + .. rubric:: Meeting Minutes + :name: meeting-minutes + + Date: 20 Sept 2012 + + Attendees: + + - Mark Koennecke, SINQ + - Fred Akeroyd, RAL + - Tobias Richter, Diamond + - Peter Peterson, SNS + - David Mannicke, ANSTO + - Armando Sole, ESRF + - Herbert Bernstein, imgCIF + - Jiro Suzuki, JPARC + - Joachim Wuttke, FRM and JCNS + - Ben Watts, SLS + - Eugen Wintersberger, DESY + - Jen-Uwe Hoffmann, HMI + - Steve Cottrell, Diamond + - Graeme Winter, Diamond + - Pete Jemian, APS (via Skype) + + - introductions + - Recap NeXus and recent developments + + - Previous meeting + + - NXsubentry and NXcollection classes + - Support for CIF style coordinates + - Non C-storage order arrays: offset, stride atributes + - Python Tree API part of API + + - HDRI: High Data Rate Initiative making something NeXus-like + + - Asked to revise synchrotron base classes + - Eugen: software to write files is nearly ready and + implementation will be installed at as many beamlines as + possible in the Dec shutdown + + - PANDATA + + - NeXus at first well received + - made plans for method-specific formats + - Dormant + + - 2011 Code Camp in APS + + - NX_unlimited for all dimensions + - 64 bit dimensions + - update to HDF5-1.8 + - Doc updates. now reasonable up to date and understandable. + - WWW-site from manual + - tests for python API 30% complete + - Python Tree API cleaned up + - Parallel HDF deemed not useful for NeXus because performance + limited systems don"t want any extras + + - DECTRIS collaboration (Pilatus and Eiger manufacturer) + + - NeXus/HDF5 for Eiger + - Add extra fields for detector parameters + - write sets of ~10,000 images into separate files (workaround + for data rate issues and HDF5 doesn"t allow sections of same + data group in different files) + - write with compression (5-10GB/s data rates!!!) + + - How much can we compromise with DECTRIS + + - Tool to convert data to standard HDF5 (they are using + non-standard compression) + + - HDF5 workshop at PSI + + - DECTRIS (DESY) pays for writing pre-compressed chunks and + compression plugins + + - HDF5 new features + + - Asynchronous IO + - Journaling + - Single writer, multiple reader semantics + - better fault tolerance + - in-memory HDF5 files (very fast writing) + - shared object headers + + - HDF5 intended features + + - better multi-threading + - virtual object layer, completely replaces storage layer + + - can use HDF5 data model without the file formats + - allows more storage models + - metadata server for better parallel support + - mirroring, stacking + + - better parallel support + + - NAPI release 4.3, Application defs 3.1 + + - features from 2011 code camp + - preparing packages in linux repos + + - code camp 2012 + + - move docs to sphinx + + - more wiki-like syntax - easier! + - URL: ?? (bug in build process, so not quite ready yet) + + - cleaned up trac tickets + - drop autoconf for CMake + - Resolved CIF coordinate issue + - good suggestion for handling axes of multidimensional data + sets + - cleanup of applications: nx2dtd, NXdump, dropped + + - Topics for NIAC 2012 + + - Quo vadis + - roadmap OO + - CIF coordinates + - process for changing base classes + - review synchrotron classes + - review addition to NXdetector + - Materials defs + - Multi-D array axes encoding + - what to do about expired NIAC members? + - Elect new officers + + - Questions from code camp + + - anyone using NXcharacterisation? + - who is using F77 API? + - do we get into timed data? + + - discuss priorities (reordered below in descending priority) + + - Elect new officers (defer by 1 day to allow newcomers to get + to know others) + - Quo vadis + - CIF coordinates + - roadmap OO + - Multi-D array axes encoding + - Materials defs + - what to do about expired NIAC members? + - questions from code camp + + - anyone using NXcharacterisation? + - who is using F77 API? + - do we get into timed data? + + - DECTRIS meeting + - process for changing base classes + - review synchrotron classes + - review addition to NXdetector + + - CIF revisit (MK presents CIF and options for adaptation to + NeXus) + + - Options: + + - NXdependency group + - depends_on attribute (tech committe prefered and + recommended by HB) + + - make vector mandatory and add offset_unit + - HB will push CIF to make gravity declaration mandatory + to ensure mapping between CIF and NeXus coords is + possible + + | `Motion to accept CIF-style angle descriptions with discussed additions.`` + | `Vote: for 9 against 0, abstain 4`` + + *Coffee break* + + - Quo Vadis + + - Intro by Mark + + - existence since 1996 and uptake is slow + - Do we persist in the same manner or change our ways? + - Others often reinvent NeXus + - New instruments often implement NeXus + - results of survey are surprisingly positive with more + NeXus implementations than expected + - New developments: + + - Dictionary Based Programming Techniques - Common Data + Model (CDM) + - Tree Based Programming + - Requirements for data formats changing + + - disks are cheap + - full logging becomes possible + - data rates are very high in some cases + + - Discussion + + AS: ESRF advocate dictionary/HDF5 and just use the few parts of + NeXus they want and ignore the rest (very pragmatic view). + + TR: Need to take larger view and not get tied up in technical + details. need to engage with facilities using NeXus (eg ALBA). + + BW: Need to emphasise community involvement - dictating standards + is historical problem of creating an example to start with. + + JW: What is NeXus, is it something interchangeable? Have we been + truthful about what it can achieve? I have no problem in + maintaining tools to convert data to whatever format the users ask + for. + + JH: Users want physical meaning for the data recorded, not just + numbers whose meaning is obscured by instrument details. But to + understand the instrument, also need more raw values. + + MK: Different use cases; 1. understanding instrument (raw values), + 2. exchange/data analysis (physical) + + GW: Standard has value if I can read and understand a file without + any further information. As soon as you move away from that, it + becomes a huge problem to support the variants. + + HB: Seen 2 issues; dictionary of names and format. People can use + any format and you have no control anyway. The only thing you need + is that every uses a common vocabulary. vocabularies tend to + merge. separate vocab and application definitions. + + FA: if we concentrate app defs and vocab, then we are working + towards standards, tools are not required (there are plenty + available). People are choosing HDF5, help them come together and + talk. + + GW: data rates are a problem - HDF5 are needed. Don"t want to have + facility-specific dialects of NeXus. Need consistence and + completeness (single file). + + AS: performance issues get in the way of a single file, multiple + files must be acceptable. + + GW: don"t water it down - all or nothing! + + EW: I tried to invent better than NeXus but failed. Users just + want basic data, but beamline scientist want to record everything + in order to know what the instrument is actually doing. Sometimes + will need to correct for strange instrument behavior that requires + info not normally needed by users. Making this general enough to + use at more than one beamline quickly leads to something + NeXus-like. + + HB: Offer - if you can agree on your vocab, I"ll give you an IUCr + working group for adopting/working on your dictionary. I.e. CIF + and NeXus join forces! + + JW: I support this. Clarity would help me. vocab is valuable to + me, but formats are minor technical details. + + EW: Important thing is to make entry to Nexus easy. Some + instruments are unique and we don"t have to worry about them. OO + can help us define terms. + + HB: we use "prefixes" for namespaces, but are considering using + general XML. want to make sure terms don"t conflict. + + PJ: have image that NeXus legislates, but we should put out + message that we want to collaborate to reduce conflicts. + + MK: make an action that we concentrate on dictionaries and appl + defs. + + GW: ImageCIF has good library that does a lot of work for me. It + would be easier to persuade people to use Nexus if we had the same + kind of library - part of analysis work is done by the library. + + HB: maintaining libraries will get done if there is adoption. + + GW: If we can get Nexus routines included in CBFlib, then my work + becomes much easier. analysis program writers will not resist. + + Everyone agrees that moving CIF and NeXus closer would be great. + + HB: CIF will make addition docs for IUCr people and will put a + link to NeXus doc from the IUCr website. + + MK and HB: lets arrange a meeting between NIAC and IUCr to discuss + cooperation. + + GW and SC: want to make sure that IUCr don"t steamroll + vocabularies of other communities + + MK: Can we put NAPI into maintenance mode? + + PP: what is status of validation tool? + + FA: GUI tool works and I have used it, waiting for colleague to + finish CLI tool + + FA + HB: cooperation on validation tools could be useful. NeXus + backend for CBFlib validation tool is possible. + + MK: break for lunch and after lunch we will try to bring the + discussion to a close. + + *Lunch break* + + - NeXus guiding statements: + + - The main focus of the NeXus community is to further develop + the dictionaries, base classes and application definitions. + - The NIAC is a forum for resolving issues. + - The NIAC acts as a custodian for NeXus: definitions, + examples, documentation, reference implementations. + - NeXus can be mapped to different physical file formats: + + - HDF5 is the preferred physical file format. + - NeXus-XML is the currently supported ASCII file format. + + | `Motion to accept above statements.`` + | `vote: for 8, against 1, abstain 0`` + + - We should put together a wish-list of features to forward to + the HDF group + + - Statements/promises: + + - NAPI and applications are considered stable + - The use of NAPI is not mandatory and examples using HDF5 + APIs will be provided + - The validation tool is actively developed + + | `Motion to accept above statements.`` + | `vote: for 12, against 0, abstain 1`` + + - We seek cooperation with IUCr and CIF + + - Have a meeting with them to figure out what this means + + - Maybe have another NIAC next year to agree on this (in + conjunction with ECM) + - MK volunteers to take a lead + + - We encourage the inclusion of NeXus into CBFlib + + - We invest into cleaning up NeXus, remove outdated, old or + broken stuff + - We invest into documenting NeXus better through bringing + inheritance or composition to NeXus base classes + + | `Motion to support above commitments.`` + | `vote for 14`` + + *Coffee break* + + - What do we do in terms of advocating NeXus? + + - Pursue new facilities? Existing instruments? Analysis/reduction software? + - Support users and program writers on the mailing lists. + - NeXus-developers merged into NeXus mailing list. + - Approach facilities using NeXus but not represented in the NIAC and encourage them to nominate new NIAC candidates. + + | `Motion to elect HB into NIAC as the CIF representative.`` + | `vote: for 14, against 0`` + + - AS proposes flattening the hierarchy in NeXus files. + + - What they really mean is that the NXxas application appears to require links to specific locations and they want the application definition to be simpler. + + | `Motion to allow application definitions to be flat and simple (not implement the full instrument description)`` + | `vote: for 12, against 2, abstain 1.`` - + + - We recommend to use the NeXus heirarchy in application + definitions, but we do accept application definitions with a + flattened hierarchy. + + - heading on web page is wrong: "NeXus Application Classes" "> + "NeXus Application Definitions" in + ``http://download.nexusformat.org/doc/html/ClassDefinitions.html`` + + - Who is using NXcharacterisation? + + - PP added it but isn"t using it because icat is better. + - We deprecate it + + - continue support for the F77 API? + + - don"t expend effort on it, but don"t throw it away either. + + - Examined NXarpes application definition + + - suggest talking to someone using a toroidal analyser + - minor corrections pointed out. + + - + + - END DAY \**\* + + 21 Sept 2012 + + - Elect new officers + + | `Motion to elect MK as Chairman`` + | `vote - for for 13, against 0, abstain 1`` + + | `Motion to elect TR as Executive Secretary`` + | `vote - for for 13, against 0, abstain 1`` + + | `Motion to elect FA as Technical Chair`` + | `vote - for 13, against 0, abstain 1`` + + | `Motion to elect PJ as Documentation Chair (PJ notes that his travel will be very limited)`` + | `vote - for for 14, against 0, abstain 0`` + + - PJ presents the new sphinx-generated documentation, using the + draft currently available at: + ``http://download.nexusformat.org/sphinx/`` + + - Looks nicer + - not everything works currently, but can be fixed - no + apparent show-stoppers. + - cannot easily have automatic numbering of figures is biggest + disadvantage + + - MK, FA: that"s OK, we can drop it. + + - Roadmap to object oriented (OO) NeXus + + - base classes would be OO with some kind of inheritance + - this would make the base classes clearer to users + + | `Motion to investigate possible technical implementations of NeXus with object oriented base classes.`` + | `vote: for 12, against 1, abstain 0`` + + - Multidimensional axes proposal from TR + + - use of @signal=I is easily confused with signal=1 (position + is different though). + + - suggest changing name + + - How many multiple competing versions do we want to + encourage/support/allow? + - How many plots should be put into each NXdata? + + | `Motion to move signal and axes attributes into NXdata group attributes.`` + | `vote - for 12, against 0, abstain 2`` + + | `Motion to accept as a possible solution and invite TR to present sample implementations.`` + | `vote - for 12, against 1, abstain 1`` + + *Coffee Break* + + - DECTRIS + + - HDF5 doesn"t support parallel writing with compression - + need a workaround! + + - write a master file (with metadata) with links to + separate files for data (with ~10,000 images in each). + - want to use non-standard compression (not distributed + with mainline HDF5 libraries) + - comment from code camp: ask for tool to convert to HDF5 + standard compression. + + - Meeting with DECTRIS and customers in October - who wants to + attend? MK + + FA: maybe use detector bank approach? + + EW: split file drive approach would work better. + + HB & MK: this is a bug in HDF5, but DECTRIS can"t wait for it to + be fixed (years) + + EW: are they using the most recent version; performance problems + before 1.8.6 + + HB: they are and plan to ship with 1.8.10 + + | `Motion to work as closely as possible with this community to get this under NeXus.`` + | `vote - for all.`` + + - BW presents mechanism for verifying communities and resolving + conflicts + + - good idea and will keep in mind but do not want to consider + implementing until a real need arises. + + - Process for ratifying changes to NeXus classes. + + - waiting for the NIAC to meet makes changes slow. + - minor changes can waste time at NIAC meetings. + - allow non-breaking changes to base classes, etc to be + ratified via mailing lists? + + | `Motion: Changes to base classes must be ratified tech committe and put on the nexus mailing list to allow a 4 week period for objections.`` + | `vote - for 12`` + + - Do we investigate better ways to record "timed data" + + - NXlog mostly works, but probably not optimal + - HB: Verner Banger is collaborating with the HDF group on + this topic - should look at his work + + BW: It would be nice if we could have option items in application + definitions + + PP: Already can! you just set the "minimum required" attribute to + zero. + + *Lunch Break* + + - Materials definition (samples, filters, multilayers) + + - Tech committee suggest just using a descriptive string + - HB: look at protein data base and see what they are doing. + follow community standards where they exist + - EW: infinite levels of detail makes it impossible to + standardise. Maybe use application definitions for community + specific materials descriptions. + - NXsample already has "chemical formula" (using CIF + conventions), "description" + - we would be open to suggestions from the community + + - Time based data + + - event streams need to be time-stamped and correlated + + EW: NXlog is fine if you have single values with time stamps. how + to handle detectors? + + MK: You need to have a sufficiently precise timing system that all + the computers have access to. + + AS: Market is maturing, let"s wait and see what works in the + community + + PP: why not just let time be an independent variable? + + MK: people will want to know which things need to be correlated. + + | `Motion to ask tech committee to investigate possible solutions to recommend to users.`` + | `vote - for 12, against 0, abstain 1`` + + - Interaction with HDF group? + + - we should try, but we don"t know if we have leverage to + motivate them to pay attention + + EW: spoke to Heiner Billich: facilities should get together to + make requests and pool funding - but should NeXus be part of this + effort? + + MK: NIAC might not be a good representative for that activity, + this is beyond the scope of NIAC. + + HB: Should make polite contact and say that we want HDF5 to work + well - what can we do to help? What does the HDF group want the + interaction with NIAC to be? NeXus should encourage the + discussion. + + | `Motion to support AS to open discussion with the HDF group on behalf of the NIAC.`` + | `vote - for 12, against 0, abstain 1`` + + - Examples of NeXus data files following application definitions. + + PP: we wrote application definitions to match our files, so I have + some. + + JW: is it working? why are there so few compliant examples? + + MK: It has taken some time to solidify a base to begin testing + compliance + + HB: we have driving force from facilities + + BW: A code camp activity could be to generate example files for a + new instrument. + + | `Promises to supply valid example files:`` + | ` - MK: 6-10`` + | ` - PP, FA: 3`` + | ` - SC: 1`` + | ` - TR: 2`` + + - Advocacy? + + - Not yet ready - need to examine files currently being + generated for consistency. Need to clarify what we + recommend. + - We invite the community to write application definitions as + a way of planning towards a standard, even if they don"t + intend to switch yet. + + - Optional fields in application definitions? + + - while it is already possible, we clarify that we want it. + + | `Motion to confirm that the feature allowing optional fields in application definitions is endorsed by the NIAC.`` + | `vote - for all`` + + FA: is there a way to have the presence of one tag be dependent on + the presence of another? TR thinks so. + + *Coffee break* + + - NXdetector additions for DECTRIS + + - "exposure_time" seems unlikely to be correct. + "acquisition_time" is probably better. NXdetector already + has "count_time". + - typos + - BW volunteers to discuss the subtlties of the words they + want to use for the attributes + - threshold_energy should be type NX_ENERGY + - \_time attributes should be type NX_TIME + + | `Motion to encourage use of these attributes, with the corrections discussed.`` + | `vote - for 12, against 0, abstain 1`` + + - NXbending_magnet + + - Gerd Wellenreuther proposed attribute names. BW should + discuss with him and sort out issues (specifically + source_distance_x and \__y) + - BW to better document accepted_photon_beam_divergence (does + it overlap with the divergence_x_minus etc?) + - divergence attributes overlap - slight preference for a + single array over multiple scalar attributes. + + - NXcapillary + + - needs "material" attribute + - need better documentation of "gain" and "transmission" + - model should be included in the "manufacturer" string - add + doc to explain + + - NXinsertion_device + + - should "taper" be an NX_LENGTH or an NX_ANGLE + - can we change "k" to "k_parameter" in order to avoid + single-character names? + - add "period" attribute, or rename "magnetic_wavelength" + - verify with Gerd Wellenreuther + + - NXxraylens + + - rename as "NXxray_refractive_lens" for descriptiveness and + consistency + - "aperture" doc to specify diameter only + - correct lens_geometry options + - Put to an expert because we don"t have time/expertise + + - Term limits of Chairman and Secretary + + - currently limited to 3 years + - problem if terms end between major meetings + - want to make it more likely that term limits occur at full + NIAC meetings + + | `Motion to set the term length to 2 years and the limit for executive officers as two terms.`` + | `vote for 11, against 0, abstain 0`` + + *Meeting End* + +.. |Pete Jemian's physical avatar at the meeting| image:: ../extra_files/Dalek.jpg + :width: 400px diff --git a/source/niac/NIAC2014.rst b/source/niac/NIAC2014.rst new file mode 100644 index 00000000..8d4ba801 --- /dev/null +++ b/source/niac/NIAC2014.rst @@ -0,0 +1,400 @@ +================= +NIAC2014 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2014 + :name: NIAC2014_niac2014 + :class: page-title + + The 2014 plenary NIAC meeting and NeXus Code Camp is scheduled for + December 2014. Both meetings will take place at `The Advanced + Photon Source `__, Argonne National + Laboratory, IL, USA (near Chicago). This time, the NIAC meeting is + not being held in conjunction and proximity with + `NOBUGS `__ which was held in + Japan in September. + + Dates are: + + - NeXus code camp -> Monday, 2014-12-15 - Wednesday, 2014-12-17 + - NIAC Meeting -> Thursday, 2014-12-18 - Friday, 2014-12-19 + + .. rubric:: Location and Accommodation + :name: NIAC2014_location-and-accommodation + + .. rubric:: location of Meetings + :name: NIAC2014_location-of-meetings + + The Code Camp and the NIAC meeting will take place at the Advanced + Photon Source, building 437, conference room C010 + + map: https://goo.gl/maps/OizgQ + + .. rubric:: Recommended Lodging + :name: NIAC2014_recommended-lodging + + `Argonne Guest House, Argonne, Illinois, + USA `__ + + .. container:: language-plaintext highlighter-rouge + + .. container:: python + + .. code:: python + + Argonne Guest House + Argonne National Laboratory + 9700 S. Cass Avenue - Building 460 + Argonne, IL 60439 + Phone: 800-632-8990 or 630-739-6000 + Fax: 630-739-1000 + + | Argonne Guest House + | Argonne National Laboratory + | 9700 S. Cass Avenue - Building 460 + | Argonne, IL 60439 + | USA + + Please reserve your own rooms directly with the hotel: + + | Web site: http://www.anlgh.org/ + | telephone: +1 - 800-632-8990, +1 - 630-739-6000 + | fax: +1 - 630-739-1000 + | map: https://goo.gl/maps/SCwja + | General information: `Visiting the + APS `__, + http://www.aps.anl.gov/About/Visiting + + .. rubric:: Directions + :name: NIAC2014_directions + + - airport: + + - Chicago O"Hare (ORD): international + - Chicago Midway (MDW): domestic + - Milwaukee, WI Mitchell Field (MKE): distant alternative + + - taxi: + + - Call for a taxi pickup only after you have all your bags + - Must be a taxi that goes to Chicago suburbs + - suburban taxi will pickup in second lane of arrivals at + Chicago O"Hare airport + - http://www.americantaxi.com, 1-800-244-1177 (automated + system) + - others + + - airport bus: http://www.airportexpress.com/shuttles/ohare.html + - commuter train: + + - inconvenient + + .. rubric:: Practical Matters + :name: NIAC2014_practical-matters + + .. rubric:: Registration + :name: NIAC2014_registration + + | Step 1: Register with the APS as a visitor to start the process. + | Step 2: Send an email to jemian@anl.gov announcing your plan to + attend. + | Step 3: Confirm your name appears on the official `list of + attendees `__ below. + + .. rubric:: APS Visitor registration + :name: NIAC2014_aps-visitor-registration + + Follow the **STEPS FOR VISITORS** provided: + http://www.aps.anl.gov/Users/Site_Access/ + + You must register **as an APS Visitor** in advance (to identify + matters related to Passport, Visa, and ANL Site Access) or you + should not expect access to the ANL site. If asked, indicate that + you are visiting *Pete Jemian*. + + For the paperwork of all international visitors, we need each + degree, year earned, and institution name. Additionally for + certain visas, we need additional information: + + | F1 visa: we need the I-20 number and expiration date. + | J1 visa: we need the DS-2019 number and expiry date. + | H1 visa: we need the I797 number and expiry date. + + .. rubric:: Host + :name: NIAC2014_host + + - Pete Jemian + + - Advanced Photon Source, Argonne National Laboratory + - email: jemian@anl.gov + - office phone: 1-630-252-3189 (forwards to mobile) + - Google voice: +1-847-859-9775 (forwards to mobile) + + .. rubric:: Costs + :name: NIAC2014_costs + + - Conference fee: no fee + + - food at morning and afternoon breaks will be provided + - perhaps (no guarantee) a small meeting souvenir + + - regular meals (breakfast, lunch, dinner) will be traveler"s + expense + + .. rubric:: Equipment + :name: NIAC2014_equipment + + +--------------------------------------------------+------------+---------------+ + | item | quantity | who provides? | + +==================================================+============+===============+ + | projector & screen | | host | + +--------------------------------------------------+------------+---------------+ + | LCD displays, keyboards, & mice | | host | + +--------------------------------------------------+------------+---------------+ + | 120 VAC, 60 Hz, US-style 3-prong extension cords | sufficient | host | + +--------------------------------------------------+------------+---------------+ + | foreign electrical power adapter | as needed | traveler | + +--------------------------------------------------+------------+---------------+ + | Wi-Fi connections | sufficient | hotel | + +--------------------------------------------------+------------+---------------+ + + .. rubric:: List of Attendees + :name: NIAC2014_list-of-attendees + + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | # | Name | Co | Code | NIAC | Ar | Depa | ANL | intl. | ANL | | | | | | | | | | + | | | mpany | Camp | (1 | rival | rture | vi | pape | gate | | | | | | | | | | + | | | /Inst | (1 | 8-19) | date | date | sitor | rwork | pass | | | | | | | | | | + | | | itute | 5-17) | | | | | | | | | | | | | | | | + +====+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=====+=======+=======+=======+ + | 1 | | `Pete | | Adv | | YES | | YES | | host | | host | | local | | n/a | | local | + | | | Jemia | | anced | | | | | | | | | | | | | | | + | | | n `__ | | gonne | | | | | | | | | | | | | | | + | | | | | Nat | | | | | | | | | | | | | | | + | | | | | ional | | | | | | | | | | | | | | | + | | | | | L | | | | | | | | | | | | | | | + | | | | | abora | | | | | | | | | | | | | | | + | | | | | tory, | | | | | | | | | | | | | | | + | | | | | Arg | | | | | | | | | | | | | | | + | | | | | onne, | | | | | | | | | | | | | | | + | | | | | IL, | | | | | | | | | | | | | | | + | | | | | USA | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 2 | | `He | | Do | | YES | | YES | | 2014- | | 2014- | | com | | n/a | | com | + | | | rbert | | wling | | | | | | 12-14 | | 12-19 | | plete | | | | plete | + | | | Bern | | Col | | | | | | | | | | | | | | | + | | | stein | | lege, | | | | | | | | | | | | | | | + | | | `__ | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 3 | | Mark | | Paul | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | K | | Sch | | | | | | 12-14 | | 12-20 | | plete | | roved | | plete | + | | | oenne | | errer | | | | | | | | | | | | | | | + | | | cke < | | Insti | | | | | | | | | | | | | | | + | | | User% | | tute, | | | | | | | | | | | | | | | + | | | 3AMar | | S | | | | | | | | | | | | | | | + | | | k_Koe | | witze | | | | | | | | | | | | | | | + | | | nneck | | rland | | | | | | | | | | | | | | | + | | | e.htm | | | | | | | | | | | | | | | | | + | | | l> | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 4 | | Mark | | Di | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | Basha | | amond | | | | | | 12-14 | | 12-19 | | plete | | roved | | plete | + | | | m | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 5 | | | | ISIS | | NO | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | Steve | | Faci | | | | | | 12-17 | | 12-19 | | plete | | roved | | plete | + | | | Cottr | | lity, | | | | | | | | | | | | | | | + | | | ell < | | Ruthe | | | | | | | | | | | | | | | + | | | User% | | rford | | | | | | | | | | | | | | | + | | | 3ASte | | App | | | | | | | | | | | | | | | + | | | ve_Co | | leton | | | | | | | | | | | | | | | + | | | ttrel | | L | | | | | | | | | | | | | | | + | | | l.htm | | abora | | | | | | | | | | | | | | | + | | | l> | | tory, | | | | | | | | | | | | | | | + | | | | | UK | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 6 | | | | DESY, | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | Eugen | | Ge | | | | | | 12-14 | | 12-19 | | plete | | roved | | plete | + | | | Wint | | rmany | | | | | | | | | | | | | | | + | | | ersbe | | | | | | | | | | | | | | | | | + | | | rger | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 7 | | | | Law | | NO | | YES | | 2014- | | 2014- | | com | | n/a | | com | + | | | Aaron | | rence | | | | | | 12-17 | | 12-19 | | plete | | | | plete | + | | | Brews | | Ber | | | | | | | | | | | | | | | + | | | ter < | | keley | | | | | | | | | | | | | | | + | | | User% | | L | | | | | | | | | | | | | | | + | | | 3AAar | | abora | | | | | | | | | | | | | | | + | | | on_Br | | tory, | | | | | | | | | | | | | | | + | | | ewste | | USA | | | | | | | | | | | | | | | + | | | r.htm | | | | | | | | | | | | | | | | | + | | | l> | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 8 | Ray | | Ar | | YES | | YES | | ANL | | ANL | | local | | n/a | | local | | + | | Osbo | | gonne | | | | | | staff | | staff | | | | | | | | + | | rn | | USA | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 9 | | Jiro | | J- | | NO | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | Suzuk | | PARC, | | | | | | 12-17 | | 12-20 | | plete | | roved | | plete | + | | | i | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 10 | | T | | Eur | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | obias | | opean | | | | | | 12-14 | | 12-19 | | plete | | roved | | plete | + | | | Rich | | Spall | | | | | | | | | | | | | | | + | | | ter < | | ation | | | | | | | | | | | | | | | + | | | User% | | So | | | | | | | | | | | | | | | + | | | 3ATob | | urce, | | | | | | | | | | | | | | | + | | | ias_R | | S | | | | | | | | | | | | | | | + | | | ichte | | candi | | | | | | | | | | | | | | | + | | | r.htm | | navia | | | | | | | | | | | | | | | + | | | l> | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 11 | | Ben | | Swiss | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | Wa | | Light | | | | | | 12-14 | | 12-19 | | plete | | roved | | plete | + | | | tts < | | So | | | | | | | | | | | | | | | + | | | http: | | urce, | | | | | | | | | | | | | | | + | | | //www | | S | | | | | | | | | | | | | | | + | | | .psi. | | witze | | | | | | | | | | | | | | | + | | | ch/ls | | rland | | | | | | | | | | | | | | | + | | | c/ben | | | | | | | | | | | | | | | | | + | | | jamin | | | | | | | | | | | | | | | | | + | | | -watt | | | | | | | | | | | | | | | | | + | | | s> | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 12 | | Ri | | Spall | | NO | | YES | | 2014- | | 2014- | | com | | app | | com | + | | | cardo | | ation | | | | | | 12-17 | | 12-19 | | plete | | roved | | plete | + | | | M. | | Ne | | | | | | | | | | | | | | | + | | | F | | utron | | | | | | | | | | | | | | | + | | | erraz | | So | | | | | | | | | | | | | | | + | | | Leal | | urce, | | | | | | | | | | | | | | | + | | | | | Oak | | | | | | | | | | | | | | | + | | | | | Ridge | | | | | | | | | | | | | | | + | | | | | Nat | | | | | | | | | | | | | | | + | | | | | ional | | | | | | | | | | | | | | | + | | | | | L | | | | | | | | | | | | | | | + | | | | | abora | | | | | | | | | | | | | | | + | | | | | tory, | | | | | | | | | | | | | | | + | | | | | USA | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | 13 | | Elena | | The | | pr | | NO | | 2014- | | 2014- | | com | | n/a | | com | + | | | Po | | HDF | | esent | | | | 12-17 | | 12-17 | | plete | | | | plete | + | | | urmal | | G | | ation | | | | | | | | | | | | | + | | | | | roup, | | | | | | | | | | | | | | | + | | | | | Champ | | | | | | | | | | | | | | | + | | | | | aign, | | | | | | | | | | | | | | | + | | | | | Illi | | | | | | | | | | | | | | | + | | | | | nois, | | | | | | | | | | | | | | | + | | | | | USA | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + | | | | | | | | | | | | | | | | | | | | + +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ + + .. rubric:: Agenda + :name: NIAC2014_agenda + + Both meetings are taking place in building 437, conference room + C010, starting at 9am. Evening meal is scheduled for 7pm each day + + An afternoon group excursion is being considered. + + .. rubric:: Schedule + :name: NIAC2014_schedule + + The schedule overview: + + +-----------+---------------------------+---------------------------+ + | Day | date | activity | + +===========+===========================+===========================+ + | Sunday | 2014-12-14 | Code Camp participants | + | | | arrive | + +-----------+---------------------------+---------------------------+ + | Monday | 2014-12-15, | NeXus Code Camp, Building | + | | | 437, room C010 | + +-----------+---------------------------+---------------------------+ + | Tuesday | 2014-12-16 | NeXus Code Camp, 437-C010 | + +-----------+---------------------------+---------------------------+ + | Wednesday | 2014-12-17 | NeXus Code Camp, 437-C010 | + +-----------+---------------------------+---------------------------+ + | Wednesday | 2014-12-17 | NIAC members arrive | + +-----------+---------------------------+---------------------------+ + | Thursday | 2014-12-18 | NIAC Meeting, 437-C010 | + +-----------+---------------------------+---------------------------+ + | Friday | 2014-12-19, ends at 1:00 | NIAC Meeting, 437-C010 | + | | PM | | + +-----------+---------------------------+---------------------------+ + | Saturday | 2014-12-20 | checkout | + +-----------+---------------------------+---------------------------+ + + Here is the daily schedule (tentative): + + =================== =============== =========================== + time description comments + =================== =============== =========================== + 9:00 - 10:15 AM meeting work on projects and tasks + 10:15 - 10:45 AM morning break (included) + 10:45 AM - 12:00 PM meeting work on projects and tasks + 12:00 - 1:15 PM lunch offsite, traveler"s expense + 1:15 - 3:15 PM meeting work on projects and tasks + 3:15 - 3:30 PM afternoon break (included) + 3:30 - 5:00 PM meeting work on projects and tasks + 5:00 - 6:00 PM meeting daily summary (plenary) + =================== =============== =========================== + + Notes: + + #. late-afternoon wrap-up (plenary) each day + #. amenities provided at morning and afternoon breaks + #. breakfast, lunch, dinner will be in a local restaurant at + traveler"s expense + + .. rubric:: Meetings + :name: NIAC2014_meetings + + .. rubric:: NeXus Code Camp + :name: NIAC2014_nexus-code-camp + + See `NIAC2014_CodeCamp `__ for specific + Agenda and notes + + .. rubric:: NIAC Meeting + :name: NIAC2014_niac-meeting + + See `NIAC2014_Meeting `__ for specific + Agenda, notes, and Minutes diff --git a/source/niac/NIAC2014_CodeCamp.rst b/source/niac/NIAC2014_CodeCamp.rst new file mode 100644 index 00000000..4e15a929 --- /dev/null +++ b/source/niac/NIAC2014_CodeCamp.rst @@ -0,0 +1,135 @@ +================= +NIAC2014 CodeCamp +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2014 CodeCamp + :name: NIAC2014_CodeCamp_niac2014-codecamp + :class: page-title + + The code camp allows existing NeXus developers to meet and work + together on developing software or resolving particular NeXus + design issues. + + See `NIAC2014 `__ for administrative details about + this meeting. + + .. rubric:: Planned Schedule (subject to change) + :name: planned-schedule-subject-to-change + + |2014-CodeCamp-Schedule-MTW.png| + + .. rubric:: Topics to be Considered + :name: NIAC2014_CodeCamp_topics-to-be-considered + + A subset will be chosen on the first day of the meeting. + + Walk through + + - `Issues `__ + posted on the `NeXus GitHub `__ + repository + - Proposals and other topics listed on the + `Discussions `__ page + - Close issues that are of minor importance and not of particular + concern to anybody and not likely to be resolved any soon. + + Choose topics from the preliminary list below: + + - Procedural questions: + + - How to organize proposals and discussions + - How to remove ballast, when to break compatibility, + versioning and validation + + - Fundamental design issues: + + - Clarify rank specification + + - related to + `#266 `__: + implement difference in rules between base classes and + application definitions + + - Discuss `NeXus interfaces `__ + - `How to avoid name clashes during future extensions of the + Nexus + standard `__ + - Optional contents in application definitions? + - Discuss lightweight tags versus application definitions + - Rules for multi file NeXus files + + - Class specifications: + + - NXformula? + - NXdata: Assigning axes to data once more again + - Prepare contributed definitions for ratification + + - Work on software: + + - validation tools (nxvalidate or NXvalidate): state (cf + `#169/defs `__, + `#251/defs `__, + `#300/defs `__, + `#363/code `__), + further development, WWW service, use of NeXpy/Python-API + for validation + - New NAPI release? + - `#230 `__: + use cmake to build Sphinx documentation + + - Finish support for attribute arrays (who proposed this? please + provide details!) + - Off-site excursion to -tba- + + .. rubric:: Agenda + :name: NIAC2014_CodeCamp_agenda + + +-----------------+-----------------+-----------------+-----------------+ + | | \*Monday\* | \*Tuesday\* | - Wednesday\* | + +=================+=================+=================+=================+ + | 9:00-10:00 | Review | Short | NAPI issues | + | | | procedural | | + +-----------------+-----------------+-----------------+-----------------+ + | 10:00-10:30 | Coffee | Coffee | Coffee | + +-----------------+-----------------+-----------------+-----------------+ + | 10:30-12:00 | | Cansas | Telco with | | + | | | Axes | DECTRIS | | + | | | Error | | | + +-----------------+-----------------+-----------------+-----------------+ + | 12:00-13:00 | Lunch | Lunch | Lunch | + +-----------------+-----------------+-----------------+-----------------+ + | 13:00-15:00 | | DECTRIS, | nexpy | HDF-5 talk | + | | | NXmx etc | | | + +-----------------+-----------------+-----------------+-----------------+ + | 15-15:30 | Coffee | Coffee | Coffee | + +-----------------+-----------------+-----------------+-----------------+ + | 15:30-18:00 | | MXmx, | | Reprioritise | | + | | | when time | for last day | | + | | smaller | | Lightweight | | + | | issues | tags and | | + | | | interfaces | | + +-----------------+-----------------+-----------------+-----------------+ + + .. rubric:: Tuesday + :name: NIAC2014_CodeCamp_tuesday + + - teleconference with Dectris: 10:30 AM + + .. rubric:: for end of day review + :name: for-end-of-day-review + + - `axes `__ + - `uncertainties `__ + + .. rubric:: Wednesday + :name: NIAC2014_CodeCamp_wednesday + + - public talk: *Current State of HDF5*, Elena Pourmal, The HDF + Group, location: 401/A1100 + +.. |2014-CodeCamp-Schedule-MTW.png| image:: ../extra_files/2014-CodeCamp-Schedule-MTW.png + :width: 600px diff --git a/source/niac/NIAC2014_Meeting.rst b/source/niac/NIAC2014_Meeting.rst new file mode 100644 index 00000000..61167a4e --- /dev/null +++ b/source/niac/NIAC2014_Meeting.rst @@ -0,0 +1,351 @@ +================= +NIAC2014 Meeting +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2014 Meeting + :name: NIAC2014_Meeting_niac2014-meeting + :class: page-title + + .. rubric:: NIAC Meeting + :name: NIAC2014_Meeting_niac-meeting + + This is a meeting for members of the NeXus International Advisory + committee and other interested persons. It generally discusses + matters of policy and strategy, but can discuss specific NeXus + instrument definitions if the relevant experts are in attendance. + + See `NIAC2014 `__ for administrative details about + this meeting. + + .. rubric:: Schedule + :name: NIAC2014_Meeting_schedule + + The NIAC2014 Meeting takes place in building 437, conference room + C010, starting at 9am. Evening meal is planned for 7 pm each day. + + |image1| + + Notes: + + #. amenities at morning and afternoon breaks will be provided + #. breakfast, lunch, dinner will be in a local restaurant at + traveler"s expense + + .. rubric:: Items for Agenda + :name: items-for-agenda + + - Votes on new members + - Electing new officers, candidates get ready! + - Revise Constitution `Terms of + Reference `__ : + + - item 3: change wording of "instrument and group class + definitions" to contemporary terms (base classes and + instrument definitions) + + - Examination of contributed definitions and consideration for + ratification: + + - joint CIF/NeXus NXmx + - NXarpes + - NXcanSAS + - NXcite + - NXgrating + - NXstxm + - NXtransformations + - NXzone_plate + - others + + - Deprecation of NeXus polar coordinate system, NXgeometry? + - Do we want better standardization and documentation of NeXus + processes? + - Discussion about how we assign priorities and respond to the + community + - Do we want NeXus Interfaces for improving base class + documentation? + - application definitions: can some items be optional? + - Data Features (lightweight tags with recipes) versus + application definitions? + - Rules for multi file NeXus files + - NXdata: + + - proposal: describe `how to find the default + data <2014_How_to_find_default_data.html>`__ + - proposal: describe how data are related (particularly: `axes + and uncertainties <2014_axes_and_uncertainties.html>`__) + + - NXformula + - `Update for NXflou application + definition `__ + + .. rubric:: NIAC Agenda + :name: NIAC2014_Meeting_niac-agenda + + .. rubric:: Thursday + :name: NIAC2014_Meeting_thursday + + - Introduction - Confirmation of new members + + - Coffee + + - Ratifications + + - NXmx + + - Deprecate old positioning schemes + + - Axes & Errors + + - Lunch + + - Ratifications + + - NXstxm + + - NXfluo + + - Contributed definitions + + - NXformula + + - optional fields in application definitions + + - sequence_index + + - Thumbnail storage + + - Finding default data + + - Features + + .. rubric:: Friday + :name: NIAC2014_Meeting_friday + + - NeXus Procedures including Funding, certification etc. + - Election of officers + - Backlog from Thursday + + 1PM: NIAC terminates + + .. rubric:: Minutes + :name: NIAC2014_Meeting_minutes + + .. rubric:: Thursday Morning + :name: NIAC2014_Meeting_thursday-morning + + Present members: as listed on `NIAC2014 `__. + + Welcome address by John Maclean (Acting Division Director for + Engineering Support). + + Mark K introduction on activities since last meeting, including + code camp. As well as proposed list of topics and agenda. + (SLIDES?) + + Agenda approved as above. + + New Members approved (all in favour): + + - Mark Basham for Diamond + - Tobias Richter for ESS + - Claudio Ferrero for ESRF + + NXmx, NXtransformations and variants accepted as proposed (all in + favour). + + NXgeometry deprecated - manual expresses warning not to use in the + future (all in favour). + + polar_angle and azimuthal_angle stay unannotated in the manual (1 + abstain, 1 against). + + CIF style marked as preferred method for expressing geometry in + the manual (1 abstain). + + Presentation on multidimensional axes by Pete Jemian. + + Coffee break. + + Vote on proposal for NXdata axes with indices attribute only + required when required to resolve ambiguity. All in favour. Vote + on proposal with indices required as in + `2014_axes_and_uncertainties <2014_axes_and_uncertainties.html>`__. + Accepted: 9 in favour. Strong disagreement by Ray Osborn as + adoption is noted: "Adoption of NeXus will be hampered by + additional complexity being required unnecessarily". Ben Watts + would like to add that the default plot in NXdata should be simple + and not contain more data than required. He may make a proposal at + that end in future. + + Eugen clarified the preference to use arrays where possible to + avoid string parsing. No objections. Proposal amended. + + Pete Jemian presenting proposal for uncertainties. No agreement on + best way forward. All three possibilities + (*field*\ \_uncertainties, attribute to field, and attribute to + parent group) all have pros and cons. We reserve all schemes and + explore further. NIAC will see a proposal when experience has been + gained with all variations. + + Lunch + + .. rubric:: Thursday afternoon + :name: NIAC2014_Meeting_thursday-afternoon + + Ratification of new and amended base classes and definitions. + + NXfluo + `Update_for_NXflou_application_definition `__ + Resolution: Proposal is in agreement with existing scan rules. No + vote required. Further amendments to the application definition + may be required, but that needs to be refined. Mark B and Eugen W + will work on that. + + NXapres: Unanimously accepted in the current form in + contributed_definitions. + + NXstxm: Accepted as proposed (lives in development branch on + definitions repo on github). (all in favour) + + NXcite: Accepted with the addition of URL field. (unanimous) + + NXfresnel_zone_plate: Accepted under proviso that the NXgeometry + is removed. (unanimous) + + Discussion of proposed muon classes in contributed. They need + revision. (no vote) + + Clarification decision: By default values are readback values. If + demand values are to be recorded for consistency the recommended + way of naming the data field is to append \_set to the dataset + name, as in energy_set for example. (6 in favour, 6 abstain) + + Coffee break with generous supply of nibbles by our host. (Many + thanks, Pete!) + + NXformula: Agreed as research project (no vote). No evaluation of + formula intended by consumer, use in documentation only. Will be + developed by Eugen. Use of attributes may be required to find + formula for data. muparser may or may not be sufficient. + + NXgrating: Accepted as in development branch. Required revision of + NXmonochromator to go with that agreed (pending). + + Optional fields in application definitions (minOccurs=0): All in + favour of allowing that. + + sequence_index to be added to NXprocess and NXnote to allow for + encoding a sequence of operations or notes. All in favour. + + Discussion of preference on multiple NXprocess or few NXprocess + with NXnotes inside. No consensus. Will allow the community to + gain more experience. + + Adding "default" attribute at root and entry level in order to + find default NXentry and NXdata for plotting. All in favour. + + Providing thumbnails for OS support. Accepted for exploration at + NXroot level. + + Research Projects + + NeXus features (presented by Tobias and Mark B): All in favour of + that effort. Validation in python seen as good approach. NXmx good + first target, because existing validation fails. Muons will be + interested. Needs some more ground work and documentation before + giving the word out. Integration with NeXpy promising. "features" + reserved in NXentry. All in favour. + + Interfaces (presented by Mark K): Works in a similar way for base + classes what features do at a higher level (NXentry). Presentation + well received. No motion, no vote. + + Ray reports on effort for pyro for remote access of NeXus files in + NeXpy. + + No backlog from this day. + + Ben reports on acquisition with decimated counts. Adding + "decimated" to acquisition_mode in NXdetector would help. All in + favour. + + Adding "nominal" to NXmonitor would help normalising data to a + nominal flux for example. Proposed and accepted (2 abstain). + + "rgbimage", "rgbaimage", "hslimage", "hslaimage", "cmykimage" to + be added to the interpretation attribute of datasets to encode 3d + datasets with colour as added dimension to the 2d image. Improve + documentation as well. All in favour. + + Introduction to tomorrow"s topics. + + Vote on changing the constitution to agree with current terms + (application definition and base class). All in favour. + + Vote on removing the Procedures section of the Constitution since + it was never actually in use. All in favour. Wiki changed in line + with both proposals. + + Dinner proposed and accepted. + + .. rubric:: Friday Morning + :name: NIAC2014_Meeting_friday-morning + + Procedural questions. + + Robert"s rule to be followed for setting agenda. All in favour (1 + abstain). + + Action for next chairmen to contact detector vendors and invite + them to discussions in order not to give the perception that the + NIAC relationship to Dectris is in any way special. All in favour. + + Proposal to open nexus-tech discussions to everyone. Mailing list + traffic to be channeled to the general mailing list (or the + committee). Hangout open all interested parties (vendors, + non-members). All in favour. + + Funding. Discussion on how money could help to improve NeXus + adoption. No strong case made for continuous funding for + tutorials, developers or meetings. Topical funding for tutorials + at specific meetings is seen as a good idea. Herbert will look + into that. + + Mark B to investigate a review of NeXus by the `Software + Sustainability Institute `__ in their + next proposal cycle. + + Coffee + + Election of Officers + + Mark K comes to the end of his second term as chair and cannot + stand again. + + - Chair: Tobias elected (1 abstain) + - Executive Secretary: Mark K elected (1 abstain) + - Documentation Release Manager: Pete Jemian reelected (1 + abstain) + - Technical Manager: Eugen Wintersberger (2 abstain) + + All in favour of renaming the Technical Subcommittee Chair role to + Technical Manager. + + Group photo + + Ray suggests using the wiki for voting. No general agreement. + Record keeping of email and presence votes is not ideal currently. + Committing data to a repo might be an idea. Other suggestions were + use of forum software. + + The secretary is tasked with exploring options to improve voting + processes and recording. (1 abstain) + + Many thanks to the kind host. The committee thanks the outgoing + officers. Meeting concluded. + +.. |image1| image:: ../extra_files/2014-NIAC-Schedule-HF.png diff --git a/source/niac/NIAC2016.rst b/source/niac/NIAC2016.rst new file mode 100644 index 00000000..eb1db4fc --- /dev/null +++ b/source/niac/NIAC2016.rst @@ -0,0 +1,31 @@ +================= +NIAC2016 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2016 + :name: NIAC2016_niac2016 + :class: page-title + + The 2016 plenary NIAC meeting and NeXus Code Camp took place in + Copenhagen hosted by + `ESS `__. + As usual the NIAC meeting is being held in conjunction wth and + proximity to the `NOBUGS `__ conference. + + The dates for the Code Camp were 10th, 11th, and 12th October (Mon + - Wed). The NIAC meeting ran Thu & Fri (13th and 14th). + + Topics for the NIAC meeting were registered as + `issues `__ in the + `NIAC `__ repository on + GitHub. + + Registration and Practical Information was available on the + `external ESS indico event + page `__. + + The `2016 Minutes `__ are availble. diff --git a/source/niac/NIAC2016Minutes.rst b/source/niac/NIAC2016Minutes.rst new file mode 100644 index 00000000..60aef923 --- /dev/null +++ b/source/niac/NIAC2016Minutes.rst @@ -0,0 +1,338 @@ +================= +NIAC2016Minutes +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC 2016 Minutes + :name: NIAC2016Minutes_niac-2016-minutes + :class: page-title + + October, 13-14, 2016 in Copenhagen, COBIS Building, M10 + + .. rubric:: Thursday, October, 13 + :name: NIAC2016Minutes_thursday-october-13 + + Welcome from Tobias, organizational tidbits + + Introduction round + + .. rubric:: Topics + :name: NIAC2016Minutes_topics + + - **NXtransformations, NXmx,**, done + - **NXreflections, NXprocess**, done + - WWW-site update, done + - **Streaming NeXus**, done + - NXdirecttof + - Variable length strings, done + - NXcontainer + - Problems with storing scan information + - Versioning, done + - How to increase adoption, done + - 2014 Attributes, done + - **NXcansas**, done + - NXdata, required?, plottable? + - **NXsample**, done + - NXshape", CSG in NeXus + - Weight + - Update on NexPy + - cnxvalidate presentation, done + - HDF5 discussion, done + - How to increase NeXus adoption?, done + + .. rubric:: Membership Renewals + :name: NIAC2016Minutes_membership-renewals + + Ray Osborn unanimously confirmed as representative of ANL in NIAC + + Stephen Cottrell unanimously confirmed as representative of the + musr community in NIAC + + Armando Sole unanimously accepted as ESRF representative in NIAC + + Joachim Wuttke has expired as NIAC member and does not wish to + maintain his membership. There will be no new representative for + FRM-2. + + .. rubric:: cnxvalidate + :name: NIAC2016Minutes_cnxvalidate + + Presentation by Mark Koennecke + + Discussion on validating units and units itself. + + Action Items: + + - Issue on cnxvalidate: research better validation of units, may + be with UDunits, or else. + - Revisit units in the technical committee: interested parties: + Eugen, Herbert, Aaron, Ricardo, aim for a representative of + Mantid + + .. rubric:: canSAS + :name: cansas + + Pete Jemian presented the canSAS application definition. There is + a mapping from canSAS to NeXus. + + There was some discussion on this. The result was that the + definition will be revised to only represent the processed data + (I(Q)) use case. To be revisited once this is done. May be + tomorrow. + + .. rubric:: WWW-Site + :name: www-site + + Ray presented his suggestion for a revised NeXus WWW-site. The + main point is to make it look more modern. Also it is to be + generated with sphinx which makes it easier to restyle it using + sphinx styles. + + Still needs some work, revisit at NeXus Telco. Then make it mobile + friendly. If we can do this easily with Sphinx. + + .. rubric:: Thursday afternoon + :name: NIAC2016Minutes_thursday-afternoon + + .. rubric:: NXmx, NXtransformations + :name: NIAC2016Minutes_nxmx-nxtransformations + + Herbert is presenting proposed changes for NXmx-1.5. + + NXmx is adding a NXdetector_group for documenting detectors better + to humans. They have funny detectors with segments which move + diagonally with regards to the detector center. + + Added an optional third detector dimension. This is a data + organizational dimension. + + There is some discussion about understanding this. + + Changes in NXbeam for polychromatic beams in the application + definition. As optional, added in order to be able to validate + this. + + Flux may need two values, NXbeam defines flux is flux per unit + area. The additional flux is a rate: photons/second. To be called + total_flux. + + Adding incident_beam_size which is a 2 value array of FWHM (when + gaussian) or a diameter (if it is a top hat) or 2 sizes for a + rectangular beam. + + Changes to NXmx **accepted by consensus** after a little + discussion with no objection. + + Herberts presents changes to NXtransformations. + + Axis rotation ranges are being added. Crystallographers want that + for emotional reasons. The use case is the oscillation method. + + Under discussion this changed to: + + These three proposals to change NXtransformations below where + unanimously accepted for by vote: + + - AXIS_end + - AXIS_increment_set. This is the set value for the oscillation + range in an oscillation experiment. + - The actual AXIS value is the start of the oscillation. This + needs to be updated in the documentation. + + The **general** axis is highly contentious and not very well + understood. Herbert says that a general axis could also be + expressed as a translation. + + The end of this: Aaron and Herbert provide better documentation + and examples. We also half agreed to drop the transformation_type + attribute for the general axis. This will be deferred until we + understand this better. + + .. rubric:: Dinner + :name: dinner + + Very nice dinner at taarnet.dk in a high security environment with + x-ray. + + .. rubric:: Friday + :name: NIAC2016Minutes_friday + + David Mannicke initially missing. + + .. rubric:: Election of Officers + :name: NIAC2016Minutes_election-of-officers + + Tobias Richter confirmed as chair with one abstain, 11 yes + + Mark Koennecke confirmed as executive secretary with one abstain, + yes 11 + + Eugen Wintersberger confirmed as technical release manager with + one abstain, yes 11 + + Pete Jemian confirmed as documentation and definition release + manager, 12 yes + + .. rubric:: Streaming NeXus + :name: streaming-nexus + + Mark Koennecke presented the results of the code camp discussion + as a proposal. + + We accepted the renaming NXevent_data fields to what Freddie + presented and is being used at SNS and ISIS. All yes. + + - scaling_factor as attribute to the time fields in NXlog, + NXevent_data. If the scaling_factor is there the time units + refer to the units after scaling, 12 yes + - NXlog clarification, 12 yes + - cue_time_zero, cue_index as optional fields added to NXlog and + NXevent_data, they always index into the main time/data arrays. + 12 yes + - The structure with replacing fields with NXlog or NXevent_data + is accepted, 12 yes + + No majority for summarizing the streamed data in NXdata. + + Action Item: Mark Basham to report on VDS performance in june. + Based on that report we decide if NeXus does need an own + segmentation scheme. + + .. rubric:: NXreflections + :name: NIAC2016Minutes_nxreflections + + Presentation by Aaron Brewster. The use case is to store + intermediate results + + Discussing NXreflections in more detail: + + - H,K,L change to NX_number for incommensurate structures + - Discussion on flags, change to bitfield, no enum for efficiency + - Expand the description of partiality + - Need to keep mm and pixel positions because of parallax + - Write out predicted and observed + - Drop the mm in names, rather use units + - bounding_box as array, document the usage + - Spell out background + - Drop the val on the intensities, keep the \_var version + - overlaps is a list of overlapped reflections. This is a ragged + array. As the code is not in place we defer it for now. + - Add polar_angle and azimuthal_angle + + Accepted as a base class with 12 yes, with the changes listed + above. We trust Aaron to apply the changes. + + .. rubric:: NXsample + :name: nxsample + + Tobias Richter presents suggested changes to NXsample. + + - Happy with unit cell a, b, c and angles + - Happy with additional sample types: buffers etc + - Division into NXsample_component base classes, one per + component + + Accepted with 12 yes + + Some details deferred. + + .. rubric:: NXcansas again + :name: nxcansas-again + + Pete Jemian presenting the canSAS application definition revised + from feedback of yesterday. + + There was some doubt about this is what the canSAS group wants. + + We accept NXcansas with NXinstrument made optional, 8 yes, 4 + abstain + + .. rubric:: Variable length strings + :name: variable-length-strings + + Short discussion on fixed versus variable length strings. + + We accept both variable and fixed length strings, readers have to + support both, 11 yes, 1 no + + .. rubric:: Versioning + :name: NIAC2016Minutes_versioning + + Short discussion on the versioning proposal as presented by Mark + Koennecke from the result of the code camp. + + Herbert made the comment to improve the workflow in this way: + + - You make the change to NXDL and change the version in the NXDL + file + - You build a manual and commit it into the repository + - Then you tag the git repository + + The proposal was accepted on probation with 12 yes. To be + revisited at the next NIAC in order to check if it works. + + .. rubric:: Adoption of NeXus + :name: adoption-of-nexus + + - Convincing scientists + - Pete: use it and make this public + - Herbert: NeXus is required for performance, performance + problems, + - Eugen: users do not want it because analysis tools do not + support it, the chicken-egg problem + - Sociological problems: to slow, social problems with NIAC + - From WWW-site point to tools which can plot NeXus, downloadable + applications, + - NexPy and DAWN as general plotting tools + - Pipelines from raw data to processed data + - We spend a good deal of time on raw data formats. This is used + for archiving at facilities, not for data exchange. + - Now we are at a place where we understand so much about data + that no one else understands us any more. + - Herberts recommends us to listen: where are the needs, Aaron + seconds with the question: how we can I help you to solve your + scientific problem? + - Ray requests support for NeXpy + + We ended the discussion on a time limit. + + .. rubric:: NXdata + :name: NIAC2016Minutes_nxdata + + The problem: required group, some cases where no sensible default + plot can be provided. + + Change the documentation: make it clear that NXdata should be + there but can be omitted if no sensible plot can be provide, 12 + yes. + + .. rubric:: 2014 Attributes + :name: 2014-attributes + + Pete Jemian has a modified version of application definitions with + the 2014 attributes applied. This is the signal, axes definitions + as group attributes. When changing application definitions + consider the code in that branch. + + This is informational. + + .. rubric:: Participants + :name: NIAC2016Minutes_participants + + - David Maennicke, ANSTO + - Ricardo Ferraz Leal, ORNL + - Aaron Brewster, Lawrence Berkeley Lab + - Ray Osborn, ANL + - Ben Watts, SLS, PSI + - Jiro Suzuki, KEK + - Freddy Akeroyd, ISIS + - Eugen Wintersberger, DESY + - Afonso Mukai, ESS-DMSC (Guest) + - Mark Basham, Diamond + - Herbert Bernstein, for CIF + - Tobias Richter, ESS + - Mark Koennecke, SINQ, PSI + - Pete Jemian, APS, part-time attendant by Hangout diff --git a/source/niac/NIAC2018.rst b/source/niac/NIAC2018.rst new file mode 100644 index 00000000..7414c343 --- /dev/null +++ b/source/niac/NIAC2018.rst @@ -0,0 +1,144 @@ +================= +NIAC2018 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2018 + :name: NIAC2018_niac2018 + :class: page-title + + The 2018 plenary NIAC meeting will take place in Brookhaven on the + 25/26th October and is hosted by BNL/NSLS-II. There is not code + camp planned this year. As usual the NIAC meeting is being held in + conjunction with and proximity to the NOBUGS conference. + + Topics for the NIAC meeting can be registered as + `issues `__ in the + `NIAC `__ repository on + GitHub. + + .. rubric:: Registration + :name: NIAC2018_registration + + In order to keep things simple, please just send an email to + Stuart Campbell (scampbell@bnl.gov) stating that you wish to + attend. Then please complete the Site Access instructions below. I + will then update a list of attendees and their status at the + bottom of this page. + + .. rubric:: Site Access + :name: site-access + + In order to gain entrance to the BNL site, all non-BNL personnel + must register with the `BNL Guest Information System + (GIS) `__. If you are already coming to + the NOBUGS conference then you can just extend that registration + to also cover the NIAC meeting. There is no need to do a separate + registration. + + Please use the following information to complete the GIS form for + this conference: + + - Purpose of Visit: Conference Attendance + + - Subject code for Visit/Assignment: Mathematics and Computers + + - Anticipated Start: Oct 25, 2018 + + - Anticipated End: Oct 26, 2018 + + - Access Requested: Physical on-site access to BNL + + - Justification of Visit/Assignment: Participate in NeXus + International Advisory Committee Meeting (Oct. 25-26, 2018) + + - BNL Department Associated With: NSLS-II (PS) + + - Facility being requested to Conduct Research: None + + - Beam line/experiment being requested: None + + - What type of Research or Work will the visitor/assignee be + working on: None + + - First Name of BNL Host for Visit/Assignment: Stuart + + - Last Name of BNL Host for Visit/Assignment: Campbell + + .. rubric:: Attendees + :name: NIAC2018_attendees + + ================= =========== + Name Affiliation + ================= =========== + Stuart Campbell BNL + Bob Sweet BNL + Herbert Bernstein BNL + Jiro Suzuki J-PARC + Tobias Richter ESS + Matt Clarke ESS + Ben Watts PSI + Mark Koennecke PSI + Michele Brambilla PSI + Mark Basham Diamond + Pete Jemian APS + Armando Sole ESRF + Ray Osborn ANL + ================= =========== + + .. rubric:: Location + :name: NIAC2018_location + + 25th Oct - Conference Room A, Bldg. 725 - All Day + + 26th Oct - Conference Room 156, Bldg. 741 - All Day + + Video Conference: https://bnl.bluejeans.com/6313445578 + + .. rubric:: Outline Agenda + :name: outline-agenda + + .. rubric:: Thursday + :name: NIAC2018_thursday + + .. rubric:: Morning + :name: NIAC2018_morning + + - Welcome + - Round Table Introductions + - Confirm Memberships + - Develop Agenda based on GitHub issues, based on participants" + priorities + - Start discussions + + .. rubric:: Afternoon + :name: NIAC2018_afternoon + + - Continue discussions + + .. rubric:: Friday + :name: NIAC2018_friday + + .. rubric:: Morning + :name: NIAC2018_morning-1 + + - Elect Officers + - Changes to Constitution + - Re-evaluate Agenda + - Discuss Business Matters + + .. rubric:: Afternoon + :name: NIAC2018_afternoon-1 + + - Continue discussions + - Closing Matters + - End of Meeting + + .. rubric:: Minutes + :name: NIAC2018_minutes + + Minutes of this meeting are reported + `separately `__ diff --git a/source/niac/NIAC2018Minutes.rst b/source/niac/NIAC2018Minutes.rst new file mode 100644 index 00000000..e58bc232 --- /dev/null +++ b/source/niac/NIAC2018Minutes.rst @@ -0,0 +1,591 @@ +================= +NIAC2018Minutes +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC 2018 Minutes + :name: NIAC2018Minutes_niac-2018-minutes + :class: page-title + + .. rubric:: NIAC Meeting 2018 + :name: NIAC2018Minutes_niac-meeting-2018 + + Brookhaven National Laboratory, October 25-26, 2018 + + .. rubric:: Thursday Morning + :name: NIAC2018Minutes_thursday-morning + + We started by a group activity of arranging tables. + + Round table introduction + + Mark Basham"s membership had expired. A letter of support from + Diamond light source was provided. We voted on confirming Mark + Basham as representative for Diamond: All YES + + .. rubric:: Finding an Agenda + :name: finding-an-agenda + + Suggested Topics: + + - NeXus as logbook format, #37, 3 + - NXptycho, #36, 5 + - Attribute mask, #35, 2 + - Attribute Normalisation, #34, 2 + - McStas-NAPI, #33, 2 + - HDF5 XMP, #32, 5 + - Messy, #37, 5 + - NXquadric, #30, 3 + - NXdata plottype, #29, 2 + - Extended default, #28, 2 + - Uncertainties, #27, 4 + - NXdiffractometer, NXgoniometer, #26, 6 + - NXdata, aux signal, #25, 2 + - Voting, #22, 2 + - 2014 Attributes, #4, 4 + - Interfaces/Features/App Def, example data, #3, 8 + - NXslit, #585, + - NXData, NXdet, #583, 5 + - NXenvironment, #471, 1 + - Rarely used NXDL #331, 0 + - NXsample nature, #327, 0 + - Branding, 4, + + The #numbers point to issues on either the NIAC github or the + NeXus definitions. The other numbers are votes on importance in + the first pass. + + We decided to put a time limit on discussions. Per default this is + 20 minutes. + + .. rubric:: Interfaces, Features, Application Definitions, Example + Data + :name: interfaces-features-application-definitions-example-data + + Clarification of what Interfaces and Features are. The Interfaces + are a better way to organize base classes, Features are more fine + grained application definitions and are set to replace them. + + In this first round we did not come to a conclusion. The issues at + stake where unclear to most attendees. We decided to defer this + discussions to after lunch. By then presentations on both topics + will be presented by Mark Koennecke and Mark Basham. + + .. rubric:: NXdiffractometer, NXgoniometer + :name: nxdiffractometer-nxgoniometer + + This is about having a special group in NXinstrument which + describes a diffractometer. There is a lot of overlap with the + content of NXtransformation. + + We voted on: we add a group to NXinstrument named diffractometer + which is of type NXtransformation. Voting result: All YES, no NO, + no abstain. + + .. rubric:: Break + :name: break + + .. rubric:: NXdiffractometer, continuation + :name: nxdiffractometer-continuation + + We reopened NXdiffractometer because some attendees did not + understand what they voted for. + + For vote: a group of no specified name in NXinstrument of type + NXtransformation which describes a diffractometer. Result: 7 for, + 4 abstain + + .. rubric:: Uncertainties + :name: NIAC2018Minutes_uncertainties + + Uncertainties is the name the NIAC agreed upon for discussing the + storage of experimental or statistical errors associated with a + dataset in a NeXus file. + + This is more a discussion about a clarification of what the actual + way of describing uncertainties is. There was a proposal to + annotate uncertainties in 2014 but we did not arrive at a + conclusion. + + Pete Jemian will research this topic and bring up a proposal in + the afternoon. + + .. rubric:: NXdata, NXdetector + :name: NIAC2018Minutes_nxdata-nxdetector + + In NXdata NeXus collects data to be plotted. In order to do + perform more thorough data processing it is useful to link back + from NXdata to the NXdetector group which describes the detector + and data more fully. Up to now, NeXus uses the target attribute on + the dataset for this function. + + Mark Basham pointed out that the target attribute pointing to the + original data in NXdetector from NXdata is broken when the data + pointed to is an linked external file. We may not even have the + right to open the external file and add the target attribute to + the dataset. + + Proposal from Mark B: The attribute DATASETNAME_target can be used + in the same way as the attribute target to a dataset is used but + it is attached to the parent group. + + Extending the target to annotate the target pointing to an + external file does not work because the attribute may be attached + to a dataset in an external file which we do not have control + over. + + There is a general problem relating data in different files with + each other. + + Armando suggests to have a DATASETNAME_target field which is a + soft link to the group containing the dataset. + + No conclusion was reached. We closed by defining an action item as + follows: Armando and Mark Basham work out together how to do this + in a proper way. Both taking into account NeXus ways of doing + things and the technical possibilities of HDF5. They come back at + a later stage with a documented proposal with examples. + + .. rubric:: NXptycho + :name: nxptycho + + This is coming from the CXI community who actual took NeXus, liked + it but decided that reading and writing attributes is impossible. + Mark Basham put the attributes back again. The resulting files are + compatible with both CXI and NeXus. + + A prerequisite for this application definition is an additional + filed in the NXbeam base class which describes the extent of the + beam. This change was proposed and voted for with: + + For 7, 3 abstain, 0 against + + NXptycho renamed to NXcxi and accepted. This is basically an + application definition coming from an interested community. + + Results of the vote: All in favor. + + .. rubric:: Lunch + :name: lunch + + .. rubric:: Thursday Afternoon + :name: NIAC2018Minutes_thursday-afternoon + + .. rubric:: NXptycho again + :name: nxptycho-again + + Mark Basham pointed out that CXI describes more methods then + ptychography. Thus we need to be more specific with the name of + the application definition. + + The proposal then is to rename NXcxi to NXcxi_ptycho. Result: All + in favor + + .. rubric:: HDF5XMP + :name: hdf5xmp + + The NIAC agreed in an earlier meeting that it would be nice if + file managers could show a sensible thumbnail when encountering + NeXus files. A suitable approach to achieve this was implemented + by Ben Watts with the help of some funds from PSI. + + Ben Watts informed the NISC about what has been done. It is + possible to have a user block in a HDF5 file, before the actual + HDF5 content starts. The approach is to place meta data and + thumbnails in there. There will be our own magic string which + describes the content of our meta data in XMP format. This is a + few keywords and a thumbnail. There are already plugins for most + major file browsers on different OS which can work with this extra + information. These plugins will be fed upstream into OS + distributions. There is python code to add thumbnails and XMP data + to the HDF5 file. Sidecar files with the xmp extension are also + supported. The size of that user block has to be defined when + opening the file. + + The NIAC thanks Ben Watts and PSI for implementing this. + + .. rubric:: Uncertainties, continuation + :name: NIAC2018Minutes_uncertainties-continuation + + Pete Jemian demonstrates his proposal. He proposes an + uncertainties attribute to a dataset which as a value holds the + name of another dataset containing the uncertainties. With the + same shape as the original dataset. + + Comment by Mark Basham: this does not work for linked datasets as + you cannot add the attribute to the dataset in the external file. + DATASETNAME_errors will work because in itself it can be a link. + + Proposals: + + Ben: uncertainties go into a dataset called DATASETNAME_error. We + remove the error and uncertainties field from NXdata. + + Armando: DATASETNAME_errors to be used as a general pattern when + an error field is required. + + Armando"s proposal accepted with all YES + + The ``errors`` field and ``uncertainties`` attribute in NXdata to + be marked deprecated, 8 YES + + .. rubric:: Attribute Mask and Normalisation + :name: attribute-mask-and-normalisation + + We started the discussion by clarifying that NXdata is not only + for plotting. It is used as a container for a data object. + Especially in processed data. It was noted that NXprocess is + intended for processed data. + + At times, there are invalid pixels in an array holding data from a + detector. A means is needed to identify such pixels. This is + commonly done with a mask field. + + Proposal: DATASETNAME_mask as a general way to specify a mask. We + use the conventions as described for NXdetector/pixel_mask with + the option to use less that 32 bit. + + 1 against, all others(10) YES + + It occurs that there is a need to divide a dataset with another + one to normalize it. + + Ray"s proposal: DATASETNAME_weights anywhere in a NeXus file. If + it exists and has the same shape as the dataset, you are supposed + to divide the data by the weights. + + 9 for, abstain 1, + + Armando proposal: weights as an attribute to NXdata which denotes + a dataset which the signal dataset has to be divided by. This + dataset can have one value or as many values as items of the + signal to be normalized. The signal can specify its type by the + interpretation attribute. + + 1 in favor, 5 against, rest abstain, NOT accepted + + .. rubric:: Review of the agenda + :name: review-of-the-agenda + + - Base vs Interfaces, 4 " app def versus interface, 5 + - example data, 2 + - NXdata aux signals, 5 + - 2014 attributes, close the ticket + - NXslit, + - NXenv, 2 + - Rarely used NXDL, close the ticket, + - NXsample nature, not at this meeting + - NeXus as a logbook, 4 + - McStas-NAPI, 4 + - Voting, 1 + - Messy specifications, 6 + - NXquadric, 2 + - Plottype, 1 + - Extended default, 2 + - Branding, 5 + + The numbers after the comma are the votes of importance. + + .. rubric:: Branding + :name: branding + + Some NIAC members felt that the NeXus logo looks outdated. Stuart + Cambell suggested to drop the NeXus graphics to the BNL design + team for reevaluation. They will create a set of suggestions which + the NIAC will discuss at a later stage. + + .. rubric:: Messy Specifications + :name: messy-specifications + + Over time, strings have become a messy affair in NeXus: + + - We started with arrays of bytes. Which later became NX_CHAR. + - HDF5 introduced variable length strings. Unfortunately, the + popular h5py API for writing HDF5 files stores strings per + default as such variable length strings. NeXus decided to + support this, though the HDF-5 API for reading/writing such + strings is of low quality + - After some pressure from the community, arrays of strings were + introduced. Now there is a choice to store a string as a string + or as an array of strings of length 1. + + After some discussion we arrived at the following proposal: + + Array of strings are not allowed in situations where a single + string is expected. Cnxvalidate should flag that. Result of the + vote: All YES + + .. rubric:: NXdata auxiliary signals + :name: NIAC2018Minutes_nxdata-auxiliary-signals + + This is a recovery of the signal=1, signal=2, signal=n feature + which we used to have in the old way of handling axes. + + Proposal: additional group level attribute auxiliary_signals which + is an array of strings holding the names of additional signals to + be plotted with the signal. They all need to be of the same shape. + + All in favor. + + .. rubric:: Extended Use of the Defaults Attribute + :name: extended-use-of-the-defaults-attribute + + Currently we have a ``default`` attribute at root level which + points to the default data. Currently this is restricted to + NXroot, NXentry, NXsubentry. + + Proposal: allow the ``default`` attribute for any NeXus group + which contains a plotable NXdata. + + All in favor + + .. rubric:: Friday Morning + :name: NIAC2018Minutes_friday-morning + + Building #741, Room 156 + + .. rubric:: Election of Officers + :name: NIAC2018Minutes_election-of-officers + + Stuart Campbell to be the technical release manager: All in favour + + Pete Jemian as documentation release manager: All in favour + + Ben Watts as NIAC Executive secretary: All in favour + + Ben Watts steps back as NIAC executive secretary + + Mark Basham as executive NIAC secretary: All in favour + + Ben Watts as NIAC Chairman, All in favour + + .. rubric:: Voting + :name: NIAC2018Minutes_voting + + The NIAC constitution forces NIAC votes to be done by email. It is + unclear however what the acceptance criteria for such email voting + is. It happened often that not enough NIAC members actually voted. + Moreover, there is a danger that the email vote is badly + understood and the NIAC ends up with bad decisions. On the other + hand, the NIAC meets only every two years. A means to vote on + issues when there is a dire need is good to have. For the + discussion resulted the following proposal: + + Email voting as used up to 2018 only for membership renewals + + For issues other then membership renewals the following rule + applies: we vote by teleconference where the proposal can be + discussed. At least 2/3 of the NIAC have to be present at the + teleconference. Then normal majority vote of the attendees + applies. Teleconference decisions need to be published on the NIAC + mailing list. NIAC Members not attending the teleconference have a + one week period in which they can add their vote to the tally. + Those not responding in that week are counted as abstained. + + Results of the vote: 11 in favor, 1 abstain, 0 against + + .. rubric:: Review of the agenda + :name: review-of-the-agenda-1 + + - NeXus as logbook, 7 + - OFF-geometry, 4 + - NXquadric,3 + - NXdata plottype, 2 + - NXslit, + - NXenv,1 + - NXpdb, 3 + - Base CL v Interfaces, 6 + - App Def vs Features, 6 + - Example data, 3 + - NeXus @ Accelerators, 2 + - Target: NXdetector/NXdata, 2 + + The numbers after the comma are the voted importance values. + + .. rubric:: NeXus as Logbook + :name: NIAC2018Minutes_nexus-as-logbook + + Presentation by Mark Koennecke about how to store logbook + information in a NeXus file. The added value is that a suitable + tool can interact with the logbook data. + + Results of some discussion: Nice idea, but not in the NeXus scope. + Nothing is stopping us to use NeXus in this way, however. No new + features in NeXus are required. + + .. rubric:: Interfaces + :name: interfaces + + Presentation about using interfaces for structuring the base + classes better by Mark Koennecke. + + Result: We bury the idea. It adds more complexity to NeXus then it + is worth. We look at the github branch for interfaces for ideas on + structuring the documentation of the base classes better. We add + some documentation on inheritance and interfaces into the design + section of the manual to the tune: we thought about it and stepped + back from it because of the additional complexity introduced by + this. + + Voting results: 1 against, 2 abstain, rest in favor + + .. rubric:: Application Definitions vs. Features + :name: application-definitions-vs-features + + Mark Basham presents on features. Features can also test logic. + Features can also be used to select software to process a file. + + Clarification: Application definitions stay. + + Features provide an example of reading and writing files and also + do some validation. + + Proposal: + + We will make features available through the NeXus-WWW site as + technical preview and encourage contributions from NIAC members. + We accept the feature attribute as official. + + 9 in favor, 2 abstain, rest against + + .. rubric:: OFF geometry + :name: off-geometry + + This is about the mesh geometry as described in NXoff and + discussed multiple times in the NIAC. + + Proposal: accept NXoff into NeXus + + 3 abstains, rest in favor, accepted + + .. rubric:: NXquadric + :name: nxquadric + + A quadric is a 10 parameter functions which defines sheets in + space. This would go into infinity: CSG needed to limit it. This + is more precise then the mesh representation in NXoff. This is + also the motivation for introducing it. + + Result of the discussion: This stays in the contributed + definitions for the time being. + + .. rubric:: Friday afternoon + :name: NIAC2018Minutes_friday-afternoon + + .. rubric:: NXpdb + :name: nxpdb + + Herbert Bernstein presents the proposal. There are tools to + convert pdb data to NeXus and back again. This code is in CBFlib. + + Proposal: we merge this when the tool is available as a standalone + program. We also want example data. At least a pdb and a converted + file. + + All in favor + + .. rubric:: Example data + :name: example-data + + There are two types of files in the NeXus example data repository: + files suitable as a reference and NeXus files as seen in the wild. + + Discussion if github is the right place to store the possibly + large NeXus files. No good alternative was named. + + Closed with: reorganize this into reference and nexus-in-the-wild + examples. We encourage facilities to add more example files. + + No vote required + + .. rubric:: NXdata Plottype Attribute + :name: NIAC2018Minutes_nxdata-plottype--attribute + + This is about describing in more detail how the data is to be + plotted. Color maps, linear or logarithmic axis etc. This could be + achieved by having a plottype attribute at group level which + contains keywords hinting at the intended presentation style. + + | After some discussion the NIAC came up with this + | proposal: NeXus is about how to find and annotate the data to be + plotted but not to describe how the data is to be plotted. + + Voting results: All in favor + + This is to be placed into the documentation. + + .. rubric:: NeXus Target Attribute + :name: NIAC2018Minutes_nexus-target-attribute + + The ``target`` attribute denoting the origin of a linked data item + is broken as it only works for internal links. + + We discussed this a little but could not come to an agreement. The + technical issues raised by this problems need to be looked at in + more detail. + + Thus this Proposal: While the NIAC is working at the problem of + the broken ``target`` attribute for external links, we document + the problem with it. + + 7 in favor, 0 abstains, 0 no + + .. rubric:: NeXus at Accelerators + :name: NIAC2018Minutes_nexus-at-accelerators + + Feedback from the controls groups at PSI about storing data from + accelerators in NeXus: + + - They like NeXus + - They stumbled over the NXsample because they do not have a + sample. And NXsample defines the origin of the NeXus coordinate + system. + + The situation is that they are using NeXus look alike things to + describe an accelerator. They share some with other facilities. + NeXus is not built for accelerators, thus there is a case for a + new tree of groups including one which describes the origin. The + suggestion is to continue working on this and when they are ready + to standardize, to come back to the NIAC. + + .. rubric:: NXenvironment + :name: nxenvironment + + Proposal: In NXsample, mark ``magnetic_field_log`` and + ``temperature_log`` as deprecated. To be replaced with NXlog + classes with ``_log`` dropped from the name. + + 1 abstain, rest in favor + + .. rubric:: NXslit + :name: NIAC2018Minutes_nxslit + + After some discussion we concluded that the NXslit definition is + sufficient. The slit can always be transformed to wherever it + should go. + + .. rubric:: End of NIAC + :name: end-of-niac + + .. rubric:: Attendees + :name: NIAC2018Minutes_attendees + + - Mark Basham, Diamond Light Source + - Stuart Campbell, NSLS-2 + - Ben Watts, PSI, SLS + - Jiro Suzuki, JPARC + - Michele Brambilla, PSI, (Guest) + - Mark Koennecke, PSI, SINQ + - Takahiro Matsumoto, Spring-9, Japan, (Guest) + - Pete Jemian, APS + - Armando Sole, ESRF + - Herbert Weinstein, CIF, + - Andy Moesch, DECTRIS, (Guest) + - Matt Clarke, DMSC, (Guest) + - Ray Osborn, Member at large, (Thursday) + - Freddie Akeroyd, ISIS, (remotely) + - Jens Hoffman, HZB, (remotely) + - Marie XingXing Yao, APS, (Friday morning, guest) diff --git a/source/niac/NIAC2020.rst b/source/niac/NIAC2020.rst new file mode 100644 index 00000000..c65f9e68 --- /dev/null +++ b/source/niac/NIAC2020.rst @@ -0,0 +1,183 @@ +================= +NIAC2020 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2020 + :name: NIAC2020_niac2020 + :class: page-title + + Since the `NOBUGS 2020 conference `__ + has been postponed and continuing COVID-19 issues, the 2020 NIAC + will be held as a series of teleconferences on Monday 12th and + Tuesday 13th October (just prior to the orginal NOBUGS2020 dates). + A `NeXus code + camp <../codecamps/CodeCamp2020-2.html>`__ will + also be held as an online event on Monday 19th and Tuesday 20th + October, the week after NIAC 2020. A final short NIAC session is + planned for October 20th in order to deal with new issues + discovered during the code camp. Precise details will be discussed + at the `NeXus + teleconferences <../teleconferences/Teleconferences.html>`__ + and published here before October 1st. + + Voting on changes to the NeXus standard is reserved for `committee + members `__, but any + interested parties are welcome to observe and stimulate + discussions. Topics for the NIAC meeting should be registered as + `issues `__ in the + `NIAC `__ repository on + GitHub. + + .. rubric:: Registration + :name: NIAC2020_registration + + Registration for the NIAC and code camp is probably not going to + be required, but we might set up some way to indicate intended + attendence in order to improve organisation. + + .. rubric:: Video Conference details + :name: NIAC2020_video-conference-details + + We will be using Zoom (Please mute microphone when not speaking), + you can `test your connection prior to a + meeting `__ + + It is possible to join sessions by telephone - please email + `Freddie Akeroyd `__ if you + wish to do this and I will send you a link to the phone numbers + + Zoom links for each sessions will be posted on the sessions + spreadsheet below. + + .. rubric:: Agenda + :name: NIAC2020_agenda + + `Sessions + Spreadsheet `__ + + `Agenda on + Github `__ + + .. rubric:: Minutes + :name: NIAC2020_minutes + + `Initial Sessions `__, `Concluding + Session `__ + + .. rubric:: Decisions + :name: decisions + + +-----------------------+-----------------------+-----------------------+ + | Proposal | Associated Details | Final Decision | + | | | (for/against/abstain) | + +-----------------------+-----------------------+-----------------------+ + | `NXmx | `Documentation `__ | | + | comment-707254127>`__ | | | + +-----------------------+-----------------------+-----------------------+ + | `@creat | `pu | Accepted | + | or_version `__ | | + | comment-707349309>`__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Inconsistent field | `pu | Accepted | + | nami | ll/809 `__ | | + | ions/issues/791#issue | | | + | comment-707365329>`__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Reservation of name | `pu | Accepted | + | prefixes `__ | | + | comment-707383140>`__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Reserve some | `pu | Accepted | + | prefixes `__ | | + | comment-707383223>`__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Allow prefixes to be | - | Accepted | + | added by email | | (14/1/0) | + | voting `__ | | | + +-----------------------+-----------------------+-----------------------+ + | Elect new: | Benjamin Watts | Accepted | + | `Chair `__ | | | + +-----------------------+-----------------------+-----------------------+ + | Elect new: | Freddie Akeroyd | Accepted | + | `Secretary `__ | | | + +-----------------------+-----------------------+-----------------------+ + | Elect new: | Peter Chang | Accepted | + | `Definition Release | | (12/0/1) | + | Manager `__ | | | + +-----------------------+-----------------------+-----------------------+ + | Elect new: `Technical | Stuart Campbell | Accepted | + | Release | | (12/0/2) | + | Manager `__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Clarify naming | `pu | Accepted | + | conven | ll/671 `__ | | + | itions/pull/671#issue | | | + | comment-715476138>`__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Encourage tech demo | - | Accepted | + | of PIDs for NeXus | | (13/0/1) | + | t | | | + | erminology `__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Update constitution | `pull/8 `__ | | + | at | | | + | NIAC2018 `__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Relax restrictions | - | Accepted | + | on | | (12/0/1) | + | links `__ | | | + +-----------------------+-----------------------+-----------------------+ + | `Allow UUID | - | Accepted | + | attributes, | | (13/0/0) | + | entry_identifier_uuid | | | + | field and | | | + | reserve prefix for | | | + | the BlueSky | | | + | project `__ | | | + +-----------------------+-----------------------+-----------------------+ diff --git a/source/niac/NIAC2020minutes.rst b/source/niac/NIAC2020minutes.rst new file mode 100644 index 00000000..a65a2abb --- /dev/null +++ b/source/niac/NIAC2020minutes.rst @@ -0,0 +1,279 @@ +================= +NIAC2020minutes +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC 2020 Minutes + :name: NIAC2020minutes_niac-2020-minutes + :class: page-title + + .. rubric:: Session A + :name: session-a + + This was a pre-meeting to do initial setup for subsequence + sessions, a brief review of whether items had been assigned to the + correct sessions was carried out + + .. rubric:: Session B + :name: session-b + + Present: HB, FA, PC, HG, PJ, MK, AB, BW, TM, SB, RO, AF + + Upcoming issue assignment was reviewed, it was decided that the + ``NXmx`` discussion should be moved to a major session, but as + there was time in this session it was started early. + + MK queried the use of ``NXdetector_group`` and whether it should + have a ``depends_on`` and ususal NeXus geometry based members. The + use of ``NXdetector_group``, ``NXdetector_module`` and + ``NXdetector`` was discussed. The ``NXdetector_group`` class + pre-dates ``NXdetector_module`` and encompasses some of its + functionality. In its original incantation it could both subdivide + and group detectors, but with the addition of + ``NXdetector_module`` is make more sense only to group NXdetector + objects. AB showed an example of how it is used in ``NXmx`` and it + was decided that rewording the ``NXdetector_module`` description + to how it is being used there was most appropriate. PJ created + `PR#802 `__ + to cover the changes, BW suggested making it clear that use of + ``NXdetector_module`` was optional but as SB pointed out we + already use the work "optional" to mean specific things in + definitions so have to be careful. As part of this the old wording + "detector element" would be changed to just be "detector". + + .. rubric:: Session C + :name: session-c + + Present: HB FA SB HG AB PJ RO PC MK BW AS + + The review of ``NXmx`` was completed. After checking the + constitution, there were insufficent members present for a + required 2/3 quorum so as per NIAC 2018 minutes there will be an + email vote of the whoile NIAC. This will be achieved by members + giving a thumbs up or thumbs down indication to relevant gitbub + NIAC repository issues, a list of them to vote on will be send out + post meeting. The changes to NXdetector_group are purely + documentational so were passed by members present, this closed + `PR#802 `__. + + There was a discussion around ``NXptychography``, this mainly + related to how the beam centre should be stored - in + ``NXdetector`` or using ``NXtransformations``. RO asked if there + were any examples of ``NXtransformations``, there are some details + on the + `wiki `__ + but MK will locate a previous presentation he did on the subject. + PJ will take back a recommendation to the group for + `issue#53 `__ but + further work may be done in the Code Camp on clarifying the + documentation. There is code available in the CBF library to do + the necessary maths for transformations. + + Representing `mathematical formulas in data + files `__ + was discussed, PC added an interesting new `HDF5 + approach `__ but HB raised + concerns over its security model. AB will do further investigation + of approaches. + + There was some discussion about character encoding of strings, + NeXus recommends UTF-8 (which is what h5py will use) but this is + not enforced. The NAPI certainly doesn"t enforce it. It was + suggested cnxvalidate could raise a warnng if non-utf8 strings + were detected, there is suport in HDF5 for `specifying and + checking a character + encoding `__. + + .. rubric:: Session D + :name: session-d + + Present: HB FA RB PC PJ AB RO SB MK TM AS BW + + The addition of a ``creator_version`` top level attribute was + discussed and submitted for `email + voting `__. + + Next, clarifying of `naming + conventions `__ was + discussed. PJ summarised main items in + `issue#544 `__. + Part of the history of this is that keeping field/group names to + valid variable name characters allowed easy "a.b.c.d" syntax in + some scripting languages and RO mentioned attribute references and + command line completion in Python. However dictionary based + completion is now possible and HDF5 allows a wider range of + charaters. It was decided that official names for groups and + fields should reamin as ASCII with the original restrictions, but + the regular expression used for user specified fields would be + extended to allow decimal point and items starting with a number + e.g. an ``NXentry`` called "1.1". The wider regular expression + just covers when warnings are printed, NIAC is not restricting + your naming of fields and groups for special facility and program + usage. The regular expression code check will be updated in the + upcoming code camp. + + The next discussion was a recommendation for where dimension + information such as "x" should go in field names. NeXus is not + consistent here e.g. "beam_centre_x" and "x_pixel_size". It was + decided that "x" as a suffix was preferred, and will be + recommended for new definitions (no changes to exiting + definitions). The alternative of using an array/list was also + mentioned e.g. using somethign like beam_centre[0] and + beam_centre[1] instead of beam_centre_x and beam_centre_y. This + arose from comments on the ``NXdetector`` where the documentation + in the NXDL header states that the i index is the x axis and the + slowest varying. Given detectors can be in different orientations, + it was decided to `remove the references to x and y in this + header `__. + + The next discussion involved inconsistent symbol naming, as noted + by RB in + `issue#802 `__ + - these are names used in a definition to tie togther items with + e.g. the same array length, they never appear in a data file. + Across definitions there are mixtures of CamelCase v under_score + and different names for "number of pixels". etc. It was agreed + that standardising these would be good, and the change does not + break any exisiting data files - it is purely an in-definition + tool. + + `Reserved prefixes and + suffixes `__ + were discussed next - reserving "nx" for use by the NIAC is one + long standing example, but other communities may wish to reserve a + prefix/suffix too. If approved by NIAC vote, a table will kept in + the user manual detailing these and their owners, there will be a + NIAC vote to approve the current list. It was also suggested that + NIAC be asked to delegate additions (but not removals) to the + table to Teleconference meetings. + + .. rubric:: Sessions E + :name: sessions-e + + did not take place + + .. rubric:: Session F + :name: session-f + + did not take place + + .. rubric:: Session G + :name: session-g + + Present: BW FA MK HG HN PJ PC RO SB AB TM RB + + Discussed the `use of NX_DATE_TIME rather than NX_CHAR for + file_time and file_update_time in + NXroot `__. NeXus + has always said to use ISO8601 for datetime, so this is just + bringing the definition in line with the manual. Change was merged + as effectively updating documentation. There was a discussion + about timezones, which are not mandatory in ISO8601 - if none are + specified local time is assumed. It was agreed to update the + manual to say that supplying a timezone was recommended, this + avoids issues if e.g. daylight saving time changes during an + experiment. + + For the election of officers, names will be added to a `wiki + page `__ for emoji + based voting. A note would be sent to the NIAC, and additional + names can be added during the time window. A doodle poll will be + created by BW and circulated to NIAC members for the date of a + NIAC summary meeting, this will repalce the final summary session + I of the current NIAC. The election of officers will be completed + at this additional NIAC meeting, which will also summarise the + NIAC and CodeCamp. There was a brief discussion about whether to + merge the documentation release and technical release manager + roles, since we are not making many releasees of the NAPI these + days. It was decided to defer this to the next NIAC. + + In `isse#71 `__ MK + pointed put that guidelines agreed at NIAC 2018 concerning online + voting and teleconference voting had not yet been added to the + NIAC constitution. Action to add these. We have been considering + the NIAC as a "teleconference" with regard to these guidelines. + + It was agreed to move + `issue#48 `__ + (improvemnts to NXdata) to a later session + + `Specifying precision in nexus + files `__ has + already been actioned and the underlying ticket closed, so no + further NIAC discussion is required. + + The `future of the NeXus C API (NAPI) was + discussed `__ MK + gave a brief overview of the history of the interface and how it + simplified the generation of files when HDF4 was the main format. + This library has been marked as bugfix only in the documentation, + and there are some outstanding issues and pull requests to fix. + Some of the issues related to incompatibilities with newer + versions of packages such as MXML, and potentially HDF5 1.12 It + was agreed that MK and FA would consult the nexus mailing list as + to their usage and of NAPI, it may be possible to drop support for + e.g. HDF4 or XML from NAPI that would aid future maintenance. RO + mentioned that the examples in the user manual use the NAPI a lot. + It was agreed the code camp should also revisit the examples in + the user manual and makle sure it is clear that NAPI is receiving + minimal support and provide equivalent HDF5 native API c/c++ + examples. We should also update examples generating or referring + to HDF4 in the manual, it should only be referenced in the history + section. HB pointed out that HDF4 is only minimally supported by + the HDF group. + + .. rubric:: Session H + :name: session-h + + RO gave an introduction to the nexusformat python package as part + of `issue#43 `__ it + is a wrapper around h5py that provides a simpler interface, making + the generation of NeXus files easier and less error prone for a + new user. Being NeXus aware, it can handle axis attributes and + conventions for you, add correct class attributes, string + encoding. There is also a fully featured GUI NeXpy (which is NXDL + aware) built on top of nexusformat, but the discussion here was + concerning just the nexusformat package. + + Several members present, in particular AB and RB, were interested + in investigaing its usage on future upcoming projects, but many + people present had already invested heavily in h5py based + approaches. It was agreed that the NeXus manual examples should be + updated to show how to read/write files using both nexusformat and + h5py, the simpler interface of nexusformat could be useful to many + users. The example updating will be done at the upcoming code + camp. BW also noted that the package is not mentioned on the nexus + utilities page and will be added there too. + + An application definition that shows `mixed use of + ``NXreflections`` and + ``NXmx`` `__ was + discussed next. Some issues arise that are realted to ``NXmx`` + being an application definition and ``NXreflections`` being a base + class. There was discussion as to whether an ``NXprocess`` in a + separate ``NXentry`` or new application definition was + appropriate. In effect ``NXmx`` is thge raw data, there can be + many instances of ``NXreflection`` showing iterations of the data + processing. This will be discussed more at code camp. + + The `changes to + ``NXdata`` `__ were + briefly reviewed, the changes were mostly to wording and looked + fair, but it was difficult to be sure as there were merge + conflicts due to the age of the branch. It was agreed that the + branch would be rebased back onto master and the changes reviews + at code camp. + + BW will create a poll for a final NIAC session date and send to + the mailing list, all voting will be left open until that session, + which will be towards the end of October. + + .. rubric:: Session I + :name: session-i + + This was the final scheduled session, but was purely for summing + up. It has been posponed to a later date in October, with date + determined by poll to the nexus committee list. diff --git a/source/niac/NIAC2020minutes_concluding.rst b/source/niac/NIAC2020minutes_concluding.rst new file mode 100644 index 00000000..992c23ee --- /dev/null +++ b/source/niac/NIAC2020minutes_concluding.rst @@ -0,0 +1,318 @@ +========================== +NIAC2020minutes concluding +========================== + +.. container:: content + + .. container:: page + + .. rubric:: NIAC 2020 Concluding Session Minutes + :name: NIAC2020minutes_concluding_niac-2020-concluding-session-minutes + :class: page-title + + The following `NIAC `__ + members were present: SC, FA, HB, RB, PJ, AB, PC, BW, WG, AS, TM, + MJ, RO, MK, HG + + Matthew Jones (MJ) was standing in for Tobias Richter. + + This was the concluding session of + `NIAC2020 `__ and was + planned to summarise the NIAC and code camp results and move onto + discussions and start voting on the matters arising. Items + discussed and voted on at this meeting will be left open for a + final week for NIAC members who were not able to be present to add + their votes or raise further questions. Minutes of the previous + sessions `are + available `__ + + The items to be discussed at this meeting were `listed at + github `__ + + BW summarised the recent `CodeCamp + 2020-2 <../codecamps/CodeCamp2020-2.html>`__ + Achievements + + - Fixed issues in + `documentation `__ + - exampledata repository + + - `generate example + files `__ + - `better listing of file + contents `__ + + - `Clarify naming + convention `__ + (`vote `__) + - `Bug fixes for + NAPI `__ + + There was a discussion over what rules were governing the current + NIAC meeting. The constitution discusses regular NIAC meetings and + teleconferences, it did not mention a virtual NIAC as such. The + teleconference (TC) rules say that 2/3 of a NIAC need to be + present for adequate discussion to take place before decisions are + voted on, but any decision is passed to the email list for final + votes of non present members to be added. There were 15 / 22 + members present at this meeting, which did constitute 2/3 of the + NIAC. It was decided to follow teleconference rules for this NIAC + and leave a final week of online voting in order to ensure + legality. + + There was some further discussion of 2/3 quorum rule for + teleconferences and whether this might prove to be restrictive in + future for progressing decisions. Final decisions are not made at + a teleconference even with more than 2/3 of the NIAC present, but + unless 2/3 of the NIAC are present then the motion is not + considered to have been adequately discussed and so does not get + passed onto further consideration and voting. It was generally + agreed that larger voting participation was desirable, but the + mechanism may need to be enhanced. Different timezones can make + finding an optimal meeting time difficult. Maybe 2/3 of NIAC + member had been involved in the discussion over several (TC) + meetings then it could move forward to wider email/list vote, but + at the moment there is no indication that any changes are needed. + + The number of votes cast by the emoji based voting so far was not + large, it was wondered if some abstentions had not been recorded + and maybe instructions to indicate an abstention (by any not + already mentioned emoji) were not originally clear enough. There + will be a final email conclusion to voting, so people will be + asked to register a choice. We should also draw people"s attention + to the process in the constitution for a NIAC member raising + concern on a matter. + + As discussed at the earlier sessions, a `survey has been sent out + to the NeXus + community `__ + by MK & FA as to their current use of ther old NeXus API (NAPI), + with a view to determining future support options. It had been + agreed that a bugfix release of NAPI would be done after merging + current outstanding pull requests. + + .. rubric:: Clarify naming conventions for groups and field + :name: clarify-naming-conventions-for-groups-and-field + + This was to clarify recommended NeXus names (lowercase letters + with underscore plus trailing number, basically a valid variable + name in most programming languages) verses generally allowed names + in common usage (mixed case alphanumeric plus \_ and . , except + disallowing starting or ending with .) A regular expression was + proposed for these combinations and is shown on the link and these + expressions could be used by validation tools. HDF5 allows a wider + range of characters in names than we currently use. AB asked about + the current position on support and use of Unicode in NeXus. MK + indicated the position was that unicode (via UTF8) was allowed for + content by NeXus (HDF5 has a mechanism to indicate encoding), but + not for field/dataset names which should be in + standard/non-extended ASCII. This does mean that though NeXus does + not specify a name for an NXentry for example, it is saying that a + restricted character set should be used for it. After some + discussion it was decided that though there are some technical + issues in widening support the matter should be revisited at a + later stage with input from members who may be interested in using + a wider range of characters in field/dataset names. For info, + `HDF5 support is described + here `__ + The NIAC proposed the statement "The NIAC recognises that the + majority of the world uses characters outside of the basic latin + (7-bit ASCII) set currently included in the allowed names. The + restriction given here reflects current technical issues and we + expect to revisit the issue and relax such restrictions in + future." + `link `__ + + .. rubric:: NXmx application definition + :name: NIAC2020minutes_concluding_nxmx-application-definition + + The next discussion concerned + `NXmx `__ + The members present were happy with the current draft and it will + be passed to the NIAC list for final email voting. + + .. rubric:: @creator_version attribute + :name: creator_version-attribute + + This is described + `here `__ + and was the addition of an optional root level attribute to + complement the "creator" attribute by indicating its (software) + version. This was agreed to be passed to final email voting. + + .. rubric:: Inconsistent field naming conventions + :name: inconsistent-field-naming-conventions + + This discussion covered the use of either a prefix or a suffix to + indicate a more specific part of an item, such as where to place + "x": "pixel_x" or "x_pixel" ? NeXus has been inconsistent in the + past, it was agreed amongst those present to recommend a suffix + (i.e. "\_x") to indicate a more specific part in future + definitions, using a suffix makes items group more nicely in user + interfaces. Voting and details are + `here `__ + + Note: we are not planning to change any existing definitions, this + is just a recommendation for future definitions + + .. rubric:: Reserving prefixes + :name: reserving-prefixes + + NeXus currently reserves the NX prefix for official use, this + avoids potential clashes with other names that may be used. It was + discussed that certain other groups may also wish to reserve a + specific prefix for use within their domain to help with + management of their namespace. While the general idea and use case + was supported, it should not lead to an effective separate + definition space and groups should still put forward definitions + to be included officially. See the `proposal + vote `__ + and the `initial list of prefixes to + reserve `__ + + There was discussion of the mechanism for how new prefixes should + be added, and it was proposed that such additions could be done + via a simple email vote without needing a 2/3 NIAC discussion + first + + `issue + link `__ + + .. rubric:: Elect officers + :name: elect-officers + + Nominations are `listed + here `__ for votes + to be added + + .. rubric:: PIDs for NeXus terminology + :name: pids-for-nexus-terminology + + Heike G"rzig gave a presentation of persistent identifiers (PIDs) + and their relation to Findable, Accessible, Interoperable and + Reusable (FAIR) data. There are more details `contained + here `__ but the + general idea was to use PIDs to attach meaning to specific terms + that may have a different names in different domains, reducing + issues caused by different use or changes of vocabulary, and + making the item very easily machine locatable. So for example a + PID could be assigned (via the NXDL) to an item in the nexus file, + this allows that particular item to be identified however it may + be named (or changed) in different definitions. There was general + support for the idea and it was proposed to explore a prototype + via a branch of the nexus definitions repository and then return + to the NIAC later with a demonstration and proposal. + + `issue + link `__ + + .. rubric:: Constitution changes + :name: constitution-changes + + The only matter discussed was the rules for making offical + decisions at teleconference meetings, these had originally come + from `discussions at NIAC + 2018 `__. + The 2018 proposal had been incorporated verbatim into the + constitution pages on the web and it was agreed that some context + and clarification should be added to the original wording, but the + meaning should reflect intent of the 2018 decision. Both sets of + wording for comparison are described `on the + ticket `__ along + with the `voting + link `__ + The 2/3 quorum requirement was again discussed as a possible + difficulty for further decisions before the next full NIAC + meeting. BW suggested that it simply requires adequate + advertisement and organisation for properly engaging the NIAC + members. It was further raised that substantial changes to the + voting rules should be carefully considered in order to not repeat + the mistakes made in 2018. + + .. rubric:: Using soft links rather than target attribute + :name: using-soft-links-rather-than-target-attribute + + The NeXus API only uses hardlinks, in HDF4 they were the only + option. As both linked items are indistinguishable, the target + attribute was used to indicate the "interesting" end of the link. + E.g. if you have linked the detector counts dataset inside an + NXdetector into an NXdata you could use the target attribute to + locate the NXdetector and hence further metadata about the counts. + Without the target attribute, the only way you could locate the + NXdetector source would be by examining object ids within the file + to see whether they referred to the same dataset. HDF5 soft links + are more like symbolic links in a unix filesystem, they contain + the name of the item referenced (in fact pretty much what a target + attribute would contain). So there is no need for a target + attribute in this case. + + It was agreed to propose: + + - Any type of link (Soft, Hard and External) is allowed. + - The use of the target attribute is optional when using soft + links. + + `issue + link `__ + + .. rubric:: nexusformat python package + :name: NIAC2020minutes_concluding_nexusformat-python-package + + RO gave a presentation on the `nexusformat python + package `__ which + provides a simpler interface to create nexus files. It was agreed + that the NeXus manual should be updated to include examples using + both h5py and nexusformat as solutions. It was noted that there is + an old python binding included as part of the NAPI, any use of + this should be removed from examples, and the future of the NAPI + itself is the subject of a user consultation as described above. + We thank RO for his work on NeXus over the years. + + .. rubric:: Adding globally unique identifier to NXentry + :name: adding-globally-unique-identifier-to-nxentry + + The issue was introduced by SC. There is currently an + "entry_identifier" field for storing a unique identifier, but at + BNL they would like to store two identifiers: a "scan id" for the + entry and also an "entry uuid". There was discussion as to whether + the scheme for uuid should be made available to all objects e.g. a + "uuid" attribute, and also if "entry_identifier_uuid" could be a + group attribute of NXentry rather than a field. There are + potential complications that may arise due to linking, so the + proposal is to add entry_identifier_uuid as an optional NXentry + field and the uuid attribute to other fields/groups. The reserving + of a BS\_ or BLUESKY\_ prefix was also discussed and added to the + ticket. + + `issue + link `__ + + .. rubric:: other items mentioned + :name: NIAC2020minutes_concluding_other-items-mentioned + + - SC has been looking to get the NeXus API (NAPI) included with + Fedora and RHEL, he will enquire as to the state of the Debian + package + - PJ is planning to drop NXspecdata from the contributed + definitions, he will send an email to the list + - We will have the next teleconference early December, doodle + poll to follow + + .. rubric:: Summary + :name: summary + + All NIAC members are requested to please vote on `each + proposal `__ + by 3rd November 2020. You can either: + + - use thumbs up/down emoji to indicate yes/no, any other emoji to + indicate abstention, on the tickets; or + - reply to the email circulated to + `nexus-committee `__ + + Feel free to continue discussion on the ticket and/or NeXus + mailing list. + + Decisions are `listed + here `__, + including links to the votes. diff --git a/source/niac/NIAC2022.rst b/source/niac/NIAC2022.rst new file mode 100644 index 00000000..da3463eb --- /dev/null +++ b/source/niac/NIAC2022.rst @@ -0,0 +1,326 @@ +================= +NIAC2022 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2022 + :name: NIAC2022_niac2022 + :class: page-title + + The NIAC2022 meeting will be held as a hybrid event hosted by the + `Paul Scherrer Institute `__ on September + 14-16th, which is the week before the `2022 NOBUGS + conference `__. + + As COVID19 continues to be a concern, people will be able to + participate both onsite and online (via Zoom). In order to better + overlap with other time zones (especially in the Americas), the + meeting sessions will be shorter and later in the day (CEST) over + 3 days (instead of the usual 2 days). + + .. rubric:: Venue and Accommodation + :name: NIAC2022_venue-and-accommodation + + PSI is a major research institute in `northern + Switzerland `__ hosting a + number of `large-scale + facilities `__ + and `specialised research + laboratories `__. + It is easy to `reach by public + transport `__. The + `PSI Pocket web-app `__ provides lots + of useful information for visitors. Public transport in + Switzerland is very good and reliable and thus is highly + recommended. Trains, busses and ferries all share the same + ticketing system so that a single ticket covers a journey that may + utilise a combination of vehicles. While the tickets are typically + based on zones being traversed, most ticket purchases are + organised by simply stating the start and end points. Journeys can + be streamlined by using the `SBB Mobile + app `__, + which provides time tables, ticket purchasing and holds tickets + (only have to show the ticket if asked by a train conductor). + Trips can be `planned online `__ with + links to purchase tickets in advance to be downloaded to a phone + or as PDF. + + The `PSI guest house `__ is + conveniently situated on site, and is probably the cheapest option + but is considered basic by many. The PSI guest house also has + limited availability and so should be booked as early as possible. + Other `nearby + hotels `__ are a + short bus ride away (such busses typically run every half hour). + + The + `climate `__ in + mid-September is generally cool to mild with overcast, foggy + mornings being common. + + .. rubric:: Registration + :name: NIAC2022_registration + + `Registration + Form `__ + + `One Page Overview `__ + + We ask that all participants register for the meeting, regardless + of whether they will be joining in person or online so that + sufficient resources can be organised. People outside of the NIAC + are invited to join discussions and register for the meeting but + voting will be restricted to committee members only. + + .. rubric:: COVID19 Precautions + :name: NIAC2022_covid19-precautions + + There are currently no coronavirus restrictions in place at + `PSI `__ or by the `Swiss + government `__. + However, the situation could change, especially as the weather + gets cooler, and we encourage attendees to consider both their own + safety and the safety of others with appropriate hygiene, testing + and vaccination. + + .. rubric:: Agenda + :name: NIAC2022_agenda + + The meeting agenda will be based on a `Github + project `__ so + that it is accessible to all particpants. Any proposal to be + discussed and voted on should be documented as an issue in the + `nexusformat/NIAC + repository `__. + + .. rubric:: Minutes + :name: NIAC2022_minutes + + `NIAC2022 minutes `__ + + .. rubric:: Schedule + :name: NIAC2022_schedule + + The meeting will have sets of 2 hour sessions with 30 minute + breaks. 3 sessions per day for 3 days. + + `Zoom + link `__ + + ID: 619 9282 9752 + + passcode: nexus + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | A | ============= ========= | + | September 14th | Tokyo Thu 19:00 | + | 10:00-12:00 UTC | San Francisco Thu 03:00 | + | | New York Thu 06:00 | + | | London Thu 11:00 | + | | Z rich Thu 12:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | B | ============= ========= | + | September 14th | Tokyo Fri 21:30 | + | 12:30-14:30 UTC | San Francisco Thu 5:30 | + | | New York Thu 8:30 | + | | London Thu 13:30 | + | | Z rich Thu 14:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | C | ============= ========= | + | September 14th | Tokyo Fri 00:00 | + | 15:00-17:00 UTC | San Francisco Fri 08:00 | + | | New York Fri 11:00 | + | | London Fri 16:00 | + | | Z rich Fri 17:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | D | ============= ========= | + | September 15th | Tokyo Thu 19:00 | + | 10:00-12:00 UTC | San Francisco Thu 03:00 | + | | New York Thu 06:00 | + | | London Thu 11:00 | + | | Z rich Thu 12:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | E | ============= ========= | + | September 15th | Tokyo Fri 21:30 | + | 12:30-14:30 UTC | San Francisco Thu 5:30 | + | | New York Thu 8:30 | + | | London Thu 13:30 | + | | Z rich Thu 14:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | F | ============= ========= | + | September 15th | Tokyo Fri 00:00 | + | 15:00-17:00 UTC | San Francisco Fri 08:00 | + | | New York Fri 11:00 | + | | London Fri 16:00 | + | | Z rich Fri 17:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | G | ============= ========= | + | September 16th | Tokyo Thu 19:00 | + | 10:00-12:00 UTC | San Francisco Thu 03:00 | + | | New York Thu 06:00 | + | | London Thu 11:00 | + | | Z rich Thu 12:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | H | ============= ========= | + | September 16th | Tokyo Fri 21:30 | + | 12:30-14:30 UTC | San Francisco Thu 5:30 | + | | New York Thu 8:30 | + | | London Thu 13:30 | + | | Z rich Thu 14:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | I | ============= ========= | + | September 16th | Tokyo Fri 00:00 | + | 15:00-17:00 UTC | San Francisco Fri 08:00 | + | | New York Fri 11:00 | + | | London Fri 16:00 | + | | Z rich Fri 17:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + .. rubric:: Official Decisions and Statements + :name: NIAC2022_official-decisions-and-statements + + +-----------------+-----------------+-----------------+-----------------+ + | Proposal (link | Discussion | Implementation | Decision | + | to voting) | | | (for/a | + | | | | gainst/abstain) | + +=================+=================+=================+=================+ + | `Flux | `issue#98 | `pull#10 | Accepted | + | definitions for | 6 `__ | s/pull/1035>`__ | | + | nitions/pull/10 | | | | + | 35#issuecomment | | | | + | -1248232346>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Math in NXDL | `issue#1084 | Statement | Accepted | + | symbol | `__ | | | + | tions/issues/10 | | | | + | 84#issuecomment | | | | + | -1249411564>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Review of | `issue#52 | `pull#11 | Accepted | + | NXsas | 2 `__ | s/pull/1194>`__ | | + | 58#issuecomment | | | | + | -1249513045>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Elect | | Aaron Brewster | Accepted | + | Chair | | | (13/0/0) | + | `__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Elect | | Sandor | Accepted | + | Executive | | Brockhauser | (11/0/1) | + | Secretary | | | | + | `__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Elect | | Mark Koennecke | Accepted | + | Technical | | | (12/0/0) | + | Manager | | | | + | `__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Elect | | Peter Chang | Accepted | + | Definitions | | | (12/0/0) | + | Release | | | | + | Manager | | | | + | `__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `NeXus ontology | `i | Statement | Accepted | + | development | ssue#136 `__ | | | + | 36#issuecomment | | | | + | -1246777030>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Support | `i | `pull#11 | Accepted | + | "recommended" | ssue#140 `__ | s/pull/1183>`__ | | + | .com/nexusforma | | | | + | t/NIAC/issues/1 | | | | + | 40#issuecomment | | | | + | -1246721024>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | Improvements | issue 1170 | pull 11 | Accepted | + | to | __ | s/pull/1190>__ | | + | nitions/pull/11 | | | | + | 90#issuecomment | | | | + | -1248133885>__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Clarify data | `i | | Accepted | + | types: | ssue#142 `__ | | | + | .com/nexusforma | | | | + | t/NIAC/issues/1 | | | | + | 42#issuecomment | | | | + | -1247951551>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Clarify data | `i | | Accepted | + | types: | ssue#142 `__ | | | + | t/NIAC/issues/1 | | | | + | 42#issuecomment | | | | + | -1247957679>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Clarify data | `i | | Rejected | + | types: | ssue#142 `__ | | | + | .com/nexusforma | | | | + | t/NIAC/issues/1 | | | | + | 42#issuecomment | | | | + | -1247961708>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ diff --git a/source/niac/NIAC2022_fall_minutes.rst b/source/niac/NIAC2022_fall_minutes.rst new file mode 100644 index 00000000..6f63e8dd --- /dev/null +++ b/source/niac/NIAC2022_fall_minutes.rst @@ -0,0 +1,159 @@ +===================== +NIAC2022 fall minutes +===================== + +.. container:: content + + .. container:: page + + .. rubric:: Minutes of the NIAC2022 Fall Meeting + :name: NIAC2022_fall_minutes_minutes-of-the-niac2022-fall-meeting + :class: page-title + + .. rubric:: Session B: Sept 14th 12:30 UTC + :name: NIAC2022_fall_minutes_session-b-sept-14th-1230-utc + + NIAC members Present: Sandor Brockhaus (SB), Mark Koennecke (MK), + Russ Berg (RB), Ben Watts (BW), Freddie Akeroyd (FA), Peter Chang + (PC), Heike Gorzig (HG), Wout de Nolf (WD), Pete Jemian (PJ), Luca + Geliso (LG), Takahiro Matsumoto (TM), Herbert Bernstein (HB) + + non-NIAC Present: Markus Kunbach (Markus), + + BW proposed voting via github thumbs up/down and it was agreed + + SB presented issue 24, Proposal is to allow the "recommended" + property (to complement "optional" which can be true or false) to + be applied to attributes. + https://github.com/nexusformat/NIAC/issues/140 PJ This + "recommended" property has already been approved for fields and + groups, so this will just make attributes more consistent. PJ + suggested to add "Developers" as reviewers for pull requests The + proposal was voted on and approved. + + SB preseted issue 3 (Allow NXdata dimension variables to contain a + list of strings https://github.com/nexusformat/NIAC/issues/945), + SB this would be an array of strings PC this issue was voted on + and approved back at the spring NIAC PJ the changes need to be + made, will set for next release + + SB presented issue 23, Support for non-dimensional coordinates in + NXdata https://github.com/nexusformat/NIAC/issues/139 MK proposal + refers to issues of data processing and thus goes to far for what + NEXUS is expected to provide BW NEXUS has seen this before, NEXUS + shouldnt describe how to produce plot, it should make the data + accessble only SB proposal is also to propose future axes as well, + MK this still seems to require more data specializations which BW + NXdata is recomended to exist for each dataset so it should be + kept more general and not be too specific about how to produce + plotting which is more in teh realm of data processing WD this can + be handled using what already exists by just creating a virtual + dataset + + SB presented issue 21, NeXus Ontology v2 + https://github.com/nexusformat/NIAC/issues/136 BW commented The + NIAC is pleased to see further development of the NeXus ontology + and we encourage you to continue this work. PJ asked when can this + work be included in public docmentation, HG said there are some + issues with email addrs? FK mentioned a registration that needed + to take place for nexusformat.org PJ can this be put onto the + NEXUS home page, SB there are also some rendering issues, but once + rendered there will be a link that can be used to link to NEXUS + homepage + + SB presented issue 22, Group referencing an Application Definition + https://github.com/nexusformat/NIAC/issues/138 MK proposed option + D, NXsubentry was created to handle situations like these BW + clarified the use of NXsubentry, where you have a single NXentry + and references to other app defs appears in individual + NXsubentries of the NXentry PJ offered that what maybe what SB is + looking for is NXnote to describe the process that is planned BW + NXenry is required for each measurement in a sequence, NSsubentry + refers to another app def for a simulataneous measurements MK + suggested that what SB is looking for is a workflow software tool + several will be presented at NOBUGS conference next week WD + suggested a specific example for future discussion SB agreed after + looking at NXsubentry that it should address this proposal, future + discussion likely to follow + + SB presented issue 19, base classes always extend NXobject. Can a + base class extend another base class? + https://github.com/nexusformat/NIAC/issues/135 MK said that NIAC + has discussed this numerous times in the past and has reasons for + not adopting inheritance for base class definitions PJ asked what + base class needs extension SB asked if people could reread the + issue and continue discussions in next session and/or next week + during NOBUGS BW closed session + + .. rubric:: Session C: Sept 14th 15:00 UTC + :name: NIAC2022_fall_minutes_session-c-sept-14th-1500-utc + + | NIAC members Present: Raymond Osborn (RO), Aaron Brewster (AB), + Sandor Brockhaus (SB), Mark Koennecke (MK), Russ Berg (RB), Ben + Watts (BW), + | Freddie Akeroyd (FA), Peter Chang (PC), Heike Gorzig (HG), Wout + de Nolf (WD), Pete Jemian (PJ), Luca Geliso (LG), Herbert + Bernstein (HB), CHen Zhang (CZ) + + BW raised question about when we should adress issue 20, Elect + Executive Officers + https://github.com/orgs/nexusformat/projects/2/views/1 consensus + was election to occur in third session tomorrow Sept 15, BW to + send an email to NIAC list that that is the plan + + SB presented issue 27, symbols to be connected to Field values + https://github.com/nexusformat/NIAC/issues/141 MK suggests that a + specific example be proposed so that the NIAC would have an actual + situation to consider HB suggests javascript be used to provide + the required structure to do what is being asked in regards to + math in documentation, hooks would just need to be added into? AB, + BW, SB, MK, RO had discussions trying to clarify the issue, PJ, MK + reminded everyone that adding executable code into a nexus file is + a security issue AB would like a way of using math to describe how + to take 2 arrays to create a third BW there are equations that + exist that would produce a denial of service attack on the + computer, basically the computation would be so intense as to + occupy the entire CPU HB this is a common problem, many things can + occupy the entire CPU, standard code etc, people know better, and + this is a neceisity PC if there was a determined list of approved + expressions would that give AB, HB what they need RB suggested + that there be a table called expressions similar to a symbols + table, the NXentry would allow expressions to be defined by an + applpication definition the burden of security of executing the + expresion is on the community that is backing the application + definition PJ the point of NEXUS is to provide data, not data + processing AB said that at the moment the data isnt 100% useful + without the processing so it would be great to find a solution to + this outcome of discusson of just that raised in issue 27 is: NIAC + likes the idea of proposed SB and would like SB to produce + specific example for the NIAC to review later + + WD presented issue 102, NXdata: errors on auxiliary signals, + https://github.com/nexusformat/definitions/issues/1044 BW + sauggests that we should go a step further and deprecate the + "errors" attrubte in favor of VARIABLE_errors MK in 2018 NIAC + decided to deprecate "errors" attribute already, it just hasnt + been done yet, so this is more a documentation bug than a change + of the standard required BW adds a comment to issue : NIAC agrees + that this is just a documentation bug that should be fixed. Also + the errors field was already decided to be deprecated in 2018. WD + assigned to this task + + RO issue 14, Proposal to add "angles" attribute to NXdata groups + https://github.com/nexusformat/NIAC/issues/102 RO in the last 30 + minutes wanted to have a general discussion about the angles and + transformations, WD would replace the proposal with one that all + transformations could be represented by specifying a single + transforma matrix BW this isnt ready to vote on WD will put + forward a proposal as mentioned above PC requests that there be a + human readable field added to the documentation + + AB presented Can we have a standard rule in NeXus to validate + presence of one item from a list of possibles? + https://github.com/nexusformat/definitions/issues/1002 AB it is + dependant on another issue 1002 BW was going to do some work on + this, it should be possibele to do this, XML will need some + crafting, this work doesnt stand in the way of voting on issue + 1002 AB will switch PR to a draft BW issue 1002 is about making + the definition available so that it can be machine readble and + validated diff --git a/source/niac/NIAC2022_minutes.rst b/source/niac/NIAC2022_minutes.rst new file mode 100644 index 00000000..bbb5313b --- /dev/null +++ b/source/niac/NIAC2022_minutes.rst @@ -0,0 +1,663 @@ +================= +NIAC2022 minutes +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2022 Minutes + :name: NIAC2022_minutes_niac2022-minutes + :class: page-title + + .. rubric:: Session A: Sept 14th 10:00-12:00 UTC + :name: session-a-sept-14th-1000-1200-utc + + Present: BW, FA, PJ, LG, HG, SB, MK (Markus Kuhbach), RB, PC, SS + (Sherjeel Shabih), AP (Allan Pinto), PM (Paolo Baraldi Mausbach) + + BW began by summarising the meeting, and then there was a round of + introductions as new people were present. As well as NIAC members, + there were some observers from the Brazilian Synchrotron Light + Laboratory (LNLS) and other facilities. AP mentioned that he had + planned meeting with Diaomond and ESRF and was interested in + learning more about NeXus, it was suggested that the monthly NeXus + teleconferences would be good from this perspective. They are + listed on the + `Teleconferences <../teleconferences/Teleconferences.html>`__ + page and to be notified of their dates you can join the + `nexus-tech `__ + mailing list. There is also the `nexus + manual `__ + + The list of items to discuss is kept as a `github + project `__ and + the committee then took some time to look through the list and + decide on who should represent a given issue at this or a future + session. + + As there were not many members present it was decided to adjourn + early and return in the afternoon to discuss matters + + .. rubric:: Session B: Sept 14th 12:30 UTC + :name: NIAC2022_minutes_session-b-sept-14th-1230-utc + + Present: HG, FA, WDN, SB, PJ, MarkuK, BW, PC, LG, TM, HB, CZ, + MarkK + + As many people were remote, voting on issues would be via thumbs + up or down attached to a voting comment on a ticket + + SB introduced `supporting the recommended property for + Attributes `__ PJ + asked if there was any python code to render this this change yet, + SB said that was in progress but the change did not break any + existing documentation generation. It was proposed to allow the + "recommended" property (to complement "optional" which can be true + or false) to be applied to attributes. This "recommended" property + has already been approved for fields and groups, so this will just + make attributes more consistent. VOTE: approved + + PJ commented that in general it was good if people selected + nexusformat/developers in teh reviewer of tickets/PRs as we + require one review. + + SB then introduced `Allow NXdata dimension variables to contain a + list of strings `__ + currently only NX_NUMBER data is allowed in axes, the change was + to allow NX_CHAR too so e.g. channel names (i.e. an array of + strings) could be used as labels along an axis for data. VOTE: + approved + + SB then introduced `Support for non-dimensional coordinates in + NXdata `__ which + intends to introduce virtual axes, which are like the + `non-dimensional coordinates of the python xarrays + package `__. + BW wondered if this was adding too specialist and adding too much + complexity? We have discussed similar ideas previously and decided + that NeXus should make data available for plotting, but should not + try to describe how the plot is presented. SB mentioned that a + separate NXdata of rearranged data could be created to acheieve + the same result, but that would be duplicating data. WDN suggested + that this could aslo be achieved by flattening the axis data and + linking via a virtual dataset, he posted an example on the ticket. + VOTE: it was decided not to propose this feature for NeXus at this + time + + SB introduced `NeXus Ontology + v2 `__ The NIAC + welcomed the update and unanimously supports the initiative and + continuing work. PJ asked if this could be made more visible? HG + said that she would be working with Steve Collins shortly to get + things hosted via PURL with the new ``nexus-purl`` email address + as the keeper. SB says there are also some rendering issues to + solve. + + SB introduced `Group referencing an Application + Definition `__ + this listed three approaches to ther problem of a complex + meaurement where you would like to apply validation to a set of + entries. There was discussion about this, ``NXsubentry`` was + mentioned but this normally applies to multiple simultaneous + techniques (multi modal) as opposed to a sequence of techniques. + NeXus currently treates each NXentry as validated separately, so a + prescribed sequence of NXentry is not validated. WDN proposed a + subentry structure that may be appriopriate on the ticket, SB will + consider this and bring back and examplefor further discussion as + appropriate. HG mentioned the use of sequence_index in NXprocess + that might provide some mechanism. MK suggested that what SB is + looking for might be a workflow software tool and notes that + several will be presented at NOBUGS conference next week. + VOTE: deferred + + SB introduced `base classes always extend NXobject. Can a base + class extend another base + class? `__ The + NIAC has traditionally avoided too much interitance in base + classes to limit complexity, base classes are generally + dictionaries. Such a change would also require a validator to + follow the relationships. + + .. rubric:: Session C: Sept 14th 15:00 UTC + :name: NIAC2022_minutes_session-c-sept-14th-1500-utc + + Present: AB, FA, SB, RO, PJ, LG, BW, RB, PC, MK, PC, HB, HG, WDN, + CZ + + As this was a larger group with some new people, BW summariesed + use of the `project + board `__ + and people taking ownership of issues to champion. + + RO mentioned he had a PR about changes to documentation and asked + if it needed a vote? BW confirmed that if it did not change how + files were written (i.e. was e.g. clarification) then it did not + need NIAC and could just go via normal PR approval. + + It was discussed when to have a session to elect officers, later + in the day looked better for best attendance due to time zones. + The third session on Thursday (session F) was agreed. + + SB introduced `symbols to be connected to Field + values `__ Symbols + are used in definitions as placeholders for values and allow you + to indicate that two arrays must have the same (or a related) + size. Symbols themselves are, however, not explicitly documented + and a new symbol cannot be defined in terms of existing symbols. + The proposal was for a symbols table that would allow both. The + NIAC likes the ideas put forward here and encourages preparatation + of a more complete proposal. + + As an offshoot of this, use of math within a nexus definition of + file was discussed. For the general case, a machine parsable + syntax would need to be chosen - HB suggested Javascript might be + a good one. As this point math was only being considered for + dimension attributes, and the math is contained in the NXDL. AB + mentioned `math support in + nexus `__ + which is having math applied in the NeXus file during reading, + which has potential security issues if an arbitrary equation is + allowed leading to a denial of service attack. However it was + pointed out that reading an extremely large dataset in an + incorrect way can lead to such a thing anyway! It was discussed if + a simpler set of operations rather than full equations could be + used, but in this case the equation is quite complex. WDN + mentioned `HDF5 + UDF `__ which is an + interesting option but this would tie nexus to HDF5. HDF5 UDF also + has security issues. PC asked if there was a determined list of + approved expressions would that give AB, HB what they need? SB + suggested that there be a table called expressions similar to a + symbols table, the NXentry would allow expressions to be defined + by an applpication definition with the burden of security + executing the expresion falling on the community that is + supporting the application definition. PJ thinks that the point of + NEXUS is to provide data, not data processing. AB said that at the + moment the data isnt 100% useful without the processing so it + would be great to find a solution to this. + + WDN introduced `NXdata: errors on auxiliary + signals `__ + which was to allow use of ``VARIABLE_errors`` on additional signal + arrays, it is currently allowed on axes and the main signal array. + NIAC agrees that this is just a documentation bug that should be + fixed. Also the ``errors`` field was already decided to be + deprecated in 2018, this was just not yet actioned. + + There was a rediscusison of `Support for non-dimensional + coordinates in + NXdata `__ + introduced by SB as RO was now present. RO and WDN has been doing + something similar using transformation matrices for the axes, so + it will be considereded if allowing the addition of a + transformatioin matrix to the dataset would be able t solve the + use case. PC requests that there be a human readable field added + to the documentation. + + AB introduced `Flux changes for + NXmx `__. + The NIAC agreed that this did not need to wait for `Can we have a + standard rule in NeXus to validate presence of one item from a + list of + possibles `__ + to be resolved and could be voted on and merged. The outstanding + ticket referred to being able to specify that one of: flux, + total_flux, flux_integrated, total_flux_integrated being present, + which is currently not a rule available in NDXL. It is not + possible just to use an enum for these option as one can refer to + an external arbitrary named NXmonitor. + + .. rubric:: Session D: Sept 15th 10:00-12:00 UTC + :name: session-d-sept-15th-1000-1200-utc + + NIAC members Present: Russ Berg (RB), Ben Watts (BW), Freddie + Akeroyd (FA), Peter Chang (PC), Luca Geliso (LG), Pete Jemian + (PJ), Heike Gorzig (HG), Sandor Brockhaus (SB), Mark Koennecke + (MK), non-NIAC Present: Markus Kunbach (Markus), + + + + PJ raised `XPCS issue + 1007 `__ + but it still needs discussions in the technical committee and + would like to invite those people to next telco to discuss related + issues, such as issues + `1004 `__, + `1005 `__ + and + `1006 `__. + PJ XPCS community write processed data data (which is what the + NXxpcs definition covers) in 2 different ways so consensus needs + to be discussed with a focus on standardizing on NeXus. PJ,LG + discussion about g2 function. PJ 2 ways the data (output of the g2 + functions) are linked list of keys to g2 functions and the other + is a 2D array. BW this is a feature of HDF5 and there is some + resistance to becoming dependant on hdf5. BW thinks that it is + fine if each community writes its own storage mode and let the + community decide which is more popular. PJ what is there in NXxpcs + definition is version 1 and there is a version 2 in the works. PJ + invited LG to review and participate in NXxpcs technical + discussions. BW asked PJ if there was a preference for when the + next telco should be and PJ requested later in october. PJ the + typical data size of XPCS is on the order of Gigabytes. + + + + BW looking at items in project there are 2 that likely do not need + to be here, `ISSUE + 101 `__ has + already been discussed in spring and merged already. PC suggested + that we wait to see if AB connects to meeting to see if he agrees + that this can be closed. BW think `ISSUE + 88 `__ doesn"t + needs a NIAC decision and can be left for next code camp. BW the + issue author was pointing out that documentation was a bit messy + so BW suggesting this be moved from NIAC repo to the DEFINITIONS + repo and consensus was achieved for this. BW moved issue to + definitions repo and added CODECAMP label. + + + + SB inquired about `issue + 945 `__, + identify labels for axis, of type NX_NUMBER or NX_CHAR. SB + inquireds about crteate something like NX_ANY that could handle + either NX_NUMBER or NX_CHAR. PJ has partially proposed using the + type attribute using logical operators to include "or" in the type + specification. PJ forsees difficulty in XML specofication unless a + new type that includes both NX_CHAR and NX_NUMBER is used. SB + suggests something like NX_SIMPLE which would represnt a string or + a single part number, not complex or quarternian numbers. PJ/SB + maybe NX_LABEL? BW is writing this up as `issue + 142 `__ that + references `issue + 945 `__. BW + and PJ had intense discussion about cats. PJ the entire point of + NXdata is to be able to plot the data. MK suggests NX_ALPHANUM, + consensus was in favor. BW prepared proposal to create NX_ALPHANUM + to include NX_CHAR and NX_NUMBER, but voting is delayed until more + members are present. + + + + MK should NX_POSINT be renamed NX_UINT? PC NX_UINT already exists. + + + + MK/SB/Markus discussion about inheritance of base class defs, + application defs and cnxvalidate, many ideas and opinions + expressed faster than could be recorded accurately. There is not a + consensus as to what is meant by "inheritance". MK there is only + proper inheritcance in application definitions, when it comes to + base class "inheritance" it is really a reference only. MK + ``type`` will only name a base class not an application + definition, ``extends`` is used for extending an application + definition. SB what is the actual restriction for not allowing + "inheritance"?, there should be a way to include an application + def in another without having to copy everything. SB we already + (using the example of NXsubentry) have an inhreitance and the + questions is why is this limited to NXsubentry inheriting NXentry + only. Markus we (electro microscopy) would like some guidance on + how to do this then to just create 50 sub definitions and + suggesting this for in an application definition. SB the main + issue is to use what he is seeing is already there (NXsubentry + inherits NXentry) and use that for appl defs so that there isnt + all this copied definition . BW there are good arguments for + inheritance, NXdetector is an example where inheritance could be + useful, but it has been avoided for a long time. Perhaps SB/Markus + will be the motivators for getting this implemented. + + .. rubric:: Session E: Sept 15th 12:30-14:30 UTC + :name: session-e-sept-15th-1230-1430-utc + + NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang + (PC), Pete Jemian (PJ), Heike Gorzig (HG), Sandor Brockhaus (SB), + Mark Koennecke (MK), Herbert Bernstein (HB), Aaron Brewster (AB), + Heike Gorzig (HG), Raymond Osborn (RO), + + BW presented his proposed changes to the `NXxas + documentation `__ + in a `pull + request `__. + PC the documentation suggests that the links that are all in lower + case imply that thay should be the actual names of the fields + where the documentation should use upper case to indicate they + would only be NX classes not actual names. BW will make the + changes and we can look at it again later. + + + + MK after the break and some further contemplation MK continued + inheritance discussion from previous session. MK because SB is + trying to do something new with NeXus, it needs a proposal and a + discussion. SB the data he deals with doesn"t really support the + idea of a "single file" data is always spread across multiple + files and produced by multiple vendors, so they are trying to + harmonize all the sources. SB clarified the inheritance currently + exists in NeXus and what he is looking for. Seems to be consensus + that the future should include a "programmers" understanding of + inheritance to create new base classes so that base classes can be + exteneded via inheritance to avoid duplication of definition code, + but the problem is how to document this class relationship a)to + non programmers and b) in a way that explains why we have + inheritance in one place but not in another (NXdetector copies + base class propoerties). BW suggests that maybe we should consider + to overhaul the entire system at a code camp. + + + + There was discussion about NXDL versions in `issue + 1038 `__. + It will require more discussion and was best kept for the next + code camp. Label changed to code camp. + + + + BW again presented his `changes to + NXxas `__. + MK asks if these changes serve the significant part of the + community? BW answers yes, these changes are a significant + improvement, but it is far from perfect still. To handle + experiments doing multiple modes of measurement, it would really + require a new NXxas definition as this one is really restricted to + a single mode. After review the changes were voted on and + accepted, code merged. + + + + AB raised the `Fix up NXBeam symbols and + polarization `__ + issue. AB this is likely closed and can be removed. BW changes + were already merged and were included into last release. PJ there + is nothing to do here, it has all been done. AB concurred. + + + + AB said this issue was discussed yesterday and can be reviewed + now, `Flux changes for + NXmx `__ is + done. PJ requested some changes relating to the documentation + reference link. BW added a comment that in order for the optional + NXmonitor that is specified to be validated it `must have a + name `__. + clarification was made to the docstring for the attribute flux + must point to a field or link to a field with one of the 4 names + listed. + + .. rubric:: Session F: Sept 15th 15:00-17:00 UTC + :name: session-f-sept-15th-1500-1700-utc + + NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang + (PC), Pete Jemian (PJ), Wout de Nolf (WD), Freddie Akeroyd (FA), + Sandor Brockhaus (SB), Mark Koennecke (MK), Herbert Bernstein + (HB), Aaron Brewster (AB), Luca Geliso (LG), Raymond Osborn (RO), + Heike Gorzig (HG) + + + + BW The proposal is to accept the changes to NXmx (previous + session) represented by `pull request + #1035 `__, + vote was unanimous to accept changes, marked approve. + + + + SB requests to vote on `Clarify Data + Types `__. BW + presents summary of changes to clarify data types in issue 142. PJ + that would still open up an issue of there still being text + finding its way into NX_NUMBER, so PJ is not recomending including + NX_BOOL in NX_NUMBER. BW `Proposal is to replace the description + of NX_NUMBER in the NeXus manual with: "any of the set of + non-compound number representations NX_INT, NX_UINT, NX_POSINT and + NX_FLOAT." `__ + Voting was unanimous to accept proposal. BW `Proposal is to define + NX_CHAR_XOR_NUM which encompasses NX_NUMBER and NX_CHAR such that + either type can be used exclusively for all elements of the entire + dataset `__. + Voting was unanimous to accept proposal. BW `Proposal is to define + NX_COMPOUND as encompassing the set of compound number types such + as NX_COMPLEX, NX_CCOMPLEX, NX_PCOMPLEX and + NX_QUATERNION `__. + PC does not think there is a use case for this. PJ says we have + talked about this. BW proposes to vote to reject this with PC to + add a comment explaining as to why there is no valid use case. + + + + BW presents issue to `Elect Executive + Officers `__. BW + Position of Executine Chair request for volunteers, AB responded + affirmitively, RB seconded, voting was unanimously accepted. BW + Position of executive secretary, request for volunteers, SB + responded affirmitively, PJ seconded, vote was accepted. BW + Position of technical manager, BW request for volunteers, MK asked + to accept the role and he did, PJ seconded, voting was unanimously + accepted. BW Position of defintions release manager, PC asked to + continue on in the position, PJ seconded, voting was unanimously + accepted . + + + + SB items 15 -> 18 can be left until tomorrows session. + + + + AB presentented item `NXmx: Change entry/end_time_estimated from + "required" to + "recommended" `__. + Dectris want it to be "recommended" since they find it difficult + to guarantee compliance, but the MX community want it to be + "required" in order to make sure it is included. HB proposes to + leave the rules documented as they are and let Dectris deal with + not being compliant. AB making `comment to + respond `__ + to Dectris agreeing that the detector manufacturer only has to + provide an API to allow the metadata to be included in the file + and that it is the responsibility of those operating the detector + to provide the actual metadata. BW we will mark this item as done. + + + + BW raises item `NXsqom: filenames -> + file_name `__. RB + has not provided comment requested by BW back in feb 2022. BW + proposes to move it to next NIAC meeting. + + + + BW raises issue `NXsas: review use of minOccurs on various + components `__. BW + we need community involment in reccomendations - PJ said he could. + There was discussion about "fair" data by MK, SB, PJ, HG. + + + + BW raises issue `NXdata errors on an axis, signal or auxiliary + signal `__. + WD presents the changes he made to resolve the issue as was talked + about yesterday. PC wanted some discussion to clarify what is + meant by the word VARIABLE. BW suggests changing VARIABLE to + FIELDNAME in the docstring. WD asked to make the change to the + docstring, as its just documentation no vote is required. BW added + comment "Replacing "VARIABLE" with "FIELDNAME" would be more + general and easier to understand." WD made changes, BW made + changes to NXdata.nxdl.xml. Changes can be merged. + + + + BW because of low turnout for first session of the day it was + proposed to use the first session tomorrow for homework and + instead meet for the second session, it was agreed. + + .. rubric:: Session G: Sept 16th 10:00-12:00 UTC + :name: session-g-sept-16th-1000-1200-utc + + not used as agreed upon in session F. + + .. rubric:: Session H: Sept 16th 12:30-14:30 UTC + :name: session-h-sept-16th-1230-1430-utc + + NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang + (PC), Pete Jemian (PJ), Mark Koennecke (MK), Herbert Bernstein + (HB), Aaron Brewster (AB), Sandor Brockhaus (SB), CHen Zhang (CZ) + + + + PJ presented issue `NXsas: review minOccurs and group + names `__. + PJ went through file `changes he + made `__. + PJ received comments from BW, MK, PC, PJ will make changes and + bring this up again when they are done. + + + + SB question about item `supporting the recommended property for + Attributes `__. BW + this is already finished and can be marked done. + + + + BW asked if this was done: `NXmx: Definitions for multi-channel + (thresholds) + data `__. + PJ, AB we need information from Dectris, so this is done from the + perspective of NIAC 2022. + + + + BW raised item `math in the + element `__. + AB we need a pull request for this. group discussion about math + element added to the symbols table to define new symbols that are + used in the definition to specify dimensions etc. MK raised a + practical concern that because cnxvalidate is written in C that + there be a library used to convert javascript to C if javascript + will be used as the essential supported math grammer that will be + allowed/supported. group discussion on possible use of javascript + to evaluate math expressions in symbol definitions. BW `Proposal + is to explore the use of javascript syntax for mathematical + expressions in NXDL symbol tables (and elsewhere in NeXus) and + encourage the production of a technical + demonstration `__. + BW proposed a vote to accept, PJ seconded,proposal was unanimously + accepted. + + + + SB raised a discussion with BW about item `symbols to be connected + to Field + values `__. PC + about having symbols defined not only in the sybmbols table but + also in a new attribute to a group as an expression. The outcome + was that the need for such a thing is not clear. BW asked if the + topic required more discussion next session SB indicated no. + + .. rubric:: Session I: Sept 16th 15:00-17:00 UTC + :name: session-i-sept-16th-1500-1700-utc + + NIAC members Present: Russ Berg (RB), Ben Watts (BW), Peter Chang + (PC), Pete Jemian (PJ), Mark Koennecke (MK), Herbert Bernstein + (HB), Sandor Brockhaus (SB), Freddie Akeroyd (FA), Aaron Brewster + (AB), Raymond Osborn (RO), + + PJ mentioned PR `NXsas: review minOccurs and group + names `__. + PJ raised a question regarding signal indices. Group discussion + about assumptions about indices that are not specified, assumption + is the first in the list is the horizontal axis but we dont + believe it is stated anywhere, it is just assumed. PJ + documentation states "C storage order" which isn"t really helpful, + should maybe be replaced by something more immediately + understandable for everyone. MK propose change to the words "Row + Major Order" instead. PJ `Changes + finalized `__. + BW proposes motion to `vote to + accept `__, + RB seconded. after Voting motion was unanimously approved. PJ + changes merged. + + + + BW raises an old item from + `NIAC2020 `__ with + `Suggested improvements to the NXdata base class + definition `__. PC + there is a change requested before a PR can be executed. BW + suggests we put this issue aside, PJ seconded, it will get a telco + label to make sure it gets examined on next telco/code camp. + + + + RB raises again `issue + 322 `__ and + how to specify list of file paths. PC should be 1D array because + we allow variable length strings. BW suggests changing "filenames" + to "file_list", PJ says this already exists in NXxpcs and that + there would be no collision since the meaning is the same. Group + discussion on the question is there a statement in NEXUS to avoid + plural in favor of singular field names, couldn"t really find + anything that states that directly. PC proposes to reject this + issue as it doesn"t appear to be a problem and not worth taking + the chance on disrupting things for no apparent reason. BW + commented on this issue in github that due to our conversation and + the amount of time lapsed we won"t change anything unless the + original reporter of the issue replies to make the case for this + change. BW asked if there were any objections to closing this + issue, there were none. BW closed issue. + + + + SB raises that `PR + 1183 `__ is + ready for merging. PJ merged in GH. + + + + BW raised item `Suggested improvements to the NXdata base class + definition `__ + because RO was attending and we had time. PC, RO, BW discuss + Tobias" comments. BW putting this aside for today and look at in + future telco, someone needs to look at the proposed changes to + NXdata to handle this. + + + + BW again reviewing item `Proposal to add "angles" attribute to + NXdata groups `__. + BW not going to reconsider this items concerns today. RO asked + will this extra array in NXdata to handle transformations require + a NIAC vote. BW only if it is a change to the NXdata base class or + the application definition. + + + + BW raises item `AppDef for Electron + Microscopy `__. + + SB we can mark this as done for this meeting as they are still + being worked on. + + same for project items: + + - `NeXus Ontology + v2 `__. + - `Group referencing an Application + Definition `__. + - `Support for non-dimensional coordinates in + NXdata `__. + + + + BW there are no more NIAC items remaining in the project board, + asked if there is anything else anyone wanted to raise for the + NIAC. + + RO asked PJ about PR `Add nexusformat + examples `__. + + PJ gave positive reply. + + BW calls the meeting to a close. diff --git a/source/niac/NIAC2022_spring.rst b/source/niac/NIAC2022_spring.rst new file mode 100644 index 00000000..d69eddd6 --- /dev/null +++ b/source/niac/NIAC2022_spring.rst @@ -0,0 +1,203 @@ +================= +NIAC2022 spring +================= + +.. container:: content + + .. container:: page + + .. rubric:: Spring Virtual NIAC 2022 + :name: spring-virtual-niac-2022 + :class: page-title + + The 2022 Spring Virtual NIAC will be held on March 3rd and 4th, + 2022. It aims to provide some decisions and feedback requested by + the community. Since it is not the "ordinary" biennial NIAC meeting + (which will be `held in September `__), the + `constitution `__ lays out stricter rules for making decisions: + + "Voting outside of the biennial NIAC meetings can take two forms. + Firstly, memberships can be approved by email ballot. All other + issues require a teleconference for interactive discussion that is + attended by at least 2/3 of the NIAC. Votes may be cast at the + teleconference, as well as during the following week in order to + allow NIAC members not attending the teleconference to add their + vote to the tally. The opening of the voting period must be + advertised through the NIAC mailing list. At the close of the + 1-week voting period, NIAC members not responding are counted as + abstained and the NIAC decision follows the voting category + (usually "for" and "against") with the highest number of valid + votes." + + .. rubric:: Agenda and Sessions + :name: NIAC2022_spring_agenda-and-sessions + + Each agenda item should be an issue in the `NIAC + repository `__ (which + should refer/link to issues in other repositories where + appropriate) and organised via a `github + project `__. + + The meeting will consist of 4 sessions over the 3rd and 4th of + March, plus a 5th session at least a week later: + + +-----------------------+-----------------------+-----------------------+ + | Session | Date and Time | Comment | + +-----------------------+-----------------------+-----------------------+ + | A | ======== ========= | `Zoom | + | March 3rd | Tokyo Thu 23:00 | link `__ | + | | Z rich Thu 15:00 | ID: 621 7018 8565 | + | | ======== ========= | passcode: nexus | + +-----------------------+-----------------------+-----------------------+ + | B | ======== ========= | `Zoom | + | March 3rd | Tokyo Fri 07:00 | link `__ | + | | Z rich Thu 23:00 | ID: 621 7018 8565 | + | | ======== ========= | passcode: nexus | + +-----------------------+-----------------------+-----------------------+ + | C | ======== ========= | `Zoom | + | March 4th | Tokyo Fri 23:00 | link `__ | + | | Z rich Fri 15:00 | ID: 646 5018 2627 | + | | ======== ========= | passcode: nexus | + +-----------------------+-----------------------+-----------------------+ + | D | ======== ========= | `Zoom | + | March 4th | Tokyo Sat 07:00 | link `__ | + | | Z rich Fri 23:00 | ID: 646 5018 2627 | + | | ======== ========= | passcode: nexus | + +-----------------------+-----------------------+-----------------------+ + | Final | ======== ========= | `Zoom | + | March 15th | Tokyo Fri 23:00 | link `__ | + | | Z rich Fri 15:00 | ID: 612 3266 6591 | + | | ======== ========= | passcode: nexus | + +-----------------------+-----------------------+-----------------------+ + + .. rubric:: Minutes + :name: NIAC2022_spring_minutes + + Minutes have been taken + `here `__. + A chorum was achieved in session **C** and below is a summary of + proposals that were voted on. As per the + `constitution `__, + voting shall remain open for a week (in practice, until the final + session). NIAC members can cast their vote by following the link + in the "proposal" column and then adding an emoji reaction + (thumbs-up to approve, thumbs-down to reject, or any other amoji + to abstain). + + +-----------------+-----------------+-----------------+-----------------+ + | Proposal (link | Discussion | Implementation | Decision | + | to voting) | | | (for/against/ | + | | | | abstain) | + +=================+=================+=================+=================+ + | `PURL for NeXus | `PURL for NeXus | `http://purl. | Accepted | + | Ontology | Ontology `__ | | | + | 95#issuecomment | | | | + | -1059210877>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Clarify | `Clarify | `Pull# | Accepted | + | gain_setting in | gain_setting in | 896 `__ | | + | `__ | | | + | at/NIAC/issues/ | | | | + | 100#issuecomme | | | | + | nt-1154265378>` | | | | + | __ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Reserve field | `Previously | | Accepted | + | prefix | reserved ` | `__ | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Allow strings | `Allow NXdata | | Accepted | + | as dimension | dimension varia | | (14/0/0) | + | labels in | bles to contain | | | + | `NXdata` | a list of | | | + | ` | 45>`__ | | | + | __ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Add `virtual_ | `Pull# 942 `__ | 942>`__ | | + | b.com/nexusform | | | | + | at/NIAC/issues/ | | | | + | 94#issuecomme | | | | + | nt-1059276075>` | | | | + | __ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `adding `depen | `Pull# 999 `__ | 999>`__ | | + | rmat/NIAC/issue | | | | + | s/109#issuecom | | | | + | ment-1059283549 | | | | + | >`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Protect main | `protected bran | | Accepted | + | branch of repo | ches docs `__ | r-repository/de | | | + | | fining-the-merg | | | + | | eability-of-pul | | | + | | l-requests/abou | | | + | | t-protected-bra | | | + | | nches>`__ | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Add `image_ke | `Pull# 994 `__ | 994>`__ | | + | es/111#issuecom | | | | + | ment-1059295950 | | | | + | >`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + | `Add recommende | `Pull# 896 `__ | 896>`__ | | + | /NIAC/issues/10 | | | | + | 0#issuecomment- | | | | + | 1068071881>`__ | | | | + +-----------------+-----------------+-----------------+-----------------+ + diff --git a/source/niac/NIAC2022_spring_minutes.rst b/source/niac/NIAC2022_spring_minutes.rst new file mode 100644 index 00000000..2f133477 --- /dev/null +++ b/source/niac/NIAC2022_spring_minutes.rst @@ -0,0 +1,493 @@ +======================= +NIAC2022 spring minutes +======================= + +.. container:: content + + .. container:: page + + .. rubric:: Minutes of the NIAC2022 Spring Meeting + :name: NIAC2022_spring_minutes_minutes-of-the-niac2022-spring-meeting + :class: page-title + + .. rubric:: Session A: March 3rd 14:00 UTC + :name: session-a-march-3rd-1400-utc + + NIAC members Present: Sandor Brockhaus (SB), Mark Koennecke (MK), + Russ Berg (RB), Ben Watts (BW), Chen Zhang (CZ), Herbert Bernstein + (HB), Pete Jemian (PJ), Freddie Akeroyd (FA), Peter Chang (PC), + Aaron Brewster (AB), Stephen Cottrell (SC), Heike Gorzig (HG), Ray + Osborn (RO) + + non-NIAC Present: Carola Emminger (CE), Markus Kunbach (Markus), + Tamas Haraszti (TH), Tommaso Pincelli (TP) + + There were several new people present, including people from the + FAIRmat, so a round of introductions was done. BW mentioend that + his term as chair was ending at the september meeting, and also FA + was standing down as secretary, so nominations would be sought. + Contact BW if interested. + + BW introduced the meeting format and that issues to be discussed + should be placed into the corresponding column on + https://github.com/nexusformat/NIAC/projects/4 + + SB open discussion on + https://github.com/nexusformat/NIAC/issues/107: NX_COMPLEX PC + mentioned be used two items with "re" and "im" prefix to store + bits. HDF5 can handle a compound type, also h5py has some + documention on this. Action to look at how h5py handles this. BW: + At a previous telco Quaternions were mentioend, can they be stored + in a similar scheme? HB said he can help with this + + How to use Symbols, defined at multiple levels. PJ explained how + they coordinate array dimensions across items. Symbols should be + listed in NXDL schema, near the top. Markus: what is best + practice, can you have multiple symbol tables e.g. makes it + clearer when things are nested? PJ posted link to + https://github.com/nexusformat/definitions/blob/61c2b2a6e9666a48c0ea3afc391b0d01d6bbd404/nxdl.xsd#L201-L209 + as an example, symbol table needs to be early on and positioning + enforced by schema. There is also one table at top to try and + avoid name collisions. RB mentioned that his converter of + definition to HDF file will also check the symbol table. + + linking - can we refer to a link using a PID (Persistent + identifier)? BW: how does this differ from a path in file? PID can + connect to items outside of file - an external reference. BW - can + already have links to external files, is this to give a url/doi to + refer to things instead? MK - original nexus to have all items for + data reduction in one file, links were for performance reasons + with large datasets. How would PID be resolved to real items? BW: + DOI and PURL so some of thsi management, but maybe not at the + scale needed? SB how do we do an external reference to e.g. an + item in a database item rather than have to convert it to hdf5 and + have a path? FA - you could store metadata about teh link in an + NXnote, but e.g. an NXexternal_reference could store + domain/facility specific items for linking? Agreed to discuss + further and SB will create an issue + + html documenmtation: SB showed slides inheritance and + documentatiion strings, required and not required attribute. also + enum. MK: base class is all optional, dictionary of terms. + application definition says what is required. PJ posted link + refereing to documentation + https://github.com/nexusformat/NIAC/issues/119#issuecomment-1058138059 + inheritance SB volunteers to write a proposal that the NIAC can + vote on to cement single inheritance for NeXus MK makes the point + that our "base classes" are not really classes and they are not + supposed to inherit from each other. We only have (single) + inheritance in the application definitions. Markus asks if he + needs to state everything in the application definition because he + can"t rely on things being inherited from the base classes. MK + says that an object in an application definition does inherit + everything in the base class. + + SB proposes NX_COMPOSITE to allow composite units (e.g. meters per + second) by utilising unidata. BW wants a more detailed proposal + because the minimal text presented here is not expressing the same + as what you are saying. + + SB wants a way to require one of a set of fields. PJ says that + NXcansas has something similar with @resolutions. This is handled + by a person following the rules stated in the docstring, but a + validator cannot understand this. What we need is a way to express + this properly in NXDL. BW points out that @axes in NXdata is + another example of the same mechanism that isn"t formally + expressed in NXDL. Discussion of + `cnxvalidate `__ and + how it could be extended. MK mentions + `features `__ that could + provide a lot more freedom if we put in the work to implement it + on a wider scale. + + SB asks about how to link things together. PJ points out the + target attribute can a class path, rather than a name path, since + the application definitions tend to leave the group names + unspecified. The NXDL is guidance for writing the file. The manual + states that links are given with absolute paths. The manual also + uses the convention that unspecified names are written in all + caps. + + SB asks about @default. PJ explains that there must be a chain of + @default attributes where the value of one must point to the group + that has the next @default attribute in the chain. SB found a file + that has absolute paths in the @default attribute, but there is + consensus that the file is violating the standard. attributes + generally only refer to the memebrs of the local group (the + @target attribute being an exception). + + SB asks if we want to always base the base classes on NXobject? Do + we want to have more inheritance? NXdetector is an example where + having a few specialised types of NXdetector that inherit from a + basic version could make it easier to work with. PJ says that this + would involve a large refactoring of NeXus rules that would affect + lots of things. + `NXxkappa `__ + is already extending + `NXxbase `__, + inheritance of application definitions is already demonstrated. + + SB asks if an application definition can define multiple entries. + BW says that this is done in NXstxm, but it can"t be done formally + in NXDL. The manual describes some reasonable approaches, but + doesn"t say anything specific. Markus says that it is influenced + by how much metadata you want to be repeating. We don"t want to + advocate putting "too many" measurements into a single file. RO + always has multiple entries (for different rotations) in a file + and then combines the data together afterwards. He always uses + external links to files containing calibrations. It is a question + of bookkeeping to store the data and their relationships to each + other. + + .. rubric:: Session B: March 3rd 22:00 UTC + :name: session-b-march-3rd-2200-utc + + NIAC members Present: Ben Watts, Freddie Akeroyd, Sandor + Brockhauser, Pete Jemian, Mark Koennecke, Aaron Brewster, Herbert + Bernstein, Russ Berg, Matsumoto Takahiro + + non-NIAC Present: Carola, Tommaso, Markus Kunbach + + Not enough NIAC members present for official votes + + PJ introduced NXxpcs draft + https://www.jemian.org/BES-XPCS-pilot/NeXus/classes/contributed_definitions/NXxpcs.html#nxxpcs + for results of xpcs experiments. BW noticed scan_number in the + definition, queried if it was a general feature? Also are both + entry_identifier and scan_number needed? PJ asked for confirmation + of teh process for new definitions, do we need a NIAC vote to add + a contributed definition? Answer was no, only a NIAC vote to move + to full definition. AB mentioned there are 4 new definitions, so + not able to go line by line. Suggested sub committees in breakouts + maybe? BW suggested telcos might also be able to do this. PJ was + asked to summarise any discussion points. He drew attention to + ``g2`` which is proposing a new unit type of + ``NX_ARBITRARY_UNITS``. However as it happens to be dimensionless + it was suggested to use ``NX_DIMENSIONLESS``. PJ also mentioned + ``storage_mode`` as something that may need more discussion. SB + asked if they could use HDF virtual data sets for this? BW + wondered if not using a 3D array was due to possible missing + elements and a linked dataset routes was to avoid this. PJ + suggested we had a telco with xpcs people to have a good + discussion over these points. MK: sa this is processed data, we + should add an NXprocess . SB: how is the raw data stored? PJ: this + is very detector dependent, collected by BlueSky, but not usually + stored in HDF5 format. This data then goes to have g2 calcualated + and the idea is to use nexus for sharing the processed data. So + plan is to discuss at a telco. + + BW introduced #98 NXdetector_channel requested by Dectris for + storing different per channel valuies e.g. gain settings See + https://github.com/nexusformat/definitions/issues/940#issuecomment-972672865 + The detector channels are different versions of the data. Could + this be doen as separate NXdetector_groups ? Decris though a + single NXdetector was better as there is only one physical + detector. Tomaso: could you have nxprocess inside nxdetector to + describe some of this processing? BW described this is done by + chip in detector, so processing is "black box". MK: though you + could use an extra array dimension to store this data, using + proposed NXdetector_channel does look clearer. AB described + https://github.com/nexusformat/definitions/issues/711 and that + detector channel woiuld be helpful here. + + AB presents discussion of `fixing symbols of + NXbeam `__ + (this is the version of NXbeam in NXmx). Here it is using the + symbol nP for the number of scan points, while the base class + doesn"t use any symbols and doesn"t really consider multiple scan + points. Divergence has 3 components, X, Y, and XY. This is + documented in CIFS and is also called "crossfire" and we should + copy from their definitions. AB will change the size of the array + corresponding to the divergence components to "c" and explain the + concept of "crossfire" where there can be many moments of + divergence. Questions of whether nP symbols is normally used in + the first dimension? MK says nP would be the "scan dimension" that + is usually first. This is not what NXbeam currently states (we + messed up) and we should change it to match the standard order of + nP first. BW suggests that we shouldn"t specify the size of the + second dimension (components of the divergence) since we don"t + want to enforce it. + + Tommaso says we should state that the "extent" is measured + according to the FWHM. There should be a shape description + (string). SB says that at ESRF they gave the choice of a few basic + shapes, together with the option of a profile. HB suggests a + working group. + + The meaning of some symbols (in the old version) is not clear. We + can port most of the NXmx version of NXbeam back to the base + class. "fixing" the spelling of "polarization" should involve + deprecating "polarisation". + + Tobias has gone through the base classes and deprecated NXgeometry + and added in NXtransformations and depends_on. It looks fairly + safe and repetitive with the exception of the images that have + been added. We can mark it as ready to vote on with a note to + discuss the images. + + SB has `written down some details regarding + inheritance `__ + in order to explain the way NeXus currently operates with formal + language. Feedback and comments are welcome (please post to the + issue). + + SB presents the `documentation for the FAIRMAT proposed + application + definitions `__ + that includes the feature allowing the community to annotate the + docs to make comments and suggest improvements. Carola walks us + through the proposed ellipsometry application definition. PJ + points out that the new files should go to the + ``contributed_definitions`` folder, which SB has already + implemented in the pull request. + + Close session. + + .. rubric:: Session C: March 4th 14:00 UTC + :name: session-c-march-4th-1400-utc + + NIAC members Present: Ben Watts, Sandor Brockhauser, Pete Jemian, + Aaron Brewster, Chen Zhang, Heike Goerzig, Herbert Bernstein, Ray + Osborn, Stephen Cottrell, Wout de Nolf, Peter Chang, Mark + Koennecke, Russ Berg, Takahiro Matsumoto + + non-NIAC Present: Markus Kuehbach, Tommaso Pincelli + + With 14 NIAC members attending we have a quorum to make decisions + by a small margin. + + Votes are on github. Links are provided. The voting period is one + week. + + Publishing the NeXus ontology on PURL. Automatically generated + from NXDL. PURL provides persistent identifiers for NeXus and + persists it. Quality checking the NeXus ontology is on us. Motion + to publish the NeXus ontology on PURL: Voting at + https://github.com/nexusformat/NIAC/issues/95#issuecomment-1059210877. + 12 agreed Thus the motion is approved. + + Changing gain_setting in NXdetector to be free form and not an + enum. Votes at https://github.com/nexusformat/NIAC/issues/100, 9 + agreed so far. Consensus was this should be revised with a + suggestion for a controlled vocabulary for the gain settings. And + the addition of numeric gain setting and offset fields. + + Reserve the private prefix DECTRIS for the company DECTRIS. Issue: + https://github.com/nexusformat/NIAC/issues/110. This raised the + suggestion that prefix owners store the documentation for their + private fields with NeXus in NXDL. This will be a new issue. Voted + for the DECTRIS prefix: 11 during the session. This is approved. + + Next issue: allowing arrays of strings as axis dimensions, + https://github.com/nexusformat/NIAC/issues/97, This drifted off + into a discussion if we allow date time strings here. This was + deferred to another proposal. We vote on allowing NX_CHAR or + NX_NUMBER arrays as axis in NXdata. 11 votes in agreement so far. + + Allow NXdetector_channel for storing detector channel specific + parameters. + https://github.com/nexusformat/definitions/issues/940#issuecomment-972672865. + The consensus is that we encourage further development of this + until we have a pull request for a NXdetector_channel base class. + This is not ready for a NIAC vote yet. This also raised questions + about how to link data together in NXdata. + + Next topic is the virtual_pixel_correction_applied field, + https://github.com/nexusformat/NIAC/issues/94, The vote is for + accepting it. 12 votes in favour, accepted. + + The NIAC decided in 2012 to deprecate NXgeometry and introduce + NXtransformations and depends_on fields in any positionable NeXus + base classes. The issues is + https://github.com/nexusformat/NIAC/issues/109, This vote is to + confirm that the changes sugegsted reflect the NIAC vote of 2012. + Approved with 12 votes. + + The next issue is to protect the main branch of the github + repository in order to prevent abuse. The github link is: + https://github.com/nexusformat/NIAC/issues/113#issuecomment-1059291945 + Accepted with 12 votes. + + Next issue is to add image_key to NXdetector. It is already used + in NXtomo. The issue is + https://github.com/nexusformat/NIAC/issues/111. Approved with 11 + votes. + + With the votes out of the way we started discussing NXmpes. Which + improves NXmpes. This is a processed data application definition. + The approach is to agree on a processed data standard and when + people got used to the standard push for a raw data format. The + field is dominated by vendors. In some cases, data files provided + by commercial instruments can be encrypted. In many other cases, + the data is obfuscated with undocumented calibrations and + processing. FAIRMAT aims to provide the community with exchange + formats (processed data) with the hope of increasing demand for + more open formats for raw data files. + + Discuss application definitions for electron microscopy. Lenses + are an integral part of microscopes and we can build a detailed + model of the instrument via description of a set of lenses. Can + see value in having base classes for all types of lenses - still + want to find good names for the classes. BW encourages FAIRMAT to + develop a very general lens base class that covers all cases - + NXxraylens could be deprecated if a suitable replacement is + available. Current situation for atom probe microscopy of scraping + data out of commercial file formats with limited knowledge. Atom + probe data needs high precision that is difficult to get from + commercial data files. Published methods tend to be incomplete and + the community is wanting to not accept this in future. They are + trying to include as many details as possible. Current situation + in electron microscopy is also heavily reliant on commercial + suppliers, so incentive for open protocols is very low. Vendors + provide all-in-one gui-based software to make customers happy, but + results in lack of openness in the data and lots of undefined + processing. The sample stage can be very complex with lots of + versatile capabilities. This lead to NXstage_lab therefore + contains some fields, but more importantly can act as a container + for including lots of further base classes describing further + capabilities. + + Discussion of tracking the history of a sample or session. lab + books versus large files or a master-file or a database. Sample + synthesis is an example where collecting an entire history + together is valuable. Connecting the data and actions together + with ontologies is something that FAIRMAT would like to ework + towards. + + BW suggests bringing up these application definitions in future + telcos. Announcing the intention beforehand can give people time + to do some homework reading and we can focus on each part in + detail over many meetings. + + Close session. + + .. rubric:: Session D: March 4th 22:00 UTC + :name: session-d-march-4th-2200-utc + + NIAC members Present: Russ Berg, Peter Jemian, Freddie Akeroyd, + Mark Koennecke, Sandor Brockhauser, Ben Watts, Wout de Nolf, Aaron + Brewster (AB), Takahiro Matsumoto, Ray Osborn + + non-NIAC Present: + + - Leave "Fix up NXBeam symbols and polarization" + https://github.com/nexusformat/NIAC/issues/101 as need Aaron + - NXmx total_flux https://github.com/nexusformat/NIAC/issues/96 + need way to specify one of a set of fields is present in NXDL. + There is "flux" and "total_flux" currently, discussion was + around whether NXmonitor could be used for this and also + whether flux and total_flux could be merged into a single flux + field. NXstxm has a NXmonitor called control. AB will consult + MX community and discuss if NXmonitor would work here. There + was a discussion about units for NX_FLUX and whether it was + possible to have unit options that were dimensionly different + e.g. per area or not per area. No other NX units currently do + this. There is also an integral log in NXmonitor that may be + useful for total flux. + + Deprecate incr attribute in dimensionsType + https://github.com/nexusformat/NIAC/issues/112 a field was + accidentally left in. ref and refindex were deprecated but + https://manual.nexusformat.org/nxdl_desc.html#incr depends on + them. These were deprecated in a telco, they have not been removed + that needs a niac, so it was agreed they can be deprecated here. + VOTE: unanimous + + NXregion https://github.com/nexusformat/NIAC/issues/118. MK: what + does imgCIF do for region of interest? AB: it doesn"t seem to + describe it exactly, but could create a detector object that + describes it. Whhat does EPICS Area Detector do? + https://areadetector.github.io/master/ADCore/NDPluginROI.html Also + ESRF + https://bliss.gitlab-pages.esrf.fr/bliss/master/flint/flint_roi_counters.html + There seems to be a branch + https://github.com/nexusformat/definitions/compare/944-add-NXregion + but not a PR at the moment. RO: this seems to define the data but + not how to use it? Would it be clearer as a child of NXdata rather + than NXdetector? Could we see an example file of usage? SB + mentioened that the category element of contributed definitions + wasn"t always clear whether it was a base or application + definition, this needs to be tidied up. + + AB presented updates to + https://github.com/nexusformat/definitions/pull/858 There was + discussion around "energy_transfer" field as to whether it made + sense in NXbeam. Was it there for MCstas simulations? There was + also discussion about the dimensionality of the variuous + quantities, it looked better to not specify this directly but to + add the various options in a description at the top. Various + suggestions were added as review comments to the PR. + + Add geometry information to NXbeam + https://github.com/nexusformat/NIAC/issues/115 and + https://github.com/nexusformat/definitions/compare/925-nxbeam-geometry + After discussion, looks good and would like to see PR from PC + + https://github.com/nexusformat/NIAC/issues/99 , + https://github.com/nexusformat/definitions/pull/913 - this looks + like a bugfix so OK to merge. + + Question about choice of fields - seems there is a choice of + groups in + https://github.com/nexusformat/definitions/blob/1af5f99cbfe0741c50cba3936bc793127390c410/base_classes/NXdetector.nxdl.xml#L779-L792 + and this could potentially be extended to fields? + + BW will create page of votes and send out doodle for choice of + final meeting date + + .. rubric:: Session E: March, 15, 14:00 UTC + :name: session-e-march-15-1400-utc + + Pete Jemian brought up the topic of holding a code camp for + implementing the decisions from NIAC. After some discussions we + agreed to hold this in may. A doodle poll will be held in order to + find a suitable date. BW clarified that we do not vote on code + camps. + + A discussion about the default attribute. There is some confusuion + about if the default attribute is a path to the default plot item + or a chain. The consensus was that it is a chain and the + documentation ought to be clarified. + + Then there is the problem that now many base classes like + NXcapillary have the default group attribute without there being a + NXdata group foreseen in the group. BW linked this issue to the + problem about the inheritance model of NeXus. This is to be + discussed at the next code camp. MK reminded the group that the + Interfaces proposal which suggested some inheritance in base + classes was shot down at NIAC 2018. + + We agreed that there are no further discussions required on the + voting items from session C. + + AB brought up #896, clarifying the NXdetector gain_setting for + discussion. The list of known gain settings was amended. The group + made suggestions how to improve the text even more. AB suggested + to vote on the proposed and amended changes in #896. The vote is + at + https://github.com/nexusformat/NIAC/issues/100#issuecomment-1068071881 + + AB brought up NXmx_total_flux, #986. There is some discussion + about using NXmonitor instead of the flux fields. The MX community + uses flux for a use case for which NeXus has invented NXmonitor. + There is also discussion about the dimensionality of flux. + Apparently, some beam lines give a single number here as the beam + line is very stable or the normalisation is done before writing + the file. Others store a value per image in order to allow for + later normalisation. HB points out that for crystallography you + have to be descriptive. If you are prescriptive as NeXus tries to + be, wou will be ignored. Various suggestions to improve the + wording of AB"s proposal were made and applied. It was felt that + this needs further discussion and the discussion was adjourned. + + The next issue is the clarification of NXbeam espcially the + polarisation parameters. THis is issue #858. The proposal was + reviewed. There is some discussion about the meaning of the stokes + parameters. Peter Chang agreed to clarify this. RO brought up that + this has to be discussed with neutron and light scattering people. + A solution is not to deprecate the old fields but rather add the + new proposed new fields. With neutrons many bespoke devices are + used for polarisation analysis. Thus no standard can be proposed. + + Meeting closed with one open vote. Next steps will be Doodles for + the code camp and a NeXus telco. diff --git a/source/niac/NIAC2024.rst b/source/niac/NIAC2024.rst new file mode 100644 index 00000000..09574d7f --- /dev/null +++ b/source/niac/NIAC2024.rst @@ -0,0 +1,262 @@ +================= +NIAC2024 +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIAC2024 + :name: NIAC2024_niac2024 + :class: page-title + + The NIAC2024 meeting will be held as a hybrid event hosted by `The + European Synchrotron (ESRF) `__ & + the `Institut Laue-Langevin (ILL) `__, in + Grenoble - France from 27th to 30th September 2024, the week after + the `2024 NOBUGS + conference `__. + + People will be able to participate both onsite and online (via + Zoom). In order to better overlap with other time zones, the + meeting sessions will be shorter and later in the day (CEST) over + 4 days. + + .. rubric:: Venue and Accommodation + :name: NIAC2024_venue-and-accommodation + + The European Synchrotron is the world"s brightest synchrotron + light source with 21 partner countries, 46 beamlines and 10.000 + visitors per year. + + The Institut Laue-Langevin is an international research centre at + the leading edge of neutron science and technology. + + Both institutes are part of the `European Photon & Neutron (EPN) + Science Campus `__, a science hub + hosting major international institutes for the exploration of + living matter and materials. + + .. container:: language-plaintext highlighter-rouge + + .. container:: python + + .. code:: python + + 71 Av. des Martyrs + 38000 Grenoble + France + + Information on travel, accommodation and site entrance be found + `here `__. + + The `one-site + restaurant `__ + is available for lunch and dinner, included in the NOBUGS + conference fee. + + The one-site guesthouse is NOT available for NOBUGS/NIAC + participants. + + Grenoble is located at the heart of the French Alps. September is + generally a very mild month with an average temperature between 13 + and 23 C (55 and 73 F). + + .. rubric:: Registration + :name: NIAC2024_registration + + `Registration + Form `__ + + `One Page Overview `__ + + Note there are two registration forms, for onsite and remote + attendance. + + - Those onsite need to register for the NIAC satellite meeting + (100 EUR registration fee), but do not need to register for + NOBUGS if they are only coming for NIAC. Please see the + "Registration form for in person satellite meetings (ONLY)". + - Remote attendees should use the "Registration form for remote + participants". + - Remote attendees who do not participate in NOBUGS do NOT need + to register. A Zoom meeting ID will be shared in due time. + + People outside of the NIAC are invited to join discussions and + register for the meeting but voting will be restricted to + committee members only. + + .. rubric:: COVID19 Precautions + :name: NIAC2024_covid19-precautions + + There are currently no coronavirus restrictions in place at ESRF + or the French government. However, the situation could change, + especially as the weather gets cooler, and we encourage attendees + to consider both their own safety and the safety of others with + appropriate hygiene, testing and vaccination. + + .. rubric:: Agenda + :name: NIAC2024_agenda + + The meeting agenda will be based on a `Github + project `__ so + that it is accessible to all particpants. Any proposal to be + discussed and voted on should be documented as an issue in the + `nexusformat/NIAC + repository `__. + + The main task of the meeting is to ratify `contributed + definitions `__ + that are ready into the main NeXus repository of `application + definitions and base + classes `__. + Initial work by a NIAC organizing committee has split the work + into two projects, depending on the whether the contribution arose + from the `FAIRMAT + project `__: + + - `Review of non-FAIRMAT Contributed + Definitions `__. + - Review of FAIRMAT Contributed Definitions (link will be + provided when ready). + + .. rubric:: Minutes + :name: NIAC2024_minutes + + `NIAC2024 minutes `__ + + .. rubric:: Schedule + :name: NIAC2024_schedule + + The meeting will have sets of 2 hour sessions with 30 minute + breaks. 3 sessions per day for 4 days. + + Zoom link: + https://esrf.zoom.us/j/96839890153?pwd=637V63h8KTlilNAdl1Q3YT7we4wDkP.1 + + ID: 968 3989 0153 + + passcode: 727186 + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | A | ============= ========= | + | September 27th | Tokyo Fri 17:00 | + | 08:00-10:00 UTC | San Francisco Fri 01:00 | + | | New York Fri 04:00 | + | | London Fri 9:00 | + | | Grenoble Fri 10:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | B | ============= ========= | + | September 27th | Tokyo Fri 20:30 | + | 11:30-13:30 UTC | San Francisco Fri 4:30 | + | | New York Fri 7:30 | + | | London Fri 12:30 | + | | Grenoble Fri 13:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | C | ============= ========= | + | September 27th | Tokyo Fri 23:00 | + | 14:00-16:00 UTC | San Francisco Fri 07:00 | + | | New York Fri 10:00 | + | | London Fri 15:00 | + | | Grenoble Fri 16:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | D | ============= ========= | + | September 28th | Tokyo Sat 17:00 | + | 08:00-10:00 UTC | San Francisco Sat 01:00 | + | | New York Sat 04:00 | + | | London Sat 9:00 | + | | Grenoble Sat 10:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | E | ============= ========= | + | September 28th | Tokyo Sat 20:30 | + | 11:30-13:30 UTC | San Francisco Sat 4:30 | + | | New York Sat 7:30 | + | | London Sat 12:30 | + | | Grenoble Sat 13:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | F | ============= ========= | + | September 28th | Tokyo Sat 23:00 | + | 14:00-16:00 UTC | San Francisco Sat 07:00 | + | | New York Sat 10:00 | + | | London Sat 15:00 | + | | Grenoble Sat 16:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | G | ============= ========= | + | September 29th | Tokyo Sun 17:00 | + | 08:00-10:00 UTC | San Francisco Sun 01:00 | + | | New York Sun 04:00 | + | | London Sun 9:00 | + | | Grenoble Sun 10:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | H | ============= ========= | + | September 29th | Tokyo Sun 20:30 | + | 11:30-13:30 UTC | San Francisco Sun 4:30 | + | | New York Sun 7:30 | + | | London Sun 12:30 | + | | Grenoble Sun 13:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | I | ============= ========= | + | September 29th | Tokyo Sun 23:00 | + | 14:00-16:00 UTC | San Francisco Sun 07:00 | + | | New York Sun 10:00 | + | | London Sun 15:00 | + | | Grenoble Sun 16:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + +-----------------------------------+-----------------------------------+ + | Session | Local Start Times | + +-----------------------------------+-----------------------------------+ + | J | ============= ========= | + | September 30th | Tokyo Mon 17:00 | + | 08:00-10:00 UTC | San Francisco Mon 01:00 | + | | New York Mon 04:00 | + | | London Mon 9:00 | + | | Grenoble Mon 10:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | K | ============= ========= | + | September 30th | Tokyo Mon 20:30 | + | 11:30-13:30 UTC | San Francisco Mon 4:30 | + | | New York Mon 7:30 | + | | London Mon 12:30 | + | | Grenoble Mon 13:30 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + | L | ============= ========= | + | September 30th | Tokyo Mon 23:00 | + | 14:00-16:00 UTC | San Francisco Mon 07:00 | + | | New York Mon 10:00 | + | | London Mon 15:00 | + | | Grenoble Mon 16:00 | + | | ============= ========= | + +-----------------------------------+-----------------------------------+ + + .. rubric:: Official Decisions and Statements + :name: NIAC2024_official-decisions-and-statements + + +-----------------+-----------------+-----------------+-----------------+ + | Proposal (link | Discussion | Implementation | Decision | + | to voting) | | | (for/a | + | | | | gainst/abstain) | + +=================+=================+=================+=================+ + | | | | | + +-----------------+-----------------+-----------------+-----------------+ diff --git a/source/niac/NIAC2024_minutes.rst b/source/niac/NIAC2024_minutes.rst new file mode 100644 index 00000000..fa904000 --- /dev/null +++ b/source/niac/NIAC2024_minutes.rst @@ -0,0 +1,163 @@ +Participants: +------------- + +- in person: AB, SB, RB, BW, RO, TC, FS, WdN, PC + FAIRmat: MarkusK, + HZB: HectorP, SonalR +- online: HB, BB, ZM, (MK) + FAIRmat: LukasP, RubelM + +NIAC2024 Minutes +---------------- + +Session A: Sept 27th 10:00 UTC +------------------------------ + +- Accepted (9+3/0/0): Regarding the FAIRmat contributions when we + accepting AppDefs, the corresponding base classes are also checked + and can be accepted even if they have not yet been registered as + contributed definitions before. + +Session B: Sept 27th 13:30 UTC +------------------------------ + +- Accepted (9+3/0/0): Aaron Brewster and Sandor Brockhauser continues + serving NIAC as Executive Chair and Secratary respectavly. +- Accepted (9+3/0/0): Peter Chang continues serving NIAC as + Documentation Release Manager. +- MK: informed us that he goes to retirement and leaves NIAC. NIAC + appreciated his contribition along all years. +- NIAC is interested in improving the stewardship of the code which may + include changing the Constitution to better describe the role of the + Techincal Manager. NIAC will try to address this and elect someone in + coming days. + +Session C: Sept 27th 16:00 UTC +------------------------------ + +list of main topics from the issues addressed: - bit-depth_image - UPPER +case - NeXus Logo + +Joining participants: +--------------------- + +- MO + OSCARS: GiannisK +- PJ + +Session D: Sept 28th 10:00 UTC +------------------------------ + +list of main topics from the issues addressed: - Accepted (10+2/0/0): +clarification and unification of the rules for using substitutable +UPPERCASE names or name parts which shall be indicated in documentation +as italic following a clean use of nameType [specified, any, partial] in +nxdl. See `issue +#1436 `__ - NIAC +Accepted (without vote): NXdata documentation shall be improved. Gallery +to show capabailities and separate pages for details. See `PR +#1396 `__ + +Session E: Sept 28th 13:30 UTC +------------------------------ + +list of main topics from the issues addressed: - NIAC Accepted (without +vote): meaning of @axes is clearified as default axes for every +dimension. See `PR +#1396 `__ - NIAC +page to be harmonised with manual. See `issue +#1472 `__ - +Accepted for review: Official full Logo for both dark and light themes +and squared versions with offset. - Accepted for review: Documentation +for AppDefs and Base Classes shall contain groups for common explanation +while keeping the full list of definitions, too. - Accepted for review: +versioned, published, html docs including latest unreleased docs. See +`issue #1434 `__ +- Accepted (10+2/0/0): group definition type=“NXentry” name=“entry” is +too restrictive. ENTRY/@entry shall not be declared, but rather be +deprecated and later removed. See `issue +#1438 `__ - NIAC +accepted: Licenses may need to be harmonised, so let us check with +leagal advisors. + +Session F: Sept 28th 16:00 UTC +------------------------------ + +list of main topics from the issues addressed: - github repo +‘definitions’ could be lighten and cleaned - NeXus Fields: can they be +represented by either dataset or NXlog group? - support for complex +units, like eV/mm + +Session G: Sept 29th 10:00 UTC +------------------------------ + +list of main topics from the issues addressed: - choiceTypee shall +render alson on HTML documentation - clean definition for NX_CHAR to +avoid confusions - Accepted (9+2/0/0): Base classes support inheritance. +PR shall come which implements it. See `issue +#1442 `__. - +NIAC cincluded on the use of multiple AppDefs. Entry shall host them in +separated subentries + +Session H: Sept 29th 13:30 UTC +------------------------------ + +list of main topics from the issues addressed: - NIAC agreed on the +vesrion of the new logo to be proposing a new logo - NIAC Accepted +(9+3/0/0): Additionally to traditional unit categories NX_xxx, arbitrary +complex units (eV/mm) are now also supported by NeXus by providing an +example following Unidata description. See `issue +#1435 `__. - +FAIRmat proposed modifications on base classes are reviewed - NIAC +Accepted (9+3/0/0): NXaperture See `issue +#1446 `__. + +Session I: Sept 29th 16:00 UTC +------------------------------ + +list of main topics from the issues addressed: - FAIRmat proposed +modifications on base classes are reviewed + +Session J: Sept 30th 10:00 UTC +------------------------------ + +list of main topics from the issues addressed: - FAIRmat proposed +modifications on base classes are reviewed - NIAC Accepted (8+3/0/0): +the suggestions in NXenvironment, and provided guidelines for final +implementation. See `issue +#1451 `__ + +Session K: Sept 30th 13:30 UTC +------------------------------ + +list of main topics from the issues addressed: - FAIRmat proposed +modifications on base classes are reviewed - NX_MATH - NIAC Accepted +(7+4/0/0): Instead of mathematical formula, one shall use forumla +descriptions in NeXus. See `issue +#1452 `__ - NIAC +Accepted (7+3/0/abstain:1): the suggestions in NXinstrument, and +provided guidelines for final implementation `issue +#1452 `__ + +Session L: Sept 30th 16:00 UTC +------------------------------ + +list of main topics from the issues addressed: - FAIRmat proposed +modifications on base classes are reviewed - NIAC Accepted (7+5/0/0): +NXstress can be merged after fixes. See `issue +#1039 `__ - +Checked the constitution and how the lifecycle of definitions +(Contributed, AppDef, BaseClasses) are regulated. Although the +Constitution does not details, a section in the Manual describes that +defnitions must go through a phase when the community has tested it and +shall become part of the standard only afterwards. Both FAIRmat and +NXstress proposals are according to this rule. - NIAC Accepted +(7+4/0/abstain:1): NXmonochromator after fixing the units according to +the new standard. See `issue +#1453 `__ - NIAC +Accepted (7+5/0/0) NXdistortion, NXregistration to become subclasses of +NXprocess See `issue +#1454 `__ - NIAC +Accepted (7+4/0/0) NXroot with suggested modifications See `issue +#1418 `__ - NIAC +Accepted (7+4/0/0) NXsource with suggested modifications See `issue +#1459 `__ - NIAC +suggested not to change NXuser other than having identifier added via +subclassing. diff --git a/source/niac/NIACAPI.rst b/source/niac/NIACAPI.rst new file mode 100644 index 00000000..2151d662 --- /dev/null +++ b/source/niac/NIACAPI.rst @@ -0,0 +1,44 @@ +================= +NIACAPI +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIACAPI + :name: NIACAPI_niacapi + :class: page-title + + .. rubric:: NIAC Decisions regarding the NeXus API + :name: NIACAPI_niac-decisions-regarding-the-nexus-api + + This section records decisions about the NeXus-API. + + NIAC 2003: New type NX_BINARY with an attribute mime_type for + storing a variety of binary data. + + NIAC 2003: New type NX_BOOLEAN with value 0 (false) or one (true) + + NIAC 2003: The NeXus-API will be extended to support XML as a file + format. + + NIAC 2004: Develop NXopenpath + + NIAC 2007HMI: Pete Petersons C++ NeXus binding to be added to + NeXus source distribution + + NIAC 2007HMI: IDL binding added to NeXus source distribution + + NIAC 2007HMI: Mark the use of HDF-4 as deprecated, no new features + for HDF-4 + + NIAC 2012: Statements + + - NAPI and applications are considered stable + - The use of NAPI is not mandatory and examples using HDF5 APIs + will be provided + - The validation tool is actively developed + + 2014 (not a NIAC decision): The NeXus-API is frozen. Maintenance + is reduced to bug fixes. diff --git a/source/niac/NIACActionItems.rst b/source/niac/NIACActionItems.rst new file mode 100644 index 00000000..d3f67faf --- /dev/null +++ b/source/niac/NIACActionItems.rst @@ -0,0 +1,119 @@ +================= +NIACActionItems +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIACActionItems + :name: NIACActionItems_niacactionitems + :class: page-title + + .. rubric:: Action Items for Definitions + :name: action-items-for-definitions + + .. rubric:: In Progress + :name: in-progress + + - `From NIAC 2006 + LBL `__ + + .. rubric:: Completed + :name: completed + + - `From NIAC 2006 + LBL `__ + + .. rubric:: Action Items for Code + :name: action-items-for-code + + .. rubric:: In Progress + :name: in-progress-1 + + - `From NIAC 2006 + LBL `__ + + .. rubric:: Completed + :name: completed-1 + + - `From NIAC 2006 + LBL `__ + + .. rubric:: Generic Action Items + :name: generic-action-items + + .. rubric:: In Progress + :name: in-progress-2 + + From `2006 LBL Meeting <../pdfs/NIAC2006LBL_minutes.pdf>`__ + + - `Mark K"nnecke `__ - to make a + picture of his geometry + - Unassigned - to put NXgenericScan text in manual + - `Paul Kienzle `__, `Nick + Hauser `__, and `Peter + Peterson `__ - will look into + making an NSF proposal to request for money + - Unassigned - to find a solution to the linking problem for when + you need the source and target names to be different + - `Peter Peterson `__ - to explain + how to change a definition + - `Frederick Akeroyd `__ - some + definitions exist only on the WIKI, some are in source control + (Subversion); they should all be moved into Subversion. + **STATUS:** all base classes moved, input from other NIAC + members required on naming of instrument definitions before + moving them. + - ALL - check old http://www.nexus.anl.gov web site and report + any content that has not been moved to new WIKI server + + From `2006 ILL Meeting <../pdfs/NIAC2006minutes.pdf>`__ + + - `Peter Peterson `__ - Write down + the current responsibilities for the officers and circulate to + the committee for approval + - `Andrew G"tz `__ - Write a report on + NeXus and submit to both the Neutron News and Synchrotron News + - Darren Kelly and `Raymond Osborn `__ - + Existing definitions will be rendered in colored meta-DTD and + table formats. Results will be added to website + - Darren Kelly - Style sheets (XSLT) will be created to convert + definitions into colorized meta-DTD and table formats + - Unassigned - Modify/add base class definitions in accordance + with what was voted on in February. + + .. rubric:: Completed + :name: completed-2 + + From `2007 HMI-Wannsee, Berlin Meeting `__ + + - Pete Jemian - Update website with constitution changes (some + are even from the last meeting) + + From `2006 LBL Meeting <../pdfs/NIAC2006LBL_minutes.pdf>`__ + + - `Frederick Akeroyd `__ - to move + NeXus code and definitions from CVS to Subversion + - `Frederick Akeroyd `__ - to move + NeXus mailing lists from anl.gov to lists.nexusformat.org + - `Frederick Akeroyd `__ - to + provide a Mediawiki extension for rendering definitions held in + Subversion onto a Wiki page in a tabular format on the fly + - `Mark K"nnecke `__ and `Raymond + Osborn `__ - Shut down existing website + and mirror, leaving a redirection page to new site. [The + original website at http://www.nexus.anl.gov/ contains a + redirect message, but is still online so that NIAC members can + check for content missing on the wiki.] + - `Peter Peterson `__ - to write up + the versioning mechanism + + From `2006 ILL Meeting <../pdfs/NIAC2006minutes.pdf>`__ + + - Unassigned - NXcharacterization needs to be formalized and + ratified - this has been repeated in + `#11 `__ + - Unassigned - Synchronize the website definitions with those in + cvs (the website are considered more correct) - this is + formalized as an action item at the 2006 LBL meeting diff --git a/source/niac/NIACClasses.rst b/source/niac/NIACClasses.rst new file mode 100644 index 00000000..3a0b03bc --- /dev/null +++ b/source/niac/NIACClasses.rst @@ -0,0 +1,157 @@ +NIAC Decisions on NeXus Classes +------------------------------- + +This section records NIAC decisions on NeXus base classes and +application definitions. + +NIAC 2003: Instrument definitions and base classes will be fully self +describing + +NIAC 2003: Instrument definitions and base classes to go into CVS + +NIAC 2003: analysis item in NXentry to be replaced with definition + +NIAC 2003: NXroot will be defined as + +:: + + + + + + +NIAC 2003: base classes and instrument definitions will not define bit +length for primitives. This means that NX_UINT, NX_INT or NX_FLOAT are +all that are allowed for numerical items. + +NIAC 2003: The template for NXentry is + +:: + + + {Extended title for entry} + {Name of entry DTD} + {Starting time of measurement} + {Ending time of measurement} + {Duration of measurement} + {} + {Number of run or scan stored in this entry} + {} + {Name of program used to generate this file} + {Name of command line used to generate this file} + {Notes describing entry} + + + + + + + +NIAC 2003: NXinstrument template consists of at least the following +groups + +:: + + + {name of instrument} + + + + + + + + + + + + + + + + + +NIAC 2003: Each NXlog will contain information for one variable The +definition of a NXlog is + +:: + + + {longer description of what is logged} + + {array of logged value, such as temperature} + {array of raw information, such as voltage on a thermocouple}? + + +NIAC 2004: NXcharacterisations is removed from NXentry + +NIAC 2004: End-of-line in NXnote is cr + +NIAC 2005: describe links as NAPIlink in metaDTD + +NIAC 2005: Allow ? and \* in definitions to denote groups and fields +that are desirable but not necessary. + +NIAC 2006: TOF Raw definition ratified + +NIAC 2006: Add synchrotron changes to NXsource + +NIAC 2006: Add NXinsertion_device + +NIAC 2006: Add NXbending_magnet + +NIAC 2007: NXmonopowder ratified + +NIAC 2007: NXpositioner ratified + +NIAC 2007: NXmonitor ratified + +NIAC 2007: All classes ratified will be NeXus 2.0. + +NIAC 2007HMI: ratified NXcone definition (check where this one is) + +NIAC 2007HMI: replace run_number with entry_identifier in NXentry + +NIAC 2007HMI: ratified NXarchive + +NIAC 2007HMI: ratified NXdetector extensions for CCD cameras: 1. extend +type to include: ccd,pixel,image_plate, cmos 2. add field data_file 3. +add field flood 4. add field flood_file 5. add field dark 6. add file +dark_file 7. add field spatial_distortion 8. add field +spatial_distortion_file + +NIAC 2010: NXcollection ratified + +NIAC 2010: tags scalar, image for datasets + +NIAC 2010: muon application definition ratified with some changes + +NIAC 2012: NXcharacterisation deprecated + +NIAC 2012: add some DECTRICS required fields to NXdetector + +NIAC 2014: NXmx, NXtransformations and variants ratified + +NIAC 2014: Ratified NXarpes, NXCite with addition of URL, +NXfresnel_zone_plate + +NIAC 2014: Add a default attribute at root and NXentry level to help in +finding default data to plot + +NIAC 2014: added decimated as a possible enum to acquisition_mode in +NXdetector + +NIAC 2014: additional field nominal added to NXmonitor to keep the +nominal flux + +NIAC 2014: “rgbimage”, “rgbaimage”, “hslimage”, “hslaimage”, “cmykimage” +to be added to the interpretation attribute of datasets to encode 3d +datasets with colour as added dimension to the 2d image. diff --git a/source/niac/NIACDesign.rst b/source/niac/NIACDesign.rst new file mode 100644 index 00000000..e87d93ef --- /dev/null +++ b/source/niac/NIACDesign.rst @@ -0,0 +1,142 @@ +================= +NIACDesign +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIACDesign + :name: NIACDesign_niacdesign + :class: page-title + + .. rubric:: NIAC Decisions regarding NeXus Design Questions + :name: NIACDesign_niac-decisions-regarding-nexus-design-questions + + This section records NIAC decisions regarding the design of NeXus. + With design meaning all more general topics reagrding the layout + of files, how things are done in NeXus, general rules and such. + + .. rubric:: General Rules + :name: general-rules + + NIAC 2003: Recommendation: use nxs extension for files nut h5, + hdf, xml and others are prmitted + + NIAC 2003: Physical units will be stored in accordance with the + udunits utility. Dates and times will be specified in ISO8601 + format. + + NIAC 2003: Positions will be stored as effective (physical) + positions. Motor offsets will be stored as attribute to the data. + + NIAC 2007: When a scan is stored, the scan variable sould be the + slowest varying variable. + + NIAC 2010: offset/stride mechanism for describing data not in C + storage order + + NIAC 2014: By default values are readback values. If a set value + is required, store it with the values name with \_set appended. + + + + .. rubric:: Base classes and application definition general Rules + :name: base-classes-and-application-definition-general-rules + + NIAC 2003: Neither instrument definitions nor base classes will be + subclassed + + NIAC 2003: When NXdetector is included in a file, there will be a + one-to-one correspondence between NXdata and NXdetector. + + NIAC 2004: It is a violation of the NeXus standard to use NX in + class names or fields unless authorized by NIAC + + NIAC 2004: Keep a NIAC version number aligned with the cvs-ID in + the the header of each base class + + NIAC 2004: When linking, add a source attribute to the data item + to indicate where it is linked too. + + NIAC 2004: Allow dimension scales to have arbitary dimensions in + order to cope with non linear coordinate schemes + + NIAC 2005: Inheritance will be done in metaDTD only. This will be + annotated with a tag conforms_to which contains a list of + definitions this definitions also conforms too. + + NIAC 2005: characterisation measurements are to referenced by + linking in another complete NXentry from another file through the + external linking mechanism. + + NIAC 2008: ratified NXprocess for processed data. File structure + plus associated groups and fields + + NIAC 2010: NXsubentry was agreed upon + + NIAC 2012: We allow application definitions to be flat and simple + + NIAC 2012: optional fields in application definitions endorsed. + + NIAC 2014: Optional fields in application definitions again + ratified. + + + + .. rubric:: Coordinate Systems + :name: coordinate-systems + + NIAC 2003: A right handed coordinate system is designed with the + positive z-axis along the beam when facing downstream. + + NIAC 2003: If a simplifed position is needed the entries will be + polar_angle, azimuthal_angle and distance. + + NIAC 2004: Allow cylindrical and polar coordinates in + NXtranslation + + NIAC 2004: every instrument component is to have a distance and + NXgeometry group. Comment in 2015: this was decided but never + implemented. + + NIAC 2007: axes follow McStas conventions. + + NIAC 2010: Added meridional_angle axis + + NIAC 2012: accepted CIF style coordinate descriptions with + depends_on fields and depends_on, vector, transformation_type etc + attributes + + NIAC 2014: NXgeometry marked as deprecated. CIF style coordinate + descriptions are the preferred method. + + + + .. rubric:: Errors + :name: errors + + NIAC 2004: Errors to a dataset will be named dataset_error. + Alterntaively, the dataset can have an attribute, error_formula, + which specifies how the error is calulated. + + NIAC 2010: Add an uncertainties attribute to any numeric array to + describe errors + + + + .. rubric:: Axes + :name: axes + + NIAC 2003: Two axes schemes: via the axes attribute on the data + and via the axis=n and primary=n on the dimension scales + + NIAC 2003: Histograms can be specified either by having an extra + element in the dimension scale or by a histogram_offset attribute + on the dimension scale + + NIAC 2012: Move axes and signal attribute as attributes of the + enclosing group + + NIAC 2014: Accepted axes and {axis}_indices group attributes for + the description of axes in NXdata and other groups. diff --git a/source/niac/NIACOrg.rst b/source/niac/NIACOrg.rst new file mode 100644 index 00000000..9eeba7e2 --- /dev/null +++ b/source/niac/NIACOrg.rst @@ -0,0 +1,93 @@ + +================= +NIACOrg +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIACOrg + :name: NIACOrg_niacorg + :class: page-title + + .. rubric:: NIAC Organsisation + :name: NIACOrg_niac-organsisation + + This section collects decisions on the organisation of NIAC. + + NIAC 2003: Ratified Terms of reference NIAC 2003: Approved method + for ratifying new NeXus classes + + NIAC 2004: Created the position of NeXus Techical Chair to oversee + the NeXus-API and utilities + + NIAC 2004: Process to construct instrument definitions by + instrument editors: 1. Provide a schematic of the instrument 2. + Write a brief outline of the purpose of the instrument. List DA/DR + reduction packages for this instrument. Also list the information + required for DA/DR including calibration data. 3. Ask DA/DR + package maintainers for variables which should be in the file 4. + Send the document to NIAC which will someone to create a XML + description 5. Write a sample NeXus file 6. Test the file, + repeating 4,5 for a number of times 7. Request ratification after + testing + + NIAC 2004: appoint editors for various types of instruments + + NIAC 2006: The constitution will be changed to include the + technical committee chair in the list of officers to be renewed at + each annual meeting + + NIAC 2006: The constitution will be changed to provide for a three + year term limit for the position of chair and executive secretary. + + NIAC 2007: NeXus to collaborate with imgCIF + + NIAC 2007HMI: Created a Definition Release Manager role + + NIAC 2008: change in meeting organisation: full NIAC meetings in + NIAC years, code camps and email votes in between + + NIAC 2010: term for all officers chnaged from 1 to 2 years, + corresponding to the frequency of NIAC meetings. + + NIAC 2012: NeXus guiding statements: + + - The main focus of the NeXus community is to further develop the + dictionaries, base classes and application definitions. + - The NIAC is a forum for resolving issues. + - The NIAC acts as a custodian for NeXus: definitions, examples, + documentation, reference implementations. + - HDF5 is the preferred physical file format. + - NeXus-XML is the currently supported ASCII file format. + + NIAC 2012 commitments + + - We seek cooperation with IUCr and CIF + - Have a meeting with them to figure out what this means + - Maybe have another NIAC next year to agree on this (in + conjunction with ECM) + - MK volunteers to take a lead \* We encourage the inclusion of + NeXus into CBFlib + - We invest into cleaning up NeXus, remove outdated, old or + broken stuff + - We invest into documenting NeXus better through bringing + inheritance or composition to NeXus base classes + + NIAC 2012: work as closely with PX and DECTRIS to get the EIGER + detector into NeXus + + NIAC 2012: Changes to base classes must be checked by Tech + committe and put for a vote. + + NIAC 2012: Terms length for officers to be 2 years. Executive + officers can have only two terms. + + NIAC 2014: Change constitution to agree with current terms + (application definitions and base classes) + + NIAC 2014: Remove procedures section from the constitution since + it was not used. + + NIAC 2014: Roberts Rule to be followed for setting the agenda diff --git a/source/niac/NIACdoc.rst b/source/niac/NIACdoc.rst new file mode 100644 index 00000000..c8a54cd0 --- /dev/null +++ b/source/niac/NIACdoc.rst @@ -0,0 +1,65 @@ +================= +NIACdoc +================= + +.. container:: content + + .. container:: page + + .. rubric:: NIACdoc + :name: NIACdoc_niacdoc + :class: page-title + + .. rubric:: NIAC Decisions regarding Documentation + :name: NIACdoc_niac-decisions-regarding-documentation + + This section records NIAC decisions on the topic of NeXus + documentation, WWW-site and such. + + NIAC 2003: Until an appropriate format can be determined, + instrument definitions and base classes will be stored in metaDTD + format. + + NIAC 2004: Decision to use NeXus meta-DTD instead of XML schema + for base classes and instrument definitions + + NIAC 2005: The documenation will consist of five documents: 1. + Technical Reference - describes the metaDTD, base classes and + definitions 2. NeXus API Reference 3. User Reference 4. Plan to + testing and releasing the NeXus API 5. Example files and code + + NIAC 2006: Move the entrire NeXus WWW-site to MediaWiki + + NIAC 2006: move to nexusformat.org and a new WWW-service, abandon + european NeXus mirror at lns00.psi.ch and original site at + Argonne. + + NIAC 2007: Separate repository for base classes and definitions + + NIAC 2007: Move to subversion from CVS + + NIAC 2007: Move NeXus mailing lists from anl.gov to + lists.nexusformat.org + + NIAC 2007HMI: Redirect WWW-server to nexusformat.org + + NIAC 2007HMI: Move metaDTD to schema: NeXus 3.0 will be schema + based + + NIAC 2008: move to application rather then instrument definitions + + NIAC 2008: docbook as the primary format for the NeXus manual. + Everything else to be generated from this master + + NIAC 2008: wiki to be kept as discussion forum + + NIAC 2008??: somewhere after NIAC 2008 the decision was taken to + move to NXDL and nxvalidate. + + NIAC 2010: Documentation to go under the GNU FDL, example code + under the LGPL licence + + NIAC 2012??: obviously we decided in some stage to provide the + documentation in Restructured Text and use sphinx for generating + documents. This, however, I either missed or was not properly + recorded. diff --git a/source/niac/niac.rst b/source/niac/niac.rst new file mode 100644 index 00000000..cdf7e761 --- /dev/null +++ b/source/niac/niac.rst @@ -0,0 +1,283 @@ +==== +NIAC +==== + +.. container:: content + + .. container:: page + + .. rubric:: NeXus International Advisory Committee + :name: NIAC_nexus-international-advisory-committee + :class: page-title + + .. rubric:: Current Members + :name: current-members + + - Aaron Brewster, Lawrence Berkeley Laboratory, USA (*Chair*) + - Sandor Brockhauser, Center for Materials Science Data (HU + Berlin), Germany (*Executive Secretary*) + - Peter Chang, Diamond Light Source, UK (*Documentation Release + Manager*) + - Benjamin Watts, Swiss Light Source, Switzerland + - Mark Könnecke, PSI, Switzerland + - Herbert Bernstein, CIF (*non-facility member*) + - Thomas Caswell, Brookhaven National Laboratory/NSLS-II, USA + - Bjørn Clausen, Los Alamos National Laboratory, USA + - Heike Görzig, Helmholtz Zentrum Berlin, Germany + - Pete Jemian, Advanced Photon Source, USA + - Raymond Osborn, Argonne National Laboratory, USA (*non-facility + member*) + - Wout de Nolf, European Synchrotron Radiation Facility, France + - Takahiro Matsumoto, Spring8, Japan + - Balázs Bagó, the Extreme Light Infrastructure, Czech Republic, + Hungary and Romania + - Russ Berg, Canadian Light Source, Canada + - Majid Ounsy, Synchrotron Soleil, France + - Chen Zhang, Oak Ridge National Laboratory (SNS/HFIR), USA + - Luca Geliso, European XFEL, Germany + - Paul Millar, DESY, Germany + - Zdenek Matej, MAX IV, Sweden + - Fernan Saiz, ALBA, Spain + + See the page with the `expiration dates `__ + for when the current terms of the various members end and we + require a new facility endorsement and vote (see below). + + .. rubric:: How to contact the NIAC + :name: how-to-contact-the-niac + + You may contact the NIAC by sending an email to + nexus-committee@nexusformat.org + + .. rubric:: Constitution + :name: constitution + + .. rubric:: Terms of Reference + :name: terms-of-reference + + The purpose of the NeXus International Advisory Committee is to + supervise the development and maintenance of the NeXus common data + format for neutron, x-ray, and muon science. This purpose + includes, but is not limited to, the following activities. + + #. To establish policies concerning the definition, use, and + promotion of the NeXus format. + #. To ensure that the specification of the NeXus format is + sufficiently complete and clear for its use in the exchange and + archival of neutron, x-ray, and muon data. + #. To receive and examine all proposed amendments and extensions + to the NeXus format. In particular, to ratify proposed + application definitions and base classes, to ensure that the + data structures conform to the basic NeXus specification, and + to ensure that the definitions of data items are clear and + unambiguous and conform to accepted scientific usage. + #. To ensure that documentation of the NeXus format is sufficient, + current, and available to potential users both on the internet + and in other forms. + #. To coordinate with the developers of the NeXus Application + Programming Interface to ensure that it supports the use of the + NeXus format in the neutron, x-ray, and muon communities, and + to promote other software development that will benefit users + of the NeXus format. + #. To coordinate with other organizations that maintain and + develop related data formats to ensure maximum compatibility. + + The committee will meet at least once every calendar year + according to the following plan: + + - In years coinciding with the NOBUGS series of conferences (once + every two years), members of the entire NIAC will meet as a + satellite meeting to NOBUGS, along with interested members of + the community. + - In intervening years, the executive officers of the NIAC will + attend, along with interested members of the NIAC. This is + intended to be a working meeting with a small group. + + .. rubric:: Membership + :name: membership + + The NeXus International Advisory Committee will seek balanced + representation of the international community. It will consist of + at most one voting representative from each major neutron, + synchrotron x-ray, and muon facility. Membership would normally be + for a three year renewable term. Members will be nominated by each + facility through the facility director and approved by the + existing committee. Each member can appoint a substitute to attend + a particular meeting. + + The committee reserves the right to appoint additional members for + a limited period to ensure balanced representation. + + .. rubric:: Organization + :name: organization + + | Accountability: The NeXus International Advisory Committee will + ensure that their decisions are reported both on the NeXus web + site and on the NeXus mailing list. Committee business will be + conducted either through a mailing list, to which non-committee + members can subscribe and whose archive will be available on the + web, or through meetings, which will be advertised on the NeXus + mailing list and which non-committee members may attend. + | The NeXus International Advisory Committee will have the + following executive officers: + + - Chair to oversee committee deliberations + - Executive Secretary to coordinate meetings and online debates. + The person that holds the position does not need to be an + existing member of the NIAC, and does not vote unless he/she is + a regular member. + - Technical Manager with the responsibility to oversee the NeXus + API. The tasks of the manager are to coordinate tests, manage + and announce releases, and promote code from the contributed + directory to the regular release build. The person that holds + the position does not need to be an existing member of the + NIAC, and does not vote unless he/she is a regular member. + - Definition Release Manager with the responsibility to oversee + the release of NeXus definitions and documentation. The person + that holds the position does not need to be an existing member + of the NIAC, and does not vote unless he/she is a regular + member. + + All of these officers will be elected for a two year term. The + incumbent chair and executive secretary are limited to two + consecutive terms. + + Voting: Only members of the NeXus International Advisory Committee + will be able to vote on specific proposals that come under the + remit of the committee. However, all debates will be conducted + publicly and non-committee members are both allowed and encouraged + to participate. + + Topics voted on at the biennial NIAC meetings will require a + simple majority unless specifically challenged by a committee + member. In the event of a challenge, the issue will be presented + to the NeXus mailing list inviting comments for a period of one + month. At the end of this period, the challenge can be overruled + by a two thirds majority. + + Voting outside of the biennial NIAC meetings can take two forms. + Firstly, memberships can be approved by email ballot. All other + issues require a vote that receives responses from at least 2/3 of + the NIAC during the following two week voting period. The opening + of the voting period must be advertised through the NIAC mailing + list. At the close of the voting period, NIAC members who have not + responded have abstained (and are not counted towards the 2/3 + requirement). Whether the issue involved is membership or any + other issue, the NIAC decision shall be determined by whatever + outcome receives the most votes that are not abstentions, i.e. the + outcome which receives more votes than any other outcome other + than abstention, even if the chosen outcome does not receive an + absolute majority of the votes. + + The constitution can only be changed by a two thirds majority of + the NIAC. + + Special Interest Groups: The NeXus International Advisory + Committee will appoint editors to be in charge of particular + groups that wish to specify instrument definitions or develop + specialized uses of the NeXus format. The groups will establish + their own mode of operation, but will be expected to consult + widely with the community relevant to their work, and to refer + back to the NeXus International Advisory Committee any matters + that involve a change in the current NeXus specification. Specific + proposals produced by these groups will be presented to the NeXus + International Advisory Committee for comment and formal + ratification. + + .. rubric:: Meetings + :name: NIAC_meetings + + - `Code Camp June + 2023 <../codecamps/CodeCampJune2023.html>`__: + Code Camp, (virtual) + - `NIAC 2022 `__ NIAC Meeting, (hybrid) hosted by + the Paul Scherrer Institute, Switzerland, September 2022 + - `Code Camp 2022 <../codecamps/CodeCamp2022.html>`__: Code + Camp, (virtual) + - `Spring 2022 Virtual NIAC `__ special + NIAC Meeting, (virtual) + - `Code Camp 2020-2 <../codecamps/CodeCamp2020-2.html>`__ NeXus Code Camp + 2020-2, (virtual) [STRIKEOUT:hosted by the] `European + XFEL `__\ [STRIKEOUT:, Hamburg, Germany, + October 2020.] + - `NIAC 2020 `__ NIAC Meeting, (virtual) + [STRIKEOUT:hosted by the] `European + XFEL `__\ [STRIKEOUT:, Hamburg, Germany, + October 2020.] (`minutes `__) + - `Code Camp 2020 <../codecamps/CodeCamp2020.html>`__: Code camp, hosted by + APS, Chicago, USA, January 2020 + - `NIAC 2018 `__: NIAC Meeting, hosted by NSLS-II, + Brookhaven, USA, October 2018 + (`minutes `__) + - `Code Camp 2017 <../codecamps/Code_Camp_2017.html>`__: NeXus Code Camp, + hosted by Diamond Light Source, UK, October 2017 + - `NIAC 2016 `__ NeXus Code Camp and NIAC Meeting, + hosted by ESS, Copenhagen, Denmark, October 2016 + (`minutes `__) + - `Code Camp 2015 <../codecamps/Code_Camp_2015.html>`__ NeXus Code Camp, + hosted by DESY, Hamburg, Germany, November 2015 (no minutes) + - `NIAC 2014 `__ NeXus Code Camp and NIAC Meeting, + hosted by APS, Chicago, USA, December 2014 + (`minutes `__) + - `NIAC 2012 `__ NeXus Code Camp and NIAC Meeting, + hosted by ISIS and Diamond at RAL, Oxfordshire, UK, September + 2012 (`minutes `__) + - `NIAC 2011 `__ NeXus Code Camp and NIAC + Meeting, APS, October 2011 + (`minutes `__) + - `NIAC 2010 `__ NeXus Code Camp and NIAC Meeting, + ORNL, October 2010 + (`minutes <../pdfs/Minutes_of_NeXus_Committee_2010.pdf>`__) + - `October 16-18 2009 `__ NeXus Code Camp, hosted + by APS, Chicago (Evanston, Illinois) (no minutes) + - `October 30-31, 2008 `__ at ANSTO, Australia + (`minutes <../pdfs/NIAC2008_minutes.pdf>`__) + - `September 24-26, 2007 `__ at HMI, Berlin, + Germany (`online `__ and `pdf + format <../pdfs/NIAC2007HMI_minutes.pdf>`__ minutes) + - `October 5-6, 2006 `__ at LBL, Berkeley, CA, + USA (`minutes <../pdfs/NIAC2006LBL_minutes.pdf>`__) + - `February 1-3, 2006 `__ at ILL, Grenoble, + France (`minutes <../pdfs/NIAC2006minutes.pdf>`__) + - April 26-28, 2005 at Bishops Lodge in Sante Fe, NM, USA + (`minutes <../pdfs/NIAC2005minutes.pdf>`__) + - October 21-22, 2004 at PSI, Villigen, Switzerland + (`minutes <../pdfs/NeXusMinutes-Oct2004.pdf>`__) + - September 8-10, 2003 at Pasadena, CA, USA + (`minutes <../pdfs/NIAC2003Minutes.pdf>`__) + + .. rubric:: NIAC Decisions sorted by Topic + :name: NIAC_niac-decisions-sorted-by-topic + + This is a collection of past NIAC decisions sorted by topic. This + serves mainly as a reference for NIAC members, hence the recording + is rather terse and not meant for consumption on it s own. + + - `NeXus Design `__ + - `NeXus Classes `__ + - `NeXus API `__ + - `NeXus Documentation `__ + - `NIAC Organisation `__ + + .. rubric:: Action Items + :name: action-items + + `Action Items `__ for members of the NIAC + that are not associated to one of the repositories. + + .. rubric:: Sub-Committees + :name: sub-committees + + The former NeXus Technical sub-committee that used to host regular + teleconference meetings has been retired. In the interest of being + inclusive and approachable the sessions are now open to all + interested parties. See the + `Teleconferences `__ page for agendas, + minutes, and how to join. + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + + Membership_Dates + previous_meetings \ No newline at end of file diff --git a/source/niac/previous_meetings.rst b/source/niac/previous_meetings.rst new file mode 100644 index 00000000..1f650122 --- /dev/null +++ b/source/niac/previous_meetings.rst @@ -0,0 +1,143 @@ +================= +previous meetings +================= + +.. container:: content + + .. container:: page + + .. rubric:: Previous Meetings + :name: previous-meetings + + `[NIAC2006ILL] `_ + + `[NIAC2006LBL_attendees] `_ + + `[NIAC2006LBL_photos] `_ + + `[NIAC2006LBL_RoadMap] `_ + + `[NIAC2006LBL] `_ + + `[NIAC2006_Scanning_Group] `_ + + `[NIAC2006_Synchrotron_Group] `_ + + `[NIAC2006_TOF_Group] `_ + + `[NIAC2007_attendees] `_ + + `[NIAC2007_Minutes] `_ + + `[NIAC2007_photos] `_ + + `[NIAC2007] `_ + + `[NIAC2008_attendees] `_ + + `[NIAC2008] `_ + + `[NIAC2009] `_ + + `[NIAC2010_CodeCamp] `_ + + `[NIAC2010] `_ + + `[NIAC2011_CodeCamp] `_ + + `[NIAC2012] `_ + + `[NIAC2014_CodeCamp] `_ + + `[NIAC2014_Meeting] `_ + + `[NIAC2014] `_ + + `[NIAC2016Minutes] `_ + + `[NIAC2016] `_ + + `[NIAC2018Minutes] `_ + + `[NIAC2018] `_ + + `[NIAC2020minutes_concluding] `_ + + `[NIAC2020minutes] `_ + + `[NIAC2020] `_ + + `[NIAC2022_fall_minutes] `_ + + `[NIAC2022_minutes] `_ + + `[NIAC2022] `_ + + `[NIAC2022_spring_minutes] `_ + + `[NIAC2022_spring] `_ + + `[NIAC2024_minutes] `_ + + `[NIAC2024] `_ + + `[NIACActionItems] `_ + + `[NIACAPI] `_ + + `[NIACClasses] `_ + + `[NIACDesign] `_ + + `[NIACdoc] `_ + + `[NIACOrg] `_ + + `[NIAC] `_ + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + + NIAC2006ILL + NIAC2006LBL_attendees + NIAC2006LBL_photos + NIAC2006LBL_RoadMap + NIAC2006LBL + NIAC2006_Scanning_Group + NIAC2006_Synchrotron_Group + NIAC2006_TOF_Group + NIAC2007_attendees + NIAC2007_Minutes + NIAC2007_photos + NIAC2007 + NIAC2008_attendees + NIAC2008 + NIAC2009 + NIAC2010_CodeCamp + NIAC2010 + NIAC2011_CodeCamp + NIAC2012 + NIAC2014_CodeCamp + NIAC2014_Meeting + NIAC2014 + NIAC2016Minutes + NIAC2016 + NIAC2018Minutes + NIAC2018 + NIAC2020minutes_concluding + NIAC2020minutes + NIAC2020 + NIAC2022_fall_minutes + NIAC2022_minutes + NIAC2022 + NIAC2022_spring_minutes + NIAC2022_spring + NIAC2024_minutes + NIAC2024 + NIACActionItems + NIACAPI + NIACClasses + NIACDesign + NIACdoc + NIACOrg diff --git a/source/pandoc_converter.py b/source/pandoc_converter.py new file mode 100644 index 00000000..10729d34 --- /dev/null +++ b/source/pandoc_converter.py @@ -0,0 +1,45 @@ +import os +import subprocess +from dirlist import get_all_files_and_subdirs + + +def convert_html_to_rst(html_file_path, rst_file_path): + """Converts a single HTML file to an RST file using pandoc.""" + try: + subprocess.run(['pandoc', '-f', 'html', '-t', 'rst', '-o', rst_file_path, html_file_path], check=True) + print(f"Converted: {html_file_path} -> {rst_file_path}") + except subprocess.CalledProcessError as e: + print(f"Error converting {html_file_path}") + +def convert_md_to_rst(md_file_path, rst_file_path): + """Converts a single Markdown file to an RST file using pandoc. + pandoc yourfile.md -t rst -o outputfile.rst + """ + try: + subprocess.run(['pandoc', '-t', 'rst', '-o', rst_file_path, html_file_path], check=True) + print(f"Converted: {md_file_path} -> {rst_file_path}") + except subprocess.CalledProcessError as e: + print(f"Error converting {md_file_path}") + + +if __name__ == '__main__': + # Directory containing HTML files + input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\extra_files_html' + output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\rst_output' + + # Ensure output directory exists + #os.makedirs(output_directory, exist_ok=True) + + basedir = os.path.join(os.getcwd(),'extra_files_html') + files = get_all_files_and_subdirs(basedir) + for file in files: + if file.find(".html") > -1: + rst_fpath = f"{file.replace('.html', '.rst')}" + convert_html_to_rst(file, rst_fpath) + elif file.find(".md") > -1: + rst_fpath = f"{file.replace('.md', '.rst')}" + convert_html_to_rst(file, rst_fpath) + else: + continue + + \ No newline at end of file diff --git a/pdfs/2011-10-20_NeXus_manual_in_sphinx.pdf b/source/pdfs/2011-10-20_NeXus_manual_in_sphinx.pdf similarity index 100% rename from pdfs/2011-10-20_NeXus_manual_in_sphinx.pdf rename to source/pdfs/2011-10-20_NeXus_manual_in_sphinx.pdf diff --git a/pdfs/2011_10_20_nexus_heretics_v5.pdf b/source/pdfs/2011_10_20_nexus_heretics_v5.pdf similarity index 100% rename from pdfs/2011_10_20_nexus_heretics_v5.pdf rename to source/pdfs/2011_10_20_nexus_heretics_v5.pdf diff --git a/pdfs/CIFNexus.pdf b/source/pdfs/CIFNexus.pdf similarity index 100% rename from pdfs/CIFNexus.pdf rename to source/pdfs/CIFNexus.pdf diff --git a/pdfs/Elements_for_Muons.pdf b/source/pdfs/Elements_for_Muons.pdf similarity index 100% rename from pdfs/Elements_for_Muons.pdf rename to source/pdfs/Elements_for_Muons.pdf diff --git a/pdfs/European-Formats.pdf b/source/pdfs/European-Formats.pdf similarity index 100% rename from pdfs/European-Formats.pdf rename to source/pdfs/European-Formats.pdf diff --git a/pdfs/Isis_nexus_016.pdf b/source/pdfs/Isis_nexus_016.pdf similarity index 100% rename from pdfs/Isis_nexus_016.pdf rename to source/pdfs/Isis_nexus_016.pdf diff --git a/pdfs/MantidNexusWorkspaceFormat.pdf b/source/pdfs/MantidNexusWorkspaceFormat.pdf similarity index 100% rename from pdfs/MantidNexusWorkspaceFormat.pdf rename to source/pdfs/MantidNexusWorkspaceFormat.pdf diff --git a/pdfs/Mark_Nexus_NIAC_2010.pdf b/source/pdfs/Mark_Nexus_NIAC_2010.pdf similarity index 100% rename from pdfs/Mark_Nexus_NIAC_2010.pdf rename to source/pdfs/Mark_Nexus_NIAC_2010.pdf diff --git a/pdfs/Minutes_of_NeXus_Committee_2010.pdf b/source/pdfs/Minutes_of_NeXus_Committee_2010.pdf similarity index 100% rename from pdfs/Minutes_of_NeXus_Committee_2010.pdf rename to source/pdfs/Minutes_of_NeXus_Committee_2010.pdf diff --git a/pdfs/Muon_V2R7.pdf b/source/pdfs/Muon_V2R7.pdf similarity index 100% rename from pdfs/Muon_V2R7.pdf rename to source/pdfs/Muon_V2R7.pdf diff --git a/pdfs/NIAC2003Minutes.pdf b/source/pdfs/NIAC2003Minutes.pdf similarity index 100% rename from pdfs/NIAC2003Minutes.pdf rename to source/pdfs/NIAC2003Minutes.pdf diff --git a/pdfs/NIAC2005minutes.pdf b/source/pdfs/NIAC2005minutes.pdf similarity index 100% rename from pdfs/NIAC2005minutes.pdf rename to source/pdfs/NIAC2005minutes.pdf diff --git a/pdfs/NIAC2006LBL_minutes.pdf b/source/pdfs/NIAC2006LBL_minutes.pdf similarity index 100% rename from pdfs/NIAC2006LBL_minutes.pdf rename to source/pdfs/NIAC2006LBL_minutes.pdf diff --git a/pdfs/NIAC2006minutes.pdf b/source/pdfs/NIAC2006minutes.pdf similarity index 100% rename from pdfs/NIAC2006minutes.pdf rename to source/pdfs/NIAC2006minutes.pdf diff --git a/pdfs/NIAC2007HMI_minutes.pdf b/source/pdfs/NIAC2007HMI_minutes.pdf similarity index 100% rename from pdfs/NIAC2007HMI_minutes.pdf rename to source/pdfs/NIAC2007HMI_minutes.pdf diff --git a/pdfs/NIAC2008_minutes.pdf b/source/pdfs/NIAC2008_minutes.pdf similarity index 100% rename from pdfs/NIAC2008_minutes.pdf rename to source/pdfs/NIAC2008_minutes.pdf diff --git a/pdfs/NIAC2012Minutes.pdf b/source/pdfs/NIAC2012Minutes.pdf similarity index 100% rename from pdfs/NIAC2012Minutes.pdf rename to source/pdfs/NIAC2012Minutes.pdf diff --git a/pdfs/NIAC2014Minutes.pdf b/source/pdfs/NIAC2014Minutes.pdf similarity index 100% rename from pdfs/NIAC2014Minutes.pdf rename to source/pdfs/NIAC2014Minutes.pdf diff --git a/pdfs/NIACMinutes.pdf b/source/pdfs/NIACMinutes.pdf similarity index 100% rename from pdfs/NIACMinutes.pdf rename to source/pdfs/NIACMinutes.pdf diff --git a/pdfs/NIAC_minute.pdf b/source/pdfs/NIAC_minute.pdf similarity index 100% rename from pdfs/NIAC_minute.pdf rename to source/pdfs/NIAC_minute.pdf diff --git a/pdfs/NeXpy.pdf b/source/pdfs/NeXpy.pdf similarity index 100% rename from pdfs/NeXpy.pdf rename to source/pdfs/NeXpy.pdf diff --git a/pdfs/NeXusManual.pdf b/source/pdfs/NeXusManual.pdf similarity index 100% rename from pdfs/NeXusManual.pdf rename to source/pdfs/NeXusManual.pdf diff --git a/pdfs/NeXusMinutes-Oct2004.pdf b/source/pdfs/NeXusMinutes-Oct2004.pdf similarity index 100% rename from pdfs/NeXusMinutes-Oct2004.pdf rename to source/pdfs/NeXusMinutes-Oct2004.pdf diff --git a/pdfs/NeXusOBJ.pdf b/source/pdfs/NeXusOBJ.pdf similarity index 100% rename from pdfs/NeXusOBJ.pdf rename to source/pdfs/NeXusOBJ.pdf diff --git a/pdfs/NeXus_Proposal.pdf b/source/pdfs/NeXus_Proposal.pdf similarity index 100% rename from pdfs/NeXus_Proposal.pdf rename to source/pdfs/NeXus_Proposal.pdf diff --git a/pdfs/NexusCodeCamp2015_map.pdf b/source/pdfs/NexusCodeCamp2015_map.pdf similarity index 100% rename from pdfs/NexusCodeCamp2015_map.pdf rename to source/pdfs/NexusCodeCamp2015_map.pdf diff --git a/pdfs/Proposed_Data_Standard_for_the_APS.pdf b/source/pdfs/Proposed_Data_Standard_for_the_APS.pdf similarity index 100% rename from pdfs/Proposed_Data_Standard_for_the_APS.pdf rename to source/pdfs/Proposed_Data_Standard_for_the_APS.pdf diff --git a/source/teleconferences/Telco_20150114.rst b/source/teleconferences/Telco_20150114.rst new file mode 100644 index 00000000..1ae54dfb --- /dev/null +++ b/source/teleconferences/Telco_20150114.rst @@ -0,0 +1,74 @@ +================= +Telco 20150114 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150114 + :name: telco-20150114 + :class: page-title + + .. rubric:: Date + :name: Telco_20150114_date + + Wednesday, 14th Jan, 12:00 GMT + + Hangout Link: + https://plus.google.com/hangouts/_/g5yh5mixmcvnwuek4rpuuihglqahl=en-GB + + .. rubric:: Agenda + :name: Telco_20150114_agenda + + - Welcome + - Invites to this, future of the nexus-tech mailing list + - Wiki + + - access + signup + - speed + + - Jenkins builds of everything + - Next NAPI release + - post issues for items from recent Code Camp and NIAC meeting + - Logo + + For discussion: + https://www.dropbox.com/sh/n9sd8foejy43hzq/AABhDHPkmS9kpqIRJnFoJTcoadl=0 + + - Progress on features, NXmx validation + + Something is evolving here: + http://idregistry-nexusformat.rhcloud.com/ + + - Letter to detector vendors + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150114_minutes + + - nexus-tech now open for subscripts, calendar invites will be + send there + - hangout link should keep working permanently, so there is no + need to generate a new one every time + - a sufficient number of people is administrator on the wiki and + can create accounts from the special pages + - jenkins is building definitions only and publishes to the web + site, it lives at http://build.nexusformat.org The aim is to + have it set up so that github groups can be used to set up user + accounts and permissions + - release by summer would be good, maybe without cmake for Linux. + Will be investigated by Freddie and Eugen + - Tobias volunteered to generate tickets of all action items from + the NIAC meeting in github + - Logo: Tobias does not like purple and is not keen on the + existing font. Mark K would like to keep the existing logo as + ported to SVG by Ben. Pete J finds none of the proposed + alternatives sufficiently different to justify a change. Most + like the idea to turn the u in NeXus into a mu. + - features: not significant progress for discussion + - detector vendors: all to submit contact details, Tobias to + publish draft for next telco + - next meeting will be `Telco 20150203 `__ + - NoOB diff --git a/source/teleconferences/Telco_20150203.rst b/source/teleconferences/Telco_20150203.rst new file mode 100644 index 00000000..9fc58936 --- /dev/null +++ b/source/teleconferences/Telco_20150203.rst @@ -0,0 +1,86 @@ +================= +Telco 20150203 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150203 + :name: telco-20150203 + :class: page-title + + .. rubric:: Date + :name: Telco_20150203_date + + Tuesday, 3rd Feb, 12:00 GMT + + Hangout Link: + https://plus.google.com/hangouts/_/g5yh5mixmcvnwuek4rpuuihglqahl=en-GB + (same link as last time, according to Google that should still + work) + + .. rubric:: Agenda + :name: Telco_20150203_agenda + + - Welcome + - Dectris Eiger files + - RDA Meeting San Diego + - Next NAPI release + - Logo (*not discussed due to lack of time*) + + For discussion: + https://www.dropbox.com/sh/n9sd8foejy43hzq/AABhDHPkmS9kpqIRJnFoJTcoadl=0 + + Avoid looking like any of these: + https://www.google.dk/searchq=nexus+logo&espv=2&biw=1280&bih=1021&tbm=isch&tbo=u&source=univ&sa=X&ei=1WS2VOnkCOr4ywODwoLoCA&ved=0CDQQ7Ak + + - Progress on features, NXmx validation (*not discussed due to + lack of time*) + + Something is evolving here: + http://idregistry-nexusformat.rhcloud.com/ + + - Tickets for NIAC items + - Letter to detector vendors (*not discussed due to lack of + time*) + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150203_minutes + + | Present + | EW, HJB, FA, MB, MK, PJ, TR, Stefan Brandstaetter + + | Dectris + | Good progress made. Herbert will gather the remaining change + requests in a document and forward to Dectris. We will see an + updated file in the near future after that. + + Herbert also to propose specification for exact location of + detector origin (tentative: centre of first pixel). This could be + done in the documentation for the *depends_pn* in NXdetector. + + | RDA + | No one going now. Might not be worth it for the moment. + + | NAPI release + | EW and FA will have teleconference to investigate (procedure in + general and cmake in particular) and report at next meeting. + + | Definitions versions + | There is some confusion about what NAPI writes out as + NeXus_version as root attribute, how definitions release + versions integrate with NAPI releases (or don t) and how to have + backward compatibility when using versions on individual + definitions. Further investigations on the best route forward + required. Ticket opened. + + | AOB + | EW offers to try and organise a code camp in Hamburg either end + of Oct or end of Nov. The latter was preferred as Oct clashes + with ICALEPCS + + Next meeting: `Telco 20150218 `__ Invites + sent out to nexus-tech, Hangout URL will stay the same diff --git a/source/teleconferences/Telco_20150218.rst b/source/teleconferences/Telco_20150218.rst new file mode 100644 index 00000000..be07858b --- /dev/null +++ b/source/teleconferences/Telco_20150218.rst @@ -0,0 +1,50 @@ +================= +Telco 20150218 +================= + + - Welcome + - NXdetector origin + - depends_on offset (renaming existing offset), Minuting of + Telcos + - Next NAPI release + - Dates for Code Camp + - Progress on features, NXmx validation, flexible NXtomo + + Something is evolving here: + http://idregistry-nexusformat.rhcloud.com/ + + - Letter to detector vendors + - Logo + + For discussion: + https://www.dropbox.com/sh/n9sd8foejy43hzq/AABhDHPkmS9kpqIRJnFoJTcoadl=0 + + Avoid looking like any of these: + https://www.google.dk/searchq=nexus+logo&espv=2&biw=1280&bih=1021&tbm=isch&tbo=u&source=univ&sa=X&ei=1WS2VOnkCOr4ywODwoLoCA&ved=0CDQQ7Ak + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150218_minutes + + Present: MB, MK, PJ, HJB, TSR + + NXdetector origin and depends_on clarified. Herbert sent out an + email to the discussion list: Depends_on point to the centre of + any object unless otherwise specified. The most important (and + only for the moment) otherwise specified case being NXdetector, + where the depends_on locates the first pixel. The first one being + the first one in the data. Otherwise there is some documentation + missing or not sufficiently referenced in the manual describing + the CIF geometry. To that end Ticket 273 is assigned to Tobias for + now. + + NAPI release, Code Camp & Logo: Not discussed due to lack of + relevant people. + + AOB: SNS representative elected, email will go out shortly. Use of + application definitions should be surveyed more frequently, could + come out of feature development. + + Next meeting will be `Telco 20150302 `__ diff --git a/source/teleconferences/Telco_20150302.rst b/source/teleconferences/Telco_20150302.rst new file mode 100644 index 00000000..005cb4f1 --- /dev/null +++ b/source/teleconferences/Telco_20150302.rst @@ -0,0 +1,84 @@ +================= +Telco 20150302 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150302 + :name: telco-20150302 + :class: page-title + + .. rubric:: Date + :name: Telco_20150302_date + + Monday, 2nd March, 12:00 GMT + + Hangout Link: + https://plus.google.com/hangouts/_/g5yh5mixmcvnwuek4rpuuihglqa + (the eternal link) + + .. rubric:: Agenda + :name: Telco_20150302_agenda + + - Welcome + - CMake vs. autotools & Next NAPI release + - Dates for Code Camp - announcement on wiki + - Letter to detector vendors + - WIKI + + All images including Logo disappeared (for me) + + Editing painfully slow + + - Logo + + For discussion: + https://www.dropbox.com/sh/n9sd8foejy43hzq/AABhDHPkmS9kpqIRJnFoJTcoadl=0 + + Avoid looking like any of these: + https://www.google.dk/searchq=nexus+logo&espv=2&biw=1280&bih=1021&tbm=isch&tbo=u&source=univ&sa=X&ei=1WS2VOnkCOr4ywODwoLoCA&ved=0CDQQ7Ak + + - flexible NXtomo (KIT) + - Progress on features + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150302_minutes + + CMake + + Eugen will look into CMake for everything. NAPI may be release as + Linux only using old build system, if required. We still need + input from Freddie. Mark B to help with that. + + Code Camp + + Dates 16-18 Nov appear to agree with all. Thanks Eugen! + + Letter to Detector Vendors + + Draft is in repository, comments weclome + + Herbert suggests meeting detector vendors at ACA meeting in + Philadelphia in July. No one besides Herbert keen to go. Will + check again next time. + + Logo + + Doodle poll or similar brought up as idea. + + Flexible Tomo + + Reply sent to KIT, pending response from there + + Features + + Mark B showed a nice Jenkins test of beamline NeXus status at DLS + using features. Code will be made available for others. + + Next meeting + + `Telco 20150318 `__ diff --git a/source/teleconferences/Telco_20150318.rst b/source/teleconferences/Telco_20150318.rst new file mode 100644 index 00000000..a21ca0ca --- /dev/null +++ b/source/teleconferences/Telco_20150318.rst @@ -0,0 +1,102 @@ +================= +Telco 20150318 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150318 + :name: telco-20150318 + :class: page-title + + .. rubric:: Date + :name: Telco_20150318_date + + Wednesday, 18th March, 12:00 GMT + + Hangout Link: + https://plus.google.com/hangouts/_/g2pa6t2hnwkox4jgjl2p72nqkea + (link updated!) + + .. rubric:: Agenda + :name: Telco_20150318_agenda + + - Welcome + - E-Mail from Herbert about NXmx & + http://arcib.dowling.edu/~yaya/Eiger_22Feb15/ + - WIKI + + All images including Logo disappeared + + Editing painfully slow + + - NXmonochromator + - Letter to detector vendors + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150318_minutes + + | Technical Notes + | The hangout link changed, maybe it expires after a while + + There is a limit of 10 people for a video hangout. Audio only + works for 150. Blue Jeans (could be provided by APS) would be an + alternative. Skype group calls can have 25 people, but are more + cumbersome to set up. + + Apologies for anyone who tried to join but couldn t. We try + Hangout again. If we get close to 10 (which would be good!) we + need to seriously think of another solution. + + | Present + | EW, HJB, FA, MB, PJ, TR, Stefan Brandstaetter, Graeme Winter, + Harry Powell, Andreas Foerster, Takanori Nakane + + | NXmx + | Harry Powell was disappointed by the lack of crystal orientation + information from an Eiger file we received. + + All are in agreement that NXmx was created in order to provide + that information. + + There was some discussion whether the detector was the correct + place to process that information. In the summary the detector is + not seen as the ideal device to handle that. We do encourage + facilities to write their orientation and other beamline + parameters and merge that with the detector generated HDF5 file. + However for cases where this does not happen, due to lack of + facility software support Dectris will investigate the inclusion + of some more sophisticated mxsettings for NeXus into their + software to allow the beamline to communicate the required + information. By default this will write a sensible set of metadata + with NaN as values, so people can learn from the detector output + even if no data was provided. + + We ll discuss some ideas for a solution soon. Eugen has + suggestions. + + Thanks to all participants that joined specifically for this + section. + + | NXmonochromator + | Problems resolved. We go with what is currently documented and + do not now enforce the original OO ideas. + + | Wiki + | Had been updated and paths have changed. Freddie fixed the logo + during the call and has since disabled a plugin that was timing + out. So the speed is back to normal again. + + | Letter to detector vendors + | Content is fine. + + TR has no ADSC contact details. Herbert is in contact so, he ll + take that on. + + TR to contact Aaron for CSPAD leads. + + Next meeting: `Telco 20150408 `__ Invites + sent out to nexus-tech, Hangout URL will hopefully stay the same diff --git a/source/teleconferences/Telco_20150408.rst b/source/teleconferences/Telco_20150408.rst new file mode 100644 index 00000000..01ba79a9 --- /dev/null +++ b/source/teleconferences/Telco_20150408.rst @@ -0,0 +1,48 @@ +================= +Telco 20150408 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150408 + :name: telco-20150408 + :class: page-title + + .. rubric:: Date + :name: Telco_20150408_date + + Wednesday, 8th April, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2pa6t2hnwkox4jgjl2p72nqkea + (link updated) + + .. rubric:: Agenda + :name: Telco_20150408_agenda + + - Welcome + - Check minutes of last meeting + - NXmx update + - CMake update + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150408_minutes + + Small meeting. Just EW, HJB and TR. + + Discussions on the future of MX detectors. + + Some progress made on cmake build for the definitions and + documentation. + + Need to get NAPI release out. The current one is outdated (more + than two years old) and master has new features. During that we + found some ancient download content on the WIKI and non-editable + on download.nexformat.org. Need to update or remove. Eugen to look + into. + + Will look for good slot for next meeting. diff --git a/source/teleconferences/Telco_20150506.rst b/source/teleconferences/Telco_20150506.rst new file mode 100644 index 00000000..398a4a35 --- /dev/null +++ b/source/teleconferences/Telco_20150506.rst @@ -0,0 +1,68 @@ +================= +Telco 20150506 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150506 + :name: telco-20150506 + :class: page-title + + .. rubric:: Date + :name: Telco_20150506_date + + Wednesday, 6th April, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2pa6t2hnwkox4jgjl2p72nqkea + + .. rubric:: Agenda + :name: Telco_20150506_agenda + + - Welcome + - CMake update for definitions and NAPI, release plans + - Check minutes of last meeting + - Detector developer contacts + - NXmx update + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150506_minutes + + Present: HJB, MB, MK, EW, PJ, TSR + + CMake for definition is homing in. Not all of it working yet, but + progress is continuously being made. + + CMake for code and hence a NAPI release still pending. + + Recent bug reported on reading string arrays with getSlab is + confirmed. No volunteer to fix for now. + + Action to make contact with detector developers is still not + complete. Hopefully more at the next meeting. + + NXmx: Herbert is fixing memory leaks in cbflib. Dectris is aware of progress and cooperative. + Users and beamline staff will be pivotal to success of NXmx. + HDF5 might be seen as an impediment to stream images for live + feedback. We need to get the message out that things can be + done properly without sacrificing the standard. + :DLS voiced the request to make some fields in NXmx required + that are now optional. We agreed to apply community pressure to + encourage vendors and facilities to write as much useful + metadata as possible, but not make required more than strictly + necessary. The features exploratory project will make it + easier to mark the presence or absence of additional + information. + + Mark B will come back with proposal for a minimum reliable value + that may be needed in some cases. + + Next meeting: `Telco 20150520 `__ + + AOB: PaNDaaS (as an informal project with no funding) has a NeXus + work package between DESY, ESRF, DLS and ESS. Nothing has happened + yet. diff --git a/source/teleconferences/Telco_20150520.rst b/source/teleconferences/Telco_20150520.rst new file mode 100644 index 00000000..38e7495c --- /dev/null +++ b/source/teleconferences/Telco_20150520.rst @@ -0,0 +1,81 @@ +================= +Telco 20150520 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150520 + :name: telco-20150520 + :class: page-title + + .. rubric:: Date + :name: Telco_20150520_date + + Wednesday, 20th May, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2pa6t2hnwkox4jgjl2p72nqkea + + .. rubric:: Agenda + :name: Telco_20150520_agenda + + - Welcome + - Detector developer contacts + - CMake and release update + For the definitions distribution + + - which targets should be installed + - removal of xsltproc from the source tree (there is a binary + available on the web) + - removal of the validation tool + + - NXmx update + - Plan of future activities (code camp and strategic) + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150520_minutes + + Present: EW, TSR, HJB, MK, MB, Andreas Foerster, PJ (second half) + + Contacts with LCLS II for file formats made. Touch base Skype call + arranged. Update at next Telco. + + CMake: Good progress made by Eugen on Definitions. Removal of + items agreed. However we do need a roadmap for providing a working + validation tool. NXFeatures are on the way, but still + experimental. + + Discussion on foreign pull requests: It is great that we get work + done for free. We need to be careful though about copyright + (notices are intact). + + NXmx: During code development at DLS question came up to clarify + named items in nxdl. Handbook says maxOccurs is unbounded, which + makes no sense for named items. Documentation will be improved + (Mark B was volunteered). Followup question: What do we do for + names of items that can have multiple instances name_NNNN + Consensus was we mostly should not be fixing names in that case. A + documentation proposal might be coming. + + Andreas proposed a single angle increment value for goniometer + axes that move during shutterless MX scans. Preference was to have + a per frame value, with separate start_something and + end_something. There was a proposal floating around in Diamond at + one point. Mark B to dig out and forward to HJB, who will process + that into a template proposal for Dectris. Will revisit next time. + + For those Dectris templates: Can we have a IEEE NaN fill value for + data that is to be provided outside of the detector later. Looks + like we can. We ll check. + + Clarification: Detector origin is supposed to be the first pixel + in the data. Needs to be documented prominently. Worth checking + documentation for other omissions. Task for everyone. + + Will discuss other items and relative paths for depends_on at the + next meeting, which will be `Telco + 20150603 `__ diff --git a/source/teleconferences/Telco_20150603.rst b/source/teleconferences/Telco_20150603.rst new file mode 100644 index 00000000..0701c458 --- /dev/null +++ b/source/teleconferences/Telco_20150603.rst @@ -0,0 +1,62 @@ +================= +Telco 20150603 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150603 + :name: telco-20150603 + :class: page-title + + .. rubric:: Date + :name: Telco_20150603_date + + Wednesday, 3rd June, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150603_agenda + + - Welcome + + - CMake and release update + + - Remaining problems + - expected state of master + - merge and pull request strategy + + - NXmx update + + - beam center + - start and end angles for shutterless scans + + - Next meeting + + .. rubric:: Minutes + :name: Telco_20150603_minutes + + Present: MK, MB Andreas Foerster, HJB, PJ, TSR, FA, EW, Graeme + Winter + + Initial problems with hangout not allowing people to join the + first two participants under the old URL. New Hangout created. + + Discussion on CMake: All look well now, except for the Windows + build. That could be solved by using the cmake inbuilt make. Eugen + has updated the ticket. In general small fixes can be done in + master, larger possibly disruptive chunks of work should be merged + by an independent person using a github pull request. This should + be documented somewhere. + + NXmx: Discussion on allowing beam_center in units of pixels, + instead of official units of length. No real agreement why that + would be necessary, but also not a strong opposition. shutterless + scans: One start and either end or interval value would be + required. Not more. Encoding could be done via naming, or + attributes. No consensus for now. A proposal will be developed. + + Moved remaining other items to next meeting. diff --git a/source/teleconferences/Telco_20150617.rst b/source/teleconferences/Telco_20150617.rst new file mode 100644 index 00000000..519fc057 --- /dev/null +++ b/source/teleconferences/Telco_20150617.rst @@ -0,0 +1,119 @@ +================= +Telco 20150607 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150617 + :name: telco-20150617 + :class: page-title + + .. rubric:: Date + :name: Telco_20150617_date + + Wednesday, 17th June, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150617_agenda + + - Welcome + + - NXmx update + + - Fill values (NaN) + - start and end angles for shutterless scans + - depends_on with relative path + + - Documentation update + + - detector origin (1st pixel in stream) + - anything else in need of work " look at issues + + - Plan of future activities (code camp and strategic) + + - Validation + + - code (napi) release update + - example files status and plea for added or updated files + - Community engagement + + - LCLS + - Dectris + - ECM + + - Next meeting + - AOB + + - Axis attributes in NXdetector e.g + + | `` Fluo : NXdetector`` + | `` @signal = data`` + | `` @axes = (,,,energy)`` + | `` @energy_indices = (3)`` + | `` data[10,20,180,1024]`` + | `` @interpretation = spectrum`` + | `` energy[1024]`` + | `` @units = keV`` + + .. rubric:: Minutes + :name: Telco_20150617_minutes + + Present: MK, MB, EW, HJB, TSR, AF (Dectris, from holiday!) + + NXmx, fill values + + This started from an Dectris Eiger problem of having to write + fields without knowing values. Those are them meant to be filled + in by beamline acquisition system. Since as far as NeXus is + concerned a fully populated file should leave the facility, this + is nothing we have a strong opinion about. Writing an empty array + (dimension 0) would work. + + NXmx, shutterless + + All resolved to everyone s satisfaction. + + NXmx, relative depends_on path + + Not deemed required, for the moment. + + Documentation, detector pixel origin + + Eugen volunteered to have a look at this. Potentially including + detector modules and related new areas. + + Documentation, general review of tickets + + Quite a number of tickets are open on the definitions repository, + some of them very old. A good number of them could potentially be + closed. Looking through them and at least commenting would help + the next person make a decision. Action on all. + + Plans for Code Camp an future + + Eugen will advertise Code Camp on the mailing list shortly. Please + have a think about ideas to tackle there and what we need to do + strategically. Ideas so far include validation, NAPI, features. + + example file repository + + Is in need of new files. This would help developers to find bugs + in their code and develop common data extraction methods. Maybe a + github repo is not the best choice, for data size reasons. Might + investigate at the code camp. + + Next meeting will be `Telco 20150630 `__ + + AOB + + Mark Basham suggests a scheme to attribute detector axes (like for + an energy dispersive detector) analogue to NXdata. Not all + detector must have an NXdata, otherwise that could be used + directly. MK asserts that this looks good and we certainly should + not have two schemes (NXdata vs NXdetector) to assign axes. Will + revisit that at next telco. diff --git a/source/teleconferences/Telco_20150630.rst b/source/teleconferences/Telco_20150630.rst new file mode 100644 index 00000000..1fa3ca45 --- /dev/null +++ b/source/teleconferences/Telco_20150630.rst @@ -0,0 +1,73 @@ +================= +Telco 20150630 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150630 + :name: telco-20150630 + :class: page-title + + .. rubric:: Date + :name: Telco_20150630_date + + Tuesday, 30th June, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150630_agenda + + - Welcome + - Axis attributes in NXdetector e.g + + | ``Fluo:NXdetector`` + | ``@signal=data`` + | ``@axes=(,,,energy)`` + | ``@energy_indices=(3)`` + | ``data[10,20,180,1024]`` + | ``@interpretation=spectrum`` + | ``energy[1024]`` + | ``@units=keV`` + + - code (napi) cmake update and release timelime + - definitions: name-tag-attribute: + https://github.com/nexusformat/definitions/pull/411 + - Documentation update, summary of ticket review + - Plan of future activities (code camp and strategic) + + - Validation + - example repo or area (with data, without data) + - napi + - features + + - NIAC 2016 - dates maybe + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150630_minutes + + Present: HJB, EW, MK, MB, TSR + + Axes for Detectors: All in favour. We should make this recommended + at a next NIAC meeting. + + napi release: Treat recent poll as priority list for new build + system and provide incremental updates until no one objects to + things missing. + + Pull request 411: The placeholder is not independent of the + named or any options. So this does not look like a full + solution. With the removal of placeholder that completely fixes + the current problem (Mark B to check with Peter C). Would like to + check with Pete J, but then it looks reasonable. + + Tickets: Not much progress. Do comment on every ticket looked at, + if you think it is done or summarising outstanding items. Aim to + close one per person over summer. + + Next meeting: `Telco 20150715 `__ diff --git a/source/teleconferences/Telco_20150715.rst b/source/teleconferences/Telco_20150715.rst new file mode 100644 index 00000000..0f5961e1 --- /dev/null +++ b/source/teleconferences/Telco_20150715.rst @@ -0,0 +1,101 @@ +================= +Telco 20150715 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150715 + :name: telco-20150715 + :class: page-title + + .. rubric:: Date + :name: Telco_20150715_date + + Wednesday, 15th July, 12:00 BST + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150715_agenda + + - Welcome + - code (napi) cmake update and release timelime + - definitions: name-tag-attribute: + https://github.com/nexusformat/definitions/pull/411 + - Documentation update, summary of ticket review + - DLS Auto generation questions: + + - Identification of non scannable fields i.e. the scan rules + say that everything can be scanned and hence have additional + dimensions, but this does not make sense for some things, + which should only be reported once. + + - 3D Detectors: slowest, slow, fast vs. x, y, z + - CXI file format http://cxidb.org/cxi.html + - Next meeting - July 27 or 28 at 8am Pacific Time, so Aaron can + join (5 CEST, 4 BST, 11 NY, 10 IL+TN) + - AOB + + .. rubric:: Minutes + :name: Telco_20150715_minutes + + Present: HJB, EW, MB, TSR (summer has apparently arrived + everywhere in the northern hemisphere) + + cmake for code + + Eugen has made some progress and will have finished the + configuration and build of the main library by the next meeting. + Binding and tools will follow then, not necessarily in that order. + hdf4 and xml should not be disabled by default but be integrated + when available at least for this release. Equally building without + hdf5 is not yet an error. + + pull request 411 + + With the placeholder removed that seems a reasonable approach to + fix issue 399, although not the final verdict for placeholders. + But that may require a separate NXDL tweak. (Found out after the + telco: PJ had one comment that the default specified should be + specified. TSR commented in the ticket.) + + Reducing number of open tickets + + We closed 3 tickets during the telco and discussed issue 407 which + Eugen will investigate. + + scan dimensions for everything + + Rationale: Some fields, like instrument/name are unlikely to + change during a scan. If scan rules didn t apply an API could + return nice and simple strings instead of arrays of them. + Consensus: No change. Since for now we allow scan rules in all + cases which is the most general way, having a special rule for a + low number of fields is not deemed to help much. Rather have a + simple rule than simple special cases. However: There are cases + other than scan rules where dimensions can be added + (detector/distance can be per pixel), so it should be clear what + the added dimensions are. That s unresolved for now. + + 3D detectors + + fast and slow works for 2D. An extension for 3D might be fast, + slow, slower or slowest. However if scan rules apply the slowest + detector dimension may not be the slowest of the overall dataset. + HJB suggests fast, second_fastest, third_fastest, fourth_fastest, + fifth_fastest and so on ad nauseam as the general case. No real + conclusion reached. The disconnect between fast/slow vs. x/y was + not discussed. + + CXI file format + + The NeXus compliant version of it is so close to NeXus that + integrating that as an application definition seems almost easy. + We ll invite them to the next teleconference. + + Next conference + + `Telco 20150728 `__ diff --git a/source/teleconferences/Telco_20150728.rst b/source/teleconferences/Telco_20150728.rst new file mode 100644 index 00000000..0b298d59 --- /dev/null +++ b/source/teleconferences/Telco_20150728.rst @@ -0,0 +1,73 @@ +================= +Telco 20150718 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150728 + :name: telco-20150728 + :class: page-title + + .. rubric:: Date + :name: Telco_20150728_date + + Tuesday, 28th July, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am + IL+TN) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150728_agenda + + - Welcome + - CXI file format http://cxidb.org/cxi.html + - Virtual Dataset + - 3D Detectors: slowest, slow, fast vs. x, y, z + - code (napi) cmake update and release timelime + - Documentation update, summary of ticket review + + - definitions: name-tag-attribute: + https://github.com/nexusformat/definitions/pull/411 and + issue 399 + - issue 407 (windows builld) + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150728_minutes + + STFC had a network outage coinciding with this meeting, making + this wiki and the NeXus mailing lists inaccessible. So joining was + complicated. Most items deferred to the next meeting. + + Present: EW, MK, TSR, Aaron Brewster, Filipe Maia + + NAPI: Eugen has made progress on the CMake build of the library + and is working on the tests. + + CXI File Format: Filipe is not opposed to the idea of creating an + application definition of the NeXus compliant variant (with + attributes) of his file coherent imaging file format. Should go + into the contributed area first. Filipe also agreed to join the + next telco. + + Virtual Dataset: Filipe would like to see an HDF5 API that + provides different predefined views of the data volume, for + example as image and as a whole. If that in turn was picked up by + MATLAB or other products, analysis code developers could just read + image by image without having to worry about hyperslabs. In + principle that might be possible with virtual datasets. Eugen to + ask HDF group. No consensus whether that was a priority or effort + should be directed at training users. + + Aaron had another item on virtual dataset, but his audio was not + working. Due to the initial delays we deferred the discussion to + the next meeting, which is again slotted to allow US East coast + participation. If that works for the rest of the US we might stick + to that. + + Next meeting: `Telco 20150811 `__ diff --git a/source/teleconferences/Telco_20150811.rst b/source/teleconferences/Telco_20150811.rst new file mode 100644 index 00000000..c1d6fc28 --- /dev/null +++ b/source/teleconferences/Telco_20150811.rst @@ -0,0 +1,65 @@ +================= +Telco 20150811 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150811 + :name: telco-20150811 + :class: page-title + + .. rubric:: Date + :name: Telco_20150811_date + + Tuesday, 11th August, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am + IL+TN) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150811_agenda + + - Welcome + - Virtual Dataset + - 3D Detectors: slowest, slow, fast vs. x, y, z + - code (napi) cmake update and release timelime + - Documentation update, summary of ticket review + + - definitions: name-tag-attribute: + https://github.com/nexusformat/definitions/pull/411 and + issue 399 + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150811_minutes + + Present: EW, HJB, MK, PJ, TSR, AB + + Virtual Dataset: EW will contact Felipe to extract more specific + requirements for an HDF5 API and feed that into THG. + + napi and tools release: slow progress. No testers have reported + any success or failure with the current state. This may improve + when tools are build as well as people has no ready way to test + the build otherwise. + + 3D detectors: While the route to just define pixel_size_z looks + easy, this is not very general. Z may not coincide with the global + z-axis and it may correspond to any dimension in the data array + (volume). So TSR will prepare a generic proposal for n-dimensional + detector data, with m<=n spatial dimensions. EW is keen to test + this on his next beamtime in September. + + Ticket 411: Merged during the meeting. + + Windows build: Problems arise due to lack of development + environment, which should not be a hard requirement to have + installed in order to work on documentation. We will revert to + old-style make files. More background in github tickets. + + Next meeting: `Telco 20150827 `__ diff --git a/source/teleconferences/Telco_20150827.rst b/source/teleconferences/Telco_20150827.rst new file mode 100644 index 00000000..2791fec6 --- /dev/null +++ b/source/teleconferences/Telco_20150827.rst @@ -0,0 +1,61 @@ +================= +Telco 20150827 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150827 + :name: telco-20150827 + :class: page-title + + .. rubric:: Date + :name: Telco_20150827_date + + Thursday, 27th August, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am + IL+TN) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150827_agenda + + - Welcome + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) + - Are base classes complete Does everything that is part of an + application definition have to be defined in a base class + Question from DLS. + - Documentation update, summary of ticket review + - code (napi) cmake update and release timelime + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20150827_minutes + + Present: MK, HJB, MB, PJ, TSR + + HJB suggests recording these sessions via Hangout On Air. We ll + think about it. + + Detector axes: Some progress made on ideas, but no example yet. + TSR to report again next time. + + Completeness of base classes: After some discussion the agreement + is that application definitions have a higher value than base + classes. Base classes capture the common cases and should not have + to carry every domain specific field that might ever come up. + There also is the procedural problem that proposing a new + application definition might require a base class change first, if + that was enforced by software (which would be the case for the + code DLS is developing). Encoding this addition explicitly via + some tag was rejected. Once application definition can add fields + that changes the framework and matching the names to see what + needs to be added is simple for software. TSR to contact Peter + Chang and edit the manual where PC was mislead. + + Technical problems and other commitments cut the meeting short. + Next one is `Telco 20150909 `__ diff --git a/source/teleconferences/Telco_20150909.rst b/source/teleconferences/Telco_20150909.rst new file mode 100644 index 00000000..a8b73ca6 --- /dev/null +++ b/source/teleconferences/Telco_20150909.rst @@ -0,0 +1,153 @@ +================= +Telco 20150909 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20150909 + :name: telco-20150909 + :class: page-title + + .. rubric:: Date + :name: Telco_20150909_date + + Wednesday, 9th September, 8am PST, (5pm CEST, 4pm BST, 11am NY, + 10am IL+TN) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20150909_agenda + + - Welcome + - Documentation build server status + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) + - Documentation update, summary of ticket review + - code (napi) cmake update and release timelime + - CXI format, status report. + - Next meeting + - AOB + + .. rubric:: Proposal Example + :name: proposal-example + + 2d image + wave length + + raw detector [100,100,256] + + scan over theta and phi and temperature + + outer scan temperature + + | ``32`` + | ``65`` + + inner scan combined theta and phi + + | ``-15 0.1`` + | ``-14 0.3`` + | ``.. ..`` + | ``14 8.4`` + | ``15 8.7`` + + **File example:** + + | ``entry`` + | `` data`` + | `` @signal=data`` + | `` @axes=temperature,theta,firstdim,seconddim,wavelength`` + | `` @theta_indices=0,1`` + | `` @/entry/sample/temperature_indices=0`` + | `` ...`` + | `` # this becomes a bit redunant`` + | `` ...`` + | `` data[2,31,100,100,256]`` + | `` instrument`` + | `` detector`` + | `` @signal=data`` + | `` @axes=/entry/sample/temperature,theta,firstdim,seconddim,wavelength`` + | `` @/entry/sample/temperature_indices=0`` + | `` @theta_indices=0,1`` + | `` @wavelength_indices=2,3,4`` + | `` @firstdim_indices=2`` + | `` @seconddim_indices=3`` + | `` @thirddim_indices=2,3`` + | `` depends_on=/entry/instrument/detector/seconddim`` + | `` data[2,31,100,100,256]`` + | `` wavelength[100,100,256]`` + | `` @units=nm`` + | `` firstdim[100]`` + | `` @depends_on=/entry/instrument/detector/transformations/arm`` + | `` @transformation_type=translation`` + | `` @vetcor=0.5,0.5,0`` + | `` thirddim[100,100]`` + | `` @depends_on=firstdim`` + | `` @transformation_type=translation`` + | `` @vetcor=0,0,1`` + | `` seconddim[100]`` + | `` @depends_on=thirddim`` + | `` @transformation_type=translation`` + | `` @vetcor=0.5,-0.5,0`` + | `` transformations`` + | `` theta[2,31]`` + | `` @depends_on=.`` + | `` @transformation_type=rotation`` + | `` @vetcor=1,0,0`` + | `` arm[1]`` + | `` @depends_on=theta`` + | `` @transformation_type=translation`` + | `` @vetcor=0,0,1`` + | `` sample`` + | `` depends_on=/entry/sample/transformations/phi`` + | `` temperature[2]`` + | `` units=C`` + | `` transformations`` + | `` phi[2,31]`` + | `` @depends_on=.`` + | `` @transformation_type=rotation`` + | `` @vetcor=0,1,0`` + + unsolved problem: pixel size + + relatively straight forward for event mode using pixels_ids + instead of data + + .. rubric:: Minutes + :name: Telco_20150909_minutes + + Present: HJB, EW, MK, MB, TSR, FA + + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) " new use cases + + See above. All reviewed this and found no obvious problems. For + the next meeting people should gather use cases that might or + might not work and report back. + + - Buildserver hickup + + Freddie fixed the configuration and the build now completes + successfully. + + - Documentation update, summary of ticket review + + Number of tickets has been close as they had been completed a + while back. https://github.com/nexusformat/definitions/issues/266 + appears to be in an unclear state and would benefit from + investigation. Freddie volunteered. + + - code (napi) cmake update and release timelime + + During the call Eugen made some progress on the test build. + + - CXI format, status report. + + Mark B interested. Will contact people in Berkeley. + + - Next meeting + + `Telco 20151001 `__ diff --git a/source/teleconferences/Telco_20151001.rst b/source/teleconferences/Telco_20151001.rst new file mode 100644 index 00000000..1552e648 --- /dev/null +++ b/source/teleconferences/Telco_20151001.rst @@ -0,0 +1,109 @@ +================= +Telco 20151001 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20151001 + :name: telco-20151001 + :class: page-title + + .. rubric:: Date + :name: Telco_20151001_date + + Thursday, 1st October, 8am PST, (5pm CEST, 4pm BST, 11am NY, 10am + IL+TN) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20151001_agenda + + - Welcome and agree Agenda + - Next meeting + - code camp registration and technicalities + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) " new use cases + - Documentation update, summary of ticket review + https://github.com/nexusformat/definitions/issues/266 + - geometric shapes and operations (mantid/mcstas geometry + conversion) + - code (napi) cmake update and release timelime + - CXI update (Mark B) + - Look at a new container class (what is that) + - How do we define the X and Y drive directions of a scan + (clarification, we know them, but how do we get back to the + NXPositioner class which specifies all the information) + - AOB + + .. rubric:: Minutes + :name: Telco_20151001_minutes + + Present: HJB, EW, MK, MB, TSR, PJ, AB + + - Next meeting + + `Telco 20151014 `__ + + - code camp + + ACTION: Everyone register, EW to send reminder to mailing list + + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) " new use cases + + EW had a look and found no problems (so far) + + MB has no problems with the current proposal, but would like to + add the use case of recording the scan intend. One way of doing + that would be to use the old NeXus target linking scheme to + point to an NXpositioner or so. He ll generate a proposal. + + HJB leaves the meeting due to conflicting commitments. + + - Issue 266 https://github.com/nexusformat/definitions/issues/266 + + Pete clarified that the attempted old solution didn t lead + anywhere promising. So having Freddie looking at this with fresh + eyes is a good idea. + + - shapes and boolean operations + + Mantid does require not only positions of elements on the + beamline, but also their shapes. For visualisation but also + modelling and simulations. In the discussion it became clear that + knowledge about the adopted CIF geometry is not as widespread as + we would have liked. (See ticket 397.) Tobias will add some + information there. + + The existing NXgeometry or NXshape were not suggested as good + starting points. Either working from what mantid currently uses, + or starting from some general purpose geometry package would be + reasonable. Avoiding the re-inventions of wheels for object + placement. + + - code (napi) cmake update and release timelime + + Will put of a reduced feature set release soon and ask for + volunteer effort to help with things further down our priority + list. + + - CXI format, status report. + + Mark B mumbled something, could make out some words no coherent + meaning. ACTION: MB get better mike. + + - sample container information + + MB mentioned very careful background subtract schemes with half + sample containers in the beam (upstream and downstream) and the + requirement to provide more information on the holder material. He + will propose something and potentially provide a drawing if + helpful. + + - AOB + + none (timeout) diff --git a/source/teleconferences/Telco_20151014.rst b/source/teleconferences/Telco_20151014.rst new file mode 100644 index 00000000..def0d41e --- /dev/null +++ b/source/teleconferences/Telco_20151014.rst @@ -0,0 +1,61 @@ +================= +Telco 20151014 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20151014 + :name: telco-20151014 + :class: page-title + + .. rubric:: Date + :name: Telco_20151014_date + + Wednesday, 14th October, 17:00 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20151014_agenda + + - Welcome and agree Agenda + - code camp update and plans + - sample container proposal + - recording scan intend proposal + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) " new use cases or ready + - geometric shapes and operations (mantid/mcstas geometry + conversion) update + - code (napi) cmake update and release timelime + - CXI update (Mark B) this time with better microphone + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20151014_minutes + + Present: + + Eugen (only listening), Herbert, Andreas from Dectris, Pete + Jemian, Mark K. + + - Andreas brought up some question regrading trigger_delay_time + which resolved into a clarification that the one in NeXus base + class is the hardware trigger_delay_time. A new, + effective_trigger_delay, time in proposed which will sum all + trigger delays, from hardware or software or else. + - As the main players for the other topics on the Agenda were not + present, we discussed the NXvalidate white paper. Many points + were resolved. Mark K will update the white paper with the + results of the discussions shortly. It was felt that it is more + important to get the things done rather then haggle for a long + time about the optimal solution and details. + - The discussion returned to NXmx. Uptake of NeXus/HDF-5 is still + difficult. The problem are the data analysis package + maintainers. Herbert suggested to have a workshop and help them + get NeXus implemented around one of the big crystallographic + conferences next year. Dectris may be supporting this workshop. + - The next Telco is `Telco 20151104 `__ diff --git a/source/teleconferences/Telco_20151104.rst b/source/teleconferences/Telco_20151104.rst new file mode 100644 index 00000000..d632bdda --- /dev/null +++ b/source/teleconferences/Telco_20151104.rst @@ -0,0 +1,89 @@ +================= +Telco 20151104 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20151104 + :name: telco-20151104 + :class: page-title + + .. rubric:: Date + :name: Telco_20151104_date + + Wednesday, 4th November, 17:00 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/g2e2ayoq57srpi2g4zv2c2ewbua + + .. rubric:: Agenda + :name: Telco_20151104_agenda + + - Welcome and agree Agenda + - code camp update and plans + - sample container proposal - DLS + + - see http://wiki.nexusformat.org/File:IMAG1085_1.jpg + + - recording scan intend proposal - DLS + - trigger delay time discussion - Dectris + - Generic proposal for spatial and other axes on nD Detectors: + (slowest, slow, fast) " new use cases or ready + - geometric shapes and operations (mantid/mcstas geometry + conversion) update + - CXI update (Mark B) this time with better microphone + - Short update on the NAPI CMake build and nxvalidate (the latter + one is important) + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20151104_minutes + + Present: EW, HJB, AB, MK, TSR, MB + + Old hangout link did not work form some. The new one is: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + Code Camp: We ll have a Hangout form there on the first day to + gauge interest in remote participation or contribution. On the + Tuesday evening from 19.00 local time there is a C++ user group + that Eugen invites to. English language version available. Other + details are already on the code camp wiki page. + + Sample Container proposal: By the sounds a new class of NXwindow + or so carefully place in the file and instrument geometry would + solve the problem. MB to detail proposal. + + Scan Intend: Proposal in progress. More in due course. + + Trigger time delay: Diagnostics fields for detector in + preparation. + + nD detectors: No problems raised. Ready for final inspection when + documentation ready. + + geometric shapes and operations: No update. + + CXI: Some insane legal situation arose that prevents a report on + the issue. Should be under control in 3-4 weeks. + + CMake: Some progress. TSR raises need to get release out at the + code camp no matter what. If we cannot do it there we have lost + the ability to do a release. The code base is better than it was + and that needs to go out. There may be stumbling blocks actually + releasing binaries on the nexusformat.org web pages. Some content + still appears to be hand crafted by special individuals, but that + may be under version control now. We will see. + + AOB: cnxvalidate: Progress made, no actual tests are run. Oddities + in NXDL were found (attributes can be defined two ways). Decision + for the best home of nxvalidate (NAPI repo, definitions, it s own) + will be taken at the code camp. For now it moves into it s own + branch. + + Next Telcos: `Telco 20151116 `__ (live from + the code camp) and `Telco 20151202 `__ + (regular one from the convenience of everyone s own place) diff --git a/source/teleconferences/Telco_20151116.rst b/source/teleconferences/Telco_20151116.rst new file mode 100644 index 00000000..348806c6 --- /dev/null +++ b/source/teleconferences/Telco_20151116.rst @@ -0,0 +1,30 @@ +================= +Telco 20151116 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20151116 + :name: telco-20151116 + :class: page-title + + .. rubric:: Date + :name: Telco_20151116_date + + Monday, 16th November, 17:00 Central European Time (Copenhagen) - + live from the code camp + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20151116_agenda + + - Welcome and agree Agenda + - code camp update and plans + - AOB + + .. rubric:: Minutes + :name: Telco_20151116_minutes diff --git a/source/teleconferences/Telco_20151202.rst b/source/teleconferences/Telco_20151202.rst new file mode 100644 index 00000000..5a942a06 --- /dev/null +++ b/source/teleconferences/Telco_20151202.rst @@ -0,0 +1,90 @@ +================= +Telco 20151202 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20151202 + :name: telco-20151202 + :class: page-title + + .. rubric:: Date + :name: Telco_20151202_date + + Wednesday, 2nd December, 17:00 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20151202_agenda + + - Welcome and agree Agenda + - HDF exploratory work at SLAC + - canSAS axes arrays vs. string parsing + - sample container proposal - DLS + - recording scan intent proposal - DLS + - CXI update (Mark B) this time with better microphone and legal + advise + - Update from NAPI code and GitHub: + + - Python code has been moved to its own repository + - Next NAPI release 4.4.1 scheduled for Friday 11, 2015 + - HDF5 external filter plugin repository is online on + nexusformat + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20151202_minutes + + Present: FAA, HJB, EW, AB, TSR + + - HDF exploratory work at SLAC + + Aaron mentioned some strong interest in file formats at SLAC + recently and that he can dedicate some time for proof of concept + work in relation to the CIF-NeXus concordance. Herbert agreed to + work with him. If other help is needed Aaron will let us know. + + - canSAS axes arrays vs. string parsing + + It was agreed that there was no need to allow CVS axes in the + newly defined axes attribute to groups. One of the design goals + was to remove that source of trouble and not introduce more + legacy. We ll revert the change to the features repository and + review the documentation to make that clear. + + - sample container proposal - DLS + - recording scan intent proposal - DLS + - CXI update (Mark B) this time with better microphone and legal + advise + + No representation from DLS. No report. + + - Update from NAPI code and GitHub: + + - Python code has been moved to its own repository + - Next NAPI release 4.4.1 scheduled for Friday 11, December + 2015 + - HDF5 external filter plugin repository is online on + nexusformat + + All happily acknowledged. There was a discussion on the various + download pages. Github may be a place where we can offer binary + packages in the future. EW will investigate. The goal should be + that you cannot download an old version from a page under our + influence without being informed that there is a new release out. + So far only the mailing list knows and if you happen to find the + tarball on gitub. + + - Next meeting + + Is `Telco 20151215 `__ + + - AOB + + None diff --git a/source/teleconferences/Telco_20151215.rst b/source/teleconferences/Telco_20151215.rst new file mode 100644 index 00000000..568fab54 --- /dev/null +++ b/source/teleconferences/Telco_20151215.rst @@ -0,0 +1,59 @@ +================= +Telco 20151215 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20151215 + :name: telco-20151215 + :class: page-title + + .. rubric:: Date + :name: Telco_20151215_date + + Tuesday, 15th December, 16:30 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20151215_agenda + + - Welcome and agree Agenda + - sample container proposal - DLS + - recording scan intent proposal - DLS + - CXI update (Mark B) this time with better microphone and legal + advise + - NAPI release and download webpages + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20151215_minutes + + Present: HJB, AB, FAA, EW, MK, TSR + + First three agenda items require MB, skipping. + + Other business: Lz4 bit shuffle oddities reported by HJB. + + HJB will push to filter github repo when done testing. + + The HDF Group is already advertising our filters repo on their + mailing list. + + NAPI release and downloads: Github download next to working. + + Thanks go to Freddie and Stu for the Windows and RW build fixes. + + EW will upload legacy NAPI binaries to github tomorrow, so we can + remove download.nexusformat.org/kits. Only useful stuff remaining + there would be the definitions installers. TSR will contact PJ to + migrate those to github or volunteer himself. + + HJB: BNL will host MX workshop in May in collaboration with + Dectris. EW is going. Other presence will be at ACA and ECM 2016. + + Next meeting is: `Telco 20160106 `__ diff --git a/source/teleconferences/Telco_20160106.rst b/source/teleconferences/Telco_20160106.rst new file mode 100644 index 00000000..3556cc6d --- /dev/null +++ b/source/teleconferences/Telco_20160106.rst @@ -0,0 +1,93 @@ +================= +Telco 20160106 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160106 + :name: telco-20160106 + :class: page-title + + .. rubric:: Date + :name: Telco_20160106_date + + Wednesday, 6th January, 16:30 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160106_agenda + + - Welcome and agree Agenda + - teleconference reminders - fate of nexus-tech + - sample container proposal - DLS + - recording scan intent proposal - DLS + - CXI update (Mark B) this time with better microphone and legal + advise + - NAPI release and download webpages (including definitions + kits), debian packages + - cnxvalidate update + - features update + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160106_minutes + + Present: RO, HJB, TSR, MK + + .. rubric:: nexus-tech + :name: Telco_20160106_nexus-tech + + - now open for subscriptions + - moderated to only allow notifications about teleconferences + + https://github.com/nexusformat/definitions/issues/429 + + .. rubric:: DLS reports and NAPI + :name: dls-reports-and-napi + + no update due to lack of relevant people + + .. rubric:: cnxvalidate + :name: Telco_20160106_cnxvalidate + + discussion of status and purpose + + alpha software, but ready for tests + + running agains existing example files is outstanding + + .. rubric:: features update + :name: features-update + + internal tests for issuing feature ids have started + + more on that hopefully next time + + .. rubric:: upcoming meetings + :name: upcoming-meetings + + BNL/NSLSII meeting for Dectris/Eiger data processing, 26-28 May + 2016 + + workshops at either ACA or ECM for general MX data + + .. rubric:: AOB + :name: Telco_20160106_aob + + This year marks 20 years of NeXus. We ll need to celebrate at the + NIAC. + + Github issues was discussed for electronic discussions. To + initiate a discussion face to face or video appears to be required + for the moment. We will however focus on resolving or at least + discussing one github issue per telco. + + .. rubric:: Next meeting + :name: Telco_20160106_next-meeting + + `Telco 20160120 `__ diff --git a/source/teleconferences/Telco_20160120.rst b/source/teleconferences/Telco_20160120.rst new file mode 100644 index 00000000..522c75e0 --- /dev/null +++ b/source/teleconferences/Telco_20160120.rst @@ -0,0 +1,98 @@ +================= +Telco 20160120 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160120 + :name: telco-20160120 + :class: page-title + + .. rubric:: Date + :name: Telco_20160120_date + + Wednesday, 20th January, 16:30 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160120_agenda + + - Welcome and agree Agenda + - CSPAD progress + - cnxvalidate progress + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + - version numbers + - Issues in Armando s emails + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160120_minutes + + Present: EW, MK, AB (first half), Armando (second half), Ray + Osborn, HJB, TSR + + .. rubric:: Agenda + :name: Telco_20160120_agenda-1 + + revised for the meeting + + .. rubric:: CSPAD + :name: Telco_20160120_cspad + + Herbert and Aaron are making some progress. Current files use + absolute paths for external links, that could be discouraged. + + .. rubric:: cnxvalidate + :name: Telco_20160120_cnxvalidate + + Has 50 tests passing and is ready for testing by friendly users. + Tickets to produce a validating tool are to be closed in code and + definitions repositories and cnxvalidate has it s own issue + tracking. + + .. rubric:: issue of the day + :name: issue-of-the-day + + - resolved open question about NXtransformations + - EW accepted pull request for trigger additions to NXdetector + (plus related ticket) + - closed call for validation tool + + .. rubric:: version numbers for classes + :name: version-numbers-for-classes + + While there is version number on the class definition files this + is not used in the current infrastructure (and cannot easily be + used). This should be discussed at the next NIAC. + + There was also a discussion about a process to make simple + editorial changes to classes or backward compatible additions. + Consensus was that formal criteria enforced by a tool (like three + votes on the issue tracker) would not be a good solution. For the + moment we will do this by consensus in the telco and via pull + requests to be accepted by a second person. Also to be discussed + at the NIAC. + + .. rubric:: issues raised by Armando + :name: issues-raised-by-armando + + There are two problems: subentries and NXdata. + + NXdata appears to have some documentation problems which Ray will + confirm and raise a ticket for. + + Subentries are compatible with what Armando wants. Ray will send a + summary of the discussion to the mailing list separately for a + wider audience. + + .. rubric:: Next meeting + :name: Telco_20160120_next-meeting + + Eugen did not like Wednesdays: `Telco + 20160202 `__ diff --git a/source/teleconferences/Telco_20160202.rst b/source/teleconferences/Telco_20160202.rst new file mode 100644 index 00000000..3497ea22 --- /dev/null +++ b/source/teleconferences/Telco_20160202.rst @@ -0,0 +1,108 @@ +================= +Telco 20160202 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160202 + :name: telco-20160202 + :class: page-title + + .. rubric:: Date + :name: Telco_20160202_date + + Tuesday, 2nd February, 16:30 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160202_agenda + + - Welcome and agree Agenda + - versioning classes and application definitions (per request + from Andreas) + - http://nexusformat.org main landing page + - sample container proposal - DLS + - recording scan intent proposal - DLS + - CXI update (Mark B) this time with better microphone and legal + advice + - cnxvalidate testing + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160202_minutes + + Present: AF, RO, MK, TSR, HJB, MB, AB, FA (first half hour) + + .. rubric:: Version in NeXus Definitions and Classes + :name: version-in-nexus-definitions-and-classes + + There is currently no technical infrastructure in place to make + version work in a way software developers would expect. For + example git does not allow easy access to a version of a file that + contains a particular version string. There are various ways to + achieve this and people will think about this. + + In any case having a Changelog document or section on top of each + file would be a useful start in the right direction. + + More thoughts and discussions needed. + + .. rubric:: Main Web Landing Page + :name: main-web-landing-page + + The current content focusses on installation and documentation of + the API, which is not the main thing we offer (any more). This + could be changed easily. + + There is a potential longer list of things to address and we can + generate and discuss a list of desirable changes. + + The possibility of using Wordpress was brought up, but it was felt + that as a tool to serve a single page it would be a too heavy + handled solution. Another possibility was to use Sphinx with a + nice template and Ray and Pete will see if they want to make a + suggestion. + + Otherwise some CSS or other tools could be used to make this page + look nicer. + + .. rubric:: sample contain proposal + :name: sample-contain-proposal + + DLS have made some edits to allow for more flexible handling + sample containers in NXsample. ESS have made some changes to + NXsample that sit in a branch to address sample components and + atom sites (analogue to CIF) as well as fixing some + crystallographic features. HJB suggested to implement both + orthogonal and fractional atom sites. Changes at least to the + documentation will be required to correct the description of + orientation matrices vs UB matrices. + + .. rubric:: recording of scan intend + :name: recording-of-scan-intend + + DLS think they might be able to address their use case with the + \_set demand values. Probably no change or addition needed. + + .. rubric:: CXI + :name: cxi + + After some licensing problems DLS are talking to the community and + they appear happy to make the small changes required to make the + current CXI format fully NeXus compliant. Further updates in due + course, but no problems in sight. + + .. rubric:: cnxvalidate + :name: Telco_20160202_cnxvalidate + + No testers yet. Mark K is keen on feedback or bug reports. + + .. rubric:: Next meeting + :name: Telco_20160202_next-meeting + + `Telco 20160224 `__ diff --git a/source/teleconferences/Telco_20160224.rst b/source/teleconferences/Telco_20160224.rst new file mode 100644 index 00000000..6c96e29a --- /dev/null +++ b/source/teleconferences/Telco_20160224.rst @@ -0,0 +1,80 @@ +================= +Telco 20160224 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160224 + :name: telco-20160224 + :class: page-title + + .. rubric:: Date + :name: Telco_20160224_date + + Wednesday, 24th February, 16:30 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160224_agenda + + - Welcome and agree Agenda + - ECM30 workshop + http://ecm30.ecanews.org/satellitemeetings/high-data-rate-mx-satellite-meeting.html + - http://nexusformat.org main landing page update + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + - github branches - prune stale ones + - definitions PR: + https://github.com/nexusformat/definitions/pull/448 (update + app-defs and con-defs for new + default/default/signal/axes/AXISNAME_indices) + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160224_minutes + + Present: RO, HJB, AB, TSR, PJ + + .. rubric:: ECM 30 Workshop + :name: ecm-30-workshop + + MK can go, participants need to email HJB for seats + + .. rubric:: Landing Page + :name: Telco_20160224_landing-page + + Discussions took place, more progress expected next time + + .. rubric:: Github issues + :name: Telco_20160224_github-issues + + .. rubric:: 448 (PR) + :name: 448-pr + + `Changes `__ + to application definitions require individual approval. This will + not be merged as a whole, but is a useful reference for future + updates to these definitions. + + .. rubric:: 443 + :name: 443 + + Is a dramatic improvement to the manual and should be merged to + master as is so more eyes can provide feedback. + + .. rubric:: AOB + :name: Telco_20160224_aob + + Clarified that NXdata is currently required for a valid NeXus + file. There was 50:50 general agreement whether that this is + necessary. + + .. rubric:: Next telco + :name: Telco_20160224_next-telco + + `Telco 20160315 `__ diff --git a/source/teleconferences/Telco_20160315.rst b/source/teleconferences/Telco_20160315.rst new file mode 100644 index 00000000..bfdec8ec --- /dev/null +++ b/source/teleconferences/Telco_20160315.rst @@ -0,0 +1,89 @@ +================= +Telco 20160315 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160315 + :name: telco-20160315 + :class: page-title + + .. rubric:: Date + :name: Telco_20160315_date + + Wednesday, 15th March, 16:30 Central European Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160315_agenda + + - Welcome and agree Agenda + - http://nexusformat.org main landing page update + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + - github branches - prune stale ones + - Dectris Eiger JSON format + - cnxvalidate testing + - NAPI release and download webpages (including definitions + kits), Debian packages + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160315_minutes + + Present: AB, PJ, MK, HJB, TSR, EW + + .. rubric:: Main Landing Page + :name: main-landing-page + + RO is preparing something, no update today + + .. rubric:: Github Issues + :name: Telco_20160315_github-issues + + Closed a few that on short inspection didn t require any more + more. + + Recent work on updating copyright notices was welcome + + Stale Branches: Identified some candidates for deletion and some + that have valuable commits. + + .. rubric:: Eiger JSON Streaming Format + :name: eiger-json-streaming-format + + Eiger has three outputs: NeXus/HDF5, Monitor and Streaming + (zeroMQ) + + For the streaming the detector uses some JSON for metadata (plus + binary blob). The JSON string labels are short without hierarchy. + + After a discussion: There is nothing we can do to help their + broken mapping. JSON could be fixed easily, but maybe for their + needs that is good enough as well. Will pick up the discussion if + there is input or a proposal from Dectris or another party + interested to engage. + + .. rubric:: cnxvalidate + :name: Telco_20160315_cnxvalidate + + No testing reported - PJ was happy to hear about the tool though. + + .. rubric:: NAPI release + :name: napi-release + + All releases downloadable from d.n.o/kits should be on github. + Same is true for definitions. d.n.o/kits can go (redirect to + github). + + Debian: Eugen is planning to make progress some time this year. + + .. rubric:: Next meeting + :name: Telco_20160315_next-meeting + + `Telco 20160329 `__ diff --git a/source/teleconferences/Telco_20160329.rst b/source/teleconferences/Telco_20160329.rst new file mode 100644 index 00000000..d3f4e314 --- /dev/null +++ b/source/teleconferences/Telco_20160329.rst @@ -0,0 +1,84 @@ +================= +Telco 20160329 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160329 + :name: telco-20160329 + :class: page-title + + .. rubric:: Date + :name: Telco_20160329_date + + Tuesday, 29th March, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160329_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + - Dectris Eiger JSON format - if participation from Dectris + - Metadata collection sites + http://www.dcc.ac.uk/resources/metadata-standards + http://rd-alliance.github.io/metadata-directory/ + - http://nexusformat.org main landing page update + - cnxvalidate testing + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160329_minutes + + Present: HJB, MK, TSR, EW, PJ, AF, AB + + .. rubric:: GIOTD (Github Issue of the Day) + :name: giotd-github-issue-of-the-day + + Triggered progress on + https://github.com/nexusformat/code/issues/414 which had been + dropped. + + .. rubric:: Dectris JSON + :name: Telco_20160329_dectris-json + + Thankfully Andreas joined can could be convinced to present the + system next time. + + .. rubric:: Metadata + :name: metadata + + Listing there seen as a good idea. Issue now created: + https://github.com/nexusformat/definitions/issues/461 + + .. rubric:: Landing Page + :name: Telco_20160329_landing-page + + Waiting for Ray who is currently busy travelling. + + .. rubric:: cnxvalidate + :name: Telco_20160329_cnxvalidate + + No further test reports so far. + + .. rubric:: Next meeting + :name: Telco_20160329_next-meeting + + `Telco 20160412 `__ + + .. rubric:: AOB + :name: Telco_20160329_aob + + NIAC and Code Camp to be announced for October in Copenhagen. + + HJB still working on MX/NeXus publication. + + Recent addition of flow charts for data rules in the manual are + very well received. diff --git a/source/teleconferences/Telco_20160412.rst b/source/teleconferences/Telco_20160412.rst new file mode 100644 index 00000000..7a187534 --- /dev/null +++ b/source/teleconferences/Telco_20160412.rst @@ -0,0 +1,94 @@ +================= +Telco 20160412 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160412 + :name: telco-20160412 + :class: page-title + + .. rubric:: Date + :name: Telco_20160412_date + + Tuesday, 12th April, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160412_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + + - Eugen: I suggest we continue #414 in the NAPI repository - + need to decide how to deal with internal functions + + - reminder to update `Latest News `__ + - Dectris Eiger JSON format - Andreas to present + - http://nexusformat.org main landing page update + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160412_minutes + + Present: AB, EW, FA, HJB, MK, TSR, RO + + .. rubric:: Welcome + :name: Telco_20160412_welcome + + Hi. + + .. rubric:: Github Issue + :name: Telco_20160412_github-issue + + All agree those removed functions are not only for internal use + and must be available to external code. Eugen will take care of + that. + + .. rubric:: Lastest News + :name: lastest-news + + The page is a little under used and not even linked from the home + page. If use does not pick up, we may drop it. + + .. rubric:: Dectris JSON + :name: Telco_20160412_dectris-json + + No show from Andreas this time. We hope for the next meeting. + + .. rubric:: Landing Page + :name: Telco_20160412_landing-page + + No update. Ray will restart efforts. + + .. rubric:: Next Meeting + :name: Telco_20160412_next-meeting + + Will be `Telco 20160426 `__ + + .. rubric:: AOB + :name: Telco_20160412_aob + + .. rubric:: Remote Links + :name: remote-links + + Ray says there is interest in linking remote NeXus files to read + trees and not all of the data. It s not as simple as having a URL + scheme for links (which we do), there also needs to be an API. He + has that with remote python. HDF Group have something similar with + a RESTful interface + https://hdfgroup.org/wp/2015/04/hdf5-for-the-web-hdf-server/ That + may be a better bandwaogn to jump on. + + .. rubric:: HDFGroup + :name: hdfgroup + + They have lost of key members of staff. There is some concern + about the future. diff --git a/source/teleconferences/Telco_20160426.rst b/source/teleconferences/Telco_20160426.rst new file mode 100644 index 00000000..ca7360bc --- /dev/null +++ b/source/teleconferences/Telco_20160426.rst @@ -0,0 +1,93 @@ +================= +Telco 20160426 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160426 + :name: telco-20160426 + :class: page-title + + .. rubric:: Date + :name: Telco_20160426_date + + Tuesday, 26th April, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160426_agenda + + - Welcome and agree Agenda + - Dectris Eiger JSON format - Andreas to present + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + - http://nexusformat.org main landing page update + - list of competing standards + - update on research projects + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160426_minutes + + Present: AB, AF, EW, HJB, MK, MB, RO, TSR + + .. rubric:: Dectris Eiger Streaming Format + :name: dectris-eiger-streaming-format + + Andreas got up early in the US weat coast and fought admirably + against a poor network link in order to provide us with an + overview of the Eiger image streaming format. Information can be + found here: https://www.dectris.com/eiger.html This all looks good + and allows good integration of a detector into local + infrastructure. The main worry was that people could write the + flat format to file and call this NeXus light . That will be + addressed in the documentation. + + .. rubric:: Github Issues + :name: Telco_20160426_github-issues + + - NXroot: https://github.com/nexusformat/definitions/issues/466 + simple to fix, assigned + - Missing symbols: https://github.com/nexusformat/code/issues/414 + still not understood, but reverted to a state that should have + been working, awaiting tests + - variable length strings: + https://github.com/nexusformat/code/issues/329 is an important + issue, but ugly to implement, hence not many volunteers, + assigned to Mark K thankfully. + + .. rubric:: The New Landing Page Project (TNLPP) + :name: the-new-landing-page-project-tnlpp + + Some progress, but no demoable prototype. Ray will update at the + Telco after the next + + .. rubric:: Competing standard + :name: competing-standard + + Compiled a rough list of imgCIF, CXI, Data Exchange, TIFF, EDF, + plus things that are worse and more loosely defined. + + This was to list them in a overview slide in a presentation on + NeXus. + + .. rubric:: Research Projects + :name: research-projects + + Dropped due to lack of time. Will attempt next time. + + .. rubric:: Next Meeting + :name: Telco_20160426_next-meeting + + Is `Telco 20160512 `__ + + .. rubric:: AOB + :name: Telco_20160426_aob + + None. (Out of time.) diff --git a/source/teleconferences/Telco_20160510.rst b/source/teleconferences/Telco_20160510.rst new file mode 100644 index 00000000..a38944a8 --- /dev/null +++ b/source/teleconferences/Telco_20160510.rst @@ -0,0 +1,88 @@ +================= +Telco 20160510 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160510 + :name: telco-20160510 + :class: page-title + + .. rubric:: Date + :name: Telco_20160510_date + + Tuesday, 10th May, 16:30 Central European Summer Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160510_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now), otherwise we pick a random one + - variable length strings + - hdf 1.10 support - SWMR + - update on research projects + - items for NIAC + - Next meeting + - AOB + + - Minor NXData Change proposal. (Mark B) + https://manual.nexusformat.org/classes/base_classes/NXdata.html + + .. rubric:: Minutes + :name: Telco_20160510_minutes + + Present: AF, MB, EW, MK, TSR, HJB, FAA, AB + + .. rubric:: Github Issues + :name: Telco_20160510_github-issues + + Quite a list that we went through. Selection of activity below. + + Missing obscure build features should be an option, not the + default: #420 and #425 + + Support for HDF5 1.10 should be simple to add and we ll make this + happen shortly. They API flag was even used before, but may have + been dropped. All could just work out of the box. (#421) + + #. 329 to be merged. + + #. 364 assigned. + + .. rubric:: Items for NIAC + :name: Telco_20160510_items-for-niac + + Looked at https://github.com/nexusformat/definitions/labels/NIAC + + The idea is to prepare some topics in advance to make real + progress. + + While writing the minutes an Github issue repo has been created + for the upcoming NIAC discussions, primed with the results of our + collection of topics: https://github.com/nexusformat/NIAC/issues + To be reviewed. + + .. rubric:: Change to NXdata documentation + :name: change-to-nxdata-documentation + + Apparently it has become practise by at least certain developers + at a certain facility to just dump all data into NXdata. This is + clearly not good practise, because the extra dataset are confusing + and serve no purpose there. However the wording to prevent this is + tricky to get right. Adding useful data should still be possible + in order to be flexible and able to develop the standard. NXdata + is no different from any other place in the file in that respect. + + A general call for tidiness might be the right thing. We ll work + on a suggestion for the manual. + + .. rubric:: Next meeting + :name: Telco_20160510_next-meeting + + `Telco 20160531 `__ diff --git a/source/teleconferences/Telco_20160531.rst b/source/teleconferences/Telco_20160531.rst new file mode 100644 index 00000000..f1ef20d9 --- /dev/null +++ b/source/teleconferences/Telco_20160531.rst @@ -0,0 +1,142 @@ +================= +Telco 201606531 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160531 + :name: telco-20160531 + :class: page-title + + .. rubric:: Date + :name: Telco_20160531_date + + Tuesday, 31st May, 16:30 Central European Summer Time (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160531_agenda + + - Welcome and agree Agenda + - registering for NIAC and potential hotel shortage + - github issue of the day - suggestions welcome (there is a + github label now) + + - "definitions " + - `#387 `__- + proposition for version number of NeXus definitions + - "code " + - + + #. 329 - can we remove the issue branch from the repository + + - + + #. 419 - still waiting on a response from Stuart where to + install the header files + + - + + #. 425 - done + + - + + #. 426 - Maybe Tobias can have a look at it + + - + + #. 420/421 - currently working on it (this work should be + continued by the original author - the code is a total + mess) + + - release NAPI/tools with a fix for + https://github.com/nexusformat/code/issues/414 - what else + needs to go in + - review and discuss accepting **NXcontainer** pull request: + https://github.com/nexusformat/definitions/pull/472 + - Intent to present **NXcanSAS** for ratification as application + definition by end of June + - items for NIAC + - CXI nexus integration question about virutal dataset + - Is a new graph of the base class hierarchy useful Used to be + in the manual. + + - see: http://punx.readthedocs.io/en/latest/analyze.html + - `result of + discussion `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160531_minutes + + Present: HJB, MB, PJ, MK, EW, TSR, AB, ORNL (Mathieu and Steven) + + .. rubric:: Welcome + :name: Telco_20160531_welcome + + Especially the ORNL! + + .. rubric:: Github Issues + :name: Telco_20160531_github-issues + + - definitions #387 - consensus is that this may solve one problem + well, but certainly does not address all aspects of versioning. + There was debate whether versioning the definitions as a whole + was actually required. We encourage people to look into this to + have an informed discussion at the NIAC and code camp. + - code #329 - branch can go + - code #419 header files will be added + - code #426 TSR s problem, but adding an API function to expose + information about the backend may be required + - code #421 assigned to different developer + + .. rubric:: NAPI release update + :name: napi-release-update + + Could be done from master this week with the limited amount of + changes that went in so far. The release with support for HDF 1.10 + may be NAPI 4.5 anyway, due to the high number of changes. + + .. rubric:: NXcontainer + :name: Telco_20160531_nxcontainer + + To be merged. There is a low bar for accepting contributed + definitions. + + MB mentions that the use of NXshape in NXontainer may require + revision. That is to be evaluated and presented at NIAC. + + .. rubric:: Items for NIAC + :name: Telco_20160531_items-for-niac + + There is a repo for NIAC items. Please add thing that will need in + depth discussions early so we can be prepared. We may assign items + to people for preparation in later telcos. + + .. rubric:: CXI Compatibility + :name: cxi-compatibility + + CXI uses a n by 3 array where NeXus is more flexible and allows + multiple 1D arrays of length n. To be compatible with both + standards for a smooth transition having the data both ways may a + way. Doing that using HDF virtual dataset would save storing the + data twice. As far as NXDL is concerned that data just needs to be + provided twice, virtual dataset is transparent to our abstraction. + + .. rubric:: Class diagram + :name: class-diagram + + Very informative, might be too scary for newcomers. But we will + try a nicer layout. It is a useful tool for us in any case. Could + be in an advance section of the manual. + + .. rubric:: Next Meeting + :name: Telco_20160531_next-meeting + + `Telco 20160614 `__ diff --git a/source/teleconferences/Telco_20160614.rst b/source/teleconferences/Telco_20160614.rst new file mode 100644 index 00000000..0912a200 --- /dev/null +++ b/source/teleconferences/Telco_20160614.rst @@ -0,0 +1,94 @@ +================= +Telco 20160614 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160614 + :name: telco-20160614 + :class: page-title + + .. rubric:: Date + :name: Telco_20160614_date + + Tuesday, 14th June, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160614_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now) + + - `PR + #475 `__: + add + `NXlog `__ + as child group of + `NXentry `__ + - `issue + #476 `__: + add + `NXnote `__ + as child group of + `NXentry `__ + + - report from high data rate MX meeting at BNL + - registering for NIAC and potential hotel shortage + - items for NIAC + - Look at graph of the base class hierarchy - + http://punx.readthedocs.io/en/latest/source_code/analyze.html + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160614_minutes + + Present: AB, AF, EW, HJB, MK, PJ, TSR + + .. rubric:: Github Issue of the Day + :name: Telco_20160614_github-issue-of-the-day + + The two issues itemised above are resolved by the general + agreement on being permissive with base classes. That is while + base classes aim to cover most use cases, they don t list all + acceptable groups and fields. In order to be able to progress the + standard additional data is acceptable. Validation tools should + not treat such additional items not covered by a base class as + errors, but notes or warnings. Users should encouraged to find the + best defined location for their information, but we understand + there is not a defined place for all possible data. + + This may require clarification in the manual. + + Related to that: cnxvalidate currently does no validation for + files that do not (claim to) conform to an application definition. + Just checking the use of base classes is another important use + case. MK opened a ticket to investigate. + + Issue 330 (definitions): Comments left on the ticket. Partial + action required at most. Could be resolved at the next NIAC. + + .. rubric:: MXHDR meeting report + :name: mxhdr-meeting-report + + http://medsbio.org/meetings/BNL_May16_HDRMX_Meeting.html + + .. rubric:: PUNX + :name: punx + + PJ shared his latest python project: + http://punx.readthedocs.io/en/latest/contents.html + + It does similar things to cnxvalidate plus additional tooling. + + .. rubric:: Next Meeting + :name: Telco_20160614_next-meeting + + `Telco 20160628 `__ diff --git a/source/teleconferences/Telco_20160628.rst b/source/teleconferences/Telco_20160628.rst new file mode 100644 index 00000000..8b623c32 --- /dev/null +++ b/source/teleconferences/Telco_20160628.rst @@ -0,0 +1,77 @@ +================= +Telco 20160628 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160628 + :name: telco-20160628 + :class: page-title + + .. rubric:: Date + :name: Telco_20160628_date + + Tuesday, 28th June, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160628_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now) + + - `PR #478 (NXspecdata as contributed + definition) `__ + + - items for NIAC (or code camp) to prepare + - Next meeting + - AOB + + - look at `new + text `__ + in the manual + - phrase search the manual: `signal + data `__: + https://duckduckgo.com/q=%22signal+data%22+site%3Ahttp%3A%2F%2Fdownload.nexusformat.org%2Fdoc%2Fhtml&t=ffsb&ia=web + + .. rubric:: Minutes + :name: Telco_20160628_minutes + + Present: HJB, PJ, AB (first 10 min), TSR + + .. rubric:: NXspecdata + :name: nxspecdata + + The idea is that eventually SPEC may write NeXus. Most fields are + mappings of what core macros write out. The usage of the files + isn t quite in alignment with NeXus traditions, for example with + respect to the relationships between files and NXentries. And + there are other open comments, but contributed definitions can be + work in progress. Merged + + .. rubric:: NIAC items + :name: Telco_20160628_niac-items + + Recorded here: https://github.com/nexusformat/NIAC/issues + + .. rubric:: Next Telco + :name: Telco_20160628_next-telco + + `Telco 20160712 `__ + + .. rubric:: AOB + :name: Telco_20160628_aob + + Herbert mentions this web site on HDR MX http://hdrmx.medsbio.org/ + + PJ brings the next wording on the base classes to our attention. + We all agree, but find actually developing a base class has + implications on the technical infrastructure. Ticket in NIAC + opened. Also: The search on the manual pages is not as useful as + it could be. diff --git a/source/teleconferences/Telco_20160712.rst b/source/teleconferences/Telco_20160712.rst new file mode 100644 index 00000000..52341693 --- /dev/null +++ b/source/teleconferences/Telco_20160712.rst @@ -0,0 +1,72 @@ +================= +Telco 20160712 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160712 + :name: telco-20160712 + :class: page-title + + .. rubric:: Date + :name: Telco_20160712_date + + Tuesday, 12th July, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160712_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now) + - items for NIAC (or code camp) to prepare + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160712_minutes + + Present: FAA, HJB, MK, AB, EW, TSR + + .. rubric:: Github Issue + :name: Telco_20160712_github-issue + + Support for HDF5 1.10 in NAPI: + https://github.com/nexusformat/code/issues/421 + + If the test run that should be good enough to merge. Release 4.4.2 + can go out after that merge, without the changes to fix attribute + arrays on HDF4 and XML in C++. + + This adds support for reading SWMR files that are closed and VDS. + This is great. Further support for these advanced features in + writing data or reading while writing would require changes to the + API and or how the library is used. For example in SMWR you cannot + create new objects once in SWMR mode. Adding VDS support would be + even harder. Eugen s PNI library currently has support for + neither. + + So for the moment that will be the extend of 1.10 support we + offer, for NAPI in maintenance mode - unless there are convincing + cases presented by the community, + + .. rubric:: Preparations for NIAC and code camp + :name: preparations-for-niac-and-code-camp + + Not all able to attend the whole week. + + Will need to elect new officers and re-confirm NIAC members. + Letters of support need to be produced ahed of the meeting + (September) for this. + + .. rubric:: Next Meeting + :name: Telco_20160712_next-meeting + + Bit of a summer break, due to leave. So the next one will be + `Telco 20160809 `__ diff --git a/source/teleconferences/Telco_20160809.rst b/source/teleconferences/Telco_20160809.rst new file mode 100644 index 00000000..731dd393 --- /dev/null +++ b/source/teleconferences/Telco_20160809.rst @@ -0,0 +1,66 @@ +================= +Telco 20160809 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160809 + :name: telco-20160809 + :class: page-title + + .. rubric:: Date + :name: Telco_20160809_date + + Tuesday, 9th August, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160809_agenda + + - Welcome and agree Agenda + - github issue of the day - suggestions welcome (there is a + github label now) + - changing the dims type in the NAPI from int to hsize_t or + uint64_t + - items for NIAC (or code camp) to prepare + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160809_minutes + + Present: EW, MK, AB, TSR, HJB (last half) + + .. rubric:: Github + :name: Telco_20160809_github + + C++ API broken for non-HDF5 - TSR hopefully has time to address + that soon + + .. rubric:: dimensions data type + :name: dimensions-data-type + + All API calls consuming data dimensions have a 64 bit version + already (ex: nxputslab64). Except possibly the ones dealing with + attribute arrays. No action required. + + .. rubric:: NIAC + :name: Telco_20160809_niac + + Changes made to the tickets: + https://github.com/nexusformat/NIAC/issues + + .. rubric:: Next Meeting + :name: Telco_20160809_next-meeting + + `Telco 20160824 `__ + + .. rubric:: AOB + :name: Telco_20160809_aob + + None diff --git a/source/teleconferences/Telco_20160824.rst b/source/teleconferences/Telco_20160824.rst new file mode 100644 index 00000000..ba012ee3 --- /dev/null +++ b/source/teleconferences/Telco_20160824.rst @@ -0,0 +1,79 @@ +================= +Telco 20160824 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160824 + :name: telco-20160824 + :class: page-title + + .. rubric:: Date + :name: Telco_20160824_date + + Wednesday, 24th August, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160824_agenda + + - Welcome and agree Agenda (Tobias may be a few minutes late ) + - github issue of the day - suggestions welcome (there is a + github label now) + - further items for NIAC (or code camp) to prepare + - THG involvment in Code Camp and NIAC + - NAPI update + - web site redesign + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160824_minutes + + Present: EW, HJB, TSR, MK, FAA, AB + + .. rubric:: Github and NAPI update + :name: Telco_20160824_github-and-napi-update + + Nothing flagged. The longer running problem with the C++ API for + the legacy backends is (mostly) resolved and Mantid would like an + update release. Eugen will attempt to schedule that for next week, + + .. rubric:: NIAC Meeting Preparations + :name: Telco_20160824_niac-meeting-preparations + + Mark has written a draft and welcomes feedback. It s in the ticket + for now, because Tobias forgot to give anyone write access to the + NIAC repository. (Now fixed.) + + .. rubric:: THG + :name: thg + + THG has been in contact and we re asking them to provide us an + update on the current plans of THG at the upcoming code camp. + Other topics are OpneMP support, filter repositories and status. + + .. rubric:: web site + :name: web-site + + No Ray, no update. + + .. rubric:: AOB + :name: Telco_20160824_aob + + Meeting in Basel is on the 2nd at 9:00 in room 102. HJB is in + charge of the sandwich supply. + + RDA: There was a sort of survey by THG send round to RDA people on + the use of hdf5 in the wild . Forwarded to the committee mailing + list. + + .. rubric:: Next Meeting + :name: Telco_20160824_next-meeting + + `Telco 20160907 `__ diff --git a/source/teleconferences/Telco_20160907.rst b/source/teleconferences/Telco_20160907.rst new file mode 100644 index 00000000..5f25282b --- /dev/null +++ b/source/teleconferences/Telco_20160907.rst @@ -0,0 +1,104 @@ +================= +Telco 20160907 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160907 + :name: telco-20160907 + :class: page-title + + .. rubric:: Date + :name: Telco_20160907_date + + Wednesday, 7th September, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160907_agenda + + - Welcome and agree Agenda (Tobias may be a few minutes late ) + - github issue of the day - suggestions welcome (there is a + github label now) + - further items for NIAC (or code camp) to prepare + - NAPI update + - web site redesign + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20160907_minutes + + Present: RO, HJB, EW, MK, TSR + + .. rubric:: Welcome + :name: Telco_20160907_welcome + + Tobias was indeed late as the browser wouldn t connect. + + .. rubric:: Github + :name: Telco_20160907_github + + No flagged item. Deferred detailed ticket work to upcoming code + camp. + + .. rubric:: NIAC and Code Camp Agenda + :name: Telco_20160907_niac-and-code-camp-agenda + + AB may have an issue to bring up with NXprocess. Could use some + preparation. Will discuss more detailed proceeding in the next + Telco. + + .. rubric:: NAPI update + :name: napi-update + + Didn t happen as planned. EW put it on the list for tomorrow. + + .. rubric:: Website Update + :name: website-update + + No progress. + + .. rubric:: AOB + :name: Telco_20160907_aob + + .. rubric:: Report from Basel + :name: report-from-basel + + Dectris and their users have reaffirmed their commitment to NXmx. + All looks promising. A recently published article by Dectris + mentions storing data in some BioHDF format. That appears to be + some editorial mistake. We ve been promised some more information + + .. rubric:: HDF Group + :name: hdf-group + + No reply from the HDF group on participation in the code camp or + NIAC. + + .. rubric:: NeXus remote object servers + :name: Telco_20160907_nexus-remote-object-servers + + Ray presented the concepts of his successful project to serve a + sliceable NeXus file across the network. Useful in cases where you + don t want or need all the data locally. We discussed the relative + merits of doing that at the NeXus level or in plain HDF5 and also + how relevant the use case is to all science areas. There is also + the competing idea that the data stays remote and the algorithm or + visualisation is sent to the place holding the data. A further + idea is to have persistent global identifiers to the data(sets), + similar to external links. Across the network and curated like + DOIs. We can discuss how much we as NeXus want to be part of + defining such an infrastructure. Possibly at the NIAC or code + camp. + + .. rubric:: Next meeting + :name: Telco_20160907_next-meeting + + Last meeting before the code camp: `Telco + 20160928 `__ diff --git a/source/teleconferences/Telco_20160928.rst b/source/teleconferences/Telco_20160928.rst new file mode 100644 index 00000000..2df336ab --- /dev/null +++ b/source/teleconferences/Telco_20160928.rst @@ -0,0 +1,34 @@ +================= +Telco 20160928 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20160928 + :name: telco-20160928 + :class: page-title + + .. rubric:: Date + :name: Telco_20160928_date + + Wednesday, 28th September, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20160928_agenda + + - Welcome and agree Agenda + - github issue of the day + - Discuss topics for upcoming code camp and NIAC meeting + - NAPI update + - web site redesign + - Next meeting (after NIAC and NOBUGS) + - AOB + + .. rubric:: Minutes + :name: Telco_20160928_minutes diff --git a/source/teleconferences/Telco_20161123.rst b/source/teleconferences/Telco_20161123.rst new file mode 100644 index 00000000..c47a0d1f --- /dev/null +++ b/source/teleconferences/Telco_20161123.rst @@ -0,0 +1,93 @@ +================= +Telco 20161123 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20161123 + :name: telco-20161123 + :class: page-title + + .. rubric:: Date + :name: Telco_20161123_date + + Wednesday, 23rd November, 16:30 Brussels Time + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20161123_agenda + + - Welcome and agree Agenda + - Discuss topics from code camp and NIAC meeting, check minutes + + - Here are the `minutes `__ of NIAC 2016 + + - github issue of the day + + - `Pull Request: NXdata is now optional, as of + NIAC2016 `__ + - `add NXDL_contact + attribute `__ + - `remove unused + attributes `__ + - `make distinction between required and optional content in + manual `__ + + - pixel as NX_length + - web site redesign - future of wiki + - Can we rename the ``uncertainties`` attribute (such as in + NXdata) to be the singular ``uncertainty`` + - AOB + + .. rubric:: Minutes + :name: Telco_20161123_minutes + + Present: MK, HJB, EW, AF, AB, PJ, RO + + .. rubric:: Minutes from NIAC + :name: Telco_20161123_minutes-from-niac + + Generally accepted with minor corrections. All action items should + be understood and covered in tickets or already done. + + Versioning is ongoing with good progress. A lot of the workflow + will smooth out overtime and become clearer with use, we hope. + + .. rubric:: Github issues + :name: Telco_20161123_github-issues + + Pull request accepted with minor changes. + + NXDL contact attribute idea was rejected as detracting from proper + forums like mailing lists and NIAC. + + Unused attributes: ref and refindex seem to be unused indeed. They + should be deprecated now. (and exercise in versioning as well.) + + .. rubric:: pixels as length + :name: pixels-as-length + + Not a great idea, but follows current practice at experiments. + Should be accepted. Will figure out a way to allow that and what + the proper unit name for pixels is. + + .. rubric:: Postponed Items + :name: postponed-items + + We ran out of time on: + + - web site redesign - future of wiki + - Can we rename the ``uncertainties`` attribute (such as in + NXdata) to be the singular ``uncertainty`` + + They have been put on the next meetings agenda with some other + items that came up. + + .. rubric:: Next Meeting + :name: Telco_20161123_next-meeting + + `Telco 20161213 `__ diff --git a/source/teleconferences/Telco_20161213.rst b/source/teleconferences/Telco_20161213.rst new file mode 100644 index 00000000..71fc95f6 --- /dev/null +++ b/source/teleconferences/Telco_20161213.rst @@ -0,0 +1,127 @@ +================= +Telco 20161213 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20161213 + :name: telco-20161213 + :class: page-title + + .. rubric:: Date + :name: Telco_20161213_date + + Tuesday, 13th December, 16:30 Brussels Time + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20161213_agenda + + - Welcome and agree Agenda + - github issue of the day + + - `#433: can this be + closed `__ + - `#425: can close when 433 + closes `__ + - `#511: pixel as NX_length + update `__ + - `#486: web site + redesign `__ + + - Future of wiki + - The ```uncertainties`` + attribute `__ + (such as in + `NXdata `__ + and + `NXcanSAS `__): + + - Can we rename to be the singular ``uncertainty`` + - Can we add this to ``fieldType`` in ``nxdl.xsd`` as a + `common attribute of any + field `__ + (such as + ```units`` `__) + - What to do about `this issue + (#370) `__ + + - update on features or interfaces + - note we now have `unit testing of NXDL + files `__ + and + `travis-ci `__ + on all pushes + - AOB + + .. rubric:: Minutes + :name: Telco_20161213_minutes + + Present: AB (first half), HJB, MK, PJ, RO, EW, TSR + + .. rubric:: Github + :name: Telco_20161213_github + + .. rubric:: 433 + :name: 433 + + New Ticket for the remaining work on NXatom_site opened, this one + closed. + + .. rubric:: 425 + :name: 425 + + Done, closed. + + .. rubric:: 511 + :name: Telco_20161213_511 + + Decided for px as unit . Should be allowed for detectors only. + Herbert makes a branch to test this out. + + .. rubric:: 486 + :name: Telco_20161213_486 + + There were some problems getting the test site to compile. Those + are resolved. By the next meeting Pete and Ray think they can have + a test site up to demonstrate the plans for the new home page. + + .. rubric:: Wiki + :name: wiki + + If we move having the main website on new foundations, dropping + the wiki has consensus. The main content this is kept up to date + there is the NIAC related information and these minutes. No + collaborative editing by community members is happening. Even for + that the workflow would be sensible through github pull requests. + Maintaining pages on a low traffic wiki is more difficult than + working with a repo. + + .. rubric:: uncertainties + :name: Telco_20161213_uncertainties + + According to the decision by the NIAC this is allowed everywhere. + A plural vs singular change was no longer requested. canSAS works + on a resolution field and will come up with a full example that + would inform the documentation of this feature. + + .. rubric:: interfaces vs features + :name: interfaces-vs-features + + Progress is made, nothing to show at the moment. + + .. rubric:: Next meeting + :name: Telco_20161213_next-meeting + + `Telco 20170117 `__ + + .. rubric:: AOB + :name: Telco_20161213_aob + + Travis now texts the nxdl commits to the definitions repo (broken + shortly after the meeting, by work on ticket 511, expect + operations to resume shortly). diff --git a/source/teleconferences/Telco_20170117.rst b/source/teleconferences/Telco_20170117.rst new file mode 100644 index 00000000..521a92f2 --- /dev/null +++ b/source/teleconferences/Telco_20170117.rst @@ -0,0 +1,60 @@ +================= +Telco 20170117 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170117 + :name: telco-20170117 + :class: page-title + + .. rubric:: Date + :name: Telco_20170117_date + + Tuesday, 17th January, 16:30 Brussels Time + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170117_agenda + + - Welcome and agree Agenda + - `PR + #527 `__ + clarify if item (group, field, or attribute) is required or + optional + (`examples `__) + - `PR + #529 `__ + update copyright dates to 2017 + - ``uncertainties`` example ready + + - `two + examples `__: + Diamond and APS both have NXcanSAS files using + ``@uncertainties`` + + - AOB + + .. rubric:: Minutes + :name: Telco_20170117_minutes + + Present: TSR, RO, MK, PJ + + Pull requests accepted and closed. + + Ticket opened for clarifying status of anonymous groups (without + a specific required name) in the documentation. That is currently + rendered as (name) without the qoutes, which is not obvious. + + Examples for uncertainties: Well received, except for the units + 1/A for 1/Angstroms, which will require further discussions. We + will need to update the documentation and NXDL to formally allow + uncertainties. + + AOB: Ray suggests we are present at the RDA meeting and + remote-data-pre-meeting in Barcelona in April. He will provide + links via mail. LInks to RDA set on the agenda for next time. diff --git a/source/teleconferences/Telco_20170130.rst b/source/teleconferences/Telco_20170130.rst new file mode 100644 index 00000000..49ec392a --- /dev/null +++ b/source/teleconferences/Telco_20170130.rst @@ -0,0 +1,102 @@ +================= +Telco 20170130 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170130 + :name: telco-20170130 + :class: page-title + + .. rubric:: Date + :name: Telco_20170130_date + + Monday, 30th January, 16:30 Brussels Time + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170130_agenda + + - Welcome and agree Agenda + - github issue of the day + - `#511: pixel as NX_length + update `__ + look at work in branch + https://github.com/nexusformat/definitions/compare/NXmx_multimodule_and_dectris_changes + - `#486: web site + redesign `__ + demo planned - wiki replacement + - `#177: delete NXcharacterization base + class `__ + as suggested on Jul 28, 2015 + - update on features or interfaces + - HDRMX Lund meeting + - links to RDA + - Membership vote + - AOB + + .. rubric:: Minutes + :name: Telco_20170130_minutes + + Present: EW, AB, HJB, MB, MK, TSR + + .. rubric:: 511 + :name: Telco_20170130_511 + + Aaron will have a closer look to make sure this is sane. + + .. rubric:: 486 + :name: Telco_20170130_486 + + No show by Ray. But we agreed moving the wiki out of mediawiki + into jekylls hands. Tobias will work with Freddie to extract the + content. + + .. rubric:: 177 + :name: 177 + + Tobias accidentally deleted NXcharacterization in a failed attempt + to generate a pull request. No objections. + + .. rubric:: features and interfaces + :name: features-and-interfaces + + Deferred + + .. rubric:: HDRMX Lund meeting + :name: hdrmx-lund-meeting + + Herbert invited all interested parties to attend. Mark K suggested + it is a fun meeting from the Basel experience. Tobias will attend. + + .. rubric:: RDA + :name: rda + + Someone from Diamond will attend the Alba satellite meeting. Mark + K supports the idea a few people from the NeXus community should + go. He'll look into that, as will Tobias. + + .. rubric:: Voting + :name: Telco_20170130_voting + + Some of the recent online votes carried a clear majority of the + votes cast, but have failed to reach a quorum of votes from the + eligible members. The constitution does not see that as a problem + explicitly, but it would be nice if that was formally permitted. + We ll bring that up at the next NIAC. + + .. rubric:: Next meeting + :name: Telco_20170130_next-meeting + + = `Telco 20170220 `__ + + .. rubric:: AOB + :name: Telco_20170130_aob + + Mark B has an example file for the NXevent_data for interested + people to look at: + https://hangouts.google.com/hangouts/redirectdest=https%3A%2F%2Fdrive.google.com%2Fopen%3Fid%3D0B8BtsLXcNIF3clBPbFlZNVpKTjg diff --git a/source/teleconferences/Telco_20170220.rst b/source/teleconferences/Telco_20170220.rst new file mode 100644 index 00000000..8c725a38 --- /dev/null +++ b/source/teleconferences/Telco_20170220.rst @@ -0,0 +1,94 @@ +================= +Telco 20170220 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170220 + :name: telco-20170220 + :class: page-title + + .. rubric:: Date + :name: Telco_20170220_date + + Monday, 20th February, 16:30 Brussels Time + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170220_agenda + + - Welcome and agree Agenda + - NeXus website + + - `#486: web site + redesign `__ + demo planned + - wiki replacement, see https://nexusformat.github.io/wiki/ - + could that work for the website as well + + - `#511: pixel as NX_length + update `__ + look at work in branch + https://github.com/nexusformat/definitions/compare/NXmx_multimodule_and_dectris_changes + - HDRMX Lund meeting + - RDA ALBA satellite + - AOB + + .. rubric:: Minutes + :name: Telco_20170220_minutes + + Present: MK, MB, PJ, HJB, TSR, FAA, AB, RO + + .. rubric:: Website + :name: website + + The Github Pages redesign was well received. Action on FAA and TSR + to liaise on making this the replacement of the current wiki *and* + main website. + + .. rubric:: NXMX update + :name: Telco_20170220_nxmx-update + + EW sent in his approval. TSR would prefer not to change non-NXMX + application definitions, as they have not asked for a change. This + will be dropped. MK had some issues with the new wording to be + clearer about what kind of length are allowed. He will edit this + and MB will merge the pull request. + + .. rubric:: HDRMX meeting + :name: hdrmx-meeting + + `HDRMX event in + Lund `__ - Herbert + co-hosts, let him know if you want to join. + + .. rubric:: RDA and similar events + :name: rda-and-similar-events + + Ray would like to see some NeXus participation at one of the + following events: + + - https://docs.google.com/document/d/1RDxpWLxzeOX1FknPHsu7ivnbPDAxOTSMOoCW7uPzG4c/edit#heading=h.5tid0eo8bky8 + - https://indico.cells.es/indico/event/97/overview + + People will give it some good thought. + + .. rubric:: AOB + :name: Telco_20170220_aob + + - Unfortunately EW missed deadlines for inclusion of latest NAPI + et al into Debian. + - AB has some interest by FEL people to potentially join the + NIAC. They would be very welcome to join. + - MD may have some interest by an electron microscope vendor to + join discussions. This is also very welcome. For the moment DLS + can facilitate this. Partcipation in Telcos is open as well. + + .. rubric:: Next meeting + :name: Telco_20170220_next-meeting + + `Telco 20170308 `__ diff --git a/source/teleconferences/Telco_20170308.rst b/source/teleconferences/Telco_20170308.rst new file mode 100644 index 00000000..a67af451 --- /dev/null +++ b/source/teleconferences/Telco_20170308.rst @@ -0,0 +1,125 @@ +================= +Telco 20170308 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170308 + :name: telco-20170308 + :class: page-title + + .. rubric:: Date + :name: Telco_20170308_date + + Wednesday, 8th March, 16:30 Central European Summer Time + (Copenhagen) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170308_agenda + + - Welcome and agree Agenda + - wiki & website move + + - any outstanding problems + - return of user pages + + - Github NIAC repo & minutes in communication + - Questions below from Dectris (Andreas - Tobias edited for + markdown) in preparation of the `HDRMX + Meeting `__. For + convenience here are links to + `NXdetector `__ + and + `NXmx `__. + + - ``dead_time``, ``detector_readout_time`` and ``frame_time`` + are defined as ``NX_FLOAT``. ``count_time`` is defined as + ``NX_NUMBER``, all four with units=\ ``NX_TIME``. Shouldn"t + the parameters be of the same data type + - ``frame_time`` is described as + ``exposure_time + readout time``. To be consistent with the + other parameters, this should be + ``count_time + detector_readout_time``. + - ``sensor_material`` is described as "the name of this + converter material" for "radiation [..] not directly sensed + by the detector". Can this description be expanded to + include directly detected radiation + - Same for ``sensor_thickness``. + - ``flatfield_applied`` is currently called + ``flatfield_correction_applied``. This is arguably in better + agreement with ``angular_calibration_applied``. Can we keep + it + - Are the group names binding or only their NX classes For + example, EIGER calls the ``NXcollection`` group + ``detectorSpecific``, not ``collection``. Similarly, the + ``NXdetector_module`` group is planned to be called + ``module`` not ``detector_module``. + - What does the required parameter + ``/entry/instrument/detector/data[np,i,j]`` entail + - A parameter like ``detector_number`` that gives the serial + number should be made mandatory. Or it could be an attribute + to ``/entry/instrument/detector/description`` + + - LCLS HDF5 topics + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170308_minutes + + Present: MK, TSR, AB, AF, HJB, PJ + + .. rubric:: Website Move + :name: website-move + + No issues reported, no strong desire to keep user pages. They will + be removed and can be reinstated by pull requests from the + individuals if they so wish. + + .. rubric:: Triplicated Minutes + :name: triplicated-minutes + + Decision was to keep them in the website repo only. Remaining + copies will be deleted. + + .. rubric:: Dectris Items + :name: dectris-items + + - times will be changed to the general NX_NUMBER + - frame_time clarifcation with the field names actually used is + good. + - sensor material and thickness: The documentation is both + needless specific and vague. The suggestion was to speak of the + "active" material. + - flatfield renaming: We should check whether that has found + active use and only change if not. HDRMX meeting in Lund next + week will be used. + - group names in application definitions can be made nameless, as + in this case. Any name for a group of the right type is + acceptable + - data is a link to the data + - ``detector_number`` is already taken for an ``INT``. We propose + to define a new string type ``serial_number``. + + .. rubric:: LCLS HDF5 + :name: lcls-hdf5 + + Aaron had some questions to the use of the new and improved NXlog. + There was some discussion around the expected chronological order + in there. There was some agreement that sorting cannot always be + guaranteed, but no random ordering should be allowed. + + The also have the intention of storing data that could lend itself + to using ragged arrays. That is not something perceived to be + simple to get right. Aaron will prepare some example and email + that around for comments. + + .. rubric:: Next Meeting + :name: Telco_20170308_next-meeting + + `Telco 20170322 `__ diff --git a/source/teleconferences/Telco_20170322.rst b/source/teleconferences/Telco_20170322.rst new file mode 100644 index 00000000..059a0ed9 --- /dev/null +++ b/source/teleconferences/Telco_20170322.rst @@ -0,0 +1,65 @@ +================= +Telco 20170322 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170322 + :name: telco-20170322 + :class: page-title + + .. rubric:: Date + :name: Telco_20170322_date + + Wednesday, 22 March, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170322_agenda + + - Welcome and agree Agenda + - LCLS topics: event alignment and ragged data + - `definitions issue + 524 `__ + - `already resolved by merge of PR + 527 `__ + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170322_minutes + + Present: David A Schneider (LCLS), Aaron, Andreas, HJB, MK, TSR + (until 17:15), PJ + + .. rubric:: LCLS Topics + :name: lcls-topics + + This was an interesting and longer discussion about the use of + NeXus, HDF5 and its special features, and the design of a data + collection system. The current protype of the LCLS system uses + compound types and VLEN dataset. It relies on SWMR to communicate + progress of the experiment to data consumers. Since NeXus does not + use compound type and VLEN only for strings (and that is painful), + they anticipate some problems for efficiency and latency when + moving to an all-NeXus way of working. Message brokers were + brought into the discussion, that follow a more network-type + dataflow with lower latency than what can be achieved through a + filesystem. Apart from individual suggestions, like using + NXcollection when sticking to compound types for data that end + users are not interested in, no final conclusion was reached at + 17:15. + + .. rubric:: Github issue + :name: Telco_20170322_github-issue + + Was completed already, recorded here for reference. + + .. rubric:: Next Meeting + :name: Telco_20170322_next-meeting + + `Telco 20170405 `__ diff --git a/source/teleconferences/Telco_20170405.rst b/source/teleconferences/Telco_20170405.rst new file mode 100644 index 00000000..43e5df88 --- /dev/null +++ b/source/teleconferences/Telco_20170405.rst @@ -0,0 +1,81 @@ +================= +Telco 20170405 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170405 + :name: telco-20170405 + :class: page-title + + .. rubric:: Date + :name: Telco_20170405_date + + Wednesday, 5 April, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170405_agenda + + - Welcome and agree Agenda + - Cspad to NeXus: changes to NXdetector_module + - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) + - github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + + - Github `definitions repo stale + branches `__ + - Next meeting + + .. rubric:: Minutes + :name: Telco_20170405_minutes + + Present: AB, MK, HJB, PJ, TSR + + .. rubric:: NXdetector_module + :name: nxdetector_module + + Unfortunately NXdetector_mdoule is not consistent with NXdetector + etc in that it does not use depends_on directly, but as an + attribute to module_offset. That does not allow preserving all + axis names. The desire was to have something the reflects the + hierarchical nature of the CSPAD modules. At least TSR was + reluctant to change the existing NXdetector_module for a + non-functional improvement. + + The situation will be explored further and a proposal will be + created as a ticket, if needed. + + .. rubric:: PDB + :name: Telco_20170405_pdb + + All are in agreement that an NXPDB base class would we a good idea + and we discussed ways in which we would not have to manually + transcribe the definitions. HJB will bring in experts and raise a + Github ticket. + + .. rubric:: Github Issues + :name: Telco_20170405_github-issues + + All telco labelled issues in the definitions repo have been + discussed briefly and the ones that could not be resolved + immediately should all be very close to completion. + + .. rubric:: Stale Branches + :name: stale-branches + + We had 5. One became a pull request. One deletion. One is + recording potential future changes to application definitions. + Leaves two to look at at a later point. + + .. rubric:: Next Meeting + :name: Telco_20170405_next-meeting + + `Telco 20170426 `__ diff --git a/source/teleconferences/Telco_20170426.rst b/source/teleconferences/Telco_20170426.rst new file mode 100644 index 00000000..568e28b4 --- /dev/null +++ b/source/teleconferences/Telco_20170426.rst @@ -0,0 +1,81 @@ +================= +Telco 20170426 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170426 + :name: telco-20170426 + :class: page-title + + .. rubric:: Date + :name: Telco_20170426_date + + Wednesday, 26 April, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170426_agenda + + - Welcome and agree Agenda + - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) + - Cspad to NeXus: NXdetector_module + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170426_minutes + + Present: HJB, AB, MK, TSR + + .. rubric:: PDB + :name: Telco_20170426_pdb + + Herbert will discuss at the ACA meeting 26th May (and the IUCr + meeting in India). If there could be some idea of how we want to + implement that, that would be good. Assigned + https://github.com/nexusformat/definitions/issues/553 to PJ, + hoping he can have a look. + + .. rubric:: CSPAD + :name: Telco_20170426_cspad + + Some changes are required and at the moment some software error + prevents progress. Should have a proposal ready in three weeks for + the next meeting. Ideally we would have two example files. A + "minimal change" and a "beautiful" version, both with output of + cnxvalidate. For comparison we"d also look at Eiger files and runs + of cnxvalidate with edited NXDL. + + .. rubric:: Github issues + :name: Telco_20170426_github-issues + + https://github.com/nexusformat/definitions/issues/562 deferred. + + https://github.com/nexusformat/definitions/pull/558 approved, but + not yet merged. + + https://github.com/nexusformat/definitions/issues/559 assigned to + MK to add ub_matrix + + .. rubric:: AOB + :name: Telco_20170426_aob + + NXcontainer discussion in github: We wait for DLS to decide what + to do with their proposal. If they drop it, someone else might + want to propose that instead. + + .. rubric:: Next Meeting + :name: Telco_20170426_next-meeting + + `Telco 20170517 `__ diff --git a/source/teleconferences/Telco_20170517.rst b/source/teleconferences/Telco_20170517.rst new file mode 100644 index 00000000..74245a4e --- /dev/null +++ b/source/teleconferences/Telco_20170517.rst @@ -0,0 +1,76 @@ +================= +Telco 20170517 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170517 + :name: telco-20170517 + :class: page-title + + .. rubric:: Date + :name: Telco_20170517_date + + Wednesday, 17 May, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170517_agenda + + - Welcome and agree Agenda + - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX meeting) + - NXcontainer + - ub_matrix + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170517_minutes + + Present: AB, HJB, MK, Michael Wharmby, TSR + + Short meeting today. + + .. rubric:: PDB + :name: Telco_20170517_pdb + + ACA meeting is before the next meeting. Nothing has to be done + before. + + .. rubric:: NXcontainer + :name: Telco_20170517_nxcontainer + + Michael stated his intentions with the proposal and that was met + with encouragement and no objections. He will present a an example + file (or a set of those) to illustrate the idea at the next Telco. + + .. rubric:: ub_matrix + :name: ub_matrix + + All work done and committed. MK will check the mailing list knows. + + .. rubric:: AOB + :name: Telco_20170517_aob + + AB committed himself to preparing and updated version of + NXreflections incorporating the input from the fruitful + discussions we had at the NIAC meeting. + + MK reports his long standing problem with the Java NAPI came from + a missing close call and was made difficult to debug by the + Eclipse platform. See posts on the mailing list. + + .. rubric:: Next Meeting + :name: Telco_20170517_next-meeting + + `Telco 20170607 `__ diff --git a/source/teleconferences/Telco_20170607.rst b/source/teleconferences/Telco_20170607.rst new file mode 100644 index 00000000..94763c21 --- /dev/null +++ b/source/teleconferences/Telco_20170607.rst @@ -0,0 +1,89 @@ +================= +Telco 20170607 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170607 + :name: telco-20170607 + :class: page-title + + .. rubric:: Date + :name: Telco_20170607_date + + Wednesday, 7 June, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170607_agenda + + - Welcome and agree Agenda + - Github HDF5 filters repo + - Update on current projects + + - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX + meeting) + - NXreflections + - NXcontainer + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170607_minutes + + Present: Clemens Weninger, AB, EW, MW, TSR + + .. rubric:: Welcome + :name: Telco_20170607_welcome + + Clemens takes over from David Schneider at LCLS. We welcome him + very much. + + .. rubric:: HDF5 filter repo + :name: hdf5-filter-repo + + Most urgent problems: + + - Missing Readme (should detail purpose and origin of the code) + - LZ4 test failure + - Top level build instructions (CMake) + + .. rubric:: PDB + :name: Telco_20170607_pdb + + No HJB, no report + + .. rubric:: NXreflections + :name: Telco_20170607_nxreflections + + Nice pull request created by AB. Discussed some documentation + issues and technical improvement. Easy to get to a finished state + soon, except maybe for the flags. + + .. rubric:: NXcontainer + :name: Telco_20170607_nxcontainer + + MW created a pull request in exampledata with files to illustrate + the ideas, which have changed from the original proposal. We + didn"t have time to look at them in detail. Will discuss next + time. + + .. rubric:: Next Meeting + :name: Telco_20170607_next-meeting + + `Telco 20170628 `__ + + .. rubric:: AOB + :name: Telco_20170607_aob + + MW also has a pull request for NXstage, which is quite similar to + NXtransformations. There was potential need identified for + grouping certain instrument devices, but that may lead to slightly + arbitrary grouping, based on personal preference. Depending on + location, funciton, motion, etc. We"ll pick up the discussion next + time again. diff --git a/source/teleconferences/Telco_20170628.rst b/source/teleconferences/Telco_20170628.rst new file mode 100644 index 00000000..0090d7e8 --- /dev/null +++ b/source/teleconferences/Telco_20170628.rst @@ -0,0 +1,91 @@ +================= +Telco 20170628 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170628 + :name: telco-20170628 + :class: page-title + + .. rubric:: Date + :name: Telco_20170628_date + + Wednesday, 28 June, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170628_agenda + + - Welcome and agree Agenda + - Code Camp or similar activity in 2017 + - SWMR support (HDF5 1.10) - example files + - multiple samples in one NXenty + - NXslit update + - Github HDF5 filters repo + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170628_minutes + + Present: AB, PJ, TSR, MB, MK, EW + + .. rubric:: Code Camp + :name: Telco_20170628_code-camp + + PSI, DESY and DLS look into hosting somethign this year. + + NOBUGS 2018 will be in the US, so having it in Europe again would + be okay. + + .. rubric:: SWMR support + :name: swmr-support + + We want to encourage users to adopt HDF5 1.10 and hence using SWMR + files as examples is fine. But files need to identify themselves + as SWMR/HDF5-1.10 so users are not surprised by them not being + readable using legacy libraries. README information would be nice, + but the filename has a safer way of conveying that information. + + .. rubric:: Multiple Samples in one Measurement + :name: multiple-samples-in-one-measurement + + Both ESS and LCLS raise that as a use case. AB will provide an + example of how he would suggest to encode that. + + .. rubric:: NXslit + :name: Telco_20170628_nxslit + + After some discussion we agreed that having extra terms in the + base class is a good solution, because many people many want to + record information on individual blades. EW will make a proposal. + + .. rubric:: HDF5 filters + :name: hdf5-filters + + EW is making good progress on documenting the repo content and + simplifying the build system. More to be see next time. + + .. rubric:: Github Issue of the day + :name: Telco_20170628_github-issue-of-the-day + + DLS suggest moving the @target link attribute to the group level + in order to find the source location of data linked to NXdata in + an external HDF5 linking scenario. MB will produce an example + file. + + .. rubric:: Next Meeting + :name: Telco_20170628_next-meeting + + `Telco 20170711 `__ diff --git a/source/teleconferences/Telco_20170711.rst b/source/teleconferences/Telco_20170711.rst new file mode 100644 index 00000000..957e5a31 --- /dev/null +++ b/source/teleconferences/Telco_20170711.rst @@ -0,0 +1,129 @@ +================= +Telco 20170711 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170711 + :name: telco-20170711 + :class: page-title + + .. rubric:: Date + :name: Telco_20170711_date + + Tuesday, 11 July, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170711_agenda + + - Welcome and agree Agenda + - Code Camp or similar activity in 2017 + - Update on current projects + + - ready to `release v3.3 of NeXus + definitions `__ + - Adding PDB tags to NeXus for NXmx (as per Lund HDRMX + meeting) + - NXcontainer - look at example files in pull request to + examplefile repo + - identifying data source location in NXdata + - NXslit proposal + - Cspad to NeXus: NXdetector_module + - NXreflections - ragged arrays + - Github HDF5 filters repo + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170711_minutes + + Present: MB, MK, PJ, AB, TSR, EW, FA, HJB + + .. rubric:: Code Camp 2017 + :name: Telco_20170711_code-camp-2017 + + Target is last week of October, for about three days, hosted by + DLS. + + .. rubric:: Ongoing Projects + :name: ongoing-projects + + .. rubric:: Release 3.3 + :name: release-33 + + Looks like it is ready to go. There is an automated script that + generates release notes. Mid term they could move into the wiki + part of that repo space. + + Target date for the next release is January, or maybe earlier at + the Code Camp + + .. rubric:: PDB + :name: Telco_20170711_pdb + + All are in agreement that this is a good idea. HJB talks to + COMCIFS and COMDATA around the IUCr meeting in August. We can look + at the implementation at the code camp. + + .. rubric:: NXcontainer + :name: Telco_20170711_nxcontainer + + Nothing to report and on the back burner. DLS suggested dropping + from the agenda until some progress is made there. + + .. rubric:: Identifying data sources in NXdata + :name: identifying-data-sources-in-nxdata + + DLS have prepared and example and no one could come up with a + better proposal. They will put this to the test in practise now. + + .. rubric:: NXslit + :name: Telco_20170711_nxslit + + We clarified the preferences raised in emails and the ticket + system with the conclusion that "left" and "right" are + unnecessarily vague concepts possibly overloaded with local + conventions. Positive/negativ x/y direction is directly tied to + the NeXus coordinate systen and will be the choice for the new + proposal. + + .. rubric:: CSPAD + :name: Telco_20170711_cspad + + We did not discuss the CSPAD, but aligning timestamped data in + NXlogs written with different frequencies using the cue indices. + + AB would like to see some full example file. TSR may have one or + could create one for one of the next meetings. MB indicated the + same. Would be nice to compare. + + .. rubric:: Ragged arrays + :name: ragged-arrays + + They are more of an HDF5 problem than a NeXus one. There is no + simple efficient way to deal with them. Either you end up with + many unused chunks and lots of metadata or you need to flatten the + dimensions and have a run length index dataset. AB will + investigate relative merits with LCLS people. + + .. rubric:: HDF5 filters repo + :name: hdf5-filters-repo + + Eugen is making progress on simplifying the build system, which is + currently too complex to maintain. + + .. rubric:: Next Meeting + :name: Telco_20170711_next-meeting + + `Telco 20170725 `__ + + .. rubric:: AOB + :name: Telco_20170711_aob + + Dropped due to lack of time. diff --git a/source/teleconferences/Telco_20170725.rst b/source/teleconferences/Telco_20170725.rst new file mode 100644 index 00000000..b37c5282 --- /dev/null +++ b/source/teleconferences/Telco_20170725.rst @@ -0,0 +1,87 @@ +================= +Telco 20170725 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170725 + :name: telco-20170725 + :class: page-title + + .. rubric:: Date + :name: Telco_20170725_date + + Tuesday, 25 July, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170725_agenda + + - Welcome and agree Agenda + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + - PR "\ `Renames relative_molecular_mass + #564 `__\ " + will be merged unless there are objections raised today + + - Code Camp or similar activity in 2017 + - Update on current projects + + - NXreflections - ragged arrays + - multiple samples in one NXenty + - Github HDF5 filters repo + + - PDB Group in NeXus + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170725_minutes + + Present: AB, HJB, MK, FAA, TSR + + .. rubric:: Github Issues + :name: Telco_20170725_github-issues + + - [consistent documentation for flexible + names][https://github.com/nexusformat/definitions/issues/562] + commented on the issue + - relative_molecular_mass will not be renanmed, agreement on the + closure of the pull request + + .. rubric:: Code Camp 2017 + :name: Telco_20170725_code-camp-2017 + + No update from the potential hosts + + .. rubric:: Project Updates + :name: project-updates + + .. rubric:: NXreflections & multiple NXsample + :name: Telco_20170725_nxreflections--multiple-nxsample + + No update, will be available in 4 weeks time + + .. rubric:: external HDF5 filters and C++ API for HDF5 + :name: external-hdf5-filters-and-c-api-for-hdf5 + + Good progress on both fronts (EW emailed update) + + .. rubric:: PDB data inclusion + :name: Telco_20170725_pdb-data-inclusion + + Agreement that a NXPDB or PDB group should be used to wholesale + import everything the PDB has to offer. Validation would occur + only via the transliteration routine. + + .. rubric:: Next Meeting + :name: Telco_20170725_next-meeting + + `Telco 20170808 `__ diff --git a/source/teleconferences/Telco_20170808.rst b/source/teleconferences/Telco_20170808.rst new file mode 100644 index 00000000..fbc917eb --- /dev/null +++ b/source/teleconferences/Telco_20170808.rst @@ -0,0 +1,76 @@ +================= +Telco 20170808 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170808 + :name: telco-20170808 + :class: page-title + + .. rubric:: Date + :name: Telco_20170808_date + + Tuesday, 8 August, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170808_agenda + + - Welcome and agree Agenda + - PDB Group in NeXus + - Dark Field + - Code Camp or similar activity in 2017 + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + + - Next meeting + + .. rubric:: Minutes + :name: Telco_20170808_minutes + + Present: HJB, TSR, MK + + .. rubric:: PDB + :name: Telco_20170808_pdb + + HJB created a branch. Because the PDB information is encoded in + CIF the NeXus base class was named NXcif. The request was raised + to rename it to NXpdb to avoid unnecessary confusion. This was + completed during the conference call. + + .. rubric:: Dark Field + :name: dark-field + + EW requested a dataset for storing dark frames. In extension to + how ``NXmx`` has ``flatfield`` the suggestion would be to define + ``darkfield``. Since it is important and can be different to the + main data acquisition HJB suggested also to define + ``darkfield_exposure_time``. + + .. rubric:: Code Camp + :name: Telco_20170808_code-camp + + The invite has gone out (to -committee for now). Should be more + widely distributed. Staying in the onsite accommodation wasn"t + recommended. We"ll get in contact with MB. + + .. rubric:: Github Issue of the Day + :name: Telco_20170808_github-issue-of-the-day + + The only issue marked "telco" was already discussed last time. + Removed the label. + + .. rubric:: Next Meeting + :name: Telco_20170808_next-meeting + + That was it. Short meeting. + + `Telco 20170823 `__ diff --git a/source/teleconferences/Telco_20170823.rst b/source/teleconferences/Telco_20170823.rst new file mode 100644 index 00000000..8fd88c7f --- /dev/null +++ b/source/teleconferences/Telco_20170823.rst @@ -0,0 +1,84 @@ +================= +Telco 20170823 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170823 + :name: telco-20170823 + :class: page-title + + .. rubric:: Date + :name: Telco_20170823_date + + Wednesday, 23 August, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170823_agenda + + - Welcome and agree Agenda + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + "telco" `__ + + - Code Camp 2017 + + - Features + - Shapes + - Versioning + + - Update on current projects + + - NXreflections - ragged arrays + - multiple samples in one NXenty + - Github HDF5 filters repo + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20170823_minutes + + Present: Herbert Bernstein, Eugen Wintersberger, Aaron Brewster, + Mark Basham, Mark Koennecke + + We discussed the upcoming code camp: + + - Mark Basham has booked us into Coseners House in Abingdon. The + dates have to be October, 24-26 2017 because Coseners is booked + otherwise. Details will be finalised and he will send an email + to the NeXus mailing list once that is done. He expects this to + happen before the end of the week. + - In addition to the topics stated above, there were more + suggestions: + + - NXpdb + - Mark K wants to work at the issues on cnxvalidate as + discussed at the last meeting + + Regarding the pending projects: + + - No news on NXreflections + - Multiple samples in one entry: Aaron will provide an example + file for review in the nexus_examples repository. + - Github HDF5 filters repo: Eugen has worked on this and this is + now 75% complete. There is still some cleaning up to do. + Herbert insisted on one particularly difficult filter, the + blosc. It is difficult because this filter uses a library with + many dependencies. Which handle reasonable well under linx but + less so on windows. Testing on OSX is also still pending as + Eugen has no access to an OSX installation. + + There were no AOBs. + + .. rubric:: Next Meeting + :name: Telco_20170823_next-meeting + + `Telco 20170912 `__ diff --git a/source/teleconferences/Telco_20170912.rst b/source/teleconferences/Telco_20170912.rst new file mode 100644 index 00000000..418fb4ef --- /dev/null +++ b/source/teleconferences/Telco_20170912.rst @@ -0,0 +1,69 @@ +================= +Telco 20170912 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20170912 + :name: telco-20170912 + :class: page-title + + .. rubric:: Date + :name: Telco_20170912_date + + Tuesday, 12 September, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20170912_agenda + + - Welcome and agree Agenda + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Update on current projects + + - NXreflections - ragged arrays + - multiple samples in one NXenty + + - Next meeting + + .. rubric:: Minutes + :name: Telco_20170912_minutes + + Present: RO, EW, AB, TSR + + .. rubric:: Welcome + :name: Telco_20170912_welcome + + There were some problems joining the telco. Aaron had to approve + the participants. Hope that doesn't happen next time. + + .. rubric:: Github issues + :name: Telco_20170912_github-issues + + One merged. NXdetector documentation deferred to the code camp. + NXevent_data also lacks the scaling; pull request will be revised. + + .. rubric:: Current Projects + :name: current-projects + + Reflections: No update. We'll wait for feedback from LCLS. + + We did discuss the different use cases of multiple samples. Either + as result of processing or of the fact that the experimental setup + doesn't allow the data to be split between different samples, due + to unknown shape or timing. Aaron put a pull request out with an + example for processed data. Could be discussed at the code camp. + + .. rubric:: Next Meeting + :name: Telco_20170912_next-meeting + + `Telco 20171004 `__ diff --git a/source/teleconferences/Telco_20171004.rst b/source/teleconferences/Telco_20171004.rst new file mode 100644 index 00000000..59971fd3 --- /dev/null +++ b/source/teleconferences/Telco_20171004.rst @@ -0,0 +1,75 @@ +================= +Telco 20171004 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20171004 + :name: telco-20171004 + :class: page-title + + .. rubric:: Date + :name: Telco_20171004_date + + Wednesday, 4 October, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20171004_agenda + + - Welcome and agree Agenda + - Nested Detector Modules + - Timestamped Events + - `ICALEPCS HDF5 + Workshop `__ + - Code Camp 2017 + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20171004_minutes + + Present: AB, HJB, MB, EW, TSR + + .. rubric:: Nested Detector Modules + :name: nested-detector-modules + + AB asked about correct and best practise for having a hierarchy of + NXdetector_modules. The current definition would expect them to be + flat in the NXdetector and have the hierarchy represented in the + geometry chain. While his current example file can be processed by + DIALS, Aaron was happy to explore following the convention more. + At the code camp we would aim to come to a conclusion whether we + need to improve the base classes to make encoding the + relationships tidier. + + .. rubric:: Timestamped Events + :name: timestamped-events + + There have been some exchanges of example files recently, but we + still don't have clear documentation on how to align events in + time. Again, we will have time and expertise at the code camp for + this. + + .. rubric:: ICALEPCS HDF5 Workshop + :name: icalepcs-hdf5-workshop + + No issues were put forward to be raised there by the people + attending that (EW & TSR). + + .. rubric:: Code Camp + :name: Telco_20171004_code-camp + + Items for the agenda are collected on the wiki pages. MB has + already update the list with the items above. EW cannot attend, + but will have at least 10 people attending as of today. + + .. rubric:: Next Meeting + :name: Telco_20171004_next-meeting + + Will be from the Code Camp, summarising the output of that (if + any): `Telco 20171026 `__ diff --git a/source/teleconferences/Telco_20171026.rst b/source/teleconferences/Telco_20171026.rst new file mode 100644 index 00000000..8615c0ef --- /dev/null +++ b/source/teleconferences/Telco_20171026.rst @@ -0,0 +1,57 @@ +================= +Telco 20171026 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20171026 + :name: telco-20171026 + :class: page-title + + .. rubric:: Date + :name: Telco_20171026_date + + Thursday, 26 October, 14:00 BST (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20171026_agenda + + - Welcome and agree Agenda + - Report from [Code Camp 2017] + - AOB + - Next meeting + + .. rubric:: Minutes + :name: Telco_20171026_minutes + + Present: Hangout: RO, EW, PJ Code Camp (in person): TSR, MDJ, MC, + JH, MK, PC, MS, MB + + .. rubric:: Report from Code Camp + :name: report-from-code-camp + + Essentially as captured in the minutes. + + Ray suggested the use of the nexusformat python package for + features. That was already being tried, but would need additions + to the package. Those would be welcome. + + Discussion and clarification on the example file with axes with + Ray. + + .. rubric:: AOB + :name: Telco_20171026_aob + + Ray: People in the US are working on a materials database similar + to ICAT. Question to think about: Should there be a tag for the + things to drag into a catalogue. + + .. rubric:: Next Meeting + :name: Telco_20171026_next-meeting + + `Telco 20171107 `__ diff --git a/source/teleconferences/Telco_20171107.rst b/source/teleconferences/Telco_20171107.rst new file mode 100644 index 00000000..9b140853 --- /dev/null +++ b/source/teleconferences/Telco_20171107.rst @@ -0,0 +1,75 @@ +================= +Telco 20171107 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20171107 + :name: telco-20171107 + :class: page-title + + .. rubric:: Date + :name: Telco_20171107_date + + Tuesday, 7 November, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20171107_agenda + + - Welcome and agree Agenda + - Report from `ICALEPCS HDF5 + Workshop `__ + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20171107_minutes + + Present: AB, EW, MB, MK, PJ, TSR + + .. rubric:: Report from HDF5 Workshop + :name: report-from-hdf5-workshop + + - C++ HDF5 API presented by EW + - Filters - HDF Group optentially has plans to sell them for + writing, reading will be free. Do we want to compete with our + repo + - HDF Group still aims to be more open source - opening their bug + tracker and linking to a git repo from their web pages + + .. rubric:: Github Issues + :name: Telco_20171107_github-issues + + Two old ones have been looked at now: NXlog has the time dataset + changed from NX_INT to NX_NUMBER (was probably TSR's editing error + in the first place). And we decided some English language is + required near the 'data' dataset in Nxdetector to ensure people + don't think 4 dimensions are mandatory. + + Two tickets have been generated by Ray and require further input + from him. Mark B produces more example files for him to digest and + will send link to Dawn source code that deal with axes for + plotting. Validation shall already check for dimensions for + \_indices etc in NXdata. Maybe a feature to extract the + information would help. + + .. rubric:: Next Meeting + :name: Telco_20171107_next-meeting + + `Telco 20171128 `__ + + .. rubric:: AOB + :name: Telco_20171107_aob + + Short meeting' diff --git a/source/teleconferences/Telco_20171128.rst b/source/teleconferences/Telco_20171128.rst new file mode 100644 index 00000000..9e3e8206 --- /dev/null +++ b/source/teleconferences/Telco_20171128.rst @@ -0,0 +1,84 @@ +================= +Telco 20171128 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20171128 + :name: telco-20171128 + :class: page-title + + .. rubric:: Date + :name: Telco_20171128_date + + Tuesday, 28 November, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20171128_agenda + + - Welcome and agree Agenda + - Update on multiple detector modules + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20171128_minutes + + Present: EW, RO, HJB, MK, AB (briefly), PJ (mainly from the AOB + part) + + .. rubric:: Welcome + :name: Telco_20171128_welcome + + Happened. + + .. rubric:: Multiple Detector modules + :name: Telco_20171128_multiple-detector-modules + + No update. + + .. rubric:: Github issues + :name: Telco_20171128_github-issues + + Deferred discussion on new pull request by RO (#602) until people + had a chance to look at it. + + Agreed **target** attributes should not have mandatory values + defined in application definitions. That rules out working with + subentries. Ticket #600. MK agreed to implement a workaround in + the validation tool until the NIAC has formally edited the + application definitons. + + Adding z_pixel_offset (#591) agreed to merge and get NIAC approval + later. Backward compatible change. + + .. rubric:: Next Meeting + :name: Telco_20171128_next-meeting + + `Telco 20180116 `__ + + .. rubric:: AOB + :name: Telco_20171128_aob + + Some discussions around RO's pull request: + + - specifying both \_errors and @uncertainties should be avoided. + This should be clarified in the documentation. + - data collected on irregular grids may leave you in situations + where plotting with proper x and y axis is not straightforward + or possible. + - with the versioning reaching maturity it will be possible to + eventually delete things of base classes or application + definition, as opposed to marking things deprecated. We're not + yet in this state but that is a goal. diff --git a/source/teleconferences/Telco_20180116.rst b/source/teleconferences/Telco_20180116.rst new file mode 100644 index 00000000..17d505c5 --- /dev/null +++ b/source/teleconferences/Telco_20180116.rst @@ -0,0 +1,110 @@ +================= +Telco 20180116 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180116 + :name: telco-20180116 + :class: page-title + + .. rubric:: Date + :name: Telco_20180116_date + + Tuesday, 16 January, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180116_agenda + + - Welcome and agree Agenda + - Suggested NXdata changes by Ray + - Milestones for NXDL releases + - Discussion on multiple signals in NXdata + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + - Mark B has had a question on where the official location for + HDF compression algorithms is with respect to the Eiger. + + .. rubric:: Minutes + :name: Telco_20180116_minutes + + Present: TSR, AB, EW, MK, PJ, RO + + Apologies: Mark Basham, FAA + + .. rubric:: Welcome + :name: Telco_20180116_welcome + + Some mixup with Hangout, session was split for the first 10 + minutes. + + .. rubric:: NXdata + :name: Telco_20180116_nxdata + + https://github.com/nexusformat/definitions/pull/602 + + Ray will edit and present next time. uncertainties should be + perferred over the old \_errors. + + .. rubric:: Milestones + :name: Telco_20180116_milestones + + https://github.com/nexusformat/definitions/milestones/NXDL%202018.1o + + Action on all: Resolve all possible issues; at the next meeting + advaocate then unresolved tickets that still should be part of the + upcoming release. We still establish the target date then. + + .. rubric:: multiple signals, ESRF proposal + :name: multiple-signals-esrf-proposal + + (This took quite some time, just noting down one strand of the + exchange.) + + PJ: Support for generic plotting is a main goal of NeXus. + + RO: Adding multiple signals does not explain to a program what to + do with that additional data. + + MK: Could suggest features to solve this. + + TSR: auxiliary_axes is a solved problem. Any number of axes are + possible with \_indices. + + PJ: That could have been to use with the additional (auxillary) + signal. + + TSR: That would generate more problems (indices). Next action + + PJ: Ball in Armando's court to provide examples. + + .. rubric:: Github issue of the day + :name: Telco_20180116_github-issue-of-the-day + + - https://github.com/nexusformat/definitions/issues/600 (target + attribute) commented + + .. rubric:: Next meeting + :name: Telco_20180116_next-meeting + + `Telco 20180130 `__ + + .. rubric:: AOB + :name: Telco_20180116_aob + + Mark may mean this: + https://github.com/nexusformat/HDF5-External-Filter-Plugins But if + that doesn't satisfy his needs, bring it up next time (or on the + mailing list). diff --git a/source/teleconferences/Telco_20180130.rst b/source/teleconferences/Telco_20180130.rst new file mode 100644 index 00000000..b17e755c --- /dev/null +++ b/source/teleconferences/Telco_20180130.rst @@ -0,0 +1,63 @@ +================= +Telco 20180130 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180130 + :name: telco-20180130 + :class: page-title + + .. rubric:: Date + :name: Telco_20180130_date + + Tuesday, 30 January, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180130_agenda + + - Welcome and agree Agenda + - Update on multiple detector modules + - Review of NXDL + `milestone `__ + + - `Release + Procedure `__ + posted on the wiki + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180130_minutes + + Present: AB, MB, PJ, RO, MK, TSR, HJB + + .. rubric:: multiple detector modules + :name: Telco_20180130_multiple-detector-modules + + AB committed some changes to pixel sizes. Would be worth someone + reviewing. More changes upcoming. + + .. rubric:: Review of Milestone Release + :name: review-of-milestone-release + + Took most of the time of the meeting. Discussions are mostly + captured in the github tickets. + + .. rubric:: Next Meeting + :name: Telco_20180130_next-meeting + + `Telco 20180220 `__ + + .. rubric:: AOB + :name: Telco_20180130_aob + + Auxilary signals: RO to reply to the mailing list that this Telco + has no objections to optionally introducing multiple signals in + NXdata, provided they share the same axes. diff --git a/source/teleconferences/Telco_20180220.rst b/source/teleconferences/Telco_20180220.rst new file mode 100644 index 00000000..bbad79db --- /dev/null +++ b/source/teleconferences/Telco_20180220.rst @@ -0,0 +1,71 @@ +================= +Telco 20180220 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180220 + :name: telco-20180220 + :class: page-title + + .. rubric:: Date + :name: Telco_20180220_date + + Tuesday, 20 February, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180220_agenda + + - Welcome and agree Agenda + - Review of NXDL + `milestone `__ + + - `Release + Procedure `__ + posted on the wiki + + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180220_minutes + + Present: MB, MK, HJB, TSR + + Relatively short meeting as some originally planned agenda items + would have required RO or AB. + + .. rubric:: Definitions Release + :name: definitions-release + + Closed a couple of issues and attempted to have most open ones + assigned to a person now. + + .. rubric:: Telco tagged Tickets + :name: telco-tagged-tickets + + One had been discussed and the tag could be taken off. The other + item was RO's proposed NXdata changes. + + .. rubric:: Next Meeting + :name: Telco_20180220_next-meeting + + `Telco 20180313 `__ + + .. rubric:: AOB + :name: Telco_20180220_aob + + Short heads up on this meeting: + https://www.helmholtz-berlin.de/events/scientific-data-management/index_en.html + As well as minor ones and upcoming grant proposals. diff --git a/source/teleconferences/Telco_20180313.rst b/source/teleconferences/Telco_20180313.rst new file mode 100644 index 00000000..ffc76017 --- /dev/null +++ b/source/teleconferences/Telco_20180313.rst @@ -0,0 +1,84 @@ +================= +Telco 20180313 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180313 + :name: telco-20180313 + :class: page-title + + .. rubric:: Date + :name: Telco_20180313_date + + Tuesday, 13 March, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180313_agenda + + - Welcome and agree Agenda + - Update on multiple detector modules + - Presentation on Ray's proposed changes to NXdata + - Review of NXDL + `milestone `__ + + - `Release + Procedure `__ + posted on the wiki + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180313_minutes + + Present: MK, AB, HJB, TSR, RO, Dieter Weber, Alexander Clausen + + .. rubric:: NeXus for (ST)EM + :name: Telco_20180313_nexus-for-stem + + Dieter and Alexander presented their ideas and motivation behind + proposing NeXus additions for electron microscopy. They were + encouraged to share technical detail with the mailing list for + comments. It was general consensus that including EM support would + make sense. RO pointed out that the 'e' in NeXus is currently + unused. + + .. rubric:: Multiple Detector Modules + :name: Telco_20180313_multiple-detector-modules + + AB presented a file that uses the envisioned transformation + hierarchy which can be displayed with the correct geometry in + DIALS. Some additional attributes have been used (equipment), + which may or may not be necessary, but could be helpful for + refinement. Once AB is in a position to share the file, he will + commit it to the examples repository with a clue what the expected + geometry is. AB was interested in learning what cnxvalidate would + say to the file. + + .. rubric:: NXdata + :name: Telco_20180313_nxdata + + Presentation postponed, hopeing to have PJ on board for it next + time. + + .. rubric:: Milestone + :name: Telco_20180313_milestone + + There are still 17 issues lined up for the upcoming milestone. + That may not be realistic in the remaining planned time frame. + + We did discuss the NXpdb. The work on the NXDL is minimal and + mostly complete. To be able to work out what to put into the file + we need to have a well defined conversion into PDB/CIF. This will + be discussed next time. + + .. rubric:: Next Meeting + :name: Telco_20180313_next-meeting + + `Telco 20180403 `__ diff --git a/source/teleconferences/Telco_20180403.rst b/source/teleconferences/Telco_20180403.rst new file mode 100644 index 00000000..7652b7ba --- /dev/null +++ b/source/teleconferences/Telco_20180403.rst @@ -0,0 +1,91 @@ +================= +Telco 20180403 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180403 + :name: telco-20180403 + :class: page-title + + .. rubric:: Date + :name: Telco_20180403_date + + Tuesday, 3 April, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180403_agenda + + - Welcome and agree Agenda + - Comments on `pixelated + STEM `__ + and `ideas on an application hierarchy to include different + kinds of STEM + data `__ + - Tool to convert NXpdb to PDB/CIF + - Review of NXDL + `milestone `__ + + - `Release + Procedure `__ + posted on the wiki + + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180403_minutes + + Present: HJB, PJ, MK, AB, TSR + + .. rubric:: STEM + :name: Telco_20180403_stem + + The proposed STEM structure is a promising early draft that + required more detail. Some discussion of the proposed NeXus + structure took place in the LiberTEM ticket system. We should aim + to keep this in view of the NeXus community. TSR to send out a + reply. + + .. rubric:: NXpdb to PDB converter + :name: nxpdb-to-pdb-converter + + That is work in progress, existing as a branch in cbflib. Some + discussion on the difference between NXcollection and NXpdb. The + only common point is that both have no validation in NXDL. NXpdb, + however, has a full validation route, all content is standardised + (outside of NXDL) and can be consumed by analysis software. None + of that is true for NXcollection content. We have two different + base classes to make the distinction as clear as possible. + + .. rubric:: Release Procedure + :name: release-procedure + + Was presented as linked above. Some edits were done to also tick + boxes in the definitions ticket + `#597 `__ + for the new versioning scheme. + + Not enough time was left to discuss the tickets going into the + next milestone. + + .. rubric:: Next Meeting + :name: Telco_20180403_next-meeting + + `Telco 20180418 `__ + + .. rubric:: AOB + :name: Telco_20180403_aob + + None. diff --git a/source/teleconferences/Telco_20180418.rst b/source/teleconferences/Telco_20180418.rst new file mode 100644 index 00000000..5d1c1993 --- /dev/null +++ b/source/teleconferences/Telco_20180418.rst @@ -0,0 +1,87 @@ +================= +Telco 20180418 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180418 + :name: telco-20180418 + :class: page-title + + .. rubric:: Date + :name: Telco_20180418_date + + Wednesday, 18 April, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180418_agenda + + - Welcome and agree Agenda + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Review of tickets for the upcoming NXDL + `milestone `__ + - Preparations for NIAC this year + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180418_minutes + + Present: HJB (from a moving vehicle), MK, TSR + + Small and short meeting. + + .. rubric:: Github issues + :name: Telco_20180418_github-issues + + Looked at: + + - `editorial corrections to + NXlog `__: + We agreed that the pull request captures the intent of the NIAC + better than the current state of the NXDL and we will merge the + correction. Before that we also need to add the ``@scaling`` to + ``cue_timestamp_zero`` so the identical timestamps as in + ``time`` can be used. TSR will make the change, MK will merge. + + - `Add new geometry + definitions `__: + Agreed that ```` is the best approach here, rather than + fudging this in some other way. Needs changes to the rendering + of the manual and the validation tool. MK volunteers to do the + latter. PJ shall be approached for the NXDL work. + + .. rubric:: Milestone + :name: Telco_20180418_milestone + + Not discussed due to lack of key people. + + .. rubric:: NIAC and Code Camp Preparations + :name: Telco_20180418_niac-and-code-camp-preparations + + DOE problems, as always. But SIC offered to host in connection + with NOBUGS. Could be an option to have NIAC after NOBUGS and Code + Camp after NIAC, to implement decisions rather than preparing new + ones. Will discuss next time with hopefully more people. + + .. rubric:: AOB + :name: Telco_20180418_aob + + EM definition progress: There was an email today that the + proposers are about to create an example file to illustrate the + ideas. This is going well. + + .. rubric:: Next Meeting + :name: Telco_20180418_next-meeting + + `Telco 20180502 `__ diff --git a/source/teleconferences/Telco_20180502.rst b/source/teleconferences/Telco_20180502.rst new file mode 100644 index 00000000..f441cf1f --- /dev/null +++ b/source/teleconferences/Telco_20180502.rst @@ -0,0 +1,77 @@ +================= +Telco 20180502 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180502 + :name: telco-20180502 + :class: page-title + + .. rubric:: Date + :name: Telco_20180502_date + + Wednesday, 2 May, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180502_agenda + + - Welcome and agree Agenda + - NeXus for STEM + - Review of tickets for the upcoming NXDL + `milestone `__ + - Preparations for NIAC this year + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180502_minutes + + Present: HJB, MK, TSR, AB + + .. rubric:: STEM + :name: Telco_20180502_stem + + People in J'lich have created a script that generates an example + file. This has been posted to the NeXus mailing list with a doodle + poll to discuss things further. All are invited to participate in + the poll and the following Hangout call. + + .. rubric:: NXDL Milestone + :name: nxdl-milestone + + We should aim to release soon, even if a good number of tickets + are still outstanding. At this point we only consider tickets that + have code committed against them or that are required for the + release procedure are. TSR to move all tickets to a new milestone. + PJ can decide if there are show stoppers for the release process + that need to be included. + + Removed the NXdata suggestion from the milestone and dropped the + Telco tag. + + .. rubric:: NIAC at NOBUGS + :name: Telco_20180502_niac-at-nobugs + + Unfortunately no one joined from BNL and the dates are not yet + set. NOBUGS planning for themes is in progress, though. For the + moment we wait until dates for the main conference and satellite + meetings are set and decide then. + + Brief discussion on whether we should hold a training session like + we used to until (including) NOBUGS 2012. A lot of emphasis was on + writing application definitions from scratch and using NAPI. + Neither are good topics for beginners today. + + We will submit a presentation to the main programme of NOBUGS to + keep advertising us and HDF5, obviously. + + .. rubric:: Next Meeting + :name: Telco_20180502_next-meeting + + `Telco 20180515 `__ diff --git a/source/teleconferences/Telco_20180515.rst b/source/teleconferences/Telco_20180515.rst new file mode 100644 index 00000000..6b152963 --- /dev/null +++ b/source/teleconferences/Telco_20180515.rst @@ -0,0 +1,72 @@ +================= +Telco 20180515 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180515 + :name: telco-20180515 + :class: page-title + + .. rubric:: Date + :name: Telco_20180515_date + + Tuesday, 15 May, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180515_agenda + + - Welcome and agree Agenda + - Review of tickets for the upcoming NXDL + `milestone `__ + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Preparations for NIAC this year + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180515_minutes + + Present: HJB, TSR, MK, PJ + + .. rubric:: Milestone and Github Issues + :name: Telco_20180515_milestone-and-github-issues + + All is ready to go ahead with the release. We merged three final + tickets in the meeting and PJ is doing the remaining manual steps + probably today. + + Ambitious plan for the next release was August. That way we have + two releases a year and can get some known issues out of the way + before the NIAC meeting. Release after that should be early next + year, which allows time address new things that may come out of + the NIAC. + + .. rubric:: NIAC @ NOBUGS + :name: Telco_20180515_niac--nobugs + + Resent communications indicated that NOBUGS may not happen on the + dates originally circulated. We do not rule out having the NIAC at + either dates, but would like clarity soon. People at BNL have been + contacted to help. + + .. rubric:: Next Meeting + :name: Telco_20180515_next-meeting + + `Telco 20180529 `__ + + .. rubric:: AOB + :name: Telco_20180515_aob + + The NeXus website (hosting these minutes) is now accessible via + SSL/TLS. Thanks to GitHub and LetsEncrypt! diff --git a/source/teleconferences/Telco_20180529.rst b/source/teleconferences/Telco_20180529.rst new file mode 100644 index 00000000..e3625ede --- /dev/null +++ b/source/teleconferences/Telco_20180529.rst @@ -0,0 +1,78 @@ +================= +Telco 20180529 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180529 + :name: telco-20180529 + :class: page-title + + .. rubric:: Date + :name: Telco_20180529_date + + Tuesday, 29 May, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180529_agenda + + - Welcome and agree Agenda + - Feedback from the Definitions Release + - Preparations for NIAC this year + - Updates on NeXus for pixelated STEM + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180529_minutes + + Present: PJ, TSR, AB, Dieter Weber + + .. rubric:: Celebrate the release + :name: celebrate-the-release + + The release was a success. No problems were encountered. Thanks go + to PJ. + + .. rubric:: Pixelated STEM + :name: Telco_20180529_pixelated-stem + + Interested parties had a productive Telco meeting earlier today. + STEM community is implementing a file writing scheme that follows + what was developed at the meeting. + + There will be some adjustments as the suggested use of + NXpositonier is not widely adopted in NeXus. NXtransformations + work better for encoding the geometry. There are some open + questions regarding scanning, which could be addressed with the + new NXlog scheme or the standard scan rules. + + Other areas of interest are default plots (NXdata), for which a + solution exists, and OS level thumbnails which hopefully can be + distributed soon. See: + https://github.com/nexusformat/definitions/issues/381 + + Dieter will send out a new draft pixelated STEM file to the NeXus + mailing list to gather feedback and develop a next iteration. + + .. rubric:: NIAC + :name: Telco_20180529_niac + + Still no update from the organisers on exact dates NOBUGS and + related events. Making other arrangements is becoming more likely. + + .. rubric:: Next Meeting + :name: Telco_20180529_next-meeting + + `Telco 20180619 `__ diff --git a/source/teleconferences/Telco_20180619.rst b/source/teleconferences/Telco_20180619.rst new file mode 100644 index 00000000..8751af7a --- /dev/null +++ b/source/teleconferences/Telco_20180619.rst @@ -0,0 +1,83 @@ +================= +Telco 20180619 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180619 + :name: telco-20180619 + :class: page-title + + .. rubric:: Date + :name: Telco_20180619_date + + Tuesday, 19 June, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180619_agenda + + - Welcome and agree Agenda + - Tool to convert NXpdb to PDB/CIF + - Preparations for NIAC this year + - Updates on NeXus for pixelated STEM + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180619_minutes + + Present: AB, HJB, TSR + + .. rubric:: NXpdb tools + :name: nxpdb-tools + + PDB to NeXus works, going back still needs some effort. Done in + CBFlib. + + .. rubric:: NIAC + :name: Telco_20180619_niac + + HJB offered to host the meetings in his living room. + + There is a bit of a backlog of tasks to be worked on in NeXu + (documentation and defintions). Code camps in the traditional + sequence before a NIAC meeting end up preparing new things for the + NIAC to decide. The small congregation today thought that having + the NIAC meeting after NOBUGS and the code camp following that + would put some more focus on implementing existing NIAC decisions. + + TSR is in contact with SIC and will send out a proposal to the + nexus committee mailing list, before fully publishing the event. + + .. rubric:: pixelated STEM + :name: Telco_20180619_pixelated-stem + + TSR still needs to update the proposal with NXtransformations + instead of the NXpositioners. If someone wants to volunteer to do + that earlier, they are welcome to. + + .. rubric:: Github issue + :name: Telco_20180619_github-issue + + We're still benefitting from the recent release and there are no + marked issues to discuss. + + .. rubric:: Next Meeting + :name: Telco_20180619_next-meeting + + There are not many items on the telco agendas at the moment, other + than preparing the NIAC. Summer is there with holiday so we skip + forward a few weeks before we have the next meeting: + + `Telco 20180814 `__ diff --git a/source/teleconferences/Telco_20180814.rst b/source/teleconferences/Telco_20180814.rst new file mode 100644 index 00000000..aa9ac744 --- /dev/null +++ b/source/teleconferences/Telco_20180814.rst @@ -0,0 +1,55 @@ +================= +Telco 20180814 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180814 + :name: telco-20180814 + :class: page-title + + .. rubric:: Date + :name: Telco_20180814_date + + Tuesday, 14 August, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180814_agenda + + - Welcome and agree Agenda + - Preparations for NIAC this year + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180814_minutes + + Present: TSR, MK, AB + + .. rubric:: NIAC 2018 + :name: Telco_20180814_niac-2018 + + The small congregation in this telco opted for having a NIAC on + October 18 & 19 (Thursday and Friday before NOBUGS). TSR will ask + SIC if that can be arranged. No code camp. + + .. rubric:: AOB + :name: Telco_20180814_aob + + AB met someone at the latest Gordon Conference, doing Eiger work. + Two use cases where unclear: Serial crystallography via a raster + scan of a plate with multiple crystals and scans with a limited + amount of fixed angles, say 0, 45, 90 degree. MK said that both + should be well supported via NXtransformation scans, especially + when the raster scan does not need to define multiple + distinguished samples. AB will check this out. + + .. rubric:: Next Meeting + :name: Telco_20180814_next-meeting + + `Telco 20180905 `__ diff --git a/source/teleconferences/Telco_20180905.rst b/source/teleconferences/Telco_20180905.rst new file mode 100644 index 00000000..34d2768b --- /dev/null +++ b/source/teleconferences/Telco_20180905.rst @@ -0,0 +1,75 @@ +================= +Telco 20180905 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180905 + :name: telco-20180905 + :class: page-title + + .. rubric:: Date + :name: Telco_20180905_date + + Wednesday, 5 September, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180905_agenda + + - Welcome and agree Agenda + - DOIs for definition versions (Zenodo) + - NIAC Preparations + - AOB + - Next meeting + + .. rubric:: Minutes + :name: Telco_20180905_minutes + + Present: RO, PJ, TSR, MB + + .. rubric:: DOIs via Zenodo + :name: dois-via-zenodo + + The suggestion to create DOIs for definition releases was + converted to a ticket. Seems like a good idea. + + .. rubric:: NIAC & NOBUGS Preparations + :name: Telco_20180905_niac--nobugs-preparations + + TSR to submit a state-of-the-union talk. Topics would be: + + - (no longer so) new website/wiki + - OFF geometry + - Mantid Geometry support - weights + - Axes (Diamond) + - STEM NeXus + - Grants + - PDB, if ready + + For the NIAC MB has two more topics than what is already + registered as NIAC tickets: + + - NXtyco + - CSG volumes + + New officers need to be elected. + + .. rubric:: AOB + :name: Telco_20180905_aob + + The 2018.8 milestone release had no real improvements commited + against it. We move all open and closed ticket to the next one + (2019.1). + + The NIAC can decide on priorties for the open tickets and + establish a roadmap for NeXus for the slightly longer term. + + .. rubric:: Next Meeting + :name: Telco_20180905_next-meeting + + `Telco 20180926 `__ diff --git a/source/teleconferences/Telco_20180926.rst b/source/teleconferences/Telco_20180926.rst new file mode 100644 index 00000000..f45ead97 --- /dev/null +++ b/source/teleconferences/Telco_20180926.rst @@ -0,0 +1,58 @@ +================= +Telco 20180926 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20180926 + :name: telco-20180926 + :class: page-title + + .. rubric:: Date + :name: Telco_20180926_date + + Wednesday, 26 September, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20180926_agenda + + - Welcome and agree Agenda + - NIAC Agenda + - Github issue of the day - suggestions welcome (use telco github + label) + + - `definitions PRs & issues marked as + 'telco' `__ + + - Next meeting + - AOB + + .. rubric:: Minutes + :name: Telco_20180926_minutes + + Present: MB, TSR, HJB, PJ, AB + + .. rubric:: NIAC Agenda + :name: Telco_20180926_niac-agenda + + https://github.com/nexusformat/definitions/issuesq=is%3Aissue+is%3Aopen+label%3A%22discussion+needed%22 + + https://github.com/nexusformat/NIAC/issues + + Steve + + Flattening out + + Invite: Dectris, ANSTO, DESY + + Catering + + .. rubric:: Next Meeting + :name: Telco_20180926_next-meeting + + `Telco 20181015 `__ diff --git a/source/teleconferences/Telco_20181015.rst b/source/teleconferences/Telco_20181015.rst new file mode 100644 index 00000000..63194df6 --- /dev/null +++ b/source/teleconferences/Telco_20181015.rst @@ -0,0 +1,50 @@ +================= +Telco 20181015 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20181015 + :name: telco-20181015 + :class: page-title + + .. rubric:: Date + :name: Telco_20181015_date + + Monday, 15 October, 16:30 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20181015_agenda + + - LCLS update + - NIAC Agenda + - Next meeting + + .. rubric:: Minutes + :name: Telco_20181015_minutes + + Present: RO, MK, HJB, AB, TSR + + .. rubric:: LCLS II + :name: lcls-ii + + AB mentioned that there is interest in using NeXus conventions at + LCLS II, but not HDF5. He will invite them to the NIAC meetings. + + .. rubric:: Agenda for NIAC2018 + :name: Telco_20181015_agenda-for-niac2018 + + Outline agenda has been discussed and put on `the upcoming NIAC + page `__. + + .. rubric:: Next meeting + :name: Telco_20181015_next-meeting + + Is `the upcoming NIAC meeting `__. + + Next teclo TBA by the newly elected chair. diff --git a/source/teleconferences/Telco_20190207.rst b/source/teleconferences/Telco_20190207.rst new file mode 100644 index 00000000..5f1006e6 --- /dev/null +++ b/source/teleconferences/Telco_20190207.rst @@ -0,0 +1,83 @@ +================= +Telco 20190207 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190207 + :name: telco-20190207 + :class: page-title + + .. rubric:: Date + :name: Telco_20190207_date + + Thursday, 7 February, 16:30 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190207_agenda + + - Updates for NXmx and base classes for Eiger2. + - Variant scheme. + - Meeting times to allow participation in East Asia. + + .. rubric:: Minutes + :name: Telco_20190207_minutes + + Present: BW, MK, HJB, TM, SC, AM + + .. rubric:: Updates for NXmx and base classes + :name: updates-for-nxmx-and-base-classes + + HJB and AM want the files written by the Eiger2 to include extra + information that clashes with what is currently described by NXDL. + Specifically, the 'mask' field in NXdetector and NXmx is declared + as type 'boolean , but a more complex bit mask is required. + Further, what is preferred and what is deprecated needs to be + clearly communicated. NXDL currently allows an application + definition to list an item twice, but with minoccur=1 attribute + in each to indicate that only one of the options should be + present. BW proposes that an extra attribute in the NXDL tag, e.g. + priority, could take an integer value to indicate which version + is preferred and perhaps a negative integer could indicate + deprecation. + + HJB and AM would like to promote discussion of possible solutions + for now, but strongly desire the issue be settled before the + summer conference season so that the decision can be clearly + communicated. + + P.S. The currentl published versions of + `NXmx `__ + and + `NXdetector `__ + both provide a pixel_mask field that takes a 32-bit pixel mask + (and have for over 5 years), so this issue seems to be just about + clearly communicating the old way vs new way . + + .. rubric:: Variant scheme + :name: variant-scheme + + HJB wants an agreed way to update the value of a field (keeping + track of previous values). MK pointed out the `variant + attribute `__ + that was decided in the 2014 NIAC, but not yet properly + documented. + + .. rubric:: Telco meeting times + :name: telco-meeting-times + + BW proposes that further meetings be held 1.5 hours earlier than + the current meeting (3pm CET, instead of 4:30pm CET) so that TM + and others in Japan can attend the meeting at 11pm local time. + Those who are adversely affected (such as Californians who will + have to observe the telco at 6am) are encouraged to provide + comments. + + BW agreed to organise the next telco using another poll, aiming + for the beginning of March. `Poll for March + Telco `__ diff --git a/source/teleconferences/Telco_20190312.rst b/source/teleconferences/Telco_20190312.rst new file mode 100644 index 00000000..83360210 --- /dev/null +++ b/source/teleconferences/Telco_20190312.rst @@ -0,0 +1,58 @@ +================= +Telco 20190312 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190312 + :name: telco-20190312 + :class: page-title + + .. rubric:: Date + :name: Telco_20190312_date + + Tuesday, 12 March, 15:00 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190312_agenda + + - NeXus for XFELs + - Dectris NeXus + - Implementing NeXus at Spring8 + + .. rubric:: Minutes + :name: Telco_20190312_minutes + + Present: BW, MK, HJB, TM, AB + + .. rubric:: NeXus for FELs + :name: Telco_20190312_nexus-for-fels + + AB reports that work has been progressing on implementing NeXus + for single shot crystallography experiments at the European XFEL + (and SwissFEL). While still a work-in-progress, the code has + already had a first use in an experiment at the Europeean XFEL. + HJB commented on an issue that a requirement for an extra geometry + file wasn't properly documented. AB noted that it is because of a + shortcut (reusing existing code) that will be fixed soon. + + .. rubric:: Dectris NeXus + :name: dectris-nexus + + HJB and AB continue to work on improving the NeXus output of + Dectris detectors. + + .. rubric:: Implementing NeXus at Spring8 + :name: implementing-nexus-at-spring8 + + TM reports that work is progressing at Spring8 for the + implementation of NeXus at the beamlines. + + BW to organise the next telco using another poll, aiming for the + end of April. `Poll for April + Telco `__ diff --git a/source/teleconferences/Telco_20190424.rst b/source/teleconferences/Telco_20190424.rst new file mode 100644 index 00000000..88c73b2d --- /dev/null +++ b/source/teleconferences/Telco_20190424.rst @@ -0,0 +1,99 @@ +================= +Telco 20190424 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190424 + :name: telco-20190424 + :class: page-title + + .. rubric:: Date + :name: Telco_20190424_date + + Wednesday, 24 April, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190424_agenda + + - Documentation glitch: + https://github.com/nexusformat/definitions/issues/648 + - Sparse containers: + https://github.com/nexusformat/definitions/issues/653 + - Per-image pixel mask: + https://github.com/nexusformat/definitions/issues/651 + - Underload for NXdetector: + https://github.com/nexusformat/definitions/issues/656 + - New teleconferencing system + + .. rubric:: Minutes + :name: Telco_20190424_minutes + + Present: BW, MK, AB, PJ, HB, TM + + .. rubric:: Documentation glitch + :name: documentation-glitch + + All agree that proposal by AS is sensible and should be accepted. + To be implemented by PJ. + + .. rubric:: Sparse containers + :name: sparse-containers + + This is a bit special in that it is describing how a dataset is + represented, while NeXus tends to concentrate on the physical + meaning of datasets. It is, however, similar to NXlog and + NXevent_data in this respect and so should definitely be + considered. While we think it is probably best dealt with in HDF5, + rather than NeXus, the HDF group need money for development and a + NeXus solution might be better than the customised h5py code + pointed to in the github issue. This idea should be further + developed into a proposal for the NIAC. + + .. rubric:: Per-image pixel mask + :name: per-image-pixel-mask + + All agree on the value of allowing multiple image masks for + various use cases. BW would prefer using systematic naming in + order to allow many masks, suggesting 'pixel_mask_N (where N is + an integer) for all masks beyond the first, which retains the + pixel_mask name. AB promised to work on the issue. + + .. rubric:: Underload for NXdetector + :name: underload-for-nxdetector + + All agree it is a reasonable addition. AB to do the + implementation. + + .. rubric:: New teleconferencing system + :name: new-teleconferencing-system + + PJ is worried that Google Hangouts might disappear and suggests we + consider alternative teleconferencing systems. Suggestions + include: + + - BlueJeans: https://www.bluejeans.com/ + - Zoom: https://zoom.us/ + - Skype: https://www.skype.com The issue should be discussed at + the next telco. + + .. rubric:: Other Business + :name: Telco_20190424_other-business + + AB points out that the ALS is making a concerted effort (through + Alexandr Hexemer) to implement NeXus at beamlines. There is + interest in using NeXus/XML in order to avoid putting binary files + into a database. PJ suggests considering NeXus/JSON, which is + already being used by Dectris. + + .. rubric:: Next Telco + :name: Telco_20190424_next-telco + + - Will aim for last week of May or first week of June. + - HB prefers not Thursday ot Friday. + - MK will not attend. diff --git a/source/teleconferences/Telco_20190621.rst b/source/teleconferences/Telco_20190621.rst new file mode 100644 index 00000000..9051700e --- /dev/null +++ b/source/teleconferences/Telco_20190621.rst @@ -0,0 +1,93 @@ +================= +Telco 20190621 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190621 + :name: telco-20190621 + :class: page-title + + .. rubric:: Date + :name: Telco_20190621_date + + Friday, 21 June, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190621_agenda + + - Recording NXbeam spectra at XFELs + - JSON representation + - Possible EU resources + - 2019 NeXus Code Camp + + .. rubric:: Minutes + :name: Telco_20190621_minutes + + Present: BW, MK, AB, PJ, HB + + .. rubric:: Recording NXbeam spectra at XFELs + :name: recording-nxbeam-spectra-at-xfels + + - AB raised an issue with recording spectra in NXbeam at an XFEL, + where the spectrum delivered can be different for each shot. It + can also change between being monochromatic and polychromatic. + - PJ pointed out that the NXcanSAS application definition + illustrates a possbilbe solution to the issue. + + .. rubric:: JSON representation + :name: json-representation + + - HB will be attending a number of meetings over the summer to + discuss what data the MX community want Dectris detectors to + provide in JSON format. This will culminate in the HDR-MX + meeting at Diamond (6-7th November) where he will be seeking a + final decision on the issue. This form of data will become + common enough to be a kind standard and HB wants to push it + towards being NeXus-like. + - BW states that the main mission of NeXus is to standardise the + organisation of data and that the container format is a + secondary concern. HDF5 is currently the preferred container + format and where we are putting our development resources. + However, we still encourage the use of NeXus principles and + definitions for the organisation of data in other container + formats such as JSON. + + .. rubric:: Possible EU resources + :name: possible-eu-resources + + - MK reported that some EU projects on data catalogs and related + topics could be interested in providing resources for + increasing NeXus adoption by employing a person to help + scientists at new facilities to design and write application + definitions. + - HB notes that it would be important for such a person to be + knowledgable in programming in orderto be effective in such a + role. + - MK and BW will follow up with the responsible people and try to + make something happen. + + .. rubric:: 2019 NeXus Code Camp + :name: Telco_20190621_2019-nexus-code-camp + + - HB is keen for organisation to begin on the next NeXus Code + Camp. He would like to have face-to-face discussions with a + group of NeXus committee members about the outcomes of the + HDR-MX meeting in November. Therefore, immediately the HDR-MX + meeting at Diamond in November could be convenient. + - PJ points out that Americans require a long time to get + approval for travel outside the USA, so the sooner the code + camp is organised, the better. + - MK points out that this years NOBUGS conference is in Hamburg, + which we traditionally follow. + + .. rubric:: Next Telco + :name: Telco_20190621_next-telco + + - HB would like to aim for July 15 or 16. Poll: + https://doodle.com/poll/ddvv4x7tz5m3fqek diff --git a/source/teleconferences/Telco_20190715.rst b/source/teleconferences/Telco_20190715.rst new file mode 100644 index 00000000..40fe863e --- /dev/null +++ b/source/teleconferences/Telco_20190715.rst @@ -0,0 +1,68 @@ +================= +Telco 20190715 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190715 + :name: telco-20190715 + :class: page-title + + .. rubric:: Date + :name: Telco_20190715_date + + Monday, 15 July, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190715_agenda + + - 2019 NeXus Code Camp + - HDF5 European Workshop for Science and Industry (ESRF 17-18 + September) + + .. rubric:: Minutes + :name: Telco_20190715_minutes + + Present: BW, MK, HB, AB + + .. rubric:: HDF5 Workshop + :name: Telco_20190715_hdf5-workshop + + - BW to attend and represent NeXus. + - HB has been seeing many bugs when trying to run the .10 version + in high-performance situations. Detectors like the Eiger need a + parallel file system (e.g. GPFS) to keep up with the data rate, + but the HDF5 library has not been very stable. + + - We should ask the HDF group to please stabilise the + HDF5_1.10 library on parallel file systems. + - Perhaps we can help organise facilities to combine efforts + + .. rubric:: NeXus Code Camp + :name: Telco_20190715_nexus-code-camp + + - MB to talk to David Hall about code camp dates + + - Brexit issues (visas for EU citizens) + - Check dates + + .. rubric:: Other Business + :name: Telco_20190715_other-business + + - MK asks HB about how NXmx has been viewed by the community. HB + replies that NXmx is a success with ongoing collaborations and + millions of images recorded using NXmx. + + - MB to leave Diamond in December and step down as NeXus + Executive Secretary. + + - Asks for feedback on recent pull request. + - BW asked MB to prod Mark Herron regarding discussions about + EU projects. + + Poll for August Telco: https://doodle.com/poll/xvxdcpvfnatt3yuw diff --git a/source/teleconferences/Telco_20190812.rst b/source/teleconferences/Telco_20190812.rst new file mode 100644 index 00000000..9422f5b6 --- /dev/null +++ b/source/teleconferences/Telco_20190812.rst @@ -0,0 +1,70 @@ +================= +Telco 20190812 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190812 + :name: telco-20190812 + :class: page-title + + .. rubric:: Date + :name: Telco_20190812_date + + Monday, 12 August, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190812_agenda + + - 2019 NeXus Code Camp update + - definitions: `next + release `__ + (`releases `__) + : new: NXcif & NXptycho + - Wikipedia page + (https://en.wikipedia.org/wiki/Nexus\_(data_format)) + + .. rubric:: Minutes + :name: Telco_20190812_minutes + + Present: BW, MK, HB + + .. rubric:: Wikipedia page + :name: wikipedia-page + + - BW has written a short article in wikipedia about NeXus and + invites comments: + + - "Domain specific ontology" is a major feature + - Application definitions define strictness for each + implementation of a NeXus format + - Should add an example file structure + + - BW to work on including these. + + .. rubric:: 2019 NeXus Code Camp + :name: Telco_20190812_2019-nexus-code-camp + + - No further news regarding early November at Diamond. + - BW to contact MB. + + .. rubric:: Definitions + :name: definitions + + - PJ added this item to the agenda, but was not present at the + meeting so we are not sure what he wanted to discuss. + + .. rubric:: Other Business + :name: Telco_20190812_other-business + + - HB will be at ECM32 in Vienna next week to discuss NXmx Eiger + format. + - Next meeting to be in the beginning of September. + - We have been having fewer telco participants than have been + indicated in the polls - technical problems or just overly busy + people diff --git a/source/teleconferences/Telco_20190911.rst b/source/teleconferences/Telco_20190911.rst new file mode 100644 index 00000000..a13c967f --- /dev/null +++ b/source/teleconferences/Telco_20190911.rst @@ -0,0 +1,93 @@ +================= +Telco 20190911 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20190911 + :name: telco-20190911 + :class: page-title + + .. rubric:: Date + :name: Telco_20190911_date + + Wednesday, 11 September, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20190911_agenda + + - Code camp options (Diamond is no-go) + - (From August) definitions: `next + release `__ + (`releases `__) + : new: + `base/NXpdb `__ + & + `contributed_definitions/NXcxi_ptycho `__ + - Issues to raise at HDF5 workshop next week + - Prune stale branches from + `definitions `__ + + .. rubric:: Minutes + :name: Telco_20190911_minutes + + Present: BW, TM, PJ, AB, SC + + .. rubric:: Release + :name: release + + Release issues to be worked on before we make the next release: + https://github.com/nexusformat/definitions/milestone/8 + + - Aim for February/March release. + - Why are + `PDB `__ + and + `NXptycho `__ + not visible in the current master + + - they **are** in current master but neither are in + applications + - `base/NXpdb `__ + - `contributed_definitions/NXcxi_ptycho `__ + `Release + Procedure `__ + + AB points out that his recent changes to + `NXmx `__ + adds further detail to beam_center_x and beam_center_y than is + present in + `NXdetector `__. + BW responded that while it is not ideal to have diverging + documentation, an application definition can make some deviations + when needed. + + .. rubric:: Prune Stale Branches + :name: prune-stale-branches + + Branches that are not ahead of master at all give no value and + have now been deleted. + + .. rubric:: Code Camp + :name: Telco_20190911_code-camp + + Maybe PJ can organise something at Argonne in mid-November. + Otherwise we should organise a virtual event. We certainly should + do plenty of cleaning up in github for the next release. + + .. rubric:: HDF5 Workshop + :name: Telco_20190911_hdf5-workshop + + No further specific issues. + + .. rubric:: Other Business + :name: Telco_20190911_other-business + + - SC to get some more graphic design input for a new logo, + especially with more "corporate" colours and including a mu. + - Next meeting aiming for mid-October. diff --git a/source/teleconferences/Telco_20191107.rst b/source/teleconferences/Telco_20191107.rst new file mode 100644 index 00000000..1045df53 --- /dev/null +++ b/source/teleconferences/Telco_20191107.rst @@ -0,0 +1,89 @@ +================= +Telco 20191107 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20191107 + :name: telco-20191107 + :class: page-title + + .. rubric:: Date + :name: Telco_20191107_date + + Thursday, 7 November, 15:00 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20191107_agenda + + - Code camp details + - New executive secretary + - Membership renewal voting + (../niac/Membership_Dates.html) + - Discuss new logo drafts + + .. rubric:: Minutes + :name: Telco_20191107_minutes + + Present: BW, MK, PJ, RO, AB, TM, FA + + .. rubric:: Code Camp + :name: Telco_20191107_code-camp + + - PJ offered to host code camp at ANL either on December 11-13th, + or January 2020. + + - It was agreed that Dec was too soon and difficult to arrange + travel, so Jan 2020 would be better. + + - Some discussion of what work should be targeted to justify a + code camp + + - PJ points out lots of issues on github to clean, especially + for the `definitions release that is now + overdue `__ + + - PJ asked where to publish details + + - BW has created a page on the wiki that can be viewed at + ../codecamps/CodeCamp2020.html + + - PJ will create poll to decide precise dates + + .. rubric:: Executive Secretary and Membership Renewal Voting + :name: executive-secretary-and-membership-renewal-voting + + - MB has left NeXus and resigned as executive secretary. This is + an issue especially because we need to do quite a few + membership votes which are normally handled by the executive + secretary. + - BW will handle voting for membership renewals, except for the + vote on his own membership, which will be handled by RO. + - Discussion of duties of executive secretary: + + - Run email voting + - Take minutes of meetings, especially the full NIAC meetings + - (BW currently takes minutes of telcos and can continue this) + + .. rubric:: Logo Drafts + :name: logo-drafts + + - Some preference for the dark blue colour in version I and J + - Need to include consideration of background colour + - Need to consider a version with a square aspect ratio + + .. rubric:: Other Business + :name: Telco_20191107_other-business + + - Some web pages still only http - need to move to https + + - For example, the + `Manual `__ + + - Another telco in December - + `poll `__ diff --git a/source/teleconferences/Telco_20191212.rst b/source/teleconferences/Telco_20191212.rst new file mode 100644 index 00000000..ba93eb92 --- /dev/null +++ b/source/teleconferences/Telco_20191212.rst @@ -0,0 +1,87 @@ +================= +Telco 20191212 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20191212 + :name: telco-20191212 + :class: page-title + + .. rubric:: Date + :name: Telco_20191212_date + + Thursday, 12 December, 15:00 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20191212_agenda + + - Code camp details + (../codecamps/CodeCamp2020.html) + - New executive secretary + - Membership renewal voting + (../niac/Membership_Dates.html) + + .. rubric:: Minutes + :name: Telco_20191212_minutes + + Present: BW, AB, DW, HB, MK, PJ, FA, PC, HG + + .. rubric:: Code Camp + :name: Telco_20191212_code-camp + + - PJ suggests making public presentation on NeXus during CC. He + will schedule an event. + - MK wants us using github issues to make a list of items for the + CC. + + .. rubric:: Introductions + :name: introductions + + - MK suggests doing a round of introductions since some new + people are joining. + + .. rubric:: New Executive Secretary + :name: new-executive-secretary + + - FA volunteers to take up the position. + - BW to organise an email vote. + + .. rubric:: Membership Renewals + :name: Telco_20191212_membership-renewals + + - BW says renewals are going well, we have 6 votes complete and + most of the remainder in progress. + + .. rubric:: NXmx + :name: Telco_20191212_nxmx + + - HB and AB has made progress is refining the proposed + application definition. + - Not sure if it will be ready for formal acceptance at the CC, + but AB will present the current state at that time. + - HB intends to send a revised NXmx document for the new year. + + .. rubric:: Other Business + :name: Telco_20191212_other-business + + - PJ and colleagues are looking to make app def for photon + correlation spectroscopy + - BW would like to have a vote on a new logo at the next full + NIAC meeting. + + - BW encourages people to develop their preferred logo version + in limited groups + - PJ suggests sharing logo version on dropbox (to keep them + out of the google index) + + - DW will suggest another participant + - Next telco during CC, but maybe have a longer remote session + than the usual 1 hour telco. PJ suggests that starting 1 hour + later than the usual telco time (ie 16:00 CET) would give best + chance for intercontinental collaboration. diff --git a/source/teleconferences/Telco_20200224.rst b/source/teleconferences/Telco_20200224.rst new file mode 100644 index 00000000..2f932fc0 --- /dev/null +++ b/source/teleconferences/Telco_20200224.rst @@ -0,0 +1,69 @@ +================= +Telco 20200224 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200224 + :name: telco-20200224 + :class: page-title + + .. rubric:: Date + :name: Telco_20200224_date + + Monday, 24 February, 15:00 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20200224_agenda + + - 2020 NIAC and Code Camp dates surrounding + `NOBUGS2020 `__ + (Oct. 14-16). `Proposed + dates `__ are: + + - NIAC meeting on Oct. 12-13th (i.e. Monday-Tuesday just + before NOBUGS) + - Code Camp on either Oct. 10-11th, or 17-18th (i.e. weekend + before, or after) + + .. rubric:: Minutes + :name: Telco_20200224_minutes + + Present: BW, MK, FA + + .. rubric:: NIAC + :name: Telco_20200224_niac + + - All agreed that the NIAC tradition is to meet together with + NOBUGS and that there is no alternatives being proposed. + - All agreed that Oct. 12-13th is the obvious best choice for + dates adjacent to NOBUGS2020. + + .. rubric:: Code Camp + :name: Telco_20200224_code-camp + + - MK suggested that Oct. 19-20th could be better dates to avoid + working over the weekend. BW would rather not lengthen the + travel further than necessary. + - All agreed that after the NIAC made more sense than before + since it would allow enacting NIAC decisions. + - BW suggested that we could advertise the Code Camp as an + opportunity for software developers (i.e. NOBUGS attendees) to + work through practical NeXus-related problems together with the + experts. + - After some discussion, all agreed that Oct 17-18th was the + better choice. + + .. rubric:: Other Business + :name: Telco_20200224_other-business + + - BW disappointed in attendence, considering lots of people + answered the poll to decide the telco date. Perhaps this + highlights the importance of the Outlook calendar event that + was forgotten this time. + - Next telco to aim for mid March. diff --git a/source/teleconferences/Telco_20200323.rst b/source/teleconferences/Telco_20200323.rst new file mode 100644 index 00000000..22636de9 --- /dev/null +++ b/source/teleconferences/Telco_20200323.rst @@ -0,0 +1,61 @@ +================= +Telco 20200323 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200323 + :name: telco-20200323 + :class: page-title + + .. rubric:: Date + :name: Telco_20200323_date + + Monday, 23 March, 15:00 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20200323_agenda + + - 2020 NIAC and Code Camp dates included in + `NOBUGS2020 `__ + website + - Concordance of data integrity metadata with CIF community + - COVID-19 (everyone else is talking about it!) + + .. rubric:: Minutes + :name: Telco_20200323_minutes + + Present: HB, TM, MK, PJ, AB, BW, TR, FA + + .. rubric:: 2020 NIAC and Code Camp + :name: 2020-niac-and-code-camp + + - registration live on NOBUGS + - What detail should be published + - BW suggests opening the CC to informal Q&A and training + - MK asks that email be given to indicate numbers and intended + tasks + - PJ requests separation of the open and in-house sections of the + CC + - Maybe need an extra room, and should plan for combination of + in-person and remote attendance. + + .. rubric:: Concordance with CIF + :name: concordance-with-cif + + - BW asks if NXpdb is sufficient + - HB says NXpdb needs more detail and it is in progress with the + NXmx article + - HB would like to discuss these issues and get it settled in the + summer meetings, but COVID-19 + - HB and AB say it also affects the XFEL data. + + .. rubric:: Any Other Business + :name: Telco_20200323_any-other-business + + - Next meeting after Easter. diff --git a/source/teleconferences/Telco_20200424.rst b/source/teleconferences/Telco_20200424.rst new file mode 100644 index 00000000..17684676 --- /dev/null +++ b/source/teleconferences/Telco_20200424.rst @@ -0,0 +1,146 @@ +================= +Telco 20200424 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200424 + :name: telco-20200424 + :class: page-title + + .. rubric:: Date + :name: Telco_20200424_date + + Friday, 24 April, 15:00 CET (+0100) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20200424_agenda + + - `Issue #748: Mixed use of NXreflections and NXmx + telco `__ + - `Issue #765: NXcanSAS "radiation" duplicates NXsource + "type" `__ + - `Issue #762: [NXtomo] Need user + flags `__ + - `Issue #757: How to add extra attributes and avoid conflicts + with NeXus in the + future `__ + + .. rubric:: Minutes + :name: Telco_20200424_minutes + + Present: BW, AB, FA, HG, HB, MK, PJ, PC + + .. rubric:: NIAC + :name: Telco_20200424_niac + + - NOBUGS registration is split into separate days for the code + camp + - linking not yet + - spacing for SD is fine + - need to make sure teleconferencing is adequate + + .. rubric:: Pull Request #767 + :name: pull-request-767 + + - AB notes `PR + #767 `__ + is ready for final review. + - PJ notes that travis-ci reports a failure (reST syntax encoded + within XML). + + .. rubric:: Issue #748 + :name: issue-748 + + - NXreflections describes diffraction spots in a tabular format, + having evolved from historical practice of attributing and + recording diffraction spots from film-based photographs. + - it is a base class and not an appdef (currently) + - Both versions (base class and AppDef) have use cases. + - An Appdef should be written that has NXreflections as a major + component so that it can be used together with NXmx AB brings + up related Pull Request #767 + + .. rubric:: Issue #765 + :name: issue-765 + + - best to mark radiation as deprecated + - PJ to discuss with canSAS people + + .. rubric:: Issue #762 + :name: issue-762 + + - user def keys should be negative + - extra (or subgroup of fields) fields (NXnotes) needed to + describe user def keys + + - Need stadardised name for description + + - any new positive key should be NIAC approved + + AB asks MK: base classes can"t be a subentry + + - subentries must be AppDef + - entries can also be AppDef + + .. rubric:: Issue #757 + :name: issue-757 + + - HB suggests doing what the PDB community does and have a list + of registered prefixes + - starting with an underscore didn"t work out for PDB + - NIAC should grant power for approving prefix registration + - BW suggests prefixes be in uppercase to make them obvious to + human readers + - PJ suggests prefixes be followed by an underscore + - PJ will post new issue with proposal for the NIAC + + .. rubric:: Any Other Business + :name: Telco_20200424_any-other-business + + - PC asks NXuser for a group of users + + - MK suggests using multiple instances of NXuser + + - PC ask: is there a way to give numerical precision + + - should be applicable to any general field + - Outside of current scope - someone needs to propose a method + - perhaps as an attribute + + - HG asks: How has NeXus been approaching ontologies and mapping + metadata betwen formats + + - NeXus predates much of the current academic interest in + ontologies + - PJ suggests talking to a group at the ALS + - PJ asks if there is a general Ontology that NeXus can fit + within + - HG says that ontologies tend to sit next to each other as + peers, rather than under an umbrella ontology + + - PJ points to the index of the NeXus definitions as a starting + point to mapping the NeXus ontology + + - HG will create new GitHub issue for a published NeXus + ontology + - PJ proposed using information from the manual"s index as a + starting point + - PJ noted that various items of NeXus structure (group, + field, attribute) are automatically indexed + - MK noted that position in hierarchy is important since some + terms (such as ``name``) have multiple meanings + - ontology should include + + - `NeXus class + path `__ + to specify hierachy position + - documentation content from the NXDL for each item listed + + Next telco: Mid May, using a poll in the same manner as + previously. diff --git a/source/teleconferences/Telco_20200527.rst b/source/teleconferences/Telco_20200527.rst new file mode 100644 index 00000000..40706b6d --- /dev/null +++ b/source/teleconferences/Telco_20200527.rst @@ -0,0 +1,66 @@ +================= +Telco 20200527 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200527 + :name: telco-20200527 + :class: page-title + + .. rubric:: Date + :name: Telco_20200527_date + + Wednesday, 27 May, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20200527_agenda + + - NIAC 2020 + + .. rubric:: Minutes + :name: Telco_20200527_minutes + + AB, FA, HG, MK, PJ, PC, BW + + .. rubric:: NIAC 2020 + :name: Telco_20200527_niac-2020 + + - NOBUGS is going to be postponed until next year (probably May) + - Will need to do the meeting remotely if we stick to the October + dates. + - Will probably need to run it more like a teleconference with a + series of teleconferences to organise the topics and then break + up into interest groups. + - Need to have some discussion on the mailing list to make sure + everyone is well informed. + - Could still follow the NOBUGS meeting, maybe even doing both an + October virtual meeting and a 2021 meeting with NOBUGS. + - MK to check the previous NIAC minutes to clarify email voting + procedures. + + .. rubric:: Any Other Business + :name: Telco_20200527_any-other-business + + - AK has a pull request to be examined: + + - Jungfrau dataset format is now fully NeXus compliant. passes + cnxvalidate with no errors. + + - Soon the AGIP detector for EuXFEL will also be fully compliant. + + - PJ has created a `milestone + NXDL2020.10 `__ + for all issues to be considered for next release of + definitions. + + - PJ poked BW about making further progress on the logo issue. + Will set up a repository on dropbox for people to contribute + + - Next meeting to aim for last week of June. BW will send out a + doodle poll in advance to decide the exact date. diff --git a/source/teleconferences/Telco_20200701.rst b/source/teleconferences/Telco_20200701.rst new file mode 100644 index 00000000..d9cc9a66 --- /dev/null +++ b/source/teleconferences/Telco_20200701.rst @@ -0,0 +1,83 @@ +================= +Telco 20200701 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200701 + :name: telco-20200701 + :class: page-title + + .. rubric:: Date + :name: Telco_20200701_date + + Wednesday, 1 July, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20200701_agenda + + - NIAC2020 + + - BW has updated the `NIAC2020 + page <../niac/NIAC2020.html>`__ along + the lines of discussions at the previous telco. + + .. rubric:: Minutes + :name: Telco_20200701_minutes + + BW, MK, PJ, AB, TM, PC, FA, HB + + .. rubric:: NIAC and Code Camp + :name: Telco_20200701_niac-and-code-camp + + The upcoming October NIAC and code camp were discussed. With + NOBUGS being postponed until next year, a virtual event will take + place. + + It was decided to split the NIAC and code camp onto separate + weeks, so the main NIAC will take place Monday/Tuesday (12/13) + October and the code camp Monday/Tuesday (19/20) the following + week. There will be a final (extra) NIAC session after the code + camp finishes on 20th to discuss any matters arising from the code + camp. + + To avoid long sessions, and to try and manage participation across + time zones, it is planned to try and organise sessions around + specific topics and then schedule (as well as time zones allow) + for interested parties to attend. Any votes would be help + electronically post session, NIAC members not present at the + discussion will be able to see a summary of the discussions prior + to voting. A time span for voting will need to be agreed. + + The approach is to have a github issue for each matter, and then + to create a google docs spreadsheet to help organise these issues + into general topics and then schedule sessions. This approach + worked well in the January code camp. Some sort of poll mechanism + for voting is needed. + + Action: PC /AB to investigate Github polling + + .. rubric:: Other items + :name: Telco_20200701_other-items + + HB mentioned there is an NXmx e-workshop taking place on 22 + August, from 9 am to 3 pm Prague time. Contact him for more + details. + + PJ mentioned that several USA labs are working on an application + definition for x-ray photon correlation spectroscopy. They plan to + use NeXus for injecting data into the Blue Sky data broker. + + RB has been working on a program to generate template NeXus file + from NXDL. He is finding various inconsistencies in the + definitions while doing this and has been posting issues to github + about them, please check these and help him to understand the + intended meaning. + + Next telco, plan for mid august to avoid clash with ACA meeting in + early august. diff --git a/source/teleconferences/Telco_20200904.rst b/source/teleconferences/Telco_20200904.rst new file mode 100644 index 00000000..37e6ae67 --- /dev/null +++ b/source/teleconferences/Telco_20200904.rst @@ -0,0 +1,134 @@ +================= +Telco 20200904 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200904 + :name: telco-20200904 + :class: page-title + + .. rubric:: Date + :name: Telco_20200904_date + + Friday, 4 September, 15:00 CEST (+0200) + + Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + .. rubric:: Agenda + :name: Telco_20200904_agenda + + - NIAC2020 + - `Github + questions `__ + - NXmx "Gold Standard" changes: + + - `definition + changes `__ + - `cnxvalidate pull + request `__ + + - Mailing lists: + + - note that signing up for the NIAC list, doesn"t + automatically add you to the Nexus discussion list. + - Should we remove people from the NIAC list if their + membership of the NIAC ends + + .. rubric:: Minutes + :name: Telco_20200904_minutes + + Present: BW, HB, PJ, RB, HG, VAS, PC, WF, AP, MK + + .. rubric:: NXmx + :name: Telco_20200904_nxmx + + - Pull request is making sure the tags that the community needs + are included. + - HB asks that people take a look and he hopes that the PR can be + accepted by September 9th. + - HB says that Dectris would appreciate this being sorted out + very soon so that they can finalise their software. + - BW promises to look over it during the weekend. + - Replacing \_error with \_errors generally needs its own github + issue to make sure the community can see why the change + happened (to fit previous NIAC decision). + - We should break them up into separate PR to tackle it piece by + piece. + - Dectris is specifically asking for a NeXus release to quickly + follow the NXmx pull request. + + - We have a milestone for this aiming for the NIAC in October. + + - VAS offered to give a pull request to have CMake find the HDF5 + library from an environment variable. + + .. rubric:: Github Questions + :name: Telco_20200904_github-questions + + - VAS says NXcxi_ptycho is restricted to to raster scanning. + - BW recommends NXstxm as it is quite flexible. + - The inconsistent naming issue should be brought to the NIAC. + + - we should avoid ambiguity! + + - PC to look into who at Diamond might be using NXarpes. + - Russ to make a PR to suggest appropriate changes. + - Should make sure that the NXmx PR #793 contains a fix for issue + #782 + + .. rubric:: Mailing List + :name: mailing-list + + - BW points out some confusion about the mailing lists and + suggest that we add a note that subscribing to one list doesn"t + automatically subscribe you to the other. + - VAS suggests a purge is required to stop it from becoming a + public list + - HB and WF suggest not pushing people away - perhaps just ask if + they want to be removed + + .. rubric:: NIAC + :name: Telco_20200904_niac + + - PJ says polling on github might not work. + - VAS suggests doing a simple thumbs up/down on the github issue + to indicate their vote. + - BW suggests that emojis might not be best because it is easy to + mess up - but VAS corrects that a second click erases the + mistake + - BW and VAS propose emoji voting: + + - Thumbs Up for Yes, + - Thumbs Down for No, + - any other emoji for Abstain. + + .. rubric:: AOB + :name: Telco_20200904_aob + + - RB asks about the code camp - BW points to the page + - RB brings up syntax issues - BW suggests making single PR to + address each type of issue for all appl defs at once. + - RB says links are tricky to name automatically and there are + lots of inconsistencies + + - PJ says part of the problem is that some names need to be + flexible and we decided to try and indicate flexible names + as upper case, while required names are lower case. + - VAS suggests that cnxvalidate doesn"t check what kind of + object a "link" is, just that the object is present. + - HB says the problem is going to need to be figured out for + when virtual datasets become common. + - MK says the target_path of a link is somewhat historical and + maybe we should review that usage. + - VAS says ESRF is using these links + - BW suggests we make this an issue to discuss in the code + camp. + - HB points out that HDF5 has changed a lot in the past few + years. + + - Next telco will aim for the last week of Sept or first week of + October. `Poll `__ diff --git a/source/teleconferences/Telco_20200930.rst b/source/teleconferences/Telco_20200930.rst new file mode 100644 index 00000000..6c7da9cd --- /dev/null +++ b/source/teleconferences/Telco_20200930.rst @@ -0,0 +1,103 @@ +================= +Telco 20200930 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20200930 + :name: telco-20200930 + :class: page-title + + .. rubric:: Date + :name: Telco_20200930_date + + Wednesday, 30 September, 15:00 CEST (+0200) + + Original Hangout Link: + https://plus.google.com/hangouts/_/j72qwlvegiojjpt3a36pfhow5ua + + We exceeded attendence limit and so switched to Zoom. + + .. rubric:: Agenda + :name: Telco_20200930_agenda + + - NIAC2020 + - Issues on Github + + .. rubric:: Present + :name: Telco_20200930_present + + RO, PC, LS, MK, BW, SB, HB, HG, FA, PJ, AS, RB, TM, MO, WG + + .. rubric:: Minutes + :name: Telco_20200930_minutes + + There were many people at the meeting, and we exceeded the 10 + person limit for Google Hangouts. FA created a ZOOM link for the + meeting. It was decided that future meetings would use ZOOM and FA + would generate and circulate a meeting link for upcoming + teleconferences. There is no poll for the next TC as we will next + be meeting at the NIAC. + + RB is current reviewing NeXus definitions as part of his software + to generate a sample NeXus file from NXDL. As part of + `#800 `__ + he noticed that similar, but not always exactly the same, symbols + were being used in definitions. After a discussion it was agreed + that standardisation and consistent naming across definitions is a + good idea and RB will collect together a proposal for discussion + at the upcoming NIAC. HB asked that any changes could be phased in + with the old names first deprecated before removal. + + It was pointed out by MK that the code camp dates on one of the + web pages is incorrect (it refers to the pre-covid dates). This + was changed by BW during the meeting. Several new facility + representatives introduced themselves: SB (European XFEL), LS + (Extreme Light Infrastructure), MO (Soleil), WG (ORNL). Welcome to + the NIAC. + + PJ mentioned that GitHub will be changing the default branch from + `master to + main `__ + for new repositories in October. They will be providing tools to + `enable renaming existing + repositories `__ do this later + in the year so NIAC will revisit when these tools become + available. + + PJ mentioned that he has been approached regarding a NeXus + ptychography format for reduced data and how best to describe e.g. + beam centre x and y in NeXus. HB indicated that there are overlaps + with NXmx and it would be good to have a common approach and + terminology. It was agreed to discuss this at the NIAC/code camp. + NIAC + + PC offered to create ZOOM links for the NIAC + + The first day may need to start in the afternoon to allow planning + the remaining schedule to fit in with people"s timezones; however + this does lose the first morning. It may be possible to do some of + this time zone specific planning ahead of time. As a first step a + deadline of next Wednesday (7/10) has been set for submitting + items for discussion at NIAC to the NIAC repository on GitHub. All + items should have a ticket in the NIAC repository to record the + NIAC contribution and decision, if there is already an existing + ticket for the actual work then a separate NIAC ticket should be + created to reference the ticket in the other repository. PJ + described how using a google spreadsheet was very helpful in + keeping track of items at the code camp and that approach may be + taken at the NIAC too. + + Recording of the NIAC was discussed, but there may be GDPR or + other privacy issues to consider, so recording of the NIAC was + rejected. The ZOOM transcription system was tried and that may be + useful for providing initial minutes, but would not be published + as is. + + .. rubric:: Actions + :name: Telco_20200930_actions + + All: create tickets for items at NIAC 2020 by next Wednesday + (7/10) diff --git a/source/teleconferences/Telco_20201208.rst b/source/teleconferences/Telco_20201208.rst new file mode 100644 index 00000000..5276ab04 --- /dev/null +++ b/source/teleconferences/Telco_20201208.rst @@ -0,0 +1,142 @@ +================= +Telco 20201208 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20201208 + :name: telco-20201208 + :class: page-title + + .. rubric:: Date + :name: Telco_20201208_date + + Tuesday, 8 December, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20201208_connect + + - ZOOM VC link: + https://ukri.zoom.us/j/97459887639pwd=TFRuU3lYUWRiNGoxcC9MQkFQTW1iZz09 + - Meeting ID: 974 5988 7639 + - Password: 243582 + - Dial in number details: https://ukri.zoom.us/u/ag6oYfxOO + - Test connection: https://ukri.zoom.us/test + + .. rubric:: Agenda + :name: Telco_20201208_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `September + Telco `__, `NIAC + 2020 `__ + - Discuss responses to `Future of NAPI + questionaire `__ + - Issues on Github labelled with "telco" + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20201208_present + + Present: WG, SC, RO, BW, MK, FA, RB, PJ, PC, HG, SB, TM, MO + + .. rubric:: Minutes + :name: Telco_20201208_minutes + + The resolutions from NIAC2020 were `all + passed <../niac/NIAC2020.html#decisions>`__ + + BW will check that tickets related to these decisions are closed. + Any issues that are remaining, were not discussed, or + inconclusive, will be handled at a future NIAC + + RB had previously mentioned a program he has developed for + generating example NeXus files from NXDL. He described how this + had been recently extended to also generate example h5py files, + which all agreed was a useful addition. + + The recent code camp was discussed and it was agreed that the + event had been good at focussing effort and making progress and so + another virtual code camp would be arranged for 2021. BW will + create a poll to choose a preferred date, sometime in + february/march/april. We will discuss code camp agenda items at + next TC. + + PJ mentioned the recent GitHub change of default master -> main + branch. He will investigate the impact of making this change over + the next month or two. + + SC mentioned the recent policy change at Travis CI and how this + was causing problems, PJ suggested we move to GitHiub actions. He + shared a couple of useful links on `migrating travis to githuib + actions `__ + and `pythin + testing `__ + WG also shared an example of how this had been done in `another + project `__ + + SC has been working on including nexus in Linux package + repositories and it is now available in `Fedora + linux `__ + + PJ is continuing to look at the generation of html anchors, which + are related to persistent identifiers (PIDs) proposal `presented + by HG at + NIAC2020 `__ + + The sphinx version of the user manual seemed to have stopped + building on the STFC server. Action FA to check (turns out to be + missing python package after O/S upgrade; now fixed) + + .. rubric:: NAPI Future + :name: napi-future + + The feedback from the questionaire circulated to the mailing list + was dicussed. Most facilities are either no longer using NAPI, or + are building their own copy and able to maintain that themselves. + A few people are still depending on a maintained NAPI, namely the + Mantid and McStas software and a planned upgrade at the LANL + facility. The bindings being used here were HDF4 and HDF5, nobody + reported use of NAPI XML bindings. + + It was decided to keep NAPI in maintenance mode, but to make a few + changes to ease workload: + + - drop support for XML bindings from NAPI + - Review dropping HDF4 support if including becomes difficult in + future (due to e.g. HDF library changes or dropped support) + - provide a pre-compiled staticly linked binary of NXCONVERT that + supports all formats, together with examples of how to use it + to convert XML/HDF4 files -> HDF5 + - The old python bindings would be kept in the repository for + now, but not be built/bundled in any distribution kit + + RO suggested that NAPI could be moved into a separate repository + and community managed separate to nexusformat. As we are keeping + minimal maintenance, it was decided to keep it in its current + location for now, but the situation would be reviewed. Separating + it from the main nexusformat organisation would make it easier for + other interested parties to maintain e.g. otherwise dropped + formats/utilities/bindings as needed, they could currently fork + the existing code and do this, but that may lead to confusion + between "official" and "unofficial" bindings. + + WG mentioned that ORNL were looking at ways to improve the + interaction of programs with HDF5 in a multi threaded environment. + + .. rubric:: Actions + :name: Telco_20201208_actions + + - Propose Code camp items on next TC agenda + - `Poll for code camp + dates `__ + + .. rubric:: Next Meeting + :name: Telco_20201208_next-meeting + + Proposed for mid - end January 2021 + (`poll `__) diff --git a/source/teleconferences/Telco_20210120.rst b/source/teleconferences/Telco_20210120.rst new file mode 100644 index 00000000..e97eb488 --- /dev/null +++ b/source/teleconferences/Telco_20210120.rst @@ -0,0 +1,109 @@ +================= +Telco 20210120 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20210120 + :name: telco-20210120 + :class: page-title + + .. rubric:: Date + :name: Telco_20210120_date + + Wednesday, 20th January, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20210120_connect + + - ZOOM VC link: + https://ukri.zoom.us/j/94744239709pwd=WE9qakVzQkZzV29KTjV4WmV0SEhwQT09 + - Meeting ID: 947 4423 9709 + - Password: 540966 + - Dial in number details: https://ukri.zoom.us/u/abmDsHyAE5 + - Test connection: https://ukri.zoom.us/test + + .. rubric:: Agenda + :name: Telco_20210120_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `December + Telco `__ + - Discuss `upcoming code + camp `__ + format and `date `__ + - Issues on Github labelled with "telco" + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20210120_present + + BC, FA, HB, MK, RB, HG, BW, PJ, SB, PC, RO, SC, MO, WG + + .. rubric:: Minutes + :name: Telco_20210120_minutes + + The committee welcomed BC, who gave a brief overview of NeXus + usage at LANL. Their current system is linux based and using an + old version of NAPI to write HDF4. There are plans to update this + at a future time. + + PJ had been working with HG on the generation of html anchors and + references to link to an ontology, see `persistent identifiers + (PIDs) `__. They + have also been talking to the `ExPaNDS + project `__ about how this might be used. PJ + demonstrated how a table of anchors was now generated and + displayed at the end of each class, there is not currently a table + showing all of these in one place, but it could be added. HG + suggested that references could be used in packages such as iCAT. + HB would love to see a keyword and context document, mapping CIF + to NeXus terms, that made use of these links. HG commented that + terms would need an associated PID to maintain a unique context + and not fix usage to any particular class link. It was agreed that + the current work was complete enough to be merged, but PIDs would + be looked at next - maybe some could be created, registered, and + linked to anchors. Using + `ePICs `__ was suggested, see also + `here `__. RO + suggested that this may be something that could be linked with the + `Research Data + Alliance `__. + + The upcoming code camp was discussed next. Best dates from the + `Doodle poll `__ look to + be 22 March or sometime April, we will discuss next meeting after + dates for a few other potentialy clashing events will be known + then. Last time this event was held a rolling set of VCs was + arranged. FA suggested that we may be able to use Guest accounts + on the STFC Microsoft Teams instance, he is investigating this for + another meeting and will report back. The problem with just ZOOM + is that chats are not persistent. Other options could be: + + - Use Github discussions on nexusformat for persistent chats, + google docs for a progress spreadsheet, plus zoom (or other vc) + with breakout rooms for meeting wwhen required + - Use `zoom + channels `__ + for chat as these are persistent, plus ZOOM for meetings. + - If we felt ambitious, set up a `Discourse + instance `__ + + It was agreed that PJ should now proceed with the change from + ``master`` to ``main`` as the default git branch on our + repositories + + .. rubric:: Actions + :name: Telco_20210120_actions + + FA to report back on using MS Teams for code camp + + .. rubric:: Next Meeting + :name: Telco_20210120_next-meeting + + End of February - `Doodle + poll `__ diff --git a/source/teleconferences/Telco_20210303.rst b/source/teleconferences/Telco_20210303.rst new file mode 100644 index 00000000..ec980694 --- /dev/null +++ b/source/teleconferences/Telco_20210303.rst @@ -0,0 +1,87 @@ +================= +Telco 20210303 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20210303 + :name: telco-20210303 + :class: page-title + + .. rubric:: Date + :name: Telco_20210303_date + + Wednesday, 3rd March, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20210303_connect + + - ZOOM VC link: + https://ukri.zoom.us/j/94651392103pwd=aEVHSW54RVoyMDQxZjNWcGltcWhPdz09 + - Meeting ID: 946 5139 2103 + - Password: 007154 + - Dial in number details: https://ukri.zoom.us/u/adnVUOrsRS + - Test connection: https://ukri.zoom.us/test + + .. rubric:: Agenda + :name: Telco_20210303_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `January + Telco `__ + - Discuss upcoming code camp + - Issues on Github labelled with "telco" + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20210303_present + + MK, FA, PC, WG, BW, SB, AB, MO, HB, PJ, RB, BC + + .. rubric:: Minutes + :name: Telco_20210303_minutes + + Technology options for the code camp were discussed, such as + Github Discussion, Slack, zoom channels. Zoom channels looked like + they may be worth a go. We could just keep all details on issues, + but this may get a bit cluttered. Action on FA to set up some + technology options to try. It was agreed that having the issues on + a GitHub project worked well last time. + + The date of the code camp was fixed for 22nd March, taking place + on Monday and Tuesday with a sum up session on Monday 29th + + Thank you to PJ for renaming GitHub master -> main in our + repositories + + BW raised the issue of packaging as he had been looking at + anaconda and conda-forge. PJ commented that conda-forge was better + than pip at resolving dependencies and managing binaries, and it + was used by `BlueSky `__. He + recommended making your own conda channel first. WG shared a link + showing Conda is also more general than `just + python `__. + It was suggested that having cnxalidate on conda would be useful - + maybe a code camp task nexpy is `already available on + conda-forge `__ and punx + is on the `nsls2 forge `__. + WG shared a link to the `Spack `__ package + manager that has been used at ORNL. + + PJ mentioned a question he had been asked regarding recording + processing details from EPICS area detector plugins in NeXus + files. Choices were as an NXnote or NXprocess. It was agreed that + for this case NXprocess was appropriate as the pluguns could + provide sufficient details. + + .. rubric:: Actions + :name: Telco_20210303_actions + + FA: set up some technology options for people to try + + .. rubric:: Next Meeting + :name: Telco_20210303_next-meeting diff --git a/source/teleconferences/Telco_20210505.rst b/source/teleconferences/Telco_20210505.rst new file mode 100644 index 00000000..43af03f6 --- /dev/null +++ b/source/teleconferences/Telco_20210505.rst @@ -0,0 +1,124 @@ +================= +Telco 20210505 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20210505 + :name: telco-20210505 + :class: page-title + + .. rubric:: Date + :name: Telco_20210505_date + + Wednesday, 5th May, 13:00 UTC + + .. rubric:: Connect + :name: Telco_20210505_connect + + - ZOOM VC link: + https://psich.zoom.us/j/63296893144pwd=NlBsSjZGMERRcy9oOUJBdHk4bXRGUT09 + - Meeting ID: 632 9689 3144 + - Password: 130129 + - Dial in number details: https://psich.zoom.us/u/ccLS86vcDS + + .. rubric:: Agenda + :name: Telco_20210505_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `March + Telco `__ + - Discuss the proposed NeXus ontology, including: + + - use of the namespace http://purl.org/nexusformat/definitions + - hosting the ontology and the code to generate it from NXDL + in the nexusformat github repository. + + - Issues on Github labelled with "telco" + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20210505_present + + BW, SC, HG, MK, PC, AB, HB, PJ, TM, FA, WG + + .. rubric:: Minutes + :name: Telco_20210505_minutes + + The previous TC has been combined with a closeout session of the + code camp. BW thanked people for their work and the code camp and + in tidying up tickets subsequently. + + The main topic for the meeting was to discuss the proposed NeXus + ontology. HG had invited SC (Steve Collins, Diamond Light Source) + to present some of what they had been working on. The ontology + work has been done as part of ExPaNDS task 3.2 to "develop EU + photon and neutron ontologies" It aims to standardise metadata in + metadata catalogues to use common semantics and also to link to + similar or equivalent items in other vocabularies where possible. + SC presented a summary of the ideas involved and demonstrated an + ontology browser and the python code used to generate the ontology + from the NXDL files and markers that had been added to them (the + python uses the owlready2 package). It was proposed to host the + generating scripts and output ontologies in the nexus github + repository. PJ suggested a separate ontology repository, and that + the ontology should be tied to an NXDL release (in the + owl:versioninfo field). + + - Ontologies can be uploaded to sites such as + `Bioportal `__. + + - A + `PURL `__ + (or set of PURLs) provides a persistent name coupled with a + (modifiable) URL to point to the location of the OWL ontology + file(s). + + - Scripts build the `OWL ontology `__ + using only the NXDL files as input, aside from a few paragraphs + of text that explain the purpose of the document. The ontology + can be viewed as just an alternative documentation of NeXus, + focused on the semantics, and doesn"t affect how data files + should be written, read or interpreted. + + - The ontology itself is a single file with a format similar to + XML. + + - We probably want to build an ontology for each major release of + NeXus. (And therefore perhaps have a PURL for each.) + + - All present agreed that hosting the files on github doesn"t + require a NIAC vote, but the use of the NeXus name in a PURL + should go to a NIAC vote. Once the files are properly set up in + the new `NeXusOntology github + repo `__ then we + will have something more concrete to base a vote on. + + - PC brought up an issue where the assumption that a beam lies on + the Z-axis was problematic and suggested adapting NXbeam to + allow description of other geometries. + + - BW brought up the case of accelerator groups wishing to use + NeXus, but not having a sample, and suggested thinking about a + more general solution to defining the coordinate system. + + - Many facilities use "survey points" to measure the positions of + equipment. + + .. rubric:: Actions + :name: Telco_20210505_actions + + HG, PJ: Use the new `NeXusOntology github + repo `__ to build a + full demonstration of the NeXus ontology project. PC: Investigate + ways to define coordinate systems. + + .. rubric:: Next Meeting + :name: Telco_20210505_next-meeting + + Aim for the beginning of June - + `poll `__ diff --git a/source/teleconferences/Telco_20210628.rst b/source/teleconferences/Telco_20210628.rst new file mode 100644 index 00000000..1f35396e --- /dev/null +++ b/source/teleconferences/Telco_20210628.rst @@ -0,0 +1,112 @@ +================= +Telco 20210628 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20210628 + :name: telco-20210628 + :class: page-title + + .. rubric:: Date + :name: Telco_20210628_date + + Monday, 28th June, 13:00 UTC + + .. rubric:: Connect + :name: Telco_20210628_connect + + - ZOOM VC link: + https://psich.zoom.us/j/62714818737pwd=V3FJZHVWUWN1TU1IYkU3Z3Y5dlZuQT09 + - Meeting ID: 627 1481 8737 + - Password: 314159265 + - Dial in number details: https://psich.zoom.us/u/cdW7YV91uK + + .. rubric:: Agenda + :name: Telco_20210628_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `May + Telco `__ + - The NeXus ontology and scripts are now on + `github `__ + - The `European HDF5 users online + meeting `__ will + be held on July 7-8. + - Issues on Github labelled with "telco" + + - `definitions `__ + - `code `__ + + Present: BW, MK, FA, HG, PC, LS, PJ, RB, WG, AB + + .. rubric:: Minutes + :name: Telco_20210628_minutes + + At last TC, PC raised the issue with the assumption that beam lies + on the Z-axis was problematic and suggested adapting NXbeam to + allow description of other geometries. He has not been able to + look at this further since then, but will try to. It was suggested + that we might want to allow using survey points, but these may be + better known to the survey team than the scientists. + + The script to generate the `NeXus + ontology `__ is now + on Github. A vote of the NIAC is required for use of a + http://purl.org/nexusformat/definitions namespace as the + `PURL `__ + and with summer approaching it looked unlikely to get the + necessary discussion quorum as per constitiuion so this is likely + to happen september. The external python modules requried to run + the script are listed in comments in the script, but it was + suggested a ``requirements.txt`` (or similar) file would be + helpful. Currently the scipt version is encoded in the script + name, this may make it harder to package/update later. PC offered + to do a code review. + + The `European HDF users group summer 2021 + meeting `__ is taking + place afternoons of 7-8 July, unfortunately this clashes with the + EPICS collaboration meeting. PC and LS indicated they may attend, + BW thought it would be useful if there was a NeXus presentation at + the meeting and may be able to do this if nobody else was + available. AB is unable to attend the meeting due to a clash, but + has some HDF5 data rate issues that he would be grateful if + somebody could raise, they happen when writing 900000 frames in 5 + minutes. There was some discussion about whether the use of + subfiles could be avoided, maybe parallel HDF5 would help. WG, PC + and AB were going to discuss further. PJ mentioned that people + working at US national labs must request authorisation to attend + conferences 45 days in advance - even if they are online meetings. + + AB mentioned a collaborator who wished to add the definition git + commit id as an attribute to his data files. The committe was + happy for a proposal to be submitted to extend the definitions, + but the person concerned is free to add the value now if they + follow `data/prefix + rules `__ + + A `recent submitted + issue `__ + asked about scanning with ``NXfluo``. It looks like the definition + needs generalising to allow the additional scan ``npts`` + dimension. This probably applies to other definitions too and may + be a future code camp topic. In addition, we should document any + implied rules that we might have e.g. can always scan an axis with + an implied ``npts``. + + PJ raised the question of whether counts should have a NeXus unit, + or just be dimensionless. After discussion and reviewing of + https://github.com/nexusformat/definitions/blob/main/nxdlTypes.xsd + and + https://github.com/nexusformat/definitions/blob/main/nxdlTypes.xsd#L50 + it was suggested that ``NX_PULSES`` fulfills a similar role and + maybe deprecating that for a new NX_COUNT is the way to go. PJ + suggested that we consider examining a unit-conversion program + (such as `pynt `__) to see how + others in the scientific community address corner cases like + "counts". + + Next meeting end of July diff --git a/source/teleconferences/Telco_20210728.rst b/source/teleconferences/Telco_20210728.rst new file mode 100644 index 00000000..08ec3ca7 --- /dev/null +++ b/source/teleconferences/Telco_20210728.rst @@ -0,0 +1,105 @@ +================= +Telco 20210728 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20210728 + :name: telco-20210728 + :class: page-title + + .. rubric:: Date + :name: Telco_20210728_date + + Monday, 28th July, 13:00 UTC + + .. rubric:: Connect + :name: Telco_20210728_connect + + - ZOOM VC link: + https://psich.zoom.us/j/65466024905pwd=ckExUG9hQm1uSFFWSTNJS0VpRThQdz09 + - Meeting ID: 654 6602 4905 + - Password: 684368 + - Dial in number details: https://psich.zoom.us/u/cBfhroi0v + + .. rubric:: Agenda + :name: Telco_20210728_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `June + Telco `__ + - Issues on Github labelled with "telco" + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20210728_present + + BW, RB, MK, PJ, PC, AB, WG, TM, SC, HB + + .. rubric:: Minutes + :name: Telco_20210728_minutes + + In June, PC has promised to review the code for the NeXus + ontology. He reports that comments have been provided, but that no + further actions have happened yet. + + The `European HDF users group summer 2021 + meeting `__ was + attended by a few NeXus representatives. BW commented that the + talk on the HDF5 embedded user functions looks very powerful, but + far too risky for widespread adoption. AB commented that it would + solve his issues of online data normalisation that he is currently + addressing via a custom reader in DIALS that has a hardcoded + formula and knows where to find the relevant pedestal and gain + values to apply. + + Further discussion on adding NXcounts as a NeXus unit showed that + nobody present objected to such an addition, but some wanted to + make sure that there was full opportunity for anyone on the NIAC + to raise an objection. It was not clear that the addition of + NXcounts was significant enough to warrant a full NIAC vote (maybe + the omission is just a bug that needs fixing, rather than a change + to the stadard), so BW suggested starting by posting on the NIAC + mailing list to request opinions. + + Revisiting the question about `scanning in + NXfluo `__ + with the new info from the issue creator, it seems that NXstxm is + a good fit. MK commented that NeXus has a general scanning + strategy, but it isn"t formally written down. This would make a + good project for a future code camp. + + A new issue requests `adding MetalJet as a new NXsource + type `__. + There is general agreement that new laboratory X-ray sources have + been developed and are common enough to merit a new NXsource type. + However, BW thinks that MetalJet might be too narrow and that + "liquid jet" might be a more appropriate category name since there + also exists X-ray sources based on jets of + `nitrogen `__ or + `water `__. BW will ask for + further opinions on the mailing list. + + New NDXL images BW questions anySimpleType, PJ says it comes from + XML. https://www.w3schools.com/XML/schema_simple.asp + + AB brought up again the request to `add a git revision attribute + to + NXentry `__. + While it was generally agreed that people were free to add extra + info to their files, there were some questions about the merits of + any strategy that would require knowing the git revision rather + than just the NeXus release version. AB was unsure (and would ask + his collaboarators), but thought is was about being able to find + the full NXDL specifications online. It was noted that the + `releases page for the github + repository `__ + listed the commit ids together with the release versions and that + this might be helpful. + + Since many people expect to be busy in the end of August, the next + telco will aim for early to mid september. diff --git a/source/teleconferences/Telco_20210915.rst b/source/teleconferences/Telco_20210915.rst new file mode 100644 index 00000000..f3658477 --- /dev/null +++ b/source/teleconferences/Telco_20210915.rst @@ -0,0 +1,71 @@ +================= +Telco 20210915 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20210915 + :name: telco-20210915 + :class: page-title + + .. rubric:: Date + :name: Telco_20210915_date + + Wednesday, 15th September, 13:00 UTC + + .. rubric:: Connect + :name: Telco_20210915_connect + + - ZOOM VC link: + https://psich.zoom.us/j/69308827429pwd=M2ZEYk5yREdZUWlEeHgwc0gxdXdwUT09 + - Meeting ID: 693 0882 7429 + - Password: 314539 + - Dial in number details: https://psich.zoom.us/u/cbMgHelbOz + + .. rubric:: Agenda + :name: Telco_20210915_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `July + Telco `__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20210915_present + + BW, AB, PJ, PC, HB, MK, UH, RB, SP + + .. rubric:: Minutes + :name: Telco_20210915_minutes + + - UH presented some further info on photoemission spectroscopy of + liquid surfaces (using synchrotron excitation sources on + microjet targets). The NXarpes application definition has many + required elements, but is not fitting in some ways requiring + some extra data dimensions and missing important sample + information (liquid jet). + + - Advice is to write a new application definition and new or + amended base classes. + - For the description of light polarisation, the Stokes + parameters are recommended and HB will present something on + the topic at the next telco. + + - RC asks if anyone had used `NXdector_module to describe a + ROI `__ + - Dectris would like to be able to add an extra `"channel" + dimension `__ + to the data array that their detectors record. The issue seems + to be driven by the feature of automatic thresholding where the + gain settings of a pixel self-adjusts based on its rate of + charge acquisition and therefore the gain and offset that + should be applied depends on which thresholds were exceeded. + More discussion is probably needed as the proposal indtroduces + new complexity to some fundamental parts of NeXus. + - "axes" as a dataset attribute should be marked as "deprecated" diff --git a/source/teleconferences/Telco_20211115.rst b/source/teleconferences/Telco_20211115.rst new file mode 100644 index 00000000..18aabc72 --- /dev/null +++ b/source/teleconferences/Telco_20211115.rst @@ -0,0 +1,88 @@ +================= +Telco 20211115 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20211115 + :name: telco-20211115 + :class: page-title + + .. rubric:: Date + :name: Telco_20211115_date + + Monday, 15th November, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20211115_connect + + - ZOOM VC link: + https://psich.zoom.us/j/69154353855pwd=RW00eXRGa09tNWRHU202SDdLaTJzZz09 + - Meeting ID: 691 5435 3855 + - Passcode: 16022 + + .. rubric:: Agenda + :name: Telco_20211115_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `September + Telco `__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20211115_present + + BW, RO, RB, MK, TM, PC, HB + + .. rubric:: Minutes + :name: Telco_20211115_minutes + + PC presented proposal for describing a ROI in `issue + #944 `__ + + - BW asks about representing a different use case where the + "parent" dataset is not recorded (e.g. the detector output is + limited to a subset of pixels and only this subset is + recorded). + - MK asks if this really belongs in NXdetector since it looks + more like processed data than raw data + - Would be better to be described more generally than only as a + child of NXdetector + + BW describes discussions with Dectris about `issue + #940 `__ + (`summary `__) + + - RO likes restricting data variable labels to NX_NUMBER but is + not opposed to `issue + #945 `__ + - Different types of link are already + `allowed `__ + and their target can be discovered in HDF5. Perhaps we need to + document and advertise which calls can/should be used + + Draft `application definition for + XPCS `__ + + - MK thinks that the variables are not very descriptive (e.g. + g2), but PC says that it is standard nomenclature in the field + - the scripts from RB could be useful to illustrate the structure + of a proposed application definition + - BW suggests that the scripts from RB could be added to the + nexus_format package to make it more easily available to people + planning new application definitions + - RB will try to make his script more resilient against minor + issues often found in contributed application definitions + + Should we have another virtual NIAC in Spring 2022 There are + plans for a hybrid NOBUGS in Autumn 2022. BW suggests encouraging + more discussion on github before starting video discussions so + that we can be more time-efficient. + + Next meeting in mid December diff --git a/source/teleconferences/Telco_20211215.rst b/source/teleconferences/Telco_20211215.rst new file mode 100644 index 00000000..a6484197 --- /dev/null +++ b/source/teleconferences/Telco_20211215.rst @@ -0,0 +1,112 @@ +================= +Telco 20211215 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20211215 + :name: telco-20211215 + :class: page-title + + .. rubric:: Date + :name: Telco_20211215_date + + Wednesday, 15th December, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20211215_connect + + - ZOOM VC link: + https://psich.zoom.us/j/65356830562pwd=VFJ1R2ROUzU2bWZ1MjloOERYVy9mUT09 + - Meeting ID: 653 5683 0562 + - Passcode: 387565 + + .. rubric:: Agenda + :name: Telco_20211215_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `November + Telco `__ + - Next release of definitions : when (was scheduled for 2021-10) + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20211215_present + + BW, HG, LG, RB, CZ, SB, PJ, PC, WdN, AB, HB + + .. rubric:: Minutes + :name: Telco_20211215_minutes + + .. rubric:: New Members + :name: new-members + + - WdN is new ESRF rep where there is a new data acquistion that + writes HDF5/NeXus + - LG is new rep for Eu XFEL, also NeXus compliant + - SB presents FAIRmat infrastructure project that he is working + in and producing lots of new draft base classes and application + definitions. + - SB asks LG about links between ontology and data files. + - CZ is new rep from ORNL (had some technical issues with + microphone volume), primarily workin with Neutron sources. + + .. rubric:: Issues + :name: issues + + - PJ asks if we still need an environment.yml file in the + documentation repo + + - noone sees a need for it + + - HG NFDI project would want to coordinate with FAIRmat, rather + than working in parallel. + + .. rubric:: Next Release + :name: next-release + + - PJ aims to have a somewhat annual release of the definitions + - Schedule releae for March 2022 + + .. rubric:: Issues + :name: issues-1 + + - PJ suggest dropping support for python <3.7 since 2.6 is at the + end of its support period. + + - PC suggests also removing any use of the six module since it + shouldn"t be need when there shouldn"t be any Python2 code + - PC further suggests switching to h5py version3 - PJ thinks + it may not be needed (happens automatically) + + - PJ asks if we are ready to cut the cord from the Jenkins + server PC thinks yes. PJ waiting for acknowledgement from FA. + - PJ discusses adopting Github workflow + + - Github (branch, not yet main) will autonatically build the + docs on every push and will publish it if there is a release + tag provided. + - Will wait for FA before implementing it in main. + + - HG asks for details about the yml file that PJ asked her to + create for the ontology repo + + - PJ says it is mostly for setting up the appropriate + python/conda environment required to run the code. + + - PC presents PR#957 for describing a POI. + + - mostly complete, but still an issue with declaring which + fields are optional. + + - PC has also been working on NXbeam to define the reference + plane of the polarisation. + + Next meeting to be in the second half of January, 2022. + `poll `__ diff --git a/source/teleconferences/Telco_20220131.rst b/source/teleconferences/Telco_20220131.rst new file mode 100644 index 00000000..4b0ac5f8 --- /dev/null +++ b/source/teleconferences/Telco_20220131.rst @@ -0,0 +1,110 @@ +================= +Telco 20220131 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220131 + :name: telco-20220131 + :class: page-title + + .. rubric:: Date + :name: Telco_20220131_date + + Monday, 31st January, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20220131_connect + + - ZOOM VC link: + https://psich.zoom.us/j/65356830562pwd=dERIbEtvWk5mMDE0c1BBc1RmTC9UUT09 + - Meeting ID: 653 5683 0562 + - Passcode: 602214 + + .. rubric:: Agenda + :name: Telco_20220131_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `December + Telco `__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20220131_present + + BW, WdN, HB, HG, TM, LG, RO, UH, AB, MK, SB, PC + + .. rubric:: Minutes + :name: Telco_20220131_minutes + + - PC has moved the ROI base class to contributed and is ready for + NIAC review. NXbeam is also ready for review. + - SB asks for clarification of NXbeam vs NXsource: + + - NXbeam - at some position + - NXsource - at point of beam production + + - Dectris asked about `end_time_estimated being a required + field `__. + HB says it is needed in order to make sure that something is + written about the end-time since the actual end time might be + omitted if things go wrong. It reflects the importance of being + able to estimate the dose applied to the sample. + + - RO suggested including it in the base class for more general + use. + - SB asked if the FIELD_variant would be a viable alternative. + There is general agreement that it would, but that the + specific field could carry a more specific meaning than the + FIELD_variant system. + + - SB asks if we should generally be pushing new fields from + application definitions into the corresponding base classes. + There is general agreement that this is good - we want to bring + the application definitions closer together whenever we can and + the base classes are our tools for doing so. + - SB aks about showing the candidate changes/additions similar to + the contributed application definitions. + + - HB suggests having future release candidate branches. + - BW warns not to muddy the waters. There should be a clear + distinction between what is part of the standard and what + isn"t. It is OK to give informal hints about which proposals + are being discussed favourably, but we should not encourage + usage of any field that has not yet been approved since + there are often last-minute tweaks that could cause + already-written fields to contain false information. + + - Dectris pointed out that `NXdetector documentation refers to + NXgeometry, which is + deprecated `__. + PC points out that there is already a pull-request pending. + - BW asks about NOBUGS and options for the next NIAC: + + - MK says that the plan is for a 19-22 September hybrid NOBUGS + and for a hybrid NIAC the week before. + - HB says US people need the NOBUGS info published asap in + order to get travel permission (tpyically takes 4-6 months). + - Still appetite for a virtual NIAC in March - SB is depending + on it for his projects schedule. BW will quickly send out a + poll to choose the precise dates. + + - RO says John Wright has working group with IUCR on synchrotron + data standardisation and he is recommending NeXus. Newcomers + are welcome. (IUCR data reporting) + - SB asks about storing complex numbers (HB extends to + quaternoins). MK says it hasn"t been well defined. PC says that + he sets up a composite HDF dataset to match what h5py does. + - SB asks about having more than one signal in an NXdata. RO says + we have auxilliary_signals and it is implemented in NeXpy. + + BW will send out a poll for the `next telco in mid-late + February `__ (in + addition to a poll on the `March NIAC + dates `__). diff --git a/source/teleconferences/Telco_20220225.rst b/source/teleconferences/Telco_20220225.rst new file mode 100644 index 00000000..ae58fc8d --- /dev/null +++ b/source/teleconferences/Telco_20220225.rst @@ -0,0 +1,105 @@ +================= +Telco 20220225 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220225 + :name: telco-20220225 + :class: page-title + + .. rubric:: Date + :name: Telco_20220225_date + + Friday, 25th February, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20220225_connect + + - ZOOM VC link: + https://psich.zoom.us/j/68711884689pwd=YlF5VmtNbDdrOHJkYXc2YTlGWWMxdz09 + - Meeting ID: 687 1188 4689 + - Passcode: 183302 + + .. rubric:: Agenda + :name: Telco_20220225_agenda + + - Welcome new members + - Review previous meeting minutes and actions: `January + Telco `__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + + - `NXxpcs `__ + is a new contributed definition (to be an application + definition) + - add + ```NX_ARBITRARY_UNITS`` `__: + Does this **need** a NIAC vote + + - `code `__ + + - NeXus ontology and namespace usage + + - add to agenda for next NIAC + + - Spring virtual NIAC + - Autumn hybrid NIAC + + .. rubric:: Present + :name: Telco_20220225_present + + BW, CZ, HB, PJ, FA, SB, LG, RB, HG, AB, RO, WDN + + .. rubric:: Minutes + :name: Telco_20220225_minutes + + - NIAC on March 3rd, 4th, with special effort to have a chorum on + the 4th. + - SB to make pull requests + - Ontology email aacount - special email address that forwards to + nexus-committee Or is it just a login ID + - NXxpcs app def - want xpcs data in a common format - is ready + for contribution + - New type of units "arbitrary units" + - SB prefers to calculate combination units on the fly + - RO asks what is supposed to be the validation consequences of + arb units + - BW says that au is problematic anyway because it is a + nonstandard description that is commonly used (add to proposal + #921) + - SB thinks arb units is equivalent to unknown units. + - RO and PJ can agee on "unkown" units as a compromise (NX cansas + can consider using this) + - PJ will make the changes in NXxpcs + - LG wants to be able to state photon flux differently from NXmx + since XFELs provide photons differently + - Problem is that a pulse has unknown time + - Other problem is that NDXL currently doesn"t easily allow + requiring one of a set of fields. + - AB and HB think this is just a bug and short name should be + optional - AB will fix it + - SB wants to have a nexus workshop in Germany 17-18 March to + bring people and projects together + - would like someone to introduce the NIAC, sample environment, + validation, data processing/visualisation + - BW volunteers to talk at the meeting. + - AB thinks that he could also speak but needs to check beamtime + schedule. + - AB will add the NIAC vote needed tag to #942 + - SB asks about inheritance - HB says we should look at UML, + which adresses this question. HB thinks there is value in + having specific inheritance rules. BW would like to see a + specific proposal to avoid endless ideological discussions. + - SB asks about linking between fields and how a link can be + required in an app def (using NXDL) + - AB says that NeXus is meant to be independent of the file + format implementation (i.e. HDF5 is not a requirement) + - SB asks if someone from ESRF could speak at the workshop about + NeXus use or utilities WDN will discuss availability with + colleagues. + - BW will publish a NIAC schedule asap diff --git a/source/teleconferences/Telco_20220426.rst b/source/teleconferences/Telco_20220426.rst new file mode 100644 index 00000000..500a7136 --- /dev/null +++ b/source/teleconferences/Telco_20220426.rst @@ -0,0 +1,203 @@ +================= +Telco 20220426 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220426 + :name: telco-20220426 + :class: page-title + + .. rubric:: Date + :name: Telco_20220426_date + + Tuesday, 26th April, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20220426_connect + + - ZOOM VC link: + https://psich.zoom.us/j/67499186547pwd=b3FjR3dYRzgxTGpVaWVPODBBQjRaQT09 + - Meeting ID: 674 9918 6547 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20220426_agenda + + - Welcome guests and new members + - Review previous meeting minutes and actions: `February + Telco `__, `Spring virtual + NIAC <../niac/NIAC2022_spring.html>`__ + - Review of the recent `NFDI + workshop `__ + - File format alternatives to HDF5 and XML such as + `ADIOS `__ and + `Zarr `__. + - Discussion on mailing list showed some concerns about reading + archives if the container format is not restricted. (Is this + part of the NeXus mission) + - What should be our core definition of how NeXus is expressed in + each container file format Options include: + + - English description in manual (i.e. current implementation). + - Functional code (e.g. validator, reader, writer). + - XML declarations. + - Example files (maybe make an ``NXexample`` application + definition for this purpose). + + - Format of Code Camp during week of May 9-13th + + - Main aim is to reach the `release + milestone `__ + - Reschedule due to conflict with `EPICS + Codeathon `__ + + - `2022 HDF European user group + meeting `__ + - `Brian + Maranville `__ + has made on `online version of + cnxvalidate `__. + We may wish to endorse this and provide hosting. + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20220426_present + + BW, WDN, HB, FP, MK, RB, CZ, NS, AB, GG, HG, LG, PJ, SB, DMR, JK, + PC, AD + + .. rubric:: Minutes + :name: Telco_20220426_minutes + + - Introductions + + - NFDI workshop 160-ish registrants (110 online at once) + + - First day of presentations from people already working with + NeXus and some newcomers + - Second day more about getting to know each other with short + presentations and break-out discussions. Broad variety of + projects and communities, plus some vendors. + + - NS ALBA want to be able to write simultaneously to a file + (perhaps with Zarr). + + - FP from OpenPMD needs many different use cases and needs to + optimise for different use cases. + + - BW says that NeXus + + - HB says that opening to new formats raises responsibility to + provide tools for such formats. Organisations are + producing/collecting millions of datasets. Additional resources + are going to have to be part of the discussion. + + - BW asks if this is within the NeXus mission + + - PC need an algortim to write a tree - file format just needs to + have sufficient expressibility. + + - MK - history: HDF4 came first, then HDF5, then the community + demanded XML. Later the community only wanted HDF5. Maintenance + of the NeXus API is lots of work. The HDF group is working on + performance. We should not stop anyone using NeXus heirarchies, + but I would be cautious about adding extra formats. + + - HG asks if some documentation can be provided to support + arguements that HDF5 is not sufficient. Providing minimum + performance requirements would be helpful + + - SB is using the virtual dataset features that allows the tree + to be split into multiple files so that multiple readers can be + implemented + + - DB is open to different approaches. + + - RB proposes a "contributed" status for the file formats similar + to the application definition in order to provide guidance from + NeXus while the community provides implementation for + resources. + + - BW wants to rethink how NeXus declares the implementation of + the data hierarchy in a file format. The current method of + describing it in the manual is informal and quickly becomes + unmanageable when adding further file formats. We define + everything else with NXDL, but it is unclear to me how this can + be done for file formats, unless it is to create an application + definition describing all of the required features to express + NeXus, which would be accompanied by reference files and + perhaps reference code demonstrating how the application + definition is implemented in the file format. + + - AB says NEXUS provides a set of services to the community: + ontology, ref examples, and validation. We expect community to + write further tools. + + - HB suggest people recall what happened to file formats around + the switch to UNIX. Solved by do what you want so long as you + fit into the "streams interface". Need simple way to describe + mapping inot file formats. these are huge investments worldwide + when adding further formats. + + - DMR points to other examples of validation (eg browser test + suit). + + - HG group runs a data repository. We would only want formats + with long term support. Archiving should be important to NeXus. + We should also consider conversion (eg write what you want, but + convert to eg HDF5 for archiving). + + - NS asks about a tools between the data and file formats - this + is what the NAPI is + + - AD openPMD has lots of similar things to consider. HDF5 was an + early feature, but it stopped being able to handle the size of + the simulations (TB). We changed the backend to allow different + formats and this solved many problems. openPMD would like to + bring the NeXus ontology in to the different backends. + + - FP says implementing NeXus onto multiple backends is not + straightforward. We need to agree on specific details. Data + conversion is "free" with a multi-backend API. + + - AB the NIAC provides ontology, validation, and example data. + Other stuff is more a volunteer effort (NeXpy, NeXus API, + Russ"s example file writer from NXDL). So if a file format + wants a "badge of support", i think it needs a validator and + example data. + + - BW advertised the HDF user meeting and asks if any NIAC members + plan to attend. BW says that he will try to attend himself. + + - The code camp clashes with the EPICS codeathon. Multiple people + want to reschedule our code camp, so BW will send out a new + poll to decide another set of dates. + + - BW encourages people to try out the `online cnxvalidate + implementation `__ + so that we can talk about in more detail at another meeting. + + - WDN ESRF already has multiple APIs just for HDF5. This happens + for performance reasons. + + - FP perspective is that runtime configuration is important in + order to meet different performace criteria. + + - WDN wants errors on aux signals + https://github.com/nexusformat/definitions/issues/1044 + + - consensus that this just extends the convention and so + should be easily accepted. + + - BW says that the release milestone should be a priority for + NeXus, especially at the upcoming code camp + + - BW will make a poll for the next telco aiming for mid- to late + May. diff --git a/source/teleconferences/Telco_20220527.rst b/source/teleconferences/Telco_20220527.rst new file mode 100644 index 00000000..eaf7914c --- /dev/null +++ b/source/teleconferences/Telco_20220527.rst @@ -0,0 +1,18 @@ +================= +Telco 20220527 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220527 + :name: telco-20220527 + :class: page-title + + .. rubric:: Date + :name: Telco_20220527_date + + Friday, 27th May, 14:00 UTC + + Cancelled. diff --git a/source/teleconferences/Telco_20220602.rst b/source/teleconferences/Telco_20220602.rst new file mode 100644 index 00000000..e8e0d6ba --- /dev/null +++ b/source/teleconferences/Telco_20220602.rst @@ -0,0 +1,85 @@ +================= +Telco 20220602 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220602 + :name: telco-20220602 + :class: page-title + + .. rubric:: Date + :name: Telco_20220602_date + + Thursday, 2nd June, 14:00 UTC + + .. rubric:: Connect + :name: Telco_20220602_connect + + - ZOOM VC link: + https://psich.zoom.us/j/68256289400pwd=WUJ3TmRObVA1S2k2NFdBbDE1Y3BYdz09 + - Meeting ID: 682 5628 9400 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20220602_agenda + + - Welcome guests and new members + - Review previous meeting minutes and actions: `April + Telco `__ + - Discuss format of `Code + Camp <../codecamps/CodeCamp2022.html>`__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20220602_present + + BW, HB, AB, TM, CZ, PJ + + .. rubric:: Minutes + :name: Telco_20220602_minutes + + - BW apologises for last week and in future will turn off the + setting that requires attendees be admitted by the host in + order to avoid repeting the issue. + - BW points again to + https://bmaranville.github.io/cnxvalidate-web/ + - BW asks about CC format, especially how often tele-meetings + should be scheduled. PJ likes the 2 hour blocks we used + previously. + - BW calls vote to make telcos an hour later: All agree. + - Web page is running again after having some configuration + issues that were discovered yesterday. + - HB has philosophical issue. MX field has changed considerably + recently and models are often available before MX experiments. + + - BW doesn"t see why that should be an issue. The concern that + some people have is being able to archive data and so it is + only adding things to files at later times that is the + issue, not adding info that is present from the beginning. + - AB asks if this would be an update to NXmx - HB says yes. + - BW says that nano-magnetism experiments are also often + simulated before the experiment is run. + + - PJ fed our "writer" example from the manual into the web + cnxvalidate and it came up with two errors: + + - does not have a valid app def + - HDF version attribute is required but not present + + - Why are these errors and not warnings Unanimous agreement that + this a bug in cnxvalidate. This could be examined in the code + camp. + - BW points out that the HDF version doesn"t make sense in XML + files. + - HB says that the HDF version is definitely useful since it + cannot always be queried from the file. H5check is the utility + that would give the best indication of the HDF version. + - BW will make a poll for the next telco with dates in the first + half of July. diff --git a/source/teleconferences/Telco_20220707.rst b/source/teleconferences/Telco_20220707.rst new file mode 100644 index 00000000..0e322226 --- /dev/null +++ b/source/teleconferences/Telco_20220707.rst @@ -0,0 +1,73 @@ +================= +Telco 20220707 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220707 + :name: telco-20220707 + :class: page-title + + .. rubric:: Date + :name: Telco_20220707_date + + Thursday, 7th July, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20220707_connect + + - ZOOM VC link: + https://psich.zoom.us/j/66384346019pwd=aG13QldUaVA1Yjdwc1RzL0FyVE13QT09 + - Meeting ID: 663 8434 6019 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20220707_agenda + + - Welcome guests and new members + - Review previous meeting minutes and actions: `June + Telco `__, `Code + Camp <../codecamps/CodeCamp2022.html>`__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20220707_present + + BW, HB, RB, WdN, CZ, AB, HG, SB, PC + + .. rubric:: Minutes + :name: Telco_20220707_minutes + + - BW thanks everyone who helped in the Code Camp - we + accomplished a lot of work. PJ said that he would provide a + summary of our achievements but I haven"t received it yet. We + can see some indication of the efforts from the `github + insights + page `__ + - HG, WdN and SB all agree that it went well and thanks those + contributing. + - SB reports that he saw that NXptycho has a bug - SB will submit + an issue. + - BW also wants to submit an issue from a question on the mailing + list about NXxas. + - Dectris have been asking about data required by NeXus + (especially NXmx) that they don"t have easy access to (need + cooperation from the beamline staff). HB says that being soft + on the issue in the past has not improved the situation + (non-required data is not written voluntarily) so wants to be + strict now. + - WdN doesn"t understand why Dectris should be so concerned about + so much metadata - the beamline staff should take + responsibility. SB answers that the situation is kind of + inherited by such metadata being included in previous file + formats in the MX field and is common to lots of vendors. AB + will add something to the issue and also push some discussion + at the ACA-SIG meeting. + - BW will organise the next telco for the middle of August. + `Poll `__ diff --git a/source/teleconferences/Telco_20220824.rst b/source/teleconferences/Telco_20220824.rst new file mode 100644 index 00000000..c43da83a --- /dev/null +++ b/source/teleconferences/Telco_20220824.rst @@ -0,0 +1,119 @@ +================= +Telco 20220824 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20220824 + :name: telco-20220824 + :class: page-title + + .. rubric:: Date + :name: Telco_20220824_date + + Wednesday, 24th August, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20220824_connect + + - ZOOM VC link: + https://psich.zoom.us/j/63006091860pwd=cmR2cnlZQTB2V3Y0YXRTR3hoaXVsdz09 + - Meeting ID: 630 0609 1860 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20220824_agenda + + - Welcome guests and new members + - Review previous meeting minutes and actions: `July + Telco `__ + - Please register asap for the `NIAC + meeting <../niac/NIAC2022.html>`__ + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20220824_present + + BW, CZ, WdN, AB, SB, PJ, TM, HB + + .. rubric:: Minutes + :name: Telco_20220824_minutes + + SB asks about combining multiple eexperiments and processes + together. BW replies that this is what NXentry is designed to + accomplish. Maybe using separate files for each experiment and + then have a master file to link them together. HB says that this + is getting dangerous and the reason why UML was invented. Take the + Java inheritance model and stick to that. SB asks about + implementing sample IDs BW remembers there being something already + in about + `UUIDs `__. + PJ says that BlueSky uses UUIDs for each measurement, but it could + easily be extended to IDs for anything else. Can be useful for + tracing issues, such as using detector serial numbers to find + correlations of hardware with bad results. AB says that UUIDs are + 16-digit values so it might not be practical in some cases. + + SB asks about NXgeometry, which is deprecated in favour of + NXtransformations. NXgeometry seems like it would be useful to + describe shapes, which NXtransformation doesn"t do. PJ says it + would be good to ask on the mailing list + + SB discusses the NeXus ontology. The ontology is currently + flattening everything and doesn"t describe any inheritance. + Extension terms from the ADefs are back-ported to the base + classes, which makes them huge. The flattening then causes the + terms from the ADefs lose some context. Instead of flattening the + ontology, we could create further entities to make a more + heirarchal ontology. PJ would like to see this as a PR and github + issue to that others can see the discussion. + + SB says that he has never seen NXint32 being used. PJ suggests + that it might be from back in the HDF4 days. BW says that MK + probably knows more detail. SB asks if it is appropriate for NeXus + to be getting into the representation of the numbers that make up + the data. PJ says that this is an artefact of NeXus being strongly + coupled to HDF5 and whatever backends we support. AB reminds us + that there is some interest in XML/NeXus, especially from people + wanting to keep crystallography data in text-based databases. BW + says that NeXus is tied by our limited resources - we have no + philosophical objection to further container formats, but we lack + resources to support enough tools to make further container + formats "official". SB had heard of wishes for formats like JSON + or YAML. PJ replies that the issue is being able to express + attributes in such formats - we would need to make some adhoc way + to extend the format. BW my experience is that people wanting to + be able to inspect data files with text editors have very simple + files. Once NeXus starts adding lots of metadata, those files + start looking much more messy and not so attractive any more. + + AB asks if the NIAC will be online BW replies that it is hybrid + so people can join in person or online. BW encourages everyone to + register (even if joining online) so that he can have advanced + notice of what resources are needed. + + AB points out a feature in ImageCIF called "equipment_component" + that he has been using in NXmx that he had assumed might be + generally in NeXus already, but it looks like it isn"t. Is it + useful for others PJ says "yes" and gives an example with + defining the geometry of an ad hoc diffractometer. AB says that + DIALS produces a detector model that is heirarchical, so that you + get a set of transformations for each component. AB will write it + up so that it can be discussed in the NIAC. + + AB talked about the `estimated time `__ at the ACA + meeting and there was strong agreement the fields should be kept + as "required". SB had similar issues that it would be useful to + have something between "required" and "optional", namely + "reccommended". "reccommended" would be be treated as "optional" + by a validator, except that it would give a warning if missing. + + Since we have the NIAC in mid-September, BW will run a `poll for a + next telco in + October `__. diff --git a/source/teleconferences/Telco_20221026.rst b/source/teleconferences/Telco_20221026.rst new file mode 100644 index 00000000..c2c1fa9b --- /dev/null +++ b/source/teleconferences/Telco_20221026.rst @@ -0,0 +1,117 @@ +================= +Telco 20221026 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20221026 + :name: telco-20221026 + :class: page-title + + .. rubric:: Date + :name: Telco_20221026_date + + Wednesday, 26th October, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20221026_connect + + - ZOOM VC link: + https://psich.zoom.us/j/67122081089pwd=RkpvTEo5NFYrRVd3ZDJ4VmhRbExvUT09 + - Meeting ID: 671 2208 1089 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20221026_agenda + + - Welcome guests and new members + - Discuss how NeXus operates and answer questions from LNLS + synchrotron in Brazil + - Review previous meeting minutes and actions: `August + Telco `__ + - Review the `NIAC + meeting <../niac/NIAC2022.html>`__ + - Recent issues on Github (especially those labelled with + 'telco') + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20221026_present + + .. rubric:: Minutes + :name: Telco_20221026_minutes + + - Welcome guests and new members New members: + + - Balazs Bago, ELI-ALPS + - Tom Caswell, NSLSII + + LNLS guests + + - Discuss how NeXus operates and answer questions from LNLS + synchrotron in Brazil + + - | How to add new definitions (e.g. IR beamline) + | nyaml2nxdl + (https://github.com/nomad-coe/nomad-parser-nexus) + + - | How can NeXus be compatible to DAQ (field names) + | a) create NeXus master file and use multiple files if + needed via hdf5 links + | b) 3-slider intro: + https://anl.box.com/s/cbaohim9nhnmmy0a3lwsd963if01z641 + | c) standardized names allows interoperability, but + | d) any other data can also be pushed to the data file + + - | How NeXus can be compatible to cataloguing solutions, like + SciCAT + | e.g. ingest feeds data from NeXus to ICat (e.g. using + h5py) + | only metadata for search is duplicated + + - | How to avoid data duplications (metadata stored in NeXus, + but also in EPICS archiver) + | archiver is for engineers and beamline staff, while NeXus + is for scientists and users + + - | What NIAC is for + | definitions (application, base, contributed) + | validator and tools (C and python for hdf5) + + - | Is it possible to deal with multi-dimensional datasets, + like time resolved 5D datasets + | yes, in the contributed definitions MPES + (https://fairmat-experimental.github.io/nexus-fairmat-proposal/), + we easily work with 6 dimensions. H5Web + (https://h5web.panosc.eu/) can be used to display 2D + slides and use sliders to walk through the full datasets + + - | SIRIUS status + | SIRIUS is using hdf5 and some harminisation between + beamlines just started. Next step can be the adaptation of + NeXus base classes wherever applicable and then adding new + ones if needed. Similarly Application Definitions can be + used. + + - POSTPONED Items: + + - Review previous meeting minutes and actions: August Telco + - Review the NIAC meeting + - Recent issues on Github (especially those labelled with + 'telco') + + - definitions + - code + + .. rubric:: November Telco + :name: november-telco + + Please help to choose the date by responding to the poll by + November 10th + (https://doodle.com/meeting/participate/id/bk8wg7Jd). We are + planning to hold the telco in the regular slot of UTC 15:00. Check + your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20221202.rst b/source/teleconferences/Telco_20221202.rst new file mode 100644 index 00000000..5b679b71 --- /dev/null +++ b/source/teleconferences/Telco_20221202.rst @@ -0,0 +1,97 @@ +================= +Telco 20221202 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20221202 + :name: telco-20221202 + :class: page-title + + .. rubric:: Date + :name: Telco_20221202_date + + Friday, 2nd December, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20221202_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20221202_agenda + + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + - Contributed definitions + + .. rubric:: Present + :name: Telco_20221202_present + + RB, LG, PJ, AB, CP, BW, RO, MK, BB, TC, CZ, SB (+PM) + + .. rubric:: Minutes + :name: Telco_20221202_minutes + + - | XPCS https://github.com/nexusformat/definitions/issues/1007 + | January Telco will have a special session on XPCS whith the + community also invited + + - | Documentation versioning + https://github.com/nexusformat/definitions/issues/1228 + | PJ: + + - it would be nice to select the release/version in the + documentation + - number of github commit steps after the release could be + added + - link to issue + https://github.com/nexusformat/definitions/issues/1021 + + AB: a cleaner ID would be better than github commit + + TC: 7 digit commit hash could be enough + + RO: everything commited is official + + BW: we should only consider only tagged releases being official + + PJ: releases normally after a codecamp and NIAC meeting, but + can be done on request + + AB: We could do one now! + + The consensus of the discussion is documented in the issues. + + - | Contributed definitions + | AB: Would we need cleaning here Proactivly, NIAC could reach + out to authors of old definitions if the definitions should + be promoted to be offical. + + CZ: A quick update on the file NXsnsevent.nxdl.xml: it is still + being used by ISIS, HFIR, and SNS. Please DO NOT + remove/deprecate it. Pete, thanks for suggesting the + ratification of this def file. It would be great if we can move + it to the application folder. + + AB: issues should recored how and why and by whom contributed + definitions are committed. See issue + https://github.com/nexusformat/definitions/issues/1229. + + .. rubric:: January Telco + :name: january-telco + + Please help to `choose the date by responding to the + poll `__ by + December 15th. We are planning to hold the telco in the regular + slot of UTC 15:00. Check your local time to avoid scheduling + surprises! diff --git a/source/teleconferences/Telco_20230119.rst b/source/teleconferences/Telco_20230119.rst new file mode 100644 index 00000000..0e008907 --- /dev/null +++ b/source/teleconferences/Telco_20230119.rst @@ -0,0 +1,269 @@ +================= +Telco 20230119 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230119 + :name: telco-20230119 + :class: page-title + + .. rubric:: Date + :name: Telco_20230119_date + + Thursday, 19nd January, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230119_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230119_agenda + + - XPCS Community Discussion + - Ontology + - Recent issues on Github (especially those labelled with + 'telco') + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20230119_present + + AB, SB PC, PJ, SN, BB, BW, CZ, HG, JW, LG, PM, WdN, AndiBarbour + + .. rubric:: Minutes + :name: Telco_20230119_minutes + + - | XPCS: https://github.com/nexusformat/definitions/issues/1007 + | Fundamental problem: + | Let us have 2 optional fields. How to express in NeXus that + at least one of them should be provided Another + `discussion `__ + was also initiated on this topic (see + `also `__, + and + `also `__) + showing how it can be solved by using the constract 'choice'. + Another suggestion was to allow logical expressions on + cardinality (optional/required/minOccurs/maxOccurs), similar + to that of `suggested for symbol + tables `__. + | For the moment, the suggestion is: + | 1) leave both fields optional + | 2) use docstrinng to explain the optional/required condition, + and 3) use an enums field where it can be chose which data + field is provided + | An example for this: + | NXmx/ENTRY/INSTRUMENT/BEAM/flux-attribute: enum choices + + | This can be useful solution also for + NXxpcs/ENTRY/data/g2-field + | One should use a list of defined enum keys (or apply 'open + enumeration' with adding the new enum key to the defined + list in contributed case ASAP. + | new Issue on: evaluating the use of 'union' in NXDL + (https://github.com/nexusformat/definitions/issues/1232) + + - | For issue + `1004 `__ + | Note that the already connected + `discussions `__ + clarified the scopes: + | scan number (deprecated): e.g. spec (no unique ID) + | entry_identifier( required): external ID + | entry_identifier_uuid (optional): unique ID + + - | For issue + `1005 `__ + and + `1006 `__ + | nothing to discuss here. + + - `Ontology + v2 `__ + Discussions started on the PR for v2, but also questions popped + up which require clarifications. + Issues shall be created for them: + + - | Same names for different type of children of the same() + concept (Definition/Group/Field) + | NXentry/thumbnail/type-attribute is defined in NXentry, but + NXentry/thumbnail-group is referencing NXnote where + NXnote/type-field is already defined (for the same purpose). + Note that a machine can easily distinguish between them and + the NeXus Vocabulary is already prepared for handling such + cases by using a clarification postfix (as above), but are + they intentionally implement two separated concepts under the + same name + | Should it be really supported + | Similar, but intentional: + | NXentry/SAMPLE/sample_histrory-group may be defined as NXnote + for a generic use, but + NXellipsometry/ENTRY/SAMPLE/sample_hisotry-filed may be + defined as NX_CHAR for simplicity. + | Is it OK + | Note another intentional, but controversial use case: The + NeXus convention on scanning says that a Field of an + NX_NUMBER dataset can be replaced by an NXlog Group with the + same name if the values supposed to be stored with + timestamps. What happens if this group name is already + defined as another concept, so the application of a generic + concept leads to a contradiction + + | Normally, it is acceptable to have the same (short) name + for different concepts, because they are uniquely + identifieable by their (suffixed) full vocabulary name. + | Specifically, for the first example `see + also `__: + | Depricate and Rename: NXnote/type-field to + NXnote/mime_type-field + | Depricate: NXentry/thumbnail/type-attribute and use + NXentry/thumbnail/mime_type-field instead + | `PR + 396 `__ + to discuss it further + + - | `regexp + enumerations `__ + | NXentry/thumbnail/type-attribute is defined with the + 'Obligatory value: image/*'. Does it mean that it always has + to be literaly 'image/*\ ' or it only means that its actual + value shall start with 'image/' + | Is it really an enumeration + | Shall we enable a regexp as enumeration + + | currently - enums only allow exact match + | Note that the current implementation is not as intended. + `see the xml + file `__ + future: maybe the `use of + assert `__ + or something else + + - | `number + enumerations `__ + | In some case enumeration refers to numbers (e.g. + NXguide/reflectivity/[surface,wavelength]_indices), but + because of enumeration, their data type had to be forced to + be NX_CHAR. Although they are now overriding the data type of + the referenced() concept NXdata/AXISNAME_indices-attribute + which is defined as NX_INT. + | Note that NXdetector/time_of_flight/axis-attribute (with + enumeration value of '3') is defined as NX_POSINT. + | Shall it be the way to go and allow enumeration for other + data types, too, although their string value is given in the + nxdl definition + + - | `default unit + category `__ + | In some cases our definitions do not specify a unit category + (e.g. NXdetector/detector_number-field of NX_INT, + NXdetector/bit_depth_readout-field of NX_INT, or even + NXcapillary/focal_size-field of NX_FLOAT). + | If it is only for convenience, Is there a fallback solution + of a default value, like NX_ANY or NX_UNITLESS The later + does apply neither to NXdetector/bit_depth_readout-field, nor + to NXcapillary/focal_size-field. + + Or if the given concept (Group/Field/Attribute) is referring + to another one (e.g. from a base class as + NXmonopd/MONITOR/preset of NX_FLOAT referring to the same() + concept NXmonitor/preset of NX_NUMBER units=NX_ANY) shall it + receive a default unit category, or shall it simply inherit + the already defined unit category from the referred concept + + - | `complex unit + categories `__ + | NeXus has already complex unit categories, like + NX_MASS_DENSITY, NX_MOLECULAR_WEIGHT, NX_PER_AREA, + NX_PER_LENGTH, NX_WAVENUMBER, etc. but others can also be + derived using the Unidata's Udunits convention (see also + https://www.unidata.ucar.edu/software/udunits/udunits-2.2.28/udunits2.html). + Is there a way to refer to such units or unit categories + | Is it planed to introduce NX_UDUNITS as unit category, so one + can use derived unints according + | Or is it possible to supply a Udunits derivation as a unit + category(!) (e.g. units='m/s'), so any compatible units, like + 'km/h' could be used + + - `units= vs. + units= `__ + As an xml tag, units= is used by NXDL to specify unit + categories for Fields. units= on the other hand can be used by + application definitions to specify enumeration for the dataset + attribute @units which specify the actual unit of the data. + It is at least confusing in NeXus that both a unit category + specification and a specific unit in a data file use the same + plural form 'units'. + Was it ever discussed + Should not it be made clear: 'units' for unit categories, and + 'unit' for the actual unit + + .. rubric:: ZOOM Chat: + :name: zoom-chat + + - Wout De Nolf (ESRF) to Everyone (19. Jan 2023, 16:09) + Here is the link for the field: + https://github.com/nexusformat/definitions/blob/9729b2488acc33aebe53f1865fa6c20615e31be0/base_classes/NXnote.nxdl.xml#L41 + - Benjamin Watts to Everyone (19. Jan 2023, 16:17) + the @type was renamed from @mime_type due to issue #395 + https://github.com/nexusformat/definitions/issues/395 PeterC + had noticed the mistake that we are discussing now, but Tobias + misunderstood the issue and didn't make a good fix + - Pete Jemian to Everyone (19. Jan 2023, 16:28) + starts with 'image/' validItemType (in the nxdl.xsd file) is a + regex Paul Millar to Everyone (19. Jan 2023, 16:30) MIME type + is structured, like type '/' subtype ['+' suffix] \*[';' + parameter] Therefore, this constraint is really: has *type* + 'image' + - Pete Jemian to Everyone (19. Jan 2023, 16:32) + This becomes an issue to define clearly how to describe in + NXDL. We intend to match a pattern that starts with 'image/'. + Let's build the issue on that. and move on from here today. + - Pete Jemian to Everyone (19. Jan 2023, 16:39) + XML Schema 'assert' seems to be a XML v1.1 feature. We use v1.0 + so this would be a fundamental change. + https://stackoverflow.com/questions/15573894/xml-schema-1-1-not-recognizing-assert-or-assertion + NXcanSAS has a structure which is either Q as vector or Q as + scalar. + https://manual.nexusformat.org/classes/applications/NXcanSAS.html#nxcansas-entry-data-q-field + Wout De Nolf (ESRF) to Everyone (19. Jan 2023, 16:42) + https://manual.nexusformat.org/classes/applications/NXmx.html#nxmx-entry-instrument-beam-flux-attribute + @flux can have 'flux', 'total_flux', 'flux_integrated', or + 'total_flux_integrated'. all these are optional fields + - Aaron Brewster to Everyone (19. Jan 2023, 16:45) + I have to start walking to my next meeting but I'll be + listening in on my phone + - Balazs Bago to Everyone (19. Jan 2023, 16:48) + I have to leave, Good Bye! + - Luca Gelisio (EuXFEL) to Everyone (19. Jan 2023, 16:49) + Dumb question: What about 'other' The other two formats are + well defined, but this + - Paul Millar to Everyone (19. Jan 2023, 16:58) + Heike, we can organise a meeting of XPCS people. There's + certainly multiple RIs interested in XPCS within DAPHNE. + - iPhone t (19. Jan 2023, 17:01) + Gotta go. @sandor you may want to save the chat log to help + with the minutes. Thanks all + - Luca Gelisio (EuXFEL) to Everyone (19. Jan 2023, 17:03) + I agree with Sandor. + - Paul Millar to Everyone (19. Jan 2023, 17:03) + +1 Sandor Alternatively, allow an open enumeration Suresh + Narayanan to Everyone (19. Jan 2023, 17:05) Have to go now + + .. rubric:: Fabruary Telco + :name: fabruary-telco + + Please help to `choose the date by responding to the + poll `__ by + January 30th. We are planning to hold the telco in the regular + slot of UTC 15:00. Check your local time to avoid scheduling + surprises! diff --git a/source/teleconferences/Telco_20230213.rst b/source/teleconferences/Telco_20230213.rst new file mode 100644 index 00000000..d98d4247 --- /dev/null +++ b/source/teleconferences/Telco_20230213.rst @@ -0,0 +1,125 @@ +================= +Telco 20230213 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230213 + :name: telco-20230213 + :class: page-title + + .. rubric:: Date + :name: Telco_20230213_date + + Monday, 13th February, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230213_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230213_agenda + + - Pump-Probe experiments (HZB) + - Recent issues on Github (especially those labelled with + "telco") + + - `definitions `__ + - `code `__ + + .. rubric:: Present + :name: Telco_20230213_present + + SB, HG, PJ, BW, LG, RO, WdN, PC, CZ + Jack Allen (STFC), Sam + Tygier(STFC), Christian Schussler(HZB) + + .. rubric:: Minutes + :name: Telco_20230213_minutes + + - | Pump-Probe experiments (HZB) + | Setup: pump Laser + xray probe @3kHz with adjustable delay + times + | Detector: raw data -> 6-15 paralell on-the-fly processing + algorithm (logged as different channels) + | BW: NeXus is felxible and allows several ways to store data, + but the labels should reflect the meaning properly. 2 + solutions in Application Definitions: + | a) define modes and label the data chanles with it + | b) define different Fields for different operations + | SB: can help HG with AppDef development + + - Tomography (ISIS) + + - After processing(!): 3D array of attenuation values + They are floatingpoint numbers, so instead of NX_INT, + NX_FLOAT would be better for storing them + SB: NX_NUMBER + PJ: +1 + PC: +1 + Solution: apply modification in the next Code-CAMP following + a PR + - imaging data (projections) + some processing (e.g. cropping) results could also be stored + in the same structure. + RO: we have NXprocess for such purpose + RO: one can store big data in different files which may not + be shipped + Conclusion: processing results shall be stored separately, + but their structure can be similar to that of the raw data. + - NXtomo_proc/DATA/data: required attributes @offset, + @scaling, @transformation, but what are they + SB: documentation is important, NIAC shall not accept poor + definition files + SB: NXdata base class also has offset and scaling_factor + Fields + BW: MK added @offset, @scaling, @transformation without + documentation in the nxdl file, but refferrng to 2010 NIAC. + See: + `minutes of 2010 + NIAC `__ + and + `all NIAC + meetings <../niac/NIAC.html>`__ and + `specific details of 2010 + NIAC `__ + PJ: it seems it was used for something like + NXtransformations now, but documentation in the nxdl files + is necessary for proper understanding + SB action point for Code-CAMP: check the original intent and + review (maybe depricate it) + + - | NeXus Features + | PJ: are they part of the standard + | SB: No, this proposal was welcomed by NIAC and some examples + were provided, but NIAC never accepted them in form to be + officially maintained. Note that NXentry has a reserved field + "features" for being able to refer to them. + | SB: symbols require math which shall be supported and JS was + chosen for first prototype implementation as JS engines + provide secure sandbox runtime environment. Similar can also + be achived by python wasm and other techniques, and it woud + be great to be able to store machine-interpretable + formulas/algortihms/codes attached to NeXus definitions and + data. Note that this is also the primary aim of the Features. + | HG: It would be great to be able to support such features + supporting FAIR data pipelines. + + - Topics for next meeting: + + - NXdata: @axes vs. @AXISNAME_indices `see the + issue `__ + - CodeCamp: when to organise the next one + + .. rubric:: March Telco + :name: Telco_20230213_march-telco + + Please help to `choose the date by responding to the + poll `__ by + Feb 28. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20230314.rst b/source/teleconferences/Telco_20230314.rst new file mode 100644 index 00000000..ba839598 --- /dev/null +++ b/source/teleconferences/Telco_20230314.rst @@ -0,0 +1,111 @@ +================= +Telco 20230314 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230314 + :name: telco-20230314 + :class: page-title + + .. rubric:: Date + :name: Telco_20230314_date + + Tuesday, 14th March, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230314_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230314_agenda + + - CodeCamp + - issues + + .. rubric:: Present + :name: Telco_20230314_present + + SB, AB, HB, HG, MK, PM, PJ, RO, RB, WdN + + .. rubric:: Minutes + :name: Telco_20230314_minutes + + - Codecamp Agreed period: end of June, 2023 + + - General requirements for changing definitions: + + - modification in Base Classes or Application Definitions + which affect reading and writing files: vote is needed + - fixing documentation or bugs: PR and review is needed anyone + can issue a PR, but it is suggested to + work in a small groups (with domain experts) + + - AB: Topic suggested by Dectris - `PR + #1246 `__ + NX_CHAR_OR_NUMBER to be used for NXdata/AXISNAME + NX_CHAR_OR_NUMBER NX_CHAR, NX_NUMBER + + - MK: make labels separate from NUMBER typed AXISNAME, + e.g. AXISNAME@index_labels(NX_CHAR): array of NX_CHAR labels + - RO: one shall demonstrate how to use it (e.g matplotlib) + - SB: nxpy, H5web - others plotting applications + - AB/PJ: going with MK we do not break the standard + - Conclusion: AB will be taking it back to Dectris for further + discussion, to see if indirection is acceptable. + + - | AB: + `#940 `__ + | threshold_1_channel(NXdetector_channel) threshold_energy is + it generic enough + + - | PM: + `#1247 `__ + | discussion deferred until next time. + + - WdN + `#1212 `__ + WdN: presented ambiguities around the interpretation of + NXdata/@AXISNAME_indices + + - Use Case 1: + axes=[[xp,xq],y,[z,time]] referreing to a 3D dataset + where the 1st axis can be labeled by both xp, and xq, the + second by y, and the 3rd by both z and time. + - Use Case 2: + axes=[x,y,z] + x_indices=0,1 (x is a 2D array to specify x for each column + along z) + y_indices=0,1 (y is a 2D array ) + from this one can do a 2D plot for each slice along z where + the z values at (i,j) are ploted at the position + (x(i,j),y(i,j)). + - Note that documentation says that the size of axes "must + must" be the same as the rank of the signal array, which + must be a bug. + - MK: maybe axes could be an array of lists (as demonstrated + above) to make it clear and then we do not even need + AXISNAME_indices + - RO: these are around for a while, but is there anyone who + are using them + - AB: proposal for Wout to take the discussion and make a PR + that is what he thinks is the best approach. We"ll use that + as a discussion point for next time. + + - PM + `#412 `__ + Documentation for NXdetector should be cleaned and updated + + .. rubric:: April Telco + :name: Telco_20230314_april-telco + + Please help to `choose the date by responding to the + poll `__ by + March 30. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20230419.rst b/source/teleconferences/Telco_20230419.rst new file mode 100644 index 00000000..818da0a6 --- /dev/null +++ b/source/teleconferences/Telco_20230419.rst @@ -0,0 +1,113 @@ +================= +Telco 20230419 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230419 + :name: telco-20230419 + :class: page-title + + .. rubric:: Date + :name: Telco_20230419_date + + Wednesday, 19th April, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230419_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230419_agenda + + - CodeCamp + - issues + + .. rubric:: Present + :name: Telco_20230419_present + + SB, AB, CP, HM, RO, DMcR, MK, PM, PJ, RB, TC, WdN, BB, BW, HG, CZ, + TM, and Matthew Newille(APS) + + .. rubric:: Minutes + :name: Telco_20230419_minutes + + - Codecamp Agreed period: June 15-16 & 20-21, 2023 + + - XAS.' From Ray: 'Your concerns do however suggest that we need + to find a way to identify which category best describes a + particular application definition, perhaps by providing some + provenance information or defining a maintainer. I can only + attend the first half hour tomorrow, but I believe this is + something well worth discussing.' + https://github.com/nexusformat/definitions/issues/1011 + + - BW: XAS experiments are also using + https://manual.nexusformat.org/classes/applications/NXstxm.html#nxstxm, + but NXxas is not in a good shape + - HG/PM: EXAFS would also be happy to build on top of NXxas + - BW: flexible sample and detection systems are + required,although the main structure is always similar + - MN: EXAFS standards and dataformats exist on top of hdf5. + NeXus is pushed but proper support is still needed. + - RO: NX started with instrument and data collection + description, but then AppDef arrived to define interface + between data producer and consumer. + - MN: EXAFS would need clear common definitions, like + monochromator d spacing, etc. RAW data is nice to have, but + calibrated is even more important. What can be stored in + Nexus + - SB: both, it depends on the community. See analogy with + NXmonopd. + - BW: we can use immediately base classes e.g. NXdetector + - RO: multiple AppDef can de satisfied by a single file or an + AppDef and other base classes + - MN: What kind of definitions are supplied by NeXus + - BW: NXdetector is already for multi-dim detectors, and can + be used (if needed also extended) Ideas can be taken from + NXstxm. + - AB: You can propose new definitions so we can review and + vote on it. + - RO: we could define maintainers for all AppDefs + - AB: Great! Main (NIAC) contacts can be added to the + - MN: maybe IUcR representative + - PJ: technical contacts and follow how much the community is + using the definitions. + - PM: also data analysis developers could be in the loop. + - AB: deprecation should be done VERY carefully. + - RO: APS and FAIR requirements with NeXus + - BW: what is the timeline for XAS + - MN: do it right rather than quick. + + - Get status on NXdata: improve documentation regarding + axes'https://github.com/nexusformat/definitions/pull/1213 + + - WdN: AXISNAME_INDICES - is it a scalar or an array + - WdN: AXISNAME - what is its dimension should be Is it 1D + array or not + - RO: how to plot it + - WdN: ESRF implemented it with matplotlib + - SB: use xarrays + https://docs.xarray.dev/en/stable/examples/multidimensional-coords.html + - TC: non-regular gidding shall be supported. + - BW: recording must be supported. visualisation is secondary. + NXdata: data vs.plot! (RO: data, but with a sensible look + on it) + - PJ: NXcanSAS: use of multi-dimensional axis array (e.g. at + Diamond I22) + - RO: **make a session on the code-camp** + - AB: the PR could have a py plotting code included + + .. rubric:: May Telco + :name: Telco_20230419_may-telco + + Please help to `choose the date by responding to the + poll `__ by + April 30. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20230524.rst b/source/teleconferences/Telco_20230524.rst new file mode 100644 index 00000000..02977017 --- /dev/null +++ b/source/teleconferences/Telco_20230524.rst @@ -0,0 +1,92 @@ +================= +Telco 20230524 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230524 + :name: telco-20230524 + :class: page-title + + .. rubric:: Date + :name: Telco_20230524_date + + Wednesday, 24th May, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230524_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230524_agenda + + - CodeCamp + - Next NIAC + - https://github.com/nexusformat/definitions/pull/1262 + - https://github.com/nexusformat/definitions/pull/1255 + - https://github.com/nexusformat/definitions/issues/1248 + + .. rubric:: Present + :name: Telco_20230524_present + + SB, AB, RB, CZ, HB, PC, BB, PM, BW, Paulo Mausbach + + .. rubric:: Minutes + :name: Telco_20230524_minutes + + - Codecamp Agreed period: June 15-16 & 20-21, 2023 Info: `Code + Camp June 2023 `__ + + - Next NIAC 2024 with NOBUGS at ESRF + + - | https://github.com/nexusformat/definitions/pull/1262 + | AB: bit_depth of image as metadat to be added + | HB: proposal in 2012 for adding all datatype info as metadata + (not only as hdf property) + | PM: what to do if duplicated info (NeXus metadata vs. hdf + metadata) has mismatch + | AB: raise error + | BW: it was not a problem for long time, so if problem does + not come, we could just use the system as it is now. + | NeXus as container agnostic solution, we could add. + | SB: let introduce it to the base class NXdetector + | AB: let us vote for it in June + | SB: if data type needs to be registered (signed, unsigned, + big/little endin, 8/16/32/' bit etc.), also multi dimensional + slow/fast axes needs to be specified. Do we suggest it for + any Field, Attribute + | AB: here we focus on NXdetector, where a single new property + would be just enough for now. + + - | https://github.com/nexusformat/definitions/pull/1255 + | SB: electron beam + | PM: electron gun + | HB: kathode-ray tube + | BW: Electron Microscope should be just fine + | AB: SB is in charge to call for a meeting of the EM community + before the CC in June. + + - | https://github.com/nexusformat/definitions/issues/1248 + | Paulo: how can NXmx have SOURCE inside ENTRY if it NXentry + does not allow if, but only INSTRUMENT which on the other + hand does allow SOURCE + | SB: base classes only define optional elements, but + Application definitions can extend them + | HB: structure shall not code information, but rather any + information shall be on the same level. + | AB: actually soft-linking solves this problem. The same + information can be referenced by both ENTRY/SOURCE and + ENTRY/INSTRUMENT/SOURCE. + + .. rubric:: July Telco + :name: Telco_20230524_july-telco + + Please help to choose the date by responding to the poll by + . We are planning to hold the telco in the regular slot of UTC + 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20230724.rst b/source/teleconferences/Telco_20230724.rst new file mode 100644 index 00000000..a151d042 --- /dev/null +++ b/source/teleconferences/Telco_20230724.rst @@ -0,0 +1,47 @@ +================= +Telco 20230724 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230724 + :name: telco-20230724 + :class: page-title + + .. rubric:: Date + :name: Telco_20230724_date + + Monday, 24th July, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230724_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230724_agenda + + - CodeCamp + + .. rubric:: Present + :name: Telco_20230724_present + + AB, + + .. rubric:: Minutes + :name: Telco_20230724_minutes + + - Codecamp Agreed period: June 15-16 & 20-21, 2023 Info: `Code + Camp June 2023 `__ + + .. rubric:: Aug Telco + :name: Telco_20230724_aug-telco + + Please help to choose the date by responding to the poll by + . We are planning to hold the telco in the regular slot of UTC + 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20230814.rst b/source/teleconferences/Telco_20230814.rst new file mode 100644 index 00000000..fec6b330 --- /dev/null +++ b/source/teleconferences/Telco_20230814.rst @@ -0,0 +1,61 @@ +================= +Telco 20230814 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230814 + :name: telco-20230814 + :class: page-title + + .. rubric:: Date + :name: Telco_20230814_date + + Monday, 14th August, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230814_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230814_agenda + + .. rubric:: Present + :name: Telco_20230814_present + + | AB, SB, PC, CZ, LG, HG, PM, BW, RO, TM + | (wrong time zone: PJ) + + .. rubric:: Minutes + :name: Telco_20230814_minutes + + - | Remote Voting: + | The proposal has been discussed and a revised formulation is + committed. + + - Invitations: + AB: + + - mailing lists must be updated (responsible: AB) + - invitations should contain a calendar invite (to avoid time + zone issues) (responsible: SB) + + - AOB: + + - PM: DESY is planning to set up a NeXus Support Group + - PC: at Diamond there is already a Technical WG and a + Steering WG + + .. rubric:: Sept Telco + :name: sept-telco + + Please help to `choose the date by responding to the + poll `__ by + Aug 31. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20230920.rst b/source/teleconferences/Telco_20230920.rst new file mode 100644 index 00000000..2d80ae19 --- /dev/null +++ b/source/teleconferences/Telco_20230920.rst @@ -0,0 +1,72 @@ +================= +Telco 20230920 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20230920 + :name: telco-20230920 + :class: page-title + + .. rubric:: Date + :name: Telco_20230920_date + + Monday, 20th September, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20230920_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20230920_agenda + + .. rubric:: Present + :name: Telco_20230920_present + + HB, PC, CZ, BB, LG, AB, SB, PM, WdN + + .. rubric:: Minutes + :name: Telco_20230920_minutes + + - | https://github.com/nexusformat/definitions/pull/1312 + | accepted as bugfix + + - | https://github.com/nexusformat/definitions/issues/1310 + | AB: recommendation should be clear and we should add code + snippets to help the community + | PM: are test cases available + | SB: yes, we have prepared test cases and code snippets what + we can share. + + - | https://github.com/nexusformat/definitions/pull/1246 + | AB: Detector Channel, @default_slice is added + | WdN: detector channel can be auxiliary_signal + | AB: channel is more than a simple auxiliary_signal as it has + additional metadata + | HB: Is VDS assumed to be supported If so, old hdf5 libs + (<1.10) should be deprecated. It should be a separate issue + to be voted on. + | SB: NeXus does not expect officially hdf5 as a backend, but + we could recommend a min version of hdf5 if it is used. + | LG: NeXus is a data format and not a file format + | AB: Yes, but we can give examples on how to write a file + using hdf5 + | SB: NXdata is independent of NXdetector, but + NXdetector/plot[NXdata] can be specialised to use channels as + auxiliary_signals if needed. + | AB: Let us call in Dectris, and discuss it with them next + week + + .. rubric:: Oct Telco + :name: oct-telco + + Please help to `choose the date by responding to the + poll `__ by + Oct 6. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20231019.rst b/source/teleconferences/Telco_20231019.rst new file mode 100644 index 00000000..3d1552cd --- /dev/null +++ b/source/teleconferences/Telco_20231019.rst @@ -0,0 +1,77 @@ +================= +Telco 20231019 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20231019 + :name: telco-20231019 + :class: page-title + + .. rubric:: Date + :name: Telco_20231019_date + + Thursday, 19th October, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20231019_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20231019_agenda + + - NIAC 2024 + - issues + + .. rubric:: Present + :name: Telco_20231019_present + + HB, WdN, AB, SB, PC, HG, BW, LG, BB, CZ, RO + + .. rubric:: Minutes + :name: Telco_20231019_minutes + + - 2024 NIAC with NOBUGS at ESRF for 2 days + https://indico.esrf.fr/event/114/ + - https://github.com/nexusformat/definitions/pull/1246 + AB: default_slice NX_CHAR_OR_NUMBER + - https://github.com/nexusformat/definitions/pull/1039 + reviewed quiickly, some suggestions added + - https://github.com/nexusformat/definitions/pull/1213 + (https://github.com/nexusformat/definitions/pull/1213#issuecomment-1600934279) + + - AB: only change in documentation, no vote is needed + - WdN: merge it first + - AB: let us review it by the sub-committee (WdN, AB, RO, SB + and HB). + - BW: further reviews are welcome + - AB: by Nov 2 + + - https://github.com/nexusformat/definitions/pull/1303 + + - AB: NIAC role icludes ontology, validator, example + - PC: pyprojecxt.toml might be too much + - AB: agreed to remove it; important to keep scope clear + - AB: extra note: nxdl is our contract; it must stay the + single source of truth; nyaml and nxdl shall not coexists + - HG: nyaml is a nice a needed option + - SB: pyproject.toml can be removed as requested + + - https://github.com/nexusformat/definitions/pull/1272 + AB: close this as 1303 is covering that, too + - https://github.com/nexusformat/definitions/pull/1282 + SB: covered by 1303 + + .. rubric:: Nov Telco + :name: nov-telco + + Please help to `choose the date by responding to the + poll `__ by + Nov 6. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20231121.rst b/source/teleconferences/Telco_20231121.rst new file mode 100644 index 00000000..86b44aa5 --- /dev/null +++ b/source/teleconferences/Telco_20231121.rst @@ -0,0 +1,74 @@ +================= +Telco 20231121 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20231121 + :name: telco-20231121 + :class: page-title + + .. rubric:: Date + :name: Telco_20231121_date + + Tuesday, 21st November, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20231121_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20231121_agenda + + - NIAC 2024/NOBUGS + - issues + + .. rubric:: Present + :name: Telco_20231121_present + + HB, AB, SB, MK, CZ, RB, TM, BW, HG, TC, MO, BB, CP, WdN, PJ, PM + + .. rubric:: Minutes + :name: Telco_20231121_minutes + + - NIAC 2024/NOBUGS + Sep 23-27, 2024 - ESRF + 3 (or maybe even 4) continuous days before or after NOBUGS + - https://github.com/nexusformat/NIAC/issues/143 + voted with 14 yes (2 weeks waiting starts) + - https://github.com/nexusformat/definitions/pull/1246 + merge conflict to be resolved in NXdata + - https://github.com/nexusformat/definitions/pull/1252 + merge conflict to be resolved in NXdata + - NXmx gain discussion: + + - AB: SACLA wants to use NXmx with a special gain calibration + method which does not fit to the currently described way + (see issue #711) + - WdN: scaling factor to support the requested function is + defined in NXdata + - BW: offset first vs. scaling first + - HB: more exact definitions needed which include equation for + clarity + - BW: another alternative: NXdetector/acquisition_mode + [decimated] + + - https://github.com/nexusformat/definitions/pull/1303 + new repo in nexusformat for nyaml and then split the PR into 2 + using this dependency + - https://github.com/nexusformat/definitions/pull/1271 + review needs to be finished and then merge it + + .. rubric:: Dec Telco + :name: dec-telco + + Please help to `choose the date by responding to the + poll `__ by + Dec 6. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20231220.rst b/source/teleconferences/Telco_20231220.rst new file mode 100644 index 00000000..bed4948d --- /dev/null +++ b/source/teleconferences/Telco_20231220.rst @@ -0,0 +1,108 @@ +================= +Telco 20231220 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20231220 + :name: telco-20231220 + :class: page-title + + .. rubric:: Date + :name: Telco_20231220_date + + Wednesday, 20th December, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20231220_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20231220_agenda + + - issues + + .. rubric:: Present + :name: Telco_20231220_present + + HB, AB, SB, MK, PC, RO, MO, PJ, RB, WdN, LG, BW, PM + Markus + Kuehbach (FAIRmat) + + .. rubric:: Minutes + :name: Telco_20231220_minutes + + - NIAC 2024: Sep 27-30 with early starters from Sep 26. + - feedbacks on new online voting: looked OK and smooth + - Dectris PRs: both #1246, #1252 got voted + - FAIRmat: #1336, #1337 - looks good, after review could go in + + - #1271: + + - PC: NXaperture_em may should be + NXequipment_settings/apertture_em,' + - AB: what about NXcollection will not NXequipment_setting + will be the same + - BW: indeed, one can put such settings to NXcollection + - WdN: yes, but those settings are validated and are not + connected to any NeXus concept + - SB: as a consequence they may easily be stored + incoherently and become unsearchable + - MK: AppDef shall not define always new stuff, but + reference concepts defined in base classes. + - AB: NXsettings is not supporting the idea of predefined + concepts. NXaperture_em can and shall be used in AppDefs + value statements: + + - less number of base classes + - appdef shall speciaise base classes + - common specialisation should go back to base classes + + - SB: in parctice it result in lots of copy-paste and + artificial split of the same concepts, base class + inheritance would solved that problem + - AB: agreed + + - bugs on contributor list in HTML pages: not all contributors + listed + + - HB: if recent contributers are listed as contacts, it could + be renamed + - RB: new suggestion will come + + - PR #1332: clarification on NXdata's scaling_factor, also in + #1333 its relationship with NXdata's offset is in question + + - RO: an example: reciprocal angstrom is scaled to hkl + - MK: NXprocess couls also host such data conversion, but data + duplication may not be efficient + - AB: problem is that the definition is ambigous (is it + already applied or not) + - RO: yes, ambiguity shall be resolved by cleaner definition + + - Formar grammar and Math support in NeXus + + - HB: subcommittee would be needed to propose support for Math + in NeXus + - AB: formar grammar in contributed defintion shall be OK; + further decision shall be made before it goes to + AppDef/BaseClasses; subcommittee is to form: FD, BW, PC, HB + and resolve the question by NIAC 2024 + + - release + + - AB: early jan 2024; quality metters + - BW: NXaperture deprecation shall be carefully reviewed + + .. rubric:: Jan Telco + :name: jan-telco + + Please help to `choose the date by responding to the + poll `__ by + Jan 4. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240117.rst b/source/teleconferences/Telco_20240117.rst new file mode 100644 index 00000000..11431f16 --- /dev/null +++ b/source/teleconferences/Telco_20240117.rst @@ -0,0 +1,89 @@ +================= +Telco 20240117 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240117 + :name: telco-20240117 + :class: page-title + + .. rubric:: Date + :name: Telco_20240117_date + + Wednesday, 17th January, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240117_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240117_agenda + + - NIAC meeting at ESRF + - release + - issues + + .. rubric:: Present + :name: Telco_20240117_present + + AB, SB, RB, BW, HG, MK, PJ, CZ, BB, PC + + .. rubric:: Minutes + :name: Telco_20240117_minutes + + - NIAC in Sept cannot be discussed as WdN is not present + - FAIRmat + + - https://github.com/nexusformat/definitions/pull/1336 + we merged it + - https://github.com/nexusformat/definitions/pull/1337 + we merged it + - https://github.com/nexusformat/definitions/pull/1271 + AB does a final check and then merge it + + - scaling_factor in NXmx: + add \_scaling_factor and \_offset as postfixes to any Fields + decision: vote and implementation in documentation are needed + - units + https://github.com/nexusformat/definitions/pull/1325 + OpenPMD uses defined list of dimensions and a vector for their + actual + + - SB: mice to build custom units, but is it following any + standard + - CP: not really human readability and missing things like + ANGLE + - MK: other unit categories are also missing + - BW: outcome is that it is interesting, but it should be made + universal + + - release: + + - https://github.com/nexusformat/definitions/issues/1231 + - NXaperture vs. NXslit + + - MK: NXslit is for simple 2-blades slits, but NXaperture + is for more complex geometries (to be used with + NXoff_geometry as SHAPE) + - PJ: whenever we want to deprecate or undeprecate + something, it shall be extremely well explained why we do + so + - MK: undeprecate NXaperture and make the documentation + clear, so it can be properly used. + + - After voting for this and merging 1271, we can do the relase + + .. rubric:: Feb Telco + :name: feb-telco + + Please help to `choose the date by responding to the + poll `__ by + Feb 4th. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240214.rst b/source/teleconferences/Telco_20240214.rst new file mode 100644 index 00000000..63c4e588 --- /dev/null +++ b/source/teleconferences/Telco_20240214.rst @@ -0,0 +1,94 @@ +================= +Telco 20240214 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240214 + :name: telco-20240214 + :class: page-title + + .. rubric:: Date + :name: Telco_20240214_date + + Wednesday, 14th February, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240214_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240214_agenda + + - NIAC meeting at ESRF + - release + - issues + + .. rubric:: Present + :name: Telco_20240214_present + + SB, HB, WdN, TC, CZ, PJ, FS, PC, MK, BB, TM, RO, PM, HG, RO + + .. rubric:: Minutes + :name: Telco_20240214_minutes + + - | release + | PC summarised and announced the new NeXus release 2024.02 + + - NIAC Meeting + WdN: NIAC meeting is in place, no problem with having access to + the rooms on the week-end + + - in person participation is indicated by 7 people from the + call + - 3 persons requested remote access + - formal invitation letter is requested by US participants + + - topics for the meeting + + - SB: FAIRmat (standardisation of NXmpes, NXellipsometry') + - PM: Sample Environment workgroup SECoP@HMC, Liquid + Reflectometry + - WdN: NXstress + (https://github.com/nexusformat/definitions/pull/1039) for + stress-strain analysis, and NXxas review (ongoing effort in + XAS working group) + - HG: NeXus Ontology (PR for v2 should use and reference the + official NeXus repo) + + - NXtransformations + + - SB: extending NXtransformation to be able to cover more than + just translation and rotation, e.g. a matrix for generic + base change + - HB: yes, we need a 'general' transformation as it is called + and supported in CIF. Note that it should also be open for + more dimensions + - MK: non-orthogonal axis can be defined using factors. + + - NeXus Ontology + + - PM: connection between NeXus and PaNet ontologies and to + other ontologies is initiated at ESRF. Implementation uses + rule based classification methods (e.g. if theta_max is + smaller than xxx than it is SAX experiment) + - SB: we also work on references to ISO standards and ontology + terms, but only in doc strings yet. + - HG: PID could also be put somewhere + - HB: reference-list should be added explicitly in definitions + - SB: NXDL could be extended to be able to describe such + reference list + + .. rubric:: March Telco + :name: Telco_20240214_march-telco + + Please help to `choose the date by responding to the + poll `__ by + Feb 29. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240311.rst b/source/teleconferences/Telco_20240311.rst new file mode 100644 index 00000000..17d3af5a --- /dev/null +++ b/source/teleconferences/Telco_20240311.rst @@ -0,0 +1,90 @@ +================= +Telco 20240311 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240311 + :name: telco-20240311 + :class: page-title + + .. rubric:: Date + :name: Telco_20240311_date + + Monday, 11th March, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240311_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240311_agenda + + - NIAC meeting at ESRF + - issues + + .. rubric:: Present + :name: Telco_20240311_present + + AB, + + .. rubric:: Minutes + :name: Telco_20240311_minutes + + - NIAC 2024 During the meeting, ensure people that are remote are + notified that a vote is coming. Need time for offline people to + digest proposals before votes. + Use plenary vs working sessions, multiple of each per day + - NeXus front page says next meeting is code camp 2023 + - Reviewed schema bugfixes in + https://github.com/nexusformat/definitions/pull/1370 + + - PM: sidestep by setting up a different way of specifying + examples (nxdl namespace for example). + - PJ: this is about how to provide examples of unit types in + the nexus schema. Each unit type needs an example to avoid + confusionRevisit discussion of general + + - NXtransformations + + - AB: NXtransformations that are rotations are full basis + transformations: rotation + the vector offsetHJB: + non-problem, as transformation type can be omitted, for + 'general' basis definitions like gravity + - PM: is there an example with the current NXtransformations + are insufficient + + - PM: upcoming EU funding may be available from a broad project + that includes photons/neutrons. + + - There are open calls for 1-2 year projects, 1 FTE. + - We could apply for some funding to update toolage. + - Call in spring (opens this friday) and sept. + - AB: remember what the NIAC is: specs, + docs/examples/validator. Maybe validator help would be + useful + - MK: cnxvalidate could use an update Should we have a + reimplementation in python + - AB: Touch base with Ray for some NeXpy support + - PM: will think and maybe bring a proposal back + - HB: include h5py if working on NeXpy + - PM: looking for a library that exposes base class as python + types + - PJ: punx has this (AB to what extent): + https://github.com/prjemian/punx + - RB: has a nxstixm file validator: + https://github.com/RussBerg/nxstxm_validator + - RB: has code for autogenerating NeXus files + + .. rubric:: April Telco + :name: Telco_20240311_april-telco + + Please help to choose the date by responding to the poll by + . We are planning to hold the telco in the regular slot of UTC + 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240415.rst b/source/teleconferences/Telco_20240415.rst new file mode 100644 index 00000000..87d03b8f --- /dev/null +++ b/source/teleconferences/Telco_20240415.rst @@ -0,0 +1,142 @@ +================= +Telco 20240415 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240415 + :name: telco-20240415 + :class: page-title + + .. rubric:: Date + :name: Telco_20240415_date + + Monday, 15th April, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240415_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240415_agenda + + - issues + + .. rubric:: Present + :name: Telco_20240415_present + + SB, AB, PM, WdN, PC, BW, LG, PJ,, HG, RO, BB, CZ, FS, HB + + FAIRmat: Markus Kuehbach, Florian Dobener + + .. rubric:: Minutes + :name: Telco_20240415_minutes + + - | NIAC Conf: registration is needed for on site attendance, + zoom attendance will be offered + https://indico.esrf.fr/event/114/ + | https://indico.esrf.fr/event/114/page/27-satellite-meetings + + - Calls and External fundings + + - PM: OSCARS calls (https://oscars-project.eu/) + potential topic: NeXus libraries, and software environment. + Anyone to go with it + - PM: webinars: call is open + - SB: OSCARS also for NeXus Ontology + - RO: funding for nexpy is also coming in the Summer. Another + topic: use of HSDS for cloud storage (IRI is also addressing + that. see + https://science.osti.gov/-/media/ascr/ascac/pdf/meetings/202306/Brown_IRI_ASCAC_2023206.pdf) + + - SB: NeXus Ontology v2 + + - HG: it would be great if ESRF could test it + - WdN: Yes, we shall figure out how to integrate with other + ontologies + + - Base Class Inheritance + + - SB: base class inheritance would be appreciated using + extends= exactly on the same way as for AppDefs. It would + help avoiding copy-pasting. 2 examples are shown: NXem_ebsd + (specialising NXem_method) and NXdata_mpes (specialising + NXdata). Note that although HTML generation accepts is + already, tools like, but cnxvalidate shall probably be + updated to support it as registered in a previous issue. + - PJ: Note that it is not a real OO inheritance with all + common concepts, but rather like java interfaces; + - BW: software tools should also be able to follow the + inheritance of the concepts. Is it supported + - SB: yes, a python code used for the HTML generation is + already implementing it and produces the first reference + linking + - PM: 3D geometry description is another example to support + this move and to help avoiding copy-pasting taht happens + around NXtransformations. Note that composition is even more + powerful than inheritance. How could we combine it What + about multiple inheritance + - SB: during composition, we indeed already also 'inherit' + (auto-copy the interface) and also specialise/extend in one + go. Multiple inheritance of interfaces could be great for + AppDefs to be used as a comma separated string of AppDef + names in NXentry/definition to tell that the given ENTRY + implements all those interfaces. + - PJ (chat): Paul, your observation is correct and it was done + with intent, to avoid 'being' object designed. It's high + time to fix that. Part of that design included consideration + of multiple inheritance, and its consequences. NIAC was not + ready to consider how to handle that in NXDL. + - RO (chat): + ../content/Objects_or_Interfaces.html + - RO: In 2011 there was an evaluation of going for OO (MK's + presentation in OO problems in NeXus from 2007: + https://anl.box.com/s/afnrbx4yujjctnciit4bk5olr64usq6n). + Note that the sw implementation does use OO, e.g. for NXdata + - PC (chat): A previous discussion of the NIAC: + ../niac/NIAC2018Minutes.html + - PJ (chat): extends - + https://github.com/nexusformat/definitions/blob/main/nxdl.xsd#L237 + The ``extends`` attribute allows this definition to + *subclass* from another NXDL, otherwise + ``extends="NXobject"`` should be used. + - AB: anybody against this + - HB: objection against multiple inheritance as it is in C++. + This is very problematic! Java style single inheritance + would work fine, and also implementations of multiple + interfaces as in Java. + - AB: yes, problems are with multiple inheritances also in + python. SB, let us set up a github issue to carry on it! + + - XAS Working Group + + - WdN: from XAS working group + (https://indico.esrf.fr/event/114/page/27-satellite-meetings) + reusable list of enumeration items could be useful + - MK: EM, APM, XPS also having similar problems, solution may + be a corresponding base class, like NXabberation + - AB: new base class for these could be an overkill, but a new + functionality in NXDL or an xml feature which would support + that in NXDL could also be a solution + - HG: what about a reference to external ontology/vocabulary + - PM: it would be good to have a link between enumerations we + use in NeXus at different places + + - Promoting Contributed Definitions + + - AB: list of contributed definitions to be promoted in Sept + should be set. + - 3 member committee to do it for May Telco: SB, BW, PC + + .. rubric:: May Telco + :name: Telco_20240415_may-telco + + Please help to `choose the date by responding to the + poll `__ by + May 3. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240515.rst b/source/teleconferences/Telco_20240515.rst new file mode 100644 index 00000000..6a70fb5b --- /dev/null +++ b/source/teleconferences/Telco_20240515.rst @@ -0,0 +1,91 @@ +================= +Telco 20240515 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240515 + :name: telco-20240515 + :class: page-title + + .. rubric:: Date + :name: Telco_20240515_date + + Wednesday, 15th May, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240515_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240515_agenda + + - issues + - contributed defintions + + .. rubric:: Present + :name: Telco_20240515_present + + AB, SB, HB, BW, RB, PJ, WdN, RO, PC, FS, CZ, BB, PM + Arnold + Paecklar (ILL) + + .. rubric:: Minutes + :name: Telco_20240515_minutes + + - NOBUGS - registration is open; NIAC meeting attendence needs + registration only for in person participation + + - NIAC2024 webpage: AB starts putting it up, WdN will finalise + - schedule: similar to that of 2022 + + - NXstress - https://github.com/nexusformat/definitions/pull/1039 + + - WdN: easystress consortium is proposing it: analysis: + diffraction data / ToF / ' -> peak fit -> reflection -> + strain -> stress (geometry is important) beam + intensity_profile: is specialised NXbeam + - AB/AP: description of the scientific use case + - RO: why peak parameters are inside NXdata + - WdN: plotable, but not necessary has to be NXdata + - SB: please note our coming proposal: + https://fairmat-nfdi.github.io/nexus_definitions/classes/contributed_definitions/NXpeak.html#nxpeak + - RO: there is also a convention to map lmfit parameters + inside NXprocess + - WdN: fit results for all peaks + - SB: we should talk to see if we can align with our NXpeak. + Layout is nice that it does not suggest a group for each + peak + - PJ: peak parameters could be described by NXparameters + - SB: NXcollection: it is not validated + - PJ: use NXparameters instead. Note that /NXparameters/term + should be TERM (and NX_ANY not NX_CHAR) + - AB: let us set up a PR. Who can review + - SB: I can represent FAIRmat developpers + + - Contributed definitions - + https://github.com/orgs/nexusformat/projects/4/views/1 + + - BW: non-fairmat contributions are collected NXcxi_ptycho: + simplistic, but responds to community need -> AB: should go + to a PR for standardisation NXcontainer: does not seem to be + able to properly describe the use case -> AB: also with + others: let us assign proposers for better book-keeping and + be able to assign responsibles and ownership + - SB: FAIRmat deinfitions are collected (2 groups: to be + standardised; keep in incubation) -> AB: make a project for + those we want to put into the PR for Sept. Let us assign + reviewers, so we can prepare the PR early enough. + + .. rubric:: June Telco + :name: june-telco + + Please help to `choose the date by responding to the + poll `__ by + June 7. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240626.rst b/source/teleconferences/Telco_20240626.rst new file mode 100644 index 00000000..df292a07 --- /dev/null +++ b/source/teleconferences/Telco_20240626.rst @@ -0,0 +1,106 @@ +================= +Telco 20240626 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240626 + :name: telco-20240626 + :class: page-title + + .. rubric:: Date + :name: Telco_20240626_date + + Wednesday, 26th Jun, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240626_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240626_agenda + + - issues + - contributed defintions + + .. rubric:: Present + :name: Telco_20240626_present + + AB, SB, HB, RB, WdN, FS, PC, BW, HG, LG, BB, PM, TM + Arnold + Paecklar (ILL) + + .. rubric:: Minutes + :name: Telco_20240626_minutes + + - NXstress for stress and strain analysis + + - WdN: proposal to accept it as contributed + - WdN: for hotel bookings + https://indico.esrf.fr/event/114/page/38-practical-information + - AB: ambiguity with having multiple NXnotes shall be + guaranteed + - SB: CALIBRATION(NXnote) and notes(NXnote) are OK, only a + data item called 'notes' will be assigned to 'notes', and + all other data objects named differently will be assigned to + CALIBRATION and can have calibration_type also attached. + - BW: calibration_type could be enumeration or examples in doc + string + + - NIAC2024 + + - AB: schedule for sessions is prepared + + - NXdata + + - PC: issue #1381 NXdata/AXES can now have multiple axes + assigned to the same dimension. Is it OK + - SB: note that also the order of items in @axes was linked to + the dimensions of the DATA. @AXISNAME_indices are now + defining which axes belong to which dimensions. + - PC: we could keep restricting @axes to list the default axes + for the DATA, and alternative axes could be collected from + @AXISNAME_indices + - AB: let us make a PR so it can be reviewed. + + - standardisation of contributed definitions + + - Projects + + - AB: Project is organised with issues for each non-FAIRmat + contributions (Project#4). Let us take an issue and + review them! Issues have been distributed for review' + + - Organisation + + - AB: Number of base classes and AppDefs are increasing. We + need a better organisation rather than having a flat + list. AppDef could be according to experiment types + - PM: AppDef organisation according to experiment technique + could use categories from PaNET ontology. + - AB: Base Classes are tricky. Maybe according to usage, + like from most common to less used. + - PC: general definitions shall be on top, specific ones + could be groupped + - PM: maybe tags and filters could be introduced + - HB: we miss keywords as manually curated list of topics + foreach the definitions + + - acknowleding fundings + + - PM: is funding contribution acknowledged + - AB: on the webpage we have place for it, but we have not + used it a lot + - PM: we could acknowledge FAIRmat for recent contribution + + .. rubric:: July Telco + :name: Telco_20240626_july-telco + + Please help to choose the date by responding to the poll by + . We are planning to hold the telco in the regular slot of UTC + 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240717.rst b/source/teleconferences/Telco_20240717.rst new file mode 100644 index 00000000..59e343f7 --- /dev/null +++ b/source/teleconferences/Telco_20240717.rst @@ -0,0 +1,119 @@ +================= +Telco 20240717 +================= + +.. container:: content + + .. container:: page + + .. rubric:: Telco 20240717 + :name: telco-20240717 + :class: page-title + + .. rubric:: Date + :name: Telco_20240717_date + + Wednesday, 17th Jul, 15:00 UTC + + .. rubric:: Connect + :name: Telco_20240717_connect + + - ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 + - Meeting ID: 652 7209 1306 + - Passcode: nexus + + .. rubric:: Agenda + :name: Telco_20240717_agenda + + - issues + - contributed defintions + + .. rubric:: Present + :name: Telco_20240717_present + + AB, SB, BW, FS, HB, RO, CZ, BB, PM, WdN + Hector Perez (HZB) + + .. rubric:: Minutes + :name: Telco_20240717_minutes + + - | NIAC meeting + | Registration deadline for In person participation: Aug 5 + + - non-FAIRmat contributions + + - AB: spin-rotator comes as a package with lots of base + classes + no ISIS representations + + - PR #1343 - NXdata scaling_factor and offset + + - AB: used at SACLA where float data is represented with a + factor 10 + - RO: what is not it an attribute + - BW: there is a problem with handling attributes when using + external links to a dataset + - AB: let us be able to define separate scaling factors for + different fields, so instead of scaling_factor let us use + FIELDNAME_scaling_factor + - RO: scaling_factor was originally used in NXlog + - BW: if we rename something, let us first DEPRECATE the old + standard (scaling_factor in this case) and introduce the new + solution + - RO: is deprecation retrieveable from the xml + - AB: yes there is an xml tag 'deprecated=' + + - NeXus logo https://github.com/nexusformat/NIAC/issues/145 + + - PM: is there a logo with vector graphics and transparency + - AB: we would need a high-resolution, svg, transparency + supported logo, but no new logo shall be created + - RO: old logo was done in bitmap mode + - PM: shall be able to be converted to svg + - BW: there is an svg version already + (communications/NeXus_logo.svg) + https://github.com/nexusformat/communications/blob/9c6def935cb083fa0a0a7077fb40a06c5e6ac8f9/NeXusLogo.svg + - RO: yes, but it comes with an unwanted border effect around + the characters + - BW: we shall also use consistently the official logo in + different web pages. volunteered to prepare the material for + a vote on how to clean the situation + + - NXdata/@axes PR#1396 + + - WdN: misinterpretation is now corrected in the PR. Note that + documentation is also estructured for more clarity. + - RO: note that length of AXISNAME field can be longer than + the respective signal dimension by 1 because of using ToF + detectors at neutron sources + - RO: also note that AXISNAME_indices if given for axes listed + in @axes, they shall match the order in @axes + - BW: in case of contradiction, an error shall be risen + - RO: consistent use of terms axis, coordinate, and dimension + is needed + - AB: documentation needs to be easy to read + - WdN: let me prepare a new proposal for the next meeting + https://www.nexusformat.org/2014_axes_and_uncertainties.html + + - FAIRmat proposals + + - AB: lets prepare PRs for: + + - common base classes + - packages for separate appdefs and corresponding base + classes + + - SB: exactly, topics are already organised on the Project + page https://github.com/orgs/nexusformat/projects/5/views/1 + - AB: on the Aug meeting, let us allocate + + - 20 mins for NXdata + - 70 mins for FAIRmat proposals + + .. rubric:: Aug Telco + :name: Telco_20240717_aug-telco + + Please help to `choose the date by responding to the + poll `__ by + Aug 15th. We are planning to hold the telco in the regular slot of + UTC 15:00. Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20240820.rst b/source/teleconferences/Telco_20240820.rst new file mode 100644 index 00000000..11ec866e --- /dev/null +++ b/source/teleconferences/Telco_20240820.rst @@ -0,0 +1,15 @@ +============== +Telco 20240820 +============== + +AB, SB, + +Minutes +------- + +Sept Telco +---------- + +Please help to (choose the date by responding to the poll)by XXX. We are +planning to hold the telco in the regular slot of UTC 15:00. Check your +local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20241127.rst b/source/teleconferences/Telco_20241127.rst new file mode 100644 index 00000000..7030d40b --- /dev/null +++ b/source/teleconferences/Telco_20241127.rst @@ -0,0 +1,51 @@ +============== +Telco 20241127 +============== + +Date +---- + +Wednesday, 27th Nov, 15:00 UTC + +Connect +------- + +- ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 +- Meeting ID: 652 7209 1306 +- Passcode: nexus + +Agenda +------ + +follow up on the NIAC meeting in Sept: - Logo - website - PRs + +Present +------- + +SB, LG, FS, BW, BB, CP, CZ, ZM, PM, HB, RB + Lukas (FAIRmat) + +Minutes +------- + +- | logo + | BW: new logo alternatives: small logo with and without gray bars + | PC: it is cleaner without bars. + | PM: seconded and suggested to use all 4 versions together as + official set. + | we all agreed with no objections + | PM: what about differebt resolutions? + | BW: it is in svg, but we can generate set of resolutions, too, but + let us keep svg as the official. + | PM: shall we need to make an accessibility check on the colors? + | BW: it shall be already OK, but can be further checked. + +- | website + | RB: wiki migration is in progress + | PC: will the docs and wiki be hosted on the same domain? + | RB: machinary is now the same for wiki and doc generation + | PC: also docs for multiple version will be supported + +- | preparation of NXmpes definition family for vote + | See the discussions and conclusions in `issue + 1464 `__ diff --git a/source/teleconferences/Telco_20241209.rst b/source/teleconferences/Telco_20241209.rst new file mode 100644 index 00000000..80ed085b --- /dev/null +++ b/source/teleconferences/Telco_20241209.rst @@ -0,0 +1,131 @@ +============== +Telco 20241209 +============== + +Date +---- + +Monday, 9th Dec, 15:00 UTC + +Connect +------- + +- ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 +- Meeting ID: 652 7209 1306 +- Passcode: nexus + +Agenda +------ + +- domain names +- canSAS? +- PRs + `1517 `__ + `1518 `__ + `1407 `__ + `1486 `__ + `1408 `__ + `1410 `__ + `1414 `__ + `1419 `__ + `1413 `__ + `1415 `__ + `1420 `__ + `1424 `__ + +Present +------- + +SB, AB, RB, HB, FS, WdN, BB, RO, BW, PC + Lukas P., Markus K., Ron H., +Rubel M. (FAIRmat) + +Minutes +------- + +- | domain names + | AB: We have been contacted from China that our domain.cn + | HB: we should say no to that + | AB: will ask LBL leagal team + +- | PRs + | `1517 `__ + | AB: PC has reviewed and approved it, so we can merge it in + | `1518 `__ + | AB: HB has approved, + | RO: spelling mistakes + | AB: will resolve remaining comments, but no further requests. + | `1407 `__ + | AB: the idea of the possibility for opening up enumerations is also + relevant here + | HB: note that enum items should be intorduced with documentation + | AB: this has been approved in its current form, so let us do the + documentation improvmenet in a separate step + | RO: we need both option of closed and open enumerations + | AB: subclassing is approved, but Lukas reported that it may not + solve the problem without supporting multiple inheritance + | BW: a new vote is not necessary to revoke the request for + subclassing, as it has just turned out that the implementation of + the previous vote would result in a contradiction. + | AB: Let us accept it and release this requieremnt of using + subclasses + | AB: NXlens_em must be approved itself before we use it in other + approved definitions + | LP: It is fine to take it to a spearate PR + | AB: with these decisions, we can merge this in + | `1486 `__ + | RO: documenttaion is too long and could be separated out + | AB: rendering hides the long doc and shows it collapesd + | RO: that looks good + | AB: let us remove type_oter also from here (assuming open + enumerations will be supported) + | AB: after all conversations have been resolved, let us start an + online vote. + | `1507 `__ + | SB: FIELDNAME_xxx require the presence of a field with name + FIELDNAME + | AB: clarification could be added + | AB: is this need a vote? or ot os just an implementatin of the + convention? + | Telco participants decided that we do not need a vote here + | AB: let people not being on telco respond that, otherwise let merge + it. + | RM: do we realy want to support nested groups? + | SB: yes, it might read confusing, but indeed the proposal supports + nested groups for all those listed + | `1408 `__ + | AB: fields from NXmx are pulled to the base class now, so it can be + resued by others, too. + | AB: copied extra documentation (to energy from wavelength) could be + replaced by simple reference. + | LP: Yes, it is OK + | PC: Are previous/next deivces needed? + | SB: Yes, we use them to store information on optical setups where + \*-like relations are between optical devices + | AB: let us bring this to a vote + | AB: Additionally to them, there are lots of new fields, like + fluence, etc. Shall we do not put them to AppDefs + | BW: We should collect them in the base class and let AppDefs select + whiuch one they need in a specific case + | HB: Ben is right. For a controlled vocabulary, it is good to + collect faivoured names into base classes. Incident is needed to + understand why and how we need new defs + | LP: +1 + | AB: what about ultra-short pulse related charscteristics? Can we + have then by using sbclassing + | LP: Yes, it is a reasonable choice + | MK: beam is not at all a straght line in EM + | AB: might not be neede to do subclassing + | WdN: are the units too restrictive + | SB: only examples are provided here + | RO: In neutron scattering, the incident polarisation, we use in % + rather. + | BW: The concept defines electro-magnatic polarisation + | AB: let us go back to use the units NX_ANY fr incident and final + polarisation. + | All accepted that. + | SB: Note that these are different concepts, so we may want to call + them differently + | AB: In fact, we should have clear concepts + | BW: incident_polarisation_stokes is indeed defined in NXbeam + | AB: let us bring it to a vote with the comments diff --git a/source/teleconferences/Telco_20241218.rst b/source/teleconferences/Telco_20241218.rst new file mode 100644 index 00000000..b2e521d0 --- /dev/null +++ b/source/teleconferences/Telco_20241218.rst @@ -0,0 +1,102 @@ +============== +Telco 20241218 +============== + +Date +---- + +Wednesday, 18th Dec, 15:00 UTC + +Connect +------- + +- ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 +- Meeting ID: 652 7209 1306 +- Passcode: nexus + +Agenda +------ + +- canSAS? +- PRs + `1410 `__ + `1414 `__ + `1419 `__ + `1413 `__ + `1415 `__ + `1420 `__ + `1424 `__ + +Present +------- + +SB, AB, HB, FS, PC, BW + LukasP, MarkusK (FAIRmat) + +Minutes +------- + +- | feedback on copyright with different dates: + `1437 `__ + | Global copyright can be the date for the fiorst release + | Individual definitions shall have they initial date spelled out, + together with the data of the latest release they have been + boundled with. + +- | FS: questions on NXxas documentation is not clear on what is what. + e.g. incoming_beam/data + | SB: there is a NXxas workgroup, please join this effort on making + this AppDef better + | AB: also open a corresponding issue, so we can track progress + +- | PRs under vote: + | `1408 `__ + | `1486 `__ + +- | PRs + | `1507 `__ - + ready for merge + | AB: accepted, get merged + | `1410 `__ - + for Vote + | AB: documentation should be made more clear + | BW: do we need such attribute for the group itself? + | AB: it requires a vote, let us put it up for it after the suggested + changes are implemented. + | `1414 `__ - + only Review needed + | AB: After removing the not yet reviewed class, it contains now only + proposal which has already been reviewed. As it has been voted and + accepted, after fixing the requested changes, it can be merged in. + | AB: SB could open a new issue on updating the original and + potentially outdated documentation of NXenvironment to be more + clear. + | `1419 `__ - + only Review is needed + | After 1486, this can be also merged. + | `1420 `__ - + only Review is needed + | AB: has already been voted. Restructuring was asked to use + inheritance. PR depends on PRs in vote. + | LP: we can remove NXcalibration from here and then it can be merged + immediate after review. + | AB: NXregistration shall also subclass NXprocess. This needs to be + addressed first, and then merge is possible. + | `1522 `__ - + further discussion needed + | LP: PR needs to be updated + | `1519 `__ - + further discussion needed + | AB: We could make NXcomponent a superclass of lots of instrument + components. This can be addressed in a separate PR. + | HB: NXcomponent properties could be part of NXobject + | AB: Alternative: keep NXlens_em separate from NXcomponent if it + shall be merged before making a decision on NXcomponent. + +Jan Telco(s) +------------ + +Please help to `choose the date by responding to the +poll `__ by Dec 31. +We are planning to hold the telco in the regular slot of UTC 15:00. +Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/Telco_20250116.rst b/source/teleconferences/Telco_20250116.rst new file mode 100644 index 00000000..4a9bd7a8 --- /dev/null +++ b/source/teleconferences/Telco_20250116.rst @@ -0,0 +1,44 @@ +============== +Telco 20250116 +============== + +Date +---- + +Thursday, 16th Jan, 15:00 UTC + +Connect +------- + +- ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 +- Meeting ID: 652 7209 1306 +- Passcode: nexus + +Agenda +------ + +- canSAS? +- PRs + `1408 `__ + `1410 `__ + `1413 `__ + `1415 `__ + `1419 `__ + `1519 `__ + `1528 `__ + `1424 `__ + `1423 `__ + `1422 `__ + `1425 `__ + `1421 `__ + `1521 `__ + `1523 `__ + +Present +------- + +SB, AB, + LukasP, MarkusK (FAIRmat) + +Minutes +------- diff --git a/source/teleconferences/Telco_20250127.rst b/source/teleconferences/Telco_20250127.rst new file mode 100644 index 00000000..12d43a1f --- /dev/null +++ b/source/teleconferences/Telco_20250127.rst @@ -0,0 +1,53 @@ +============== +Telco 20250127 +============== + +Date +---- + +Monday, 27th Jan, 15:00 UTC + +Connect +------- + +- ZOOM VC link: + https://hu-berlin.zoom.us/j/65272091306?pwd=WUxEa0ZtVXp1ZHlsSlVjU2lmclMrQT09 +- Meeting ID: 652 7209 1306 +- Passcode: nexus + +Agenda +------ + +- canSAS? +- PRs + `1408 `__ + `1410 `__ + `1413 `__ + `1415 `__ + `1419 `__ + `1519 `__ + `1528 `__ + `1424 `__ + `1423 `__ + `1422 `__ + `1425 `__ + `1421 `__ + `1521 `__ + `1523 `__ + +Present +------- + +SB, AB, + LukasP, MarkusK (FAIRmat) + + +Minutes +------- + +Feb Telco(s) +------------ + +Please help to `choose the date by responding to the +poll `__ by Jan 26. +We are planning to hold the telco in the regular slot of UTC 15:00. +Check your local time to avoid scheduling surprises! diff --git a/source/teleconferences/teleconferences.rst b/source/teleconferences/teleconferences.rst new file mode 100644 index 00000000..1e6dc422 --- /dev/null +++ b/source/teleconferences/teleconferences.rst @@ -0,0 +1,763 @@ +================= +Teleconferences +================= + +.. container:: content + + .. container:: page + + .. rubric:: Teleconferences + :name: teleconferences + :class: page-title + + These were originally born out of the idea of opening the meetings + of the former Technical Subcommittee to the wider community. All + interested parties are welcome. If you wish to know the date and + time in advance, join the + `nexus-tech `__ + mailing list. + + Currently we use Zoom as the video conferencing technology, which + works reasonably well for everyone. A new link is generated for + each meeting and is published in the corresponding agenda page + below. + + We aim to publish an agenda a few days in advance of the meetings. + + + .. rubric:: 2025 + :name: 2025 + + `Telco 20250127 `__ Monday, 27th Jan, 15:00 + UTC + + `Telco 20250116 `__ Monday, 16th Jan, 15:00 + UTC + + .. rubric:: 2024 + :name: 2024 + + `Telco 20241218 `__ Wednesday, 18th Dec, 15:00 + UTC + + `Telco 20241209 `__ Thursday, 12th Dec, 15:00 + UTC + + `Telco 20241127 `__ Wednesday, 27th Nov, 15:00 + UTC + + `Telco 20240820 `__ Tuesday, 20th Aug, 15:00 + UTC + + `Telco 20240717 `__ Wednesday, 17th July, + 15:00 UTC + + `Telco 20240626 `__ Wednesday, 26th June, + 15:00 UTC + + `Telco 20240515 `__ Wednesday, 15th May, + 15:00 UTC + + `Telco 20240415 `__ Monday, 15th April, 15:00 + UTC + + `Telco 20240311 `__ Monday, 11th March, 15:00 + UTC + + `Telco 20240214 `__ Wednesday, 14th February, + 15:00 UTC + + `Telco 20240117 `__ Wednesday, 17th January, + 15:00 UTC + + .. rubric:: 2023 + :name: 2023 + + `Telco 20231220 `__ Wednesday, 20th December, + 15:00 UTC + + `Telco 20231121 `__ Tuesday, 21st November, + 15:00 UTC + + `Telco 20231019 `__ Thursday, 19th October, + 15:00 UTC + + `Telco 20230920 `__ Wednesday, 20th + September, 15:00 UTC + + `Telco 20230814 `__ Monday, 14th August, + 15:00 UTC + + `Telco 20230724 `__ Monday, 24th July, 15:00 + UTC + + `Telco 20230524 `__ Wednesday, 24th May, + 15:00 UTC + + `Telco 20230419 `__ Wednesday, 19th April, + 15:00 UTC + + `Telco 20230314 `__ Tuesday, 14th March, + 15:00 UTC + + `Telco 20230213 `__ Monday, 13th February, + 15:00 UTC + + `Telco 20230119 `__ Thursday, 19th January, + 15:00 UTC + + .. rubric:: 2022 + :name: 2022 + + `Telco 20221202 `__ Friday, 2nd December, + 15:00 UTC + + `Telco 20221026 `__ Wednesday, 26th October, + 15:00 UTC + + `Telco 20220824 `__ Wednesday, 24th August, + 15:00 UTC + + `Telco 20220707 `__ Thursday, 7th July, 15:00 + UTC + + `Telco 20220602 `__ Thursday, 2nd June, 14:00 + UTC + + `Telco 20220527 `__ [STRIKEOUT:Friday, 27th + May, 14:00 UTC] + + `Telco 20220426 `__ Tuesday, 26th April, + 14:00 UTC + + `Telco 20220225 `__ Friday, 25th February, + 14:00 UTC + + `Telco 20220131 `__ Monday, 31st January, + 14:00 UTC + + .. rubric:: 2021 + :name: 2021 + + `Telco 20211215 `__ Wednesday, 15th December, + 14:00 UTC + + `Telco 20211115 `__ Monday, 15th November, + 14:00 UTC + + `Telco 20210915 `__ Wednesday, 15th + September, 13:00 UTC + + `Telco 20210728 `__ Wednesday, 28th July, + 13:00 UTC + + `Telco 20210628 `__ Wednesday, 28th June, + 13:00 UTC + + `Telco 20210505 `__ Wednesday, 5th May, 13:00 + UTC + + `Telco 20210303 `__ Wednesday, 3rd March, + 14:00 UTC + + `Telco 20210120 `__ Wednesday, 20th January, + 14:00 UTC + + .. rubric:: 2020 + :name: 2020 + + .. rubric:: December + :name: december + + `Telco 20201208 `__ Tuesday, 8th December, + 14:00 UTC + + .. rubric:: September + :name: september + + `Telco 20200930 `__ Wednesday, 30 September, + 15:00 CEST (+0200) + + `Telco 20200904 `__ Friday, 4 September, + 15:00 CEST (+0200) + + .. rubric:: July + :name: july + + `Telco 20200701 `__ Wednesday, 1 July, 15:00 + CEST (+0200) + + .. rubric:: May + :name: may + + `Telco 20200527 `__ Wednesday, 27 March, + 15:00 CEST (+0200) + + .. rubric:: April + :name: april + + `Telco 20200424 `__ Friday, 24 March, 15:00 + CET (+0100) + + .. rubric:: March + :name: march + + `Telco 20200323 `__ Monday, 23 March, 15:00 + CET (+0100) + + .. rubric:: February + :name: february + + `Telco 20200224 `__ Monday, 24 February, + 15:00 CET (+0100) + + .. rubric:: 2019 + :name: 2019 + + .. rubric:: December + :name: december-1 + + `Telco 20191212 `__ Thursday, 12 December, + 15:00 CET (+0100) + + .. rubric:: November + :name: november + + `Telco 20191107 `__ Thursday, 7 November, + 15:00 CET (+0100) + + .. rubric:: September + :name: september-1 + + `Telco 20190911 `__ Wednesday, 11 September, + 15:00 CEST (+0200) + + .. rubric:: August + :name: august + + `Telco 20190812 `__ Monday, 12 August, 15:00 + CEST (+0200) + + .. rubric:: July + :name: july-1 + + `Telco 20190715 `__ Monday, 15 July, 15:00 + CEST (+0200) + + .. rubric:: June + :name: june + + `Telco 20190621 `__ Friday, 21 June, 15:00 + CEST (+0200) + + .. rubric:: April + :name: april-1 + + `Telco 20190424 `__ Wednesday, 24 April, + 15:00 CEST (+0200) + + .. rubric:: March + :name: march-1 + + `Telco 20190312 `__ Tuesday, 12 March, 15:00 + CET (+0100) + + .. rubric:: February + :name: february-1 + + `Telco 20190207 `__ Thursday, 7 February, + 16:30 CET (+0100) + + .. rubric:: 2018 + :name: 2018 + + .. rubric:: October + :name: october + + `Telco 20181015 `__ Monday, 15 October, 16:30 + CEST (+0200) + + .. rubric:: September + :name: september-2 + + `Telco 20180926 `__ Wednesday, 26 September, + 16:30 CEST (+0200) + + `Telco 20180905 `__ Wednesday, 5 September, + 16:30 CEST (+0200) + + .. rubric:: August + :name: august-1 + + `Telco 20180814 `__ Tuesday, 14 August, 16:30 + CEST (+0200) + + .. rubric:: June + :name: june-1 + + `Telco 20180619 `__ Tuesday, 19 June, 16:30 + CEST (+0200) + + .. rubric:: May + :name: may-1 + + `Telco 20180529 `__ Tuesday, 29 May, 16:30 + CEST (+0200) + + `Telco 20180515 `__ Tuesday, 15 May, 16:30 + CEST (+0200) + + `Telco 20180502 `__ Wednesday, 2 May, 16:30 + CEST (+0200) + + .. rubric:: April + :name: april-2 + + `Telco 20180418 `__ Wednesday, 18 April, + 16:30 CEST (+0200) + + `Telco 20180403 `__ Tuesday, 3 April, 16:30 + CEST (+0200) + + .. rubric:: March + :name: march-2 + + `Telco 20180313 `__ Tuesday, 13 March, 16:30 + CET (+0100) + + .. rubric:: February + :name: february-2 + + `Telco 20180220 `__ Tuesday, 20 February, + 16:30 CET (+0100) + + .. rubric:: January + :name: january + + `Telco 20180130 `__ Tuesday, 30 January, + 16:30 CET (+0100) + + `Telco 20180116 `__ Tuesday, 16 January, + 16:30 CET (+0100) + + .. rubric:: 2017 + :name: 2017 + + .. rubric:: November + :name: november-1 + + `Telco 20171128 `__ Tuesday, 28 November, + 16:30 CET (+0100) + + `Telco 20171107 `__ Tuesday, 7 November, + 16:30 CET (+0100) + + .. rubric:: October + :name: october-1 + + `Telco 20171026 `__ Thursday, 26 October, + 14:00 BST (+0100) + + `Telco 20171004 `__ Wednesday, 4 October, + 16:30 CEST (+0200) + + .. rubric:: September + :name: september-3 + + `Telco 20170912 `__ Tuesday, 12 September, + 16:30 CEST (+0200) + + .. rubric:: August + :name: august-2 + + `Telco 20170823 `__ Wednesday, 23 August, + 16:30 CEST (+0200) + + `Telco 20170808 `__ Tuesday, 8 August, 16:30 + CEST (+0200) + + .. rubric:: July + :name: july-2 + + `Telco 20170725 `__ Tuesday, 25 July, 16:30 + CEST (+0200) + + `Telco 20170711 `__ Tuesday, 11 July, 16:30 + CEST (+0200) + + .. rubric:: June + :name: june-2 + + `Telco 20170628 `__ Wednesday, 28 June, 16:30 + CEST (+0200) + + `Telco 20170607 `__ Wednesday, 7 June, 16:30 + CEST (+0200) + + .. rubric:: May + :name: may-2 + + `Telco 20170517 `__ Wednesday, 17 May, 16:30 + CEST (+0200) + + .. rubric:: April + :name: april-3 + + `Telco 20170426 `__ Wednesday, 26 April, + 16:30 CEST (+0200) + + `Telco 20170405 `__ Wednesday, 5 April, 16:30 + CEST (+0200) + + .. rubric:: March + :name: march-3 + + `Telco 20170322 `__ Wednesday, 22 March, + 16:30 CET (+0100) + + `Telco 20170308 `__ Wed, 8th March, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: February + :name: february-3 + + `Telco 20170220 `__ Mon, 20th February, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: January + :name: january-1 + + `Telco 20170130 `__ Mon, 30th January, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20170117 `__ Tue, 17th January, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: 2016 + :name: 2016 + + .. rubric:: December + :name: december-2 + + `Telco 20161213 `__ Tue, 13th December, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: November + :name: november-2 + + `Telco 20161123 `__ Wed, 23rd November, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: October + :name: october-2 + + `NIAC2016 `__ + + .. rubric:: September + :name: september-4 + + `Telco 20160928 `__ Wed, 28th September, + 16:30 Copenhagen/Zurich/Berlin Time + + `Telco 20160907 `__ Wed, 7th September, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: August + :name: august-3 + + `Telco 20160824 `__ Wed, 24th August, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160809 `__ Tue, 9th August, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: July + :name: july-3 + + `Telco 20160712 `__ Tue, 12th July, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: June + :name: june-3 + + `Telco 20160628 `__ Tue, 28th June, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160614 `__ Tue, 14th June, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: May + :name: may-3 + + `Telco 20160531 `__ Tue, 31st May, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160510 `__ Tue, 10th May, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: April + :name: april-4 + + `Telco 20160426 `__ Tue, 26th April, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160412 `__ Tue, 12th April, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: March + :name: march-4 + + `Telco 20160329 `__ Tue, 29th March, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160315 `__ Tue, 15th March, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: February + :name: february-4 + + `Telco 20160224 `__ Wed, 24th February, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160202 `__ Tue, 2nd February, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: January + :name: january-2 + + `Telco 20160120 `__ Wed, 20th January, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20160106 `__ Wed, 6th January, 16:30 + Copenhagen/Zurich/Berlin Time + + .. rubric:: 2015 + :name: 2015 + + .. rubric:: December + :name: december-3 + + `Telco 20151215 `__ Tue, 15th December, 16:30 + Copenhagen/Zurich/Berlin Time + + `Telco 20151202 `__ Wed, 2nd December, 17:00 + Copenhagen/Zurich/Berlin Time + + .. rubric:: November + :name: november-3 + + `Telco 20151116 `__ Mon, 16th November, 17:00 + Copenhagen/Zurich/Berlin Time + + `Telco 20151104 `__ Wed, 4th November, 17:00 + Copenhagen/Zurich/Berlin Time + + .. rubric:: October + :name: october-3 + + `Telco 20151014 `__ Wed, 14th October, 17:00 + Copenhagen Time + + `Telco 20151001 `__ Thu, 1st October, 16:00 + BST + + .. rubric:: September + :name: september-5 + + `Telco 20150909 `__ Wed, 9th September, 16:00 + BST + + .. rubric:: August + :name: august-4 + + `Telco 20150827 `__ Thu, 27th August, 16:00 + BST + + `Telco 20150811 `__ Tue, 11th August, 16:00 + BST + + .. rubric:: July + :name: july-4 + + `Telco 20150728 `__ Tue, 28th July, 16:00 BST + + `Telco 20150715 `__ Wed, 15th July, 12:00 BST + + .. rubric:: June + :name: june-4 + + `Telco 20150630 `__ Tue, 30th June, 12:00 BST + + `Telco 20150617 `__ Wed, 17th June, 12:00 BST + + `Telco 20150603 `__ Wed, 3rd June, 12:00 BST + + .. rubric:: May + :name: may-4 + + `Telco 20150520 `__ Wed, 20th May, 12:00 BST + + `Telco 20150506 `__ Wed, 6th May, 12:00 BST + + .. rubric:: April + :name: april-5 + + `Telco 20150408 `__ Wed, 8th Apr, 12:00 BST + + .. rubric:: March + :name: march-5 + + `Telco 20150318 `__ Wed, 18th Mar, 12:00 GMT + + `Telco 20150302 `__ Mon, 2nd Mar, 12:00 GMT + + .. rubric:: February + :name: february-5 + + `Telco 20150218 `__ Wed, 18th Feb, 12:00 GMT + + `Telco 20150203 `__ Tue, 3rd Feb, 12:00 GMT + + .. rubric:: January + :name: january-3 + + `Telco 20150114 `__ Wed, 14th Jan, 12:00 GMT + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + Telco_20150114 + Telco_20150203 + Telco_20150218 + Telco_20150302 + Telco_20150318 + Telco_20150408 + Telco_20150506 + Telco_20150520 + Telco_20150603 + Telco_20150617 + Telco_20150630 + Telco_20150715 + Telco_20150728 + Telco_20150811 + Telco_20150827 + Telco_20150909 + Telco_20151001 + Telco_20151014 + Telco_20151104 + Telco_20151116 + Telco_20151202 + Telco_20151215 + Telco_20160106 + Telco_20160120 + Telco_20160202 + Telco_20160224 + Telco_20160315 + Telco_20160329 + Telco_20160412 + Telco_20160426 + Telco_20160510 + Telco_20160531 + Telco_20160614 + Telco_20160628 + Telco_20160712 + Telco_20160809 + Telco_20160824 + Telco_20160907 + Telco_20160928 + Telco_20161123 + Telco_20161213 + Telco_20170117 + Telco_20170130 + Telco_20170220 + Telco_20170308 + Telco_20170322 + Telco_20170405 + Telco_20170426 + Telco_20170517 + Telco_20170607 + Telco_20170628 + Telco_20170711 + Telco_20170725 + Telco_20170808 + Telco_20170823 + Telco_20170912 + Telco_20171004 + Telco_20171026 + Telco_20171107 + Telco_20171128 + Telco_20180116 + Telco_20180130 + Telco_20180220 + Telco_20180313 + Telco_20180403 + Telco_20180418 + Telco_20180502 + Telco_20180515 + Telco_20180529 + Telco_20180619 + Telco_20180814 + Telco_20180905 + Telco_20180926 + Telco_20181015 + Telco_20190207 + Telco_20190312 + Telco_20190424 + Telco_20190621 + Telco_20190715 + Telco_20190812 + Telco_20190911 + Telco_20191107 + Telco_20191212 + Telco_20200224 + Telco_20200323 + Telco_20200424 + Telco_20200527 + Telco_20200701 + Telco_20200904 + Telco_20200930 + Telco_20201208 + Telco_20210120 + Telco_20210303 + Telco_20210505 + Telco_20210628 + Telco_20210728 + Telco_20210915 + Telco_20211115 + Telco_20211215 + Telco_20220131 + Telco_20220225 + Telco_20220426 + Telco_20220527 + Telco_20220602 + Telco_20220707 + Telco_20220824 + Telco_20221026 + Telco_20221202 + Telco_20230119 + Telco_20230213 + Telco_20230314 + Telco_20230419 + Telco_20230524 + Telco_20230724 + Telco_20230814 + Telco_20230920 + Telco_20231019 + Telco_20231121 + Telco_20231220 + Telco_20240117 + Telco_20240214 + Telco_20240311 + Telco_20240415 + Telco_20240515 + Telco_20240626 + Telco_20240717 + Telco_20240820 + Telco_20241127 + Telco_20241209 + Telco_20241218 + Telco_20250116 + Telco_20250127 + From 2b4e3ac993b3c8733654751e854fa1aca910931a Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Tue, 21 Jan 2025 16:48:04 -0600 Subject: [PATCH 02/16] after resolving all broken links --- .idea/.gitignore | 8 + .idea/inspectionProfiles/Project_Default.xml | 252 +++ .../inspectionProfiles/profiles_settings.xml | 6 + .idea/misc.xml | 4 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/wiki.iml | 8 + .../active_projects/ActiveProjects.doctree | Bin 9660 -> 9692 bytes .../codecamps/CodeCamp2020-2.doctree | Bin 20437 -> 20469 bytes .../codecamps/CodeCamp2020-attendees.doctree | Bin 13890 -> 13922 bytes .../codecamps/CodeCamp2020-topics.doctree | Bin 32066 -> 32098 bytes .../.doctrees/codecamps/CodeCamp2020.doctree | Bin 204227 -> 235779 bytes .../codecamps/CodeCamp2021-1.doctree | Bin 19774 -> 19806 bytes .../.doctrees/codecamps/CodeCamp2022.doctree | Bin 30767 -> 36115 bytes .../codecamps/CodeCampJune2023.doctree | Bin 32251 -> 32283 bytes .../codecamps/Code_Camp_2015.doctree | Bin 56629 -> 68683 bytes .../codecamps/Code_Camp_2017.doctree | Bin 62939 -> 62971 bytes build/.doctrees/facilities/Facilities.doctree | Bin 56707 -> 56739 bytes build/.doctrees/faq/FAQ.doctree | Bin 38061 -> 38157 bytes .../2014_How_to_find_default_data.doctree | Bin 20455 -> 20487 bytes .../2014_axes_and_uncertainties.doctree | Bin 103679 -> 103711 bytes .../.doctrees/html_static_pandoc/404.doctree | Bin 7299 -> 7331 bytes .../Archive_Definition.doctree | Bin 65742 -> 65774 bytes .../Associating_Axes_with_Data.doctree | Bin 16408 -> 16440 bytes .../ConcordanceDiscussion.doctree | Bin 43940 -> 43972 bytes .../Connecting_NXdata_to_NXdetector.doctree | Bin 39241 -> 39268 bytes .../Containers_and_Inheritance.doctree | Bin 22228 -> 22260 bytes .../html_static_pandoc/DLSraw.doctree | Bin 160242 -> 161642 bytes .../html_static_pandoc/Design_Issues.doctree | Bin 32597 -> 32629 bytes .../Detector_Geometry.doctree | Bin 17950 -> 17982 bytes .../html_static_pandoc/Download.doctree | Bin 17447 -> 19886 bytes ...ension_of_NeXus_Coordinate_Systems.doctree | Bin 32707 -> 32739 bytes .../File_id_attribute_for_Nexus_files.doctree | Bin 14540 -> 14572 bytes .../html_static_pandoc/GenericScan.doctree | Bin 34645 -> 34677 bytes .../Group_Attributes.doctree | Bin 13453 -> 13485 bytes ...e_extensions_of_the_Nexus_standard.doctree | Bin 25230 -> 25262 bytes .../IndirectDiscuss.doctree | Bin 170423 -> 170455 bytes ...ect_Time-of-Flight_and_Coordinates.doctree | Bin 19084 -> 19116 bytes .../html_static_pandoc/Instruments.doctree | Bin 53090 -> 53113 bytes .../html_static_pandoc/IssueReporting.doctree | Bin 11240 -> 11272 bytes .../html_static_pandoc/Japinotes.doctree | Bin 97769 -> 97801 bytes .../html_static_pandoc/Java_API.doctree | Bin 19902 -> 22385 bytes .../html_static_pandoc/Jnexustut.doctree | Bin 80348 -> 80380 bytes .../html_static_pandoc/Latest_News.doctree | Bin 144782 -> 144878 bytes .../Linking_External_Files.doctree | Bin 36052 -> 36084 bytes .../Membership_Dates.doctree | Bin 23107 -> 23171 bytes .../html_static_pandoc/Metaformat.doctree | Bin 27401 -> 27433 bytes .../html_static_pandoc/MonoXPSD.doctree | Bin 44708 -> 44740 bytes .../html_static_pandoc/MonoXSingle.doctree | Bin 35646 -> 35678 bytes ...utron_and_X-ray_Powder_Diffraction.doctree | Bin 7862 -> 7894 bytes ...ic_Neutron_and_X-ray_Reflectometry.doctree | Bin 30744 -> 30776 bytes ...-ray_Single_Crystal_Diffractometer.doctree | Bin 11976 -> 12008 bytes .../Multi_Method_Instruments.doctree | Bin 31884 -> 31916 bytes .../Muon_Time_Differential.doctree | Bin 8840 -> 8872 bytes .../html_static_pandoc/NAPI_Routines.doctree | Bin 429262 -> 429294 bytes .../NAPI_Utility_Routines.doctree | Bin 201659 -> 201691 bytes .../NXaperture_and_Slits.doctree | Bin 21704 -> 21736 bytes .../html_static_pandoc/NXbrowse.doctree | Bin 15541 -> 17989 bytes .../html_static_pandoc/NXbrowse.f90.doctree | Bin 139319 -> 139351 bytes .../NXdetector_2012_10.doctree | Bin 40203 -> 40235 bytes .../NXdetector_documentation.doctree | Bin 25986 -> 26018 bytes .../html_static_pandoc/NXdir.doctree | Bin 35699 -> 35731 bytes ...NXshape_-_documentation_and_review.doctree | Bin 36687 -> 36719 bytes .../html_static_pandoc/NXlrcs.f90.doctree | Bin 72629 -> 72661 bytes .../html_static_pandoc/NXmeasurement.doctree | Bin 16727 -> 16759 bytes .../NXmonoref-NIAC2006.doctree | Bin 56056 -> 56088 bytes .../NXmonoref_example-NIAC2006.doctree | Bin 43556 -> 43588 bytes .../NXmonotas-NIAC2006.doctree | Bin 41399 -> 41431 bytes .../NXmonotas_example-NIAC2006.doctree | Bin 53996 -> 54028 bytes .../html_static_pandoc/NXnet_Proposal.doctree | Bin 27652 -> 27684 bytes .../NXtofnref-NIAC2006.doctree | Bin 38192 -> 38224 bytes .../html_static_pandoc/NXtranslate.doctree | Bin 15410 -> 15442 bytes .../html_static_pandoc/NeXpy.doctree | Bin 151576 -> 173626 bytes .../NeXus_CIF_Integration.doctree | Bin 28954 -> 28998 bytes .../Nexus_41_Release_Notes.doctree | Bin 23248 -> 23280 bytes .../Nexus_42_Release_Notes.doctree | Bin 30894 -> 30911 bytes .../Nexus_43_Release_Notes.doctree | Bin 27122 -> 27154 bytes .../Nexus_4_Release_Notes.doctree | Bin 29312 -> 29344 bytes .../html_static_pandoc/OO-NeXus.doctree | Bin 37010 -> 37025 bytes .../Object_Oriented_Interface.doctree | Bin 15117 -> 15144 bytes .../Objects_or_Interfaces.doctree | Bin 99904 -> 99936 bytes .../Proposal_NeXus_Coordinates.doctree | Bin 21045 -> 21072 bytes .../Proposal_NeXus_Errors.doctree | Bin 17080 -> 17107 bytes .../Proposal_to_Simplify_Nexus.doctree | Bin 40800 -> 40832 bytes .../html_static_pandoc/ReflectDiscuss.doctree | Bin 212804 -> 212836 bytes .../.doctrees/html_static_pandoc/SAS.doctree | Bin 49549 -> 49581 bytes .../html_static_pandoc/Scaled_Data.doctree | Bin 22665 -> 22697 bytes .../html_static_pandoc/Scans.doctree | Bin 17794 -> 19216 bytes .../Storing_Event_Data.doctree | Bin 23163 -> 23195 bytes .../html_static_pandoc/TOFRaw.doctree | Bin 545342 -> 657155 bytes .../html_static_pandoc/TOFRawScan.doctree | Bin 65089 -> 65121 bytes .../Thumbnails_for_Nexus_files.doctree | Bin 13018 -> 13050 bytes ...-Flight_Neutron_Powder_Diffraction.doctree | Bin 10852 -> 10884 bytes ..._for_NXflou_application_definition.doctree | Bin 16958 -> 16990 bytes .../html_static_pandoc/Utilities.doctree | Bin 42100 -> 42132 bytes .../Workshop_PSI_2010.doctree | Bin 15333 -> 15405 bytes .../html_static_pandoc/XESraw.doctree | Bin 23113 -> 24549 bytes .../html_static_pandoc/index.doctree | Bin 25144 -> 29059 bytes build/.doctrees/niac/NIAC.doctree | Bin 84859 -> 85011 bytes build/.doctrees/niac/NIAC2006ILL.doctree | Bin 56439 -> 66093 bytes build/.doctrees/niac/NIAC2006LBL.doctree | Bin 63308 -> 74384 bytes .../niac/NIAC2006LBL_RoadMap.doctree | Bin 33922 -> 33954 bytes .../niac/NIAC2006LBL_attendees.doctree | Bin 36255 -> 36282 bytes .../.doctrees/niac/NIAC2006LBL_photos.doctree | Bin 15878 -> 15910 bytes .../niac/NIAC2006_Scanning_Group.doctree | Bin 48274 -> 54552 bytes .../niac/NIAC2006_Synchrotron_Group.doctree | Bin 43584 -> 54102 bytes .../.doctrees/niac/NIAC2006_TOF_Group.doctree | Bin 64474 -> 64486 bytes build/.doctrees/niac/NIAC2007.doctree | Bin 93978 -> 94002 bytes build/.doctrees/niac/NIAC2007_Minutes.doctree | Bin 192464 -> 211548 bytes .../.doctrees/niac/NIAC2007_attendees.doctree | Bin 56218 -> 56250 bytes build/.doctrees/niac/NIAC2007_photos.doctree | Bin 28376 -> 34877 bytes build/.doctrees/niac/NIAC2008.doctree | Bin 45338 -> 45432 bytes .../.doctrees/niac/NIAC2008_attendees.doctree | Bin 26753 -> 26780 bytes build/.doctrees/niac/NIAC2009.doctree | Bin 84308 -> 84340 bytes build/.doctrees/niac/NIAC2010.doctree | Bin 69108 -> 69138 bytes .../.doctrees/niac/NIAC2010_CodeCamp.doctree | Bin 64802 -> 64824 bytes .../.doctrees/niac/NIAC2011_CodeCamp.doctree | Bin 164004 -> 164036 bytes build/.doctrees/niac/NIAC2012.doctree | Bin 309268 -> 309295 bytes build/.doctrees/niac/NIAC2014.doctree | Bin 173648 -> 173680 bytes .../.doctrees/niac/NIAC2014_CodeCamp.doctree | Bin 48425 -> 48457 bytes build/.doctrees/niac/NIAC2014_Meeting.doctree | Bin 74905 -> 74937 bytes build/.doctrees/niac/NIAC2016.doctree | Bin 10648 -> 10680 bytes build/.doctrees/niac/NIAC2016Minutes.doctree | Bin 66718 -> 76623 bytes build/.doctrees/niac/NIAC2018.doctree | Bin 34199 -> 34231 bytes build/.doctrees/niac/NIAC2018Minutes.doctree | Bin 109207 -> 122492 bytes build/.doctrees/niac/NIAC2020.doctree | Bin 54176 -> 54208 bytes build/.doctrees/niac/NIAC2020minutes.doctree | Bin 75500 -> 75532 bytes .../niac/NIAC2020minutes_concluding.doctree | Bin 77436 -> 83399 bytes build/.doctrees/niac/NIAC2022.doctree | Bin 125251 -> 125283 bytes .../niac/NIAC2022_fall_minutes.doctree | Bin 41013 -> 43681 bytes build/.doctrees/niac/NIAC2022_minutes.doctree | Bin 177919 -> 177951 bytes build/.doctrees/niac/NIAC2022_spring.doctree | Bin 76268 -> 89774 bytes .../niac/NIAC2022_spring_minutes.doctree | Bin 118479 -> 125287 bytes build/.doctrees/niac/NIAC2024.doctree | Bin 100212 -> 100244 bytes build/.doctrees/niac/NIACAPI.doctree | Bin 11281 -> 11313 bytes build/.doctrees/niac/NIACActionItems.doctree | Bin 41886 -> 41966 bytes build/.doctrees/niac/NIACClasses.doctree | Bin 42965 -> 46237 bytes build/.doctrees/niac/NIACDesign.doctree | Bin 27639 -> 31192 bytes edit_broken_links.py | 121 ++ source/Makefile | 7 +- source/_static/RUSS_logo.png | Bin 229540 -> 0 bytes source/brok_link_ed2.py | 102 + source/codecamps/CodeCamp2020-topics.rst | 2 +- source/codecamps/CodeCamp2020.rst | 17 +- source/codecamps/Code_Camp_2015.rst | 36 +- source/codecamps/codecamps.rst | 3 - source/conf.py | 15 +- source/content/ActiveProjects.rst | 16 - source/content/FAQ.rst | 96 - source/content/Facilities.rst | 130 -- source/content/OO-NeXus.rst | 2 +- source/content/TOFRaw.rst | 1780 +++++++++++++++++ source/content/TOFRawScan.rst | 203 ++ source/content/Thumbnails_for_Nexus_files.rst | 49 + ...e-of-Flight_Neutron_Powder_Diffraction.rst | 35 + ...date_for_NXflou_application_definition.rst | 71 + source/content/Utilities.rst | 157 ++ source/content/Workshop_PSI_2010.rst | 45 + source/content/XESraw.rst | 88 + source/content/content.rst | 13 +- source/facilities/facilities.rst | 12 +- source/faq/faq.rst | 13 +- source/fix_broken_links.py | 87 + source/fix_encoding_warns.py | 6 +- source/fix_title.py | 6 +- source/index.rst | 8 +- source/niac/NIAC2006ILL.rst | 29 +- source/niac/NIAC2006LBL.rst | 31 +- source/niac/NIAC2006LBL_RoadMap.rst | 20 +- source/niac/NIAC2006LBL_attendees.rst | 74 +- source/niac/NIAC2006_Scanning_Group.rst | 6 +- source/niac/NIAC2006_TOF_Group.rst | 49 +- source/niac/NIAC2007.rst | 40 +- source/niac/NIAC2007_Minutes.rst | 13 +- source/niac/NIAC2008.rst | 10 +- source/niac/NIAC2008_attendees.rst | 48 +- source/niac/NIAC2010.rst | 28 +- source/niac/NIAC2010_CodeCamp.rst | 34 +- source/niac/NIAC2011_CodeCamp.rst | 38 +- source/niac/NIAC2014.rst | 94 +- source/niac/NIAC2014_CodeCamp.rst | 6 +- source/niac/NIAC2014_Meeting.rst | 12 +- source/niac/NIAC2016Minutes.rst | 1 - source/niac/NIAC2020.rst | 2 +- source/niac/NIAC2020minutes_concluding.rst | 2 +- source/niac/NIAC2022_spring.rst | 2 +- source/niac/NIACActionItems.rst | 46 +- source/niac/niac.rst | 8 +- source/niac/previous_meetings.rst | 2 +- source/teleconferences/Telco_20160412.rst | 2 +- source/teleconferences/Telco_20160426.rst | 2 +- source/teleconferences/Telco_20161123.rst | 2 +- source/teleconferences/Telco_20181015.rst | 4 +- source/teleconferences/Telco_20201208.rst | 4 +- source/teleconferences/Telco_20210120.rst | 2 +- source/teleconferences/Telco_20210303.rst | 2 +- source/teleconferences/Telco_20210505.rst | 2 +- source/teleconferences/Telco_20210628.rst | 2 +- source/teleconferences/Telco_20210728.rst | 2 +- source/teleconferences/Telco_20210915.rst | 2 +- source/teleconferences/Telco_20211115.rst | 2 +- source/teleconferences/Telco_20211215.rst | 2 +- source/teleconferences/Telco_20220131.rst | 2 +- source/teleconferences/Telco_20220225.rst | 2 +- source/teleconferences/Telco_20220426.rst | 2 +- source/teleconferences/Telco_20220602.rst | 2 +- source/teleconferences/Telco_20220707.rst | 2 +- source/teleconferences/Telco_20220824.rst | 6 +- source/teleconferences/Telco_20221026.rst | 2 +- source/teleconferences/Telco_20230213.rst | 2 +- source/teleconferences/Telco_20230314.rst | 9 +- source/teleconferences/Telco_20230524.rst | 2 +- source/teleconferences/Telco_20230724.rst | 2 +- source/teleconferences/teleconferences.rst | 2 +- source/wiki_broken_links.txt | 1287 ++++++++++++ 215 files changed, 4708 insertions(+), 651 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/wiki.iml create mode 100644 edit_broken_links.py delete mode 100644 source/_static/RUSS_logo.png create mode 100644 source/brok_link_ed2.py delete mode 100644 source/content/ActiveProjects.rst delete mode 100644 source/content/FAQ.rst delete mode 100644 source/content/Facilities.rst create mode 100644 source/content/TOFRaw.rst create mode 100644 source/content/TOFRawScan.rst create mode 100644 source/content/Thumbnails_for_Nexus_files.rst create mode 100644 source/content/Time-of-Flight_Neutron_Powder_Diffraction.rst create mode 100644 source/content/Update_for_NXflou_application_definition.rst create mode 100644 source/content/Utilities.rst create mode 100644 source/content/Workshop_PSI_2010.rst create mode 100644 source/content/XESraw.rst create mode 100644 source/fix_broken_links.py create mode 100644 source/wiki_broken_links.txt diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..1c2fda56 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 00000000..d2bc270a --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,252 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 00000000..105ce2da --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..22e56c4f --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..c3678b53 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..c8397c94 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/wiki.iml b/.idea/wiki.iml new file mode 100644 index 00000000..a1277fdb --- /dev/null +++ b/.idea/wiki.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/build/.doctrees/active_projects/ActiveProjects.doctree b/build/.doctrees/active_projects/ActiveProjects.doctree index 62dfec6df36177c904a1729617981c96f1212f0d..5ce3c5ba1b2a81f4cb7edff1cbbcd19dfe1d8888 100644 GIT binary patch delta 79 ucmdnveaCx4BNLCFo_=0tVltT6+{*Nn5mh9QMVk#(WG>ehG&P|->5>3KUK(ov delta 47 pcmccPy~le)BNL0Cr=#=cUZ$sv5LO+FHXDSsm1_%Btdu8R5&()p4@Uq1 diff --git a/build/.doctrees/codecamps/CodeCamp2020-2.doctree b/build/.doctrees/codecamps/CodeCamp2020-2.doctree index 807332878f29c32178ffb79d95d26ee06d7f3a28..ef9493f499d5ecfee004bece59baeeba23d5149e 100644 GIT binary patch delta 81 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 literal 204227 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

l|v6+Xa|jt5){~Ml?o_c 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 delta 49 rcmcaNi*es9#tn^3EPkGj&YOFgo-#sMbu6lE5Y~FGEl{z1p7#y_tE&)* diff --git a/build/.doctrees/codecamps/CodeCamp2022.doctree b/build/.doctrees/codecamps/CodeCamp2022.doctree index 4c2b1f54a1ca5afe106cdf0d7c39f67e5ab16a76..aa60c456ec15cad020780a09687e5b47d7682098 100644 GIT binary patch literal 36115 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 literal 30767 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 diff --git a/build/.doctrees/codecamps/CodeCampJune2023.doctree b/build/.doctrees/codecamps/CodeCampJune2023.doctree index 9c1fe4e9b3b2ca60f275c5e1cea87aa6b2dbd43b..e8c31ac320238822a9da8b9259ecf049aabea5f5 100644 GIT binary patch delta 81 xcmezUn{oCZ#tn^3JbHTid6|jHU}AGC(^E!NkvtZ4HdK+BTwBo81oEsZ1OT#Z99sYY delta 49 rcmbRJhw=As#tn^3EPkGj&YOFgo-#sMbu8*^5Y|SnEl{ySo>hea%`y=; diff --git a/build/.doctrees/codecamps/Code_Camp_2015.doctree b/build/.doctrees/codecamps/Code_Camp_2015.doctree index 82d8579877063fbcf1650d5ed4dd4dd8c5e6988e..d705a996a2e68b739839b42fc535c46ddc049638 100644 GIT binary patch literal 68683 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 literal 56629 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%0D!pF3#8?^HmxT$4Xd`=GFES- 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 B0MP&d diff --git a/build/.doctrees/codecamps/Code_Camp_2017.doctree b/build/.doctrees/codecamps/Code_Camp_2017.doctree index 7dbb9781ef58d1bdb05fcceecd9302d300c5e873..1b2721bd21dea1031e4ee17189a6469eb030d329 100644 GIT binary patch delta 81 xcmccpn)&x@<_(QZJbHTid6|jHU}AGC(^E!NkvtYvHdK-6TwBo8`1AC<1OU8Y9MS*) delta 49 rcmezUn)&u?<_(QZEPkGj&YOFgo-#sMbu6lE5Y~FGEl{z1o}QNg)N~Q9 diff --git a/build/.doctrees/facilities/Facilities.doctree b/build/.doctrees/facilities/Facilities.doctree index e1a063c242a4eec63887ee595ca77393c5261c55..1eca5128e204d97c4122879e37964ac08a0d334e 100644 GIT binary patch delta 81 xcmZqP&AfOw^M*zy9z8w%yv)R8FtNFn=_w+|@t}SS4e0a<+0sv;m8%zKI delta 49 rcmZ3yo4I*6^M*zy7C%o%=gqxLPZ=SsIu<212x|@37N}SbkNHIap&}3{ diff --git a/build/.doctrees/faq/FAQ.doctree b/build/.doctrees/faq/FAQ.doctree index 6c886cee4760a0d2f295e9731432559128164719..1174f6b46d2135a43df2b03ba70044601cfaa753 100644 GIT binary patch delta 235 zcmZ3xlBstU(}qSS9z8w%yv)R8FtNFn=_w&bf*A_H2c07?HC~77<7RgTD zq0oUU_^?QKbD`oh2~<(XqB$r6n;#aLFmBej;WI-K1{#T>&Kk}23Z>;}E}LB@BnJRs CiBDPp delta 139 zcmeBO#k6)M(}qSS7C%o%=gqxLPZ=SsIu;Q&2x}hK7N}SpPoxM~Y;tFj?BoXu9T1LT ovF_%Diq9lqQga~s42w+|H|N{%nPG@qLv5=lEr*)?yG%$90Bcn(X#fBK diff --git a/build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree b/build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree index 18f7e7ace0b6090801083859c6a9e27f90d70327..dc30274a8b6ac4d8e84c9ae1a076291676cf22e5 100644 GIT binary patch delta 81 wcmaDppRs)b+~9t}SS4(s>%30dkTXWdHyG delta 49 rcmZo)!1#PVo7Pd_g+F&Rv3Ze@DPh$@oDqRfUWGL>r!ni^joGXVe+V;O@0 delta 47 pcmZ2%*=)I?k%`66)6sczFVj;-2&;}onGM2P%e4h6mdj%%003>q4qpHO diff --git a/build/.doctrees/html_static_pandoc/Archive_Definition.doctree b/build/.doctrees/html_static_pandoc/Archive_Definition.doctree index b7cb6641d714cd7e5a8fdb5cb8ab401090bea2dd..39f3930164db56f1a0719f400ab50a6ceb29d371 100644 GIT binary patch delta 81 wcmX@t$nvg{WkVwqkDi`>US?u4nAqIP^pp`*B#*_24OL_b*A_H2F+4?I0CxTx{r~^~ delta 49 rcmaFY$a1ccWkVwqi=U^X^X6Wrr;HF*9g7hggtdoj3skIzr|1g+t631* diff --git a/build/.doctrees/html_static_pandoc/Associating_Axes_with_Data.doctree b/build/.doctrees/html_static_pandoc/Associating_Axes_with_Data.doctree index 764a438bb0084cffcd1afd0f13ec8d6d0d9ee107..4f850fe9035b161755b14ce4029be53a6572cc1c 100644 GIT binary patch delta 81 wcmbQyz__DUS?u4nAqIP^pp`*B#*_44OL_f*A_H2DLh+@0aVEwBLDyZ delta 49 rcmdndz&N9UaYG{$i=U^X^X6Wrr;HF*9g7tkgmr{#3skIyXNxfamgEor diff --git a/build/.doctrees/html_static_pandoc/ConcordanceDiscussion.doctree b/build/.doctrees/html_static_pandoc/ConcordanceDiscussion.doctree index 81a19f25892429be500f678d8e41545f31371bb9..0f390ea2383d5d429d068131cd89737038242f10 100644 GIT binary patch delta 81 xcmZ2-o$1JRrVWiuJbHTid6|jHU}AGC(^E!NkvtYtHdK-2TwBo8#Phh$2LOGmK9 E0AXz&_5c6? delta 60 zcmaE|iRt7frVWiuEPkGj&YOFgo-#sMbu9L55Y|bqEl{yeo?n)e6eg(8=t4H}?-K+)fu*(H}0?Fc1?yR&cJ zd-J~M?f&O0=b!&}`rmx)Up= zkJ}plPRgETu}*z%;lv7~;R_iCDUUGU#-C7|#7oIAyR=@~!SUlrF&Xg`D0Y;#_|ubx z>eco2jYu-zT-Jr^g|~M+52#{>Sc};b{+g(L1lZB1)h{d8UQM@ljPN#$@!K!XAAL6c z-3r;r@?R4U=Jiy!Q|V)7$LOAbxjS3@Bb}|@+8C9Nh@F&oIE+yk37}DW@kXu-VNXBg zdy4iSjGAFRc(jv!+{mo;gn>0VNUY-GcqNyKQ-m<^&laAhL)aSkE!}3gxlE~4wzV=I zFL<7k{eU818-I)$KV(^EFmgyOV!iTnBhbk>sLlLcC|=?-O(>RSS*1F#bSmvaWdnEp zO&_}|*3AjT1@X3c4HAo%5m9Umf*}g zlx`dEI3Titda^}j7g-aJM&w{tJ<@ndm*5gey!1^4nOtkRxnmA-N0%gjP7happN7dOQ% zawNsXC(w*`u2ATgN3rcEM1Zv6?HUUpX8#(0wJdx}#%QFg}A{gGVLZLd8 z4V`xfd}?ZaeUP$36X zH`PI#(-pw@{8 ztr;GhLUu)nzw%hxrE`mf~c~t0_0L54wu;*zjjkS@OPp%w; zU4}K|@iuta0K;UOvH|yFVxB-skj+qt+16|V2dWk4$lu?7d<;7{@dyOVDrHd?nq$dJ z(zpv(6}}|n)Ksikh{+~(<8Fb?0|U}z;0mTqU#ER)9lenTaSmVuEgD6jHZrc1j7-Gf zak1#+*E^|EkvL=2AF)suuMT)F$388iQAtd%LXBvRs!X5EOHWRh;}w9Zm|g=6AYkZ8 z73(EAVAe|MK`hEH!f|tuPDxt>QL*n)<4IU#6O0;EOsV2yEOp{oMX};JQr}{2l0Dpv z`zq2sZx2b+1HeF=8T#YI^Wz@91`$iz=XDF^AvaL(nN-3XcF9&aOE_qq2{@PXBuUnC0FzTeDpQqKlb=??!O%u6AKa9ib zg)5jpzJ(f!dy}VWoW6?UkJv0Pcnc&fLOK&LPzd2IQ@2QS*gwc&Rr6Ab_0uW$<23LB zp71DuX3~Tn8K92L>lmesIb?t|;T^e$B~izv$+U_+0wVz|9MG!FmS!ikeYyl5rix9%?JN6ORSHm&6(OhFnna40CI2@2Sk>FbC$n0NrOh zy zvZr_tE?2pG8(3?7|D9{OM9sA0PvB3`G5&vus&AdO{2j&GNXbCaA+p)PxF)LmLQr4$RywuLEn}V&eM1&YJj?g1pDq up$wr}mSa#P#}@CBk!A<0gIJoCkss=S!kdn#Tx~a?sy`@o^fs#7>;D7lOY_?R delta 3938 zcma)9+ix7z8TYQeYtP!dzQq(mniy&lL-3_E&=%5=Ds7<(Y*h+Tgc`_k@Ic&m7V%2mU29#E@3@qqf!2ZSp10jad=U(nx~+s-;xRZEuk zeCIpg_4i%otFMj!{N3o^tljj>(_*Kpa={F1xjdM3cIeNPhZQBg=>wW~|jv9a~_W!(M# zUbT9v{nH;_T4%E7Uf43tm`z@b*>tK6yq{Oz`{W0ig)X_XnOE+R{CyJUfCZnf#vC|o|jG1O_mH`<}_1-|9}vKl*)SY)V)*Xgbf zgsLTP<9FgTBK3gajf~l{GRz`itUs>mS)kf#!bJ??c4QINAW{l$MG^tl0UhT~h~TM7 z+a+NLB7WCA(o26$IZ-e?Sj66jjS0_$CKtxQN!p17k5y$Oj?|&Yr$J7Fh_R0Y6DskbvdUIoOT>pCs|Eq?~djlFFRQ3LVr5=VD>N9v$9AV*}<(_D{kJ9 z9w|^*|IsVIKs(K|o*%Qu0#`mMt0-a^tGeTc`e9PSsu7SbU6Wk8G_|yJUn;iax}^V5 zD(PX#3~qk?Tq8H**|GQM&i%ZU$v+=$#oS(s5Jj z^Y?DPQMs~pIyJyhO_xh5h-+G|Z*S+#W);KW-kWGK*MEKHkMq@c-z*x>2(_OWe)qJI z%(St$V_5QK_`k}x*75Z;yQ5l+cbSWSX%f-Z-B}sCJ@@%AAbQ$O1%ifD?C75^@wySB z4vykcg4Qqk84@3d-oHJ7s1o;)o$RlNU#zNyT-RFQVvRUH#0z))$cT3S7AWppW)6(W5Bs^Jh!X-Rqk4%4Y#6Uw%6Y-GnsxHvVX zZ<~5LyU@Q4{WVxB_F}cr@qOv}lBT!G<>d;d8nvYt^~_y>uNQ;T3b7RgrtSCiz7;~| zqbY^DG@+O`xMXI&BtT{MAln++YDUn&7kz2EbcZ62Rn=g`EsixcPj@-OCy9*0oT;X2 z7_U(m`dT-L@DM$42ugaO7|4T-;fo@?ty&dTo&%#f65m#J;JE{X;Tv}VKic8DF{`TOdtAn^&Ye-MfCgr<^=jj1G{qvYRU=zH%%lv$=QlP$4%dS{ z$$W3!7u}6mEon}zS#z3__K**$o8wtrtUa-L4iRjLj(teJrVQopKNVKb%mGYTSb=ay zviS0p+UH^QSVUGxDUXM^)Ask*z&gs#_+#q>G{sB=; zcXxDzq{_3JyMy%lHupNnQC@@#x-7%UI>g6&Xqga7QsC=lej8AvJ&QW1mOZFqlu9Vs ze^*u?((#|ylCZS_J#HuM8F$n;^>*|}fSO856(G{k;GV;QR%uF19g5ON9_L{MGA;2j z1sRTB`7w*0YhR5Kx{>QiBrcS7=+-5qM)T4kiTMpi2Wr^%BVC}enznt{P4j@3Jb5Xj58(GZ z@oPZmFY!qOq~lvFM21t1MJbPvrwekDv}x|yZscfCbhQr+N4J}-F7>(;S?m7=MDgzk diff --git a/build/.doctrees/html_static_pandoc/Design_Issues.doctree b/build/.doctrees/html_static_pandoc/Design_Issues.doctree index f2ad57c92e8f740208ad8812bb5be5dfc85ac2bc..7e96bff61ded0ae9aebd2ef83b852be19c729e3b 100644 GIT binary patch delta 93 zcmccmkMZk2#tn^3JbHTid6|jHU}AGC(^E!Nkvx`EHWZP`25KUcd%T4<|K$=#)jj#4 Lo$zLDUacYkGan!{ delta 61 zcmezRkMZh1#tn^3EPkGj&YOFgo-#sMbu6iDVAkXSHId0{yoEN4a*IP$O=h$g-t5h* GRRjR8TN82s diff --git a/build/.doctrees/html_static_pandoc/Detector_Geometry.doctree b/build/.doctrees/html_static_pandoc/Detector_Geometry.doctree index c3890d889beff3f278ab7900ae8d384efa45d0b0..495be1faf98df5bed6cb7294a24526f2aa23fef4 100644 GIT binary patch delta 85 zcmbQ&!?>@9aYG{$kDi`>US?u4nAqIP^pp`*B#&h$8>)ylw=Jr!$s5eXH#hUnwg3Rm Cm>g^X delta 66 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 delta 48 rcmey`$8@!iX+t9ui=U^X^X6Wrr;HF*9g8*_gte7x3q)*jDNi*3pS=(6 diff --git a/build/.doctrees/html_static_pandoc/Group_Attributes.doctree b/build/.doctrees/html_static_pandoc/Group_Attributes.doctree index ff826ac42cb0330d3764e5ba8a1eb3f1bf8cc88b..40293800af861a9478ad19ede34ffd445a79fb41 100644 GIT binary patch delta 79 ucmeCpT${O}k%>o7Pd_g+F&Rv3Ze@DPh$@oD;>U(6a)8SgO&23?k2(M~%o+Ir delta 47 pcmZ3R*_*kck%`66)6sczFVj;-2&<08j}5}Q!DS1TRpjka2LOUs4%Gkv diff --git a/build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree b/build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree index 171a0448fc4d4a6e890e394f7c2e1028ea6bbb67..8d81f4803077f2d40cb2788ecf4f50ffad21e320 100644 GIT binary patch delta 81 xcmeA>%DC<*+}Ht}SS4Ch`0U1ptK>9E|_~ delta 49 rcmZ2?l(Fw9_2` diff --git a/build/.doctrees/html_static_pandoc/IndirectDiscuss.doctree b/build/.doctrees/html_static_pandoc/IndirectDiscuss.doctree index be9dda5a360e574126c7eb7a0f61cd82f12466c1..d8fb9e3b13ba83d103cb028430c959ee077044b0 100644 GIT binary patch delta 93 zcmdnKnd|yyt__V$JbHTid6|jHU}AGC(^E!Nkvx|3Y^WlR+_tE?CKrAcZ=T89K9iSm K`%GRYxgG%iE+6y& delta 61 zcmcb+}ot}SS43VEdM09;QR&Hw-a delta 49 rcmZ28m9b|k^}2k91F=0or3(I8tP@sy*f5V?o-k{IQ zre2z1n;|#(cdGK_e>^;!B_r8bCNIbZnV}FHzzk&;CYZ6qZQgt#T>|bK#m%Cb8I}mw k)-Jlv4(Cl?xLRZKJ7uZK(^mOm3aYKHh6`?9xcY`N0NsjoFaQ7m diff --git a/build/.doctrees/html_static_pandoc/IssueReporting.doctree b/build/.doctrees/html_static_pandoc/IssueReporting.doctree index c64896d63c1f8c5d847d44000ba99778588497b2..af7c4ba5a84b7dedb6fa09d6676336c1fc58be86 100644 GIT binary patch delta 79 ucmaD6-Vw2(k%>o7Pd_g+F&Rv3Ze@DPh$@oD62yioa)iqkO&2TgV>tjl-5O>9 delta 47 pcmeB(coDv#k%`66)6sczFVj;-2&;}Ihz-KJ!(|JVRposw2LOhu4?+L{ diff --git a/build/.doctrees/html_static_pandoc/Japinotes.doctree b/build/.doctrees/html_static_pandoc/Japinotes.doctree index 59be9b7527c60d7da744a73e0eaccaf3ccdbbaf2..cedf2123bf8877bc153930fa53e136e1189ae677 100644 GIT binary patch delta 85 zcmaF)o3--~>xM=q9z8w%yv)R8FtNFn=_w+}`t}Uo)nuB?^2lFsaD+B-= CB^?+5 delta 53 wcmeDD!}{_!>xM=q7C%o%=gqxLPZ=SsIu=bf2x~Lf7Km7LG0*m59>!^f01ZnL6aWAK diff --git a/build/.doctrees/html_static_pandoc/Java_API.doctree b/build/.doctrees/html_static_pandoc/Java_API.doctree index 08ef0c250daf35b4edc67f0f39a07e0ebb654c8b..9b92f42a3391c058d6512701bec20bccf8c7d751 100644 GIT binary patch literal 22385 zcmeHP>uwy!m6j}$;*11}lI?{zv6BLlT}v@%MpERg%*aM)k_s7Glt5Cl46M@X>8_b> zvZs5}7hV<+)<5$K3+z6?K12{;f9xaV0sI1ag?y(jJ=Hx;YA%G=S&3-Q^qi_Xb?V&e z)b+1_{?qJV|NJLBk1mKmyj@HBo*y1JZPyJWmnSlP-i@5B$HP?q#OE#f_6lD&@n4JW zqa?~=hfDYc`8Dr&e&EJD#LpM_r>qNvEA@k z$?|;5%PjF--nQdLlKRfUNxjY(J0*wRj<2$TlJAUA&K2K1G!mysjsCtR5B)*N$ zEJ{LtTfBu`@y?yr{d%3;2vdSJbo2}5d z9r4lh(q2IMpfcWNQZnyKNp%3bc&hRYR0Fzmrd|vw#nc)xr8-Qm3zI3r*jiAj0%Oa6 zEaBfAlKvM`_NR-sDA(zPI*mjp6z2r898-|FW!>~@c%PH3#G8DI)&^L;;8g)oc1eY6 zG4F762)d&Hs94_n(8xWr$Bzen4)V?l@!-XLUf~DzEOUJum?^)<@KLjjUdy{g8S*Y_ z8^2}(^f&n4&e}G<>UNsOemhG=r>AjV@?Gi!U*I3lWhbzcL}XBqS?Vc_9P@70FN4~) zbAV@?GxI+8J^-rsyidG2Z)xj7))u0zfrB=Br@n_w@+nH^`Ma>Dww;}Oec z=kxQoEUFF)a*dKNukdvfD!AeO!n@>svh6LA9TxQ3RAsNEy$`)lfZ%DX7p5(zl_iL# zT5TS8V--oX+OZuv9#2|F{(*1FsJ12TzeOQ~g+L8)qt%DYj-1x->_gjHd9vAz6X8IX zw(4XbS({gogqrI*_!RL20Jb!_GM$8F5!UtFq8*_?`~ReO{OJ%KS4}!Vm)2vv&QJ)4 zZ}ZV|YmYBC!Z>hz8oBpt?*aKEa&5l{r+$uX7s-E{kFNFiX06_EWA5ufbKEEcl^G3x zSB0x47Ly#jYl;p{ibm64ls5RF>MF#=M9r`9@sqQ|W8^4vu2$FK5)#cv)B8FOzBgKo zO;VbnXxyv=@46biPRkgLUT~sDb%|IXn2knPnP;^n!ee;P(AOxXL)C=0K<)9Lf zGYtD`wZ}rC%L>ie}3=Lpt_yY`$yg8+6#psio#Ev}Q@o3O|h|xaAq>jUr1VdUyD2+E+#}Bv|Vgsy( z*9kj{{WRq?JQt%{J?y5Dc3_9y477_THrbws>O@_(z~cA%0jJpx4Dm6F7kqFq8NwVp zK+M<`_@dbF`ZVBQ9iWqqP=ZLkILf-7$ShE7qrW-i>=94B$W6dVjK2}Qb2(f#N1tnI zwndDQiwxEwtxTdc5?Ut;g6N1yE2J~Ds~ty2iQNu3i$V%`mxcEHj9Sexo)*&|1!+In zht7l%!r**p&AJ>jGj^az@k7iyWDZSu(9DDrWG+=rU@%Bf#sq>T0n4+Z8igUw!jOuT zs?TLdie`g!pLc))GYzh+j^qv%Q&_<0CcVnWDB#OoF%89DGqcblfwt0^^H$GJAcK5-5c3QNYJ8g2(k#1ID^l9k}eRRLO@C8X{A*e1;$*0&YsAdHRz z?skRRD}>68VDM5%q|}ul5VYn*hFK5M7fVn2u#zYQoe4Pz4}`Qij4-ti@Y#u@o|d05 ziH)^~13O@WkDx6+(Z()}Z+mrjrOAG`vB?JQQxk7Q2z0LRtLZCZR?iMk(E2`i(u852 zDpjW4WV;-q0kZGD{f`7B_D^8HUP?G95EShetnEcH#}pqXBQZmnyFNJ!NX>?t5REQo z^~7jV7=dHQfRXe%8S)e~MoN{MD=L%PDLj_&r$Xc&2ClAZKTY?AoV*;>1BHjN2-Lz@ z2nRJ(u#Z##TqYEK*d5@#ge6(Ok9k1uHrbb;Q+ZypHt+`g2)hCYiNeE3oSj4&!XXUY>C+1 zp@|Hkq$B__1YvgUC&X$@H%s*s30f1Wd=hoiBZzxRP{RBUvt7)`0Fh8vNHR(izfBXr zCj?3|bbqo^X}FETpJ4KrQYW9lR0VBBF3}{EB=3~io#ro($?d~y^>tQILR7VFK|x4v zO;|4SHjgz)0!4$gjU2O5FzQcE7%aGPPx!Ij6Sz^BH@SdSnq4LbutsyuYv?J_GdvCb z<9p59kc*Q>@D@w#&Sy)Q*S&q4?Qqw#g)x5RhuJavRr9X!3qeKRui>ZBrLpb3CHC2; z_`hGsM6Ds5<1prKQ)VCL&44k)&jBAan^0254^*uNDh5G;B232%4hhE5+o$kEr!k6f z?8O=X)jeVr`?Pt7t-%qHX9chB3trt-ykccW#A;0sxsA{yFb(^BM?w0BRwKr#Ve{WCdJi@HXvN8e(o8ifvcWLmLL>V zh-hsh3|Aw=igks$2+%77@ro#XxgrENeJb>?B7Dd@A)!Q7@wci9Dmp>%U1BO2iZv~2 z{pgYRIfUKk5Oa?caGP9TD@WV9Co90~Bpjn_G!svWvnLO-r;M=AA-skHH0y)F`kbTc zLV!foj2TZW&XSfI!8D-LN792Z^Yvl0sYNTLFc~gH=@I-*F@T;ndKS)ay3l#*xOv2& zdD@6s^#YTJ%Z1Kjl2}=cS;h*KO|4ifM9JE*7$Nd`#K-3m98Vh=PZbtV7ZVra;YPha zWi&i(D12&oH+mdgj_rm6=8Cw^%v6^V@Q9oc;V-(k(zsys*mvr{_Z*_$=|kRWAvF@kRvau{YY|-_?z^y2Sp|qSd zyo^L0^3@B&6adP`Rgqx=tGP{{X`GQIC@~anlH$OSKO=Et6j^nrvz*nT7&tlU~wqnwtHdBjt)OE59)Wy#Z!FF$MPYMLSSwBu>eW=tbh`pv)V zCfyX9HfE>|x!mN7Qm*|)Y#S>qb`Nje_;^H#0V6cRotkub?#jq2LO28D&< zvMGpAyA(v*)xH)$_1t9r2cVE9r%sbp)jo-{H(1>AZtY(Mv#U2pRF>VZlW=bBUlzso zui&fbCP3*6s8{_w=b_5pU1`;@d45kd53Hze3I^|5HlGuhjO}t28=$t%kwd82u(UZj zOMeP!>m|}Av93W4!lJ%7d-K!lR`5Znwm{;WvcQF*KHF^2X^bA<2pZ7l&qTGOaRQ`{ zVg$|cCQ1hqENS(=NAemBZN|r2#kT#4lz^n9H)q`j+dAjZwj0znQG_sXtPWwX>=F)LF! zcDq(uE+J$CZ&ZskMCFvM7Z5U_o<2(on2E z*dvHvWq({w9oH2eDQ%8e)ITP_=h$T85eybDoyGo?CLM<9I#~Qy6g( z__WQT|8JJVO^trb7qR(PY!fiG67O0uFXFxpbFOLRX^ea<|L8QeL@mDbi=Mq-LT!$8umP;uIKGW3UQ8O@{PmeZ=^7E82-no5vX#3MXi*2pL{(0`9>*Al@_ld=Gahg^4`4Xo)k3ID7@T;1#}S(+I~`@UlhM zTGe%K?g~&w^Vb*gy5M9n-9KVUZ3KjF8M&&Vbof%i<`bUMl}}U&p6j#{C2qvRW>ac3 zA;vTJ%nmYr1s8ssOJbCaLq`3K7S^erS#hLS{iw;EVK|wn0XQd%GlV$*rvO(Zkyx4! z4-^RDEnVPcWihptaMshvvFP>^%B6^%MGNB-B;vWziK3KFdKNNm5i{xuj^JSq(K^Ns zTw2W+&;>d)*SBzsJVP71w9sq?;Ac zgBC}%AwF>te!Hr{<%lpt_RF4nH$KgMx8Zk4eJJ#|tG2lM=a5nZz| zaY4t0(0HRYmj?zf+{sli0JjIo8{t&@>#B$)cCrKb0{?jafqtWUoZF@Ia*#gZSItKH z72K<50EH1W999%}>CPcM?^6ju8k~WJ?KpJWONo0PX^nrneNPd&5OVU^hpQjyBFI=FwmPHXzOYJuNfSc03&aHWTd<0wRS-Hc>8;Pr3a_vO6#pDDh&Wp>0{a=bw&knsUP+uc3TgUYER~2lIwcTYfF&>7 zQh6>@h5_WJx9a^yZ1n~H^0!(XtNfySv}%Nl*0f0Kgdf-l&Hw(<`^z5*nJQU$%e@*>?dVNo(mJ8Z@0V-HQ$@f8x9&t4U3VedamB$2bE$`fAJ64g zGaUfpxqNoy*8*-Pg9F1|Yjl-?CQDpewvdPewK^>?X@*PQ>|mo|X_5^2KYofkOX$u3 z93oW)!h}_dW8oAW;ucOgNMtn@B*rL}(}Wjl8ZN#f{g@&K*X6OgS_3AG_rP8|u-fol zgGi;w0_0mL9+m;bXwYyX(({Mt&dE+jys8UjYUpm44JSP>t~|vx6-c9%Vtf%F1`QfH zjGxT|zZoEzF_x=$*PpHLtOH1J^3?d=+QNq!`J0uKDPt&t&l`E{pcP6h8xpVNiMeOI eqK+TKS5xHo0{?jGE`>tExbbV7Cem=b>E8e?rY+ny2shZs-|2j*g&)AuQYUxD$VbhqF{aux!7X5U3fh6X=%1y^MmGdhqfK zM~*a`EPHnSI`b`)w{@@K2bQt5SFbb1hSbp8ZWzc4s*V@7J<9-zhpYTS=(8KGcOPmR z5m0~E9lgh|Gl%bne)^iKY5C0L+uU~h++@1Xbcb0^z&%F~EZ5O(<_EfC>YmBkd(1a1 z=)v*>KOv1rtnay9Pw(}(=QEG@J?>K-r^|Z!rt78ebS#5)bi=Z(z~VmINGL3Y9-5wG z^S-6yGxP&bx9Ka9UUj`duz8TS3?1(<*E6}t0ylX%A*ctObv=%MJm?eTJjp!05C{%R zy1nN^P>@Vs+_wA>&HRa~=XRi(Fz{Swj_o!)eNVOC3tfkqdZ0I@${yZwdpyxBd-!cD zxD~dE+#Rp0JC?6V-4H?0_pi5FT`Le_yJ@(+mehL3^?G`c_R3HGhF!UIR?E3NheY{Q|xyJ`~_sD(y z*p9wX=;?P=PY>_NaxYHSg_HE(n4LF9&yCn^(snM0T697wvEXo{nUZf*R#t;6=N%5$ z4OgDJcQGYil{Q$5j&JZ?^83-0RCfHmSPcLt`a0eTV!@)CmW>bMSac#87FMI!ZwsxgOoaadtVfE^Wa6G^f~nQjS&h^uRmAM;2|_M9f0hX_?kE--dq)P zWE~kwQ*ep`CU1&2qkFBM6SRz0=p({twYk^zlF_x*_H@S(+;8nzTb8CGx0bTN77eEw zf)~V6S|85NHCo@%w{>m)?sC)fVY+iGbwYgD<|P)QnKTTOqbrOC22*AZ@2KfVWBj1IbuSZ8&f#!FMG)2zP zwKOCeb&O1ze=!NEitiWN-7dB}95tyd3AIvm7K?92Up_cMlb$e_yjD*K@B$~pH1N{! zXzumsIK_AcB7Z)bIO=uqU&~^}BCBNxR}l*<68C}kvkJN8%F%3!cQx%84EWPkON~w@ zuMMt$tSDX~#QF5pzF@YmcX>M3$wD78RR&W{;`Jo(*+gkW?^|i996zr!qR@(;J%MZO~NS6I9SKBxtwI7IGJGiY{#>LfYSs` z&TG<%7tOV7-RXwlU5eOb8v@PAwsc9w>h*0-b68CBFpraZFfhGkhHfKH=}LO8XLT)_ z@-5`#ln_Zr1j2K}u8@@_iB)*lZO(4>mZ)^fHj*IXsn`E&r z$9!D36ILt-^UlzqDKE`U4LdZcX)1<-Bxg(#n3H8$RWy@O@IuF-S1QeCeMdmk!Mepe zAc482shXpH2gDL8P;`^NDq)hshwE~wfjwq!*`f|@1s>A^Qzezx{5hT(3YDC7=9Dqw{qB8>79h;k73HyX#;zkfs zmmbp7dE1t}W=uL^53vRd_WH0A*8!hCIS2tp+8jn0=v(;gcy2H4KWP%T7H{Tuz-$X4 zino^l?*j@kj>VJwogG!~*kf=cxf1fXRi z(TClkyyr7N?Dw$}#LXsq4}2z`m#huCfj*qBq(NOFFqdO{ZpbiifqIm2fqdpnEFXi0 zg%u^`HA+5ed41vi`Q_V7YeWuz30$C<H5Carlr30fc}4mKdqCX};HNR9vDJ+^_V!!&|5~XMNkcS8 zQOuR5s=i-0xnfA4xgJtA;Y}4kP_t=aq96ds#e%HVkW?Ifdkdaun4*Zrh8Oa0TqRYp zx0;vPA{+sER_N-Q)YX+lSFEb2tR_*(Di2UrRxz)2*XHPd3?9_G(iagC<&Mc6VO_S5 z5KCg6+y&t)cQ_d8;fDb@L>o5TVquW(=@`B7KZb_X8B@e33CO^Kum+7Nr?`M2PdN?f zdeAVapiHf2?hkFM2n5`zNRL=g;+149Cg7&a_F!B=Kl6;rz>|?ly+I`CCE~TIW?ZMz zx#WYN)@4vWF!&x2d0!t8b{G99FgGA%$Oaw>oIx>n(iC7hM!;QBB$SAq43hZp(e@Jv zwVyzoJxY*W)cRsI!cIr8QhA*^r!X8A9}bDF#}BM0jH;hNNDTlq>v=H!gd^!vP(;m) z7(*wTC6pEdXp~MKJ?Ek2<3r~nismb!G2BLiBlwtd&^&3xEFIot;qt_>@*xA|Nu%V% z^N$}Qmj;M&;$t~a87Vj}qGGWW8K;h=5Eeg)nD|Kq#FIwD6NSQ)#lfW*xKXc97y(Zj z{tgZ44j=ngV2DZ_38dRry40%DalZzGc9~YOZ^NodQdNWyVR{N$=onmLT%&gYD zOEn6cR8{@$4!k^L<$E&a9{)n*67ep zjh<*0*31fzqaTs54=Z*|Uhkl7nMtOOlg=B#Te3uw`=S54LR`QG{&DJpeDitpEROIL z(NNgNf8&rnl_K)|{*Em)^h%|ne0Z(GF5R~uL=W5Ev*j(kbnjbABF`v%madT1|JR|D zncO}-mv`QWZPQ;A7dKBsan&vNO8w0`Dfi;$Nm+IC6#mHqpO4Vt^(VR7QTBiGbX;y6 zPocFG#q|QX-XZx5M~Mn3UU`DDr$|4c)^rODEL9kIJi1dFK=iu@A4GZFZf<4)qy=dK zv-NT(Tob@09$WM;=|>_IiZ7K*c@#^Oldm9)utf*(qZV=qfsg4!fzhBljzV> zdQ|2Tgzroy{CRS^G|uH~dsPAdG#7AC?OcdY#}eW)g!p(eAvPymiX34bvZ9>GdTLFl z7XB1l%)9n4#_HND=-PPHt{rao(KN+(w9y$yCvfPuZ5jB2T#k;l8;cV-){MPje2tDa z$?bA| zxm`5u=-B_8jk6T1&vhb?<;l&&!sPuZ@~=mC^0%vyi@tV9ykUDX9Rx;sCAX0?V==s5 zW%xlr1HtocQh73a{G))QZ_+0-uV_bjw+tdZye{C#Nx>q%&=+9`0=eK3!8>?i$ zHT>jW>&>xL{YOgGW-L8uvWc(*#liY+TlY&WCJ9 z5JzW}z6(^QB$YUNt@5NoVzUqUN3)7<&O`e4tK|okm!q>J0}$s6sK|y)aWs=A`a$C+ ze!qZAXQCH9Zs2AV&E$RH1A8nH|uHeJk{)sf((3$YYL&uEy~ z(m{0yl5lx4H4qrvX$XUSRCNmth|VO{G3x`i4f3A4Yi@=o_MDqRUU=cAo4f zAbO6h49Ic10HSU6tRTL9_Kj$^&-)sbqHcd6VNO#C#sAVcqF2%#8Wj7@J~EAPvfuT( ztvGs_YDxxRMjAG}DR%(fF^%%Z?_atKea?Cvqe7laa`JzWlBa}Eg6tOenidZ_vJJQa znZl07YJuK{6`6sESEi%afXSYgnP(;d(%%UopG9Z=J!B~CY696{Hf4mxxQoIi=%4m` zIt=ZPLrR5&qF$80)lbcKkqe4qsP;7j856pJj#u^uElU;R?X9qnCg_SI>39-9@R>Xy zL0Pc5V>nN)!VlY(dKTpxp)p-qBi)j*6$3L!2{B>9dtgCu9-xtz4b!$MeHI<#&Nkh)5lt(10{aCNDFG735om$#bvfJuT-k;-#{^_b+R9H;RapZf%217sJ>qi3*uYiXW}Q~bMXuD8}X~npCZEE z{CoQNPx|-|e1uVr-k=qBIcA83N8)FX#OII1Zyw3|k7V6Pp=i;i9p4gP0=*xD-p|Fa z#4i;wS}d2uHfg;mjAn`;kX+3e$V!r8fm2mNww~5g;ulK@pt2O8>9t)u!<8(2sZyBL zu9Ya((pKe5=S%eAw!MJHiI=Oik|!85;fV}4BtH{JrwpX(sqV#SbaEjn|2}m7y?6~) zg)2#5pSUW8@;|9ToI9EIW&TlGnvIjV$R##t*u$;Cz2o!@(vr0{%yFwANHkkMADpsREmmA$bLihd z(m&vKji?51eO>tsxGlQ13wgG3bLU@)|CFf%Vxy^K#6BJ!Pj-&hm+mjEEs?*WxMpRg z5I)ha(LYMUbV5sy&S%3&+HDd&r?O&cz^9T-C^(ER*>2sWkxoK9UZvSPuGsn?ZxB*j diff --git a/build/.doctrees/html_static_pandoc/Jnexustut.doctree b/build/.doctrees/html_static_pandoc/Jnexustut.doctree index 68b3567db414e61bb25534f19d32905fa0375e9c..33ccee357be33651ab7f737e8f249ada81fee4e2 100644 GIT binary patch delta 85 zcmccfndQ%CmJN+eJbHTid6|jHU}AGC(^E!NkvtYnHdK+>Tw74pGzar+59VR))CB-F CFdZ5I delta 53 wcmezKndQ!BmJN+eEPkGj&YOFgo-#sMbu5}}5Y}d{EfBHhVxH~AJdB;X03LG^761SM diff --git a/build/.doctrees/html_static_pandoc/Latest_News.doctree b/build/.doctrees/html_static_pandoc/Latest_News.doctree index 0551be3fdc95b00ab0bceba883e60c45b6a70a5c..04057f5c1a9db06f5c44b245243a5d5a57901df0 100644 GIT binary patch delta 271 zcmeBs&GGIv$A(5G9z8w%yv)R8FtNFn=_w+}$t}Uo)raxe2RG9qo8Qm<2x}|X7Kqq%1r|ny$(qmkCeMGSwD~B{ z1SN=qM16T~2&>2HQv!t5HM@-q!jf6`bPt%doi~|r3Dl%UJx1~AYug!RCoSgM{yT+n cvOHMH%El{xro{|OtwZ#yu diff --git a/build/.doctrees/html_static_pandoc/Membership_Dates.doctree b/build/.doctrees/html_static_pandoc/Membership_Dates.doctree index f0e35f101b44f140705cda71576d62bafb9779b5..2c9ae24768e483c21b3f5716841309a38ce57929 100644 GIT binary patch delta 179 zcmX@Sg|T@n+|$E?YERhP?Nf#E{L=%P7gs yu}g@L*PE;;A~E^41mEN~LBY)-0x2A*X6=#Kf+kX;XpicG$%ee*o6jkgngam$?mG4W delta 93 zcmZqP%6NDS+}0t}SS4LU^{u0RVhs8?68U delta 49 rcmZ2^jj{6@)t+d^e|`L-_r0Kn1^o&W#< diff --git a/build/.doctrees/html_static_pandoc/MonoXSingle.doctree b/build/.doctrees/html_static_pandoc/MonoXSingle.doctree index 149faa0def65899f2ba15a94784b94f167bf4e6a..29c2f758746d2b8e79d7e2e5e77a0516e9164f7d 100644 GIT binary patch delta 81 xcmdltjp^PrrVWiuJbHTid6|jHU}AGC(^E!NkvtY{HdK+hTwBo8gz~(s0|0k%8}I-C delta 49 rcmcaNjcMOBrVWiuEPkGj&YOFgo-#sMbu8L!5Y|?%El{yio|kn1tF#cz diff --git a/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.doctree b/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.doctree index fbb50da5d8ce757066d8cafbe7855b9ecddd41fe..9f5d83922dc888a003948d5cb8647ec562df19eb 100644 GIT binary patch delta 79 ucmdmHd(C!3BNLCFo_=0tVltT6+{*Nn5mh9QC5R1GR`yzHjBNLCFo_=0tVltSRyhliC^L(b$j3}a;^H^fpP({vjZ9!Ah&f};A0NZjL An*aa+ delta 47 pcmaD6dm?s2BNL0Cr=#=cUZ$sv5LO*aEE|ONoNEhIY&nmk5&)cX5BvZC diff --git a/build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree b/build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree index 64fcf3bf4faa310243416de35df0ba7b2faed17f..5641ad0c613c58c63f62e4e238a0585c153c6fe6 100644 GIT binary patch delta 81 wcmeDA$++ex+}Et}SS4l6bTV0G2ZwssI20 delta 49 rcmZ4Uldo7Pd_g+F&Rv3Ze@DPh$@oDV#bClvVv<1nwkV24KV;AQ5n_% delta 47 pcmZ4C+TpsPk%`66)6sczFVj;-2&<08j19s%z_kS`*1)471^{-f4zd6M diff --git a/build/.doctrees/html_static_pandoc/NAPI_Routines.doctree b/build/.doctrees/html_static_pandoc/NAPI_Routines.doctree index 2ce2ba5d78f8bffcfe0be91fd2f0db50b1a406d7..80ebb512d8a3a7c851200e28a10b5c50a48d490c 100644 GIT binary patch delta 105 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 F{sZ4|o96%k literal 15541 zcmeHO&2JpXm6t41)Qm)0lI6h3%GrWfaVVRd@g@%9Ww?TAI*z!CDM6NHE)2TW(_J&& zWKVaex|`$}NTNL~AY<#coy%hPy4X!FSzr<5Yy<&v4Y2TW1OEZ}1A-j#dsSWCJ)@>% z4xJzYL?rTbeY{uozUsYKukO$O=*O!k)SrAhi9J6&=-93sMlMfsdB%;LY{`$?1uhv)JHMmU}yxPpiIHaZt*eCh{DrvT7$qA<1nkc$$6H@o%hQzuSz zI;`wlSz(Fq@}4c0lhk*1N9{Ia?2r+5FUnFiK#vhwPxuZ%+}q?^S;AJk*X~&s0nmRd zp*`d)EaV4SVy5Yle!^V7$Ac*5F0&J6hs+OCEqb3zzjqEOC6$!B5hp z0F5pdi)bM1;gE}j2_6fc(3o(*hW1V*%$&aOu)gj1fuH(30geK~w=)6MOKdIiZTy=h zsjvh3NuW0)k$P+mpnb>292N1FF+1FnA+NW85`bfK|Cp?wp6}B!{m2||WcQJI{a8jX);N7l zbNX;bj&t#NEIbbXrexj}oI4`hl{Gk5p_*?l>yh@Jm)t`C6Iv5h%t?lIZ2%JacHB~KT}!ls-FVDa|%+kXNH=~wP26Dp9w#gC%btj z=Tdv1`n@lESG_L*ueS_jURMDp!=KyU-@>wdz25K*G<@3T=_7KTMn_rB$=l06_Z@&WdFMV@3em><+(dewqnGcM6l&q%ZQ zX9}09KEH-{ua5U{sWE#gppAKFx%VyksXJQd8wzF|B$0srvS6 zF3!(p9&%=5d%#VsQ@TDzRSSRJI6enjflaGAKUWw*SWf*k&~VILMlL@?P%!iKlzsxiz#Xw~D)&4v_e0VuxL-dW$+U<5+P7#n>yiZbTedla^e z*!MCHu0&zdrR5RgZZ8{9n1#qFVSH%&0lRnG9ucmaNiPy1TcyS{TDh&iU$?`cGl=#m zw9rWEvBJ9vQ6H1>R}eW=U_wa-0e1%@CI(5zy3&0b!v* zY?Xx0B8Tysnhzp`k&;A4jifsR5El_K@srM8YJ%Df5Fzvi0XnSI zKnw{LYZ5hj5JWv_V&x7izH6Wf!6YKXr^Pgi=At$rkM(^*~20R9X&*vlQ8@y}}3x=s%4`>LNjcVvk=XAS;S8>v|pf zn5x3^yV{a9TC4_hwbEd#N-|Avs6GcPbrcgdy?y#j#;MUVjhm(8+oaetZ)ciEtp5q&y<6E8Mo1Ej@8yK6qrCId8So->BjG-{Da@9~I zB;eTnyzX&T{;@n`$gabG*{-}L?YfPPsKs8C5BT3&KA?(serncp3=iv1YPbyD{_+-H z@%LBF{5>RUR{s8F;^0`My8TBr;EK$P2pGRH6`ERf^htfQwIK7W%GZ7TSz;L8Cf8UG zuR;I+I`m3aCP`^RNdi(h*Azj1q1nGK!?90v%-pFV9NW%#_;pyU#tPn5R$x~7>Skxf zS0x|6Yu=QcRsOtIex3U>4WC8Vx7LyEdvfN&{XgEBTd?g3IZZTmOmdcTzte_*HjDnG zK2uW5q(WXS)T{L8<#!+H+&sdwG3RSNq|)rJfG-_3|M1BzIgh(iTxAAUFNmDoS_)oX zI(*udLpn9VysJAefL_TX(ynqAaTsnxK9UQie`ncZKvx&CbubK8k{DSL+qQJB+xavrn%8`DJ`Qlu4>hX-c;4Jl8O3QC>7StI#=@7fS3Vc+UBxg{A!M z*r~YH0)i)Qs1AEqjHP-)lqwgnQk~^HZ;?bFSU2QE0rCrmkwA@l^X<#Xi+i z#ys3p$p0Cv>UV|a2UDTB)`+I_U6XIDXM`yu=467dhLM$|xK!sIJ7z^komMSgPPO>g z8yCNzR<_!WudQ}d_nKMUWOIf5-=;$TMkDes-XyXRrIMICe&0tnQDsC*B0XY6wWR-= zYDsT4E@>8I5G5IkuL{-Arb6{rBdSX%Q*zlV2h_4!LSe;)L5YT6`$BLzt5Y;|(a#`i5+w05FXe7SLe6dBEh$4-Ywycp; z%P>k()QQEu3+#Kg7$Glx)yVG?($+=fb0Te}1izk23I3r;2~etu%Q%$uO&Y?9<_h_5 zrb2$J5&5n6aEV6p2}Oal(G|pF)sU`QXhNw0?b;2ZvE!dV;EDjhor(ar8wv0jv-|t0 zP`%rTs@)r<+)f=Ren!eK(QIxWP%CyZ%tqJrovvffl7ePb%5y+))Lz73>`9Ys-lNyCPoY6-WdT7uiS zgc*+qvDvZys1SWH6{3D4qRV9jWACA0gshG+8kISC^q^{C!Bh+LnijUT54#VCycfBn zYdD)zTG=(Wq3bYomHl$fx-Ag~{|rrWAa2$QWh0Ne6I3-BzpK?}FoYNhSkN{zH{{qXTD`1F2W{_oF|1)tvk zcf*8F@Bhc2I~yieTf05l`EV-b+NqRlJQY;WhnDr~-d%Z#YO|6+3%Ig>Jkj;)vuT7H zsQktW**0Uii_eTQ>L=wwaduf{?fW^?qHEyg8AOouBnYpmE|jmMP;Ld;58YgzzH0|4 zbSpF5^0aoB@=ZCb%KGr5H9%<*-t|O+J`hQwFwP#v_&BT4TBL3GY!{!I2=FzZMvg@_ z^wbOVvv9S=D3=%eI8sBzhqcZdCsF$gZ4a}dbwHk4j+O=TkYbD6DNIcO@~?D@32rTl zT`g0|4~)fxqO^Zgp3}N)sq;I(@sw(-_LpBAtGUUFoOXeqk;L@ zo0I19X-)4MlvxEOm(Nf1On}(=AIPR$&~U3YnAw-dJ0>Q}^Rx#@T!L%?RS)7OVcul* zL2(z~PvKFWd;H z9iOLtg@fwxsYD;hS~%jNMQ-ZlH_piCA(KO^RL^n)DDNi;`AD8mMtDwnV3k)rIo{eJ ziImH8$q>iA^}P&woq$l!sBisg;SSA4U`3>TzKnmgzJZmBgqXdX#dPz9)hWYM*ny8A zJrRmq`;Y-+7%q~jNV49@!Y%K>2x`r530Bv0{hk6shWGuoU$e<6yLh@)~>E5!{Rs*h=R7qBRZ zR*E;M@Kg{(s++ruW35!;shR<;Uw+VoB6^yHi@rH()V~+Kb?-$@|#*xf<^ME|c?hjw%%Mj!&;MutuQOEu^?+ zoZd^lMUTS{ApuleTMCI9dTFAu9Nij&*fLnvq>E$laiWNnjQ+Eeu!7rDhw(6O5948a GC=38|u^p!X delta 57 zcmcb9fMfdsjtz}WEPkGj&YOFgo-#sMbu2n;5Y{%XEfBHhGM@G_9>(ouJWLOT0Y*F$ A!vFvP diff --git a/build/.doctrees/html_static_pandoc/NXdetector_2012_10.doctree b/build/.doctrees/html_static_pandoc/NXdetector_2012_10.doctree index fab130b3fedcac390dc647b895570c990be2d06c..aa30c514eebd4a6596ca190c039156b71ac4b371 100644 GIT binary patch delta 81 xcmeC)#k6`C(}qSS9z8w%yv)R8FtNFn=_w+|>t}SS4VtCe1003_`8@~Vm delta 49 rcmZ3zi>Z4T(}qSS7C%o%=gqxLPZ=SsIu;`~2x|}57N}Sa&-w`frjZbv diff --git a/build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree b/build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree index 3961fa973726bf7566ad033762dbe1bb67a45ff0..1ddafa41b9272ec7128e99cfd4adc6f1c412fa15 100644 GIT binary patch delta 81 wcmZoV&A8|^+}Et}SS4l6Vv%0dt%i82|tP delta 49 rcmZ2sHYG0 diff --git a/build/.doctrees/html_static_pandoc/NXdir.doctree b/build/.doctrees/html_static_pandoc/NXdir.doctree index 9700749d545d6b008012cab833bc74d453fd7621..4f570ffa67d5bdf4ad2d20ed49b1aaaecececf10 100644 GIT binary patch delta 85 zcmex7jcM|9rVVqMc=Yu2^D+~Y!Nlf;OdlChMW(Uvv!jZv7nP58+`<US?u4nAqIP^pp`*B#*_L4OL_>mo1vEe>{;U0C}1lkpKVy delta 49 rcmey~#CW}laYG{$i=U^X^X6Wrr;HF*9g8;`gmsn67Ah;p8)*UnsgMtD diff --git a/build/.doctrees/html_static_pandoc/NXmonoref-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXmonoref-NIAC2006.doctree index 62da7a8b48b3f9a747715f6023960f7d08712eae..d8921ef0a0b4d96479f8ac38bb7f613daded9c61 100644 GIT binary patch delta 81 xcmeydm3hWC<_(QZJbHTid6|jHU}AGC(^E!NkvtY7HdK)%TwBo8#PG~H2LOrK96bO4 delta 49 rcmbQSjrqq`<_(QZEPkGj&YOFgo-#sMbu30~5Y`^9El{x delta 49 rcmcb9m}&cArVWiuEPkGj&YOFgo-#sMbu30~5Y`^9El{x+|}t}SS4Qg}L!0RVbr9033T delta 49 rcmeBK#{6a}^M*zy7C%o%=gqxLPZ=SsIu+}NE?YER>b!U30D?dp!2kdN delta 49 rcmZ2-gR$iX_ih{jv6~Q` diff --git a/build/.doctrees/html_static_pandoc/NXtofnref-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXtofnref-NIAC2006.doctree index 799968070b384de110d62824dd93c62206cd2dfb..b17267066284f08021c2df30e9dbbc4d5bff8525 100644 GIT binary patch delta 81 xcmdn6is`~CrVWiuJbHTid6|jHU}AGC(^E!NkvtY7HdK)%TwBo8#PD3{004ZW90mXY delta 49 qcmcbxifIE7H8QdIc{)08?qzz)2w~N+7_mWEd$_hh#cFu2bN~RZz7XO7 diff --git a/build/.doctrees/html_static_pandoc/NXtranslate.doctree b/build/.doctrees/html_static_pandoc/NXtranslate.doctree index cfb9d82f23d85ada2f787d527d234599a1534403..317fdd400ac63e30f3df552b0b93215b16d24dd1 100644 GIT binary patch delta 79 ucmdl~aj9ZMBNLCFo_=0tVltT6+{*Nn5mh9QMVk#(WG>ehG&P|-cl7~SS{pq8 delta 47 pcmcaqv8iH1BNL0Cr=#=cUZ$sv5LO+FHXDSsm1_%Btd!@jJ^+_}5E%df diff --git a/build/.doctrees/html_static_pandoc/NeXpy.doctree b/build/.doctrees/html_static_pandoc/NeXpy.doctree index 0260c53813368988fb81397cbb7c5984b2d6a26b..0b6ee69ff3194ca02a03fdd68b21d2b73e35ad09 100644 GIT binary patch literal 173626 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 Zp%5-L_W{?qan;7$v8Ed}J}B11{y(FEt04dY literal 151576 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 diff --git a/build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree b/build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree index bb335f6f44688227dd5803cf42d6fa1139f75cc5..633305e63fa1a8cc2578fbfa5f63d96384f6386c 100644 GIT binary patch delta 124 zcmbRBi1FAX#tn^3JbHTid6|jHU}AGC(^E!NkvtYtHdK-2TwBo8#Pj&@GXu?;ET?U_ d`Hr*`n6p_<`<4k*G+?qvLL-R1`D8+%001nCC(8f; delta 80 zcmX^1h;h~<#tn^3EPkGj&YOFgo-#sMbu6ZA5Y~RKEl{y~9v}Y6iV23B|4Tc87y+B7 SXm^#tn^3EPkGj&YOFgo-#sMbu4CV5Y_>%El{xro&rArz2Fd} diff --git a/build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree index a8df5368937fa40c19eeeec17a2de723f166202c..f26211eadd17659e995bbbfeba4d236d6c7890d1 100644 GIT binary patch delta 101 zcmZ4Yk#YY=#tn^3JbHTid6|jHU}AGC(^E!NkvtYNHdK)nTwBo8B=CedGAc~o<@<_J QVe=}#>%u^)JxN^*039MD82|tP delta 84 zcmdo0k#XHe#tn^3EPkGj&YOFgo-#sMbu4CV5Y_>%El{xro)AYiy^NCF9QDapeP2PD Qn-BP17lyHCB&mx50Q~tL1ONa4 diff --git a/build/.doctrees/html_static_pandoc/Nexus_43_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_43_Release_Notes.doctree index a46075ed1c38e2057f50a79806e2609c58fd84bf..0107761accd5216b67ecaf902b480b737e97a56e 100644 GIT binary patch delta 81 xcmex#nQ_t;#tn^3JbHTid6|jHU}AGC(^E!NkvtYNHdK)nTwBo8B=Ag%1pt@H8~OkM delta 49 rcmbPqh4Is6#tn^3EPkGj&YOFgo-#sMbu4CV5Y_>%El{xro=LF)y=M^C diff --git a/build/.doctrees/html_static_pandoc/Nexus_4_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_4_Release_Notes.doctree index 6bc2b2b6fd1852c17b93980a08329b1e83901fe1..94b4b4f6123d24ae39160cce560885ead805fe81 100644 GIT binary patch delta 81 wcmZp8%DCVu+~1t}SS4;&~L)0D+$yP5=M^ delta 49 rcmZ4Rl(FF{&32%;gX!ZUQBWFh7h04?0R-81QhvhJ{}~@h*QzK;7P0y3mZZd FZ2)kRLtX#? diff --git a/build/.doctrees/html_static_pandoc/Object_Oriented_Interface.doctree b/build/.doctrees/html_static_pandoc/Object_Oriented_Interface.doctree index 810582b654da7fd8685da20d69f90696f4b895fa..4b85313fc3fb3bad5516cd317da04cd53e5f8011 100644 GIT binary patch delta 94 zcmeAzTT!;5k%>o7Pd_g+F&Rv3Ze@DPh$@oDV#$UovYKlPnwn&u3KhUS?u4nAqIP^pp`*B#*_E4OL`0*A`SY&G9_j<9Qe#RssO# Ch#c$y delta 53 wcmaFR!*-yDZ9^jyi=U^X^X6Wrr;HF*9g8U>eb*3q-8Bo@aYK597m10PgD%=l}o! diff --git a/build/.doctrees/html_static_pandoc/Proposal_NeXus_Coordinates.doctree b/build/.doctrees/html_static_pandoc/Proposal_NeXus_Coordinates.doctree index 421a97bef5d425bb52c2709adc07aed96832cffa..ece2a68cdf5869cdca7169715169433b504d63cf 100644 GIT binary patch delta 88 zcmdnGgz>@>#tn^3JbHTid6|jHU}AGC(^E!NkvtYFHdK){TwBo8r0|4TGb(J}=U&bQ E07A4Kq5uE@ delta 61 zcmcbxgmLQ<#tn^3EPkGj&YOFgo-#sMbu3nF5Y`c{El{x*o)Bv`y^NCF9QDmN-OITE Di76C_ diff --git a/build/.doctrees/html_static_pandoc/Proposal_NeXus_Errors.doctree b/build/.doctrees/html_static_pandoc/Proposal_NeXus_Errors.doctree index 849ea2f9d5c263b85d945cea6fa2d22687a59927..cfa75d0bda7ea7ea396550ef9dea0a15dfb0d368 100644 GIT binary patch delta 88 zcmdnd%6PezaYG{$kDi`>US?u4nAqIP^pp`*B#*_E4OL`0*A_H2@jN10j0&48&Fpyq DDc~G_ delta 61 zcmccI%DAJIaYG{$i=U^X^X6Wrr;HF*9g8U>eb*3skJ0M?{NFFQX(kM}6}YGkYEY Dbk!4N diff --git a/build/.doctrees/html_static_pandoc/Proposal_to_Simplify_Nexus.doctree b/build/.doctrees/html_static_pandoc/Proposal_to_Simplify_Nexus.doctree index 779955a7617da2e10f3d44ff2877ca492cbf2b3a..e6bbd7d1973d15e5b64e575aad2648fe43faa647 100644 GIT binary patch delta 81 xcmaE`kEvll(}qSS9z8w%yv)R8FtNFn=_w+|}t}SS4Qh5GM0sw+u99aMW delta 49 rcmZqJ&-7p)(}qSS7C%o%=gqxLPZ=SsIuAS^d-TZn9PKW}?KFC!2$ZSUu0zG?^n Dx4smT diff --git a/build/.doctrees/html_static_pandoc/SAS.doctree b/build/.doctrees/html_static_pandoc/SAS.doctree index 14a2630201bb05d7f55795e59f6105829446b070..058f4a78285ae160102e6ae9f5505ffcf3ff8faf 100644 GIT binary patch delta 81 wcmeBeW?tLOyrF@KM^8^bFEcS2Ol)ppddi3@lFOpZhAJ|JYYUnhA0Ef807@4c+yDRo delta 49 rcmZ46%-q||yrF@K#n02xd2+}$t}SS4LU~Ml0A$`8(*OVf delta 49 rcmZ3vk+E|lm<2x}|X7N}S$kBJWepWzR$ diff --git a/build/.doctrees/html_static_pandoc/Scans.doctree b/build/.doctrees/html_static_pandoc/Scans.doctree index 2e84a7fabf5651dbc769466f69e1b0e308ec6951..c381e88eecceeaf516f0a1ac0f2d80ba5dfa1667 100644 GIT binary patch literal 19216 zcmeHPTW=i4v8FAN5?2Bx`4Z$}Ck@(3sAKM~DBFm^h;jtO7eNUf*g8Hsu$5u&Oz%!d zvoo9N9&$H{06peCc}xI31;~#G0_Y(>AwNKWz<(iMb@$BnUP$dl!O1y?(r|XBySl2n zs=B)RHedhkud84G?XO24u9$y#yrg=uO#2NUMQIiZg(O_(qbw}CBGvX4_pA2lA%3>- zx1RGOl@)m?Z2F4*IUmL{iE@$R^*;Uxbc1kdnW%C}9oFT)%<{5KTZXL7Lzze|g#rzS;lm;a>1}pPNsfD=bj}lc zB-Hy^u48r!sAb4ehGlsqa;7s^*dgRvuud-UlS7_BmmB7(fQ|()@noP-QJ{1M52Y$V z=GPW3YeO=H&a-rz_3JqwSnAy(OIgGp`aA4k|Msm9*o{V`nMxj-TO-!pgy3K@ z@i{WG_`;a!Ank=?jb~^Yu$>d_V!|kvwumLoVR2hn%n;_bf~h7jxBll+{?>%{Z(7|S zui8<)E~nIGG`gTV7trOLimY1JR=keqH7iOy*=w}5A+0vzRgvJ@B^6%JMO&alC_4%y zjh2sJ^Ptb(75!nK1K3rg9z6KhL%dMWvex6kOz<(oZ9VXMt@sQ9R9)0Q-p(fIZ}7Wc zv^aihT|VBD(C`0dGzcTL8R=w8Ho z@i&3$mH4fAE#AJfQnZX}*C9cU-l-P@$X=t`x%VK?+kcZnh5&&Y;>Mr{mz{;p&qJQ7My`za*uGPv#!*LWzgaWPqk*@K36MS6s`2b&~5##YJ#c%lauTp8P`ISZ(hhDEl z9{)JLLC%Q$+AkofHv#qnIdA_ess6&J8c$Z{y)w$2H^cxjui`JeSk=ekvxDc7qeGvg z*^C#ZJvlg9BSA57^JCn;dva_Hh;hlS*UDH4nf_Js`z#5*GFyO6S~^RixK9JmB^f*} zE0_|!k;FRDGJ!rYdzGHnJg2urxQqA;baa<(i=0*vs5i=XZAX+yIiX=+obIkr=$u1y za``j9h$f=em5UQ2mLBhja*$g^v&L_^QJM>66}hr9$pkFBjLO!v)X5}ePjq*lC(k)l*}gBHJ4vAQW%A1OxV{wo$Kkac^B&?4G4 zr7h7TnIx4@hfLG zIBCm7G}vv8^duo981G|x>jAOP% zGfW034DY$AmIYNplPtR6xX1;~!l1gSgrM>iuyr9*OeVzq5TX+h^dZkBq-o@#21*MI zr7@py#0L#_7k#1t87im^iV?(JK49ExMCmNISV$)dWEhE+Z5>LExdDbLB1}%uqz5s= zb4&z4n&8i>D)#^?dhE;nd#FG@xWDBdjGzdCC#$R5C~$~riNsKZDF7Mk%D#pGNEXD9 zKFT1Z7y?lZBT1zS%#_s4KdL6{WIzCE!(3osyanFz2-Rc0r9FTQp^TyY2*-p7VI+Vs z@;5?&)*9?{n%Hn$NK4gDv5?sVJ($hWLh9@jYpbmSlVBw!7>hGmRfI83A?;iv(om9_ zh(Qfuh^X+psJloa)fghGSSJmUE?`MYWub&7%~TDw0%tqZiot473z8*ON`^(kbE{Kn z9L5ltX-^&|W4I7r1o@#^P6!2Jrb=`n4z#oP!Ll`Vt14=uq=+=rXt;1DH1gv4`)vQ7 z$- zSXina$tRCx>T*c^;J_nd*}Z6i~nf9O;BL!K1EmFIm)sGu&{<@sQ5^V)BBHgB@u z7#K{A!l9T3iN@KLsq7YAnqcAn69H?d%ySD2kdKz2i}k4!&m$a^c3U+8tFj6g@lf;-1=)E<)5t1TcN*-!sZ~HKrXS;Q`i(ScBAU z!!c44VSy7s&*~`yHnzSf1P8l z;NKyiBl2H3>|Z|SpFQB8A=+O))W5w+I>6rp}2lt$!_ljz5R=kVH?G-IMYVmuT za*#K@yIT;%cT;rSSni>&pI5-|&#mxgr5mp4JXTo2!#ji+gg znkTP@e$Tp&$sG#!KyiI#<#gD4I_#ZuCF^w9TMd3shrLslt4@c#Sl6hX4ttkelR6#t zF1!eJI_#}BTFk!cbnMvm*-K8x7X5b|_Qr4Cd%ZSO;P>>=AIr^6Papkh>h`Ap-)kOY z0-AqMlUw(A`sfe15KPRyq3LwpgOjZ4#? zO1MSVJ$#HS2*-S?Gvi%w-NUCv>mJ}`j?GH&Gq~J_CHqnv^{zAQSaL|r%=ex{V%9-i zM!9tfuh_hV`&`?XPS-=Q=cT{sex=j(kmJ`wo<92X)LlQ`2Bm-5dI-@jhb)zak8e$S z{_7!6AN~ILT}j9s+m>WkM9^aI;&13B?$Fz)oA8z`rtD1`Um5Y)@OLIz4&2rx5b5J@ z%pZA#P7V}NbZ}zvf3INCpO9Q?hLjF-lxH*EEN3I9O=N=NSy~#w?+IrzkbC^83~c4V zZcIAhbpnQwQyJ43nVeAt!r{Tv_zS$gf!0XPPH?xI^Db zsFlznGD!sqM-qAk35brzuA1W_?q$70=NvdT@RkWU=#TRX*fQu6E?6c5I_=<+YA&hB zsjh^xrn4|;;W#WoIX+g+q8>7Fz0}S!ja}km1n3S4qo%NNoZ3?#o~Vlile$4$rh5Tx z+y)xLNMycaQ$=D=O9Zr&CKw*wHJrGD)p=e@yom2HUJIVUijc%)uML?(?g36kXA$6S z;(DRm_4n#Zy7$*cfdY}|Ssuigqfg4OW~@=ALQ){EOIDj>SXT{J3-S6G#01J;-oj~L zz;0Mtqx|`pUK<6NKm;6@sm5p%3j6tc2_#^7s3q7qQlMc&hmlKr(R?oi`7h(J06t+6 zlzUh4IgL`qYiP}FBN`)98KIqFPjw%q;x*hhc%ievPe$U4l3Ez9T2yp1mjqYorXHV$$L3$M3(~WbELBbsJvI3 zbHfI2+{r}<04LJyCq}?MFl^eA@;DGnXLF!^!tbh${0sO{i71`)U|sVT{6M5>t^Ce;++Igp=?0abUN4(en;0Zn$Z=u-IZjQlhcV7yh1i&G{RcE=lmJW*3UaCT zqHpCGH(Yr=n_fe@Oxv(L-xab(sU@&i9E~i&F|*3U&<7Bl6S^#LAR>aJ8i37M z2v_WM}mMCCnYHFA^vc^G?GW#y1h)$Xpbe)7ZvOm92|mk z1Tak5ia&^dVzy5JdHG8pU05eLiW*D&fFzK=|1SQ=?~1rd=(bSw+hw8hmkMKk-*sak zUm~FNP|~4u)M_l9oK;zd;P2xP*A+j#EaUQEm)%yDR0ix7du1$ZtmOI>O6w(O9-5a% zsH3mX$tsM;cy*jYm1_bTxZN--5O}z+Ib8^|B(Ziv_;H>4z|Tj*Lz|BKXZC3Wo1Wod upkM{V_1UU?@s!L9Rc2*r7i1bHMMSnwJ*g94EuyZ)CdYHUI)tqY2ARA=!%lPSF@!=74e}wEK*&LmOQD3O_|_f^z4RVRe{a5aR#9jc7Uuou z|Nfu9|Hu69y~=OjsSJKo`~B`~6Uk4`hCbu&UWZtg>sd66W!>`3$f2%?hw<9O`0aRA zY5~~|y(lngEGNKWGHzP|b>n+@*;f35+hHdYpqZX42zO~vNMND?gI-O;_d-w12 zA0GXua;f|CS2sIMIQCDsbvmk1$*CYR0&bS{%GP$5-i^ZL>l-6A8a$#s3J>5>?j@_S3yBe$tiDC}l>4%l+>IZ_ zX&k0}f;%E+%Tm*eFtNd;oXWz}l~o&_$KA*vvO$ChxDg42RfTbqTOmRwr%juLA&7Xc zxx`7I>Q>~B4hAuIU}M5lRpi1LI7xd^z++k2h$A^Ih|y0N*b-Y~=b)IaLmS&jq|?19 zj0t-l!TnyD@Dd0=xEDw4C+sY)EwC$Wie0@m5g7=h20uwZAU?~ZbJ(e$uS};&S~+~a zeinx`D#JlzaVb@oYhfkfTkMJ)e$sgJ^%&9{N>gOe!a#LHwnA=Eg9Piu@FD?YVQ5)| zx-|#8Zsg#Q#!#>RVsH{FE*3n^?VFxM$I`wctBRJV6JiZ^nN6}QU3OI^Y|N~(6*9{} zdY!$@t|M;Ol6c>TVJot-ToQV}ER>Bb8vdpEqdQp$<(V5?+>DII?VwLw9umPlwtEka`=bV#X*u)1%}i(t?}s}mtVN{!i(R;$c1ec*5&J84KCcQDr(8f zcTTht<(R=O&teh3ZF1WC1YT@X0smN3XfBQ+PghxiK4J#McwA_f~^xaYhKl>UZh7VUS&p>0| zH`I9z=VMCCI!EPsG~B*$)JSx$0yXdB_UZkquXh#M?lA{97o&NLGvQ6Jt=ppyZ<`8 zaP{9>Es4e9{P$NHgOW2}elusv;9p5KjGH5?3MD5a_|L}>KTzWb^I46t6Fcn~jyMUCtgi>g4pq`3E9Ya27+2RN6M*+Y@1P_CaPYH&t^_Z z$Ed7_R0!_&v6##ki$*U{ z_j+F7#Gtf8jDKG@Jx8rmAw-@J2MLMVG$HA`TrfRf2cR;$k?jXv*$k-f1wyy!1By7F zk_|@e;#iaObdMu?f`};0nQF3zc^dVhuf0nG7tsSpK#2p&WetfiF>cMB_&~O~i(u*4 zgFFjtvD6~bTmRvD$niY<)8;eJBE-rjQ^ayM4Q+|LmT-gfzne?T@vmOR&L-P52)y7V zrkg)|2I!kpssWae!8IGEU;(g++m8TYgv!GC6gEqFCZMJlSh_`h>RPanBh6ho1@QJ@ z9n#7zfQ|O}Ud*Osn?%CXMc9}32C5K0>n{?vyiJ9EaAlw=$cm*f}Fd3K*;6}7xC+J&&jq=eZAOjl{ZaA zF$j#0OaNP+WkUGjk2f|z4?F(8V4mCYg8oJ<7Zqz_0ZKp@)Io*>GExV9{n=|TBBbr0 zXC9NUD5-oUe)#d$b8|ov_ENyx5-h$|m%}f&mR^e=%einL-v)a+<9%l14_H-gPa&@v zIs`!fb%eqS;qIB_oE~-CGf5Vp;r@-K0VJue!?RLVXyF-irLESlij(WyhYt>Y6(H8xoH%L6&DM5_da)b6GI z@%X(V2_yPiQxNC8MS?GcUeTqJSop&Bq0SE#gPLN@#MgMJt?!%jB2I>L# zd+E0T4rbsqm2I+D*b)1beZfADq^918eIM4T<$v>l9UZVQ4kEUpj<2wD zVEl-E&OVD|tLR@4oQQ3i934bi63{_LQuUNGrY4su3IPcf33Uw5*2h>Eju8uPZH!IJ z)h3cor}76`Z$(cFgzBP;$Ax8YFjG+OrWdJNj^&K$*>;)}^y=x&j6Os-9>s3}xA>+( s3E*QZMD|mSMbVeYFF{m6PZBu8UDJ*%g_yp|UBgnHDJx+$!Xu;eKdJ)n-~a#s diff --git a/build/.doctrees/html_static_pandoc/Storing_Event_Data.doctree b/build/.doctrees/html_static_pandoc/Storing_Event_Data.doctree index f511a81917380f85c6280409e8ea1566ee1ae3a4..02e75aee1a448209fe4733f662f9806c3348807e 100644 GIT binary patch delta 81 xcmeypg>m*)#tn^3JbHTid6|jHU}AGC(^E!NkvtY7HdK)%TwBo8#PG=b0RV_-8$bX6 delta 49 rcmbQemGSo$#tn^3EPkGj&YOFgo-#sMbu30~5Y`^9El{x<9(g|iv*r*S diff --git a/build/.doctrees/html_static_pandoc/TOFRaw.doctree b/build/.doctrees/html_static_pandoc/TOFRaw.doctree index 9ff280b271ec21ade461928f9d5653f54db34fde..0090dbb12183de3ab6bc025f523e72a45a5ba9ce 100644 GIT binary patch literal 657155 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 literal 545342 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

EXuHS74PEUBCSO5Y0 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¿!kl4p)M*l!&OFw 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 diff --git a/build/.doctrees/html_static_pandoc/TOFRawScan.doctree b/build/.doctrees/html_static_pandoc/TOFRawScan.doctree index baaf5fda7208ab886c5ba9cb3f727a13c9db2941..852a1d66378498221661a474284f38f035bebe07 100644 GIT binary patch delta 81 xcmX^3hxy?j<_(QZJbHTid6|jHU}AGC(^E!NkvtYHHdK*0TwBo8gz&um2mrXU9XJ30 delta 49 rcmaF(hxyo7Pd_g+F&Rv3Ze@DPh$@oD;>m_8vYTrQnwnyskFo$lj2kup delta 47 pcmZn(eG;;vk%`66)6sczFVj;-2&<08lMTYU%(Vq7Hks$6EC7l@5E1|Y diff --git a/build/.doctrees/html_static_pandoc/Update_for_NXflou_application_definition.doctree b/build/.doctrees/html_static_pandoc/Update_for_NXflou_application_definition.doctree index ed932a38063220cb720d295d5408d1f200ea47d5..8a317b060e2200eb7965b5831f68757c3ede6d93 100644 GIT binary patch delta 81 wcmdnj!g#NRaYG{$kDi`>US?u4nAqIP^pp`*B#*^|4OL_p*A_H2MLcIr0dk2Oy8r+H delta 49 rcmccD!nm)6aYG{$i=U^X^X6Wrr;HF*9g7DWgmsB)3sh_p&lytysMHXb diff --git a/build/.doctrees/html_static_pandoc/Utilities.doctree b/build/.doctrees/html_static_pandoc/Utilities.doctree index 3b7d3f174fe19964388914e77eead5a78446209f..d9fc3036ddb3577848164df93de7d780f4a9932c 100644 GIT binary patch delta 81 xcmexzf@#W0rVWiuJbHTid6|jHU}AGC(^E!NkvtYnHdK+>TwBo81oJ4)0055s8;t+} delta 49 rcmbPolIhC{rVWiuEPkGj&YOFgo-#sMbu5}}5Y}d{El{yy9>o~|x6%-4 diff --git a/build/.doctrees/html_static_pandoc/Workshop_PSI_2010.doctree b/build/.doctrees/html_static_pandoc/Workshop_PSI_2010.doctree index 54810178439f0a6775e8a1bf07975d7b84b4d239..a543169b260a409d39ff3315d6af424cb31edf75 100644 GIT binary patch delta 167 zcmaD_zP4gRBNLCFo_=0tVltT6+{*Nn5mh9QWilJ82rIWOnl3lqyDX?`)P-7DQAO5^ Z+wh@?On$Fgfhv%#whTpJv#9z75dc4}H%tHk delta 112 zcmZ2m@w9wHBNL0Cr=#=cUZ$sv5LO+_WHty(mfIF0J2_Ted~+@DF&2opzfcP+gmqus nhL0DdUoWF1H^(j^K7R5-d6~&RYQbRn$*a|tK@`TSUl0KR`oSaB diff --git a/build/.doctrees/html_static_pandoc/XESraw.doctree b/build/.doctrees/html_static_pandoc/XESraw.doctree index a32b96a59f6923785e49db67252ffe03b48f46b6..55be5721b47fdd41462899ab5c9e3addc8cd9e2f 100644 GIT binary patch literal 24549 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�_w(#;H_R7Re4Nf{q4lhn9nkq87fikoE&B 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 literal 25144 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 diff --git a/build/.doctrees/niac/NIAC.doctree b/build/.doctrees/niac/NIAC.doctree index c482c401b4df37efb81a8c4f163b871ce2397ec9..bac3ec194f795a4d6e4f3516e39a5a479be12d26 100644 GIT binary patch delta 696 zcmZ9IPl!@+5XTwQLVd|wHG|OC)2!Y64|{Pn*n)^UL{aUfB5)7n17r+c3Zgb3?H5M{P!_RBhdetbH2CNzn*vJumYz{R1^2m=r`yLz( zoT90~2{1iEPW-a7+x#Qydg0+eRf&Qk%09Sld8K2-6;0m7N}VV#c87lP@g&^0@ovd` zmS3I|qjV5fnM<|vm+RE=Lz2=VxIz^VsG_C81@6kbL-a0Sff=VLY;GPm-}Pkq~bhmjY*gmB9IiB e1*q}_$!D*aJ(`QbD=s9l_R?}@a?15Mr1U?YT+EyR delta 514 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 literal 56439 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 M&VjT*Pr9xD4?$F4!2kdN literal 63308 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 delta 47 pcmZ2h(^j*gk%`66)6sczFVj;-2&;}og$=@5$F&72mdCTh5CDg@50L-> diff --git a/build/.doctrees/niac/NIAC2006_Scanning_Group.doctree b/build/.doctrees/niac/NIAC2006_Scanning_Group.doctree index 44fca062195954d65c348cd4bdf55a4035cc054d..f17f4855dcf72e073e85eda049ff99b3fcf5660f 100644 GIT binary patch literal 54552 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 literal 48274 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 literal 43584 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 diff --git a/build/.doctrees/niac/NIAC2006_TOF_Group.doctree b/build/.doctrees/niac/NIAC2006_TOF_Group.doctree index a56820d0233419bfe1de4ec2e1124a349458b6a5..c4c664d2ab1516c7609f97822eb1be0d1deab6e0 100644 GIT binary patch delta 142 zcmccho%z{!<_(QZJbHTid6|jHU}AGC(^E!NkvtX^HdK*mTwBo8`0+e&=Ta!mu+5Om y(9BSuyf9p5vP=Ze=F|`;CPszLYr`BFd12C7zKjeEAQhWsA|x4sveuFF7XbjXi7uA_ delta 122 zcmaF%o%z;x<_(QZEPkGj&YOFgo-#sMbu21u5Y{@bEl{yMo(Jxe8~9im)i?Wx6f^Pb tWt8ORsF!BgX2@k|W@$|hh}7QvJ&czTO~Mx}VHv^8$Oh4|**$XpA^;Z+DJcK| diff --git a/build/.doctrees/niac/NIAC2007.doctree b/build/.doctrees/niac/NIAC2007.doctree index 6fe1a981065e471e51fcdeeb617a2fd76e1c36f0..5737be232439e5a9c9c3f073051435da77d740fa 100644 GIT binary patch delta 485 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 diff --git a/build/.doctrees/niac/NIAC2007_attendees.doctree b/build/.doctrees/niac/NIAC2007_attendees.doctree index 46ca56cb2996b98b29e8fa09f6946f7a90f7ce70..9df16ed57be04aacf35d13a251c9d889e0868419 100644 GIT binary patch delta 81 xcmbQWoq5-G<_(QZJbHTid6|jHU}AGC(^E!NkvtX^HdK*mTwBo8`0@Ch2LN+K8;bw{ delta 49 rcmdnBoq5)F<_(QZEPkGj&YOFgo-#sMbu21u5Y{@bEl{yM9-s37sIL%b diff --git a/build/.doctrees/niac/NIAC2007_photos.doctree b/build/.doctrees/niac/NIAC2007_photos.doctree index 363cc6cc0958d3d97f26815f9f28db7342daecea..94bd4fbf96728dd1d8fa80ed9f435e321a3dbdac 100644 GIT binary patch literal 34877 zcmeHQ`;yaEnukC)w4s{&WRgIlBtV)#x4Cq4=^-ou0;EZLDT-p5Ou)#tY{|%yN0-pO z3%mR0yuv=hJjB#g?H~IH^8oV#^9uX>&P5lujx1ZUQ&dft`ba+KyBvMr?_71H^N+v& zW$qt;{R<9f7yHB2A%9?6&en?FZaZ$<@Ok?Fw%ZE(h7<6g2+#4WcQ`HKf5Fq=_-^R6 z3?9FWpZ2#*%WivygP$+(Po#?^E3j;TC81!U5hgX5bI(tFuxr=KiWbqW zuWP>5Hk!J(><3os^>(eMX_|sUZ@OW?2sn)wHa)8a5wA9l=b^9NtlxUoXpjK@x9;eD zV_kEMtAt2rn&kwB=jeguI=Zd-f$p?*udOw=HNR!SW|klL zLNt=Jf#-HTz27%HU-OKCXZS?pbhWGrmd z8-+;0_>1L-Q1kDc&h5Z5Vc@yW1#N5D)3>?ye&{+{TMzUVX0lfg-M%3#tG#+)1rNg} ziThWtt2>s@Mcp)mVBoLU>s>1_!{$oM?bn&rJFeH)1L>9j{j+xY;^kHC)#mr#-qmid ztkfM#Z?Ry-4Ei?F0W#)30-1SW2s(({tpraD4PYl17dt>v8WAPoFgX?`1H#xS$b`Vy z{vXTvOFO)Oi~C;f+O%KGIkk*OCv@ioz8uq$QOQ~|7jQk#O^GXhq)Qv(YN=Wk5u#iY z^MYq|3^WL`p+Hoc-#nS1-uu+pirXB}&N27kB6+;S4{BNF2RbAZy{REsXe3%Ka}NYypb9;UC+x1{9Fo#N?+SYJQ}dkpG4g9JvkaQ`C>zvNfmk;$ zQIvUQXTlmwxJF@Ueq;U?qK=#A&3W^}qg`Q>xpn~-)X_Q(Oc3!S?VabxP@4W(M0T`z zWOCm4oc^bYvO5J4qWHx-oR$E=hvwJj9`pRBd4bAd3fD;}n?vZmZ=Q#M&3fMn>aBX{ zqc>G=8eZ2EJ&AhL)18)S`1Lo|YpcO~wRK+pdFO$;5|=Mtyw(_)Zs7VWp3iEI3y*44 zFv6yhkr$|}$zCVxI3PmjWomxX%;`*k&lDPd>~&Ez_{E?eK(ww zhjdtTe20<5xW<#h&EJ_fsUo5}?IkRA8f3ev;!Yk?>&v88bLY)mmp#mJyBAQFxbb76 zpPH1C%nq()j($nzs2Fg;ov?$@mFf^vZhnX0)BJuhD26S!P?P;6Bqk4;-%%DkUaWIX zUfN4#C#eJ1QVlN48b*p|mRKNNtdkGPiJQ(Up4lZ4RfYKsjoe{gBC{AFdQp~ZKAJ>K zPQgByT~&c;pAeJJzb9#;9X-~wdv}ah271?!1Kg-5D{C-~*I;6-CcCp3AW`+UoK9pN zn01ZhEeBR$@09x3!0>Rx=v%t;_y7JMKU4SsG|N3k<4Xmkep%Dr%3Li!ezLKA_xm3o zTwJ|!d1d4AgSUAUS4L8-j-*%{NpW=~#kG+X*GE#^7)7yqaU{j1krX3sx;oOPt0Qf? zI?|@ABW=1m(x$5;ZMr(rrfVZ@x;E0LYa?yCHqxeRBW=1i(xz)8ZMw#7idsfAUKw*9 zdsr=!S6is7iuH_oA~`>zt|Wxa%o<`u^`J@?HdiGJgR7E-wN=T&)T(5GT~)FGt}0oe zR*@{L0adcVt14N5Rh67?HCgmk-1%0MgK(*1 zphy}PIwoeArm16wX+chLRDl^Ojx0*G44r!#Y~s@uj$BYkZUV(k4vO9)8FWHaXy&+1dKZZ81G5|<4XWzdnUjbp1c_DU2r2*)4yQ4rVb6Jr8;Ox zag#zr@)I=f31|qTPT0pd4RCM?)9+>QNfl^Q^fJVq@Gb~`r24dDc0ZY}sl$V5K~8a0 z(a(_LCWVLOCwTCuBhtB(c0td~5FUJb2&S9?JeaPj!-Hw54jxk6r0|gZ1doT6)E;MN z2M;l+s)olQEF`U@Y2lit4GylQGH^uVQsDR!HYqZ6jkpOK8v+_f$e1tT4Rt5{EY3i_GTB?JE6qkaHk&)M3H2R0j(wE(MEzQCLWBg2kqQ#UDz*;v8V{Z!>`fo1%NGhQ)tY1`DQX>adVg zj<}-=I-q=I0a*wC(flW_ivmMthk)@o?qQUG#@B$x+nGRvP1EH-gPWn69tP7jb#Tau zN94Q;a7b~Jfx@P)Wj2Zx+`tOy)Z+@#=;`~;3ym4M?iz`@-z z^`3@!{{h-&PwzTCe$ zc*uFp6g>9gb-p5l*C;atj&>#BSe+p_*tA_v({ci4s0JEL)6^RlISpA+%^}65pmDA! zG$c1cqa&d4AsKYS!Rs1;aSZ&^Z&KKFT@EbPD}x2oG<8_W>Bov-A;qO&u~`%rlAB;* z3Rv7M0gJ1E#r2uMf=$%rz@kwZESRRL!$M9xRs;(vE(Hs}C@ds5!J;Q%p_hQgHNfJ< zOklw#>2hEJ^Hv57rfcfJkkgJ80Yi#Q0fSqmP#;6`6Ey6&k5K{~*Lfdfa(HBYkYVR* zP`Jl={t6wgaO_@2K;MJFiQUJAN736+SrS3EmtI}OIp@O;Bs23XG)UMdUi8YBkp8p- zygUoo5&4l?ze+FL{T{Dc=e*gcm3tR2d)@3DGbB$d z@}3?eM_!X>{4D;y9WlNW0%(8>05Jqpy!0y@`4Tqy7d+OpeIvjEK7HsbJVLHy$BS^x zJz-NM6t_Gd`V_LfdgP+8eD8StB193>_dWrA?<57MDEO3u&k(=@qwSwLMoHMe_XQ*= z9B?zw0W3%P9=KV;1FQ@DwvY!HX=cr?^1uz;vlyHd^1y8}`L`6@q2MkB_Yf5Ffb7hx zN*qkIqCD&Yav+bre*Mmm-UULxz`c)$RCuR}qX0+Rv@K_L&wesjtL z2j)Z#)UzQ+VgK8?_NV;h+y8b6`?GFcG5a&pvFs1KA@k#SfOAky3dYP+Az#SOYRVT{ zZ&s;SKf} zx0p8=>HFag`EWYrjSZzYzKOkYzqB{*m+%IAdRojIjP(8RhI}TR@r;_bKRmpHZMu@HquvASlvO zL@%GD>>ot-KLa_j{kyUKH*)PyxyiTwMhWZl2d+hWt^5s@v8;a+Ss%yxcR}B~N5OX# z+^66HfXZ|2DS&54rZI{N&sJhZ6Q@58R5OU;RK*HEPh2^>OTP zg1%=_(4*ir1vY|0_Lq+imG*ZbDYifNjOZ!lep;91DBlB{B|K1k=`=IYVpx_||-&3%GppgADN7N@H z`~L_zvHcGrUf}%4Q&$-s8+~iyT=gFjG3n*o`@DP zr$!U^BTsPgu`h1KzQ9%u`Lh`#z45YyH;Rv^bJicL#&i6xe+6%3j;;To^u}iFjaQ|; z@v4M3ijS`OLfrSGY-EnK2TE_WVsA7{d!t#x8^uT3e5vVdys-<^ALbz`uA#PKFSK*LK>5jUE!rh~P<(97HwqZb2d9wracZa2pzocbfVLFreMP|% zf%9F&@17A;^Sq$>A+YXfaQ?+aeTlzsIv;j%u^w6WR9J| z8F_;%Q24{n^#^Co_lO;PBx{9X_L{|L%SrPYbR5Tay^e3Q&2JlQCt$;;@5<9cxF!70 z1#Y0*xOhYWtx0O5&7wlOwcWT}Y=s_eb=iod(}tD@WvtxT5^?)|BcR=dNePZ4(dNq? zY~PCy`IBHA^UriUWM94Kzmp5&C>h%)4?_AVKk1oc8%K#B3ta=dHtT^)J2zA60{eb` zp!WwN;sDPic0O=ki>R823O%}4;;IF1t3exO5|zm89PZHDMk0=*9oG#UH!xB}kH{D` z-)IF+*l%pnroo6{v5VLl*%~ykp)l=RO%h4XCp^}$4HnyYgKdW!@ur?ECxS8B>60Q4 zVy9+ouH3L`?`Kl+0fL%|jSAu@TDf_|*s|c2Ko3Gcoic~Ls>3cwNZjHZ-E-g-P+}iu z$}`0-z}+qEXx$<+@ng|)VD|?0OLg0z=aCCx&{@8|>|5gZ$uv>J@I2RRnApp}miuYX z(@nL+t_p{^H;1IoF{xa`sUeCTB73!ctO{M^y3+YeN;;V)*dYk|4$~c@O!y{@Y{LRP z4>enNx*=BV!iQ}U_W|2U9O=hAqlL|_v6^-O3`0FO$wo9;aURQbJIpl9rdAu}3~O%L zHWc$nU)00EZ6u=+`GF-0LaiP42aQCbVeVp)VxMnYDmuhsSrH}RrK1PF5w_jNR$l`A zu(368eWNifh2gXnG_WVH6&IpIjW)K(ZrXJ7iM!bs7kE~k9E1U|w3u%`F7Cf3SQ;J6 zPVP+m8~P3P*ea7PL^d3fFK!#W2e5@ZAR!}JAv!`e32^LmQA}*BZxMoiJp2{H#ep$s zM4S1_n?FdgO&#~ii#7;j`qk-K{0D(Zbdq2{a z&ssZhN(ycNp`I!rIBz&dRjE;6tX=uOlE*slb+d9)wF zDU_9dBdTzso5U`n5jsJ3*x$yU^;-?o>Y6tGMd{jWyRx7j^!qw0jX#E{x5z^LIL2am zWW#n_ddf|wS|;}3ZDDVAUVp%2%n6Y6I;1LwD5 zp=WZi)#S*C9@j9mHL|FL4jcWZ(MCnJjcl5RA?^~|PPD-Dx?%Kn%WmlHHg>Y-TO;$F z93h>w;@vmwj;#E7(jLS41y^_~jc`A&T3Jm+h3&9~Jy=k@gGQixU4vEKFF4&TqlG-Xt|cQvyrQa_6Kg7SLHEvw&U+d1|I)b^0oGYPJ& za00d@Tt&1hiO5MRqBTiG-cu1>l|&%OA-h(L?0PY>8->WQXi1oY))^^o084)a5iN#M z5nYxewIb@OT^T{IX=aVJvpQALgKcQZA1CjNqIH-ss+tbv)f(TRG!l)p~ zA&YFEPZn7}pDeOJl}c64BJ0ykh>9q(J(Xk?QDk{4;wqxZ?jQge6?#;^MPz7f~Rl6)Nd?k3X_@s7tM ze8R652fBwIS0C*!y35IIMV-@(!~;=c)bt*(oR%H7(c^QedKc!awW+VooPo$q{>u5v F{{!($_GbV9 literal 28376 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 D?f*4g diff --git a/build/.doctrees/niac/NIAC2008.doctree b/build/.doctrees/niac/NIAC2008.doctree index 238600871b6e855e6d687d5bcd2b791c521749ae..0c35906666aab1beb276e55e50076408b1b79a9f 100644 GIT binary patch delta 321 zcmbRBi0Q{8rVWiuJbHTid6|jHU}AGC(^E!NkvtYDHdK)wt}SS4TzEv$%!%b&!^sRZ zdGdiojmaBi1UEZLxUs+lHgAv#V@EM_ax9qryKH3c9M{qd|#V= za+-w1<|^Hz%rME#>4y7pn6cE-5zT$CtS+j;G){h;a2Lehd>~PU2`Z?*nL9;a97%=H cLw$2XioQ5hcJk(cnwenH$q6ZXn;q-SjRC<%MVkNs diff --git a/build/.doctrees/niac/NIAC2008_attendees.doctree b/build/.doctrees/niac/NIAC2008_attendees.doctree index 1db2b78d69dc7ba74ea28618d843bc0b569ed471..da33d6b522bacca5ac3f16cc5eec8d083fa634e4 100644 GIT binary patch delta 107 zcmZp?$T;UB+}Ot}Uo)7W?t2@hX&N*k;IO YXl4~KGB8Y5)Rme1K$mB8htW?{0Ec@b`~Uy| delta 60 zcmbPpk+Jb2;v~h%7kD@~ceNEIK}}HHEcUS_EF&3SFhk~WLK+{MUMkdjuc@0S`;P&wJ)Wx!^=*H4rH D%8Wr4 diff --git a/build/.doctrees/niac/NIAC2010_CodeCamp.doctree b/build/.doctrees/niac/NIAC2010_CodeCamp.doctree index 8361a470d7f719571e7548b6d8302971f963b41b..8d0bab540be19e77cc7cf85d8d890855d01d466b 100644 GIT binary patch delta 94 zcmZ4Vi+RT{<_(QZJbHTid6|jHU}AGC(^E!NkvtYXTRczMQ;( MAIRD~*>CAO0B8CbRR910 diff --git a/build/.doctrees/niac/NIAC2011_CodeCamp.doctree b/build/.doctrees/niac/NIAC2011_CodeCamp.doctree index 6ae23f93dadeee78e0e97775220099527c039919..148b6806f4fd9f278bee5e893f1602679d756c8c 100644 GIT binary patch delta 89 zcmZ3|$aSQVYeORwkDi`>US?u4nAqIP^pp`*B#%Xz4OL_+*A`SY&AvSCzC4WEeR-I| FO8_}89I*fZ delta 57 zcmX@o$hD-AYeORwi=U^X^X6Wrr;HF*9g8v>gteAy3q-6rm#00KhjDu@4^wyv03eYO A%>V!Z diff --git a/build/.doctrees/niac/NIAC2012.doctree b/build/.doctrees/niac/NIAC2012.doctree index 7f59ff3b1ef8e58c365eec8086d666b7d1a6f085..22d8a3509b281639390170b8ca6bed63cf9bf0b3 100644 GIT binary patch delta 105 zcmbR8L1_I4p$&~pJbHTid6|jHU}AGC(^E!NkvtYDHdK)wt}Uo)nq7FdyYMjbuVhqc TkKD=##7scUyghO&%WftBh)N^P delta 102 zcmZ4gL1@Ycp$&~pEPkGj&YOFgo-#sMbu3bB5Y`f|EfBHh6rSxVJdFG+1@tmXa&y#6 sGi)>DGBmS9Sf@MIGb&F0z{5Fx!cIn(_BC4>ftU%1nYXXm%F@gP0P!_t__V$JbHTid6|jHU}AGC(^E!NkvtYDHdK)wt}Uo)nq7F>U3eI`yYMja G%mM&~>m5x1 delta 57 zcmexxhU>x^t__V$EPkGj&YOFgo-#sMbu3bB5Y`f|EfBHh6rT1J9>(n{JWM>Z08nNU AX#fBK diff --git a/build/.doctrees/niac/NIAC2014_CodeCamp.doctree b/build/.doctrees/niac/NIAC2014_CodeCamp.doctree index 96badb814940fbf92abb5b9b99d0594aca4975c4..df82dcbfe7d2dc408589f2721e87489261b9a394 100644 GIT binary patch delta 81 xcmZ4ai|OPqrVWiuJbHTid6|jHU}AGC(^E!NkvtYh+i CmK)Om delta 53 wcmdmal4a&emJN+eEPkGj&YOFgo-#sMbu3D35Y`&5EfBHh9G>ktJdC~)0Pw*O&j0`b diff --git a/build/.doctrees/niac/NIAC2016.doctree b/build/.doctrees/niac/NIAC2016.doctree index 11d010465139b4aba9507a46c772968991ef2180..4d473e55fab0926d9c1ddeb5c5875220fc9001f5 100644 GIT binary patch delta 79 ucmbOcyd!u+BNLCFo_=0tVltT6+{*Nn5mh9QMT!koq=#z@ni?0L5Lo~$+!^rz delta 47 pcmdlHJR^8RBNL0Cr=#=cUZ$sv5LO+F6dQ!Kglh{_EQKdT765%$4$S}n diff --git a/build/.doctrees/niac/NIAC2016Minutes.doctree b/build/.doctrees/niac/NIAC2016Minutes.doctree index 4f01bcae89deba98e184a98d7155f59905b5c290..24b6276fdf44e55781ec8e7c17655334d9f5aac4 100644 GIT binary patch literal 76623 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 literal 66718 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 literal 109207 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 T+~$!~1l>lf0aV)i%QOE!k9!ir diff --git a/build/.doctrees/niac/NIAC2020.doctree b/build/.doctrees/niac/NIAC2020.doctree index feccd86a8fcc8a512bdf66d7f6b2f8433686ab6a..bda1bd69cf44b89fb9774790fd465ea274b74943 100644 GIT binary patch delta 81 xcmZ3mocX|V<_(QZJbHTid6|jHU}AGC(^E!NkvtYDHdK)wt}SS4TzF!R0|08q8({zd delta 58 zcmX@GoO!`=<_(QZEPkGj&YOFgo-#sMbu3bBoFFm1jFQ}($p>phH}B(`1(i(Ui8&4c DP)`&J diff --git a/build/.doctrees/niac/NIAC2020minutes.doctree b/build/.doctrees/niac/NIAC2020minutes.doctree index 0f41978cbc6885f6ba00f9f464bb91d4f14426ad..548b2bc1f60af188495cb62fe1c7e5f1d4228311 100644 GIT binary patch delta 89 zcmaEJmZj$$%ZANNJbHTid6|jHU}E!jrjLxMB5PQ<*-=GybK9con*46Hc(X9yc40oo Gn-Tz;_a3bP delta 57 zcmeA<$MWVZ%ZANNEPkGj&YSl$ePo2N_ONiXLs*x&Z6UIg`PPUx8}n^9=3~4m0RUAX B63PGo diff --git a/build/.doctrees/niac/NIAC2020minutes_concluding.doctree b/build/.doctrees/niac/NIAC2020minutes_concluding.doctree index a267900222a64d14ab6d40de7a825c9bb1aec2d4..0a08a4ab7c088d0a31a93c2b0cda39120fd290af 100644 GIT binary patch literal 83399 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 E0o)1J)&Kwi delta 15196 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 diff --git a/build/.doctrees/niac/NIAC2022.doctree b/build/.doctrees/niac/NIAC2022.doctree index 52b7c852ae573c011edd8e0ed426e106413e13a0..2456026b9eeb4dece32f40979fff83d631dec0f3 100644 GIT binary patch delta 85 zcmX?niT&{<_6?0pJbHTid6|jHU}AGC(^E!NkvtYDHdK)wt}Uo)nq7FdyYMjnzXJdc CVI7qK delta 53 xcmaESiT&^;_6?0pEPkGj&YOFgo-#sMbu3bB5Y`f|EfBHh6rSxVJdFSE000Ke5|ID^ diff --git a/build/.doctrees/niac/NIAC2022_fall_minutes.doctree b/build/.doctrees/niac/NIAC2022_fall_minutes.doctree index 7a4efa2cfa44c2c577d66278c2e7be89700dbde0..a2a6d1495fa8ab0d1d87ddcd6b8630946f37df77 100644 GIT binary patch literal 43681 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 s1{v7fMXS`VdsP-E%h$F!=khHzo&sJ(EtDd delta 6693 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 B6KMbd diff --git a/build/.doctrees/niac/NIAC2022_spring.doctree b/build/.doctrees/niac/NIAC2022_spring.doctree index 23754c2638ac7d67adcf2d33f0f295010a05e412..4b1c3f55a8386582e8fe98281864cbcdf8435cd6 100644 GIT binary patch literal 89774 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%0DjtMadiO=!g97LJA>8<>9+5}NTh6I- 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 W4F5a)<1#wr+X$!hWG~>grvDG1p;jIM literal 76268 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 delta 16579 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�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 delta 53 wcmbQz&-SH{Z9^jyi=U^X^X6Wrr;HF*9g7qjgtdfg3q-6rg=c#T52Haf0OIlxx&QzG diff --git a/build/.doctrees/niac/NIACAPI.doctree b/build/.doctrees/niac/NIACAPI.doctree index 159228c0367d83ca286e3dffd47b8efe075bbe7c..acc6297a00987f06341673ba4f5dbcb1f1779df0 100644 GIT binary patch delta 79 ucmbOju`yypBNLCFo_=0tVltT6+{*Nn5mh9QMUo9wq?>CCni^-GbMgQzP#R_c delta 47 pcmdlOF)?C8BNL0Cr=#=cUZ$sv5LO+FBpZaam}?7EEScw=JOF)T4?+L{ diff --git a/build/.doctrees/niac/NIACActionItems.doctree b/build/.doctrees/niac/NIACActionItems.doctree index eb9746d4313cc0026238e03ac52043f399990bbd..f3c2a86929174ae79a14bcd1e606150b6f738acf 100644 GIT binary patch delta 335 zcmbPtoax(4>2N4t#&eaP|u1gf2e6|uSzWHJ0T~Q=c^e1ypFoW}f Lrfklipf3ynyb^B_ delta 290 zcmaENoN3;1rVX2!So}O4ohLU22~W;e65jlj=`j~OJpSwQwE zGe~Ch2L&0JdbZ7m>ijVEY?~9c=YiD%O=8=uqTdfz4>XBw^A)4NVqiNyc&0;X-pL_V zx|=t6X-Y!vW0~w-#W~qvg7RdQ6mz)P>Ir6>H>7+Jf$B1t{Jzo>X2Rx>sx6{$l@Q%A LF#hJ%6P$$s=4NpC diff --git a/build/.doctrees/niac/NIACClasses.doctree b/build/.doctrees/niac/NIACClasses.doctree index 32b8df30e30151bb1b9b78fb64cbbf595b60e6a6..3425b5d32d7538a48a7644eb808335b96e14718b 100644 GIT binary patch literal 46237 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 J`;y`2{{ihH|GoeK literal 42965 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 diff --git a/edit_broken_links.py b/edit_broken_links.py new file mode 100644 index 00000000..84805b05 --- /dev/null +++ b/edit_broken_links.py @@ -0,0 +1,121 @@ +import sys +import os +from PyQt5.QtWidgets import ( + QApplication, QMainWindow, QFileDialog, QTextEdit, QPushButton, QVBoxLayout, QWidget, QLabel, QMessageBox +) +from PyQt5.QtGui import QTextCursor + + +class LinkCheckerEditor(QMainWindow): + def __init__(self): + super().__init__() + self.setWindowTitle("LinkChecker Editor") + self.resize(800, 600) + + self.current_index = 0 + self.linkchecker_data = [] + + # Main layout and central widget + self.fname = QLabel() + self.msg = QLabel() + self.central_widget = QWidget() + self.layout = QVBoxLayout() + + # Widgets + self.instructions = QLabel("Load a LinkChecker output file to begin.") + self.text_edit = QTextEdit() + self.next_button = QPushButton("Next") + self.load_button = QPushButton("Load LinkChecker Output") + + # Configure widgets + self.text_edit.setReadOnly(True) + self.next_button.setEnabled(False) + + # Add widgets to layout + self.layout.addWidget(self.instructions) + self.layout.addWidget(self.fname) + self.layout.addWidget(self.msg) + self.layout.addWidget(self.text_edit) + self.layout.addWidget(self.load_button) + self.layout.addWidget(self.next_button) + self.central_widget.setLayout(self.layout) + self.setCentralWidget(self.central_widget) + + # Connect signals + self.load_button.clicked.connect(self.load_linkchecker_output) + self.next_button.clicked.connect(self.process_next_file) + + def load_linkchecker_output(self): + # Open a file dialog to select the LinkChecker output file + file_path, _ = QFileDialog.getOpenFileName(self, "Select LinkChecker Output File", "", "Text Files (*.txt)") + if not file_path: + return + + try: + with open(file_path, "r") as file: + self.parse_linkchecker_output(file.readlines()) + self.instructions.setText("Loaded LinkChecker output. Click 'Next' to begin editing.") + self.next_button.setEnabled(True) + except Exception as e: + QMessageBox.critical(self, "Error", f"Failed to load file: {e}") + + def parse_linkchecker_output(self, lines): + + self.linkchecker_data = [] + parent_url = None + line_number = 0 + for line in lines: + if line.startswith("Parent URL"): + parts = line.split(",") + parent_url = parts[0].strip().replace('Parent URL file:// ', '') + parent_url = parent_url.replace("Parent URL file:///mnt/c/Users/bergr/github/branches/11/wiki/source/_build/html/","C:/Users/bergr/github/branches/11/wiki/source/") + parent_url = parent_url.replace(".html",".rst") + line_number = int(parts[1].strip().replace('line ', '')) + + if line.startswith("Result Error: "): + error = line + self.linkchecker_data.append((parent_url, line_number, error)) + parent_url = None + + def process_next_file(self): + if self.current_index >= len(self.linkchecker_data): + QMessageBox.information(self, "Done", "All files have been processed.") + self.next_button.setEnabled(False) + return + + parent_url, line_number, error = self.linkchecker_data[self.current_index] + self.fname.setText(parent_url) + self.msg.setText(error) + + self.current_index += 1 + + try: + with open(parent_url, "r") as file: + content = file.readlines() + + # Highlight the specified line + self.text_edit.setPlainText("".join(content)) + cursor = self.text_edit.textCursor() + cursor.movePosition(QTextCursor.Start) + for _ in range(line_number - 1): + cursor.movePosition(QTextCursor.Down) + self.text_edit.setTextCursor(cursor) + self.text_edit.ensureCursorVisible() + self.text_edit.setReadOnly(False) + except Exception as e: + QMessageBox.critical(self, "Error", f"Failed to open file {parent_url}: {e}") + self.process_next_file() # Move to the next file + + def save_current_file(self, file_path): + try: + with open(file_path, "w") as file: + file.write(self.text_edit.toPlainText()) + except Exception as e: + QMessageBox.critical(self, "Error", f"Failed to save file {file_path}: {e}") + + +if __name__ == "__main__": + app = QApplication(sys.argv) + window = LinkCheckerEditor() + window.show() + sys.exit(app.exec_()) diff --git a/source/Makefile b/source/Makefile index 599cbfbc..846a9cfb 100644 --- a/source/Makefile +++ b/source/Makefile @@ -12,10 +12,11 @@ BUILDDIR = _build help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -fetch-logo: - wget -O _static/RUSS_logo.png https://raw.githubusercontent.com/nexusformat/definitions/main/manual/source/img/NeXus-logo.png +# fetch-logo: +# wget -O _static/RUSS_logo.png https://raw.githubusercontent.com/nexusformat/definitions/main/manual/source/img/NeXus-logo.png -html: fetch-logo +#html: fetch-logo +html: # sphinx-build -b html source build/html @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/source/_static/RUSS_logo.png b/source/_static/RUSS_logo.png deleted file mode 100644 index 592677f36ef111517dcaaabdc14eb032c668a36b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229540 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%0ALJD&v9;Sq|KYTA`q!FI(Sf;imcz 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%0Al)fBGayJxcY{iINe)9u3k*mNIYT!L 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. + Code Camp `__. .. rubric:: Topics and Prioritizations :name: topics-and-prioritizations diff --git a/source/codecamps/CodeCamp2020.rst b/source/codecamps/CodeCamp2020.rst index 3ac6c9ec..2aa87977 100644 --- a/source/codecamps/CodeCamp2020.rst +++ b/source/codecamps/CodeCamp2020.rst @@ -32,9 +32,8 @@ CodeCamp2020 tracker `__. Issues for consideration at 2020 NeXus Code Camp will be added to the Code Camp's `Topics - page `__ - (`edit - here `__). + page `__ + (`edit here <../../source/codecamps/CodeCamp2020-topics.rst>`__). These issues will be prioritized on the first day for handling at the Code Camp. @@ -47,7 +46,7 @@ CodeCamp2020 :name: attendees The list of Attendees is - `here `__. + `here `__. .. rubric:: Remote Attendees :name: remote-attendees @@ -741,4 +740,12 @@ CodeCamp2020 | | definitions/pull/751>`__ | | +-------------+--------------------------+-------------------------+ - page source: `GitHub link `__ + page source: `GitHub link `__ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + CodeCamp2020-attendees + CodeCamp2020-topics + CodeCamp2020-2 diff --git a/source/codecamps/Code_Camp_2015.rst b/source/codecamps/Code_Camp_2015.rst index 4d2a098a..dafd9b7a 100644 --- a/source/codecamps/Code_Camp_2015.rst +++ b/source/codecamps/Code_Camp_2015.rst @@ -22,7 +22,7 @@ Code Camp 2015 The event will take place at the `DESY Campus `__ in Hamburg. A PDF version of our site map can be found - `here `__. + `here <../pdfs/NexusCodeCamp2015_map.pdf>`__. .. rubric:: Traveling :name: traveling @@ -115,23 +115,23 @@ Code Camp 2015 Wednesday 18.11.2015 9:00 - 18:00 Code Camp 109 Bldg. 25b ========= ========== ============ ========= ============= - +---------------+------------------------------------+---------------+ - | Time | Activity | Room | - +===============+====================================+===============+ - | 9:00 - 10:00 | Welcome, Discussions and setting | 109 Bldg. 25b | - | | up projects | | - +---------------+------------------------------------+---------------+ - | afternoon | project work | 109 Bldg. 25b | - +---------------+------------------------------------+---------------+ - | 12:00 - 13:00 | lunch | | - +---------------+------------------------------------+---------------+ - | 13:00 - 14:00 | after lunch discussions (report on | | - | | progress), Eiger compression, | | - | | NXmx? | | - +---------------+------------------------------------+---------------+ - | 17:00 - 18:00 | Teleconference `Telco | 109 Bldg. 25 | - | | 20151116 `__ | | - +---------------+------------------------------------+---------------+ + +---------------+----------------------------------------------+---------------+ + | Time | Activity | Room | + +===============+==============================================+===============+ + | 9:00 - 10:00 | Welcome, Discussions and setting | 109 Bldg. 25b | + | | up projects | | + +---------------+----------------------------------------------+---------------+ + | afternoon | project work | 109 Bldg. 25b | + +---------------+----------------------------------------------+---------------+ + | 12:00 - 13:00 | lunch | | + +---------------+----------------------------------------------+---------------+ + | 13:00 - 14:00 | after lunch discussions (report on | | + | | progress), Eiger compression, | | + | | NXmx? | | + +---------------+----------------------------------------------+---------------+ + | 17:00 - 18:00 | Teleconference `Telco_20151116 <../tel | 109 Bldg. 25 | + | | econferences/Telco_20151116.html>`__ | | + +---------------+----------------------------------------------+---------------+ ========= ============================================= ============= Time Activity Room diff --git a/source/codecamps/codecamps.rst b/source/codecamps/codecamps.rst index cdc07df0..d0fa4d60 100644 --- a/source/codecamps/codecamps.rst +++ b/source/codecamps/codecamps.rst @@ -18,10 +18,7 @@ Codecamps Code_Camp_2015 Code_Camp_2017 - CodeCamp2020-2 - CodeCamp2020-attendees CodeCamp2020 - CodeCamp2020-topics CodeCamp2021-1 CodeCamp2022 CodeCampJune2023 diff --git a/source/conf.py b/source/conf.py index 453d87fd..136fed10 100644 --- a/source/conf.py +++ b/source/conf.py @@ -43,7 +43,6 @@ 'sphinx.ext.todo', 'sphinx_tabs.tabs', 'contrib_ext', - 'myst_parser', ] # Show `.. todo` directives in the output @@ -90,11 +89,8 @@ ], } -# html_extra_path = ['pdfs'] - def setup(app): print("Sphinx setup() function is being called") - def copy_asset(source_dir, target_dir): if not os.path.exists(source_dir): print(f"WARNING: The directory {source_dir} does not exist.") @@ -107,18 +103,9 @@ def do_copy(): copy_asset(os.path.join(app.srcdir, 'extra_files'), os.path.join(app.outdir, 'extra_files')) copy_asset(os.path.join(app.srcdir, 'pdfs'), os.path.join(app.outdir, 'pdfs')) - - - - def copy_extra_files(app, exception): - print("Sphinx copy_extra_files() function is being called") - if exception: - return - app.connect('build-finished', lambda app, exception: do_copy()) app.add_css_file('details_summary_hide.css') - # Sapp.connect('build-finished', copy_extra_files) - + # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. diff --git a/source/content/ActiveProjects.rst b/source/content/ActiveProjects.rst deleted file mode 100644 index e2ad9072..00000000 --- a/source/content/ActiveProjects.rst +++ /dev/null @@ -1,16 +0,0 @@ -============== -ActiveProjects -============== - - ---- title: Active Projects permalink: ActiveProjects.html layout: wiki ---- Developers are encouraged to list ongoing projects around NeXus on -this page to enable collaboration in the active phase. Just issue a -corresponding pull reguest to [this -page](https://github.com/nexusformat/wiki/blob/master/content/ActiveProjects.md). -Please also advertise your project on the [NeXus Mailing -List](https://manual.nexusformat.org/mailinglist.html) for wider -visibility. \* example project In order to keep this page up to date, -projects with the last sign of life (on the mailing list) older than 18 -month may be removed. If no live project are found on this page for a -while, this page may be deleted entirely. diff --git a/source/content/FAQ.rst b/source/content/FAQ.rst deleted file mode 100644 index 89adf5e4..00000000 --- a/source/content/FAQ.rst +++ /dev/null @@ -1,96 +0,0 @@ -=== -FAQ -=== - - ---- title: FAQ permalink: FAQ.html layout: wiki --- This is a list of -commonly asked questions concerning the NeXus data format. If you wish -to suggest any more questions to include on this page, please visit the -[discussion page](Talk:FAQ.html "wikilink") and add an entry. How many -facilities use NeXus ----------------------------- This is continually -evolving. It has been used as the instrument format for several years on -some or all instruments at a number of facilities including PSI -(Switzerland), LLB (France), LANSCE (USA), and APS (USA). It will be -used on all future instrumentation at ISIS (UK), NIST (USA), ANSTO -(Australia) and was used by instruments using the new data acquisition -system at IPNS (USA). Finally, it has been formally adopted by major -facilities under construction, the SNS (USA), JPARC (Japan) and Diamond -Light Source (UK). For more information see the -[Facilities](Facilities.html "wikilink") page. NeXus files are only -useful for archiving instrumental data, aren't they? -------------------------------------------------------------------------- -NeXus files can be used to store both extremely simple data, e.g. a -single (x,y) array, and highly complex instrument descriptions. In fact, -the original intention of the NeXus data format was to provide a way of -interchanging data between facilities and their user communities. -However, the power of NeXus hierarchical design has led to its adoption -as a standard archiving format by several major facilities, such as -ISIS, LANSCE, and the SNS. Why aren't NXsample and NXmonitor groups -stored in the NXinstrument group? --------------------------------------------------------------------------- -A NeXus file can contain a number of NXentry groups, which may represent -different scans in an experiment, or sample and calibration runs, etc. -In many cases, though by no means all, the instrument has the same -configuration so that it would be possible to save space by storing the -NXinstrument group once and using multiple links in the remaining -NXentry groups. It is assumed that the sample and monitor information -would be more likely to change from run to run, and so should be stored -at the top level. How do I identify the plottable data? -------------------------------------- Any program whose aim is to -identify plottable data should use the following procedure: 1. Open the -first top level NeXus group with class NXentry. 2. Open the first NeXus -group with class NXdata. 3. Loop through NeXus data items in this group -searching for the item with attribute signal =1. This is the plottable -data. 4. Check to see if this data item has an attribute called axes. -If so, the names are defined as a comma-delimited string within this -attribute in the C-order of the data array, and you can skip the next -two steps. 5. If the axes attribute is not defined, search for the -one-dimensional NeXus data items with attribute primary = 1. \\#These -are the dimension scales to label the axes of each dimension of the -data. 6. Link each dimension scale to the respective data dimension by -the axis attribute (= 1,2,...,rank of data). 7. If necessary, close -the NXdata group, open the next one and repeat steps 3 to 6. 8. If -necessary, close the NXentry group, open the next one and repeat steps 2 -to 7. Consult the NeXus API section, which describes the routines -available to program these operations. In the course of time, generic -NeXus browsers will provide this functionality automatically. Why are -the NeXus classes so complicated? I'll never store all that information -------------------------------------------------------------------------------- -The NeXus classes are essentially glossaries of terms. If you need to -store a piece of information, consult the class definitions to see if it -has been defined. If so, use it. However, it is not compulsory to -include every item that has been defined if it is not relevant to your -experiment. On the other hand, if there is an NeXus definition for your -instrument, you are recommended to include all the compulsory items if -you want to use standard software to analyze your data. I want to -produce an instrument definition. How do I go about it? ------------------------------------------------------------------ The -first thing is to check whether the instrument you are interested in is -already being defined by an instrument editor. Check the list on the -NeXus Instruments page. The [NeXus International Advisory -Committee](NIAC.html "wikilink") is responsible for appointing editors -of special interest groups that wish to become a part of the standard, -so contact the [Executive Secretary](NIAC.html "wikilink"), if a group -does not yet exist. Of course, if you want to produce your own private -definition for personal use, you are free to do so without our approval -although we encourage people to share what they are doing . If you are -an editor, the process of defining an instrument should be quite simple: -1. Make sure that the data you wish to analyze are stored in NXdata -groups. The rest of the definition is to supply what is necessary for -simple analysis of the data, for example, the detector positions and -incident wavelength for a x-ray powder diffraction measurement. 2. Study -the base classes to decide which ones are essential for your definition. -If you believe that a new base class is needed, contact the NIAC with a -proposal. 3. Select those data items and groups that you consider -important in analyzing data from your instrument. Insert the relevant -grep character, as defined in the [NeXus Meta-DTD -format](Metaformat.html "wikilink") to denote the number of occurrences. -If the item is optional (? or \\\*), then it does not need to be -added to your definition. 1. If you encounter any problems because the -classes are not sufficient to describe your configuration, please -contact the NIAC Executive Secretary explaining the problem, and post a -suggestion at the relevant class wiki page. The NIAC is always willing -to consider proposals to amend the base classes. The procedures are -defined in the NIAC constitution. What coordinate system does NeXus use? --------------------------------------- This is described on the -[Coordinate\\_Systems](Coordinate_Systems.html "wikilink") page diff --git a/source/content/Facilities.rst b/source/content/Facilities.rst deleted file mode 100644 index 468feabf..00000000 --- a/source/content/Facilities.rst +++ /dev/null @@ -1,130 +0,0 @@ -========== -Facilities -========== - - ---- title: Facilities permalink: Facilities.html layout: wiki --- Status -of NeXus adoption by facility type. As it is very difficult to keep the -information here current, this page will always at least partially be -out of date. Please send any updates to the [mailing -list](https://manual.nexusformat.org/mailinglist.html). ### Pulsed Muon -Facilities \**ISIS Muon Facility, STFC Rutherford Appleton Laboratory, -UK*\*: The [ISIS facility](https://www.isis.stfc.ac.uk/) has been -producing and using NeXus files on its [muon -spectrometers](https://www.isis.stfc.ac.uk/Pages/Muon-spectroscopy.aspx) -for many years now (see -[Muon\\_Time\\_Differential](Muon_Time_Differential.html "wikilink") -definition). The current definition is in the process of being updated -to allow it to store more complex experiments and also to make it more -similar to the [TOFRaw](TOFRaw.html "wikilink") definition used on the -ISIS neutron instruments. ### X-ray Facilities \**Advanced Photon -Source, Argonne National Laboratory, US*\*: (2015) APS stores some of -its data collection in HDF5 files according to different formats, -including NeXus. These files are written using either C++ code with HDF5 -libraries or python code using the h5py package. No beam lines use the -NAPI in their own code. The [EPICS](http://www.aps.anl.gov/epics) area -detector software has two plug-ins that can write acquired images (and -metadata) into NeXus data files. The \**HDF5*\* file writer plug-in uses -the HDF5 C/C++ library interface and a user-supplied template file to -write NeXus data files. The \**NeXus*\* file writer plug-in uses the -NAPI. Note there are plans to deprecate the \**NeXus*\* plug-in in favor -of the more generic \**HDF5*\* plug-in. Also, some commercial -manufacturers of area detectors in use at the APS now write acquired -images into NeXus data files. \**Diamond Light Source, Oxfordshire, -UK*\*: The data acquisition system [GDA](http://www.opengda.org/) -deployed at most [Diamond](http://www.diamond.ac.uk) beamlines is -capable of writing and reading NeXus. In general beamlines coming online -now collect data in NeXus/HDF5 as the primary format from day one. Some -existing beamlines have already been migrated, more are following on a -case by case basis. It is aimed that all data will be contained in NeXus -for long term archiving. \**European Synchrotron Radiation Facility, -ESRF, FRANCE*\*: The [ESRF](http://www.esrf.eu) is planning on moving to -use Nexus/HDF5 for storing all raw data as part of the ambitious [ESRF -upgrade program](http://www.esrf.eu/Upgrade). The adoption of Nexus/HDF5 -is planned over the time period 2009 to 2012. Currently (2009) the ESRF -is actively exploring Nexus and HDF5 to see what the technical -implications are for data acquisition and analysis programs. The plan is -to where possible adapt data analysis to directly read data generated by -data acquisition programs in Nexus/HDF5 format. The current experience -shows that Nexus alone is not sufficient and extensions to the standard -are required. The extensions are being implemented directly in HDF5. -\**Alba Synchrotron Light Facility, Spain*\*: -[Alba](http://www.cells.es) uses NeXus with HDF5 backend as its main -format for storing data on all its beamlines (although scan data may -also be duplicated in other formats such as -[SPEC](http://www.certif.com/spec_manual/user_1_4_1.html) for -convenience). NeXus files are normally created by the -[Sardana](http://sardana-controls.org) control system. Currently (2014) -only NXscan (and recently NXtomo) compliant files are created in -production, although introduction of other Application Definitions is -being tested. \**SLS, [Paul Scherrer Institut](http://www.psi.ch/), -Switzerland*\*: The [Swiss Light Source](http://www.psi.ch/sls/) is -considering NeXus at some beamlines. The PolLux STXM beamline has been -developing and using new control software since late 2012 which records -all data in NeXus/HDF5 format. This STXM control software (and the NeXus -format with it) is propagating to a number of other STXM beamlines -around the world. The SLS is encouraging Dectris to have their new -detectors (e.g. Eiger) record data in an HDF5 format in order to ease -further adoption of NeXus. ### Neutron Scattering Facilities \**ISIS -Neutron Facility, STFC Rutherford Appleton Laboratory, UK*\*: -Instruments on the [ISIS second target -station](https://www.isis.stfc.ac.uk/) are now generating NeXus files as -per the [TOFRaw](TOFRaw.html "wikilink") definition in parallel with old -ISIS RAW format files. Currently most data analysis is carried out using -the ISIS RAW files, but the new [Mantid data analysis -framework](http://www.mantidproject.org/) supports [TOFRaw](TOFRaw.html -"wikilink") NeXus files and is being increasingly used. The long term -goal is to entirely replace the old ISIS RAW file format on both the -first and second target stations with NeXus files; the rate determining -step for this is the updating of data analysis code to read NeXus files. -\**Lujan Neutron Scattering Center, [Los Alamos National -Laboratory](http://lansce.lanl.gov/lujan), USA*\*: The Lujan Center is -generating NeXus files on all instruments. We are in the process of -making the files consistent with the emerging standards, especially -[TOFRaw](TOFRaw.html "wikilink"). The facility hosts about 65,000 NeXus -files and the number is growing. \**Materials and Life Science Facility, -[J-PARC](http://www.j-parc.jp/index-e.html), Japan*\*: In FY2008, we -have successfully received first proton beam and produced pulsed neutron -and muon beam at Materials and Life Science Facility (MLF) in J-PARC -(http://www.j-parc.jp/index-e.html). Histogrammed data converted from -event-format data and analyzed data are stored in NeXus data format with -metadata, and NeXus is common and shared data format among neutron -scattering instruments and scientists in MLF. NeXus C-API is utilized -through Manyo-Library which is the data analysis framework for neutron -scattering experiments. Data analysis softwares for each instrument have -been developed with C++ and python on Manyo-Library. \**Bragg Institute, -[Australian Nuclear Science and Technology -Organisation](http://www.ansto.gov.au/research/bragg_institute), -Australia*\*: We are currently writing NeXus files in HDF5 on 5 out of 7 -instruments, including Small Angle, Reflectometer, Powder Diffaction and -Residual Stress. NeXus is not being used on Triple Axis and Single -Crystal Diffraction. The next wave of instruments will be predominantly -NeXus. \**Institut Laue Langevin [ILL](http://www.ill.eu), Grenoble -France*\*: As of 2008-2009, the ILL has 2 instruments that generate -NeXus/HDF5 files as base format: the Disk chopper time-of-flight cold -neutrons spectrometer IN5 [IN5](http://www.ill.fr/in5) and Time of -Flight Neutron Spectrometer for Small Angle Inelastic themal neutron -Scattering BRISP [BRISP](http://www.ill.fr/brisp). Volume of data (Gb's) -is substantially higher than what we used to have at the ILL before - -because of large PSD detectors - and NeXus was then the only sensible -choice for storage. We then use -[LAMP](http://www.ill.eu/instruments-support/computing-for-science/cs-software/all-software/lamp/), -and Matlab tools (incl. Mslice from Oxford/ISIS) to read and convert -data sets. [McStas](http://www.mcstas.org) is also used to model these -instruments, and may also generate NeXus files. \**Spallation Neutron -Source [SNS](http://neutrons.ornl.gov/), Oak Ridge, TN, USA*\*: SNS is -using [TOFRaw](TOFRaw.html "wikilink") for storing histogram based data -from all instruments. We are working towards storing the raw event data -in NeXus instead as the data acquisition saves data in that form -already. \**SINQ, [Paul Scherrer Institute](http://www.psi.ch), -Switzerland*\*: At SINQ most data files are stored in NeXus format, as -of January, 5, 2009 1104153 files were collected. As PSI pioneered NeXus -file writing, most files do not adhere to the newest standards for NeXus -files anymore. This will be rectified as soon as more progress on -application definitions has been made. \**Neutronenquelle Heinz -Maier-Leibnitz [FRM II](http://www.frm2.tum.de), Germany*\*: -Introduction of NeXus is under discussion since long; as of 2011, NeXus -is used by zero (0) instruments. \**European Spallation Source -[ESS](http://www.europeanspallationsource.se), Sweden*\*: Current plans -foresee all raw data to be stored in NeXus. Processed data is set to -follow that model. diff --git a/source/content/OO-NeXus.rst b/source/content/OO-NeXus.rst index 5a91b477..e6b4d472 100644 --- a/source/content/OO-NeXus.rst +++ b/source/content/OO-NeXus.rst @@ -30,7 +30,7 @@ objects. ### Path 1: OO Rework of the NeXus Classes This means to perform a full object oriented analysis of the NeXus base classes using polymorphism and inheritance. This was suggested by Darren Kelly at the NIAC meeting 2006 at ILL. An example of a [possible class -hierarchy](media:NeXusOBJ.pdf.html "wikilink") was given by Mark +hierarchy](media:NeXusOBJ.pdf "wikilink") was given by Mark Koennecke at the NIAC meeting 2007 at HMI. There are some advantages to this approach: - Different things, like different detectors, have different names and this makes the base classes easier to understand. It diff --git a/source/content/TOFRaw.rst b/source/content/TOFRaw.rst new file mode 100644 index 00000000..e02ee750 --- /dev/null +++ b/source/content/TOFRaw.rst @@ -0,0 +1,1780 @@ +====== +TOFRaw +====== + + +.. container:: content + + .. container:: page + + .. rubric:: TOFRaw + :name: tofraw + :class: page-title + + NXTOFRAW - A proposal for a NeXus Time-of-Flight Raw Data File + Format + + .. rubric:: Introduction + :name: introduction + + `NeXus `__ is moving onto the idea of + inherited incremental definitions as discussed at the last meeting + of the `NeXus International Advisory Committee + (NIAC) <../niac/niac.html>`__ " for example with powder diffractometers + there is a definition for both time focussing and total scattering + with one being a subset of the other; a file can conform to one or + both. The initial work on this definition comes from discussions + between `SNS `__, + `J-PARC `__ and + `ISIS `__ - the three facilities are + interested in having a unified base for all instruments to allow + for low level instrument debugging tools to be used, without + change, in a given facility. Further discussions occured in the + TOF Breakout Group at NIAC 2006 + + An example file is available in `HDF4 + (2MB) `__, + `HDF5 + (2MB) `__ + and + `XML(16MB) `__ + format as well as a `basic + DTD `__. + + For historical information see the `draft proposal for an ISIS + NeXus based RAW data file format <../pdfs/Isis_nexus_016.pdf>`__. + + .. rubric:: Goal of the Definition + :name: goal-of-the-definition + + The definition/format should: + + - Be general i.e. not specific to any particular instrument type + and so can be used as a common root/parent format across all + instruments at a facility + - allow the sharing of diagnostic and "first look" data/detector + display programs between the facilities. + - provide a common input format to metadata capture programs + (such as the ISIS ICAT search interface) + + With the above in mind the instrument components of most + importance are the ones related to the detector, data, user, + sample and sample conditions; other instrument components are, of + course, needed for analysis but will be covered by specific NeXus + instrument definitions. The NeXus classes we will ultimately + consider are then: + + .. container:: language-plaintext highlighter-rouge + + .. container:: highlight + + NXroot + NXdata + NXdetector + NXentry + NXgeometry + NXinstrument + NXlog + NXmoderator + NXmonitor + NXsample + NXuser + NXevent_data + NXsource + NXdetector_group (proposed) + + Some of these classes, such as NXgeometry, are taken directly from + what was ratified by the `NIAC <../niac/niac.html>`__. + + .. rubric:: Conventions Used in this Document + :name: conventions-used-in-this-document + + A tabular format is used for ease of viewing and printing rather + than the `NeXus XML meta-DTD format `__. The Name + column in a table identifies an item in an instance of a NeXus + class. Items can have extra "meta data" associated with them, + which are called attributes " these, if any, are listed in the + next few lines in the attributes column. Any variables in the + attributes column are always attached to the previous variable in + the Name column above them; if the Name of the variable is the + same as the class (e.g. NXfile), then the attributes are + associated with an instance of that class (global) and not to any + of its specific members. + + .. rubric:: Identifying Mandatory and Optional Components + :name: identifying-mandatory-and-optional-components + + The following convention will be used: + + - Variables in **bold** in the Name column of tables are + mandatory " they must be present in ALL NeXus files; otherwise + they are optional and their inclusion will depend on the + instrument, experiment or presence of other items in the class + (see the class description of usage) + - Variables in *{italics}* in the Name column are examples of + names and any variable name can in fact be used; variable names + in normal type mean that exact name must be used + - Anything in red is currently an extension to NeXus + + This information is also included in a RE column (the name derives + from the fact that a "Regular Expression" is used here in the `XML + DTD format `__). Thus: + + +-----------------+-----------+-----------------+----------------+ + | Font/style in | RE Column | Meaning | XML DTD symbol | + | Name Column | | | | + +=================+===========+=================+================+ + | Something | 0/1 | A single | ? | + | | | instance of | | + | | | this variable | | + | | | may be present | | + | | | (optional) " if | | + | | | it is, it must | | + | | | be called | | + | | | "something" | | + +-----------------+-----------+-----------------+----------------+ + | **Something** | 1 | A single | | + | | | instance of | | + | | | this variable | | + | | | must be present | | + | | | (mandatory) and | | + | | | called | | + | | | "something" | | + +-----------------+-----------+-----------------+----------------+ + | *{Something}* | 0+ | Zero or more | - | + | | | variables of | | + | | | this type/class | | + | | | may be present | | + | | | (optional) and | | + | | | can have any | | + | | | unique name(s) | | + +-----------------+-----------+-----------------+----------------+ + | **{Something}** | 1+ | One or more | + | + | | | variables of | | + | | | this type/class | | + | | | must be present | | + | | | (mandatory), | | + | | | but can have | | + | | | any name(s) | | + +-----------------+-----------+-----------------+----------------+ + + The above convention dictates that the name for any item that + occurs only 0 or 1 times is fixed; this is not required by the + current NeXus standard, but would add clarity and ease of location + if followed. + + .. rubric:: Naming + :name: naming + + We will try and name logged variables (type NXlog) such that they + end in the \_log suffix + + .. rubric:: NeXus Classes + :name: nexus-classes + + .. rubric:: NXroot + :name: nxroot + + The root is not a real class in the NeXus file, it is a convenient + name under which to group the global attributes of the file. This + is taken directly from the NeXus technical reference without + change. + + +-----+---------+---------------+---------+-------+---------------+ + | RE | Name | Attribute | Type | Value | Description | + +=====+=========+===============+=========+=======+===============+ + | 1 | | NeXus_version | NX_CHAR | | | + +-----+---------+---------------+---------+-------+---------------+ + | 0/1 | | HDF_version | NX_CHAR | | | + +-----+---------+---------------+---------+-------+---------------+ + | 0/1 | | HDF5_version | NX_CHAR | | | + +-----+---------+---------------+---------+-------+---------------+ + | 0/1 | | XML_version | NX_CHAR | | | + +-----+---------+---------------+---------+-------+---------------+ + | 1 | | creator | NX_CHAR | | | + +-----+---------+---------------+---------+-------+---------------+ + | 1 | | file_name | NX_CHAR | | Original file | + | | | | | | name | + +-----+---------+---------------+---------+-------+---------------+ + | 1 | | file_time | NX_CHAR | | Original | + | | | | | | creation time | + | | | | | | of file | + +-----+---------+---------------+---------+-------+---------------+ + | 1 | | fil | NX_CHAR | | Last time | + | | | e_update_time | | | file contents | + | | | | | | were changed | + +-----+---------+---------------+---------+-------+---------------+ + | 1 | | in | NX_CHAR | | Initial | + | | | itial\_format | | | format file | + | | | | | | was created | + | | | | | | in (HDF4,HDF5 | + | | | | | | or XML) | + +-----+---------+---------------+---------+-------+---------------+ + | 1+ | {entry} | | NXentry | | | + +-----+---------+---------------+---------+-------+---------------+ + | 0/1 | | unique_id | NX_CHAR | | UUID to | + | | | | | | uniquely | + | | | | | | identify file | + | | | | | | (even if name | + | | | | | | changes | + | | | | | | .etc). Maybe | + | | | | | | useful to | + | | | | | | have it in | + | | | | | | the NXentry | + | | | | | | instead so | + | | | | | | that you can | + | | | | | | indentify | + | | | | | | where an | + | | | | | | entry comes | + | | | | | | from even if | + | | | | | | it is copied | + | | | | | | into a new | + | | | | | | file? | + +-----+---------+---------------+---------+-------+---------------+ + + .. rubric:: NXentry + :name: nxentry + + This is the top level group in a file that contains a complete set + of information (e.g. a "run") - raw, reduced, and analyzed data + can occur in the same file, each as a separate NXentry . The + definition below is taken from the NeXus technical reference + changing some elements to be required rather an optional. + Additional items are highlighted in + + red + . + + This definition covers a single run experiment - extensions are + proposed for `scan type experiments `__ + + .. rubric:: NXentry + :name: nxentry-1 + + +------+----------+----------+----------+----------+----------+ + | RE | Name | A | Type | Value | Des | + | | | ttribute | | | cription | + +======+==========+==========+==========+==========+==========+ + | 0/1 | title | | NX_CHAR | | run | + | | | | | | title | + +------+----------+----------+----------+----------+----------+ + | 1 | de | | NX_CHAR | | Official | + | | finition | | | | NeXus | + | | | | | | def | + | | | | | | initions | + | | | | | | this | + | | | | | | file | + | | | | | | conforms | + | | | | | | to | + +------+----------+----------+----------+----------+----------+ + | 1 | | URL | NX_CHAR | | | + +------+----------+----------+----------+----------+----------+ + | 1 | | version | NX_CHAR | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | d | | NX_CHAR | | Local | + | | efinitio | | | | de | + | | n\_local | | | | finition | + | | | | | | this | + | | | | | | file | + | | | | | | also | + | | | | | | conforms | + | | | | | | to " | + | | | | | | this | + | | | | | | will | + | | | | | | describe | + | | | | | | the | + | | | | | | meaning | + | | | | | | of any | + | | | | | | ad | + | | | | | | ditional | + | | | | | | local | + | | | | | | data | + | | | | | | items | + | | | | | | etc. | + +------+----------+----------+----------+----------+----------+ + | 1 | | url | NX_CHAR | | | + +------+----------+----------+----------+----------+----------+ + | 1 | | version | NX_CHAR | | This | + | | | | | | would | + | | | | | | co | + | | | | | | rrespond | + | | | | | | to the | + | | | | | | ISIS | + | | | | | | Muon | + | | | | | | IDF | + | | | | | | _Version | + +------+----------+----------+----------+----------+----------+ + | 1 | st | | ISO8601 | | Time | + | | art_time | | | | data | + | | | | | | co | + | | | | | | llection | + | | | | | | started | + +------+----------+----------+----------+----------+----------+ + | 1 | end_time | | ISO8601 | | Time | + | | | | | | data | + | | | | | | co | + | | | | | | llection | + | | | | | | ended | + +------+----------+----------+----------+----------+----------+ + | 1 | duration | | NX_FLOAT | | wall | + | | | | | | clock | + | | | | | | time | + | | | | | | tr | + | | | | | | anspired | + | | | | | | (end " | + | | | | | | start) | + +------+----------+----------+----------+----------+----------+ + | 1 | | units | NX_CHAR | second | | + +------+----------+----------+----------+----------+----------+ + | 1 | collecti | | NX_FLOAT | | Time | + | | on\_time | | | | tr | + | | | | | | anspired | + | | | | | | actually | + | | | | | | co | + | | | | | | llecting | + | | | | | | data | + | | | | | | i.e. | + | | | | | | taking | + | | | | | | out time | + | | | | | | when | + | | | | | | co | + | | | | | | llection | + | | | | | | was | + | | | | | | s | + | | | | | | uspended | + | | | | | | due to | + | | | | | | e.g. | + | | | | | | tem | + | | | | | | perature | + | | | | | | out of | + | | | | | | range | + +------+----------+----------+----------+----------+----------+ + | 1 | | units | NX_CHAR | second | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | proto | | NX_FLOAT | | | + | | n_charge | | | | | + +------+----------+----------+----------+----------+----------+ + | 1 | | units | NX_CHAR | micro | | + | | | | | Amp*hour | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | ra | | NX_INT | | number | + | | w_frames | | | | of | + | | | | | | proton | + | | | | | | pulses | + | | | | | | on | + | | | | | | target | + +------+----------+----------+----------+----------+----------+ + | 0/1 | goo | | NX_INT | | number | + | | d_frames | | | | of | + | | | | | | proton | + | | | | | | pulses | + | | | | | | used | + | | | | | | (i.e. | + | | | | | | not | + | | | | | | vetoed) | + +------+----------+----------+----------+----------+----------+ + | 0/1 | total | | NX_INT | | Total | + | | \_counts | | | | number | + | | | | | | of | + | | | | | | detector | + | | | | | | counts | + | | | | | | (events) | + +------+----------+----------+----------+----------+----------+ + | 1 | exper | | NX_CHAR | | proposal | + | | iment_id | | | | number | + | | entifier | | | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | di | | NX_CHAR | | Keyword | + | | scipline | | | | domain | + | | | | | | (e.g. | + | | | | | | ch | + | | | | | | emistry, | + | | | | | | as | + | | | | | | tronomy, | + | | | | | | ecology, | + | | | | | | ) | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + | | | | | | (p | + | | | | | | roposal, | + | | | | | | updated | + | | | | | | during | + | | | | | | exp | + | | | | | | eriment, | + | | | | | | after, | + | | | | | | ) | + +------+----------+----------+----------+----------+----------+ + | 0/1 | keyword | | NX_CHAR | | Keywords | + | | | | | | defined | + | | | | | | for this | + | | | | | | study. | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | keyword | | NX_CHAR | | A | + | | \_source | | | | pointer | + | | | | | | to a | + | | | | | | r | + | | | | | | eference | + | | | | | | work | + | | | | | | p | + | | | | | | roviding | + | | | | | | the | + | | | | | | de | + | | | | | | finition | + | | | | | | of the | + | | | | | | re | + | | | | | | stricted | + | | | | | | vo | + | | | | | | cabulary | + | | | | | | of which | + | | | | | | the | + | | | | | | keyword | + | | | | | | list is | + | | | | | | a | + | | | | | | subset. | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | subject | | NX_CHAR | | Subject | + | | | | | | categor | + | | | | | | isations | + | | | | | | for this | + | | | | | | study | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | desc | | NX_CHAR | | Brief | + | | ription\ | | | | summary | + | | _summary | | | | of the | + | | | | | | exp | + | | | | | | eriment, | + | | | | | | i | + | | | | | | ncluding | + | | | | | | key | + | | | | | | ob | + | | | | | | jectives | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | des | | NXnote | | Des | + | | cription | | | | cription | + | | | | | | of the | + | | | | | | full | + | | | | | | ex | + | | | | | | periment | + | | | | | | ( | + | | | | | | document | + | | | | | | in pdf, | + | | | | | | latex, | + | | | | | | ) | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | req | | NX_CHAR | | Special | + | | uirement | | | | requ | + | | | | | | irements | + | | | | | | of | + | | | | | | in | + | | | | | | strument | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | publ | | NX_CHAR | | List of | + | | ications | | | | pub | + | | | | | | lication | + | | | | | | related | + | | | | | | to the | + | | | | | | proposal | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | facili | | NX_CHAR | | Facility | + | | ty\_acce | | | | access | + | | ss\_type | | | | type | + | | | | | | (normal, | + | | | | | | rapid | + | | | | | | access, | + | | | | | | p | + | | | | | | rogramme | + | | | | | | access | + | | | | | | ) | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 0/1 | g | | NX_CHAR | | Id | + | | rant\_id | | | | entifier | + | | | | | | of the | + | | | | | | funding | + | | | | | | grant. | + +------+----------+----------+----------+----------+----------+ + | 1 | | i | NX_CHAR | propsal | Source | + | | | nfo\_src | | | of the | + | | | | | | inf | + | | | | | | ormation | + +------+----------+----------+----------+----------+----------+ + | 1 | ru | | NX_INT | | Unique | + | | n_number | | | | number | + | | | | | | ide | + | | | | | | ntifying | + | | | | | | this | + | | | | | | data | + | | | | | | co | + | | | | | | llection | + +------+----------+----------+----------+----------+----------+ + | 0 /1 | r | | NX_CHAR | | | + | | un_cycle | | | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | prog | | NX_CHAR | | | + | | ram_name | | | | | + +------+----------+----------+----------+----------+----------+ + | 1 | | version | NX_CHAR | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | | comm | NX_CHAR | | | + | | | and_line | | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | relea | | NX_CHAR | | Date of | + | | se\_date | | | | the | + | | | | | | public | + | | | | | | release | + | | | | | | of the | + | | | | | | data. | + | | | | | | (f | + | | | | | | ile_time | + | | | | | | + X | + | | | | | | years) | + +------+----------+----------+----------+----------+----------+ + | 0/1 | revision | | NX_CHAR | | Revision | + | | | | | | id of | + | | | | | | the file | + | | | | | | due to | + | | | | | | re-cali | + | | | | | | bration, | + | | | | | | repro | + | | | | | | cessing, | + | | | | | | new | + | | | | | | a | + | | | | | | nalysis, | + | | | | | | new | + | | | | | | in | + | | | | | | strument | + | | | | | | de | + | | | | | | finition | + | | | | | | format, | + | | | | | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | notes | | NXnote | | User | + | | | | | | notes | + +------+----------+----------+----------+----------+----------+ + | 0/1 | t | | NXnote | | | + | | humbnail | | | | | + +------+----------+----------+----------+----------+----------+ + | 1 | | m | NX_CHAR | image/\* | | + | | | ime_type | | | | + +------+----------+----------+----------+----------+----------+ + | 0+ | {c | | NX | | | + | | haracter | | characte | | | + | | isation} | | rization | | | + +------+----------+----------+----------+----------+----------+ + | 1+ | {user1, | | NXuser | | | + | | user2, } | | | | | + +------+----------+----------+----------+----------+----------+ + | 1 | {sample} | | NXsample | | | + +------+----------+----------+----------+----------+----------+ + | 1 | {ins | | NXin | | | + | | trument} | | strument | | | + +------+----------+----------+----------+----------+----------+ + | 1+ | { | | N | | | + | | monitor} | | Xmonitor | | | + +------+----------+----------+----------+----------+----------+ + | 1+ | {data} | | NXdata | | | + +------+----------+----------+----------+----------+----------+ + | 0/1 | { | | N | | | + | | process} | | Xprocess | | | + +------+----------+----------+----------+----------+----------+ + + .. rubric:: NXuser + :name: nxuser + + As denoted in NXentry, there can be multiple NXuser, one for each + person involved with an experiment. This definition of user + requires only a name and a facility identifier and this is taken + directly from the NeXus technical reference changing some elements + to be required rather an optional. + + +-----+-----------+-----------+---------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+=========+===========+===========+ + | 1 | name | | NX_CHAR | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | | info\_src | NX_CHAR | "p | Source of | + | | | | | roposal", | the | + | | | | | " | in | + | | | | | updated", | formation | + | | | | | "co | | + | | | | | rrected", | | + | | | | | "logging" | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | role | | NX_CHAR | "local_c | | + | | | | | ontact"," | | + | | | | | Principle | | + | | | | | Inves | | + | | | | | tigator", | | + | | | | | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | af | | NX_CHAR | | | + | | filiation | | | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | address | | NX_CHAR | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | telepho | | NX_CHAR | | | + | | ne_number | | | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | f | | NX_CHAR | | | + | | ax_number | | | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | email | | NX_CHAR | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 1 | facilit | | NX_CHAR | | | + | | y_user_id | | | | | + +-----+-----------+-----------+---------+-----------+-----------+ + | 0/1 | affili | | NX_CHAR | | | + | | ation\_id | | | | | + +-----+-----------+-----------+---------+-----------+-----------+ + + .. rubric:: NXsample + :name: nxsample + + This list is limited to items that were desired by the group. See + the NeXus technical reference for a full list of possible items. + + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | RE | Name | Attr | Type | Value | D | | | | + | | | ibute | | | escri | | | | + | | | | | | ption | | | | + +=====+=======+=======+=======+=======+=======+=======+=======+===+ + | 1 | Name | | NX | | | | | | + | | | | _CHAR | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | ident | | NX | | Ide | | | | + | | ifier | | _CHAR | | ntity | | | | + | | | | | | given | | | | + | | | | | | to | | | | + | | | | | | the | | | | + | | | | | | s | | | | + | | | | | | ample | | | | + | | | | | | by | | | | + | | | | | | h | | | | + | | | | | | ealth | | | | + | | | | | | ph | | | | + | | | | | | ysics | | | | + | | | | | | or | | | | + | | | | | | s | | | | + | | | | | | ample | | | | + | | | | | | en | | | | + | | | | | | viron | | | | + | | | | | | ment. | | | | + | | | | | | ( | | | | + | | | | | | Could | | | | + | | | | | | be a | | | | + | | | | | | bar | | | | + | | | | | | code) | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | | Type | NX | e. | | | | | + | | | | _CHAR | g."ba | | | | | + | | | | | rcode | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | c | | NX | | | | | | + | | hemic | | _CHAR | | | | | | + | | al_fo | | | | | | | | + | | rmula | | | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | mass | | NX | | | | | | + | | | | _FLOAT| | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | | units | NX | | | | | | + | | | | _CHAR | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | v | | NX | | | | | | + | | olume | | _FLOAT| | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | | units | NX | | | | | | + | | | | _CHAR | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | geo | | NXgeo | | | | | | + | | metry | | metry | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | n | | NX | solid | p | l | s | | + | | ature | | _CHAR | | owder | iquid | ingle | | + | | | | | | | | cr | | + | | | | | | | | ystal | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | p | | NX | | S | | | | + | | repar | | _CHAR | | ample | | | | + | | ation | | | | handl | | | | + | | | | | | ing/p | | | | + | | | | | | repar | | | | + | | | | | | ation | | | | + | | | | | | prior | | | | + | | | | | | to | | | | + | | | | | | exper | | | | + | | | | | | iment | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | c | | N | | S | | | | + | | hange | | X_INT | | ample | | | | + | | r_pos | | | | ch | | | | + | | ition | | | | anger | | | | + | | | | | | pos | | | | + | | | | | | ition | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | samp | | NX | | | | | | + | | le\_h | | _CHAR | | | | | | + | | older | | | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | pr | | IS | | | | | | + | | epara | | O8601 | | | | | | + | | tion\ | | | | | | | | + | | _date | | | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | thic | | NX | | | | | | + | | kness | | _FLOAT| | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | t | | NX | | | | | | + | | emper | | _FLOAT| | | | | | + | | ature | | | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + + .. rubric:: Sample environment parameters + :name: sample-environment-parameters + + By these we mean "temperature", "magnetic_field" etc. which may be + considered to be outside of the remit of this document, but we + will just add a reminder that if the file represents a scan then + these values will be annotated as described in the NXentry + section. + + .. rubric:: NXinstrument + :name: nxinstrument + + This is the class that contains all information about instrument + components except the monitors and sample (which are just inside + the NXentry). This is taken directly from the NeXus technical + reference changing some elements to be required rather an + optional. + + +-----+----------+------------+------------+-------+------------+ + | RE | Name | Attribute | Type | Value | D | + | | | | | | escription | + +=====+==========+============+============+=======+============+ + | 1 | name | | NX_CHAR | | | + +-----+----------+------------+------------+-------+------------+ + | 1 | | short_name | NX_CHAR | | | + +-----+----------+------------+------------+-------+------------+ + | 1 | beamline | | NX_CHAR | | Beamline | + | | | | | | instrument | + | | | | | | is | + | | | | | | attached | + | | | | | | to | + +-----+----------+------------+------------+-------+------------+ + | 0/1 | | | NXsource | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXdi | | | + | | | | sk_chopper | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXfer | | | + | | | | mi_chopper | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXvelocit | | | + | | | | y_selector | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXguide | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXcrystal | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | N | | | + | | | | Xaperature | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXfilter | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NX | | | + | | | | collimator | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NX | | | + | | | | attenuator | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | N | | | + | | | | Xpolarizer | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXflipper | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXmirror | | | + +-----+----------+------------+------------+-------+------------+ + | 1+ | | | NXdetector | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | NXdetec | | | + | | | | tor\_group | | | + +-----+----------+------------+------------+-------+------------+ + | 0+ | | | N | | | + | | | | Xbeam_stop | | | + +-----+----------+------------+------------+-------+------------+ + + .. rubric:: NXmonitor + :name: nxmonitor + + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | RE | Name | Attribute | Type | Value | De | | + | | | | | | scription | | + +=====+===========+===========+===========+===========+===========+===+ + | 0/1 | mode | | NX_CHAR | monitor | timer | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | preset | | NX_FLOAT | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | distance | | NX_FLOAT | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | | units | NX_CHAR | metre | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | range | | NX | | | | + | | | | _FLOAT[2] | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | units | NX_CHAR | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | integral | | NX_FLOAT | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | units | NX_CHAR | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | int | | NXlog | | Time log | | + | | egral_log | | | | of | | + | | | | | | monitor | | + | | | | | | integrals | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | type | | NX_CHAR | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | time | | NX_F | | | | + | | _of_flight| | LOAT[i+1] | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | units | NX_CHAR | mi | | | + | | | | | crosecond | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | e | | NX | | | | + | | fficiency | | _FLOAT[i] | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | data | | NX | | | | + | | | | _FLOAT[i] | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | units | NX_CHAR | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | signal | NX_INT | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | axes | NX_CHAR | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | sampled | | NX_FLOAT | | | | + | | _fraction | | | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 1 | | units | NX_CHAR | unitless | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | geometry | | N | | | | + | | | | Xgeometry | | | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | monito | | NX_INT | | If | | + | | r\_number | | | | monitors | | + | | | | | | are | | + | | | | | | numbered, | | + | | | | | | this is | | + | | | | | | what it | | + | | | | | | is known | | + | | | | | | as | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + | 0/1 | detecto | | NX_INT | | Detector | | + | | r\_number | | | | /spectrum | | + | | | | | | number | | + | | | | | | for this | | + | | | | | | monitor | | + +-----+-----------+-----------+-----------+-----------+-----------+---+ + + Note that for a position sensitive monitor detector_number etc. + will need to be an array and NXmonitor will have other fields and + look more like NXdetector. + + .. rubric:: NXdetector + :name: nxdetector + + We will now look at possible representations of the detector " we + will start with a general one and then consider the special case + of an area detector. Though the general (point) detector + representation would cover all cases, if the detector is + physically "rectangular" in nature there are advantages in using + this symmetry in the representation. Which representation is used + is recorded in the layout attribute + + .. rubric:: Point Detector + :name: point-detector + + The general representation is to consider a detector as just a + group of pixels arranged in no particular order. Each pixel will + be identified by a unique single index i and then the following + information will be stored: + + +-----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+===========+===========+===========+ + | 1 | layout | | NX_CHAR | point | How | + | | | | | | detector | + | | | | | | is | + | | | | | | re | + | | | | | | presented | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | detect | | NX_INT[i] | | | + | | or_number | | | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | po | | NX | | | + | | lar_angle | | _FLOAT[i] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | azimut | | NX | | | + | | hal_angle | | _FLOAT[i] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | so | | NX | | | + | | lid_angle | | _FLOAT[i] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | distance | | NX | distance | | + | | | | _FLOAT[i] | from | | + | | | | | sample | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | time | | NX_F | | Bin | + | | _of_flight| | LOAT[j+1] | | b | + | | | | | | oundaries | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | units | NX_CHAR | Mic | | + | | | | | ro.second | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | time of_f | | NX | | in DAQ | + | | light_raw | | _INT[j+1] | | clock | + | | | | | | pulses | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | units | NX_CHAR | Clo | | + | | | | | ck_pulses | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | frequency | NX_FLOAT | | Clock | + | | | | | | frequency | + | | | | | | of | + | | | | | | ac | + | | | | | | quisition | + | | | | | | system | + | | | | | | (Hz) | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | data | | NX_F | | | + | | | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | geometry | | NXge | | These | + | | | | ometry[i] | | will be | + | | | | | | relative | + | | | | | | to | + | | | | | | "Origin" | + | | | | | | below | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | gro | | NX_INT[i] | | Detector | + | | up\_index | | | | grouping | + | | | | | | in | + | | | | | | formation | + | | | | | | " see | + | | | | | | NXdetect | + | | | | | | or_groups | + | | | | | | class | + +-----+-----------+-----------+-----------+-----------+-----------+ + + The detector data would be plotted with axes (detector number, + tof) by any program. An NXgeometry object included in the detector + contains arrays that store the position and orientation of each + pixel. As this detector representation imposes no constraint on + the relationship between pixels, a single NXdetector could + represent the entire instrument (so long as all detectors have the + same time of_flight) " however in practice an NXdetector and + NXdata would be created for each bank. The "origin" object + provides a reference point for the pixel geometries " the "shape" + part of origin is the bounding box of the entire detector/detector + bank. + + .. rubric:: Linear Detector + :name: linear-detector + + Here we mean a collection of linear straight strips e.g. tubes. We + have two indicies: **j** will label the strip/tube and **i** the + position along the tube. All tubes must have the same number of + pixels; if not, you must use the point detector representation + above. The tubes do not need to be parallel - they just need to be + straight. Thus: + + +-----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+===========+===========+===========+ + | 1 | layout | | NX_CHAR | linear | How | + | | | | | | detector | + | | | | | | is | + | | | | | | re | + | | | | | | presented | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | detect | | NX | | | + | | or_number | | _INT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | po | | NX_F | | | + | | lar_angle | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | azimut | | NX_F | | | + | | hal_angle | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | distance | | NX_F | | | + | | | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | time | | NX_F | | Bin | + | | _of_flight| | LOAT[k+1] | | b | + | | | | | | oundaries | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | Units | NX_CHAR | Mic | | + | | | | | ro.second | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | raw_time | | NX | | in DAQ | + | | _of_flight| | _INT[k+1] | | clock | + | | | | | | pulses | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | Units | NX_CHAR | Clo | | + | | | | | ck_pulses | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | Frequency | NX_FLOAT | Clock | | + | | | | | frequency | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | data | | NX_FLO | | | + | | | | AT[i,j,k] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | geometry | | NXge | | These | + | | | | ometry[i] | | will be | + | | | | | | relative | + | | | | | | to | + | | | | | | "Origin" | + | | | | | | below | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | pix | | NX | | 0 at | + | | el_offset | | _FLOAT[j] | | origin | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | p | | NX | | | + | | ixel_size | | _FLOAT[j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | | | | | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + + By specifying both size and offset "dead space" between pixels can + be accounted for. + + This looks similar to a point detector, but with two array indices + rather than one. However note the geometry information is + different - as the tubes are straight we need only specify a + location of the tube centre and an offset along the tube. Thus: + + - NXgeometry geometry[i] # defines tube/strip centre; each + NXshape member give the tube size and shape; each NXorientation + member rotates the axes such that **x** points along each tube. + - pixel_offset[j] # offset from tube centre of each pixel centre + - pixel_size[j] # size of each pixel + + .. rubric:: Area Detector + :name: area-detector + + A flat rectangular area detector could be described by the + "general" representation above, but taking account of the two + dimensional symmetry of the detector allows several potential + savings in the calculation of angles and in plotting time of the + data. An area detector will have indices (i,j) indexing each pixel + with i along the local detector "x" axis and j along the local + detector "y". In the case of curved detectors the offsets and + sizes are to be considered as arc lengths along the face of the + detector. An offset of "0" is the origin of the detector and the + NXgeometry named "origin" describes the geometry of the entire + detector: the NXtranslation part describes the position of the + detector, the NXorientation part defines the local coordinates + (local x and y axes) with respect to the global position, and the + NXshape describe the size (bounding box) and topology of the + detector as a whole. The NXgeometry named "geometry" describes the + pixels and their shape (assuming that they are uniform). The + necessary shapes are: rectangular prism, cylindrical slice, and + spherical slice. + + Below are the three cases for describing the pixels on a detector. + + +-----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+===========+===========+===========+ + | 1 | layout | | NX_CHAR | area | How | + | | | | | | detector | + | | | | | | is | + | | | | | | re | + | | | | | | presented | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | detect | | NX | | | + | | or_number | | _INT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | po | | NX_F | | | + | | lar_angle | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | azimut | | NX_F | | | + | | hal_angle | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | distance | | NX_F | | | + | | | | LOAT[i,j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | time | | NX_F | | Bin | + | | _of_flight| | LOAT[k+1] | | b | + | | | | | | oundaries | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | Units | NX_CHAR | Mic | | + | | | | | ro.second | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | raw_time | | NX | | in DAQ | + | | _of_flight| | _INT[k+1] | | clock | + | | | | | | pulses | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | Units | NX_CHAR | Clo | | + | | | | | ck_pulses | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | | Frequency | NX_FLOAT | Clock | | + | | | | | frequency | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | data | | NX_FLO | | | + | | | | AT[i,j,k] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | geometry | | NXgeom | | These | + | | | | etry[i,j] | | will be | + | | | | | | relative | + | | | | | | to | + | | | | | | "Origin" | + | | | | | | below | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | x_pix | | NX | | 0 at | + | | el_offset | | _FLOAT[i] | | origin | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | x_p | | NX | | | + | | ixel_size | | _FLOAT[i] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | y_pix | | NX | | 0 at | + | | el_offset | | _FLOAT[j] | | origin | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | y_p | | NX | | | + | | ixel_size | | _FLOAT[j] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | x\_radius | | NX_FLOAT | | If we are | + | | | | | | curved, | + | | | | | | the | + | | | | | | radius of | + | | | | | | curvature | + | | | | | | ( | + | | | | | | \*_offset | + | | | | | | above | + | | | | | | will then | + | | | | | | be arc | + | | | | | | lengths) | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | y\_radius | | NX_FLOAT | | If we are | + | | | | | | curved, | + | | | | | | the | + | | | | | | radius of | + | | | | | | curvature | + | | | | | | ( | + | | | | | | \*_offset | + | | | | | | above | + | | | | | | will then | + | | | | | | be arc | + | | | | | | lengths) | + +-----+-----------+-----------+-----------+-----------+-----------+ + + You can either specify an NXgeometry[i,j] for the pixels or + instead use the x_pixel\* arrays. By specifying both size and + offset "dead space" between pixels can be accounted for. + + azimuthal_angle, polar_angle and distance can be left out of + NXdetector as they can be calculated from the detector geometry + + **Hardware ganging of detector elements** + + In some cases individual detector elements are ganged together by + the acquisition system for symmetry reasons or to create a smaller + data files. In these cases the above formalisms can still be used, + but the "detector number" does not correspond to a real physical + detector and so the values of "polar_angle", "distance", + "azimuthal_angle" are some sort of average over the ganged + elements. When analysis and simulation of the data is performed, + it is sometimes necessary to know the details of the individual + detectors that have been ganged together. An initial proposal was + that these additional arrays would be stored with the "_unganged" + suffix e.g. "Polar_angle_unganged", "distance_unganged", + "detector_number_unganged". However after discussions of TOF Group if was decided to move these arrays into + a substructure of NXdetector so we would have + NXdetector.polar_angle and NXdetector.distance for the ganed + values; NXdetector.unganged.polar_angle and + NXdetector.unganged.distance for the raw values. + + To relate the ganged and unganged arrays, a simple grouping scheme + can usually be used: detector.unganged.grouping[j] give the value + [i] detector.polar_angle[i] that this detector contributes to. + This covers most cases, except for when a detector may have its + signal fed into more than one place; in which case a more complex + mapping scheme is needed. + + To cover the general case the "unganged" arrays are arranged so + that elements that are ganged together appear sequentially and + information to relate these arrays to the hardware ganged + "polar_angle" etc arrays are provided by + + +-----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+===========+===========+===========+ + | 0/1 | ga | | NX_INT[i] | Number of | | + | | ng\_count | | | physical | | + | | | | | detectors | | + | | | | | elements | | + | | | | | ganged | | + | | | | | together | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | ga | | NX_INT[i] | Index of | | + | | ng\_index | | | first | | + | | | | | ganged | | + | | | | | element | | + +-----+-----------+-----------+-----------+-----------+-----------+ + + Detector_number[i] is ganged from gang_count[i] elements. The + values of polar_angle[i] was obtained by average the gang_count[i] + values of polar_angle_unganged[gang_index[i]], + polar_angle_unganged[gang_index[i]+1], , + polar_angle[gang_index[i]+gang_count[i]-1] + + .. rubric:: NXdata + :name: nxdata + + === ============== ========= ================= ===== ============= + RE Name Attribute Type Value Description + === ============== ========= ================= ===== ============= + 0/1 NXdata + 1 data NX_FLOAT[i,j,k,m] + 1 units NX_CHAR + 1 long_name NX_CHAR Title of data + 1 time of_flight NX_FLOAT[k+1] + 0/1 x_pixel_offset NX_FLOAT[i] + 0/1 y_pixel_offset NX_FLOAT[j] + + === ============== ========= ================= ===== ============= + + The exact format of this will depend on the NXdetector definition + used. + + .. rubric:: NXmoderator + :name: nxmoderator + + The moderator is the effective source for all time-of-flight + instruments. This is taken directly from the NeXus technical + reference changing some elements to be required rather an + optional. Additional items are in red. + + === =============== ========= ========== ====== ====================== + RE Name Attribute Type Value Description + === =============== ========= ========== ====== ====================== + 1 distance NX_FLOAT + 1 units NX_CHAR + 1 type NX_CHAR The moderator material + 0/1 poison_depth NX_FLOAT + 1 units NX_CHAR + 0/1 coupled NX_BOOLEAN + 0/1 poison_material NX_CHAR + 0/1 temperature NX_FLOAT + 1 units NX_CHAR Kelvin + 0/1 temperature_log NXlog + 0/1 pulse_shape NXdata + 0/1 geometry NXgeometry + === =============== ========= ========== ====== ====================== + + .. rubric:: NXgeometry + :name: nxgeometry + + This group describes the shape, position, and orientation of a + component. Almost all of the information is actually stored in + subgroups. This is taken directly from the NeXus technical + reference without change. + + +-----+------------+-----------+------------+-------+------------+ + | RE | Name | Attribute | Type | Value | D | + | | | | | | escription | + +=====+============+===========+============+=======+============+ + | 0/1 | | | NXshape | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | | | NXt | | | + | | | | ranslation | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | | | NXo | | | + | | | | rientation | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | d | | NX_CHAR | | | + | | escription | | | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | compo | | NX_INT | | Position | + | | nent_index | | | | of | + | | | | | | component | + | | | | | | along the | + | | | | | | beam path. | + +-----+------------+-----------+------------+-------+------------+ + + The sample has a component_index of 0, components upstream have + negative component_index. + + .. rubric:: NXlog + :name: nxlog + + Contains log information monitored during the run in a timed + fashion. This can contain the time-stamped values, or the average + (with standard deviation), minimum, maximum and total time log was + taken. This is taken directly from the NeXus technical reference + without change. + + +-----+------------+-----------+------------+-------+------------+ + | RE | Name | Attribute | Type | Value | D | + | | | | | | escription | + +=====+============+===========+============+=======+============+ + | 0/1 | time | | NX_FLOAT | | relative | + | | | | | | to "start" | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | start | ISO8601 | | start time | + | | | | | | of logging | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | value | | NX_FLOAT / | | | + | | | | NX_INT | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | raw_value | | NX_FLOAT / | | e.g. | + | | | | NX_INT | | voltage | + | | | | | | from | + | | | | | | th | + | | | | | | ermocouple | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | d | | NX_CHAR | | | + | | escription | | | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | ave | | NX_FLOAT | | | + | | rage_value | | | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | average_v | | NX_FLOAT | | | + | | alue_error | | | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | min | | NX_FLOAT | | | + | | imum_value | | | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | max | | NX_FLOAT | | | + | | imum_value | | | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | duration | | NX_FLOAT | | | + +-----+------------+-----------+------------+-------+------------+ + | 1 | | units | NX_CHAR | | | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | dis | | NX_CHAR | | short name | + | | play\_name | | | | displayed | + | | | | | | on | + | | | | | | instrument | + | | | | | | dashboard | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | software | | NX_CHAR | | program or | + | | | | | | software | + | | | | | | used to | + | | | | | | measure | + | | | | | | value | + +-----+------------+-----------+------------+-------+------------+ + | 0/1 | hardware | | NX_CHAR | | hardware | + | | | | | | used to | + | | | | | | measure | + | | | | | | value | + +-----+------------+-----------+------------+-------+------------+ + + .. rubric:: NXorientation + :name: nxorientation + + +-----+-------+-----------+-------------+-------+-------------+ + | RE | Name | Attribute | Type | Value | Description | + +=====+=======+===========+=============+=======+=============+ + | 0/1 | | | NXgeometry | | Link to | + | | | | | | another | + | | | | | | object for | + | | | | | | relative | + | | | | | | positioning | + +-----+-------+-----------+-------------+-------+-------------+ + | 0/1 | value | | NX_FLOA | | The | + | | | | T[numobj,6] | | orientation | + | | | | | | information | + | | | | | | is stored | + | | | | | | as 6 | + | | | | | | direction | + | | | | | | cosines for | + | | | | | | each object | + +-----+-------+-----------+-------------+-------+-------------+ + + .. rubric:: NXshape + :name: nxshape + + +-----+-------+--------+--------+--------+--------+--------+---+ + | RE | Name | Att | Type | Value | Descr | | | + | | | ribute | | | iption | | | + +=====+=======+========+========+========+========+========+===+ + | 0/1 | shape | | N | nxcy | nxbox | nx | | + | | | | X_CHAR | linder | | sphere | | + +-----+-------+--------+--------+--------+--------+--------+---+ + | 0/1 | size | | NX_F | | | | | + | | | | LOAT[n | | | | | + | | | | umobj, | | | | | + | | | | nsha | | | | | + | | | | pepar] | | | | | + +-----+-------+--------+--------+--------+--------+--------+---+ + | 1 | | units | N | metre | | | | + | | | | X_CHAR | | | | | + +-----+-------+--------+--------+--------+--------+--------+---+ + + The interpretation of the "shapepar" depends on the "shape" + + .. rubric:: NXtranslation + :name: nxtranslation + + +-----+----------+-----------+------------+-------+------------+ + | RE | Name | Attribute | Type | Value | D | + | | | | | | escription | + +=====+==========+===========+============+=======+============+ + | 0/1 | | | NXgeometry | | Link to | + | | | | | | another | + | | | | | | object for | + | | | | | | relative | + | | | | | | p | + | | | | | | ositioning | + +-----+----------+-----------+------------+-------+------------+ + | 0/1 | distance | | NX_FLOAT | | | + | | | | [numobj,3] | | | + +-----+----------+-----------+------------+-------+------------+ + | 1 | | Units | NX_CHAR | metre | | + +-----+----------+-----------+------------+-------+------------+ + + .. rubric:: NXevent_data + :name: nxevent_data + + This requires that a Pixel_number field is provided in the + NXdetector for determining geometry information. While normally + this takes the place of the NXdata in a NXentry, there is no + reason that the two cannot coexist. The index I runs over events - + the index j runs counts pulses. + + +-----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+===========+===========+===========+ + | 0/1 | time | | NX_INT[i] | | A list of | + | | _of_flight| | | | time of | + | | | | | | flight | + | | | | | | for each | + | | | | | | event as | + | | | | | | it comes | + | | | | | | in. This | + | | | | | | list is | + | | | | | | for all | + | | | | | | pulses | + | | | | | | with | + | | | | | | in | + | | | | | | formation | + | | | | | | to attach | + | | | | | | to a | + | | | | | | p | + | | | | | | articular | + | | | | | | pulse | + | | | | | | located | + | | | | | | in | + | | | | | | events | + | | | | | | per_pulse | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | | units | NX_CHAR | Mic | | + | | | | | ro.second | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | pix | | NX_INT[i] | | There | + | | el_number | | | | will be | + | | | | | | extra | + | | | | | | in | + | | | | | | formation | + | | | | | | in the | + | | | | | | N | + | | | | | | Xdetector | + | | | | | | to | + | | | | | | convert | + | | | | | | pix | + | | | | | | el_number | + | | | | | | to | + | | | | | | detecto | + | | | | | | r_number. | + | | | | | | This list | + | | | | | | is for | + | | | | | | all | + | | | | | | pulses | + | | | | | | with | + | | | | | | in | + | | | | | | formation | + | | | | | | to attach | + | | | | | | to a | + | | | | | | p | + | | | | | | articular | + | | | | | | pulse | + | | | | | | located | + | | | | | | in | + | | | | | | events | + | | | | | | per_pulse | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | p | | NX_INT[j] | | The time | + | | ulse_time | | | | that each | + | | | | | | pulse | + | | | | | | started | + | | | | | | with | + | | | | | | respect | + | | | | | | to the | + | | | | | | offset | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | | Units | NX_CHAR | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 1 | | Offset | ISO8601 | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | events | | NX_INT[j] | | This | + | | per_pulse | | | | connects | + | | | | | | the index | + | | | | | | "i" to | + | | | | | | the index | + | | | | | | "j". The | + | | | | | | jth | + | | | | | | element | + | | | | | | is the | + | | | | | | number of | + | | | | | | events in | + | | | | | | "i" that | + | | | | | | occured | + | | | | | | during | + | | | | | | the jth | + | | | | | | pulse | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | pul | | NX_FL | | If | + | | se_height | | OAT[I,k?] | | voltages | + | | | | | | from the | + | | | | | | ends of | + | | | | | | the | + | | | | | | detector | + | | | | | | are read | + | | | | | | out this | + | | | | | | is where | + | | | | | | they go. | + | | | | | | This list | + | | | | | | is for | + | | | | | | all | + | | | | | | events | + | | | | | | with | + | | | | | | in | + | | | | | | formation | + | | | | | | to attach | + | | | | | | to a | + | | | | | | p | + | | | | | | articular | + | | | | | | pulse | + | | | | | | height. | + | | | | | | The | + | | | | | | in | + | | | | | | formation | + | | | | | | to attach | + | | | | | | to a | + | | | | | | p | + | | | | | | articular | + | | | | | | pulse is | + | | | | | | located | + | | | | | | in | + | | | | | | events | + | | | | | | per_pulse | + +-----+-----------+-----------+-----------+-----------+-----------+ + + .. rubric:: NXsource + :name: nxsource + + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | RE | Name | Attr | Type | Value | D | | | | + | | | ibute | | | escri | | | | + | | | | | | ption | | | | + +=====+=======+=======+=======+=======+=======+=======+=======+===+ + | | NXs | | | Name | | | | | + | | ource | | | of | | | | | + | | | | | s | | | | | + | | | | | ource | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | name | | NX | | Fac | | | | + | | | | _CHAR | | ility | | | | + | | | | | | name | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | type | | NX | " | "P | "Re | "S | | + | | | | _CHAR | Spall | ulsed | actor | ynchr | | + | | | | | ation | Re | Ne | otron | | + | | | | | Ne | actor | utron | X-ray | | + | | | | | utron | So | So | So | | + | | | | | So | urce" | urce" | urce" | | + | | | | | urce" | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | probe | | NX | "neut | "m | "x- | | | + | | | | _CHAR | rons" | uons" | rays" | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | freq | | NX_FL | | Freq | | | | + | | uency | | OAT32 | | uency | | | | + | | | | | | of | | | | + | | | | | | p | | | | + | | | | | | ulsed | | | | + | | | | | | s | | | | + | | | | | | ource | | | | + | | | | | | at | | | | + | | | | | | the | | | | + | | | | | | t | | | | + | | | | | | arget | | | | + | | | | | | "at | | | | + | | | | | | ta | | | | + | | | | | | rget" | | | | + | | | | | | a | | | | + | | | | | | llows | | | | + | | | | | | for | | | | + | | | | | | the | | | | + | | | | | | main | | | | + | | | | | | p | | | | + | | | | | | roton | | | | + | | | | | | beam | | | | + | | | | | | being | | | | + | | | | | | split | | | | + | | | | | | wi | | | | + | | | | | | th.g. | | | | + | | | | | | 1 in | | | | + | | | | | | 5 | | | | + | | | | | | p | | | | + | | | | | | ulses | | | | + | | | | | | div | | | | + | | | | | | erted | | | | + | | | | | | to | | | | + | | | | | | an | | | | + | | | | | | other | | | | + | | | | | | t | | | | + | | | | | | arget | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 1 | | units | NX | Hertz | | | | | + | | | | _CHAR | | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | p | | NX | | | | | | + | | eriod | | _FLOAT| | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | | units | NX | mi | L | | | | + | | | | _CHAR | crose | ength | | | | + | | | | | conds | of an | | | | + | | | | | | a | | | | + | | | | | | cquis | | | | + | | | | | | ition | | | | + | | | | | | frame | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + | 0/1 | notes | | NX | Sourc | At | | | | + | | | | _TEXT | e/fac | ISIS, | | | | + | | | | | ility | the | | | | + | | | | | re | MCR | | | | + | | | | | lated | beam | | | | + | | | | | mes | mes | | | | + | | | | | sages | sages | | | | + | | | | | or | | | | | + | | | | | ann | | | | | + | | | | | ounce | | | | | + | | | | | ments | | | | | + | | | | | d | | | | | + | | | | | uring | | | | | + | | | | | the | | | | | + | | | | | exper | | | | | + | | | | | iment | | | | | + +-----+-------+-------+-------+-------+-------+-------+-------+---+ + + .. rubric:: NXdetector_groups + :name: nxdetector_groups + + This class is used to allow a logical grouping of detector + elements (e.g. which tube, bank or group of banks) to be recorded + in the file. As well as allowing you to e.g just select the "left" + or "east" detectors, it may also be useful for determining which + elements belong to the same PSD tube and hence have e.g. the same + dead time. + + +----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +====+===========+===========+===========+===========+===========+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +----+-----------+-----------+-----------+-----------+-----------+ + | 1 | gr | | NX_CHAR | | Comma | + | | oup_names | | | | separated | + | | | | | | list of | + | | | | | | name | + +----+-----------+-----------+-----------+-----------+-----------+ + | 1 | gr | | NX_INT[i] | | Unique ID | + | | oup_index | | | | for group | + +----+-----------+-----------+-----------+-----------+-----------+ + | 1 | gro | | NX_INT[i] | Index of | -1 means | + | | up_parent | | | group | no parent | + | | | | | parent in | i.e. a | + | | | | | the | top level | + | | | | | hierarchy | group | + +----+-----------+-----------+-----------+-----------+-----------+ + | 1 | g | | NX_INT[i] | Code | e.g. | + | | roup_type | | | number | bank=1, | + | | | | | for group | tube=2 | + | | | | | type | etc. | + +----+-----------+-----------+-----------+-----------+-----------+ + + For example of we had "bank1" composed of "tube1", "tube2" and + "tube3" then Group_names would be the string "bank1, bank1/tube1, + bank1/tube2,bank1/tube3" Group_index would be {1,2,3,4} + Group_parent would be {-1,1,1,1} + + The mapping array is interpreted as group 1 is a top level group + containing groups 2, 3 and 4 + + A group_index array in NXdetector give the base group for a + detector element. diff --git a/source/content/TOFRawScan.rst b/source/content/TOFRawScan.rst new file mode 100644 index 00000000..12127b84 --- /dev/null +++ b/source/content/TOFRawScan.rst @@ -0,0 +1,203 @@ +========== +TOFRawScan +========== + + +.. container:: content + + .. container:: page + + .. rubric:: TOFRawScan + :name: tofrawscan + :class: page-title + + NXTOFRWSC - proposed extensions to NXTOFRW to provide a NeXus + Time-Of-Flight Raw Data File Scan Format + + This document defines extensions to the `single run + format `__ to deal with scans and ISIS period type + experiments; the same conventions used there apply here. + + One question that is the subject of much debate is whether a + single NXentry should only describe a single measurement or + whether it could contain several measurements. The single + measurement case is outlined in `TOFRaw `__ and we + outline here two possible methods of storing multiple + measurements. + + .. rubric:: Type 1: linking entries to describe scans + :name: type-1-linking-entries-to-describe-scans + + Often each scan point will be written as an NXentry in a separate + file e.g. the scan is controlled by some external script. In this + case all that is needed is: + + #. a way to identify which files belong together + #. preferably, a way to quickly identify what is changing during + the scan without having to compare all items in the file + + A suggestion for (1) is to have a "scan_id" variable so that all + files with the same value of "scan_id" will form part of the same + scan; the element scan_point will indicate the scan point (1, 2, + 3, ). If scan_id is set to the "run_number" of the first scan + point, it will be guaranteed not to conflict with any other scans + or run as the run number is unique for a given file (and often + part of the file name). + + +-----+-------------+-----------+---------+-------+-------------+ + | RE | Name | Attribute | Type | Value | Description | + +=====+=============+===========+=========+=======+=============+ + | 0/1 | Scan\_id | | NX_INT | | Allows | + | | | | | | Entries | + | | | | | | that are | + | | | | | | part of the | + | | | | | | same scan | + | | | | | | to be | + | | | | | | identified. | + | | | | | | This could | + | | | | | | be the run | + | | | | | | number of | + | | | | | | the first | + | | | | | | scan point | + +-----+-------------+-----------+---------+-------+-------------+ + | 0/1 | Scan\_point | | NX_INT | | the point | + | | | | | | within a | + | | | | | | scan. | + | | | | | | 1=first, | + | | | | | | 2=second | + | | | | | | etc | + +-----+-------------+-----------+---------+-------+-------------+ + | 0/1 | Scan\_total | | NX_INT | | Number of | + | | | | | | points in | + | | | | | | this scan | + | | | | | | i.e. number | + | | | | | | of separate | + | | | | | | NXentries | + | | | | | | making up | + | | | | | | the scan | + +-----+-------------+-----------+---------+-------+-------------+ + | 0/1 | S | | NX_CHAR | | comma | + | | can\_labels | | | | separated | + | | | | | | list of | + | | | | | | ti | + | | | | | | tles/labels | + | | | | | | for each | + | | | | | | scan point | + +-----+-------------+-----------+---------+-------+-------------+ + + For (2) above there are two choices: either tag each variable that + is being varied with an extra attribute called e.g. "scanned", or + link all the variables that are being scanned into an "NXscan" + structure. If an NXscan structure is decided on, then scan_id + above should probably be moved into this rather than be in + NXentry. + + In the case of a scan of two variables, we could set scanned=1 for + the fastest varying variable and scanned=2 for the second fastest + etc. Note that the notion of "fastest varying" depends, of course, + on the order that you read the files in - this notion tells you + which is varying fastest if the files are read in numerical run + number order. Note that the "scanned variable" is a hint to the + reading program and tells you what is being scanned over the whole + measurement - if you just picked two files at random then only one + of the many marked "scanned" variables would have changed and it + is up to the reading program to work out which one. + + If several NXentry objects are written to the same file to + describe scan points, it would be useful to have a naming + convention so that they could be ordered quickly. NeXus convention + is that entries are called "entry1", "entry2", maybe for scans + this could be extended to "entry1_1", "entry1_2" for scan points 1 + and 2 etc. + + .. rubric:: Type 2: containing multiple measurements + :name: type-2-containing-multiple-measurements + + *Note: we are considering splitting "single measurement" and + "scan" into separate definitions - see the*\ **discussion**\ *tab + for more information* + + Sometimes a scan is set up and directed by the data acquisition + electronics itself. An example would be when you want to perform a + very rapid scan of e.g. temperature or to rapidly swap between two + states (e.g. laser on and laser off). What is different about this + situation compared to above is that no data is transferred from + the acquisition system (and so no file written) until the scan is + complete. Such a situation could be treated by the same mechanism + as above, but has traditionally been done by adding an extra array + dimension to the data and the varying variables rather than + writing additional files. + + To illustrate this rather than having "entry1.sample.temperature", + "entry1.detector.counts[i]", "entry2.sample.temperature" and + "entry2.detector.counts[i]" we would just have + "entry1.sample.temperature[j]" and "entry1.detector.counts[i,j]" + where j indexes the scan point. Advantages of this scheme over + writing seapare NXentries to a single file are: + + - If you have very many scan points, you don"t get a huge number + of NXentry structures that you need to search to get the list + of scanned values + - Your scanned variables are already stored as arrays and so can + easily be plotted i.e. counts[1,j] against temperature[j] + - You don"t have a huge number of linked entries in the file - + links can cause wasted memory if all the objects in the file + are loaded into computer memory by a language that cannot + represent the links internally and so must create copies. + - you don"t have to think about having multiple copies of, or how + to split, any time dependent NXlog objects bewteen NXentries + - you can easily load all the data for all scans into memory in + one go + - data analysis is more straightforward + + You still need a mechanism to indicate scanned variables (either a + scanned attribute or an NXscan structure as described above). + Several of the above variables in NXentry will also become arrays + of size (number of scan points, scan_total) e.g. raw_frames, + good_frames, scan_point. As the counts array that appears within + NXdata now depends on the the scan index [j], you will need to + link in additional axis/axes to the NXdata to indicate this + dependence. For this you could link in the scan_point[j] array or + the individual temperature[j], magnetic_field[j] etc. arrays + depending on how you want to plot your data. + + As as it is possible cycle rounds the scans and continue counting + a particular scan point at a later stage, the following new + variable is introduced: + + +---+--------------+---+-----------+---+-----------------+ + | | | | | | | + +===+==============+===+===========+===+=================+ + | 1 | scan\_cycles | | NX_INT[j] | | Number of times | + | | | | | | a data | + | | | | | | acquisition was | + | | | | | | initiated for | + | | | | | | this scan point | + +---+--------------+---+-----------+---+-----------------+ + + Some variables describing sample environment parameters may become + arrays with a Type 2 NXentry e.g. + + === =========== ========= =============== ===== =========== + RE Name Attribute Type Value Description + === =========== ========= =============== ===== =========== + 0/1 temperature NX_FLOAT[nscan] + === =========== ========= =============== ===== =========== + + If detector angles are scanned, an extra array dimension may be + present with a Type 2 NXentry e.g. + + +-----+-----------+-----------+-----------+-----------+-----------+ + | RE | Name | Attribute | Type | Value | De | + | | | | | | scription | + +=====+===========+===========+===========+===========+===========+ + | 1 | Po | | NX_FLOAT | | | + | | lar_angle | | [i,nscan] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | Azimut | | NX_FLOAT | | | + | | hal_angle | | [i,nscan] | | | + +-----+-----------+-----------+-----------+-----------+-----------+ + | 0/1 | Distance | | NX_FLOAT | distance | | + | | | | [i,nscan] | from | | + | | | | | sample | | + +-----+-----------+-----------+-----------+-----------+-----------+ diff --git a/source/content/Thumbnails_for_Nexus_files.rst b/source/content/Thumbnails_for_Nexus_files.rst new file mode 100644 index 00000000..a9c13a98 --- /dev/null +++ b/source/content/Thumbnails_for_Nexus_files.rst @@ -0,0 +1,49 @@ +========================== +Thumbnails for Nexus files +========================== + + +.. container:: content + + .. container:: page + + .. rubric:: Thumbnails for Nexus files + :name: thumbnails-for-nexus-files + :class: page-title + + Thumbnails that a file browser (or even a web browser) can use to + render a Nexus file shall be stored in an instance of NXnote + directly below NXentry + + .. container:: language-plaintext highlighter-rouge + + entry:NXentry + thumbnail:NXnote + data:NX_BINARY + type:NX_CHAR + description:NX_CHAR + + The data field contains the binary data of the thumbnail image. The + image type is determined by the type field. We currently recommend + the image to be stored as PNG. The description field can be used + to store provenance data which may show up as a tool-tip when the + mouse pointer hovers over the files icon. + + .. rubric:: Topics for discussion + :name: topics-for-discussion + + - should it go to NXroot or NXentry? + - restrict the image type to PNG or leave this open? + - shall we restrict the size of the thumbnail image? + + Windows for instance uses 96x96 jpeg images. + + .. rubric:: Update 01/2015 + :name: update-012015 + + This topic was discussed at NIAC 2014. As a directory may contain + thousands of files, there are performance issues to be solved + here. It was deemed to slow to open each file and extract the + thumbnail from a NXnote. There are ideas to embed the thumbnail in + the HDF5 file at a low level. Some experimentation is needed + before this can be resolved. diff --git a/source/content/Time-of-Flight_Neutron_Powder_Diffraction.rst b/source/content/Time-of-Flight_Neutron_Powder_Diffraction.rst new file mode 100644 index 00000000..276934ec --- /dev/null +++ b/source/content/Time-of-Flight_Neutron_Powder_Diffraction.rst @@ -0,0 +1,35 @@ +========================================= +Time-of-Flight Neutron Powder Diffraction +========================================= + + +.. container:: content + + .. container:: page + + .. rubric:: Time-of-Flight Neutron Powder Diffraction + :name: time-of-flight-neutron-powder-diffraction + :class: page-title + + .. rubric:: Comments + :name: comments + + - Discussion items + + - time_focusing_type (e.g. difc, cubic, ..) + - time_focusing_parameters [ndetector,nparameters] + - Definition of groups for binning in NeXus file or via + NXdetector ? + - Deadtime correction information (in combination with + gang.) + - Profile types and starting parameters + - Incident spectrum (here in NXcharacterization, alternative + analytical description ?) + + - Other + + - Binned data back in NeXus - this actually is used in + Rietveld. + + .. rubric:: Proposal + :name: proposal diff --git a/source/content/Update_for_NXflou_application_definition.rst b/source/content/Update_for_NXflou_application_definition.rst new file mode 100644 index 00000000..307d7abc --- /dev/null +++ b/source/content/Update_for_NXflou_application_definition.rst @@ -0,0 +1,71 @@ +======================================== +Update for NXflou application definition +======================================== + + +.. container:: content + + .. container:: page + + .. rubric:: Update for NXflou application definition + :name: update-for-nxflou-application-definition + :class: page-title + + .. rubric:: Problem + :name: problem + + In todays fluorescence experiments users often raster the sample + with the beam and record a single spectrum at each sample + location. For beamline P06 at DESY this procedure became virtually + the default mode of operation. The current NXfluo application + definition does not include this kind of experiments as it only + allows to store a single spectrum below + /:NXentry/:NXinstrument/:NXdetector. However NXfluo could be + easily modified to accommodate raster scans. + + .. rubric:: Proposed modification + :name: proposed-modification + + The changes concern only the NXdetector instance of NXfluo. The + layout should be changed as follows + + .. container:: language-plaintext highlighter-rouge + + entry:NXentry + instrument:NXinstrument + flourescence:NXdetector + data[npts,nenergy] + energy[npts,nenergy] + + where npts denotes the number of raster points. It is important to + note that we do not care about the particular pattern used to + raster the sample. This would be hard to achieve taking into + account that there is a nearly arbitrary number of patterns + available. Even entirely irregular paths would be possible (and + have already been requested by one of the beamline scientists here + at DESY). One advantage of this pattern agnostic approach would be + that analysis software can stick to its current workflow: + processing the spectra recorded during an experiment in a simple + sequential order. + + If the energy dataset is of shape [nenergy] (rank one) we can + assume that the energy range was the same for each point recorded. + A single spectrum can easily be stored by using the original + schema of the definition which could be interpreted as ntps=0. + + Just as a recommendation (must not go into the standard), it would + make sense to store the position of the beam on the sample like + this + + .. container:: language-plaintext highlighter-rouge + + entry:NXentry + sample:NXsample + x[npts]:NX_FLOAT + y[npts]:NX_FLOAT + + .. rubric:: Status 01/2015 + :name: status-012015 + + The suggested change is in line with NeXus scan rules. Thus the + change was accepted at NIAC 2014. No vote was necessary. diff --git a/source/content/Utilities.rst b/source/content/Utilities.rst new file mode 100644 index 00000000..e220eb70 --- /dev/null +++ b/source/content/Utilities.rst @@ -0,0 +1,157 @@ +========= +Utilities +========= + + +.. container:: content + + .. container:: page + + .. rubric:: Utilities + :name: utilities + :class: page-title + + .. rubric:: NeXus Browsers and Other Utilities + :name: nexus-browsers-and-other-utilities + + | `NXbrowse `__:A command-line utility for browsing + NeXus files. + | NXtoXML:A utility to translate NeXus files to XML, written in + ISO C. If used from a terminal (and installed in the default + PATH [u**x] or defined as a symbol [VMS]), type + + .. container:: language-plaintext highlighter-rouge + + NXtoXML + + On most systems, NXtoXML is compiled and linked during the + standard NeXus installation (v2.0 and later). Precompiled binary + versions are available for a limited number of operating systems + (Linux, VMS, Macintosh). Please contact Ray Osborn for more + information. + + NXtoDTD: A utility to translate NeXus files to XML without + including the data values, written in ISO C. This is useful in + defining the structure of a NeXus file and can be used to produce + the skeleton of a NeXus metaDTD file from an existing NeXus file. + If used from a terminal (and installed in the default PATH [u**x] + or defined as a symbol [VMS]), type + + .. container:: language-plaintext highlighter-rouge + + NXtoDTD + + On most systems, NXtoDTD is compiled and linked during the + standard NeXus installation (v2.0 and later). Precompiled binary + versions are available for a limited number of operating systems + (Linux, VMS, Macintosh). Please contact Ray Osborn for more + information. + + | `NXdir `__:CLI tool that lists contents of NeXus + file and convert selected portions to ASCII. + | NXtree:A utility to output the structure of a NeXus file in a + tree structure. It has options to produce either HTML or LaTeX + output, with or without data values and attributes. + + .. container:: language-plaintext highlighter-rouge + + NXtree [-[no]attr] [-[no]data] [-html | -latex] + + The file NXtree.tar.gz contains the source code to be used on u**x + platforms and NXtree-win32.zip contains a binary version for + various flavors of Windows. It was written by Thomas Proffen + + + | NXvalid:GUI tool to interactively explore, plot, and validate + NeXus files. + | NXtranslate:Anything to NeXus converter + | NDS:NeXus data server, publish NeXus files on TCP/IP, read only + (SINQ) + | NNDB:Java program to browse NeXus files published through NDS + (SINQ) + | HDFView:Java-based tool for browsing and visualizing HDF4/5 + files. + | HDFExplorer:Windows HDF viewer for HDF4, HDF5 and netCDF files + from http://www.space-research.org offers grid/scalar + image/vector images and data export. + | IgorPro HDF5 Browser:Windows and MacOSX HDF viewer for HDF4 and + HDF5 files from http://www.wavemetrics.com provides views of raw + content dumps, tables, plots, and images, and data import. + + .. rubric:: Plotting Applications + :name: plotting-applications + + | `NeXpy `__: A Python-based approach to interactive + data analysis that allows complete data structures to be read + into a tree and new data structures to be created using an + simple intuitive syntax. The data can be plotted, sliced, + manipulated, and saved to a file. + | `Open Genie `__:Open Genie is an + object-oriented data analysis and visualization package + developed at the ISIS pulsed neutron facility. The latest + version has the ability to load an entire NeXus file into a + workspace structure, as well as write NeXus files. + | ISAW:ISAW is a java-based analysis package used to read, + manipulate, view, and save neutron scattering data. ISAW can + read data from NeXus files and can merge and sort data from + separate measurements.. + | IDL:Mark Koennecke has written a set of IDL utilities for + interfacing to NeXus files. + | LAMP:This is a general purpose neutron data analysis package, + developed at ILL and layered on IDL. A run-time version is + available for those without an IDL license. It can read and + write NeXus files. + | `KUPLOT `__:This is a universal + data plotting program, that is used to visualize DISCUS or + PDFFIT results as well as for other plotting purposes + | NXviewer:OpenDave based viewer (FRM2). + | HDFLook:Motif HDF viewer which has some impressive plotting + capabilities. For example, it is possible to plot 2D data sets + and then take arbitrary 1D cuts. However, it does not recognize + Vgroups, so the NeXus file hierarchy is lost making it hard to + identify the plottable data. However, the price is right (i.e. + it"s free). + | MATLAB: `MATLAB `__ + will read a general `HDF5 `__ + format file and so is able to import any NeXus file which used + HDF5 as its underlying representation. + + .. rubric:: Data Analysis + :name: data-analysis + + | `NeXpy `__: A Python-based approach to interactive + data analysis that allows complete data structures to be read + into a tree and new data structures to be created using an + simple intuitive syntax. The data can be plotted, sliced, + manipulated, and saved to a file. + | `Open Genie `__: I include Open Genie + here as well since it is really more of a data analysis package + than a plotting package per se. Support for performing analysis + on NeXus files is currently limited, but can be acomplished by + mapping parts of the imported NeXus file into a new workspace + that to make it resemble an ISIS RAW data file. + | LAMP: LAMP is also designed for analyzing raw data in addition + to visualizing the results. + | UDA and WIMDA:General purpose muon scattering analysis packages + (ISIS) + | hdfb.sav and h5b.sav:browser for any 1D/2D/3D data saved in HDF + (APS) + | GumTree:scientific workbench for instrument control (BI) + | ninx:inx (ILL) adapted to read FOCUS TOF files (SINQ) + | Nathan:TOF data analysis for FOCUS (IDL based) (SINQ) + | anatric, cami4pcd:four circle diffractometer data analysis + (SINQ) + | BerSANS:data analysis for SANS through adapter (SINQ) + + | fit:home grown fitting program (SINQ) + | addit, subi:programs to add or subtract powder data and write + files suitable for Rietveld programs (SINQ) + | Redas:data analysis for Reflectometer, based on Scilab (SINQ) + | Amortool:simple CLI tool for Reflectometer data analysis (SINQ) + | Scilab:general matlab like data analysis tool - with a NeXus + interface for that (SINQ) + | `Mantid `__: An instrument + independant data analysis framework that supports NeXus as an + output format and both `TOFRaw `__ and + `Muon_Time_Differential `__ as + input formats. diff --git a/source/content/Workshop_PSI_2010.rst b/source/content/Workshop_PSI_2010.rst new file mode 100644 index 00000000..ec6df390 --- /dev/null +++ b/source/content/Workshop_PSI_2010.rst @@ -0,0 +1,45 @@ +================= +Workshop PSI 2010 +================= + + +.. container:: content + + .. container:: page + + .. rubric:: Workshop PSI 2010 + :name: workshop-psi-2010 + :class: page-title + + .. rubric:: NeXus Workshop at PSI (May 10 - 12, 2010) + :name: nexus-workshop-at-psi-may-10---12-2010 + + A NeXus workshop will be held at PSI from Monday, May 10 till + Wednesday, May 12 2010. The purpose of this workshop is twofold: + + - Disseminate detailed knowledge about the NeXus data format + - Discuss and develop the application of NeXus at synchrotron + light sources. + + In a sense this workshop is a followup to the recent `HDF-5 as + hyperspectral + dataformat `__ + held at ESRF. + + This workshop is to go into more detail and come up with: + + - A wishlist of things to consider for the `NeXus International + Advisory Committee <../niac/niac.html>`__ + - A set of synchrotron specific application definitions. + + The intended audience for this workshop are facility scientists + and computing staff from synchrotrons who have have an interest to + learn more about NeXus and use it a synchrotron light sources. The + general part of the workshop can be of interest to other NeXus + users too. + + Particiaption is free but due to space contraints we can only + accept 30 participants. Registration is now open through our + WWW-site: + + `` ``\ ```http://lns00.psi.ch/nexus2010/`` `__ diff --git a/source/content/XESraw.rst b/source/content/XESraw.rst new file mode 100644 index 00000000..0609f0be --- /dev/null +++ b/source/content/XESraw.rst @@ -0,0 +1,88 @@ +======== +XESraw +======== + +.. container:: content + + .. container:: page + + .. rubric:: XESraw + :name: xesraw + :class: page-title + + XESraw is a draft example of an X-Ray Experimental (Synchrotron) + raw Nexus file. + + It is essentially a simple scanning format with a few mandatory + items (mainly NXsource - to indicate the originating facility). + The variables being scanned are inferred from the links + for the "axis data" within the NXdata class(es). + + In this example, the axis data links point to values within NXpositioner + classes, which is likely typical for most scan variables + in a synchrotron experiment. However, they could just as easily refer to + another place within the NXinstrument hierarchy. + + Example of an XML representation of the Nexus file: + + .. code-block:: xml + + + + + + + "Example Data File" + + + "I18" + + "Diamond Light Source" + "Synchrotron X-ray Source" + "x-ray" + + + [3001.0, 3002.0, 3003.0] + + + [1.22, 2.34, 3.53] + + + "Ortec C-TRAIN" + "Counter Timer" + [203.0, 245.0, 233.0] + + + "Quantum 315" + "CCD" + + {a data array with dimensions [3, nx, ny]} + + + + + + {Link to detector1 counts} + + {Link to values in NXpositioner} + + + + + {Link to detector2 counts} + + {Link to values in NXpositioner} + + + + + diff --git a/source/content/content.rst b/source/content/content.rst index 32b1b63f..c835f754 100644 --- a/source/content/content.rst +++ b/source/content/content.rst @@ -16,7 +16,6 @@ Content 2014_axes_and_uncertainties 2014_How_to_find_default_data - ActiveProjects Archive_Definition Associating_Axes_with_Data ConcordanceDiscussion @@ -27,8 +26,6 @@ Content DLSraw Download Extension_of_NeXus_Coordinate_Systems - Facilities - FAQ File_id_attribute_for_Nexus_files GenericScan Group_Attributes @@ -85,4 +82,12 @@ Content SAS Scaled_Data Scans - Storing_Event_Data \ No newline at end of file + Storing_Event_Data + Thumbnails_for_Nexus_files + Time-of-Flight_Neutron_Powder_Diffraction + TOFRaw + TOFRawScan + Update_for_NXflou_application_definition + Utilities + Workshop_PSI_2010 + XESraw \ No newline at end of file diff --git a/source/facilities/facilities.rst b/source/facilities/facilities.rst index 034059f7..56ffe86a 100644 --- a/source/facilities/facilities.rst +++ b/source/facilities/facilities.rst @@ -24,10 +24,10 @@ Facilities producing and using NeXus files on its `muon spectrometers `__ for many years now (see - `Muon_Time_Differential `__ + `Muon_Time_Differential <../content/Muon_Time_Differential.html>`__ definition). The current definition is in the process of being updated to allow it to store more complex experiments and also to - make it more similar to the `TOFRaw `__ definition + make it more similar to the `TOFRaw <../content/TOFRaw.html>`__ definition used on the ISIS neutron instruments. .. rubric:: X-ray Facilities @@ -97,11 +97,11 @@ Facilities **ISIS Neutron Facility, STFC Rutherford Appleton Laboratory, UK**: Instruments on the `ISIS second target station `__ are now generating NeXus - files as per the `TOFRaw `__ definition in parallel + files as per the `TOFRaw <../content/TOFRaw.html>`__ definition in parallel with old ISIS RAW format files. Currently most data analysis is carried out using the ISIS RAW files, but the new `Mantid data analysis framework `__ supports - `TOFRaw `__ NeXus files and is being increasingly + `TOFRaw <../content/TOFRaw.html>`__ NeXus files and is being increasingly used. The long term goal is to entirely replace the old ISIS RAW file format on both the first and second target stations with NeXus files; the rate determining step for this is the updating of @@ -111,7 +111,7 @@ Facilities Laboratory `__\ **, USA**: The Lujan Center is generating NeXus files on all instruments. We are in the process of making the files consistent with the emerging - standards, especially `TOFRaw `__. The facility hosts + standards, especially `TOFRaw <../content/TOFRaw.html>`__. The facility hosts about 65,000 NeXus files and the number is growing. **Materials and Life Science Facility,** @@ -153,7 +153,7 @@ Facilities **Spallation Neutron Source** `SNS `__\ **, Oak Ridge, TN, USA**: SNS - is using `TOFRaw `__ for storing histogram based data + is using `TOFRaw <../content/TOFRaw.html>`__ for storing histogram based data from all instruments. We are working towards storing the raw event data in NeXus instead as the data acquisition saves data in that form already. diff --git a/source/faq/faq.rst b/source/faq/faq.rst index ff96ab0e..70609100 100644 --- a/source/faq/faq.rst +++ b/source/faq/faq.rst @@ -7,9 +7,7 @@ FAQ .. container:: page This is a list of commonly asked questions concerning the NeXus - data format. If you wish to suggest any more questions to include - on this page, please visit the `discussion page `__ - and add an entry. + data format. .. rubric:: How many facilities use NeXus :name: how-many-facilities-use-nexus @@ -100,10 +98,10 @@ FAQ The first thing is to check whether the instrument you are interested in is already being defined by an instrument editor. Check the list on the NeXus Instruments page. The `NeXus - International Advisory Committee `__ is responsible for + International Advisory Committee <../niac/niac.html>`__ is responsible for appointing editors of special interest groups that wish to become a part of the standard, so contact the `Executive - Secretary `__, if a group does not yet exist. Of + Secretary <../niac/niac.html>`__, if a group does not yet exist. Of course, if you want to produce your own private definition for personal use, you are free to do so without our approval although we encourage people to share what they are doing . If you are an @@ -122,7 +120,7 @@ FAQ in analyzing data from your instrument. Insert the relevant grep character, as defined in the `NeXus - Meta-DTD format `__ to denote the number of + Meta-DTD format <../content/Metaformat.html>`__ to denote the number of occurrences. If the item is optional (“?” or “\*”), then it does not need to be added to your definition. @@ -136,5 +134,4 @@ FAQ .. rubric:: What coordinate system does NeXus use? :name: what-coordinate-system-does-nexus-use - This is described on the - `Coordinate_Systems `__ page + This is described on the Coordinate_Systems page diff --git a/source/fix_broken_links.py b/source/fix_broken_links.py new file mode 100644 index 00000000..364f986a --- /dev/null +++ b/source/fix_broken_links.py @@ -0,0 +1,87 @@ +import subprocess +import re +import os +import subprocess +from dirlist import get_all_files_and_subdirs + +def check_and_fix_links(file_list): + """ + Checks and fixes broken links in a list of files using LinkChecker. + + :param file_list: List of file paths to check + """ + for file in file_list: + print(f"Checking file: {file}") + + # Run linkchecker and capture output + try: + result = subprocess.run( + ["linkchecker", "--check-extern", file], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True + ) + except FileNotFoundError: + print("LinkChecker is not installed or not in PATH.") + return + + # Parse for broken links + errors = extract_broken_links(result.stdout) + if errors: + print(f"Found {len(errors)} broken links in {file}. Fixing...") + fix_links_in_file(file, errors) + else: + print(f"No broken links found in {file}.") + + +def extract_broken_links(output): + """ + Extracts broken links from LinkChecker output. + + :param output: LinkChecker output as a string + :return: List of broken link strings + """ + # Regex pattern to extract URLs flagged as broken + pattern = re.compile(r"URL\s+([^ ]+)\s+Error") + return pattern.findall(output) + + +def fix_link(link): + """ + Fixes a broken link by appending "broke" to it. + + :param link: The broken link as a string + :return: Modified link string + """ + return link + "broke" + + +def fix_links_in_file(file_path, broken_links): + """ + Modifies a file to fix broken links by appending "broke" to each. + + :param file_path: Path to the file + :param broken_links: List of broken link strings + """ + try: + with open(file_path, "r") as file: + content = file.read() + + # Replace broken links with the "fixed" versions + for link in broken_links: + fixed_link = fix_link(link) + content = content.replace(link, fixed_link) + + with open(file_path, "w") as file: + file.write(content) + print(f"Fixed broken links in {file_path}.") + + except FileNotFoundError: + print(f"File {file_path} not found.") + except Exception as e: + print(f"Error processing {file_path}: {e}") + + +# Example usage +files_to_check = ["example1.html", "example2.rst"] +check_and_fix_links(files_to_check) diff --git a/source/fix_encoding_warns.py b/source/fix_encoding_warns.py index 28996ae0..2235f012 100644 --- a/source/fix_encoding_warns.py +++ b/source/fix_encoding_warns.py @@ -79,8 +79,10 @@ def fix_encoding(input_dir, output_dir): if __name__ == '__main__': # Directory containing HTML files - input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac' - output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac-fix' + # input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac' + # output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac-fix' + input_directory = r'C:\Users\bergr\github\branches\11\conv_files\fixed' + output_directory = r'C:\Users\bergr\github\branches\11\conv_files\fixed\encfixed' fix_encoding(input_directory, output_directory) diff --git a/source/fix_title.py b/source/fix_title.py index f1b7c8bc..c59fc2ff 100644 --- a/source/fix_title.py +++ b/source/fix_title.py @@ -50,8 +50,8 @@ def fix_title(fpath, output_directory): if __name__ == '__main__': # Directory containing HTML files - input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content' - output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content-fix' + input_directory = r'C:\Users\bergr\github\branches\11\conv_files' + output_directory = r'C:\Users\bergr\github\branches\11\conv_files\fixed' # Ensure output directory exists #os.makedirs(output_directory, exist_ok=True) @@ -59,5 +59,5 @@ def fix_title(fpath, output_directory): #basedir = os.path.join(os.getcwd(),'codecamps-fix') files = get_all_files_and_subdirs(input_directory) for file in files: - if file.find('.bak') == -1: + if file.find('.rst') > -1: fix_title(file, output_directory) diff --git a/source/index.rst b/source/index.rst index a77cc744..63995cef 100644 --- a/source/index.rst +++ b/source/index.rst @@ -38,10 +38,10 @@ Discussion and Development: * Next Meetings: `[Autumn NIAC2024] `_ * Most recent meetings: `[Code Camp 2023] `_ `[Autumn NIAC2022] `_ * `[Previous Meetings:] `_ - * `[Tele conferences] `_ - * `[Current Active Projects] `_ - * `[NeXus International Advisory Committee] `_ - * `[Bug/Issue Reporting] `_ + * `[Tele conferences] `_ + * `[Current Active Projects] `_ + * `[NeXus International Advisory Committee] `_ + * `[Bug/Issue Reporting] `_ * `[Mailing Lists] `_ * `[Show and Tell] `_ - Series of meetings, each dedicated to a specific NeXus adoption topic diff --git a/source/niac/NIAC2006ILL.rst b/source/niac/NIAC2006ILL.rst index 4dfcc7b5..01bbf33a 100644 --- a/source/niac/NIAC2006ILL.rst +++ b/source/niac/NIAC2006ILL.rst @@ -14,7 +14,7 @@ NIAC2006ILL :name: NIAC2006ILL_niac-meeting---february-2006 The next meeting of the `NeXus International Advisory - Committee `__ will be held at the `Institut Laue + Committee <../niac/niac.html>`__ will be held at the `Institut Laue Langevin `__ in Grenoble, France. The meeting will be held from February 1 to 3, 2006, preceded by an informal workshop to prepare agenda items on January 30-31, 2006. @@ -30,22 +30,17 @@ NIAC2006ILL .. rubric:: Proposed Agenda :name: NIAC2006ILL_proposed-agenda - Please add suggestions for agenda items here in `bullet - form `__. If you want to add extended - comments concerning any agenda item, please use this Wiki page"s - `Talk Page `__. - - Welcome and Introduction - Review of NIAC"2005 minutes - `Renew members `__ - Add additional member - Pete Jemian Advanced Photon Source, USA - - Elect `chair and executive - secretary `__ - effective at the + - Elect chair and executive + secretary effective at the end of the meeting - Amend constitution to state that all officers, including technical chair, are elected at each meeting, effective at the end of the meeting - - Discuss and vote on `TOF raw file definition `__ + - Discuss and vote on `TOF raw file definition <../content/TOFRaw.html>`__ .. rubric:: General Information :name: NIAC2006ILL_general-information @@ -94,7 +89,7 @@ NIAC2006ILL **technical programming the api** "'"instruments-1 - 3-axis/reflection/`SAS `__/polarised/muons """ + 3-axis/reflection/`SAS <../content/SAS.html>`__/polarised/muons """ - (step-scanning/multi-detector/X-ray/neutron) - examples @@ -111,7 +106,7 @@ NIAC2006ILL - prototype treated data 1D,2D data - rebinning, constant (Q,w) - `Synchrotron_Group `__ **(Andy G"tz)** + Synchrotron_Group **(Andy Goetz)** - this group will meet separately on the second and third days, and may be expected to offer objective feedback and criticism @@ -224,10 +219,8 @@ NIAC2006ILL .. rubric:: Working Groups :name: NIAC2006ILL_working-groups - - `Synchrotron_Group `__ (Andy G"tz) - - `TOF Group `__ (Freddie Akeroyd) - - `Scanning Group `__ (Paul Kienzle) - - `Technical Computing/API - Group `__ (Nick - Maliszewskyj) - - `Small-Angle Scattering Group `__ (Ron Ghosh) + - Synchrotron_Group (Andy Gotz) + - TOF Group (Freddie Akeroyd) + - Scanning Group (Paul Kienzle) + - Technical Computing/APIGroup (Nick Maliszewskyj) + - `Small-Angle Scattering Group <../content/SAS.html>`__ (Ron Ghosh) diff --git a/source/niac/NIAC2006LBL.rst b/source/niac/NIAC2006LBL.rst index f357d1a8..a6c06bda 100644 --- a/source/niac/NIAC2006LBL.rst +++ b/source/niac/NIAC2006LBL.rst @@ -14,7 +14,7 @@ NIAC2006LBL :name: NIAC2006LBL_niac-meeting---october-2006 The next meeting of the `NeXus International Advisory - Committee `__ will be held at the `Lawrence Berkeley + Committee <../niac/niac.html>`__ will be held at the `Lawrence Berkeley National Laboratory `__ near San Francisco, California, USA. The meeting will be held from October 5 to 6, 2006, immediately following `NOBUGS @@ -25,7 +25,7 @@ NIAC2006LBL If you are interested in attending (and are not already on the `list of attendees `__), contact - `Andrew G"tz `__. + Andrew Gotz . .. rubric:: Start of the Meeting :name: start-of-the-meeting @@ -59,12 +59,12 @@ NIAC2006LBL NeXus. - SCAN definition similar to TOFRAW definition - NXcharacterization needs to be formalized - - Finalize `archive definition `__ + - Finalize `archive definition <../content/Archive_Definition.html>`__ .. rubric:: Tabled Until Next Time :name: tabled-until-next-time - - Moving from `Meta-DTDs `__ to XML Schema. see + - Moving from `Meta-DTDs <../content/Metaformat.html>`__ to XML Schema. see `NeXML proposal `__ .. rubric:: October 5 @@ -101,23 +101,23 @@ NIAC2006LBL - Examine classes for ratification - `X-ray Experimental (Synchrotron) raw NeXus - data `__ - - `Archive_Definition `__ + data <../content/XESraw.html>`__ + - `Archive_Definition <../content/Archive_Definition.html>`__ - - Examine instruments for ratification - `Monochromatic Neutron and X-ray Small-Angle - Scattering `__ + Scattering <../content/SAS.html>`__ - Reflectometry - - `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer `__ - - `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer `__ - - `Time-of-Flight_Neutron_Powder_Diffraction `__ - - `Muon_Time_Differential `__ - - `MonoXPSD `__ Monochromatic Single Crystal + - Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer + - Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer + - `Time-of-Flight_Neutron_Powder_Diffraction <../content/Time-of-Flight_Neutron_Powder_Diffraction.html>`__ + - `Muon_Time_Differential <../content/Muon_Time_Differential.html>`__ + - `MonoXPSD <../content/MonoXPSD.html>`__ Monochromatic Single Crystal Diffractometer with Position Sensitive Detector - - `MonoXSingle `__ Monochromatic Single + - `MonoXSingle <../content/MonoXSingle.html>`__ Monochromatic Single Crystal Diffractometer with Single Detector - ??:?? Triage @@ -193,11 +193,10 @@ NIAC2006LBL :name: NIAC2006LBL_minutes Here are the minutes in `pdf - format <../pdfs/NIAC2006LBL_minutes.pdf>`__ or `MS-Word - format `__. + format <../pdfs/NIAC2006LBL_minutes.pdf>`__. .. rubric:: Photos :name: photos - `Group photos `__ - - `other photos `__ + - other photos diff --git a/source/niac/NIAC2006LBL_RoadMap.rst b/source/niac/NIAC2006LBL_RoadMap.rst index 546902e7..9f9d6eee 100644 --- a/source/niac/NIAC2006LBL_RoadMap.rst +++ b/source/niac/NIAC2006LBL_RoadMap.rst @@ -20,24 +20,23 @@ NIAC2006LBL RoadMap - Monochromatic Neutron and X-ray Single Crystal Diffractometers - - `MonoXPSD `__ Monochromatic Single Crystal + - `MonoXPSD <../content/MonoXPSD.html>`__ Monochromatic Single Crystal Diffractometer with Position Sensitive Detector - - `MonoXSingle `__ Monochromatic Single + - `MonoXSingle <../content/MonoXSingle.html>`__ Monochromatic Single Crystal Diffractometer with Single Detector - - `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer `__ - - `Archive_Definition `__ + - Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer + - `Archive_Definition <../content/Archive_Definition.html>`__ - priority 2 - - `Time-of-Flight_Neutron_Powder_Diffraction `__ - - `Monochromatic Neutron and X-ray Small Angle - Scattering `__ + - `Time-of-Flight_Neutron_Powder_Diffraction <../content/Time-of-Flight_Neutron_Powder_Diffraction.html>`__ + - `Monochromatic Neutron and X-ray Small Angle Scattering <../content/SAS.html>`__ - Time-of-Flight Small Angle Scattering - priority 3 - - `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer `__ + - Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer - Time-of-Flight Neutron Direct Geometry Spectrometer - priority 4 @@ -61,8 +60,7 @@ NIAC2006LBL RoadMap When looking at a geometry is the orientation applied before the translation or the other way around. - .. rubric:: `XESraw `__ - :name: xesraw + .. rubric:: `XESraw <../content//XESraw.html>`__ .. rubric:: scanning environment variables :name: scanning-environment-variables @@ -102,4 +100,4 @@ NIAC2006LBL RoadMap - (*working*) SCAN definition similar to TOFRAW definition - (*working*) NXcharacterization needs to be formalized - (*working*) Finalize `archive - definition `__ + definition <../content/Archive_Definition.html>`__ diff --git a/source/niac/NIAC2006LBL_attendees.rst b/source/niac/NIAC2006LBL_attendees.rst index 39056e75..a4d3cd15 100644 --- a/source/niac/NIAC2006LBL_attendees.rst +++ b/source/niac/NIAC2006LBL_attendees.rst @@ -13,81 +13,81 @@ NIAC2006LBL attendees .. rubric:: NIAC 2006 at LBL List of Attendees :name: NIAC2006LBL_attendees_niac-2006-at-lbl-list-of-attendees - Attendees of the `2006 NIAC Meeting `__ at + Attendees of the `2006 NIAC Meeting `__ at Lawrence Berkeley Laboratory, Berkeley, CA, USA. +-------------------+---+-------------------+---+-------------------+ - | `Freddie | | CCLRC ISIS | | DoubleTree | + | Freddie | | CCLRC ISIS | | DoubleTree | | Akeroy | | facility | | | - | d `__ | | | | | + | d | | | | | +===================+===+===================+===+===================+ - | `Stuart | | Diamond Light | | DoubleTree | + | Stuart | | Diamond Light | | DoubleTree | | Campbel | | Source | | | - | l `__ | | | | | + | l | | | | | +-------------------+---+-------------------+---+-------------------+ | Matthias Drochner | | Forschungzentrum | | | | | | J lich | | | +-------------------+---+-------------------+---+-------------------+ - | `Andrew | | European | | DoubleTree | - | Gotz `__ | | Radiation | | | + | Andrew | | European | | DoubleTree | + | Gotz | | Radiation | | | | | | Facility | | | +-------------------+---+-------------------+---+-------------------+ - | `Nick | | Australian | | Durant | + | Nick | | Australian | | Durant | | Hauser `__ | | and Technology | | | + | r%3ANick.html> | | and Technology | | | | | | Organisation | | | +-------------------+---+-------------------+---+-------------------+ | Jens-Uwe Hoffman | | Hahn | | | | | | -Meitner-Institut | | | +-------------------+---+-------------------+---+-------------------+ - | `Pete | | Advanced Photon | | | + | Pete | | Advanced Photon | | | | J | | Source, Argonne | | | - | emian `__ | | Laboratory | | | + | emian | | Laboratory | | | +-------------------+---+-------------------+---+-------------------+ | Paul Kienzle | | National | | | | | | Institute of | | | | | | Standards and | | | | | | Technology | | | +-------------------+---+-------------------+---+-------------------+ - | `Przemek | | National | | | + | Przemek | | National | | | | Klosowski | | Institute of | | | - | `__ | | Technology | | | + | | | Technology | | | +-------------------+---+-------------------+---+-------------------+ - | `Mark | | Paul Scherrer | | | + | Mark | | Paul Scherrer | | | | Koennec | | Institut | | | - | ke `__ | | | | | + | ke | | | | | +-------------------+---+-------------------+---+-------------------+ - | `Laurent | | Rutherford | | Durant | - | Lerusse `__ | | Laboratory , | | | + | Laurent | | Rutherford | | Durant | + | Lerusse | | Laboratory , | | | | | | e-Science | | | +-------------------+---+-------------------+---+-------------------+ - | `Mike | | CalTech | | | - | McKerns `__ | | | | | + | Mike | | CalTech | | | + | McKerns | | | | | + | | | | | | + | | | | | | +-------------------+---+-------------------+---+-------------------+ - | `Ray | | Intense Pulsed | | DoubleTree | - | Osborn `__ | | Argonne National | | | + | Ray | | Intense Pulsed | | DoubleTree | + | Osborn | | Argonne National | | | | | | Laboratory | | | +-------------------+---+-------------------+---+-------------------+ - | `Peter | | Spallation | | DoubleTree | + | Peter | | Spallation | | DoubleTree | | Peters | | Neutron Source, | | | - | on `__ | | National | | | + | on | | National | | | | | | Laboratory | | | +-------------------+---+-------------------+---+-------------------+ - | `Thomas | | Los Alamos | | Berkeley | + | Thomas | | Los Alamos | | Berkeley | | Proff | | National | | Travelodge, 1820 | - | en `__ | | | | | + | en | | | | | +-------------------+---+-------------------+---+-------------------+ | Jiro Suzuki | | J-Parc | | | +-------------------+---+-------------------+---+-------------------+ diff --git a/source/niac/NIAC2006_Scanning_Group.rst b/source/niac/NIAC2006_Scanning_Group.rst index efd67ebd..af72d535 100644 --- a/source/niac/NIAC2006_Scanning_Group.rst +++ b/source/niac/NIAC2006_Scanning_Group.rst @@ -13,11 +13,11 @@ NIAC2006 Scanning Group Definitions for some measurement classes: - Triple axis definition: - `NXmonotas-NIAC2006 `__ + `NXmonotas-NIAC2006 <../content/NXmonotas-NIAC2006.html>`__ - Reflectometry definition: - `NXmonoref-NIAC2006 `__ + `NXmonoref-NIAC2006 <../content/NXmonoref-NIAC2006.html>`__ - TOF Reflectometry definition: - `NXtofnref-NIAC2006 `__ + `NXtofnref-NIAC2006 <../content/NXtofnref-NIAC2006.html>`__ .. rubric:: Session 1 :name: session-1 diff --git a/source/niac/NIAC2006_TOF_Group.rst b/source/niac/NIAC2006_TOF_Group.rst index 1ceff13f..e1c89189 100644 --- a/source/niac/NIAC2006_TOF_Group.rst +++ b/source/niac/NIAC2006_TOF_Group.rst @@ -13,12 +13,12 @@ NIAC2006 TOF Group .. rubric:: Time-of-Flight Working Group :name: time-of-flight-working-group - - `Freddie Akeroyd `__ - - `Franck Cecillon `__ - - `Ray Osborn `__ - - `Peter Peterson `__ - - `Thomas Proffen `__ - - `Jiro Suzuki `__ + - Freddie Akeroyd + - Franck Cecillon + - Ray Osborn + - Peter Peterson + - Thomas Proffen + - Jiro Suzuki This group was charged with discussing matters arising from the [NXTOFRW @@ -27,14 +27,14 @@ NIAC2006 TOF Group case)](TOFRaw.html "wikilink") proposal in preparation for a full group discussion. - .. rubric:: Summary of main proposals in `TOFRaw `__ + .. rubric:: Summary of main proposals in `TOFRaw <../content/TOFRaw.html>`__ :name: summary-of-main-proposals-in-tofraw #. Some new meta-data names in NXentry for archiving and cataloguing of data #. Some thoughts about scans (now moved to - `NXTOFRWSC `__ and being considered by the - `Scanning Group `__) + `NXTOFRWSC <../content/TOFRawScan.html>`__ and being considered by the + Scanning Group ) #. General and Area detector specific NXdetector #. Additional options for specifying pixel geometry with area detectors (edges, corners, etc.) @@ -50,8 +50,8 @@ NIAC2006 TOF Group time-of-flight instruments. One new member of type NXgeometry called **origin** is introduced into all NXdetectors - this member is used to define a logical centre of the detector and its - `NXshape `__ member defines a bounding box for the - whole detector bank/array. If the `NXgeometry `__ + NXshape member defines a bounding box for the + whole detector bank/array. If the NXgeometry instance **geometry** within NXdetector is used to specify pixel locations, it should be define positions relative to this detector origin. @@ -81,22 +81,22 @@ NIAC2006 TOF Group :name: nxgeometry-revisited Before giving the definitions a quick recap of - `NXgeometry `__ is in order. This class, through - its members `NXtranslation `__, - `NXorientation `__ and - `NXshape `__, allows the position, orientation and + NXgeometry is in order. This class, through + its members NXtranslation , + NXorientation and + NXshape , allows the position, orientation and physical extent (size) of an object, or set of objects, to be specified. Translation and orientation can be relative i.e. with respect to an arbitrary origin whihc is just another - `NXgeometry `__ object which defines a point in + NXgeometry object which defines a point in space and a set of default axes directions. When we write **NXgeometry[i]** in the definitions below we do not mean an array of NXgeometry object (which is not allowed by NeXus) - instead we are using this as shorthand for indexing the **numobj** array - dimension the `NXtranslation `__, - `NXorientation `__ and - `NXshape `__ objects within the - `NXgeometry `__ + dimension the NXtranslation , + NXorientation and + NXshape objects within the + NXgeometry .. rubric:: Type 1: Point Detector :name: type-1-point-detector @@ -178,7 +178,7 @@ NIAC2006 TOF Group .. rubric:: Hardware detector ganging :name: hardware-detector-ganging - `TOFRaw `__ originally suggested using an + `TOFRaw <../content/TOFRaw.html>`__ originally suggested using an **\_unganged** suffix on the ungrouped elements e.g. polar_angle_unganged. It was decided that creating a substructure within the NXdetector and putting the information there was better @@ -199,16 +199,15 @@ NIAC2006 TOF Group mapping) - An alternative is the gang_count and gang_index method in - `TOFRaw `__, but this does require sorting of the + `TOFRaw <../content/TOFRaw.html>`__, but this does require sorting of the polar_angle etc. arrays prior to writing to the file .. rubric:: Proposals :name: NIAC2006_TOF_Group_proposals #. That the new data items in required in NXentry and NXuser for - archiving be ratified. `Laurent - Lerusse `__ has volunteered to produce a - description such that any instruement definition that wishes + archiving be ratified. Laurent Lerusse has volunteered to produce a + description such that any instrument definition that wishes can "conform to" this. #. That NeXus implement inheritance in definitions and classes by a method yet to be finalised. diff --git a/source/niac/NIAC2007.rst b/source/niac/NIAC2007.rst index 8fa34351..3dcec49e 100644 --- a/source/niac/NIAC2007.rst +++ b/source/niac/NIAC2007.rst @@ -14,7 +14,7 @@ NIAC2007 :name: NIAC2007_niac-meeting---september-2007 The next meeting of the `NeXus International Advisory - Committee `__ will be held at the + Committee <../niac/niac.html>`__ will be held at the `Hahn-Meitner-Institut `__ in Berlin, Germany. The meeting is planned for September 24-26, 2007. @@ -36,8 +36,8 @@ NIAC2007 Wannsee `__. The rate for a single room is for the first overnight stay 34 and 24 for every following one (double room 52 /34 ). *It is not possible - to pay with credit card, sorry.* `Jens-Uwe - Hoffmann `__ + to pay with credit card, sorry.* Jens-Uwe + Hoffmann `1 `__ is you local contact for reservation and access authorization, please send your name, address and your **passport number**. It is not possible to pay by @@ -80,8 +80,8 @@ NIAC2007 :name: NIAC2007_list-of-attendees If you are interested in attending (and not already on the `list - of attendees `__), contact `Jens-Uwe - Hoffmann `__. + of attendees `__), contact Jens-Uwe + Hoffmann . .. rubric:: Proposed Agenda :name: NIAC2007_proposed-agenda @@ -180,7 +180,7 @@ NIAC2007 - metaDTD vs Schema (XSD) - Definition URL declaration - Object oriented definitions, `Marks - suggestion `__ + suggestion <../pdfs/NeXusOBJ.pdf>`__ - NeXusBeans .. rubric:: Unscheduled @@ -189,7 +189,7 @@ NIAC2007 .. rubric:: Geometry :name: geometry - - Ratify `Coordinate Systems `__ + - Ratify Coordinate Systems - Explicit geometry definition in base class definition - New shapes @@ -199,7 +199,7 @@ NIAC2007 .. rubric:: Tech Group Meeting :name: tech-group-meeting - Led by `Akeroyd `__ + Led by Akeroyd - Definition URL discussion - NXtranslate @@ -225,10 +225,10 @@ NIAC2007 :name: ratify-definitions - Archive - - ScanRaw (`G"tz `__) - - Muon instruments (`Cottrell `__) - - `Event Data `__ - lessons learned - (`Peterson `__) + - ScanRaw (Gotz ) + - Muon instruments (Cottrell ) + - Event Data lessons learned + (Peterson ) .. rubric:: Break-out Groups :name: break-out-groups @@ -244,7 +244,7 @@ NIAC2007 .. rubric:: Suggested Discussion Topics :name: suggested-discussion-topics - .. rubric:: `Jens `__ + .. rubric:: Jens :name: -jens - Flat-Cone Diffractometer Definition @@ -258,7 +258,7 @@ NIAC2007 - Visit Reactor BER II - .. rubric:: `Steve `__ + .. rubric:: Steve :name: -steve - Definitions for Muon Instruments @@ -266,7 +266,7 @@ NIAC2007 - Extensions to NXtranslate - .. rubric:: `Nick `__ + .. rubric:: Nick :name: -nick - Ratify the Coordinate Systems definition from Freddie. @@ -278,7 +278,7 @@ NIAC2007 Proposals to follow - .. rubric:: `Mark `__ + .. rubric:: Mark :name: -mark - Future of IDL-NeXus API @@ -289,16 +289,16 @@ NIAC2007 And so did I. But if we have more pressing business to attent too, then this has lower priority. - .. rubric:: `Freddie `__ + .. rubric:: Freddie :name: -freddie - New API routines for handling chunked datasets: NXchunkmakedata, NXgetchunk, NXputchunk - .. rubric:: `Laurent `__ + .. rubric:: Laurent :name: -laurent - - `Archive Definition `__ + - `Archive Definition <../content/Archive_Definition.html>`__ - nxingest a tool to extract metadata from a NeXus files and store it into a reformated xml document. - Status of NeXus/imgCif usage in the facilities (who is using @@ -370,7 +370,7 @@ NIAC2007 :name: NIAC2007_minutes These are available `online `__ or in `pdf - format `__. + format <../pdfs/NIAC2007HMI_minutes.pdf>`__. .. rubric:: NIAC2007 photos :name: NIAC2007_niac2007-photos diff --git a/source/niac/NIAC2007_Minutes.rst b/source/niac/NIAC2007_Minutes.rst index c840d3c6..87a8360e 100644 --- a/source/niac/NIAC2007_Minutes.rst +++ b/source/niac/NIAC2007_Minutes.rst @@ -10,7 +10,7 @@ NIAC2007 Minutes :name: NIAC2007_Minutes_niac2007-minutes :class: page-title - Version in `PDF `__ format + Version in `PDF <../pdfs/NIAC2007HMI_minutes.pdf>`__ format .. rubric:: NIAC meeting " HMI, Berlin (Germany) 24, 25, 26 September 2007 @@ -55,17 +55,17 @@ NIAC2007 Minutes orientation. - Mark Koennecke mentioned that he had also prepared a talk on object orientation. - - It was also noted that the `NXgeometry `__ + - It was also noted that the NXgeometry class supported boxes and cylinders. - Nexus paper: Mark Koennecke noted that there is a publication on Nexus which appeared as part of the ICNS proceedings *Physica B 385-386 (2006) 1343-1345* - There was a short discussion on scans and the role of - `TOFRawScan `__. Nick Hauser wanted to know if + `TOFRawScan <../content/TOFRawScan.html>`__. Nick Hauser wanted to know if there was a Nexus scan object ACTION : Nick Hauser to take over the - `NXgenericScan `__ definition + `NXgenericScan <../content/GenericScan.html>`__ definition .. rubric:: Thanks :name: thanks @@ -120,7 +120,7 @@ NIAC2007 Minutes but input from other NIAC members is required on naming of instrument definitions before moving them too. This leads onto the open question of how to name definitions like - `TOFRaw `__ " should all definitions have an NX + `TOFRaw <../content/TOFRaw.html>`__ " should all definitions have an NX prefix like base classes or not? Pete Jemian suggests differentiating names between Instruments + @@ -207,7 +207,7 @@ NIAC2007 Minutes .. rubric:: From 2006 ILL Meeting :name: from-2006-ill-meeting - - Unassigned - `NXcharacterization `__ + - Unassigned - NXcharacterization needs to be formalized and ratified - this has been repeated in #11 - Unassigned - Synchronize the website definitions with those in @@ -500,7 +500,6 @@ NIAC2007 Minutes subversion. .. rubric:: NXGeometry - :name: nxgeometry Mark presents simple coordinate system + polar coordinate system. Ray corrected Mark"s notion of polar angle, Ray says polar angle diff --git a/source/niac/NIAC2008.rst b/source/niac/NIAC2008.rst index 9766f561..2534c916 100644 --- a/source/niac/NIAC2008.rst +++ b/source/niac/NIAC2008.rst @@ -14,7 +14,7 @@ NIAC2008 :name: NIAC2008_niac-meeting---october-2008 The next meeting of the `NeXus International Advisory - Committee `__ will be held at `Rydges Cronulla Beach + Committee <../niac/niac.html>`__ will be held at `Rydges Cronulla Beach Hotel `__ in `Sydney Australia `__ on October 30-31, 2008. This is a satellite meeting of the `NOBUGS @@ -30,8 +30,8 @@ NIAC2008 :name: NIAC2008_list-of-attendees If you are interested in attending (and not already on the `list - of attendees `__), contact `Nick - Hauser `__. + of attendees `__), contact Nick + Hauser . .. rubric:: Proposed Agenda :name: NIAC2008_proposed-agenda @@ -54,7 +54,7 @@ NIAC2008 - `Renew members `__ - Elect chair, executive secretary, and technical committee chair - Discus what topics are most important - - `Mission statement `__ + - Mission statement Lunch @@ -103,7 +103,7 @@ NIAC2008 - Objective: why schema? - validation, tools e.g. IDE. Informative session. - Pros and cons of xsd and rng - - Review of `current work `__. (Overview) + - Review of current work . (Overview) - Vote on use of xsd. - schema as a path to O-O NeXus diff --git a/source/niac/NIAC2008_attendees.rst b/source/niac/NIAC2008_attendees.rst index 16bdd8e4..44b3f220 100644 --- a/source/niac/NIAC2008_attendees.rst +++ b/source/niac/NIAC2008_attendees.rst @@ -16,49 +16,49 @@ NIAC2008 attendees +----------------------+----------------------+----------------------+ | Name | Company/Institute | | +======================+======================+======================+ - | `Peter Peterson | | Oak Ridge National | - | (Chair) `__ | | | + | Peter Peterson | | Oak Ridge National | + | (Chair) | | | +----------------------+----------------------+----------------------+ - | `Freddie Akeroyd | | ISIS, UK | + | Freddie Akeroyd | | ISIS, UK | | (Secretary) | | | - | `__ | | | + | | | | +----------------------+----------------------+----------------------+ - | `Nick | | Australian Nuclear | - | Hauser `__ | | Technology | + | Nick | | Australian Nuclear | + | Hauser < | | Science and | + | Nick_Hauser.html> | | Technology | | | | Organisation, | | | | Australia | +----------------------+----------------------+----------------------+ - | `Jens-Uwe | | Helmholtz Zentrum | + | Jens-Uwe | | Helmholtz Zentrum | | Hof | | Berlin (HMI before), | - | fmann `__ | | | + | fmann | | | +----------------------+----------------------+----------------------+ - | `Mark | | Paul Scherrer | + | Mark | | Paul Scherrer | | K | | Institut | - | oennecke `__ | | | + | oennecke | | | +----------------------+----------------------+----------------------+ | Peter Lewis | | Australian | | | | Synchrotron | +----------------------+----------------------+----------------------+ - | `Jiro | | KEK, Japan | - | Suzuki `__ | | | + | Jiro | | KEK, Japan | + | Suzuki < | | | + | Jiro_Suzuki.html> | | | +----------------------+----------------------+----------------------+ - | `Pete | | Argonne National | - | Jemian `__ | | | + | Pete | | Argonne National | + | Jemian < | | Laboratory, USA | + | Pete_Jemian.html> | | | +----------------------+----------------------+----------------------+ | Paul Lewis | Los Alamos National | | | | Laboratory | | +----------------------+----------------------+----------------------+ - | `Matthias | Juelich | | + | Matthias | Juelich | | | Dro | | | - | chner `__ | | | + | chner | | | +----------------------+----------------------+----------------------+ |photo of NIAC 2008 attendees| |Rydges Cronulla Sydney hotel, site diff --git a/source/niac/NIAC2010.rst b/source/niac/NIAC2010.rst index 448dc349..cdac36ab 100644 --- a/source/niac/NIAC2010.rst +++ b/source/niac/NIAC2010.rst @@ -51,9 +51,9 @@ NIAC2010 **Do not write in this table. This is to indicate the list of people we know are attending** - If you want to attend please email either `Stuart - Campbell `__ or `Peter - Peterson `__. + If you want to attend please email either Stuart + Campbell or Peter + Peterson . | **It is important that if entering the US on a Visa Waiver to ensure that you get a VWB (Visa Waiver Business) and NOT a @@ -67,35 +67,35 @@ NIAC2010 +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ | Name | Company/Institute | ORNL Pass | NOBUGS? | Registration | ANL gate pass? | +=======================================================+===================================================+========================+========================+========================+========================+ - | `Frederick Akeroyd `__ | ISIS Facility, Rutherford Appleton Laboratory, UK | approved | YES | | | + | Frederick Akeroyd | ISIS Facility, Rutherford Appleton Laboratory, UK | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Stuart Campbell `__ | ORNL, USA | approved | YES | | | + | Stuart Campbell | ORNL, USA | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ | Peter Chang | Diamond Light Source, UK | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Steve Cottrell `__ | Rutherford Appleton Laboratory, UK | approved | YES | | | + | Steve Cottrell | Rutherford Appleton Laboratory, UK | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ | Matthias Drochner | Julich, Germany | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Nick Hauser `__ | ANSTO, Australia | approved | YES | | | + | Nick Hauser | ANSTO, Australia | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Jens-Uwe Hoffmann `__ | Helmholtz Zentrum Berlin (renamed HMI), Germany | approved | YES | | | + | Jens-Uwe Hoffmann | Helmholtz Zentrum Berlin (renamed HMI), Germany | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Pete Jemian `__ | APS, ANL, USA | approved | **NO** | | | + | Pete Jemian | APS, ANL, USA | approved | **NO** | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ | Suzuki Jiro | J-PARC, Japan | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Mark Koennecke `__ | PSI, Switzerland | approved | YES | | | + | Mark Koennecke | PSI, Switzerland | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Ray Osborn `__ | ANL, USA | approved | **NO** | | | + | Ray Osborn | ANL, USA | approved | **NO** | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Peter Peterson `__ | ORNL, USA | approved | YES | | | + | Peter Peterson | ORNL, USA | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Tobias Richter `__ | Diamond Light Source, UK | approved | YES | | | + | Tobias Richter | Diamond Light Source, UK | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ | Claude Saunders | APS, ANL, USA | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ - | `Armando Sole `__ | European Synchrotron Radiation Facility, France | approved | YES | | | + | Armando Sole | European Synchrotron Radiation Facility, France | approved | YES | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ | Benjamin Watts | Swiss Light Source, Switzerland | approved | **NO** | | | +-------------------------------------------------------+---------------------------------------------------+------------------------+------------------------+------------------------+------------------------+ diff --git a/source/niac/NIAC2010_CodeCamp.rst b/source/niac/NIAC2010_CodeCamp.rst index 3dc49c8f..8418a1a3 100644 --- a/source/niac/NIAC2010_CodeCamp.rst +++ b/source/niac/NIAC2010_CodeCamp.rst @@ -21,9 +21,9 @@ NIAC2010 CodeCamp **Do not write in this table. This is to indicate the list of people we know are attending** - If you want to attend please email either `Stuart - Campbell `__ or `Peter - Peterson `__. + If you want to attend please email either Stuart + Campbell or Peter + Peterson . | **It is important that if entering the US on a Visa Waiver to ensure that you get a VWB (Visa Waiver Business) and NOT a @@ -38,16 +38,16 @@ NIAC2010 CodeCamp | | | ISIS | | approved | | | Frederick | | Facility, | | | | | Aker | | R | | | | - | oyd | | boratory, | | | | | | | UK | | | | +-----------+-----------+-----------+-----------+-----------+---+ | Stuart | | ORNL, USA | | approved | 2 | | Campb | | | | | | - | ell | | | | | | +-----------+-----------+-----------+-----------+-----------+---+ @@ -58,22 +58,22 @@ NIAC2010 CodeCamp +-----------+-----------+-----------+-----------+-----------+---+ | Pete | | APS, ANL, | | approved | | | Jemian < | | USA | | | | - | User%3APe | | | | | | + | Pe | | | | | | | te_Jemian | | | | | | | .html> | | | | | | +-----------+-----------+-----------+-----------+-----------+---+ | Jens-Uwe | | Helmholtz | | approved | | | Hoffman | | Zentrum | | | | - | n | | Germany | | | | +-----------+-----------+-----------+-----------+-----------+---+ | Mark | | PSI, | | approved | | | Koenn | | Sw | | | | - | ecke | | | | | | +-----------+-----------+-----------+-----------+-----------+---+ | Peter | | ORNL, USA | | approved | 3 | @@ -88,8 +88,8 @@ NIAC2010 CodeCamp +-----------+-----------+-----------+-----------+-----------+---+ | Tobias | | Diamond | | approved | | | Ric | | Light | | | | - | hter | | | | | | +-----------+-----------+-----------+-----------+-----------+---+ @@ -100,8 +100,8 @@ NIAC2010 CodeCamp | | | itzerland | | | | +-----------+-----------+-----------+-----------+-----------+---+ | Marie | | ORNL, USA | | approved | | - | Yao | | | | | | +-----------+-----------+-----------+-----------+-----------+---+ | | | | | | | diff --git a/source/niac/NIAC2011_CodeCamp.rst b/source/niac/NIAC2011_CodeCamp.rst index 29322df0..65c851a5 100644 --- a/source/niac/NIAC2011_CodeCamp.rst +++ b/source/niac/NIAC2011_CodeCamp.rst @@ -328,25 +328,25 @@ NIAC2011 CodeCamp .. rubric:: Participants :name: NIAC2011_CodeCamp_participants - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | participant | affiliation | arriving | departing | registration? | ANL gate pass? | - +===========================================================+==========================================+============+============+===============+================+ - | `Pete Jemian `__ | `APS `__ | host | host | host | host | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Mark K"nnecke `__ | `PSI `__ | 20-11-10 | 20-11-24 | complete | yes | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Tobias Richter `__ | `Diamond `__ | 20-11-19 | 20-11-25 | complete | yes | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Eugen Wintersberger `__ | `DESY `__ | 20-11-19 | 20-11-23 | complete | yes | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Freddie Akeroyd `__ | `ISIS `__ | 20-11-19 | 20-11-23 | complete | yes | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Peter Peterson `__ | `SNS `__ | 20-11-19 | 20-11-22 | complete | yes | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Ray Osborn `__ | `MSD/ANL `__ | 20-11-20 | 20-11-22 | N/A | yes | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ - | `Paul Kienzle `__ | `NCNR/NIST `__ | 20-11-19 | 20-11-23 | ? | pending | - +-----------------------------------------------------------+------------------------------------------+------------+------------+---------------+----------------+ + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | participant | affiliation | arriving | departing | registration? | ANL gate pass? | + +===========================================================+===========================================+============+============+===============+================+ + | Pete Jemian | `APS `__ | host | host | host | host | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Mark Konnecke | `PSI `__ | 20-11-10 | 20-11-24 | complete | yes | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Tobias Richter | `Diamond `__ | 20-11-19 | 20-11-25 | complete | yes | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Eugen Wintersberger | `DESY `__ | 20-11-19 | 20-11-23 | complete | yes | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Freddie Akeroyd | `ISIS `__ | 20-11-19 | 20-11-23 | complete | yes | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Peter Peterson | `SNS `__ | 20-11-19 | 20-11-22 | complete | yes | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Ray Osborn | `MSD/ANL `__ | 20-11-20 | 20-11-22 | N/A | yes | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ + | Paul Kienzle | `NCNR/NIST `__ | 20-11-19 | 20-11-23 | ? | pending | + +-----------------------------------------------------------+-------------------------------------------+------------+------------+---------------+----------------+ .. rubric:: Final Report diff --git a/source/niac/NIAC2014.rst b/source/niac/NIAC2014.rst index 8d4ba801..d6f1a734 100644 --- a/source/niac/NIAC2014.rst +++ b/source/niac/NIAC2014.rst @@ -103,7 +103,7 @@ NIAC2014 | Step 2: Send an email to jemian@anl.gov announcing your plan to attend. | Step 3: Confirm your name appears on the official `list of - attendees `__ below. + attendees `__ below. .. rubric:: APS Visitor registration :name: NIAC2014_aps-visitor-registration @@ -171,14 +171,14 @@ NIAC2014 | | | /Inst | (1 | 8-19) | date | date | sitor | rwork | pass | | | | | | | | | | | | | itute | 5-17) | | | | | | | | | | | | | | | | +====+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+=====+=======+=======+=======+ - | 1 | | `Pete | | Adv | | YES | | YES | | host | | host | | local | | n/a | | local | + | 1 | | Pete | | Adv | | YES | | YES | | host | | host | | local | | n/a | | local | | | | Jemia | | anced | | | | | | | | | | | | | | | - | | | n `__ | | gonne | | | | | | | | | | | | | | | + | | | n < | | P | | | | | | | | | | | | | | | + | | | Pete | | hoton | | | | | | | | | | | | | | | + | | | _Jemia| | So | | | | | | | | | | | | | | | + | | | n.htm | | urce, | | | | | | | | | | | | | | | + | | | l> | | Ar | | | | | | | | | | | | | | | + | | | | | gonne | | | | | | | | | | | | | | | | | | | | Nat | | | | | | | | | | | | | | | | | | | | ional | | | | | | | | | | | | | | | | | | | | L | | | | | | | | | | | | | | | @@ -189,48 +189,48 @@ NIAC2014 | | | | | IL, | | | | | | | | | | | | | | | | | | | | USA | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ - | 2 | | `He | | Do | | YES | | YES | | 2014- | | 2014- | | com | | n/a | | com | + | 2 | | He | | Do | | YES | | YES | | 2014- | | 2014- | | com | | n/a | | com | | | | rbert | | wling | | | | | | 12-14 | | 12-19 | | plete | | | | plete | | | | Bern | | Col | | | | | | | | | | | | | | | | | | stein | | lege, | | | | | | | | | | | | | | | - | | | `__ | | | | | | | | | | | | | | | | | + | | | l> | | | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 3 | | Mark | | Paul | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | | | | K | | Sch | | | | | | 12-14 | | 12-20 | | plete | | roved | | plete | | | | oenne | | errer | | | | | | | | | | | | | | | | | | cke < | | Insti | | | | | | | | | | | | | | | - | | | User% | | tute, | | | | | | | | | | | | | | | - | | | 3AMar | | S | | | | | | | | | | | | | | | - | | | k_Koe | | witze | | | | | | | | | | | | | | | - | | | nneck | | rland | | | | | | | | | | | | | | | - | | | e.htm | | | | | | | | | | | | | | | | | - | | | l> | | | | | | | | | | | | | | | | | + | | | Mar | | tute, | | | | | | | | | | | | | | | + | | | k_Koe | | S | | | | | | | | | | | | | | | + | | | nneck | | witze | | | | | | | | | | | | | | | + | | | l> | | rland | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 4 | | Mark | | Di | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | | | | Basha | | amond | | | | | | 12-14 | | 12-19 | | plete | | roved | | plete | - | | | m | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 5 | | | | ISIS | | NO | | YES | | 2014- | | 2014- | | com | | app | | com | | | | Steve | | Faci | | | | | | 12-17 | | 12-19 | | plete | | roved | | plete | | | | Cottr | | lity, | | | | | | | | | | | | | | | | | | ell < | | Ruthe | | | | | | | | | | | | | | | - | | | User% | | rford | | | | | | | | | | | | | | | - | | | 3ASte | | App | | | | | | | | | | | | | | | - | | | ve_Co | | leton | | | | | | | | | | | | | | | - | | | ttrel | | L | | | | | | | | | | | | | | | - | | | l.htm | | abora | | | | | | | | | | | | | | | - | | | l> | | tory, | | | | | | | | | | | | | | | + | | | Ste | | rford | | | | | | | | | | | | | | | + | | | ve_Co | | App | | | | | | | | | | | | | | | + | | | ttrel | | leton | | | | | | | | | | | | | | | + | | | l.htm | | L | | | | | | | | | | | | | | | + | | | l> | | abora | | | | | | | | | | | | | | | + | | | | | tory, | | | | | | | | | | | | | | | | | | | | UK | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 6 | | | | DESY, | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | @@ -238,8 +238,8 @@ NIAC2014 | | | Wint | | rmany | | | | | | | | | | | | | | | | | | ersbe | | | | | | | | | | | | | | | | | | | | rger | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 8 | Ray | | Ar | | YES | | YES | | ANL | | ANL | | local | | n/a | | local | | | | Osbo | | gonne | | | | | | staff | | staff | | | | | | | | - | | rn | | USA | | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 9 | | Jiro | | J- | | NO | | YES | | 2014- | | 2014- | | com | | app | | com | | | | Suzuk | | PARC, | | | | | | 12-17 | | 12-20 | | plete | | roved | | plete | - | | | i | | | | | | | | | | | | | | | | | + | | | Tob | | So | | | | | | | | | | | | | | | + | | | ias_R | | urce, | | | | | | | | | | | | | | | + | | | ichte | | S | | | | | | | | | | | | | | | + | | | r.htm | | candi | | | | | | | | | | | | | | | + | | | l> | | navia | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | +----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+ | 11 | | Ben | | Swiss | | YES | | YES | | 2014- | | 2014- | | com | | app | | com | | | | Wa | | Light | | | | | | 12-14 | | 12-19 | | plete | | roved | | plete | diff --git a/source/niac/NIAC2014_CodeCamp.rst b/source/niac/NIAC2014_CodeCamp.rst index 4e15a929..3343bc66 100644 --- a/source/niac/NIAC2014_CodeCamp.rst +++ b/source/niac/NIAC2014_CodeCamp.rst @@ -33,7 +33,7 @@ NIAC2014 CodeCamp posted on the `NeXus GitHub `__ repository - Proposals and other topics listed on the - `Discussions `__ page + Discussions page - Close issues that are of minor importance and not of particular concern to anybody and not likely to be resolved any soon. @@ -54,10 +54,10 @@ NIAC2014 CodeCamp implement difference in rules between base classes and application definitions - - Discuss `NeXus interfaces `__ + - Discuss `NeXus interfaces <../content/Objects_or_Interfaces.html>`__ - `How to avoid name clashes during future extensions of the Nexus - standard `__ + standard <../content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html>`__ - Optional contents in application definitions? - Discuss lightweight tags versus application definitions - Rules for multi file NeXus files diff --git a/source/niac/NIAC2014_Meeting.rst b/source/niac/NIAC2014_Meeting.rst index 61167a4e..52e8c710 100644 --- a/source/niac/NIAC2014_Meeting.rst +++ b/source/niac/NIAC2014_Meeting.rst @@ -41,7 +41,7 @@ NIAC2014 Meeting - Votes on new members - Electing new officers, candidates get ready! - Revise Constitution `Terms of - Reference `__ : + Reference `__ : - item 3: change wording of "instrument and group class definitions" to contemporary terms (base classes and @@ -74,13 +74,13 @@ NIAC2014 Meeting - NXdata: - proposal: describe `how to find the default - data <2014_How_to_find_default_data.html>`__ + data <../content/2014_How_to_find_default_data.html>`__ - proposal: describe how data are related (particularly: `axes - and uncertainties <2014_axes_and_uncertainties.html>`__) + and uncertainties <../content/2014_axes_and_uncertainties.html>`__) - NXformula - `Update for NXflou application - definition `__ + definition <../content/Update_for_NXflou_application_definition.html>`__ .. rubric:: NIAC Agenda :name: NIAC2014_Meeting_niac-agenda @@ -173,7 +173,7 @@ NIAC2014 Meeting Vote on proposal for NXdata axes with indices attribute only required when required to resolve ambiguity. All in favour. Vote on proposal with indices required as in - `2014_axes_and_uncertainties <2014_axes_and_uncertainties.html>`__. + `2014_axes_and_uncertainties <../content/2014_axes_and_uncertainties.html>`__. Accepted: 9 in favour. Strong disagreement by Ray Osborn as adoption is noted: "Adoption of NeXus will be hampered by additional complexity being required unnecessarily". Ben Watts @@ -199,7 +199,7 @@ NIAC2014 Meeting Ratification of new and amended base classes and definitions. NXfluo - `Update_for_NXflou_application_definition `__ + `Update_for_NXflou_application_definition <../content/Update_for_NXflou_application_definition.html>`__ Resolution: Proposal is in agreement with existing scan rules. No vote required. Further amendments to the application definition may be required, but that needs to be refined. Mark B and Eugen W diff --git a/source/niac/NIAC2016Minutes.rst b/source/niac/NIAC2016Minutes.rst index 60aef923..abb2741a 100644 --- a/source/niac/NIAC2016Minutes.rst +++ b/source/niac/NIAC2016Minutes.rst @@ -226,7 +226,6 @@ NIAC2016Minutes above. We trust Aaron to apply the changes. .. rubric:: NXsample - :name: nxsample Tobias Richter presents suggested changes to NXsample. diff --git a/source/niac/NIAC2020.rst b/source/niac/NIAC2020.rst index c65f9e68..ac507d68 100644 --- a/source/niac/NIAC2020.rst +++ b/source/niac/NIAC2020.rst @@ -25,7 +25,7 @@ NIAC2020 and published here before October 1st. Voting on changes to the NeXus standard is reserved for `committee - members `__, but any + members <../niac/niac.html>`__, but any interested parties are welcome to observe and stimulate discussions. Topics for the NIAC meeting should be registered as `issues `__ in the diff --git a/source/niac/NIAC2020minutes_concluding.rst b/source/niac/NIAC2020minutes_concluding.rst index 992c23ee..da508a02 100644 --- a/source/niac/NIAC2020minutes_concluding.rst +++ b/source/niac/NIAC2020minutes_concluding.rst @@ -10,7 +10,7 @@ NIAC2020minutes concluding :name: NIAC2020minutes_concluding_niac-2020-concluding-session-minutes :class: page-title - The following `NIAC `__ + The following `NIAC <../niac/niac.html>`__ members were present: SC, FA, HB, RB, PJ, AB, PC, BW, WG, AS, TM, MJ, RO, MK, HG diff --git a/source/niac/NIAC2022_spring.rst b/source/niac/NIAC2022_spring.rst index d69eddd6..000ca677 100644 --- a/source/niac/NIAC2022_spring.rst +++ b/source/niac/NIAC2022_spring.rst @@ -14,7 +14,7 @@ NIAC2022 spring 2022. It aims to provide some decisions and feedback requested by the community. Since it is not the "ordinary" biennial NIAC meeting (which will be `held in September `__), the - `constitution `__ lays out stricter rules for making decisions: + `constitution <../niac/niac.html>`__ lays out stricter rules for making decisions: "Voting outside of the biennial NIAC meetings can take two forms. Firstly, memberships can be approved by email ballot. All other diff --git a/source/niac/NIACActionItems.rst b/source/niac/NIACActionItems.rst index d3f67faf..7f9b2d85 100644 --- a/source/niac/NIACActionItems.rst +++ b/source/niac/NIACActionItems.rst @@ -17,13 +17,13 @@ NIACActionItems :name: in-progress - `From NIAC 2006 - LBL `__ + LBL `__ .. rubric:: Completed :name: completed - `From NIAC 2006 - LBL `__ + LBL `__ .. rubric:: Action Items for Code :name: action-items-for-code @@ -32,13 +32,13 @@ NIACActionItems :name: in-progress-1 - `From NIAC 2006 - LBL `__ + LBL `__ .. rubric:: Completed :name: completed-1 - `From NIAC 2006 - LBL `__ + LBL `__ .. rubric:: Generic Action Items :name: generic-action-items @@ -48,39 +48,39 @@ NIACActionItems From `2006 LBL Meeting <../pdfs/NIAC2006LBL_minutes.pdf>`__ - - `Mark K"nnecke `__ - to make a + - Mark Koennecke to make a picture of his geometry - Unassigned - to put NXgenericScan text in manual - - `Paul Kienzle `__, `Nick - Hauser `__, and `Peter - Peterson `__ - will look into + - Paul Kienzle, Nick + Hauser , and Peter + Peterson will look into making an NSF proposal to request for money - Unassigned - to find a solution to the linking problem for when you need the source and target names to be different - - `Peter Peterson `__ - to explain + - Peter Peterson to explain how to change a definition - - `Frederick Akeroyd `__ - some + - Frederick Akeroyd some definitions exist only on the WIKI, some are in source control (Subversion); they should all be moved into Subversion. **STATUS:** all base classes moved, input from other NIAC members required on naming of instrument definitions before moving them. - - ALL - check old http://www.nexus.anl.gov web site and report + - ALL check old http://www.nexus.anl.gov web site and report any content that has not been moved to new WIKI server From `2006 ILL Meeting <../pdfs/NIAC2006minutes.pdf>`__ - - `Peter Peterson `__ - Write down + - Peter Peterson Write down the current responsibilities for the officers and circulate to the committee for approval - - `Andrew G"tz `__ - Write a report on + - Andrew Goetz Write a report on NeXus and submit to both the Neutron News and Synchrotron News - - Darren Kelly and `Raymond Osborn `__ - + - Darren Kelly and Raymond Osborn Existing definitions will be rendered in colored meta-DTD and table formats. Results will be added to website - - Darren Kelly - Style sheets (XSLT) will be created to convert + - Darren Kelly Style sheets (XSLT) will be created to convert definitions into colorized meta-DTD and table formats - - Unassigned - Modify/add base class definitions in accordance + - Unassigned Modify/add base class definitions in accordance with what was voted on in February. .. rubric:: Completed @@ -88,25 +88,25 @@ NIACActionItems From `2007 HMI-Wannsee, Berlin Meeting `__ - - Pete Jemian - Update website with constitution changes (some + - Pete Jemian Update website with constitution changes (some are even from the last meeting) From `2006 LBL Meeting <../pdfs/NIAC2006LBL_minutes.pdf>`__ - - `Frederick Akeroyd `__ - to move + - Frederick Akeroyd to move NeXus code and definitions from CVS to Subversion - - `Frederick Akeroyd `__ - to move + - Frederick Akeroyd to move NeXus mailing lists from anl.gov to lists.nexusformat.org - - `Frederick Akeroyd `__ - to + - Frederick Akeroyd to provide a Mediawiki extension for rendering definitions held in Subversion onto a Wiki page in a tabular format on the fly - - `Mark K"nnecke `__ and `Raymond - Osborn `__ - Shut down existing website + - Mark Konnecke and Raymond + Osborn Shut down existing website and mirror, leaving a redirection page to new site. [The original website at http://www.nexus.anl.gov/ contains a redirect message, but is still online so that NIAC members can check for content missing on the wiki.] - - `Peter Peterson `__ - to write up + - Peter Peterson to write up the versioning mechanism From `2006 ILL Meeting <../pdfs/NIAC2006minutes.pdf>`__ diff --git a/source/niac/niac.rst b/source/niac/niac.rst index cdf7e761..d05db375 100644 --- a/source/niac/niac.rst +++ b/source/niac/niac.rst @@ -218,13 +218,13 @@ NIAC hosted by DESY, Hamburg, Germany, November 2015 (no minutes) - `NIAC 2014 `__ NeXus Code Camp and NIAC Meeting, hosted by APS, Chicago, USA, December 2014 - (`minutes `__) + (`Minutes `__) - `NIAC 2012 `__ NeXus Code Camp and NIAC Meeting, hosted by ISIS and Diamond at RAL, Oxfordshire, UK, September - 2012 (`minutes `__) + 2012 (`minutes `__) - `NIAC 2011 `__ NeXus Code Camp and NIAC Meeting, APS, October 2011 - (`minutes `__) + (`minutes `__) - `NIAC 2010 `__ NeXus Code Camp and NIAC Meeting, ORNL, October 2010 (`minutes <../pdfs/Minutes_of_NeXus_Committee_2010.pdf>`__) @@ -272,7 +272,7 @@ NIAC teleconference meetings has been retired. In the interest of being inclusive and approachable the sessions are now open to all interested parties. See the - `Teleconferences `__ page for agendas, + `Teleconferences <../teleconferences/teleconferences.html>`__ page for agendas, minutes, and how to join. .. toctree:: diff --git a/source/niac/previous_meetings.rst b/source/niac/previous_meetings.rst index 1f650122..0b9f74e6 100644 --- a/source/niac/previous_meetings.rst +++ b/source/niac/previous_meetings.rst @@ -93,7 +93,7 @@ previous meetings `[NIACOrg] `_ - `[NIAC] `_ + `[NIAC] <../niac/niac.html>`_ .. toctree:: :maxdepth: 1 diff --git a/source/teleconferences/Telco_20160412.rst b/source/teleconferences/Telco_20160412.rst index 7a187534..296e4fe7 100644 --- a/source/teleconferences/Telco_20160412.rst +++ b/source/teleconferences/Telco_20160412.rst @@ -29,7 +29,7 @@ Telco 20160412 - Eugen: I suggest we continue #414 in the NAPI repository - need to decide how to deal with internal functions - - reminder to update `Latest News `__ + - reminder to update `Latest News <../content/Latest_News.html>`__ - Dectris Eiger JSON format - Andreas to present - http://nexusformat.org main landing page update - Next meeting diff --git a/source/teleconferences/Telco_20160426.rst b/source/teleconferences/Telco_20160426.rst index ca7360bc..1148fd2f 100644 --- a/source/teleconferences/Telco_20160426.rst +++ b/source/teleconferences/Telco_20160426.rst @@ -85,7 +85,7 @@ Telco 20160426 .. rubric:: Next Meeting :name: Telco_20160426_next-meeting - Is `Telco 20160512 `__ + Is `Telco 20160510 `__ .. rubric:: AOB :name: Telco_20160426_aob diff --git a/source/teleconferences/Telco_20161123.rst b/source/teleconferences/Telco_20161123.rst index c47a0d1f..b94f34f5 100644 --- a/source/teleconferences/Telco_20161123.rst +++ b/source/teleconferences/Telco_20161123.rst @@ -24,7 +24,7 @@ Telco 20161123 - Welcome and agree Agenda - Discuss topics from code camp and NIAC meeting, check minutes - - Here are the `minutes `__ of NIAC 2016 + - Here are the `minutes <../niac/NIAC2016Minutes.html>`__ of NIAC 2016 - github issue of the day diff --git a/source/teleconferences/Telco_20181015.rst b/source/teleconferences/Telco_20181015.rst index 63194df6..b2541c80 100644 --- a/source/teleconferences/Telco_20181015.rst +++ b/source/teleconferences/Telco_20181015.rst @@ -40,11 +40,11 @@ Telco 20181015 :name: Telco_20181015_agenda-for-niac2018 Outline agenda has been discussed and put on `the upcoming NIAC - page `__. + page <../niac/NIAC2018.html>`__. .. rubric:: Next meeting :name: Telco_20181015_next-meeting - Is `the upcoming NIAC meeting `__. + Is `the upcoming NIAC meeting <../niac/NIAC2018.html>`__. Next teclo TBA by the newly elected chair. diff --git a/source/teleconferences/Telco_20201208.rst b/source/teleconferences/Telco_20201208.rst index 5276ab04..255d2f30 100644 --- a/source/teleconferences/Telco_20201208.rst +++ b/source/teleconferences/Telco_20201208.rst @@ -30,8 +30,8 @@ Telco 20201208 - Welcome new members - Review previous meeting minutes and actions: `September - Telco `__, `NIAC - 2020 `__ + Telco `__, `NIAC + 2020 <../niac/NIAC2020minutes_concluding.html>`__ - Discuss responses to `Future of NAPI questionaire `__ - Issues on Github labelled with "telco" diff --git a/source/teleconferences/Telco_20210120.rst b/source/teleconferences/Telco_20210120.rst index e97eb488..14ab5cf4 100644 --- a/source/teleconferences/Telco_20210120.rst +++ b/source/teleconferences/Telco_20210120.rst @@ -30,7 +30,7 @@ Telco 20210120 - Welcome new members - Review previous meeting minutes and actions: `December - Telco `__ + Telco `__ - Discuss `upcoming code camp `__ format and `date `__ diff --git a/source/teleconferences/Telco_20210303.rst b/source/teleconferences/Telco_20210303.rst index ec980694..18e35be3 100644 --- a/source/teleconferences/Telco_20210303.rst +++ b/source/teleconferences/Telco_20210303.rst @@ -30,7 +30,7 @@ Telco 20210303 - Welcome new members - Review previous meeting minutes and actions: `January - Telco `__ + Telco `__ - Discuss upcoming code camp - Issues on Github labelled with "telco" diff --git a/source/teleconferences/Telco_20210505.rst b/source/teleconferences/Telco_20210505.rst index 43af03f6..427623a6 100644 --- a/source/teleconferences/Telco_20210505.rst +++ b/source/teleconferences/Telco_20210505.rst @@ -29,7 +29,7 @@ Telco 20210505 - Welcome new members - Review previous meeting minutes and actions: `March - Telco `__ + Telco `__ - Discuss the proposed NeXus ontology, including: - use of the namespace http://purl.org/nexusformat/definitions diff --git a/source/teleconferences/Telco_20210628.rst b/source/teleconferences/Telco_20210628.rst index 1f35396e..290c49f0 100644 --- a/source/teleconferences/Telco_20210628.rst +++ b/source/teleconferences/Telco_20210628.rst @@ -29,7 +29,7 @@ Telco 20210628 - Welcome new members - Review previous meeting minutes and actions: `May - Telco `__ + Telco `__ - The NeXus ontology and scripts are now on `github `__ - The `European HDF5 users online diff --git a/source/teleconferences/Telco_20210728.rst b/source/teleconferences/Telco_20210728.rst index 08ec3ca7..58a53e4f 100644 --- a/source/teleconferences/Telco_20210728.rst +++ b/source/teleconferences/Telco_20210728.rst @@ -29,7 +29,7 @@ Telco 20210728 - Welcome new members - Review previous meeting minutes and actions: `June - Telco `__ + Telco `__ - Issues on Github labelled with "telco" - `definitions `__ diff --git a/source/teleconferences/Telco_20210915.rst b/source/teleconferences/Telco_20210915.rst index f3658477..6e82b5f6 100644 --- a/source/teleconferences/Telco_20210915.rst +++ b/source/teleconferences/Telco_20210915.rst @@ -29,7 +29,7 @@ Telco 20210915 - Welcome new members - Review previous meeting minutes and actions: `July - Telco `__ + Telco `__ - Recent issues on Github (especially those labelled with "telco") diff --git a/source/teleconferences/Telco_20211115.rst b/source/teleconferences/Telco_20211115.rst index 18aabc72..7e427731 100644 --- a/source/teleconferences/Telco_20211115.rst +++ b/source/teleconferences/Telco_20211115.rst @@ -28,7 +28,7 @@ Telco 20211115 - Welcome new members - Review previous meeting minutes and actions: `September - Telco `__ + Telco `__ - Recent issues on Github (especially those labelled with "telco") diff --git a/source/teleconferences/Telco_20211215.rst b/source/teleconferences/Telco_20211215.rst index a6484197..02cb061d 100644 --- a/source/teleconferences/Telco_20211215.rst +++ b/source/teleconferences/Telco_20211215.rst @@ -28,7 +28,7 @@ Telco 20211215 - Welcome new members - Review previous meeting minutes and actions: `November - Telco `__ + Telco `__ - Next release of definitions : when (was scheduled for 2021-10) - Recent issues on Github (especially those labelled with "telco") diff --git a/source/teleconferences/Telco_20220131.rst b/source/teleconferences/Telco_20220131.rst index 4b0ac5f8..5da1894c 100644 --- a/source/teleconferences/Telco_20220131.rst +++ b/source/teleconferences/Telco_20220131.rst @@ -28,7 +28,7 @@ Telco 20220131 - Welcome new members - Review previous meeting minutes and actions: `December - Telco `__ + Telco `__ - Recent issues on Github (especially those labelled with "telco") diff --git a/source/teleconferences/Telco_20220225.rst b/source/teleconferences/Telco_20220225.rst index ae58fc8d..57cc218d 100644 --- a/source/teleconferences/Telco_20220225.rst +++ b/source/teleconferences/Telco_20220225.rst @@ -28,7 +28,7 @@ Telco 20220225 - Welcome new members - Review previous meeting minutes and actions: `January - Telco `__ + Telco `__ - Recent issues on Github (especially those labelled with "telco") diff --git a/source/teleconferences/Telco_20220426.rst b/source/teleconferences/Telco_20220426.rst index 500a7136..3da6b659 100644 --- a/source/teleconferences/Telco_20220426.rst +++ b/source/teleconferences/Telco_20220426.rst @@ -28,7 +28,7 @@ Telco 20220426 - Welcome guests and new members - Review previous meeting minutes and actions: `February - Telco `__, `Spring virtual + Telco `__, `Spring virtual NIAC <../niac/NIAC2022_spring.html>`__ - Review of the recent `NFDI workshop `__ diff --git a/source/teleconferences/Telco_20220602.rst b/source/teleconferences/Telco_20220602.rst index e8e0d6ba..de456671 100644 --- a/source/teleconferences/Telco_20220602.rst +++ b/source/teleconferences/Telco_20220602.rst @@ -28,7 +28,7 @@ Telco 20220602 - Welcome guests and new members - Review previous meeting minutes and actions: `April - Telco `__ + Telco `__ - Discuss format of `Code Camp <../codecamps/CodeCamp2022.html>`__ - Recent issues on Github (especially those labelled with diff --git a/source/teleconferences/Telco_20220707.rst b/source/teleconferences/Telco_20220707.rst index 0e322226..ccaed085 100644 --- a/source/teleconferences/Telco_20220707.rst +++ b/source/teleconferences/Telco_20220707.rst @@ -28,7 +28,7 @@ Telco 20220707 - Welcome guests and new members - Review previous meeting minutes and actions: `June - Telco `__, `Code + Telco `__, `Code Camp <../codecamps/CodeCamp2022.html>`__ - Recent issues on Github (especially those labelled with "telco") diff --git a/source/teleconferences/Telco_20220824.rst b/source/teleconferences/Telco_20220824.rst index c43da83a..821f889e 100644 --- a/source/teleconferences/Telco_20220824.rst +++ b/source/teleconferences/Telco_20220824.rst @@ -28,7 +28,7 @@ Telco 20220824 - Welcome guests and new members - Review previous meeting minutes and actions: `July - Telco `__ + Telco `__ - Please register asap for the `NIAC meeting <../niac/NIAC2022.html>`__ - Recent issues on Github (especially those labelled with @@ -107,11 +107,11 @@ Telco 20220824 get a set of transformations for each component. AB will write it up so that it can be discussed in the NIAC. - AB talked about the `estimated time `__ at the ACA + AB talked about the estimated time at the ACA meeting and there was strong agreement the fields should be kept as "required". SB had similar issues that it would be useful to have something between "required" and "optional", namely - "reccommended". "reccommended" would be be treated as "optional" + "recommended". "recommended" would be be treated as "optional" by a validator, except that it would give a warning if missing. Since we have the NIAC in mid-September, BW will run a `poll for a diff --git a/source/teleconferences/Telco_20221026.rst b/source/teleconferences/Telco_20221026.rst index c2c1fa9b..78434970 100644 --- a/source/teleconferences/Telco_20221026.rst +++ b/source/teleconferences/Telco_20221026.rst @@ -30,7 +30,7 @@ Telco 20221026 - Discuss how NeXus operates and answer questions from LNLS synchrotron in Brazil - Review previous meeting minutes and actions: `August - Telco `__ + Telco `__ - Review the `NIAC meeting <../niac/NIAC2022.html>`__ - Recent issues on Github (especially those labelled with diff --git a/source/teleconferences/Telco_20230213.rst b/source/teleconferences/Telco_20230213.rst index d98d4247..b5b00b32 100644 --- a/source/teleconferences/Telco_20230213.rst +++ b/source/teleconferences/Telco_20230213.rst @@ -82,7 +82,7 @@ Telco 20230213 documentation in the nxdl file, but refferrng to 2010 NIAC. See: `minutes of 2010 - NIAC `__ + NIAC `__ and `all NIAC meetings <../niac/NIAC.html>`__ and diff --git a/source/teleconferences/Telco_20230314.rst b/source/teleconferences/Telco_20230314.rst index ba839598..7763c919 100644 --- a/source/teleconferences/Telco_20230314.rst +++ b/source/teleconferences/Telco_20230314.rst @@ -69,11 +69,10 @@ Telco 20230314 `#1247 `__ | discussion deferred until next time. - - WdN - `#1212 `__ - WdN: presented ambiguities around the interpretation of - NXdata/@AXISNAME_indices - + - WdN + `#1212 `__ + WdN: Presented ambiguities around the interpretation of + ``NXdata/@AXISNAME_indices``. - Use Case 1: axes=[[xp,xq],y,[z,time]] referreing to a 3D dataset where the 1st axis can be labeled by both xp, and xq, the diff --git a/source/teleconferences/Telco_20230524.rst b/source/teleconferences/Telco_20230524.rst index 02977017..88fcef82 100644 --- a/source/teleconferences/Telco_20230524.rst +++ b/source/teleconferences/Telco_20230524.rst @@ -41,7 +41,7 @@ Telco 20230524 :name: Telco_20230524_minutes - Codecamp Agreed period: June 15-16 & 20-21, 2023 Info: `Code - Camp June 2023 `__ + Camp June 2023 <../codecamps/CodeCampJune2023.html>`__ - Next NIAC 2024 with NOBUGS at ESRF diff --git a/source/teleconferences/Telco_20230724.rst b/source/teleconferences/Telco_20230724.rst index a151d042..cb3e77b5 100644 --- a/source/teleconferences/Telco_20230724.rst +++ b/source/teleconferences/Telco_20230724.rst @@ -37,7 +37,7 @@ Telco 20230724 :name: Telco_20230724_minutes - Codecamp Agreed period: June 15-16 & 20-21, 2023 Info: `Code - Camp June 2023 `__ + Camp June 2023 <../codecamps/CodeCampJune2023.html>`__ .. rubric:: Aug Telco :name: Telco_20230724_aug-telco diff --git a/source/teleconferences/teleconferences.rst b/source/teleconferences/teleconferences.rst index 1e6dc422..7e9ee9d4 100644 --- a/source/teleconferences/teleconferences.rst +++ b/source/teleconferences/teleconferences.rst @@ -451,7 +451,7 @@ Teleconferences .. rubric:: October :name: october-2 - `NIAC2016 `__ + `NIAC2016 <../niac/NIAC2016.html>`__ .. rubric:: September :name: september-4 diff --git a/source/wiki_broken_links.txt b/source/wiki_broken_links.txt new file mode 100644 index 00000000..aca4468f --- /dev/null +++ b/source/wiki_broken_links.txt @@ -0,0 +1,1287 @@ +LinkChecker 10.5.0 +Copyright (C) 2000-2016 Bastian Kleineidam, 2010-2024 LinkChecker Authors +LinkChecker comes with ABSOLUTELY NO WARRANTY! +This is free software, and you are welcome to redistribute it under +certain conditions. Look at the file `COPYING' within this distribution. +Read the documentation at https://linkchecker.github.io/linkchecker/ +Write comments and bugs to https://github.com/linkchecker/linkchecker/issues + +Start checking at 2025-01-21 11:55:27-006 + +URL `Media:NIAC2007HMI_minutes.pdf.html' +Name `pdf\nformat' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1545, col 90 +Real URL media:NIAC2007HMI_minutes.pdf.html +Info The URL is outside of the domain filter, checked only + syntax. +Result Error: URL is unrecognized or has invalid syntax + +URL `Media:NeXusOBJ.pdf.html' +Name `Marks\nsuggestion' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1340, col 40 +Real URL media:NeXusOBJ.pdf.html +Info The URL is outside of the domain filter, checked only + syntax. +Result Error: URL is unrecognized or has invalid syntax + +URL `Talk:NIAC_Meetings.html' +Name `Talk\nPage' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1165, col 66 +Real URL talk:NIAC_Meetings.html +Info The URL is outside of the domain filter, checked only + syntax. +Result Error: URL is unrecognized or has invalid syntax + +URL `Help:Editing#Lists.html' +Name `bullet\nform' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1163, col 52 +Real URL help:Editing#Lists.html +Info The URL is outside of the domain filter, checked only + syntax. +Result Error: URL is unrecognized or has invalid syntax + +URL Pete_Jemian +Name `Pete Jemian' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1348, col 11 +Real URL https://www.nexusformat.org/User%3APete_Jemian.html +Check time 3.355 seconds +Size 1KB +Result Error: 404 Not Found + +URL Herbert_Bernstein.html' +Name `Herbert Bernstein' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1369, col 11 +Real URL https://www.nexusformat.org/User%3AHerbert_Bernstein.html +Check time 3.654 seconds +Size 1KB +Result Error: 404 Not Found + +URL Mark_Koennecke +Name `Mark Koennecke' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1390, col 11 +Real URL https://www.nexusformat.org/User%3AMark_Koennecke.html +Check time 3.903 seconds +Size 1KB +Result Error: 404 Not Found + +URL Mark_Basham.html' +Name `Mark Basham' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1411, col 11 +Real URL https://www.nexusformat.org/User%3AMark_Basham.html +Check time 4.156 seconds +Size 1KB +Result Error: 404 Not Found + +URL Steve_Cottrell.html' +Name `Steve Cottrell' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1432, col 11 +Real URL https://www.nexusformat.org/User%3ASteve_Cottrell.html +Check time 3.873 seconds +Size 1KB +Result Error: 404 Not Found + +URL Eugenwintersberger.html' +Name `Eugen Wintersberger' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1453, col 11 +Real URL https://www.nexusformat.org/User%3AEugenwintersberger.html +Check time 3.659 seconds +Size 1KB +Result Error: 404 Not Found + +URL Aaron_Brewster.html' +Name `Aaron Brewster' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1474, col 11 +Real URL https://www.nexusformat.org/User%3AAaron_Brewster.html +Check time 3.432 seconds +Size 1KB +Result Error: 404 Not Found + +URL Ray_Osborn +Name `Ray Osborn' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1494, col 11 +Real URL https://www.nexusformat.org/User%3ARay_Osborn.html +Check time 3.484 seconds +Size 1KB +Result Error: 404 Not Found + +URL Jiro_Suzuki.html' +Name `Jiro Suzuki' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1516, col 11 +Real URL https://www.nexusformat.org/User%3AJiro_Suzuki.html +Check time 3.697 seconds +Size 1KB +Result Error: 404 Not Found + +URL Tobias_Richter.html' +Name `Tobias Richter' +Parent URL https://www.nexusformat.org/NIAC2014.html, line 1537, col 11 +Real URL https://www.nexusformat.org/User%3ATobias_Richter.html +Check time 3.601 seconds +Size 1KB +Result Error: 404 Not Found + +URL `2014-NIAC-Schedule-HF.png' +Name `2014-NIAC-Schedule-HF.png' +Parent URL https://www.nexusformat.org/NIAC2014_Meeting#Minutes.html, line 1160, col 4 +Real URL https://www.nexusformat.org/2014-NIAC-Schedule-HF.png +Check time 3.458 seconds +Size 1KB +Result Error: 404 Not Found + +URL Freddie_Akeroyd +Name `Freddie Akeroyd' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1252, col 11 +Real URL https://www.nexusformat.org/User%3AFreddie_Akeroyd.html +Check time 2.997 seconds +Size 1KB +Result Error: 404 Not Found + +URL Ben_Watts.html' +Name `Ben Watts' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1297, col 11 +Real URL https://www.nexusformat.org/User%3ABen_Watts.html +Check time 3.262 seconds +Size 1KB +Result Error: 404 Not Found + +URL Joachim_Wuttke.html' +Name `Joachim Wuttke' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1327, col 11 +Real URL https://www.nexusformat.org/User%3AJoachim_Wuttke.html +Check time 3.630 seconds +Size 1KB +Result Error: 404 Not Found + +URL Jens-Uwe_Hoffmann.html' +Name `Jens-Uwe Hoffmann' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1357, col 11 +Real URL https://www.nexusformat.org/User%3AJens-Uwe_Hoffmann.html +Check time 3.779 seconds +Size 1KB +Result Error: 404 Not Found + +URL Eugen_Wintersberger.html' +Name `Eugen Wintersberger' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1372, col 11 +Real URL https://www.nexusformat.org/User%3AEugen_Wintersberger.html +Check time 3.650 seconds +Size 1KB +Result Error: 404 Not Found + +URL Herbert_J_Bernstein.html' +Name `Herbert J Bernstein' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1387, col 11 +Real URL https://www.nexusformat.org/User%3AHerbert_J_Bernstein.html +Check time 3.705 seconds +Size 1KB +Result Error: 404 Not Found + +URL Fajin_Yuan.html' +Name `Fajin Yuan' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1402, col 11 +Real URL https://www.nexusformat.org/User%3AFajin_Yuan.html +Check time 3.987 seconds +Size 1KB +Result Error: 404 Not Found + +URL Graeme_Winter.html' +Name `Graeme Winter' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1417, col 11 +Real URL https://www.nexusformat.org/User%3AGraeme_Winter.html +Check time 3.946 seconds +Size 1KB +Result Error: 404 Not Found + +URL David_Mannicke.html' +Name `David Mannicke' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1432, col 11 +Real URL https://www.nexusformat.org/User%3ADavid_Mannicke.html +Check time 3.979 seconds +Size 1KB +Result Error: 404 Not Found + +URL Peter_Peterson +Name `Peter Peterson' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1447, col 11 +Real URL https://www.nexusformat.org/User%3APeter_Peterson.html +Check time 4.241 seconds +Size 1KB +Result Error: 404 Not Found + +URL Armando_Sole.html' +Name `Armando Sole' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1462, col 11 +Real URL https://www.nexusformat.org/User%3AArmando_Sole.html +Check time 4.334 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Dalek.jpg' +Name `Pete Jemian's physical avatar at the meeting' +Parent URL https://www.nexusformat.org/NIAC2012.html, line 1509, col 4 +Real URL https://www.nexusformat.org/Dalek.jpg +Check time 3.967 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXusCodeCamp2011-logo.png' +Name ` logo for the 2011 NeXus Code\nCamp' +Parent URL https://www.nexusformat.org/NIAC2011_CodeCamp.html, line 1145, col 6 +Real URL https://www.nexusformat.org/NeXusCodeCamp2011-logo.png +Check time 3.640 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.nexusformat.org/index.php?title=NIAC2009' +Name `http://www.nexusformat.org/index.php?title=NIAC2009' +Parent URL https://www.nexusformat.org/NIAC2011_CodeCamp.html, line 1163, col 7 +Real URL http://www.nexusformat.org/index.php?title=NIAC2009 +Check time 3.655 seconds +Size 1KB +Result Error: 404 Not Found + +URL Paul_Kienzle.html' +Name `Paul Kienzle' +Parent URL https://www.nexusformat.org/NIAC2011_CodeCamp.html, line 1691, col 11 +Real URL https://www.nexusformat.org/User%3APaul_Kienzle.html +Check time 3.863 seconds +Size 1KB +Result Error: 404 Not Found + +URL Stuart_Campbell +Name `Stuart\nCampbell' +Parent URL https://www.nexusformat.org/NIAC2010.html, line 1186, col 46 +Real URL https://www.nexusformat.org/User%3AStuart_Campbell.html +Check time 3.642 seconds +Size 1KB +Result Error: 404 Not Found + +URL Nick_Hauser.html' +Name `Nick Hauser' +Parent URL https://www.nexusformat.org/NIAC2010.html, line 1248, col 11 +Real URL https://www.nexusformat.org/User%3ANick_Hauser.html +Check time 3.625 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXusCodeCamp2009-logo.png' +Name `logo for the 2009 NeXus Code Camp' +Parent URL https://www.nexusformat.org/NIAC2009.html, line 1149, col 4 +Real URL https://www.nexusformat.org/NeXusCodeCamp2009-logo.png +Check time 4.010 seconds +Size 1KB +Result Error: 404 Not Found + +URL nick.html' +Name `Nick Hauser' +Parent URL https://www.nexusformat.org/NIAC2009.html, line 1432, col 11 +Real URL https://www.nexusformat.org/User%3Anick.html +Check time 3.810 seconds +Size 1KB +Result Error: 404 Not Found + +URL Nick_Maliszewskyj.html' +Name `Nick Maliszewskyj' +Parent URL https://www.nexusformat.org/NIAC2009.html, line 1439, col 11 +Real URL https://www.nexusformat.org/User%3ANick_Maliszewskyj.html +Check time 3.531 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Mission.html' +Name `Mission statement' +Parent URL https://www.nexusformat.org/NIAC2008.html, line 1184, col 7 +Real URL https://www.nexusformat.org/Mission.html +Check time 3.563 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Schema.html' +Name `current work' +Parent URL https://www.nexusformat.org/NIAC2008.html, line 1235, col 17 +Real URL https://www.nexusformat.org/Schema.html +Check time 3.562 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Coordinate_Systems.html' +Name `Coordinate Systems' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1352, col 14 +Real URL https://www.nexusformat.org/Coordinate_Systems.html +Check time 3.119 seconds +Size 1KB +Result Error: 404 Not Found + +URL Andy_Gotz +Name `Götz' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1392, col 16 +Real URL https://www.nexusformat.org/User%3AAndy_Gotz.html +Check time 3.156 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NXevent_data.html' +Name `Event Data' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1394, col 7 +Real URL https://www.nexusformat.org/NXevent_data.html +Check time 3.245 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.nexusformat.org/Coordinate_Systems' +Name `http://www.nexusformat.org/Coordinate_Systems' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1443, col 1 +Real URL http://www.nexusformat.org/Coordinate_Systems +Check time 3.183 seconds +Size 1KB +Result Error: 404 Not Found + +URL L.lerusse +Name `Laurent' +Parent URL https://www.nexusformat.org/NIAC2007.html, line 1471, col 19 +Real URL https://www.nexusformat.org/User%3AL.lerusse.html +Check time 3.084 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NXgeometry.html' +Name `NXgeometry' +Parent URL https://www.nexusformat.org/NIAC2007_Minutes.html, line 1187, col 34 +Real URL https://www.nexusformat.org/NXgeometry.html +Check time 3.400 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NXcharacterization.html' +Name `NXcharacterization' +Parent URL https://www.nexusformat.org/NIAC2007_Minutes.html, line 1308, col 20 +Real URL https://www.nexusformat.org/NXcharacterization.html +Check time 3.929 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.nexusformat.org/instruments/NXmonotas' +Name `http://www.nexusformat.org/instruments/NXmonotas' +Parent URL https://www.nexusformat.org/NIAC2007_Minutes.html, line 1400, col 66 +Real URL http://www.nexusformat.org/instruments/NXmonotas +Check time 4.020 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.nexusformat.org/SQA_Process' +Name `http://www.nexusformat.org/SQA_Process' +Parent URL https://www.nexusformat.org/NIAC2007_Minutes.html, line 1919, col 1 +Real URL http://www.nexusformat.org/SQA_Process +Check time 4.071 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html' +Name `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer' +Parent URL https://www.nexusformat.org/NIAC2006LBL.html, line 1257, col 15 +Real URL https://www.nexusformat.org/Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html +Check time 3.167 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html' +Name `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer' +Parent URL https://www.nexusformat.org/NIAC2006LBL.html, line 1258, col 15 +Real URL https://www.nexusformat.org/Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html +Check time 3.176 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NIAC2006LBL_minutes.doc' +Name `MS-Word\nformat' +Parent URL https://www.nexusformat.org/NIAC2006LBL.html, line 1387, col 15 +Real URL https://www.nexusformat.org/NIAC2006LBL_minutes.doc +Check time 2.696 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NIAC2006LBL_photos_other.html' +Name `other photos' +Parent URL https://www.nexusformat.org/NIAC2006LBL.html, line 1394, col 7 +Real URL https://www.nexusformat.org/NIAC2006LBL_photos_other.html +Check time 3.328 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Nominees_for_officers.html' +Name `chair and executive\nsecretary' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1173, col 13 +Real URL https://www.nexusformat.org/Nominees_for_officers.html +Check time 3.118 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Synchrotron_Group.html' +Name `Synchrotron_Group' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1242, col 12 +Real URL https://www.nexusformat.org/Synchrotron_Group.html +Check time 3.235 seconds +Size 1KB +Result Error: 404 Not Found + +URL `TOF_Group.html' +Name `TOF Group' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1388, col 7 +Real URL https://www.nexusformat.org/TOF_Group.html +Check time 3.575 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Scanning_Group.html' +Name `Scanning Group' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1389, col 7 +Real URL https://www.nexusformat.org/Scanning_Group.html +Check time 3.822 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Technical_Computing/API_Group.html' +Name `Technical Computing/API\nGroup' +Parent URL https://www.nexusformat.org/NIAC2006ILL.html, line 1390, col 7 +Real URL https://www.nexusformat.org/Technical_Computing/API_Group.html +Check time 3.611 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/css/poole.css' +Parent URL https://www.nexusformat.org/content/NIAC2024_minutes/, line 19, col 3 +Real URL https://www.nexusformat.org/content/NIAC2024_minutes/public/css/poole.css +Check time 4.175 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/css/syntax.css' +Parent URL https://www.nexusformat.org/content/NIAC2024_minutes/, line 20, col 3 +Real URL https://www.nexusformat.org/content/NIAC2024_minutes/public/css/syntax.css +Check time 3.966 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/css/hyde.css' +Parent URL https://www.nexusformat.org/content/NIAC2024_minutes/, line 21, col 3 +Real URL https://www.nexusformat.org/content/NIAC2024_minutes/public/css/hyde.css +Check time 3.704 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/apple-touch-icon-144-precomposed.png' +Parent URL https://www.nexusformat.org/content/NIAC2024_minutes/, line 25, col 3 +Real URL https://www.nexusformat.org/content/NIAC2024_minutes/public/apple-touch-icon-144-precomposed.png +Check time 3.714 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/favicon.ico' +Parent URL https://www.nexusformat.org/content/NIAC2024_minutes/, line 26, col 3 +Real URL https://www.nexusformat.org/content/NIAC2024_minutes/public/favicon.ico +Check time 3.646 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NIAC.html' +Name `NIAC' +Parent URL https://www.nexusformat.org/content/NIAC2024_minutes/, line 1137, col 20 +Real URL https://www.nexusformat.org/content/NIAC2024_minutes/NIAC.html +Check time 3.535 seconds +Size 1KB +Result Error: 404 Not Found + +URL `issue #1143' +Name `estimated time' +Parent URL https://www.nexusformat.org/Telco_20220824.html, line 1203, col 24 +Real URL https://www.nexusformat.org/issue%20#1143 +Check time 3.200 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Telco_20160512.html' +Name `Telco 20160512' +Parent URL https://www.nexusformat.org/Telco_20160426.html, line 1212, col 7 +Real URL https://www.nexusformat.org/Telco_20160512.html +Check time 3.031 seconds +Size 1KB +Result Error: 404 Not Found + +URL `2014-CodeCamp-Schedule-MTW.png' +Name `2014-CodeCamp-Schedule-MTW.png' +Parent URL https://www.nexusformat.org/NIAC2014_CodeCamp.html, line 1153, col 4 +Real URL https://www.nexusformat.org/2014-CodeCamp-Schedule-MTW.png +Check time 3.068 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Discussions.html' +Name `Discussions' +Parent URL https://www.nexusformat.org/NIAC2014_CodeCamp.html, line 1165, col 1 +Real URL https://www.nexusformat.org/Discussions.html +Check time 3.171 seconds +Size 1KB +Result Error: 404 Not Found + +URL Stuart_Campbell +Name `Stuart\nCampbell' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1154, col 46 +Real URL http://www.nexusformat.org/User%3AStuart_Campbell.html +Check time 3.456 seconds +Size 1KB +Result Error: 404 Not Found + +URL Peter_Peterson +Name `Peter\nPeterson' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1155, col 17 +Real URL http://www.nexusformat.org/User%3APeter_Peterson.html +Check time 3.250 seconds +Size 1KB +Result Error: 404 Not Found + +URL Freddie_Akeroyd +Name `Frederick Akeroyd' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1175, col 11 +Real URL http://www.nexusformat.org/User%3AFreddie_Akeroyd.html +Check time 3.458 seconds +Size 1KB +Result Error: 404 Not Found + +URL Pete_Jemian +Name `Pete Jemian' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1199, col 11 +Real URL http://www.nexusformat.org/User%3APete_Jemian.html +Check time 3.409 seconds +Size 1KB +Result Error: 404 Not Found + +URL Jens-Uwe_Hoffmann.html' +Name `Jens-Uwe Hoffmann' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1207, col 11 +Real URL http://www.nexusformat.org/User%3AJens-Uwe_Hoffmann.html +Check time 2.970 seconds +Size 1KB +Result Error: 404 Not Found + +URL Mark_Koennecke +Name `Mark Koennecke' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1215, col 11 +Real URL http://www.nexusformat.org/User%3AMark_Koennecke.html +Check time 3.026 seconds +Size 1KB +Result Error: 404 Not Found + +URL Tobias_Richter.html' +Name `Tobias Richter' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1239, col 11 +Real URL http://www.nexusformat.org/User%3ATobias_Richter.html +Check time 2.643 seconds +Size 1KB +Result Error: 404 Not Found + +URL Marie.html' +Name `Marie Yao' +Parent URL http://www.nexusformat.org/NIAC2010_CodeCamp, line 1255, col 11 +Real URL http://www.nexusformat.org/User%3AMarie.html +Check time 2.899 seconds +Size 1KB +Result Error: 404 Not Found + +URL Marie.html' +Name `Marie Yao' +Parent URL https://www.nexusformat.org/NIAC2010_CodeCamp.html, line 1255, col 11 +Real URL https://www.nexusformat.org/User%3AMarie.html +Check time 3.102 seconds +Size 1KB +Result Error: 404 Not Found + +URL Matthias_Drochner.html' +Name `Matthias Drochner' +Parent URL https://www.nexusformat.org/NIAC2008_attendees.html, line 1203, col 11 +Real URL https://www.nexusformat.org/User%3AMatthias_Drochner.html +Check time 3.113 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Niac2008-attendees.jpg' +Name `photo of NIAC 2008 attendees' +Parent URL https://www.nexusformat.org/NIAC2008_attendees.html, line 1210, col 4 +Real URL https://www.nexusformat.org/Niac2008-attendees.jpg +Check time 3.041 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Niac2008-hotel.jpg' +Name `Rydges Cronulla Sydney hotel, site of NIAC2008 meeting' +Parent URL https://www.nexusformat.org/NIAC2008_attendees.html, line 1211, col 1 +Real URL https://www.nexusformat.org/Niac2008-hotel.jpg +Check time 3.356 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Niac2008-view.jpg' +Name `Panorama view of North Cronulla Beach from Rydges Cronulla Sydney hotel, site of NIAC2008 meeting' +Parent URL https://www.nexusformat.org/NIAC2008_attendees.html, line 1212, col 1 +Real URL https://www.nexusformat.org/Niac2008-view.jpg +Check time 3.238 seconds +Size 1KB +Result Error: 404 Not Found + +URL Stephane_Poirier.html' +Name `Stephane Poirier' +Parent URL https://www.nexusformat.org/NIAC2007_attendees.html, line 1272, col 11 +Real URL https://www.nexusformat.org/User%3AStephane_Poirier.html +Check time 3.387 seconds +Size 1KB +Result Error: 404 Not Found + +URL Thomas_Proffen +Name `Thomas Proffen' +Parent URL https://www.nexusformat.org/NIAC2007_attendees.html, line 1279, col 11 +Real URL https://www.nexusformat.org/User%3AThomas_Proffen.html +Check time 3.170 seconds +Size 1KB +Result Error: 404 Not Found + +URL Nick.html' +Name `Nick Hauser' +Parent URL https://www.nexusformat.org/NIAC2006LBL_attendees.html, line 1183, col 11 +Real URL https://www.nexusformat.org/User%3ANick.html +Check time 3.866 seconds +Size 1KB +Result Error: 404 Not Found + +URL Przemek_Klosowski +Name `Przemek Klosowski' +Parent URL https://www.nexusformat.org/NIAC2006LBL_attendees.html, line 1211, col 11 +Real URL https://www.nexusformat.org/User%3APrzemek_Klosowski.html +Check time 3.919 seconds +Size 1KB +Result Error: 404 Not Found + +URL `SubversionServer.html' +Name `SubversionServer' +Parent URL https://www.nexusformat.org/Metaformat.html, line 1176, col 1 +Real URL https://www.nexusformat.org/SubversionServer.html +Check time 4.112 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_43_Testing.html' +Name `NeXus_43_Testing' +Parent URL https://www.nexusformat.org/Latest_News.html, line 1172, col 86 +Real URL https://www.nexusformat.org/NeXus_43_Testing.html +Check time 3.152 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_42_Testing.html' +Name `available for testing' +Parent URL https://www.nexusformat.org/Latest_News.html, line 1201, col 96 +Real URL https://www.nexusformat.org/NeXus_42_Testing.html +Check time 2.925 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_41_Testing.html' +Name `testing site' +Parent URL https://www.nexusformat.org/Latest_News.html, line 1223, col 135 +Real URL https://www.nexusformat.org/NeXus_41_Testing.html +Check time 3.145 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_4_Testing.html' +Name `testing site' +Parent URL https://www.nexusformat.org/Latest_News.html, line 1245, col 130 +Real URL https://www.nexusformat.org/NeXus_4_Testing.html +Check time 3.450 seconds +Size 1KB +Result Error: 404 Not Found + +URL `mailinglist.html' +Name `MailingLists' +Parent URL https://www.nexusformat.org/Latest_News.html, line 1251, col 39 +Real URL https://www.nexusformat.org/mailinglist.html +Check time 3.737 seconds +Size 1KB +Result Error: 404 Not Found + +URL PfPeterson +Name `Peter\nPeterson’s' +Parent URL https://www.nexusformat.org/Latest_News.html, line 1261, col 34 +Real URL https://www.nexusformat.org/User%3APfpeterson.html +Check time 3.564 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Nexpy.png' +Name `NeXpy|center|800px' +Parent URL https://www.nexusformat.org/NeXpy.html, line 1284, col 4 +Real URL https://www.nexusformat.org/Nexpy.png +Check time 3.921 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXPy-Simple_plot.png' +Name `A simple NeXpy\nplot|center' +Parent URL https://www.nexusformat.org/NeXpy.html, line 1546, col 4 +Real URL https://www.nexusformat.org/NeXPy-Simple_plot.png +Check time 3.994 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Axis_Limits_Bar.png' +Name `Axis Limits\nToolbar|center|600px' +Parent URL https://www.nexusformat.org/NeXpy.html, line 1561, col 8 +Real URL https://www.nexusformat.org/Axis_Limits_Bar.png +Check time 3.988 seconds +Size 1KB +Result Error: 404 Not Found + +URL Herbert_Bernstein.html' +Name `Herbert Bernstein' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1369, col 11 +Real URL http://www.nexusformat.org/User%3AHerbert_Bernstein.html +Check time 3.466 seconds +Size 1KB +Result Error: 404 Not Found + +URL Mark_Basham.html' +Name `Mark Basham' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1411, col 11 +Real URL http://www.nexusformat.org/User%3AMark_Basham.html +Check time 3.798 seconds +Size 1KB +Result Error: 404 Not Found + +URL Steve_Cottrell.html' +Name `Steve Cottrell' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1432, col 11 +Real URL http://www.nexusformat.org/User%3ASteve_Cottrell.html +Check time 3.696 seconds +Size 1KB +Result Error: 404 Not Found + +URL Eugenwintersberger.html' +Name `Eugen Wintersberger' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1453, col 11 +Real URL http://www.nexusformat.org/User%3AEugenwintersberger.html +Check time 3.955 seconds +Size 1KB +Result Error: 404 Not Found + +URL Aaron_Brewster.html' +Name `Aaron Brewster' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1474, col 11 +Real URL http://www.nexusformat.org/User%3AAaron_Brewster.html +Check time 3.810 seconds +Size 1KB +Result Error: 404 Not Found + +URL Ray_Osborn +Name `Ray Osborn' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1494, col 11 +Real URL http://www.nexusformat.org/User%3ARay_Osborn.html +Check time 4.083 seconds +Size 1KB +Result Error: 404 Not Found + +URL Jiro_Suzuki.html' +Name `Jiro Suzuki' +Parent URL http://www.nexusformat.org/NIAC2014.html, line 1516, col 11 +Real URL http://www.nexusformat.org/User%3AJiro_Suzuki.html +Check time 4.163 seconds +Size 1KB +Result Error: 404 Not Found + +URL `2014-NIAC-Schedule-HF.png' +Name `2014-NIAC-Schedule-HF.png' +Parent URL http://www.nexusformat.org/NIAC2014_Meeting#Minutes.html, line 1160, col 4 +Real URL http://www.nexusformat.org/2014-NIAC-Schedule-HF.png +Check time 4.021 seconds +Size 1KB +Result Error: 404 Not Found + +URL Ben_Watts.html' +Name `Ben Watts' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1297, col 11 +Real URL http://www.nexusformat.org/User%3ABen_Watts.html +Check time 4.129 seconds +Size 1KB +Result Error: 404 Not Found + +URL Joachim_Wuttke.html' +Name `Joachim Wuttke' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1327, col 11 +Real URL http://www.nexusformat.org/User%3AJoachim_Wuttke.html +Check time 3.925 seconds +Size 1KB +Result Error: 404 Not Found + +URL Eugen_Wintersberger.html' +Name `Eugen Wintersberger' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1372, col 11 +Real URL http://www.nexusformat.org/User%3AEugen_Wintersberger.html +Check time 3.755 seconds +Size 1KB +Result Error: 404 Not Found + +URL Herbert_J_Bernstein.html' +Name `Herbert J Bernstein' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1387, col 11 +Real URL http://www.nexusformat.org/User%3AHerbert_J_Bernstein.html +Check time 3.423 seconds +Size 1KB +Result Error: 404 Not Found + +URL Fajin_Yuan.html' +Name `Fajin Yuan' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1402, col 11 +Real URL http://www.nexusformat.org/User%3AFajin_Yuan.html +Check time 3.470 seconds +Size 1KB +Result Error: 404 Not Found + +URL Graeme_Winter.html' +Name `Graeme Winter' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1417, col 11 +Real URL http://www.nexusformat.org/User%3AGraeme_Winter.html +Check time 3.600 seconds +Size 1KB +Result Error: 404 Not Found + +URL David_Mannicke.html' +Name `David Mannicke' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1432, col 11 +Real URL http://www.nexusformat.org/User%3ADavid_Mannicke.html +Check time 3.670 seconds +Size 1KB +Result Error: 404 Not Found + +URL Armando_Sole.html' +Name `Armando Sole' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1462, col 11 +Real URL http://www.nexusformat.org/User%3AArmando_Sole.html +Check time 3.701 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Dalek.jpg' +Name `Pete Jemian's physical avatar at the meeting' +Parent URL http://www.nexusformat.org/NIAC2012.html, line 1509, col 4 +Real URL http://www.nexusformat.org/Dalek.jpg +Check time 3.348 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXusCodeCamp2011-logo.png' +Name ` logo for the 2011 NeXus Code\nCamp' +Parent URL http://www.nexusformat.org/NIAC2011_CodeCamp.html, line 1145, col 6 +Real URL http://www.nexusformat.org/NeXusCodeCamp2011-logo.png +Check time 3.429 seconds +Size 1KB +Result Error: 404 Not Found + +URL Paul_Kienzle.html' +Name `Paul Kienzle' +Parent URL http://www.nexusformat.org/NIAC2011_CodeCamp.html, line 1691, col 11 +Real URL http://www.nexusformat.org/User%3APaul_Kienzle.html +Check time 3.774 seconds +Size 1KB +Result Error: 404 Not Found + +URL Nick_Hauser.html' +Name `Nick Hauser' +Parent URL http://www.nexusformat.org/NIAC2010.html, line 1248, col 11 +Real URL http://www.nexusformat.org/User%3ANick_Hauser.html +Check time 3.960 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXusCodeCamp2009-logo.png' +Name `logo for the 2009 NeXus Code Camp' +Parent URL http://www.nexusformat.org/NIAC2009.html, line 1149, col 4 +Real URL http://www.nexusformat.org/NeXusCodeCamp2009-logo.png +Check time 3.216 seconds +Size 1KB +Result Error: 404 Not Found + +URL nick.html' +Name `Nick Hauser' +Parent URL http://www.nexusformat.org/NIAC2009.html, line 1432, col 11 +Real URL http://www.nexusformat.org/User%3Anick.html +Check time 3.525 seconds +Size 1KB +Result Error: 404 Not Found + +URL Nick_Maliszewskyj.html' +Name `Nick Maliszewskyj' +Parent URL http://www.nexusformat.org/NIAC2009.html, line 1439, col 11 +Real URL http://www.nexusformat.org/User%3ANick_Maliszewskyj.html +Check time 3.310 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Mission.html' +Name `Mission statement' +Parent URL http://www.nexusformat.org/NIAC2008.html, line 1184, col 7 +Real URL http://www.nexusformat.org/Mission.html +Check time 3.166 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Schema.html' +Name `current work' +Parent URL http://www.nexusformat.org/NIAC2008.html, line 1235, col 17 +Real URL http://www.nexusformat.org/Schema.html +Check time 2.963 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Coordinate_Systems.html' +Name `Coordinate Systems' +Parent URL http://www.nexusformat.org/NIAC2007.html, line 1352, col 14 +Real URL http://www.nexusformat.org/Coordinate_Systems.html +Check time 4.102 seconds +Size 1KB +Result Error: 404 Not Found + +URL Andy_Gotz +Name `Götz' +Parent URL http://www.nexusformat.org/NIAC2007.html, line 1392, col 16 +Real URL http://www.nexusformat.org/User%3AAndy_Gotz.html +Check time 3.933 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NXevent_data.html' +Name `Event Data' +Parent URL http://www.nexusformat.org/NIAC2007.html, line 1394, col 7 +Real URL http://www.nexusformat.org/NXevent_data.html +Check time 3.820 seconds +Size 1KB +Result Error: 404 Not Found + +URL L.lerusse +Name `Laurent' +Parent URL http://www.nexusformat.org/NIAC2007.html, line 1471, col 19 +Real URL http://www.nexusformat.org/User%3AL.lerusse.html +Check time 3.774 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NXgeometry.html' +Name `NXgeometry' +Parent URL http://www.nexusformat.org/NIAC2007_Minutes.html, line 1187, col 34 +Real URL http://www.nexusformat.org/NXgeometry.html +Check time 3.931 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NXcharacterization.html' +Name `NXcharacterization' +Parent URL http://www.nexusformat.org/NIAC2007_Minutes.html, line 1308, col 20 +Real URL http://www.nexusformat.org/NXcharacterization.html +Check time 3.799 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html' +Name `Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer' +Parent URL http://www.nexusformat.org/NIAC2006LBL.html, line 1257, col 15 +Real URL http://www.nexusformat.org/Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html +Check time 3.480 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html' +Name `Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer' +Parent URL http://www.nexusformat.org/NIAC2006LBL.html, line 1258, col 15 +Real URL http://www.nexusformat.org/Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html +Check time 3.851 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NIAC2006LBL_minutes.doc' +Name `MS-Word\nformat' +Parent URL http://www.nexusformat.org/NIAC2006LBL.html, line 1387, col 15 +Real URL http://www.nexusformat.org/NIAC2006LBL_minutes.doc +Check time 3.409 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NIAC2006LBL_photos_other.html' +Name `other photos' +Parent URL http://www.nexusformat.org/NIAC2006LBL.html, line 1394, col 7 +Real URL http://www.nexusformat.org/NIAC2006LBL_photos_other.html +Check time 2.945 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Nominees_for_officers.html' +Name `chair and executive\nsecretary' +Parent URL http://www.nexusformat.org/NIAC2006ILL.html, line 1173, col 13 +Real URL http://www.nexusformat.org/Nominees_for_officers.html +Check time 2.957 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Synchrotron_Group.html' +Name `Synchrotron_Group' +Parent URL http://www.nexusformat.org/NIAC2006ILL.html, line 1242, col 12 +Real URL http://www.nexusformat.org/Synchrotron_Group.html +Check time 3.488 seconds +Size 1KB +Result Error: 404 Not Found + +URL `TOF_Group.html' +Name `TOF Group' +Parent URL http://www.nexusformat.org/NIAC2006ILL.html, line 1388, col 7 +Real URL http://www.nexusformat.org/TOF_Group.html +Check time 3.748 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Scanning_Group.html' +Name `Scanning Group' +Parent URL http://www.nexusformat.org/NIAC2006ILL.html, line 1389, col 7 +Real URL http://www.nexusformat.org/Scanning_Group.html +Check time 3.461 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Technical_Computing/API_Group.html' +Name `Technical Computing/API\nGroup' +Parent URL http://www.nexusformat.org/NIAC2006ILL.html, line 1390, col 7 +Real URL http://www.nexusformat.org/Technical_Computing/API_Group.html +Check time 3.277 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/css/poole.css' +Parent URL http://www.nexusformat.org/content/NIAC2024_minutes/, line 19, col 3 +Real URL http://www.nexusformat.org/content/NIAC2024_minutes/public/css/poole.css +Check time 3.677 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/css/syntax.css' +Parent URL http://www.nexusformat.org/content/NIAC2024_minutes/, line 20, col 3 +Real URL http://www.nexusformat.org/content/NIAC2024_minutes/public/css/syntax.css +Check time 3.824 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/css/hyde.css' +Parent URL http://www.nexusformat.org/content/NIAC2024_minutes/, line 21, col 3 +Real URL http://www.nexusformat.org/content/NIAC2024_minutes/public/css/hyde.css +Check time 3.703 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/apple-touch-icon-144-precomposed.png' +Parent URL http://www.nexusformat.org/content/NIAC2024_minutes/, line 25, col 3 +Real URL http://www.nexusformat.org/content/NIAC2024_minutes/public/apple-touch-icon-144-precomposed.png +Check time 3.657 seconds +Size 1KB +Result Error: 404 Not Found + +URL `public/favicon.ico' +Parent URL http://www.nexusformat.org/content/NIAC2024_minutes/, line 26, col 3 +Real URL http://www.nexusformat.org/content/NIAC2024_minutes/public/favicon.ico +Check time 3.342 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NIAC.html' +Name `NIAC' +Parent URL http://www.nexusformat.org/content/NIAC2024_minutes/, line 1137, col 20 +Real URL http://www.nexusformat.org/content/NIAC2024_minutes/NIAC.html +Check time 3.332 seconds +Size 1KB +Result Error: 404 Not Found + +URL `issue #1143' +Name `estimated time' +Parent URL http://www.nexusformat.org/Telco_20220824.html, line 1203, col 24 +Real URL http://www.nexusformat.org/issue%20#1143 +Check time 3.375 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Telco_20160512.html' +Name `Telco 20160512' +Parent URL http://www.nexusformat.org/Telco_20160426.html, line 1212, col 7 +Real URL http://www.nexusformat.org/Telco_20160512.html +Check time 3.405 seconds +Size 1KB +Result Error: 404 Not Found + +URL `2014-CodeCamp-Schedule-MTW.png' +Name `2014-CodeCamp-Schedule-MTW.png' +Parent URL http://www.nexusformat.org/NIAC2014_CodeCamp.html, line 1153, col 4 +Real URL http://www.nexusformat.org/2014-CodeCamp-Schedule-MTW.png +Check time 3.769 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Discussions.html' +Name `Discussions' +Parent URL http://www.nexusformat.org/NIAC2014_CodeCamp.html, line 1165, col 1 +Real URL http://www.nexusformat.org/Discussions.html +Check time 3.366 seconds +Size 1KB +Result Error: 404 Not Found + +URL Matthias_Drochner.html' +Name `Matthias Drochner' +Parent URL http://www.nexusformat.org/NIAC2008_attendees.html, line 1203, col 11 +Real URL http://www.nexusformat.org/User%3AMatthias_Drochner.html +Check time 3.556 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Niac2008-attendees.jpg' +Name `photo of NIAC 2008 attendees' +Parent URL http://www.nexusformat.org/NIAC2008_attendees.html, line 1210, col 4 +Real URL http://www.nexusformat.org/Niac2008-attendees.jpg +Check time 3.856 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Niac2008-hotel.jpg' +Name `Rydges Cronulla Sydney hotel, site of NIAC2008 meeting' +Parent URL http://www.nexusformat.org/NIAC2008_attendees.html, line 1211, col 1 +Real URL http://www.nexusformat.org/Niac2008-hotel.jpg +Check time 3.696 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Niac2008-view.jpg' +Name `Panorama view of North Cronulla Beach from Rydges Cronulla Sydney hotel, site of NIAC2008 meeting' +Parent URL http://www.nexusformat.org/NIAC2008_attendees.html, line 1212, col 1 +Real URL http://www.nexusformat.org/Niac2008-view.jpg +Check time 3.640 seconds +Size 1KB +Result Error: 404 Not Found + +URL Stephane_Poirier.html' +Name `Stephane Poirier' +Parent URL http://www.nexusformat.org/NIAC2007_attendees.html, line 1272, col 11 +Real URL http://www.nexusformat.org/User%3AStephane_Poirier.html +Check time 3.392 seconds +Size 1KB +Result Error: 404 Not Found + +URL Thomas_Proffen +Name `Thomas Proffen' +Parent URL http://www.nexusformat.org/NIAC2007_attendees.html, line 1279, col 11 +Real URL http://www.nexusformat.org/User%3AThomas_Proffen.html +Check time 3.309 seconds +Size 1KB +Result Error: 404 Not Found + +URL Nick.html' +Name `Nick Hauser' +Parent URL http://www.nexusformat.org/NIAC2006LBL_attendees.html, line 1183, col 11 +Real URL http://www.nexusformat.org/User%3ANick.html +Check time 3.407 seconds +Size 1KB +Result Error: 404 Not Found + +URL Przemek_Klosowski +Name `Przemek Klosowski' +Parent URL http://www.nexusformat.org/NIAC2006LBL_attendees.html, line 1211, col 11 +Real URL http://www.nexusformat.org/User%3APrzemek_Klosowski.html +Check time 3.089 seconds +Size 1KB +Result Error: 404 Not Found + +URL `SubversionServer.html' +Name `SubversionServer' +Parent URL http://www.nexusformat.org/Metaformat.html, line 1176, col 1 +Real URL http://www.nexusformat.org/SubversionServer.html +Check time 3.278 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_43_Testing.html' +Name `NeXus_43_Testing' +Parent URL http://www.nexusformat.org/Latest_News.html, line 1172, col 86 +Real URL http://www.nexusformat.org/NeXus_43_Testing.html +Check time 3.232 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_42_Testing.html' +Name `available for testing' +Parent URL http://www.nexusformat.org/Latest_News.html, line 1201, col 96 +Real URL http://www.nexusformat.org/NeXus_42_Testing.html +Check time 3.556 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_41_Testing.html' +Name `testing site' +Parent URL http://www.nexusformat.org/Latest_News.html, line 1223, col 135 +Real URL http://www.nexusformat.org/NeXus_41_Testing.html +Check time 3.885 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXus_4_Testing.html' +Name `testing site' +Parent URL http://www.nexusformat.org/Latest_News.html, line 1245, col 130 +Real URL http://www.nexusformat.org/NeXus_4_Testing.html +Check time 4.290 seconds +Size 1KB +Result Error: 404 Not Found + +URL `mailinglist.html' +Name `MailingLists' +Parent URL http://www.nexusformat.org/Latest_News.html, line 1251, col 39 +Real URL http://www.nexusformat.org/mailinglist.html +Check time 4.581 seconds +Size 1KB +Result Error: 404 Not Found + +URL PfPeterson +Name `Peter\nPeterson’s' +Parent URL http://www.nexusformat.org/Latest_News.html, line 1261, col 34 +Real URL http://www.nexusformat.org/User%3APfpeterson.html +Check time 4.442 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Nexpy.png' +Name `NeXpy|center|800px' +Parent URL http://www.nexusformat.org/NeXpy.html, line 1284, col 4 +Real URL http://www.nexusformat.org/Nexpy.png +Check time 4.063 seconds +Size 1KB +Result Error: 404 Not Found + +URL `NeXPy-Simple_plot.png' +Name `A simple NeXpy\nplot|center' +Parent URL http://www.nexusformat.org/NeXpy.html, line 1546, col 4 +Real URL http://www.nexusformat.org/NeXPy-Simple_plot.png +Check time 4.007 seconds +Size 1KB +Result Error: 404 Not Found + +URL `Axis_Limits_Bar.png' +Name `Axis Limits\nToolbar|center|600px' +Parent URL http://www.nexusformat.org/NeXpy.html, line 1561, col 8 +Real URL http://www.nexusformat.org/Axis_Limits_Bar.png +Check time 3.944 seconds +Size 1KB +Result Error: 404 Not Found + +Statistics: +Downloaded: 7.12MB. +Content types: 56 image, 589 text, 0 video, 0 audio, 30 application, 7 mail and 732 other. +URL lengths: min=11, max=162, avg=50. + +That's it. 1414 links in 1414 URLs checked. 0 warnings found. 160 errors found. +Stopped checking at 2025-01-21 11:59:25-006 (3 minutes, 57 seconds) From 40bc83e716b169c965c504dc6e976be0118666cc Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 09:38:43 -0600 Subject: [PATCH 03/16] fixed location to new niac html pages --- source/codecamps/CodeCamp2020-2.rst | 4 ++-- source/codecamps/CodeCamp2020.rst | 2 +- source/codecamps/Code_Camp_2017.rst | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/codecamps/CodeCamp2020-2.rst b/source/codecamps/CodeCamp2020-2.rst index ec111823..0ec493d2 100644 --- a/source/codecamps/CodeCamp2020-2.rst +++ b/source/codecamps/CodeCamp2020-2.rst @@ -13,7 +13,7 @@ CodeCamp2020-2 The 2020-2 NeXus Code Camp is scheduled for 2 days in October 2020: October 19 (Monday) - 20 (Tuesday). It is taking place one week after the `2020 NIAC - meeting `__. It was + meeting <../niac/NIAC2020.html>`__. It was originally planned to be immediately after the `NOBUGS 2020 conference `__, hosted by the `European XFEL `__, but NOBUGS has been @@ -27,7 +27,7 @@ CodeCamp2020-2 from core NeXus developers, e.g. writing an application definition or writing a NeXus file correctly. The Tuesday will be more for the core NeXus developers to work on implementing `NIAC - decisions `__ + decisions <../niac/NIAC2020.html>`__ If you have a topic you wish to discuss/cover in the Monday code camp, please add it as a comment to this `GitHub diff --git a/source/codecamps/CodeCamp2020.rst b/source/codecamps/CodeCamp2020.rst index 2aa87977..0a89e0dc 100644 --- a/source/codecamps/CodeCamp2020.rst +++ b/source/codecamps/CodeCamp2020.rst @@ -267,7 +267,7 @@ CodeCamp2020 - Check-in, Welcome, and introductions - Decide which - `topics `__ + `topics `__ to work on and resolve during this code camp. - this took longer than expected (about 90 minutes) diff --git a/source/codecamps/Code_Camp_2017.rst b/source/codecamps/Code_Camp_2017.rst index 889b05cb..a2a595d7 100644 --- a/source/codecamps/Code_Camp_2017.rst +++ b/source/codecamps/Code_Camp_2017.rst @@ -126,7 +126,7 @@ Code Camp 2017 :name: versioning - Looking at the versioning concept as in the - `document `__ + `document <../niac/NIAC2016Minutes.html>`__ - Big discussion about the complexity of local vrs. global versioning, i.e version on baseclasses vrs. versioning on the file. From 923e1213a53db7ce4b854071df55c652c2776396 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 13:33:22 -0600 Subject: [PATCH 04/16] relocated some codecamp files from niac and fixed some more links --- .../NIAC2010_CodeCamp.rst => codecamps/CodeCamp2010.rst} | 0 .../NIAC2011_CodeCamp.rst => codecamps/CodeCamp2011.rst} | 0 .../NIAC2014_CodeCamp.rst => codecamps/CodeCamp2014.rst} | 2 +- source/codecamps/CodeCamp2021-1.rst | 3 +-- source/codecamps/codecamps.rst | 4 ++++ source/niac/NIAC2010.rst | 2 +- source/niac/NIAC2014.rst | 2 +- source/niac/NIAC2022_fall_minutes.rst | 2 +- source/niac/niac.rst | 4 ++-- source/niac/previous_meetings.rst | 9 +++------ 10 files changed, 14 insertions(+), 14 deletions(-) rename source/{niac/NIAC2010_CodeCamp.rst => codecamps/CodeCamp2010.rst} (100%) rename source/{niac/NIAC2011_CodeCamp.rst => codecamps/CodeCamp2011.rst} (100%) rename source/{niac/NIAC2014_CodeCamp.rst => codecamps/CodeCamp2014.rst} (96%) diff --git a/source/niac/NIAC2010_CodeCamp.rst b/source/codecamps/CodeCamp2010.rst similarity index 100% rename from source/niac/NIAC2010_CodeCamp.rst rename to source/codecamps/CodeCamp2010.rst diff --git a/source/niac/NIAC2011_CodeCamp.rst b/source/codecamps/CodeCamp2011.rst similarity index 100% rename from source/niac/NIAC2011_CodeCamp.rst rename to source/codecamps/CodeCamp2011.rst diff --git a/source/niac/NIAC2014_CodeCamp.rst b/source/codecamps/CodeCamp2014.rst similarity index 96% rename from source/niac/NIAC2014_CodeCamp.rst rename to source/codecamps/CodeCamp2014.rst index 3343bc66..d6f987d0 100644 --- a/source/niac/NIAC2014_CodeCamp.rst +++ b/source/codecamps/CodeCamp2014.rst @@ -14,7 +14,7 @@ NIAC2014 CodeCamp together on developing software or resolving particular NeXus design issues. - See `NIAC2014 `__ for administrative details about + See `NIAC2014 <../niac/NIAC2014.html>`__ for administrative details about this meeting. .. rubric:: Planned Schedule (subject to change) diff --git a/source/codecamps/CodeCamp2021-1.rst b/source/codecamps/CodeCamp2021-1.rst index efc0caa3..d11fcdeb 100644 --- a/source/codecamps/CodeCamp2021-1.rst +++ b/source/codecamps/CodeCamp2021-1.rst @@ -60,5 +60,4 @@ CodeCamp2021-1 `Session times `__ - `Project on - Github `__ + `Project on Github `__ diff --git a/source/codecamps/codecamps.rst b/source/codecamps/codecamps.rst index d0fa4d60..ccbfeabe 100644 --- a/source/codecamps/codecamps.rst +++ b/source/codecamps/codecamps.rst @@ -16,9 +16,13 @@ Codecamps :maxdepth: 2 :caption: Contents: + CodeCamp2010 + CodeCamp2011 + CodeCamp2014 Code_Camp_2015 Code_Camp_2017 CodeCamp2020 CodeCamp2021-1 CodeCamp2022 CodeCampJune2023 + diff --git a/source/niac/NIAC2010.rst b/source/niac/NIAC2010.rst index cdac36ab..868e8c01 100644 --- a/source/niac/NIAC2010.rst +++ b/source/niac/NIAC2010.rst @@ -17,7 +17,7 @@ NIAC2010 Currently the tentative dates are: - - `NeXus code camp `__ -> 5th / 6th + - `NeXus code camp <../codecamps/CodeCamp2010.html>`__ -> 5th / 6th October 2010 - NIAC Meeting -> 7th / 8th October 2010 - NeXus workshop -> 10th October diff --git a/source/niac/NIAC2014.rst b/source/niac/NIAC2014.rst index d6f1a734..3db718f7 100644 --- a/source/niac/NIAC2014.rst +++ b/source/niac/NIAC2014.rst @@ -390,7 +390,7 @@ NIAC2014 .. rubric:: NeXus Code Camp :name: NIAC2014_nexus-code-camp - See `NIAC2014_CodeCamp `__ for specific + See `NIAC2014_CodeCamp <../codecamps/CodeCamp2014.html>`__ for specific Agenda and notes .. rubric:: NIAC Meeting diff --git a/source/niac/NIAC2022_fall_minutes.rst b/source/niac/NIAC2022_fall_minutes.rst index 6f63e8dd..89cb21d6 100644 --- a/source/niac/NIAC2022_fall_minutes.rst +++ b/source/niac/NIAC2022_fall_minutes.rst @@ -32,7 +32,7 @@ NIAC2022 fall minutes proposal was voted on and approved. SB preseted issue 3 (Allow NXdata dimension variables to contain a - list of strings https://github.com/nexusformat/NIAC/issues/945), + list of strings https://github.com/nexusformat/definitions/issues/945), SB this would be an array of strings PC this issue was voted on and approved back at the spring NIAC PJ the changes need to be made, will set for next release diff --git a/source/niac/niac.rst b/source/niac/niac.rst index d05db375..3b726206 100644 --- a/source/niac/niac.rst +++ b/source/niac/niac.rst @@ -222,9 +222,9 @@ NIAC - `NIAC 2012 `__ NeXus Code Camp and NIAC Meeting, hosted by ISIS and Diamond at RAL, Oxfordshire, UK, September 2012 (`minutes `__) - - `NIAC 2011 `__ NeXus Code Camp and NIAC + - `NIAC 2011 <../codecamps/CodeCamp2011.html>`__ NeXus Code Camp and NIAC Meeting, APS, October 2011 - (`minutes `__) + (`minutes <../codecamps/CodeCamp2011.html#final-report>`__) - `NIAC 2010 `__ NeXus Code Camp and NIAC Meeting, ORNL, October 2010 (`minutes <../pdfs/Minutes_of_NeXus_Committee_2010.pdf>`__) diff --git a/source/niac/previous_meetings.rst b/source/niac/previous_meetings.rst index 0b9f74e6..e624b5a3 100644 --- a/source/niac/previous_meetings.rst +++ b/source/niac/previous_meetings.rst @@ -39,15 +39,15 @@ previous meetings `[NIAC2009] `_ - `[NIAC2010_CodeCamp] `_ + `[NIAC2010_CodeCamp] <../codecamps/CodeCamp2010.html>`_ `[NIAC2010] `_ - `[NIAC2011_CodeCamp] `_ + `[NIAC2011_CodeCamp] <../codecamps/CodeCamp2011.html>`_ `[NIAC2012] `_ - `[NIAC2014_CodeCamp] `_ + `[NIAC2014_CodeCamp] <../codecamps/CodeCamp2014.html>`_ `[NIAC2014_Meeting] `_ @@ -114,11 +114,8 @@ previous meetings NIAC2008_attendees NIAC2008 NIAC2009 - NIAC2010_CodeCamp NIAC2010 - NIAC2011_CodeCamp NIAC2012 - NIAC2014_CodeCamp NIAC2014_Meeting NIAC2014 NIAC2016Minutes From c90cc18b063d3923fbc3c0685b65a74c44cf7dd8 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 14:29:23 -0600 Subject: [PATCH 05/16] removed pycharm directory --- .idea/.gitignore | 8 - .idea/inspectionProfiles/Project_Default.xml | 252 ------------------ .../inspectionProfiles/profiles_settings.xml | 6 - .idea/misc.xml | 4 - .idea/modules.xml | 8 - .idea/vcs.xml | 6 - .idea/wiki.iml | 8 - 7 files changed, 292 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/inspectionProfiles/Project_Default.xml delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 .idea/wiki.iml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 1c2fda56..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index d2bc270a..00000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2da..00000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 22e56c4f..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index c3678b53..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index c8397c94..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/wiki.iml b/.idea/wiki.iml deleted file mode 100644 index a1277fdb..00000000 --- a/.idea/wiki.iml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file From 32974ab957839d74e5efe85157690cc583644233 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 14:33:10 -0600 Subject: [PATCH 06/16] removed tools used for conversion --- edit_broken_links.py | 121 ------------------------ source/brok_link_ed2.py | 102 --------------------- source/dirlist.py | 173 ----------------------------------- source/encoding_convert.py | 37 -------- source/fix_broken_links.py | 87 ------------------ source/fix_encoding_warns.py | 88 ------------------ source/fix_title.py | 63 ------------- source/pandoc_converter.py | 45 --------- 8 files changed, 716 deletions(-) delete mode 100644 edit_broken_links.py delete mode 100644 source/brok_link_ed2.py delete mode 100644 source/dirlist.py delete mode 100644 source/encoding_convert.py delete mode 100644 source/fix_broken_links.py delete mode 100644 source/fix_encoding_warns.py delete mode 100644 source/fix_title.py delete mode 100644 source/pandoc_converter.py diff --git a/edit_broken_links.py b/edit_broken_links.py deleted file mode 100644 index 84805b05..00000000 --- a/edit_broken_links.py +++ /dev/null @@ -1,121 +0,0 @@ -import sys -import os -from PyQt5.QtWidgets import ( - QApplication, QMainWindow, QFileDialog, QTextEdit, QPushButton, QVBoxLayout, QWidget, QLabel, QMessageBox -) -from PyQt5.QtGui import QTextCursor - - -class LinkCheckerEditor(QMainWindow): - def __init__(self): - super().__init__() - self.setWindowTitle("LinkChecker Editor") - self.resize(800, 600) - - self.current_index = 0 - self.linkchecker_data = [] - - # Main layout and central widget - self.fname = QLabel() - self.msg = QLabel() - self.central_widget = QWidget() - self.layout = QVBoxLayout() - - # Widgets - self.instructions = QLabel("Load a LinkChecker output file to begin.") - self.text_edit = QTextEdit() - self.next_button = QPushButton("Next") - self.load_button = QPushButton("Load LinkChecker Output") - - # Configure widgets - self.text_edit.setReadOnly(True) - self.next_button.setEnabled(False) - - # Add widgets to layout - self.layout.addWidget(self.instructions) - self.layout.addWidget(self.fname) - self.layout.addWidget(self.msg) - self.layout.addWidget(self.text_edit) - self.layout.addWidget(self.load_button) - self.layout.addWidget(self.next_button) - self.central_widget.setLayout(self.layout) - self.setCentralWidget(self.central_widget) - - # Connect signals - self.load_button.clicked.connect(self.load_linkchecker_output) - self.next_button.clicked.connect(self.process_next_file) - - def load_linkchecker_output(self): - # Open a file dialog to select the LinkChecker output file - file_path, _ = QFileDialog.getOpenFileName(self, "Select LinkChecker Output File", "", "Text Files (*.txt)") - if not file_path: - return - - try: - with open(file_path, "r") as file: - self.parse_linkchecker_output(file.readlines()) - self.instructions.setText("Loaded LinkChecker output. Click 'Next' to begin editing.") - self.next_button.setEnabled(True) - except Exception as e: - QMessageBox.critical(self, "Error", f"Failed to load file: {e}") - - def parse_linkchecker_output(self, lines): - - self.linkchecker_data = [] - parent_url = None - line_number = 0 - for line in lines: - if line.startswith("Parent URL"): - parts = line.split(",") - parent_url = parts[0].strip().replace('Parent URL file:// ', '') - parent_url = parent_url.replace("Parent URL file:///mnt/c/Users/bergr/github/branches/11/wiki/source/_build/html/","C:/Users/bergr/github/branches/11/wiki/source/") - parent_url = parent_url.replace(".html",".rst") - line_number = int(parts[1].strip().replace('line ', '')) - - if line.startswith("Result Error: "): - error = line - self.linkchecker_data.append((parent_url, line_number, error)) - parent_url = None - - def process_next_file(self): - if self.current_index >= len(self.linkchecker_data): - QMessageBox.information(self, "Done", "All files have been processed.") - self.next_button.setEnabled(False) - return - - parent_url, line_number, error = self.linkchecker_data[self.current_index] - self.fname.setText(parent_url) - self.msg.setText(error) - - self.current_index += 1 - - try: - with open(parent_url, "r") as file: - content = file.readlines() - - # Highlight the specified line - self.text_edit.setPlainText("".join(content)) - cursor = self.text_edit.textCursor() - cursor.movePosition(QTextCursor.Start) - for _ in range(line_number - 1): - cursor.movePosition(QTextCursor.Down) - self.text_edit.setTextCursor(cursor) - self.text_edit.ensureCursorVisible() - self.text_edit.setReadOnly(False) - except Exception as e: - QMessageBox.critical(self, "Error", f"Failed to open file {parent_url}: {e}") - self.process_next_file() # Move to the next file - - def save_current_file(self, file_path): - try: - with open(file_path, "w") as file: - file.write(self.text_edit.toPlainText()) - except Exception as e: - QMessageBox.critical(self, "Error", f"Failed to save file {file_path}: {e}") - - -if __name__ == "__main__": - app = QApplication(sys.argv) - window = LinkCheckerEditor() - window.show() - sys.exit(app.exec_()) diff --git a/source/brok_link_ed2.py b/source/brok_link_ed2.py deleted file mode 100644 index 08c06729..00000000 --- a/source/brok_link_ed2.py +++ /dev/null @@ -1,102 +0,0 @@ -import sys -from PyQt5.QtWidgets import ( - QApplication, QMainWindow, QLineEdit, QTextEdit, QPushButton, QVBoxLayout, QLabel, QWidget, QMessageBox -) -from PyQt5.QtGui import QTextCursor - - -class FileEditorApp(QMainWindow): - def __init__(self): - super().__init__() - - # Initialize UI components - self.input_line = QLineEdit() - self.text_edit = QTextEdit() - self.save_button = QPushButton("Save") - self.error_label = QLabel() - - # Set up layout - central_widget = QWidget() - layout = QVBoxLayout() - layout.addWidget(QLabel("Paste the Parent URL string here:")) - layout.addWidget(self.input_line) - layout.addWidget(self.error_label) - layout.addWidget(self.text_edit) - layout.addWidget(self.save_button) - central_widget.setLayout(layout) - self.setCentralWidget(central_widget) - - # Connect signals - self.input_line.returnPressed.connect(self.load_file) - self.save_button.clicked.connect(self.save_file) - - # State variables - self.current_file_path = None - - def parse_input(self, input_string): - """Parse the input string to extract file path and line number.""" - try: - # Match the format of the input string - parts = input_string.split(", ") - # file_part = parts[0].split("file:///")[1].strip() - # line_part = parts[1].split("line")[1].strip().split(",")[0] - # parts = line.split(",") - file_part = parts[0].strip().replace('Parent URL file:// ', '') - file_part = file_part.replace( - "Parent URL file:///mnt/c/Users/bergr/github/branches/11/wiki/source/_build/html/", - "C:/Users/bergr/github/branches/11/wiki/source/") - file_part = file_part.replace(".html", ".rst") - line_part = parts[1].strip().replace('line ', '') - - return file_part, int(line_part) - except (IndexError, ValueError): - raise ValueError("Invalid input format. Expected format:\n" - "Parent URL file:///path/to/file, line X, col Y") - - def load_file(self): - """Load the specified file and scroll to the specified line.""" - input_string = self.input_line.text() - - try: - file_path, line_number = self.parse_input(input_string) - self.current_file_path = file_path - - # Read the file content - with open(file_path, "r") as file: - content = file.read() - self.text_edit.setText(content) - - # Scroll to the specified line - cursor = self.text_edit.textCursor() - cursor.movePosition(QTextCursor.Start) - for _ in range(line_number - 1): # Move cursor to the specified line - cursor.movePosition(QTextCursor.Down) - self.text_edit.setTextCursor(cursor) - self.text_edit.setFocus() - - self.error_label.setText("") - except Exception as e: - self.error_label.setText(f"Error: {e}") - self.current_file_path = None - - def save_file(self): - """Save the current content of the text edit to the file.""" - if not self.current_file_path: - QMessageBox.warning(self, "Error", "No file loaded to save.") - return - - try: - with open(self.current_file_path, "w") as file: - file.write(self.text_edit.toPlainText()) - QMessageBox.information(self, "Success", f"File saved: {self.current_file_path}") - except Exception as e: - QMessageBox.critical(self, "Error", f"Failed to save file: {e}") - - -if __name__ == "__main__": - app = QApplication(sys.argv) - editor_app = FileEditorApp() - editor_app.resize(800, 600) - editor_app.setWindowTitle("File Editor") - editor_app.show() - sys.exit(app.exec_()) diff --git a/source/dirlist.py b/source/dirlist.py deleted file mode 100644 index 2c811724..00000000 --- a/source/dirlist.py +++ /dev/null @@ -1,173 +0,0 @@ -# -*- coding:utf-8 -*- -""" -Created on 2011-03-04 - -@author: bergr -""" -import os, sys -import pathlib - - -def dirlist(path, suffix, fname=None, remove_suffix=False): - """ - Takes a path and a file suffix as a filter and returns a list of the files in - that path that match the filter - ex: alist = dirlist(r'C:\pythonxy\workspace\PyQtStxmViewer\src\data\101207\A101207022', '.xim') - """ - ret = [] - containsStr = suffix - dirList = os.listdir(path) - - for f in dirList: - # if(f.find(containsStr) > -1): - # get the last 4 characters of filename as they are the file extension - extension = f[-(len(suffix)) :] - if suffix == extension: - if remove_suffix: - f = f.replace(extension, "") - if fname: - if f.find(fname) > -1: - ret.append(f) - else: - ret.append(f) - - return ret - - -def dirlist_withdirs(path, suffix, fname=None, remove_suffix=False, exclude=[".tmp"]): - """ - Takes a path and a file suffix as a filter and returns a list of the files in - that path that match the filter - ex: alist = dirlist(r'C:\pythonxy\workspace\PyQtStxmViewer\src\data\101207\A101207022', '.xim') - """ - ret = [] - containsStr = suffix - dirList = os.listdir(path) - files = [] - dirs = [] - - for f in dirList: - skip = False - for e in exclude: - if f.find(e) > -1: - # we want to skip anything in the exclude list - skip = True - if skip: - continue - # if(f.find(containsStr) > -1): - # get the last 4 characters of filename as they are the file extension - if f.find(".") > -1: - # its a file - if f.find(suffix) > -1: - # its a file we want - if remove_suffix: - f = f.replace(suffix, "") - files.append(f) - else: - # its a file but we dont want these kinds - pass - else: - # its a directory - dirs.append(f) - - # for f in files: - # extension = f[-(len(suffix)):] - # if (suffix == extension): - # if (remove_suffix): - # f = f.replace(extension, '') - # if (fname): - # if (f.find(fname) > -1): - # ret.append(f) - # else: - # ret.append(f) - - return dirs, files - - -def get_dirs(dirpath, skip_lst=[]): - dir_lst = [] - for i in pathlib.Path(dirpath).iterdir(): - if i.is_dir(): - if i.name in skip_lst: - continue - dir_lst.append(i) - l = get_dirs(i, skip_lst) - if len(l) > 0: - dir_lst.append(l) - return dir_lst - - -def get_all_dirs(basedir, skip_lst=[]): - basepath = pathlib.PurePath(basedir) - _lst = get_dirs(basepath, skip_lst) - dir_lst = [x for x in _lst if x != []] - - return dir_lst - - -def get_all_files_and_subdirs(basepath_str, skip_lst=[]): - l = [] - for path, subdirs, files in os.walk(basepath_str): - for name in files: - skip = False - subdir = path.replace(basepath_str + "\\", "") - for skipit in skip_lst: - if subdir.find(skipit) > -1: - skip = True - if not skip: - l.append(os.path.join(path, name)) - return l - -def get_subdir_names(basepath_str, skip_lst=[]): - subs = [] - dirs = os.listdir(basepath_str) - for d in dirs: - for skip in skip_lst: - if d.find(skip) > -1: - break - else: - if d not in subs: - subs.append(d) - return subs - -def get_files_with_extension(basepath_str, ext=".py", skip_lst=[]): - lst = get_all_files_and_subdirs(basepath_str, skip_lst=skip_lst) - ll = [] - for nm in lst: - if nm.find(ext) > -1: - ll.append(nm) - return ll - - -if __name__ == "__main__": - from cls.utils.list_utils import merge_to_one_list - - # dirlist(sys.argv[1:]) - # dirlist(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5') - # dirlist(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', 'C180111004') - # dirlist(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5', fname = 'C180111004') - - # dirs, files = dirlist_withdirs(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5') - # dirs, files = dirlist_withdirs(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', 'C180111004') - # dirs, files = dirlist_withdirs(r'S:\STXM-data\Cryo-STXM\2018\guest\0111', '.hdf5', fname='C180111004') - - # skip_lst = ['ui', 'sim_bkps', 'logs', '__pycache__', 'bl_configs', 'icons'] - # dirs = get_all_dirs('C:/controls/sandbox/pyStxm3/cls/applications/pyStxm', skip_lst=skip_lst) - # #lst = merge_to_one_list(dirs) - # for d in dirs: - # print(d) - skip_dir_lst = ["ui", "sim_bkps", "logs", "__pycache__", "bl_configs", "icons"] - # dirs = get_all_files_and_subdirs('C:/controls/sandbox/pyStxm3/cls/applications/pyStxm', skip_lst=skip_dir_lst) - # # for d in dirs: - # # print(d) - - names = get_files_with_extension( - "C:/controls/sandbox/pyStxm3/cls/applications/pyStxm", - ext=".py", - skip_lst=skip_dir_lst, - ) - for d in names: - print(d) - - -# __all__ = ['dirlist'] diff --git a/source/encoding_convert.py b/source/encoding_convert.py deleted file mode 100644 index 7bb0e4c0..00000000 --- a/source/encoding_convert.py +++ /dev/null @@ -1,37 +0,0 @@ - -import os -import subprocess -from dirlist import get_all_files_and_subdirs - -def convert_to_utf8(file_list, output_directory): - for file_path in file_list: - - parts = file_path.split(os.path.sep) - fname = parts[-1] - - try: - # Try reading the file with 'utf-8' encoding - with open(file_path, 'r', encoding='utf-8') as file: - content = file.read() - except UnicodeDecodeError: - # If 'utf-8' fails, try reading with 'latin-1' encoding - with open(file_path, 'r', encoding='latin-1') as file: - content = file.read() - - out_file = os.path.join(output_directory, fname) - print(f"writing [{out_file}]") - # Write the content back to the file with 'utf-8' encoding - with open(out_file, 'w', encoding='utf-8') as file: - file.write(content) - -if __name__ == '__main__': - # Directory containing HTML files - input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content' - output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\content-enc' - - # Ensure output directory exists - #os.makedirs(output_directory, exist_ok=True) - - #basedir = os.path.join(os.getcwd(),'codecamps-fix') - file_list = get_all_files_and_subdirs(input_directory) - convert_to_utf8(file_list,output_directory) diff --git a/source/fix_broken_links.py b/source/fix_broken_links.py deleted file mode 100644 index 364f986a..00000000 --- a/source/fix_broken_links.py +++ /dev/null @@ -1,87 +0,0 @@ -import subprocess -import re -import os -import subprocess -from dirlist import get_all_files_and_subdirs - -def check_and_fix_links(file_list): - """ - Checks and fixes broken links in a list of files using LinkChecker. - - :param file_list: List of file paths to check - """ - for file in file_list: - print(f"Checking file: {file}") - - # Run linkchecker and capture output - try: - result = subprocess.run( - ["linkchecker", "--check-extern", file], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - text=True - ) - except FileNotFoundError: - print("LinkChecker is not installed or not in PATH.") - return - - # Parse for broken links - errors = extract_broken_links(result.stdout) - if errors: - print(f"Found {len(errors)} broken links in {file}. Fixing...") - fix_links_in_file(file, errors) - else: - print(f"No broken links found in {file}.") - - -def extract_broken_links(output): - """ - Extracts broken links from LinkChecker output. - - :param output: LinkChecker output as a string - :return: List of broken link strings - """ - # Regex pattern to extract URLs flagged as broken - pattern = re.compile(r"URL\s+([^ ]+)\s+Error") - return pattern.findall(output) - - -def fix_link(link): - """ - Fixes a broken link by appending "broke" to it. - - :param link: The broken link as a string - :return: Modified link string - """ - return link + "broke" - - -def fix_links_in_file(file_path, broken_links): - """ - Modifies a file to fix broken links by appending "broke" to each. - - :param file_path: Path to the file - :param broken_links: List of broken link strings - """ - try: - with open(file_path, "r") as file: - content = file.read() - - # Replace broken links with the "fixed" versions - for link in broken_links: - fixed_link = fix_link(link) - content = content.replace(link, fixed_link) - - with open(file_path, "w") as file: - file.write(content) - print(f"Fixed broken links in {file_path}.") - - except FileNotFoundError: - print(f"File {file_path} not found.") - except Exception as e: - print(f"Error processing {file_path}: {e}") - - -# Example usage -files_to_check = ["example1.html", "example2.rst"] -check_and_fix_links(files_to_check) diff --git a/source/fix_encoding_warns.py b/source/fix_encoding_warns.py deleted file mode 100644 index 2235f012..00000000 --- a/source/fix_encoding_warns.py +++ /dev/null @@ -1,88 +0,0 @@ -import glob -import os -import subprocess -from dirlist import get_all_files_and_subdirs -import os -import glob - - -def fix_encoding(input_dir, output_dir): - """ - Fix encoding issues in .rst files by replacing non-UTF-8 characters. - - Args: - input_dir (str): Directory containing the input .rst files. - output_dir (str): Directory where the fixed files will be saved. - """ - # Define replacements - replacements = { - b'\x91': b'"', - b'\x92': b'"', - b'\x93': b'"', # Opening smart quote - b'\x94': b'"', # Closing smart quote - b'\x96': b'"', - b'\xf6': b'"', - b'\xa0': b' ', - b'\xfc': b' ', - b'\xe8': b' ', - b'\xef': b' ', - b'\xbf': b' ', - - b'\x85': b' ', - b'\xbd': b' ', - b'\xe2': b' ', - b'\x80': b' ', - b'\xc2': b' ', - - b'\x9c': b' ', - b'\x9d': b' ', - b'\x99': b' ', - - b'\xa6': b' ', - b'\xb0': b' ', - - b'\x97': b' ', - b'\xa3': b' ', - - b'\x84': b' ', - b'\xe9': b' ', - b'\xe9': b' ', - - - - - - - - } - - # Ensure output directory exists - os.makedirs(output_dir, exist_ok=True) - - # Process all .rst files in the input directory - for file in glob.glob(os.path.join(input_dir, "*.rst")): - with open(file, "rb") as f: - content = f.read() - - # Apply replacements - for old, new in replacements.items(): - content = content.replace(old, new) - - # Save the fixed file in the output directory - output_file = os.path.join(output_dir, os.path.basename(file)) - with open(output_file, "wb") as f: - f.write(content) - print(f"Wrote fixed output to [{output_file}]") - - print(f"Processed all .rst files from {input_dir} and saved them to {output_dir}.") - - -if __name__ == '__main__': - # Directory containing HTML files - # input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac' - # output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\niac-fix' - input_directory = r'C:\Users\bergr\github\branches\11\conv_files\fixed' - output_directory = r'C:\Users\bergr\github\branches\11\conv_files\fixed\encfixed' - - fix_encoding(input_directory, output_directory) - diff --git a/source/fix_title.py b/source/fix_title.py deleted file mode 100644 index c59fc2ff..00000000 --- a/source/fix_title.py +++ /dev/null @@ -1,63 +0,0 @@ -import os -import subprocess -from dirlist import get_all_files_and_subdirs - -def generate_equals_string(input_string): - length = len(input_string) - return '=' * length - -def fix_title(fpath, output_directory): - try: - is_content = False - if fpath.find('content') > -1: - is_content = True - final_lines = [] - write_file = False - if os.path.exists(fpath): - parts = fpath.split(os.path.sep) - fname = parts[-1] - with open(fpath, 'r', encoding='utf-8', errors='replace') as f: - lines = f.readlines() - - idx = 0 - for l in lines: - if is_content or ((idx < 2) and l.find(".. container:: content") > -1): - #insert title - name = f"{parts[-1].replace('.rst','').replace('_',' ')}" - final_lines.append(f"{generate_equals_string(name)}\n") - #final_lines.append(f"{parts[-1].replace('.rst','').replace('_',' ')}\n") - final_lines.append(f"{name}\n") - final_lines.append(f"{generate_equals_string(name)}\n\n\n") - final_lines.append(l) - idx -=1000000000 - write_file = True - #now turn it off - is_content = False - else: - final_lines.append(l) - idx += 1 - if idx > 5 and not write_file: - return - if write_file: - outfile = os.path.join(output_directory,fname) - with open(outfile, 'w') as f: - f.writelines(final_lines) - print(f'Done fixing title for {outfile}') - except Exception as err: - print(f"Unexpected {err=}, {type(err)=}") - - - -if __name__ == '__main__': - # Directory containing HTML files - input_directory = r'C:\Users\bergr\github\branches\11\conv_files' - output_directory = r'C:\Users\bergr\github\branches\11\conv_files\fixed' - - # Ensure output directory exists - #os.makedirs(output_directory, exist_ok=True) - - #basedir = os.path.join(os.getcwd(),'codecamps-fix') - files = get_all_files_and_subdirs(input_directory) - for file in files: - if file.find('.rst') > -1: - fix_title(file, output_directory) diff --git a/source/pandoc_converter.py b/source/pandoc_converter.py deleted file mode 100644 index 10729d34..00000000 --- a/source/pandoc_converter.py +++ /dev/null @@ -1,45 +0,0 @@ -import os -import subprocess -from dirlist import get_all_files_and_subdirs - - -def convert_html_to_rst(html_file_path, rst_file_path): - """Converts a single HTML file to an RST file using pandoc.""" - try: - subprocess.run(['pandoc', '-f', 'html', '-t', 'rst', '-o', rst_file_path, html_file_path], check=True) - print(f"Converted: {html_file_path} -> {rst_file_path}") - except subprocess.CalledProcessError as e: - print(f"Error converting {html_file_path}") - -def convert_md_to_rst(md_file_path, rst_file_path): - """Converts a single Markdown file to an RST file using pandoc. - pandoc yourfile.md -t rst -o outputfile.rst - """ - try: - subprocess.run(['pandoc', '-t', 'rst', '-o', rst_file_path, html_file_path], check=True) - print(f"Converted: {md_file_path} -> {rst_file_path}") - except subprocess.CalledProcessError as e: - print(f"Error converting {md_file_path}") - - -if __name__ == '__main__': - # Directory containing HTML files - input_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\extra_files_html' - output_directory = r'C:\Users\bergr\github\branches\test\gen_rst\source\rst_output' - - # Ensure output directory exists - #os.makedirs(output_directory, exist_ok=True) - - basedir = os.path.join(os.getcwd(),'extra_files_html') - files = get_all_files_and_subdirs(basedir) - for file in files: - if file.find(".html") > -1: - rst_fpath = f"{file.replace('.html', '.rst')}" - convert_html_to_rst(file, rst_fpath) - elif file.find(".md") > -1: - rst_fpath = f"{file.replace('.md', '.rst')}" - convert_html_to_rst(file, rst_fpath) - else: - continue - - \ No newline at end of file From 479e189b9645e212d747ab5941b3e01e367cbefc Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 15:04:02 -0600 Subject: [PATCH 07/16] added output from linkchecker looking at external links of shpinx wiki for future reference --- .gitignore | 2 + source/sphinx_wiki_broken_links.txt | 1157 +++++++++++++++++++++++++++ 2 files changed, 1159 insertions(+) create mode 100644 .gitignore create mode 100644 source/sphinx_wiki_broken_links.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ad4e0be8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.idea +./dev_tools/ext/__pycache__/ \ No newline at end of file diff --git a/source/sphinx_wiki_broken_links.txt b/source/sphinx_wiki_broken_links.txt new file mode 100644 index 00000000..c17e7a7f --- /dev/null +++ b/source/sphinx_wiki_broken_links.txt @@ -0,0 +1,1157 @@ +LinkChecker 10.5.0 +Copyright (C) 2000-2016 Bastian Kleineidam, 2010-2024 LinkChecker Authors +LinkChecker comes with ABSOLUTELY NO WARRANTY! +This is free software, and you are welcome to redistribute it under +certain conditions. Look at the file `COPYING' within this distribution. +Read the documentation at https://linkchecker.github.io/linkchecker/ +Write comments and bugs to https://github.com/linkchecker/linkchecker/issues + +Start checking at 2025-01-22 14:48:11-006 + +URL `http://www.diamond.ac.uk' +Name `Diamond' +Parent URL file:///wiki/source/_build/html/facilities/Facilities.html, line 87, col 1 +Real URL https://www.diamond.ac.uk/ +Check time 1.589 seconds +Warning [http-redirected] Redirected to + `https://www.diamond.ac.uk/' status: 302 Found. +Result Error: 403 Forbidden + +URL `http://www.cells.es' +Name `Alba' +Parent URL file:///wiki/source/_build/html/facilities/Facilities.html, line 106, col 1 +Real URL http://www.cells.es +Check time 1.318 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='www.cells.es', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11... + +URL `http://lansce.lanl.gov/lujan' +Name `Los Alamos National\nLaboratory' +Parent URL file:///wiki/source/_build/html/facilities/Facilities.html, line 137, col 54 +Real URL http://lansce.lanl.gov/lujan +Check time 0.273 seconds +Result Error: ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) + +URL `http://www.ill.eu/instruments-support/computing-for-science/cs-software/all-software/lamp/' +Name `LAMP' +Parent URL file:///wiki/source/_build/html/facilities/Facilities.html, line 173, col 1 +Real URL https://www.ill.eu/instruments-support/computing-for-science/cs-software/all-software/lamp/ +Check time 1.810 seconds +Warning [http-redirected] Redirected to + `https://www.ill.eu/instruments-support/computing-for-science/cs-software/all-software/lamp/' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `https://www.psi.ch/en/visit/how-to-find-us' +Name `reach by public\ntransport' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022.html, line 72, col 15 +Real URL https://www.psi.ch/en/visit/how-to-find-us +Check time 1.632 seconds +Size 187.11KB +Result Error: 403 Forbidden + +URL `http://www.europeanspallationsource.se' +Name `ESS' +Parent URL file:///wiki/source/_build/html/facilities/Facilities.html, line 194, col 1 +Real URL http://www.europeanspallationsource.se +Check time 6.638 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='www.europeanspallationsource.se', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'www.euro... + +URL `https://www.bag.admin.ch/bag/en/home/krankheiten/ausbrueche-epidemien-pandemien/aktuelle-ausbrueche-epidemien/novel-cov/empfehlungen-fuer-reisende.html' +Name `Swiss\ngovernment' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022.html, line 111, col 89 +Real URL https://www.bag.admin.ch/bag/en/home/krankheiten/ausbrueche-epidemien-pandemien/aktuelle-ausbrueche-epidemien/novel-cov/empfehlungen-fuer-reisende.html +Check time 2.564 seconds +Size 60.50KB +Result Error: 404 Not Found + +URL `https://github' +Name `https://github' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022.html, line 471, col 5 +Real URL https://github +Check time 4.074 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='github', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'github' ([Errno -2] Name or se... + +URL `http://www.nexus.anl.gov' +Name `http://www.nexus.anl.gov' +Parent URL file:///wiki/source/_build/html/niac/NIACActionItems.html, line 99, col 22 +Real URL http://www.nexus.anl.gov +Check time 0.008 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='www.nexus.anl.gov', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'www.nexus.anl.gov' ([E... + +URL `http://www.nexus.anl.gov/' +Name `http://www.nexus.anl.gov/' +Parent URL file:///wiki/source/_build/html/niac/NIACActionItems.html, line 135, col 21 +Real URL http://www.nexus.anl.gov/ +Check time 0.512 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='www.nexus.anl.gov', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'www.nexus.anl.gov' ([E... + +URL `http://trac.nexusformat.org/definitions/ticket/11' +Name `#11' +Parent URL file:///wiki/source/_build/html/niac/NIACActionItems.html, line 145, col 1 +Real URL http://trac.nexusformat.org/definitions/ticket/11 +Check time 2.008 seconds +Size 288B +Result Error: 404 Not Found + +URL `mailto:ENTRY/%40entry' +Name `ENTRY/@entry' +Parent URL file:///wiki/source/_build/html/niac/NIAC2024_minutes.html, line 125, col 18 +Real URL mailto:ENTRY/@entry +Check time 2.038 seconds +Warning [mail-no-mx-host] No MX mail host for entry found. +Result Error: No host for entry found. + +URL `https://github.com/orgs/nexusformat/projects/1?add_cards_query=is%3Aopen' +Name `add additional issues\nand pull\nrequests' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2022.html, line 65, col 42 +Real URL https://github.com/orgs/nexusformat/projects/1?add_cards_query=is:open +Check time 1.895 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/NIAC/projects/4' +Name `https://github.com/nexusformat/NIAC/projects/4' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring_minutes.html, line 71, col 1 +Real URL https://github.com/nexusformat/NIAC/projects/4 +Check time 2.338 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://areadetector.github.io/master/ADCore/NDPluginROI.html' +Name `https://areadetector.github.io/master/ADCore/NDPluginROI.html' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring_minutes.html, line 389, col 1 +Real URL https://areadetector.github.io/master/ADCore/NDPluginROI.html +Check time 2.236 seconds +Size 5KB +Result Error: 404 Not Found + +URL `https://bliss.gitlab-pages.esrf.fr/bliss/master/flint/flint_roi_counters.html' +Name `https://bliss.gitlab-pages.esrf.fr/bliss/master/flint/flint_roi_counters.html' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring_minutes.html, line 391, col 1 +Real URL https://bliss.gitlab-pages.esrf.fr/bliss/master/flint/flint_roi_counters.html +Check time 2.367 seconds +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/definitions/compare/944-add-NXregion' +Name `https://github.com/nexusformat/definitions/compare/944-add-NXregion' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring_minutes.html, line 393, col 1 +Real URL https://github.com/nexusformat/definitions/compare/944-add-NXregion +Check time 2.349 seconds +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/definitions/compare/925-nxbeam-geometry' +Name `https://github.com/nexusformat/definitions/compare/925-nxbeam-geometry' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring_minutes.html, line 410, col 1 +Real URL https://github.com/nexusformat/definitions/compare/925-nxbeam-geometry +Check time 2.544 seconds +Result Error: 404 Not Found + +URL `http://www.lbl.gov/Workplace/near-our-shuttle.html' +Name `http://www.lbl.gov/Workplace/near-our-shuttle.html' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 167, col 7 +Real URL https://www.lbl.gov/Workplace/near-our-shuttle.html +Check time 1.661 seconds +Warning [http-redirected] Redirected to + `https://www.lbl.gov/Workplace/near-our-shuttle.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.ill.fr/pages/science/User/UGuide.html' +Name `http://www.ill.fr/pages/science/User/UGuide.html' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006ILL.html, line 85, col 133 +Real URL https://www.ill.eu/pages/science/User/UGuide.html +Check time 3.419 seconds +Warning [http-redirected] Redirected to + `https://www.ill.eu/pages/science/User/UGuide.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.lbl.gov/Workplace/lab-site-map.html_LBL_campus_map.html' +Name `http://www.lbl.gov/Workplace/lab-site-map.html LBL\ncampus\nmap' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 172, col 14 +Real URL https://www.lbl.gov/Workplace/lab-site-map.html_LBL_campus_map.html +Check time 0.644 seconds +Warning [http-redirected] Redirected to + `https://www.lbl.gov/Workplace/lab-site-map.html_LBL_campus_map.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.esrf.fr/AboutUs/CompanyInfo/Access' +Name `http://www.esrf.fr/AboutUs/CompanyInfo/Access' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006ILL.html, line 87, col 130 +Real URL https://www.esrf.fr/AboutUs/CompanyInfo/Access +Check time 4.126 seconds +Size 1KB +Warning [http-redirected] Redirected to + `https://www.esrf.fr/AboutUs/CompanyInfo/Access' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.strainet.org' +Name `STRAI\nNET' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007_attendees.html, line 232, col 8 +Real URL http://www.strainet.org +Check time 0.009 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='www.strainet.org', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'www.strainet.org' ([Err... + +URL `http://svn.nexusformat.org/code' +Name `http://svn.nexusformat.org/code' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 266, col 7 +Real URL http://svn.nexusformat.org/code +Check time 0.521 seconds +Result Error: 401 Unauthorized + +URL `http://www.nexusformat.org/instruments/NXmonotas' +Name `http://www.nexusformat.org/instruments/NXmonotas' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007_Minutes.html, line 279, col 168 +Real URL http://www.nexusformat.org/instruments/NXmonotas +Check time 0.042 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://svn.nexusformat.org/code/trunk/README.developers' +Name `README.developers' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007_Minutes.html, line 719, col 1 +Real URL http://svn.nexusformat.org/code/trunk/README.developers +Check time 0.249 seconds +Result Error: 401 Unauthorized + +URL `http://www.nexusformat.org/SQA_Process' +Name `http://www.nexusformat.org/SQA_Process' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007_Minutes.html, line 722, col 1 +Real URL http://www.nexusformat.org/SQA_Process +Check time 0.489 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.webel.com.au/nexml' +Name `NeXML proposal' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 100, col 1 +Real URL https://www.webel.com.au/nexml/ +Check time 3.694 seconds +Warning [http-redirected] Redirected to + `https://www.webel.com.au/nexml' status: 302 Found. + [http-redirected] Redirected to + `https://www.webel.com.au/nexml/' status: 301 Moved + Permanently. +Result Error: 404 Not Found + +URL `mailto:hoffmann-j%40hmi.de' +Name `1' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 75, col 1 +Real URL mailto:hoffmann-j@hmi.de +Check time 0.018 seconds +Warning [mail-no-mx-host] No MX mail host for hmi.de found. +Result Error: No host for hmi.de found. + +URL `http://www.hmi.de/hmi/gebaeudeplan.pdf' +Name `map of the\narea' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 62, col 11 +Real URL https://www.helmholtz-berlin.de/hmi/gebaeudeplan.pdf +Check time 2.792 seconds +Warning [http-redirected] Redirected to + `https://www.helmholtz-berlin.de/hmi/gebaeudeplan.pdf' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.hmi.de/hmi/wegwannsee_en.html' +Name `to Berlin\nWannsee' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 79, col 25 +Real URL https://www.helmholtz-berlin.de/hmi/wegwannsee_en.html +Check time 2.693 seconds +Warning [http-redirected] Redirected to + `https://www.helmholtz-berlin.de/hmi/wegwannsee_en.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/definitions/report/3' +Name `Open\ntickets' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 169, col 8 +Real URL http://trac.nexusformat.org/definitions/report/3 +Check time 0.248 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://www.hmi.de/hmi/standorte_en.html#Wannsee' +Name `HMI campus\nWannsee' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 69, col 56 +Real URL https://www.helmholtz-berlin.de/hmi/standorte_en.html#Wannsee +Check time 3.658 seconds +Warning [http-redirected] Redirected to + `https://www.helmholtz-berlin.de/hmi/standorte_en.html#Wannsee' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.hmi.de/bensc/misc/flat-cone/nexus/NIACinfo.html' +Name `http://www.hmi.de/bensc/misc/flat-cone/nexus/NIACinfo.html' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 98, col 7 +Real URL https://www.helmholtz-berlin.de/bensc/misc/flat-cone/nexus/NIACinfo.html +Check time 1.207 seconds +Warning [http-redirected] Redirected to + `https://www.helmholtz-berlin.de/bensc/misc/flat-cone/nexus/NIACinfo.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/report/3' +Name `open\ntickets' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 229, col 15 +Real URL http://trac.nexusformat.org/code/report/3 +Check time 0.251 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://www.nexusformat.org/Coordinate_Systems' +Name `http://www.nexusformat.org/Coordinate_Systems' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 287, col 1 +Real URL http://www.nexusformat.org/Coordinate_Systems +Check time 0.040 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.hmi.de/bensc/misc/flat-cone/rebuilding/nexus_en.html' +Name `Details' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 264, col 2 +Real URL https://www.helmholtz-berlin.de/bensc/misc/flat-cone/rebuilding/nexus_en.html +Check time 2.331 seconds +Warning [http-redirected] Redirected to + `https://www.helmholtz-berlin.de/bensc/misc/flat-cone/rebuilding/nexus_en.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.nbi.ansto.gov.au/cgi-bin/nobugs2008/overview.ws3' +Name `NOBUGS\n2008' +Parent URL file:///wiki/source/_build/html/niac/NIAC2008.html, line 61, col 57 +Real URL http://www.nbi.ansto.gov.au/cgi-bin/nobugs2008/overview.ws3 +Check time 0.760 seconds +Size 229B +Result Error: 404 Not Found + +URL `http://www.berlin.de/stadtplan/map.asp?ADR_ZIP=10117&ADR_STREET=Luisenstr.&ADR_HOUSE=19&show=108' +Name `http://www.berlin.de/stadtplan/map.asp?ADR_ZIP=10117&ADR_STREET=Luisenstr.&ADR_HOUSE=19&show=108' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 333, col 3 +Real URL https://www.berlin.de/stadtplan/map.asp?ADR_ZIP=10117&ADR_STREET=Luisenstr.&ADR_HOUSE=19&show=108 +Check time 1.466 seconds +Size 1KB +Warning [http-redirected] Redirected to + `https://www.berlin.de/stadtplan/map.asp?ADR_ZIP=10117&ADR_STREET=Luisenstr.&ADR_HOUSE=19&show=108' + status: 308 Permanent Redirect. +Result Error: 404 Not Found + +URL `http://www.sydneyaustralia.com/en/' +Name `Sydney Australia' +Parent URL file:///wiki/source/_build/html/niac/NIAC2008.html, line 60, col 4 +Real URL http://www.sydneyaustralia.com/en/ +Check time 1.286 seconds +Result Error: 410 Gone + +URL `http://www.smallangles.net/wgwiki/index.php/cansas1d_documentation' +Name `review of canSAS 1-D v1.0 XML data\nformat' +Parent URL file:///wiki/source/_build/html/niac/NIAC2008.html, line 128, col 8 +Real URL https://www.smallangles.net/wgwiki/index.php/cansas1d_documentation +Check time 1.410 seconds +Size 282B +Warning [http-redirected] Redirected to + `https://www.smallangles.net/wgwiki/index.php/cansas1d_documentation' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.nexusformat.org/index.php?title=NIAC2009' +Name `http://www.nexusformat.org/index.php?title=NIAC2009' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2011.html, line 68, col 8 +Real URL http://www.nexusformat.org/index.php?title=NIAC2009 +Check time 0.903 seconds +Size 1KB +Result Error: 404 Not Found + +URL `http://www.wein-habel.de/maine.php' +Name `Habel\nWeinkultur' +Parent URL file:///wiki/source/_build/html/niac/NIAC2007.html, line 330, col 45 +Real URL http://www.wein-habel.de/maine.php +Check time 5.500 seconds +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/258' +Name `http://trac.nexusformat.org/code/ticket/258' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2011.html, line 256, col 2 +Real URL http://trac.nexusformat.org/code/ticket/258 +Check time 0.710 seconds +Size 288B +Result Error: 404 Not Found + +URL `https://www.aps.anl.gov/About/Visiting/visitor_registration.php' +Name `https://www.aps.anl.gov/About/Visiting/visitor_registration.php' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2011.html, line 343, col 1 +Real URL https://www.aps.anl.gov/About/Visiting/visitor_registration.php +Check time 0.575 seconds +Size 52.79KB +Result Error: 404 Not Found + +URL `http://www.airportexpress.com/shuttles/ohare.html' +Name `http://www.airportexpress.com/shuttles/ohare.html' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2011.html, line 393, col 21 +Real URL https://www.airportexpress.com/shuttles/ohare.html +Check time 1.471 seconds +Warning [http-redirected] Redirected to + `https://airportexpress.com/shuttles/ohare.html' + status: 301 Moved Permanently. + [http-redirected] Redirected to + `https://www.airportexpress.com/shuttles/ohare.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://msd.anl.gov' +Name `MSD/ANL' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2011.html, line 514, col 8 +Real URL http://msd.anl.gov +Check time 0.008 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='msd.anl.gov', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'msd.anl.gov' ([Errno -5] No ... + +URL `http://www.opengda.org/' +Name `GDA' +Parent URL file:///wiki/source/_build/html/facilities/Facilities.html, line 86, col 8 +Real URL http://www.opengda.org/ +Check time 61.424 seconds +Result Error: ReadTimeout: HTTPConnectionPool(host='www.opengda.org', port=80): Read timed out. (read timeout=60) + +URL `http://www.oxford.gov.uk/PageRender/decTS/Public_transport_occw.htm' +Name `this\npage' +Parent URL file:///wiki/source/_build/html/niac/NIAC2012.html, line 103, col 46 +Real URL https://www.oxford.gov.uk/PageRender/decTS/Public_transport_occw.htm +Check time 1.986 seconds +Warning [http-redirected] Redirected to + `https://www.oxford.gov.uk/PageRender/decTS/Public_transport_occw.htm' + status: 302 Found. +Result Error: 404 Not Found + +URL `http://www.nobugs2012.org/NOBUGS/registration/NeXus.html' +Name `NOBUGS conference\nwebsite' +Parent URL file:///wiki/source/_build/html/niac/NIAC2012.html, line 85, col 28 +Real URL http://www.nobugs2012.org/NOBUGS/registration/NeXus.html +Check time 5.183 seconds +Result Error: 404 Not Found + +URL `http://www.nobugs2012.org/NOBUGS/accommodation.html' +Name `reserve and pay for this separately yourself with Coseners\nhouse' +Parent URL file:///wiki/source/_build/html/niac/NIAC2012.html, line 121, col 12 +Real URL http://www.nobugs2012.org/NOBUGS/accommodation.html +Check time 2.897 seconds +Result Error: 404 Not Found + +URL `http://www.aps.anl.gov/About/Visiting/' +Name `Visiting the\nAPS' +Parent URL file:///wiki/source/_build/html/niac/NIAC2014.html, line 101, col 40 +Real URL https://www.aps.anl.gov/About/Visiting/ +Check time 0.539 seconds +Size 52.79KB +Warning [http-redirected] Redirected to + `https://www.aps.anl.gov/About/Visiting/' status: 301 + Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.aps.anl.gov/About/Visiting' +Name `http://www.aps.anl.gov/About/Visiting' +Parent URL file:///wiki/source/_build/html/niac/NIAC2014.html, line 103, col 1 +Real URL https://www.aps.anl.gov/About/Visiting +Check time 0.422 seconds +Size 52.79KB +Warning [http-redirected] Redirected to + `https://www.aps.anl.gov/About/Visiting' status: 301 + Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.aps.anl.gov/Users/Site_Access/' +Name `http://www.aps.anl.gov/Users/Site_Access/' +Parent URL file:///wiki/source/_build/html/niac/NIAC2014.html, line 143, col 1 +Real URL https://www.aps.anl.gov/Users/Site_Access/ +Check time 0.715 seconds +Size 48.99KB +Warning [http-redirected] Redirected to + `https://www.aps.anl.gov/Users/Site_Access/' status: + 301 Moved Permanently. +Result Error: 404 Not Found + +URL `https://nobugs.esss.se/' +Name `NOBUGS' +Parent URL file:///wiki/source/_build/html/niac/NIAC2016.html, line 60, col 18 +Real URL https://nobugs.esss.se/ +Check time 0.560 seconds +Result Error: SSLError: HTTPSConnectionPool(host='nobugs.esss.se', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is ... + +URL `https://bnl.bluejeans.com/6313445578' +Name `https://bnl.bluejeans.com/6313445578' +Parent URL file:///wiki/source/_build/html/niac/NIAC2018.html, line 147, col 22 +Real URL https://bnl.bluejeans.com/6313445578 +Check time 0.199 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='bnl.bluejeans.com', port=443): Max retries exceeded with url: /6313445578 (Caused by NameResolutionError(": Failed to resolve 'bnl.bluej... + +URL `https://github.com/nexusformat/NIAC/projects/1#column-11377920' +Name `listed at\ngithub' +Parent URL file:///wiki/source/_build/html/niac/NIAC2020minutes_concluding.html, line 69, col 51 +Real URL https://github.com/nexusformat/NIAC/projects/1#column-11377920 +Check time 0.463 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://support.hdfgroup.org/HDF5/doc/Advanced/UsingUnicode/index.html' +Name `HDF5 support is described\nhere' +Parent URL file:///wiki/source/_build/html/niac/NIAC2020minutes_concluding.html, line 150, col 1 +Real URL https://support.hdfgroup.org/HDF5/doc/Advanced/UsingUnicode/index.html +Check time 0.502 seconds +Result Error: 404 Not Found + +URL `http://idregistry-nexusformat.rhcloud.com/' +Name `http://idregistry-nexusformat.rhcloud.com/' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20150114.html, line 80, col 1 +Real URL http://idregistry-nexusformat.rhcloud.com/ +Check time 0.606 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='idregistry-nexusformat.rhcloud.com', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'idreg... + +URL `https://githu' +Name `https://githu' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring.html, line 267, col 5 +Real URL https://githu +Check time 4.214 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='githu', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'githu' ([Errno -2] Name or serv... + +URL `http://build.nexusformat.org' +Name `http://build.nexusformat.org' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20150114.html, line 95, col 19 +Real URL https://build.nexusformat.org/ +Check time 6.491 seconds +Size 441B +Warning [http-redirected] Redirected to + `https://build.nexusformat.org/' status: 301 Moved + Permanently. +Result Error: 503 Service Unavailable + +URL `https://gi' +Name `https://gi' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring.html, line 359, col 15 +Real URL https://gi +Check time 3.173 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='gi', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'gi' ([Errno -5] No address associa... + +URL `https://git' +Name `https://git' +Parent URL file:///wiki/source/_build/html/niac/NIAC2022_spring.html, line 338, col 8 +Real URL https://git +Check time 6.216 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='git', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'git' ([Errno -2] Name or service ... + +URL `mailto:NXdata/%40axes' +Name `NXdata/@axes' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20240717.html, line 120, col 8 +Real URL mailto:NXdata/@axes +Check time 2.031 seconds +Warning [mail-no-mx-host] No MX mail host for axes found. +Result Error: No host for axes found. + +URL `mailto:SECoP%40HMC' +Name `SECoP@HMC' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20240214.html, line 92, col 41 +Real URL mailto:SECoP@HMC +Check time 2.038 seconds +Warning [mail-no-mx-host] No MX mail host for HMC found. +Result Error: No host for HMC found. + +URL `http://nobugs2006.lbl.gov/' +Name `NOBUGS\n2006' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 61, col 29 +Real URL http://nobugs2006.lbl.gov/ +Check time 60.038 seconds +Result Error: ConnectTimeout: HTTPConnectionPool(host='nobugs2006.lbl.gov', port=80): Max retries exceeded with url: /robots.txt (Caused by ConnectTimeoutError(, 'Connection to nobugs2006.lbl.go... + +URL `http://subversion.tigris.org/' +Name `Subversion' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 263, col 1 +Real URL http://subversion.tigris.org/ +Check time 60.197 seconds +Result Error: ConnectTimeout: HTTPConnectionPool(host='subversion.tigris.org', port=80): Max retries exceeded with url: /robots.txt (Caused by ConnectTimeoutError(, 'Connection to subversion.tig... + +URL `http://trac.edgewall.org/' +Name `TRAC' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 264, col 1 +Real URL http://trac.edgewall.org/ +Check time 60.100 seconds +Result Error: ConnectTimeout: HTTPConnectionPool(host='trac.edgewall.org', port=80): Max retries exceeded with url: /robots.txt (Caused by ConnectTimeoutError(, 'Connection to trac.edgewall.org ... + +URL `https://github.com/nexusformat/definitions/issuesq=is%3Aopen+is%3Aissue' +Name `definitions' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20230213.html, line 70, col 8 +Real URL https://github.com/nexusformat/definitions/issuesq=is%3Aopen+is%3Aissue +Check time 1.623 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/code/issuesq=is%3Aopen+is%3Aissue' +Name `code' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20230213.html, line 71, col 8 +Real URL https://github.com/nexusformat/code/issuesq=is%3Aopen+is%3Aissue +Check time 1.855 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/wiki/blob/master/content/NIAC2010.html' +Name `minutes of 2010\nNIAC' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20230213.html, line 121, col 1 +Real URL https://github.com/nexusformat/wiki/blob/master/content/NIAC2010.html +Check time 2.346 seconds +Result Error: 404 Not Found + +URL `https://www.unidata.ucar.edu/software/udunits/udunits-2.2.28/udunits2.html' +Name `https://www.unidata.ucar.edu/software/udunits/udunits-2.2.28/udunits2.html' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20230119.html, line 248, col 1 +Real URL https://www.unidata.ucar.edu/software/udunits/udunits-2.2.28/udunits2.html +Check time 3.472 seconds +Size 24.58KB +Result Error: 404 Not Found + +URL `https://manual.nexusformat.org/classes/base_classes/NXentry.htmlhighlight=uuid#nxentry-entry-identifier-uuid-field' +Name `UUIDs' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20220824.html, line 90, col 1 +Real URL https://manual.nexusformat.org/classes/base_classes/NXentry.htmlhighlight=uuid#nxentry-entry-identifier-uuid-field +Check time 1.394 seconds +Size 5KB +Result Error: 404 Not Found + +URL `https://strawpoll.com/polls/NMnQBOYjdg6' +Name `poll for a\nnext telco in\nOctober' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20220824.html, line 144, col 59 +Real URL https://strawpoll.com/polls/NMnQBOYjdg6 +Check time 1.793 seconds +Size 11.53KB +Result Error: 404 Not Found + +URL `https://csmd.ornl.gov/software/adios2' +Name `ADIOS' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20220426.html, line 73, col 1 +Real URL https://csmd.ornl.gov/software/adios2 +Check time 0.211 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='csmd.ornl.gov', port=443): Max retries exceeded with url: /software/adios2 (Caused by NameResolutionError(": Failed to resolve 'csmd.orn... + +URL `https://github.com/nexusformat/definitions/issuesq=is%3Aopen+is%3Aissue+label%3Atelco' +Name `definitions' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20210728.html, line 72, col 8 +Real URL https://github.com/nexusformat/definitions/issuesq=is%3Aopen+is%3Aissue+label%3Atelco +Check time 0.773 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/code/issuesq=is%3Aopen+is%3Aissue+label%3Atelco' +Name `code' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20210728.html, line 73, col 8 +Real URL https://github.com/nexusformat/code/issuesq=is%3Aopen+is%3Aissue+label%3Atelco +Check time 0.980 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://doi.org/10.1063/1.1884186' +Name `nitrogen' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20210728.html, line 113, col 1 +Real URL https://pubs.aip.org/rsi/article/76/4/043503/938416/Liquid-nitrogen-jet-laser-plasma-source-for +Check time 1.050 seconds +Warning [http-redirected] Redirected to + `https://pubs.aip.org/rsi/article/76/4/043503/938416/Liquid-nitrogen-jet-laser-plasma-source-for' + status: 302 Found. +Result Error: 403 Forbidden + +URL `https://doi.org/10.1063/1.4913585' +Name `water' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20210728.html, line 114, col 1 +Real URL https://pubs.aip.org/sdy/article/2/2/024301/365927/Laser-plasma-x-ray-source-for-ultrafast-time +Check time 1.648 seconds +Warning [http-redirected] Redirected to + `https://pubs.aip.org/sdy/article/2/2/024301/365927/Laser-plasma-x-ray-source-for-ultrafast-time' + status: 302 Found. +Result Error: 403 Forbidden + +URL `http://purl.org/nexusformat/definitions' +Name `http://purl.org/nexusformat/definitions' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20210628.html, line 93, col 1 +Real URL https://purl.archive.org/nexusformat/definitions +Check time 4.078 seconds +Warning [http-redirected] Redirected to + `https://purl.org/nexusformat/definitions' status: 302 + Moved Temporarily. + [http-redirected] Redirected to + `https://purl.archive.org/nexusformat/definitions' + status: 307 Temporary Redirect. +Result Error: 404 NOT FOUND + +URL `https://github.com/nexusformat/definitions/issuesq=is%3Aissue+is%3Aopen+label%3Aquestion' +Name `Github\nquestions' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20200904.html, line 62, col 8 +Real URL https://github.com/nexusformat/definitions/issuesq=is%3Aissue+is%3Aopen+label%3Aquestion +Check time 0.691 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://dl.fedoraproject.org/pub/fedora/linux/releases/33/Everything/x86_64/os/Packages/n/nexus-4.4.3-6.fc33.x86_64.rpm' +Name `Fedora\nlinux' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20201208.html, line 111, col 41 +Real URL https://dl.fedoraproject.org/pub/fedora/linux/releases/33/Everything/x86_64/os/Packages/n/nexus-4.4.3-6.fc33.x86_64.rpm +Check time 1.795 seconds +Size 196B +Result Error: 404 Not Found + +URL `https://indico.desy.de/indico/event/24321/overview' +Name `NOBUGS2020' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20200323.html, line 62, col 1 +Real URL https://indico.desy.de/indico/event/24321/overview +Check time 1.753 seconds +Size 86.58KB +Result Error: 404 NOT FOUND + +URL `https://en.wikipedia.org/wiki/Nexus_(data_format' +Name `https://en.wikipedia.org/wiki/Nexus_(data_format' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20190812.html, line 67, col 2 +Real URL https://en.wikipedia.org/wiki/Nexus_(data_format +Check time 1.705 seconds +Size 10.63KB +Result Error: 404 Not Found + +URL `https://www.bluejeans.com/' +Name `https://www.bluejeans.com/' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20190424.html, line 100, col 19 +Real URL https://www.bluejeans.com/ +Check time 1.328 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='www.bluejeans.com', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'www.bluejeans.com' ... + +URL `https://github.com/nexusformat/definitions/labels/telco' +Name `definitions PRs & issues marked as\n‘telco’' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20180926.html, line 66, col 8 +Real URL https://github.com/nexusformat/definitions/labels/telco +Check time 1.724 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/definitions/issuesq=is%3Aissue+is%3Aopen+label%3A%22discussion+needed%22' +Name `https://github.com/nexusformat/definitions/issuesq=is%3Aissue+is%3Aopen+label%3A%22discussion+needed%22' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20180926.html, line 76, col 4 +Real URL https://github.com/nexusformat/definitions/issuesq=is%3Aissue+is%3Aopen+label%3A%22discussion+needed%22 +Check time 1.459 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/LiberTEM/LiberTEM/blob/master/fileformat/basic%20pixelated%20STEM.txt' +Name `pixelated\nSTEM' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20180403.html, line 62, col 20 +Real URL https://github.com/LiberTEM/LiberTEM/blob/master/fileformat/basic%20pixelated%20STEM.txt +Check time 2.496 seconds +Result Error: 404 Not Found + +URL `https://github.com/LiberTEM/LiberTEM/blob/master/fileformat/STEM%20application%20definition%20hierarchy.txt' +Name `ideas on an application hierarchy to include different\nkinds of STEM\ndata' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20180403.html, line 64, col 5 +Real URL https://github.com/LiberTEM/LiberTEM/blob/master/fileformat/STEM%20application%20definition%20hierarchy.txt +Check time 2.279 seconds +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/definitions/milestones/NXDL%202018.1o' +Name `https://github.com/nexusformat/definitions/milestones/NXDL%202018.1o' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20180116.html, line 91, col 4 +Real URL https://github.com/nexusformat/definitions/milestones/NXDL%202018.1o +Check time 2.475 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://indico.esrf.fr/indico/event/12/' +Name `ICALEPCS HDF5\nWorkshop' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20171107.html, line 62, col 20 +Real URL https://indico.esrf.fr/indico/event/12/ +Check time 2.229 seconds +Size 85.62KB +Result Error: 404 Not Found + +URL `https://indico.cells.es/indico/event/97/overview' +Name `https://indico.cells.es/indico/event/97/overview' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20170220.html, line 100, col 8 +Real URL https://indico.cells.es/indico/event/97/overview +Check time 1.990 seconds +Result Error: SSLError: HTTPSConnectionPool(host='indico.cells.es', port=443): Max retries exceeded with url: /indico/event/97/overview (Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1006)'))) + +URL `https://github.com/nexusformat/definitions/compare/NXmx_multimodule_and_dectris_changes' +Name `https://github.com/nexusformat/definitions/compare/NXmx_multimodule_and_dectris_changes' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20170220.html, line 74, col 1 +Real URL https://github.com/nexusformat/definitions/compare/NXmx_multimodule_and_dectris_changes +Check time 2.471 seconds +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/definitions/blob/NXcansas-492/applications/NXcanSAS.nxdl.xml#L424' +Name `NXcanSAS' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20161213.html, line 80, col 1 +Real URL https://github.com/nexusformat/definitions/blob/NXcansas-492/applications/NXcanSAS.nxdl.xml#L424 +Check time 1.982 seconds +Result Error: 404 Not Found + +URL `https://duckduckgo.com/q=%22signal+data%22+site%3Ahttp%3A%2F%2Fdownload.nexusformat.org%2Fdoc%2Fhtml&t=ffsb&ia=web' +Name `signal\ndata' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20160628.html, line 77, col 34 +Real URL https://duckduckgo.com/q=%22signal+data%22+site%3Ahttp://download.nexusformat.org/doc/html%26t=ffsb%26ia=web +Check time 2.254 seconds +Size 27.70KB +Result Error: 410 Gone + +URL `http://punx.readthedocs.io/en/latest/source_code/analyze.html' +Name `http://punx.readthedocs.io/en/latest/source_code/analyze.html' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20160614.html, line 84, col 1 +Real URL https://punx.readthedocs.io/en/latest/source_code/analyze.html +Check time 1.546 seconds +Warning [http-redirected] Redirected to + `https://punx.readthedocs.io/en/latest/source_code/analyze.html' + status: 302 Found. +Result Error: 404 Not Found + +URL `http://punx.readthedocs.io/en/latest/analyze.html' +Name `http://punx.readthedocs.io/en/latest/analyze.html' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20160531.html, line 107, col 13 +Real URL https://punx.readthedocs.io/en/latest/analyze.html +Check time 1.258 seconds +Warning [http-redirected] Redirected to + `https://punx.readthedocs.io/en/latest/analyze.html' + status: 302 Found. +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/definitions/labels/NIAC' +Name `https://github.com/nexusformat/definitions/labels/NIAC' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20160510.html, line 90, col 14 +Real URL https://github.com/nexusformat/definitions/labels/NIAC +Check time 1.721 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/NIAC/projects/2' +Name `Agenda on\nGithub' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020-2.html, line 97, col 4 +Real URL https://github.com/nexusformat/NIAC/projects/2 +Check time 0.625 seconds +Size 40B +Result Error: 404 Not Found + +URL `../../source/codecamps/CodeCamp2020-topics.rst' +Name `edit here' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020.html, line 75, col 2 +Real URL file:///wiki/source/_build/source/codecamps/CodeCamp2020-topics.rst +Check time 0.000 seconds +Result Error: URLError: + +URL `https://www.bluejeans.com' +Name `Bluejeans' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020.html, line 87, col 19 +Real URL https://www.bluejeans.com +Check time 0.522 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='www.bluejeans.com', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(": Failed to resolve 'www.bluejeans.com' ... + +URL `https://bluejeans.com/150847021' +Name `https://bluejeans.com/150847021' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020.html, line 97, col 13 +Real URL https://bluejeans.com/150847021 +Check time 0.492 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='bluejeans.com', port=443): Max retries exceeded with url: /150847021 (Caused by NameResolutionError(": Failed to resolve 'bluejeans.com'... + +URL `https://www.bluejeans.com/premium-numbers' +Name `https://www.bluejeans.com/premium-numbers' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020.html, line 100, col 24 +Real URL https://www.bluejeans.com/premium-numbers +Check time 0.536 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='www.bluejeans.com', port=443): Max retries exceeded with url: /premium-numbers (Caused by NameResolutionError(": Failed to resolve 'www.... + +URL `https://bluejeans.com/111' +Name `https://bluejeans.com/111' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020.html, line 102, col 44 +Real URL https://bluejeans.com/111 +Check time 0.724 seconds +Result Error: ConnectionError: HTTPSConnectionPool(host='bluejeans.com', port=443): Max retries exceeded with url: /111 (Caused by NameResolutionError(": Failed to resolve 'bluejeans.com' ([Err... + +URL `https://www.dectris.com/eiger.html' +Name `https://www.dectris.com/eiger.html' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20160426.html, line 78, col 13 +Real URL https://www.dectris.com/en/eiger.html/ +Check time 3.941 seconds +Size 8KB +Warning [http-redirected] Redirected to + `https://www.dectris.com/en/eiger.html/' status: 302 + Found. +Result Error: 404 Not Found + +URL `http://nobugs2006.lbl.gov/index.php?content=Lodging' +Name `http://nobugs2006.lbl.gov/index.php?content=Lodging' +Parent URL file:///wiki/source/_build/html/niac/NIAC2006LBL.html, line 169, col 7 +Real URL http://nobugs2006.lbl.gov/index.php?content=Lodging +Check time 118.070 seconds +Result Error: ConnectTimeout: HTTPConnectionPool(host='nobugs2006.lbl.gov', port=80): Max retries exceeded with url: /robots.txt (Caused by ConnectTimeoutError(, 'Connection to nobugs2006.lbl.go... + +URL `https://github.com/nexusformat/wiki/blob/master/codecamps/CodeCamp2020.rst' +Name `GitHub link' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2020.html, line 790, col 17 +Real URL https://github.com/nexusformat/wiki/blob/master/codecamps/CodeCamp2020.rst +Check time 4.314 seconds +Result Error: 404 Not Found + +URL `http://arcib.dowling.edu/~yaya/Eiger_22Feb15/' +Name `http://arcib.dowling.edu/~yaya/Eiger_22Feb15/' +Parent URL file:///wiki/source/_build/html/teleconferences/Telco_20150318.html, line 64, col 1 +Real URL http://arcib.dowling.edu/~yaya/Eiger_22Feb15/ +Check time 0.022 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='arcib.dowling.edu', port=80): Max retries exceeded with url: /~yaya/Eiger_22Feb15/ (Caused by NameResolutionError(": Failed to resolve 'ar... + +URL `https://wildwoodrestaurants.co.uk/restaurant/abingdon/' +Name `wildwood' +Parent URL file:///wiki/source/_build/html/codecamps/Code_Camp_2017.html, line 105, col 1 +Real URL https://wildwoodrestaurants.co.uk/restaurant/abingdon/ +Check time 4.549 seconds +Size 7KB +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/definitions/ticket/3' +Name `http://trac.nexusformat.org/definitions/ticket/3' +Parent URL file:///wiki/source/_build/html/content/Instruments.html, line 73, col 6 +Real URL http://trac.nexusformat.org/definitions/ticket/3 +Check time 0.614 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/definitions/newticket' +Name `http://trac.nexusformat.org/definitions/newticket' +Parent URL file:///wiki/source/_build/html/content/Instruments.html, line 78, col 9 +Real URL http://trac.nexusformat.org/definitions/newticket +Check time 0.734 seconds +Size 288B +Result Error: 404 Not Found + +URL `https://github.com/nexusformat/NIAC/projects/3' +Name `Project on Github' +Parent URL file:///wiki/source/_build/html/codecamps/CodeCamp2021-1.html, line 95, col 4 +Real URL https://github.com/nexusformat/NIAC/projects/3 +Check time 1.035 seconds +Size 40B +Result Error: 404 Not Found + +URL `https://manual.nexusformat.org/pdf/NeXusManual.pdf' +Name `https://manual.nexusformat.org/pdf/NeXusManual.pdf' +Parent URL file:///wiki/source/_build/html/content/Latest_News.html, line 102, col 9 +Real URL https://manual.nexusformat.org/pdf/NeXusManual.pdf +Check time 1.369 seconds +Size 5KB +Result Error: 404 Not Found + +URL `http://download.nexusformat.org/doc/html/Tutorial.html' +Name `http://download.nexusformat.org/doc/html/Tutorial.html' +Parent URL file:///wiki/source/_build/html/content/Latest_News.html, line 109, col 14 +Real URL https://manual.nexusformat.org/Tutorial.html +Check time 1.005 seconds +Size 5KB +Warning [http-redirected] Redirected to + `https://manual.nexusformat.org/Tutorial.html' status: + 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/browser/tags/4.1.0/NEWS' +Name `http://trac.nexusformat.org/code/browser/tags/4.1.0/NEWS' +Parent URL file:///wiki/source/_build/html/content/Latest_News.html, line 139, col 8 +Real URL http://trac.nexusformat.org/code/browser/tags/4.1.0/NEWS +Check time 1.043 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://www.nexus.anl.gov/nexus_api.html#download' +Name `http://www.nexus.anl.gov/nexus_api.html#download' +Parent URL file:///wiki/source/_build/html/content/Latest_News.html, line 184, col 12 +Real URL http://www.nexus.anl.gov/nexus_api.html#download +Check time 0.769 seconds +Result Error: ConnectionError: HTTPConnectionPool(host='www.nexus.anl.gov', port=80): Max retries exceeded with url: /nexus_api.html (Caused by NameResolutionError(": Failed to resolve 'www.nexu... + +URL `http://trac.nexusformat.org/code/browser/tags/4.0.0/NEWS' +Name `http://trac.nexusformat.org/code/browser/tags/4.0.0/NEWS' +Parent URL file:///wiki/source/_build/html/content/Latest_News.html, line 161, col 8 +Real URL http://trac.nexusformat.org/code/browser/tags/4.0.0/NEWS +Check time 1.184 seconds +Size 288B +Result Error: 404 Not Found + +URL `mailto:JB%40some.where' +Name `JB@some.where' +Parent URL file:///wiki/source/_build/html/content/NAPI_Utility_Routines.html, line 58, col 17 +Real URL mailto:JB@some.where +Check time 0.008 seconds +Warning [mail-no-mx-host] No MX mail host for some.where + found. +Result Error: No host for some.where found. + +URL `https://manual.nexusformat.org/doxygen/html-c/' +Name `https://manual.nexusformat.org/doxygen/html-c/' +Parent URL file:///wiki/source/_build/html/content/NAPI_Routines.html, line 55, col 16 +Real URL https://manual.nexusformat.org/doxygen/html-c/ +Check time 0.097 seconds +Size 5KB +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/87' +Name `http://trac.nexusformat.org/code/ticket/87' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 70, col 16 +Real URL http://trac.nexusformat.org/code/ticket/87 +Check time 0.346 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/86' +Name `http://trac.nexusformat.org/code/ticket/86' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 72, col 11 +Real URL http://trac.nexusformat.org/code/ticket/86 +Check time 0.717 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/68' +Name `http://trac.nexusformat.org/code/ticket/68' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 78, col 7 +Real URL http://trac.nexusformat.org/code/ticket/68 +Check time 0.721 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/83' +Name `http://trac.nexusformat.org/code/ticket/83' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 81, col 9 +Real URL http://trac.nexusformat.org/code/ticket/83 +Check time 0.954 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/84' +Name `http://trac.nexusformat.org/code/ticket/84' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 82, col 14 +Real URL http://trac.nexusformat.org/code/ticket/84 +Check time 1.281 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/91' +Name `http://trac.nexusformat.org/code/ticket/91' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 83, col 28 +Real URL http://trac.nexusformat.org/code/ticket/91 +Check time 1.862 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/ticket/92' +Name `http://trac.nexusformat.org/code/ticket/92' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 85, col 9 +Real URL http://trac.nexusformat.org/code/ticket/92 +Check time 1.826 seconds +Size 288B +Result Error: 404 Not Found + +URL `ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz' +Name `ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz' +Parent URL file:///wiki/source/_build/html/content/NXdir.html, line 78, col 23 +Real URL ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz +Check time 0.004 seconds +Result Error: Hostname not found + +URL `ftp://ftp.neutron.anl.gov/nexus/NXdir/CHANGES' +Name `ftp://ftp.neutron.anl.gov/nexus/NXdir/CHANGES' +Parent URL file:///wiki/source/_build/html/content/NXdir.html, line 85, col 13 +Real URL ftp://ftp.neutron.anl.gov/nexus/NXdir/CHANGES +Check time 0.002 seconds +Result Error: Hostname not found + +URL `http://trac.nexusformat.org/code/ticket/93' +Name `http://trac.nexusformat.org/code/ticket/93' +Parent URL file:///wiki/source/_build/html/content/Nexus_41_Release_Notes.html, line 87, col 9 +Real URL http://trac.nexusformat.org/code/ticket/93 +Check time 1.911 seconds +Size 288B +Result Error: 404 Not Found + +URL `http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx' +Name `http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx' +Parent URL file:///wiki/source/_build/html/content/Nexus_42_Release_Notes.html, line 80, col 10 +Real URL http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx +Check time 1.591 seconds +Result Error: 401 Unauthorized + +URL `http://download.nexusformat.org/doxygen/html/classNeXus_1_1File.html' +Name `http://download.nexusformat.org/doxygen/html/classNeXus_1_1File.html' +Parent URL file:///wiki/source/_build/html/content/Nexus_42_Release_Notes.html, line 78, col 16 +Real URL https://manual.nexusformat.org/doxygen/html/classNeXus_1_1File.html +Check time 1.843 seconds +Size 5KB +Warning [http-redirected] Redirected to + `https://manual.nexusformat.org/doxygen/html/classNeXus_1_1File.html' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority' +Name `http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority' +Parent URL file:///wiki/source/_build/html/content/Nexus_43_Release_Notes.html, line 57, col 7 +Real URL http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority +Check time 1.072 seconds +Size 288B +Result Error: 404 Not Found + +URL `https://manual.nexusformat.org/classes/base_classes/NXgeometry.html)*' +Name `https://manual.nexusformat.org/classes/base_classes/NXgeometry.html)*' +Parent URL file:///wiki/source/_build/html/content/NXgeometry_and_NXshape_-_documentation_and_review.html, line 59, col 15 +Real URL https://manual.nexusformat.org/classes/base_classes/NXgeometry.html)* +Check time 0.692 seconds +Size 5KB +Result Error: 404 Not Found + +URL `http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority' +Name `http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority' +Parent URL file:///wiki/source/_build/html/content/Nexus_4_Release_Notes.html, line 85, col 9 +Real URL http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority +Check time 1.009 seconds +Size 288B +Result Error: 404 Not Found + +URL `https://manual.nexusformat.org/classes/base_classes/NXtranslation.html)*' +Name `https://manual.nexusformat.org/classes/base_classes/NXtranslation.html)*' +Parent URL file:///wiki/source/_build/html/content/NXgeometry_and_NXshape_-_documentation_and_review.html, line 68, col 18 +Real URL https://manual.nexusformat.org/classes/base_classes/NXtranslation.html)* +Check time 0.853 seconds +Size 5KB +Result Error: 404 Not Found + +URL `https://manual.nexusformat.org/classes/base_classes/NXorientation.html)*' +Name `https://manual.nexusformat.org/classes/base_classes/NXorientation.html)*' +Parent URL file:///wiki/source/_build/html/content/NXgeometry_and_NXshape_-_documentation_and_review.html, line 73, col 18 +Real URL https://manual.nexusformat.org/classes/base_classes/NXorientation.html)* +Check time 1.221 seconds +Size 5KB +Result Error: 404 Not Found + +URL `https://manual.nexusformat.org/classes/base_classes/NXshape.html)*' +Name `https://manual.nexusformat.org/classes/base_classes/NXshape.html)*' +Parent URL file:///wiki/source/_build/html/content/NXgeometry_and_NXshape_-_documentation_and_review.html, line 78, col 12 +Real URL https://manual.nexusformat.org/classes/base_classes/NXshape.html)* +Check time 1.366 seconds +Size 5KB +Result Error: 404 Not Found + +URL `http://www.esrf.eu/events/conferences/hdf5-as-hyperspectral-data-analysis-format' +Name `HDF-5 as\nhyperspectral\ndataformat' +Parent URL file:///wiki/source/_build/html/content/Workshop_PSI_2010.html, line 63, col 57 +Real URL https://www.esrf.fr/events/conferences/hdf5-as-hyperspectral-data-analysis-format +Check time 1.431 seconds +Size 1KB +Warning [http-redirected] Redirected to + `https://www.esrf.fr/events/conferences/hdf5-as-hyperspectral-data-analysis-format' + status: 301 Moved Permanently. +Result Error: 404 Not Found + +URL `http://www.neutron.anl.gov:8080/NeXus' +Name `http://www.neutron.anl.gov:8080/NeXus' +Parent URL file:///wiki/source/_build/html/content/Latest_News.html, line 199, col 32 +Real URL http://www.neutron.anl.gov:8080/NeXus +Check time 60.065 seconds +Result Error: ConnectTimeout: HTTPConnectionPool(host='www.neutron.anl.gov', port=8080): Max retries exceeded with url: /robots.txt (Caused by ConnectTimeoutError(, 'Connection to www.neutron.an... + +Statistics: +Downloaded: 3.17MB. +Content types: 38 image, 1037 text, 0 video, 0 audio, 47 application, 18 mail and 33 other. +URL lengths: min=10, max=327, avg=69. + +That's it. 1173 links in 1332 URLs checked. 37 warnings found (322 ignored or duplicates not printed). 139 errors found. +Stopped checking at 2025-01-22 14:52:14-006 (4 minutes, 3 seconds) From 432a77329c0de079d8daeed214c33dbf00f6b925 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 15:06:28 -0600 Subject: [PATCH 08/16] added *.pyc --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ad4e0be8..71ccb47e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.idea -./dev_tools/ext/__pycache__/ \ No newline at end of file +./dev_tools/ext/__pycache__/ +*.pyc From 79cc7810c11a0bbb404e0c19367606de70382ac2 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 15:10:34 -0600 Subject: [PATCH 09/16] more cleanup --- .gitignore | 3 ++- dev_tools/__pycache__/__init__.cpython-311.pyc | Bin 182 -> 0 bytes dev_tools/__pycache__/__main__.cpython-311.pyc | Bin 2802 -> 0 bytes 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 dev_tools/__pycache__/__init__.cpython-311.pyc delete mode 100644 dev_tools/__pycache__/__main__.cpython-311.pyc diff --git a/.gitignore b/.gitignore index 71ccb47e..a95423d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /.idea -./dev_tools/ext/__pycache__/ +dev_tools/ext/__pycache__/ +dev_tools/__pycache__/ *.pyc diff --git a/dev_tools/__pycache__/__init__.cpython-311.pyc b/dev_tools/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 6f4f99903d61102f404ec23d25acd0524828c8bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmZ3^%ge<81YFKP(?IlN5CH>>P{wCAAY(d13PUi1CZpdu*uC&Da}c>D`Ewj46?hJA4q&)W@KdizyKqPn1Nyd0A?+H diff --git a/dev_tools/__pycache__/__main__.cpython-311.pyc b/dev_tools/__pycache__/__main__.cpython-311.pyc deleted file mode 100644 index 83b2b5849d4e437865e33db10975037467c14204..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2802 zcma)8-D?|15Z{wlr?bwoEk&{{$7wE!qvRYns`F4Nq=Asqd=ZlnH>9GikhK@(RDE^t z6dWUiC@H9rhZG7iB@cc|Q|dpU{Vz`Dz~aDQD1FGAN?JJ7p~$mgI%v{!xc|x&KAsDp z!Py&tA>8JtD!*h?%P*Nt6`UZ^X*O4@ff&}ywVbJI6|+APD(5QoT&b_gm9=~+XBd4| zGBtxc=DjF@7=Y6c=c{eFK1Jq$t?0=_*!B(Qw;?oyEnXQsJ2Z%&;O)S3u>I=UH+&7> z7K<`6h)9Cl(i`4>bL_ye$TH-k;UCUHKxWvrAyf>y@~GciqmPl$NOWvQTqHpCGHKv< zj6UM`*61=BABi3?;{(xUS8fE}G5Uz#Tcd}`#7K0}Ou7-Fc5ihX;yXqk@oS*wxH&g~ zIqAw92s&uW)duekL?#LP&UcW?aP*C!DING1y|-l!pcSL8hZ%DvsOXR@n=`Hivz`Z; zdWN?K*8jk#5iCx-+8fzO4XHT|wIp2o;C**pZJ>0ck9*y8It^gd-klvg%d?Zp4 z7>XKQUQaA*ck6~ivUIA4BSA|sbb%qE8Q>`fXs#M7-hF&R@G^H1nbBiia)+LVEW1jVs z-t#r8)pAr*J~K3`+~B;Vtk(4s0Ssr%W3F}OX5aCuOJ>UDx=yqMXR)%zsB1mWv59t1 zujsv`^pa*!#w#kOtg$HT0LmJIviDCJ0jWtx%FzPkVrb69MOxrh-DE0tCUS&ijruCL zQo{)`y{AydC(gLXp|oI7_Q`N0PQXlsFA8#Gmvh++<0@yuD=rIx4a%C;0WxMq@EON% zJTx2(#s^M_N9#>{!L&6k?*VgV0JCT8!*Ru5&`dhcqJ(Nxhpz#Dvpi2`SI6iPW)ypc zIiZ1qC*1n_ws60izB+YKitEr1+*er<1}t!`mSv#~Mwf~^USCa@D`q;MW<6k}S2bFo z>4I+Fudk+8X|9sLufc52(9#Dl)d2ZHmUnSFn=R+`N;Z48_Rzshq-lU>oM`OBx2cKt z!f`u1Z!KN3!q?m3>vs5h^V9uEVmFf7iKJd!`|Wcpl4?gT+mXx7Yy0t|yYYpc_(DgD zSTk3a7x%Di$Bybl;N3}Z&LaEyUOZLCs-@^4yL*x4E))Z0q>e z@n?72a>|xd%}*eY*irk?nZ4+o9X-7lKW@jD_M)?PG}RpoOo?4sF7e+G3WmPTx8@%& zw#9@kCb}{Tgu4?6)+d0ZH$hVABdfhsJkGGz=-*#`yoPp#J5l6>3o-N-jB-*CKD z*u#}vS<7Y}tgY$hFNl7?o<9qh*V6fNmDEex1^OYV?7xojJ6yVcK@d7 Date: Wed, 22 Jan 2025 15:14:40 -0600 Subject: [PATCH 10/16] and more cleanup --- source/CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 source/CNAME diff --git a/source/CNAME b/source/CNAME deleted file mode 100644 index 53dee3b3..00000000 --- a/source/CNAME +++ /dev/null @@ -1 +0,0 @@ -manual.nexusformat.org \ No newline at end of file From 7f65a97b117d0995d538a093524a35e77eac6995 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Wed, 22 Jan 2025 15:16:08 -0600 Subject: [PATCH 11/16] and more cleanup --- source/__pycache__/dirlist.cpython-311.pyc | Bin 5378 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 source/__pycache__/dirlist.cpython-311.pyc diff --git a/source/__pycache__/dirlist.cpython-311.pyc b/source/__pycache__/dirlist.cpython-311.pyc deleted file mode 100644 index affbc870cdbf9eede5d22bba259322bf18cd3c5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5378 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 EFVqsZM*si- From 70012996ce660294eec40975425fc32071f92b65 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Thu, 30 Jan 2025 12:22:02 -0600 Subject: [PATCH 12/16] latest reformats of content rst files, still some remaining --- .gitignore | 3 + .../active_projects/ActiveProjects.doctree | Bin 9692 -> 0 bytes .../codecamps/CodeCamp2020-2.doctree | Bin 20469 -> 0 bytes .../codecamps/CodeCamp2020-attendees.doctree | Bin 13922 -> 0 bytes .../codecamps/CodeCamp2020-topics.doctree | Bin 32098 -> 0 bytes .../.doctrees/codecamps/CodeCamp2020.doctree | Bin 235779 -> 0 bytes .../codecamps/CodeCamp2021-1.doctree | Bin 19806 -> 0 bytes .../.doctrees/codecamps/CodeCamp2022.doctree | Bin 36115 -> 0 bytes .../codecamps/CodeCampJune2023.doctree | Bin 32283 -> 0 bytes .../codecamps/Code_Camp_2015.doctree | Bin 68683 -> 0 bytes .../codecamps/Code_Camp_2017.doctree | Bin 62971 -> 0 bytes build/.doctrees/facilities/Facilities.doctree | Bin 56739 -> 0 bytes build/.doctrees/faq/FAQ.doctree | Bin 38157 -> 0 bytes .../2014_How_to_find_default_data.doctree | Bin 20487 -> 0 bytes .../2014_axes_and_uncertainties.doctree | Bin 103711 -> 0 bytes .../.doctrees/html_static_pandoc/404.doctree | Bin 7331 -> 0 bytes .../Archive_Definition.doctree | Bin 65774 -> 0 bytes .../Associating_Axes_with_Data.doctree | Bin 16440 -> 0 bytes .../ConcordanceDiscussion.doctree | Bin 43972 -> 0 bytes .../Connecting_NXdata_to_NXdetector.doctree | Bin 39268 -> 0 bytes .../Containers_and_Inheritance.doctree | Bin 22260 -> 0 bytes .../html_static_pandoc/DLSraw.doctree | Bin 161642 -> 0 bytes .../html_static_pandoc/Design_Issues.doctree | Bin 32629 -> 0 bytes .../Detector_Geometry.doctree | Bin 17982 -> 0 bytes .../html_static_pandoc/Download.doctree | Bin 19886 -> 0 bytes ...ension_of_NeXus_Coordinate_Systems.doctree | Bin 32739 -> 0 bytes .../File_id_attribute_for_Nexus_files.doctree | Bin 14572 -> 0 bytes .../html_static_pandoc/GenericScan.doctree | Bin 34677 -> 0 bytes .../Group_Attributes.doctree | Bin 13485 -> 0 bytes ...e_extensions_of_the_Nexus_standard.doctree | Bin 25262 -> 0 bytes .../IndirectDiscuss.doctree | Bin 170455 -> 0 bytes ...ect_Time-of-Flight_and_Coordinates.doctree | Bin 19116 -> 0 bytes .../html_static_pandoc/Instruments.doctree | Bin 53113 -> 0 bytes .../html_static_pandoc/IssueReporting.doctree | Bin 11272 -> 0 bytes .../html_static_pandoc/Japinotes.doctree | Bin 97801 -> 0 bytes .../html_static_pandoc/Java_API.doctree | Bin 22385 -> 0 bytes .../html_static_pandoc/Jnexustut.doctree | Bin 80380 -> 0 bytes .../html_static_pandoc/Latest_News.doctree | Bin 144878 -> 0 bytes .../Linking_External_Files.doctree | Bin 36084 -> 0 bytes .../Membership_Dates.doctree | Bin 23171 -> 0 bytes .../html_static_pandoc/Metaformat.doctree | Bin 27433 -> 0 bytes .../html_static_pandoc/MonoXPSD.doctree | Bin 44740 -> 0 bytes .../html_static_pandoc/MonoXSingle.doctree | Bin 35678 -> 0 bytes ...utron_and_X-ray_Powder_Diffraction.doctree | Bin 7894 -> 0 bytes ...ic_Neutron_and_X-ray_Reflectometry.doctree | Bin 30776 -> 0 bytes ...-ray_Single_Crystal_Diffractometer.doctree | Bin 12008 -> 0 bytes .../Multi_Method_Instruments.doctree | Bin 31916 -> 0 bytes .../Muon_Time_Differential.doctree | Bin 8872 -> 0 bytes .../html_static_pandoc/NAPI_Routines.doctree | Bin 429294 -> 0 bytes .../NAPI_Utility_Routines.doctree | Bin 201691 -> 0 bytes .../NXaperture_and_Slits.doctree | Bin 21736 -> 0 bytes .../html_static_pandoc/NXbrowse.doctree | Bin 17989 -> 0 bytes .../html_static_pandoc/NXbrowse.f90.doctree | Bin 139351 -> 0 bytes .../NXdetector_2012_10.doctree | Bin 40235 -> 0 bytes .../NXdetector_documentation.doctree | Bin 26018 -> 0 bytes .../html_static_pandoc/NXdir.doctree | Bin 35731 -> 0 bytes ...NXshape_-_documentation_and_review.doctree | Bin 36719 -> 0 bytes .../html_static_pandoc/NXlrcs.f90.doctree | Bin 72661 -> 0 bytes .../html_static_pandoc/NXmeasurement.doctree | Bin 16759 -> 0 bytes .../NXmonoref-NIAC2006.doctree | Bin 56088 -> 0 bytes .../NXmonoref_example-NIAC2006.doctree | Bin 43588 -> 0 bytes .../NXmonotas-NIAC2006.doctree | Bin 41431 -> 0 bytes .../NXmonotas_example-NIAC2006.doctree | Bin 54028 -> 0 bytes .../html_static_pandoc/NXnet_Proposal.doctree | Bin 27684 -> 0 bytes .../NXtofnref-NIAC2006.doctree | Bin 38224 -> 0 bytes .../html_static_pandoc/NXtranslate.doctree | Bin 15442 -> 0 bytes .../html_static_pandoc/NeXpy.doctree | Bin 173626 -> 0 bytes .../NeXus_CIF_Integration.doctree | Bin 28998 -> 0 bytes .../Nexus_41_Release_Notes.doctree | Bin 23280 -> 0 bytes .../Nexus_42_Release_Notes.doctree | Bin 30911 -> 0 bytes .../Nexus_43_Release_Notes.doctree | Bin 27154 -> 0 bytes .../Nexus_4_Release_Notes.doctree | Bin 29344 -> 0 bytes .../html_static_pandoc/OO-NeXus.doctree | Bin 37025 -> 0 bytes .../Object_Oriented_Interface.doctree | Bin 15144 -> 0 bytes .../Objects_or_Interfaces.doctree | Bin 99936 -> 0 bytes .../Proposal_NeXus_Coordinates.doctree | Bin 21072 -> 0 bytes .../Proposal_NeXus_Errors.doctree | Bin 17107 -> 0 bytes .../Proposal_to_Simplify_Nexus.doctree | Bin 40832 -> 0 bytes .../html_static_pandoc/ReflectDiscuss.doctree | Bin 212836 -> 0 bytes .../.doctrees/html_static_pandoc/SAS.doctree | Bin 49581 -> 0 bytes .../html_static_pandoc/Scaled_Data.doctree | Bin 22697 -> 0 bytes .../html_static_pandoc/Scans.doctree | Bin 19216 -> 0 bytes .../Storing_Event_Data.doctree | Bin 23195 -> 0 bytes .../html_static_pandoc/TOFRaw.doctree | Bin 657155 -> 0 bytes .../html_static_pandoc/TOFRawScan.doctree | Bin 65121 -> 0 bytes .../Thumbnails_for_Nexus_files.doctree | Bin 13050 -> 0 bytes ...-Flight_Neutron_Powder_Diffraction.doctree | Bin 10884 -> 0 bytes ..._for_NXflou_application_definition.doctree | Bin 16990 -> 0 bytes .../html_static_pandoc/Utilities.doctree | Bin 42132 -> 0 bytes .../Workshop_PSI_2010.doctree | Bin 15405 -> 0 bytes .../html_static_pandoc/XESraw.doctree | Bin 24549 -> 0 bytes .../html_static_pandoc/index.doctree | Bin 29059 -> 0 bytes build/.doctrees/index.doctree | Bin 28826 -> 0 bytes build/.doctrees/niac/NIAC.doctree | Bin 85011 -> 0 bytes build/.doctrees/niac/NIAC2006ILL.doctree | Bin 66093 -> 0 bytes build/.doctrees/niac/NIAC2006LBL.doctree | Bin 74384 -> 0 bytes .../niac/NIAC2006LBL_RoadMap.doctree | Bin 33954 -> 0 bytes .../niac/NIAC2006LBL_attendees.doctree | Bin 36282 -> 0 bytes .../.doctrees/niac/NIAC2006LBL_photos.doctree | Bin 15910 -> 0 bytes .../niac/NIAC2006_Scanning_Group.doctree | Bin 54552 -> 0 bytes .../niac/NIAC2006_Synchrotron_Group.doctree | Bin 54102 -> 0 bytes .../.doctrees/niac/NIAC2006_TOF_Group.doctree | Bin 64486 -> 0 bytes build/.doctrees/niac/NIAC2007.doctree | Bin 94002 -> 0 bytes build/.doctrees/niac/NIAC2007_Minutes.doctree | Bin 211548 -> 0 bytes .../.doctrees/niac/NIAC2007_attendees.doctree | Bin 56250 -> 0 bytes build/.doctrees/niac/NIAC2007_photos.doctree | Bin 34877 -> 0 bytes build/.doctrees/niac/NIAC2008.doctree | Bin 45432 -> 0 bytes .../.doctrees/niac/NIAC2008_attendees.doctree | Bin 26780 -> 0 bytes build/.doctrees/niac/NIAC2009.doctree | Bin 84340 -> 0 bytes build/.doctrees/niac/NIAC2010.doctree | Bin 69138 -> 0 bytes .../.doctrees/niac/NIAC2010_CodeCamp.doctree | Bin 64824 -> 0 bytes .../.doctrees/niac/NIAC2011_CodeCamp.doctree | Bin 164036 -> 0 bytes build/.doctrees/niac/NIAC2012.doctree | Bin 309295 -> 0 bytes build/.doctrees/niac/NIAC2014.doctree | Bin 173680 -> 0 bytes .../.doctrees/niac/NIAC2014_CodeCamp.doctree | Bin 48457 -> 0 bytes build/.doctrees/niac/NIAC2014_Meeting.doctree | Bin 74937 -> 0 bytes build/.doctrees/niac/NIAC2016.doctree | Bin 10680 -> 0 bytes build/.doctrees/niac/NIAC2016Minutes.doctree | Bin 76623 -> 0 bytes build/.doctrees/niac/NIAC2018.doctree | Bin 34231 -> 0 bytes build/.doctrees/niac/NIAC2018Minutes.doctree | Bin 122492 -> 0 bytes build/.doctrees/niac/NIAC2020.doctree | Bin 54208 -> 0 bytes build/.doctrees/niac/NIAC2020minutes.doctree | Bin 75532 -> 0 bytes .../niac/NIAC2020minutes_concluding.doctree | Bin 83399 -> 0 bytes build/.doctrees/niac/NIAC2022.doctree | Bin 125283 -> 0 bytes .../niac/NIAC2022_fall_minutes.doctree | Bin 43681 -> 0 bytes build/.doctrees/niac/NIAC2022_minutes.doctree | Bin 177951 -> 0 bytes build/.doctrees/niac/NIAC2022_spring.doctree | Bin 89774 -> 0 bytes .../niac/NIAC2022_spring_minutes.doctree | Bin 125287 -> 0 bytes build/.doctrees/niac/NIAC2024.doctree | Bin 100244 -> 0 bytes build/.doctrees/niac/NIACAPI.doctree | Bin 11313 -> 0 bytes build/.doctrees/niac/NIACActionItems.doctree | Bin 41966 -> 0 bytes build/.doctrees/niac/NIACClasses.doctree | Bin 46237 -> 0 bytes build/.doctrees/niac/NIACDesign.doctree | Bin 31192 -> 0 bytes common/NeXus_Logo.png | Bin 29193 -> 0 bytes common/NeXus_Logo_dark.png | Bin 28878 -> 0 bytes common/NeXus_Logo_dark_square.png | Bin 1295 -> 0 bytes common/NeXus_Logo_dark_square_nogrey.png | Bin 1270 -> 0 bytes common/NeXus_Logo_square.png | Bin 1301 -> 0 bytes common/NeXus_Logo_square_nogrey.png | Bin 1275 -> 0 bytes common/favicon.ico | Bin 2238 -> 0 bytes source/Makefile | 13 +- source/conf.py | 4 +- .../content/2014_How_to_find_default_data.rst | 73 +- source/content/Archive_Definition.rst | 164 +- source/content/Associating_Axes_with_Data.rst | 60 +- source/content/ConcordanceDiscussion.rst | 232 +-- .../Connecting_NXdata_to_NXdetector.rst | 106 +- source/content/Containers_and_Inheritance.rst | 93 +- source/content/DLSraw.rst | 613 ++++++-- source/content/Design_Issues.rst | 97 +- source/content/Detector_Geometry.rst | 76 +- .../Extension_of_NeXus_Coordinate_Systems.rst | 144 +- .../File_id_attribute_for_Nexus_files.rst | 57 +- source/content/GenericScan.rst | 59 +- source/content/Group_Attributes.rst | 36 +- ...uture_extensions_of_the_Nexus_standard.rst | 103 +- source/content/IndirectDiscuss.rst | 174 +-- ...ndirect_Time-of-Flight_and_Coordinates.rst | 78 +- source/content/Instruments.rst | 177 +-- source/content/IssueReporting.rst | 1 - source/content/Metaformat.rst | 152 +- source/content/MonoXPSD.rst | 61 +- source/content/MonoXSingle.rst | 47 +- ...c_Neutron_and_X-ray_Powder_Diffraction.rst | 8 +- ...omatic_Neutron_and_X-ray_Reflectometry.rst | 6 - ...nd_X-ray_Single_Crystal_Diffractometer.rst | 15 +- source/content/Multi_Method_Instruments.rst | 154 +- source/content/Muon_Time_Differential.rst | 3 +- source/content/NAPI_Routines.rst | 1378 +++++++++++++---- source/content/NAPI_Utility_Routines.rst | 563 +++++-- source/content/NXaperture_and_Slits.rst | 94 +- source/content/NXbrowse.f90.rst | 633 +++++--- source/content/NXdetector_2012_10.rst | 64 +- source/content/NXdetector_documentation.rst | 54 +- source/content/NeXpy.rst | 813 ++++++---- source/content/NeXus_CIF_Integration.rst | 119 +- source/content/Nexus_41_Release_Notes.rst | 95 +- source/content/Nexus_42_Release_Notes.rst | 128 +- source/content/Nexus_43_Release_Notes.rst | 105 +- source/content/Nexus_4_Release_Notes.rst | 133 +- source/content/TOFRaw.rst | 28 +- source/content/content.rst | 1 - source/content/index.rst | 41 - source/index.rst | 2 +- 184 files changed, 4596 insertions(+), 2464 deletions(-) delete mode 100644 build/.doctrees/active_projects/ActiveProjects.doctree delete mode 100644 build/.doctrees/codecamps/CodeCamp2020-2.doctree delete mode 100644 build/.doctrees/codecamps/CodeCamp2020-attendees.doctree delete mode 100644 build/.doctrees/codecamps/CodeCamp2020-topics.doctree delete mode 100644 build/.doctrees/codecamps/CodeCamp2020.doctree delete mode 100644 build/.doctrees/codecamps/CodeCamp2021-1.doctree delete mode 100644 build/.doctrees/codecamps/CodeCamp2022.doctree delete mode 100644 build/.doctrees/codecamps/CodeCampJune2023.doctree delete mode 100644 build/.doctrees/codecamps/Code_Camp_2015.doctree delete mode 100644 build/.doctrees/codecamps/Code_Camp_2017.doctree delete mode 100644 build/.doctrees/facilities/Facilities.doctree delete mode 100644 build/.doctrees/faq/FAQ.doctree delete mode 100644 build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree delete mode 100644 build/.doctrees/html_static_pandoc/2014_axes_and_uncertainties.doctree delete mode 100644 build/.doctrees/html_static_pandoc/404.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Archive_Definition.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Associating_Axes_with_Data.doctree delete mode 100644 build/.doctrees/html_static_pandoc/ConcordanceDiscussion.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Connecting_NXdata_to_NXdetector.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Containers_and_Inheritance.doctree delete mode 100644 build/.doctrees/html_static_pandoc/DLSraw.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Design_Issues.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Detector_Geometry.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Download.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Extension_of_NeXus_Coordinate_Systems.doctree delete mode 100644 build/.doctrees/html_static_pandoc/File_id_attribute_for_Nexus_files.doctree delete mode 100644 build/.doctrees/html_static_pandoc/GenericScan.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Group_Attributes.doctree delete mode 100644 build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree delete mode 100644 build/.doctrees/html_static_pandoc/IndirectDiscuss.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Indirect_Time-of-Flight_and_Coordinates.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Instruments.doctree delete mode 100644 build/.doctrees/html_static_pandoc/IssueReporting.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Japinotes.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Java_API.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Jnexustut.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Latest_News.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Linking_External_Files.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Membership_Dates.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Metaformat.doctree delete mode 100644 build/.doctrees/html_static_pandoc/MonoXPSD.doctree delete mode 100644 build/.doctrees/html_static_pandoc/MonoXSingle.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Reflectometry.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Muon_Time_Differential.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NAPI_Routines.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NAPI_Utility_Routines.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXaperture_and_Slits.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXbrowse.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXbrowse.f90.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXdetector_2012_10.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXdir.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXgeometry_and_NXshape_-_documentation_and_review.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXlrcs.f90.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXmeasurement.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXmonoref-NIAC2006.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXmonoref_example-NIAC2006.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXmonotas-NIAC2006.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXmonotas_example-NIAC2006.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXnet_Proposal.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXtofnref-NIAC2006.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NXtranslate.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NeXpy.doctree delete mode 100644 build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Nexus_41_Release_Notes.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Nexus_43_Release_Notes.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Nexus_4_Release_Notes.doctree delete mode 100644 build/.doctrees/html_static_pandoc/OO-NeXus.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Object_Oriented_Interface.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Objects_or_Interfaces.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Proposal_NeXus_Coordinates.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Proposal_NeXus_Errors.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Proposal_to_Simplify_Nexus.doctree delete mode 100644 build/.doctrees/html_static_pandoc/ReflectDiscuss.doctree delete mode 100644 build/.doctrees/html_static_pandoc/SAS.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Scaled_Data.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Scans.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Storing_Event_Data.doctree delete mode 100644 build/.doctrees/html_static_pandoc/TOFRaw.doctree delete mode 100644 build/.doctrees/html_static_pandoc/TOFRawScan.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Thumbnails_for_Nexus_files.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Time-of-Flight_Neutron_Powder_Diffraction.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Update_for_NXflou_application_definition.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Utilities.doctree delete mode 100644 build/.doctrees/html_static_pandoc/Workshop_PSI_2010.doctree delete mode 100644 build/.doctrees/html_static_pandoc/XESraw.doctree delete mode 100644 build/.doctrees/html_static_pandoc/index.doctree delete mode 100644 build/.doctrees/index.doctree delete mode 100644 build/.doctrees/niac/NIAC.doctree delete mode 100644 build/.doctrees/niac/NIAC2006ILL.doctree delete mode 100644 build/.doctrees/niac/NIAC2006LBL.doctree delete mode 100644 build/.doctrees/niac/NIAC2006LBL_RoadMap.doctree delete mode 100644 build/.doctrees/niac/NIAC2006LBL_attendees.doctree delete mode 100644 build/.doctrees/niac/NIAC2006LBL_photos.doctree delete mode 100644 build/.doctrees/niac/NIAC2006_Scanning_Group.doctree delete mode 100644 build/.doctrees/niac/NIAC2006_Synchrotron_Group.doctree delete mode 100644 build/.doctrees/niac/NIAC2006_TOF_Group.doctree delete mode 100644 build/.doctrees/niac/NIAC2007.doctree delete mode 100644 build/.doctrees/niac/NIAC2007_Minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2007_attendees.doctree delete mode 100644 build/.doctrees/niac/NIAC2007_photos.doctree delete mode 100644 build/.doctrees/niac/NIAC2008.doctree delete mode 100644 build/.doctrees/niac/NIAC2008_attendees.doctree delete mode 100644 build/.doctrees/niac/NIAC2009.doctree delete mode 100644 build/.doctrees/niac/NIAC2010.doctree delete mode 100644 build/.doctrees/niac/NIAC2010_CodeCamp.doctree delete mode 100644 build/.doctrees/niac/NIAC2011_CodeCamp.doctree delete mode 100644 build/.doctrees/niac/NIAC2012.doctree delete mode 100644 build/.doctrees/niac/NIAC2014.doctree delete mode 100644 build/.doctrees/niac/NIAC2014_CodeCamp.doctree delete mode 100644 build/.doctrees/niac/NIAC2014_Meeting.doctree delete mode 100644 build/.doctrees/niac/NIAC2016.doctree delete mode 100644 build/.doctrees/niac/NIAC2016Minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2018.doctree delete mode 100644 build/.doctrees/niac/NIAC2018Minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2020.doctree delete mode 100644 build/.doctrees/niac/NIAC2020minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2020minutes_concluding.doctree delete mode 100644 build/.doctrees/niac/NIAC2022.doctree delete mode 100644 build/.doctrees/niac/NIAC2022_fall_minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2022_minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2022_spring.doctree delete mode 100644 build/.doctrees/niac/NIAC2022_spring_minutes.doctree delete mode 100644 build/.doctrees/niac/NIAC2024.doctree delete mode 100644 build/.doctrees/niac/NIACAPI.doctree delete mode 100644 build/.doctrees/niac/NIACActionItems.doctree delete mode 100644 build/.doctrees/niac/NIACClasses.doctree delete mode 100644 build/.doctrees/niac/NIACDesign.doctree delete mode 100644 common/NeXus_Logo.png delete mode 100644 common/NeXus_Logo_dark.png delete mode 100644 common/NeXus_Logo_dark_square.png delete mode 100644 common/NeXus_Logo_dark_square_nogrey.png delete mode 100644 common/NeXus_Logo_square.png delete mode 100644 common/NeXus_Logo_square_nogrey.png delete mode 100644 common/favicon.ico delete mode 100644 source/content/index.rst diff --git a/.gitignore b/.gitignore index a95423d7..91545c2c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ dev_tools/ext/__pycache__/ dev_tools/__pycache__/ *.pyc +source/_build/ +source/_static/ + diff --git a/build/.doctrees/active_projects/ActiveProjects.doctree b/build/.doctrees/active_projects/ActiveProjects.doctree deleted file mode 100644 index 5ce3c5ba1b2a81f4cb7edff1cbbcd19dfe1d8888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9692 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 diff --git a/build/.doctrees/codecamps/CodeCamp2020-2.doctree b/build/.doctrees/codecamps/CodeCamp2020-2.doctree deleted file mode 100644 index ef9493f499d5ecfee004bece59baeeba23d5149e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20469 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 diff --git a/build/.doctrees/codecamps/CodeCamp2020-topics.doctree b/build/.doctrees/codecamps/CodeCamp2020-topics.doctree deleted file mode 100644 index 3fbf77053e58f91db8c255e000e3ae5962806664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32098 zcmeHQ+j87SdX_Aa)Icg)$CTqEQj!fS(r`$Tlr34_tfSraL2JfkJ6@$+@(_ao2cR&( z1P77aP_@3?``jiEkcUX6Di?W#Jb+&yudv_WjXq!oGa6uqQkX1jIOyp{|K0ud-(PqC z=tf%$mKB|1f7a{C!1Kd{RlC~_qpq7+*12xvWPLYGEz7!TS_tFq6~{yLQ|)JBMcC_`tzW(j*s+Aaf8$z1Z&e z-8eC0cM!V?-4piAzP%U4BF?Vwn7g*)2Y%|i3DU?V{5p$~^lkIg#JBOCC24F2`E1>ba0)2Zsp?3XyrlXMU0) zncwsKqFo@9rEwJAHV>MyeaKVqXHjT&?bKdnknMaP_1zp(C;ev6^L8^wJ)6}9r8|7PAs5Z`nlG*P%5^??fgMHX_Fyj5Nn;h)96Wu0zW znYEPKJr?f0>)rI;M7mxRiFqw1oH_!__SV5L8@k69JU)D4W!@*=8;Ew*yX7r*WRT8h9k-AP%Mb%I*3Y8ZpvmaDqF5KvLOv61!s@*A zUgJHP_60rdTnnwUGJ(Z!4#9*mv zuPHKrB_C|*@wIfH>FJKwA5oTET4CH~c^_NvP9C~3PE;i~M31gzWE=ojUp&maVV$L+ zpeD?!Rw^DH#b}TmHi*=7T-4}c1xB;-zK8l>(E-=rKgQ$Gzx^D)TcL6o>60`<7KKldcx&uq*=Vw!tk zrsPL4=0Cr8O+QI8OoP(M?6{aUB~kE<=3gnBuTDneY5Q%G9SpfZP*znu!->0p^D;O$7-I zHj(5dT*bsL@q3t5$^yr3;6Ag%lz}5>Q9FG6ecYhD-lyG zOtb)K;MxhxkK-oEs`+)4q$UPnPYH3?c08UR6E%amC#Jn9!+wY&1kpZ+>=tw(|I?hp zOI;@iQW=j#y&uBKAcJSg-x1GXNeH}-NYbrOGZAGj5MqRf?5PulhvA=t0Lg}D$cE9al^5Dkp1JagCh!d^o5)MsF zL`)2gx{&nsH`niebcbQC3e8;=5g%{TsET-6Xug9i2wKSFu_F#M8+Au9sJRpP2~2!F z6Z5nLXjDWTMkPKRVZ8zgkbk7(cTa?l-#vaE&jv7^x#qXboJwZSUB8zjRS|KC@2GO?_r$*e3;|Q~~4EB_m zY~alJ%cUNf$IIgzn+kEQ8_=9(rQ2boxm8A*|GPMIOO;L=gJ{l@j%d_N`Hc2b-)6lY zhGbAAzmJjKGnXEMurX^@&Lk`R_G2=on;jaLv0=5)0s?$(+FnX^*dvvPan@MF`#gH7 zwU^LK;pxlv^hFe zeCE$T{Y!zLe*WoS1zHt(Q`&W@%65G>=ze!Nz+^9^`n$fh!L@u)7&K5)qs$T>bc5A{ zq$@I_U5}YJk;`L8otPlbFyAA)n|K7uQK^WyAMyulm<*cu+*w=S6i^Z3o9k2eR9!!D zGR##mP!tlx^|%q=Tt9Zizi}NrJEc)?>i1ndVTSbs%tC(^5oatekSSgX@wJmM{zWd2 z9r1pIi5R-gJ|6poX>dr>4YrJ+GUDz5p14!hC9rMd5j0si@;@NH@!{IkI$oeTA%kC! zS;vvfc_YrP!|M6?#ua8ctYsmrVII6+VjI-$Y{CWzcysB($C%M1IHNsK&*Wrd;1rg? zIhX-+ywVjfym8VEPmSTNplvdgnogT zCYk%RxSF#}%)~jO7FTnYiBa>0q%~sb(<)MPifUHZ$$>?P>znwrk{mHJeLeeLLCh#5 z(&q)!rs>5@wCrinX-);La7_*@LR{abS143{gI+<51a#E#g1&WnF=bjTCrKJ~no|I) zu9E|c5Z5>2O<$;q7QE@j93xRk+nolT=2XxM*W|z=#PzLq1#Ie@>Raaug{p6wD~M6dBr94t zjay`xtMp@xB=rpGQR$V6t79pO^ z{#L-JzVWRfroQE^Af}|2gjXp8DzlpgpXOBX3fJVoBFyy-ZiPbCx3(3;)Hk&i#0We~ zuH_I*JDUcb<`lrH>*T;9#Puy~g+kRguNB0UU?RMZl`N!TO@mHzDrkjka$phS`X;pk zHuddk1u^xFX$3K&T1u{^TC6N-8g!ad0IRN(1DP3Z#rsRSespEprFCL?=FJyG`1z-Q z&KKjoczL6Boh@tAmgp50=6k z>_k!JZz>6`rl*LdtCuZ#t6F8Rc}+-Nts*{pm4?DxFK$>HHF7boqP11QpX;j}XEAAt zy1A;Ynw0X!W#q-ngf($$1tzT%Zi?lJQ!T=ji*PNzV0v|2j*5$J$F0zPk2DUFl#0GN z-i9lXnRE+fXR;!{$s1kSN>JVq*$$G)cTJ`4*8e?YvTQ_O&aZ4rf%Yz7>y1u7TJ!q# zTi)k;8vH{W(oh>$3VUs6qP+M}MAQ`yMNMKQ%QRJ7$u>Y3$QoX-O)letTS=6KjKfwEa35J zd^i%M?Y23WFHk=e>Z&{tjnmtnH?_9X78kK2;uZjP8KC2}n-FtI`pvx^cI#djmm%y~ zul_&(@$W0%0=^d*r^12ir|%oOAKdcu94?G9_WnTfhXxufsKw&1v+oV|y~Vyir0?O9 z9I@WiPKi-JFX(00eC6r>6$y!fqpgqwT#HJ1`{Ieae)+_c>h z7i=Y??=pOfWu&$~U9=x5yEpfKsEFu4@Mye^dJUwtkanW(AsqZu1X2LJve!n$abZl| zcyyloNfmPj&jE3-Rxi1a%mN%-%zUb)378jw;-Uy)(7%|^!fXKF_2 zb27H#R3SUeFpmfs1^Q*3UwE<-OzsenepL%n$k6yjPc7e3ML8vg*{Cpq5j&j_P4LSX z)v8Le3pJD9REsM{IlP&iG-kT72n1DAZOJ6mEGowqT*52+q;Ux^?rh_f2eZH?@UF%vSIbsnL6pWG z<8HxS@-wSS>zw)uP#ES4x%IOuSMU{G3cspcv2{;E${hmO(`V`of+1r(Q?RsZGX;x1 zJ5$W1vQHXU+^kiZdK>u^Oz{Dv)aXmEvuM>=;@81U#s%;9^?x?)~p8`&p=hX*!{6fi;dFN!kX0>32GzK*#tqB{D|hs3#2#D zsZ~j;;VVG2NY2^|52|(qe7Unid8i+t$sB2%n&ax$D}yI2LFJBFp@kHUz4i2%wQTJU zZm7vREUsW3h^f{H=3C+aAGv4y<#W%iv1{&OIvaYW1u2%&^olVNS$;$lFwPb`|LWXA zh%G@%jq$$F?`k9dBC}{O_NX{Y%~$y=NQar_I$@*GE{+HhTY||Q0@C+uK?)ffr|4<1 zcb8BuYd+!QITf7pSJkRYG744myVc@~kqq+AXzZl%$yc>1QXk2D3(&r-2ij*WTD6vO zf6Uer_44iEm$VpS>j&wVQuWycL6-c8M$w%MmiEiTa+qc0i)^a041c$b!grWuo)a<( zdcEZv^!^+PC3grw|4<81$QaKuEUnrs!(t1T`KM|XC0T|V%t5udf@OGvIcXe26*6lN z{1~8dIraKrhIcilxm&)w3ImprcM}=f)+gjrQ}y~nAV+>ggWw3vHcxs5NDlLie0@_@ zp5Z&a6vD$iljAd%X*Sm-q}(wpu#_OZ8=6bgd5yiL3f{H3hUHao4W(0Q_$k?DF4cX~ z80YlDtbFt2<@3#3I53Mypy?NxmS(zg;b^7@bhjNIy;* zTl`R~BK0{?2cSK!2io7WXw^n0ACKKJYm{t)H3~agRWqO`f-_2j1o;t66VC+rs;h2Ijg>!<0!pSaELy#YoM)~<3UsrJq zWS9i(z>zjPVG`$fz@KS4uGm18+5sGoPT|WCce`EYm65`ohI84;Vmg?u%@2Ws&o=%q z2wysqE%!T@xGBA4lM=z_l03w77so=|1Iu|15}uAdmram zw%MyLS*dxZctn0!T^{cOe_?zZXS=wpUS30h;n_i|yl9=mC3HNfj?_-Gq!_Y*!%wqb zE^c|>jzd%j?!>{KlxIr0fqHguM5;qO%lK#64*_@^2lhqudRy+<$kN^BM@<|&!+*bB zys6Drz_dNA@(*094ty4=+z!Qa+!JNN5?WUBj4AVFKeBo zdLn)9JxJWF8?_JmLborv2XuT;dsqt7R3~lY@JC;@pV!+krqEVf6rK*3KysAil4|RW zNiF~YdVMaVlKdVckJ8?yLxNHBZ)zE)j`9 zlfxbwO5pc>(xI;|TKHZbxP!JlPf`^A0{PNw@Y}pqZ$(l5a7|4@8nQYouoN)QwktH{E6Fg8f=_ z4sDBPpn)yTU;=D4#_vbx@bwN_OTR5CM-~!??n&*$Z5NY69DRJy_WYg~;6HC)XM;#I z)eA}Aj??x(W?(Kth<~myU+&osBF8RN(>sobgD4$3F^AC&YK&C^Bt6ZDP5FloVrC31 zd5`-W@F&}x^k(&VnMg9pI;AoEJ~gr+vK7Z@yIC)~{f^rORUIOmp6lkNL~7R@#Ch6w z`?epn@jwD6ec^mhnZrwzCMjCt2D^gydFUB8dJLE+NisEQeC18neP(CZ(L+_WQ z68isM1LKgrMH;*yq(L!KyaZoJK^%(kUw`!e`;Y8a{K~u*^lZQcN`<*C|x~)aKIutY%vr&>#L*z^o zbGeW@y26+ghAH8-;S^*j8|HwKohYNDqIfyZW84^U6(afgEIri2;qjdNI*zg&07GC% z00UzN(@xtP1X0WRNaS2r7Dl&7sxBz&pF*a(=!-=(;%^+a)Y8)z)b%3>+PR}_H{C=_vP`dE?RhmcakS?? z>j&ba@;@9se@+d^&ql{-yBnh8zUT+Knk?xBqVAr#Ex+s5g%b#;BfL)N_Bu}J`5mVv zg3#&IonBp3FGNuD05dNL1JyKMiEhtt^qh9v?FFLec6)9>WjYPfc24}Bu5;|w#IaNJ zT3+b60s2ra-0Szy^}N^&JO}^wgRtkc=qok7=l8;<*hJG_%|RXE_v&s>gube*8gxQe zGRq@OV`sn5xS3QL;cwA zwVhC7<-h)4vAD3fERObeHn+q_rBb=$IW_*L)C}7#DhH}*zClFRd@Dsdcn12ulr&Ia zBwY*;#g!@IisUdpEsRG9)>M#50@nDqLjKGE_WwcRemH8Ac)c1@uY%Dr(K!Y#EfE=U z)=cvbzTcLh#5ehuY16nK=Z-~72z`t>L7i+IgJ*;|Yr zd@=w2gdeoB-0nJPnaVc>{<-tqShbqpqXN+qwTEA?x3J#e|9kzagZ~wrFzk8Ne#ncS zZu5Iyoz}pw@gM%)sI{CR-~#H&Em|pz5^vV~-SnfXQ#-}9jZ&{u5!s|UquVIe?|JgY zcgpyGpE?blhAQ9uMRT_KR~T=z$OCMaqhZieg~Cp=LXVnDgD+P2#TxzFZ+_hTDVq9G z^TX!t=KSZc^{b59JAj~r)v4P=A^DfY&a)qaoBo$Y239-*xm&WyFqyi-?s1#+QmYt7qIM@|GYq~(XYB0qd}(yt#`6k zi3g74w)7CGmG{6{50Wf|3e~ABjK3Th$J^#OFfL8P`1(3&Z}`9Yr%_h5M;Wyk%RJq9 z^S8~9NEDG&`)5Gv*C_TK65ZyX?)9I|UYmoHxvO%;Dg>9?_XO zqI{%_+6Ej{UkR0%M)O8M^ms3W;E(dD*Mz0lNf9^uz<1pZ zzFrkDx_O4g9qNnKe6(y#I*UECIT6C5`4yJA_asMVRYcS8Xug*AB%X|5?6vH&eqclJF~% z^eYyNC$enOEXyj+hM?Yxp%=DfpHE;IQYn${5O!h!Ia}|yU=YJ<6HBlGFUVp|jAVm` zf}x4UikNxQcLNlf#b_6o@Uz+P@$ZtLZfJml1}M(GR!fA=sVllIrv}S3q*lmAJ=(0F zLB6BQ{iYwn?mT4YgNW?O^YinP(+x^ar&VhBXJjDGqgJoscRDV$vZoF9M-byMfPH{0 zS=+3+^JrdtdAKQNIRU~i*bRSH+PX7OU4bi>BM^!pTsBcSBFtec{wXvaQ{qG&?{8`~6850nN-M>;$1QkD?4xCAyP*Tz1a0m$?0k{cj zuuuRW%!Ro?u2leC(3iB*gQ)?pPDFFrZk2M~J@z{AEcu*!k&!V8Zu+j0?SmR+;##uzMumV@rIfGwClu+;BEBt1UjTE zAq!AU*9@0%DG#~w(EL?45#3F3kjXc!_Zf`t+p_aQ6WK8Egfj(x&tB=v+4K;J__giptGG7GneO58V&}~Ch zLrn2t!zP$oa#J+u4EeRmEbhA6OR6N82BESR!k1DX~_Q;_vLJyK7X!*bft&Xyyl4_Wn zViwrlaAJF1a?SPw!uipst-gEWIvseYwJJyxtLn$Jknoam2L5D@14%32iqOKV1Y~2u ztFid2yBJZ+q+*}y*0JLBTqgGY7NnP}WLF=wd4Xk>B|qFEJrdE>hu6R>VsrRQJ0cn< zL8$6tk{|={KHMY$1dN326Sw6W!_$1^oMAvrI8rEb#W}D)JjBx3?6l^nUAcC#R>8Ea zRSxmd2l^|+f+z$-tHMElzQIT-3b777V|`<3L2T}dt-~kt;8G7uAPBY70jPDc6%<<) z`-w6^zuks1rHkxJh7dd38)9y*va%rVF0YA&#md~AF7oBUqYa@EmOxe+w0%`n}%=GTPV*nVS71&hs?y*Z-Prkta8Md;(F|dN z1PL1#B9YrBu|=ZSgT4on#6}hX)g<&Y>bV|4l$I|40y0@*@6vYJq|u!2bYo+qY!0EU z#ubzq06Q2&jifxQxFAi|?4mKu?YnsQ8JN-OWKhvVkW3OhMC2M-MqPd+3FjH@(1}CZ zii8QZ4G@r6R;_?CvMnj>ElOJ{%TS6dudgjEknM$S$1Qlq#U`jns-m)U)yTZqc_daB zmY3Gaii)edZAjt`al-TcowC*9*ZwhdXJ}g_CP_RNSCd=m5N`AY?m^yKkZ|u zo5*N+X-&*Ldc4bDl%h^{!0f!qWAB^B7p#?~XK;W;7dy?cck1GiUvJQAhhFfB^q8nXv84*|IHV##o6|iQQ!GOL z^N#3YL4XD0^`KH<2_;)d$=c9u$p!aiWM+#8up&b7(1&T9RAPYXMw8WitxUeWjNV=f zNo&w(VnT!DjN!h@?vALTnC56gFU3>0%3@wFgV=Iroi`eYEQDFOF}dAcSOCc_7VoaF zFU)KDTU%N$t}ZO7&W@cI5oOYwO7!M(yd7?xpExl99>5;QW(P=HHPR4 zdXL22=Ki6Crk;Z#c{VA~p{(o3s0ONKlJz!Yk8D5Lo~8wfRenw{AQ~JGj)h(*@hTrF zzlV4X0soMU(wWBx+p`-OG%ZESr=r@WWlg$C#I9FAhZLIG-F}L~by(BnWQ)t~daZM( zf9k@Re!7FwAzVtN&3GdL7nLGW z?Beoru~J!s6mt5Z4?=Qv7zcU?SeY~ApOC+w1a z)zbi0BCD%k7cn({P2HId-1}qS>r%9m0-LJnMvv+Fhj4#deiBs@KhV&J)aXkAJ+h52 z`9CkkAN!zcFT6mVm#mn;K}M=`@QHZIBmLO=^PyQI@dGc^NR=B7O!6CeaA7udE*bPo z@n8QZF7i^aejPoKL$!n`!Og6a_z?s3(bhI`KNi~y_(o3Mi>goS{yawBCIw;OGrgf! z;3EHOb88;jj(GSDIgJsXb^*`GQV{?rE%OEWOd(}q7?JMs5>6UYbBGo2VmFN3X%KS`{6Kzfjy#d)>`#lr2HBsE zhCO8m4qCUH4d|Foa<=gB(ldH!!sSzPZ;=~3Q@CTj;kOCdeu(9Q3?|rd_=AN{#yhXg z+H6&h`{O`RB+6#|fdbZ&(U_Z6)edie7lD11No_hgy322tQ>*I7T zq)L@F_<7;NXmZ(U1e8d>=RAm#j#lHr7=2GV|L?Sz)D!6R%N!!jPyHpW6tV00jzmMe14lxA~e{RhxaR@AI{pmtN| zs@O^~TgXPZ+FeQF`>G^IfZKx%P^;4iC79fyTa10>=ZJ4D!W$4#nQ$F!lS1-PRg~AX zf#o?3tXS>R^n#T`AefhS)1wW{8Z2SCuYlHu`OG8vLk)bE)a1UjHs<2VPjcqI4V zW7Xl(9oCEud$fZEQgbTxuCy?<21*6b(0tW&FeKI|5M*%*Fk!=nv|Q+MQMAYm2V#o# z1z3X}ir+Te8|OMOM;ry@pQ!82^le{8A`ryj7J=I2)Uk?V`HFn32p5D3w;CP4t^2Fp@I_Hf#OF| zIG~_Vomv9uHXncb2^GOt4SL!7fMQN0#EUda8zi)-m4zJDc}Y)JUm8+f4vEzzt)tFh z{np>1r`J7-cbX-2jrCUSU`6_@nl!{cLcnOBI>K2Fy_rKn4y0mS+}BNLglL#i7bb`8 zO44GlA}J$ECaRHW3r`j*V)-wkP*E46QsjY#=M(W6{|f!>0**mwtrwUv`2jTLM$JbG z7i5cdst7viR%v_j|oBf0y@F2Dool}5$853IGvU2{CA zrV9Xt^q&^Eo4wq=IAWDQkQ)naico~Uq$1Ab#N?F3K1@tI8%*0Xt8CBk1|G(#_wZz2 zrBoymbq1oqINJ^kXZJ-7o@sK{L_mPzK|r5-;KNxRDR88Y?mcV2n44F_rMNy;v*B*# z3cJtd#r=DTEF@tVTwp)7=TpoYYhYwJ5lZMCT32mAQ?H}lpwGsYHbpQtw$bIjBQ$2L zTjFT@@eW%vs_Hi`&RhC1r^w&D2_wm;ytKNwzOq(f<(M7b{VsVUo#1U*1TB2gM;dzkSE?}Ju4ZED5X}AU;T&Q3-anOK@_)k2c2t_q^#pbj~$q-r&Uu04S4p@XUpAb1{2IC^)oKS?A zFihPDb%|CxrV%zh9rkqkwCRH(5)l!|X)OR*bUoBR?jb0Hxm@lE9`dSn&Lkq&I60l9 zGd20kbh;*8u*o+x@0SKr+3^Q};PK$+Wn$>&`wTyJ+AD3SeZyZV*R@G-*ly(I0hEfp znu{&~kC?N~{T&+WHd*HxA0E%k#0xkyb!Cp0joRBlJHtMi?I3`bGxrvWuJAsFQ z1T^%km}eW@o@G05Hw>PvMF^u|tGM*&mC4VKUE%D3zk&Sog>Fhd% z)(3fvwN!m9@vct^LbPLtkt8&^7!b90$-I)UUox-iAte5vENH&Uq#p#<$k;)a|FLFc zJD$nmeQjZ?ct2p3iM0hdNwB|yvjUKdfR7cwGlv`CjSypruZh8VWr5X{%kZA$sN^q` zi7uD(DY?1@n+Vnh!tmglB`q6f3Vkf$Oq;zFM?h`uZ+{wr`LcN>(SXGz4q7L}RgOiD zCvG$OEt9`wKyn7+lO38ZWwtXpysu0b?-Z^B&m~eoP=q`JI(yLZ@v+1^c9A-Q4*fxi z1@XimOE@35Aebq*JdHBTb|#0f)y1jGL$ar!T~cNeIy403pQ3=Q@zta)6vT8(H$sdq zTRwGrJs+oWjRw?LOMKnkVXKE@n*kkskAy2) zv}|Wc?w+!3JI4B6?qVmuyt=wNReU{^0#P1Z#CZ`Hsitt+)OsD{&7DpIUZ3O&W(nsB z^2K!RxLS)2ddh?iCP7>BMb~@bww^n|b9m>>W^CyYhyO#YEYS!PnjC+Fuka zfg~|d=UMY0t%C#FEb#^RmQ)oG#+Ue5!Z}+{K#P{`Oiqs7o$k8B{xR(aH6Z;`%td=> zu`hIvASeBPMp*z;IZl%@jEY#od2(`0hACY(o}`7G{AFh^E5(b|9{3@*uqg>YF9n+* zGK4&|$2gNh@Uiksgowq(W{LLl(#9m5QTA}A&S83S>b)V_%b%E~cXdByTMMTY@J z020#J3e?cCro)ckL9!6?K~p>e6S-{563&tiwb+PW!_HZ?vt>i|#-$JfYX$l%pwwBMdX<6QThG1ig4Cnn^J)T6f#*fVPg798a zTxyiH9uJP5WU{I){e)!$?$W}TuHL()Hi~$E9oo>&ms=clZ@FF|g=-Hd4~gNEA4@)! zM}suRHev^kWjoo}3a@Stt}RU0--7HWlxZWOZz9_U1O267D+azdgoq(X_t<-(kdet7 z2u_u`CTTrArc-WDX!p^YHzHY)#JqJoofq|1=|x~Hs&cE*md7Th+pR23*T)LHZ_*A3 zZ|^HP!U=-_AuA~@cOPgq{e)tl?-wl^Vw$(pl7_sKF9vHy`&)uUMBhypUjkBZ>jt zpuASt2E&0G-qUgzV^&Q4T$ zv%ypNq61!g&jNMMiw|3>^NM7Yv-!#=qv9i1nX(nDvI_9Vq3Z4N@x`2)#uYVp34D^T z=~(fEVt7_$DCA}1Nn$AZ>q_{N#=JP>TPG55w&E{32IMs|0G$M+(LuJ4YhrL-U77A0 z#{2nn8H5V1rRW*@SZXgM4k^f3#^D;^w1hJSd77cSQA?KXOb%aD=8J@i89|5eWhKX) z7f8&o`E2KKZ*%wFbIO2(6j#)oC7dIBC5<%8b|!|e<&`Px35m^Aa2qB61EekSMY$kV z?iU%MTv?XLw}dmYCDi(ye=mhF%XTJ)ua)H~>j}#DqJmy1Oo;*gQtoMS9L$;Lo=fP{ zznOXho9;45KQ76olRu4LneC{IxhbU%wQdf+rt5prLDfK%Ub+~jmiPi=;s^zY)@xWx z)L6oKVm_`_b^hX#@gy~{LN=aeDc_1VW3*#i%we7dZQML7%!Ii8nT5&v1G$OnRp-E z!m3PnT|PwOl`>_7705zoc(yFzOlJh5fOB(G!xBD-K~3+1N%&f}6JqDn?>%oLD@`)+ z+_IgC>Cda{ub975em19mLKzaJG-M4y!`aGjqvatTY(Ix@q7&_!4P%RJJ)B}@G?T^~ zmuSNhUlY^o)~0+`PWjnzg!H1vxy0a^l>3cV_<~)O{jr2I#gaw%QZ8(6*s`68@z+{q zy8Dd`pbSu3%GDU(Npt7s@I~bn$KIsm7~4B^)}Hg$BkT^DhzRVKa7NZTq^OHdD#fRs zEa_Pq1DSZwc*u`3^#nF2G|F!#e@$0!(U~j^)Hjg<(H8GSF2-hDj3Z0DPj20*Ojl2! zU@|_NraWc5`wcKz@>d(lX-I{asVL(RR9iXLqa?tTA0y2hmiU_3y0f}I-7_!A{WvJ) zw5^6!-x6Por6uIp&_Isa!WLf>Ixx;UxV@?fJ@z-QQ^KIt3qtf+g#K$X-Wjhn&ueHVL?mO&n z-$x!H&S_Mqbn;{RC8~7WM8sb)n62?Xsknl*#p(L%4&)&W1TiBW5_B`|va{qbP9(!e zF*qlP6D4)Ar03+JPlG)y+nE?&tgcVjAFf^4G8k6oM91DW=-J9XMM5;Xu!Iw7o5ISL zFOoSTjFv3%HM#X`ak_TXP8%+00(6qHZSf^D705gCbQ+g&)*Xtoio~ITE?c}$4quh& z@>dN>&^kzZnqKHF`Rm5ViLWhA*WNMU9KmX4|G<_nuFKE%0pKy4#TYk7j!oCzQF;Qq zfed9~417sdf%eMHk0qQxz&f0TuA3vr7N_eM-Nm)a6qZ0YIdCRbsR;w*mXeH)=aMo$ z@Ug_$&9``_d~${^U8XHmb#qL#09oRTR`@tu3GKwIk0rifF>_WcLkE`)S++AVO?+)> zx|*Fnl}HSNLxq(04N)rA{3SJLcq4FohfH-d9==S!Ndjj#1z)S{H{%rP4aOH^-V$Gv z)5NEowM&K0bB0>Q5(++6mM-r0Lw-HFCy%2UDgB%LSi%{16(FU4UEq+@@iC$vI9&v_ zWZ6zeevz@p1GAEDVUCob$hT!Vp2^AQ#p!yE4_w^fOIb!_T5CQ$F7ahWKe+PG!<{d2 zY?BU~u!Qpj`E<&b9A`g$uHgKf;2cminWf&M-0~FcdH8TsvIPHY31{5USSNm`D?@MO zI=D9FQ@S{#2{AVKvBVc;0sj~$v-h4ozyIj*<`X)kt>JAe6DPl$rpjd=R&}!Y=K+yJDo&h zQhT|fuJBX$zl`6`1o1vy+wuUnDgsfD0~M8xJvqwSPs+W7v?abW;Y@~@C7dU??o1cX=Qv&B z_MR_3uS7C&9KNXb{8Qwr)eBB!>fRtYPj}byQ-oyV&^ojz>E(#!hLx>*^XYkcy3sO} z-=?_&<5r!bf_DLTolz8-6`bkv?gm}FD|4H1%nfc0s@u{te7+8n8RF7oKMeWyWwkb2 z%AZ73K+Ih?NRCbU6#RWkG8-M~oktEkd3BW~-c`oPx+{-O#fp?IzFgeeT@Rik7h>{b z*$!(N8Ho&S>2P9t!rJn5_juBHr(IQo_?UR7;G4w95??-FKJByyP-fZA1o1W9(+X*P zk-VmlCBE2KjL;Ge%GZ(jvK?+N}PcL0FD@HkcOvjwBve>z!^;ayl*C=zd0UoJXx*!|!z5!X8_fxMunhJc7uaPoAm> zWn9&)wu2j+zdYO&GaVeXDQq>d1>f*zap&#~?f}Lb{RF zfcY|cdQm<-UU_j=?bp9KUaZv`s{yAtfq}_))6sPpu@U*=C=H<%19gd$Kg2^=K`hw#}&GK z*_670n=XIpU^CM_23|u^y%0egO$(L5N+-=TYGpi3n9I^>er2`Le3 zbo~e`BVm*70fPAmBLIdZ&pea7m#rl-uj z_#y80jqmD>5}h(}l?ppS0A6FJ1Th4d2MC_Q6=w4?0~=R<$oL&_3NtPB32Y%$+}b3rx)_G6E(M1w$LIPt~Z(zB7AJn{T}NH@NSm{Rvq{YY4W zQfMnNfRv~;srmzXUpL7^q?C@zVTZX8KXSkYh;040lDJ1i13}uaHPtOHxGG|QXX~&) z(C2b7C8Pvg*(HRO+pbF?9s$-9Rio5xb{W{`ejg{uFny4E;CI-|61uqU19>4Nd4x@H zsAQ06tZC`9$;^uTYK*l+GB7>k1%huy2fIZ@=_>f6B$6*Bm8i{#S^#@f3{o67?FD9x zhwkGE-D1>4p#V9}RPDpvAoNLac?bm_CpmjrOGzWTkO!2HYgG_%<#j1_hV*qEecI}~ zCpcPR1ZB`dY0;E;4~iswWAKC2`zL=ki=Mo_@)iWVdRZOgokE2I%LCFdJ?=! zg?$O1I4wweP|6NQK4WTyo$_b2=Q5a=WlnX*>z&-KXh^;Aloel9}rL??ox3pAQ zE3GfCEQ^^h55>$O7WL1tKFvZ$@q0z0ca*!kx>{OXTrDlHqIW9ygx34}$VP)@8q<6L zoep}%9&eyQd(xvBppkMH1n2eJMY-1o-a+jHAMUxs3&5@|D(mZ|<-4WI$|C(IATX*Y zozhv23qGZV2a6F{HDC?7`>l7d=06~(G8bFp@6AY&AxyIwd@BKa?-bMzX zxj8z*O4r>J0bl{=8>W~n5vGQ;8Zc!XshrUOonDW^4GVaK6{SXzekHNl3jBGC6d_^t#y~2Spn7O%>B-p|jOmS4>-vmzZnP$FY7g~A;S8upbV@aVG zkn}!Z!vJAU6v(SQ=REBAkm^;4N#uRg?4kKm)de3kpuHP8VHfRZJ3BPE8x z@_op3ug5q8MEh{JindE3T{GMPCDNJ~E!;5D1V?y4UT-$)6G(xQ=JsgGrG80yf+m(k zp8+Oeg2_N7bl@W624tK>E0#y0bYh`OV0nlUPpe^@qzo-#luQ^@)~C^*Bhw@4i(H9- zM+=F60kH|>T-xGBL9+$I#UmZPZ1!AM!wJfT!VYCICK1d^BS?)^r>N_>eYl~;XW%BM zlctS_palaGM6QerqlzYnXT=_t|HGO`r-vaMsC_84l2)?Kjrj<883u)_xsF7JWS!tL z&@I?gViN?>XYCy%s30{jb{>h&5l8wUz9O31Oin z@ID!1)TS~)6u}qSNGlXRrPJy}7RyU(V&>7~UH+nUEz+H5=S}8hvA4BQfkf4SE+p(a z$kw*gg_+%u8da<;`hKa=f=bv8%8$Ko8eg!glNj;=R=YOhvM5;akza4nViOPC@FW&n z>aAXN)!AYxU;T5q)F7U5={E9-)IzLXWGyHu7`iPib4aJEY5xIq?od4RDGW3kE$eKZ zR-;+Mx?1L;zSJ}zvPkHqkmLiEA*LP3t{A?n3+Q!#jPUHKTZNSp0?Wi}NUNIc93?Pj zH>RMw3k#s4#p2!d^@Vv&Qfo`=#npuc>f_jX5m6dFuE@uiqvdex{KQdneL$gYSRRe6 z*Ffr5B;|=(u%ZApoBM|nWO~qsh}fiy&da)j1YrW(+l(AAuDK#ejPXNS790;2bT0(L zBy%f^UOa}NeMm0qna2m)vl|#CbgYijeNtt2z4|%C#mw&ZQ)h#| zy09Rh?ucD4glmMf1iJPKRX)E*Rj}yNBJQ+QCub1s7#u>Sym(|}Xp`(kz$Bgv==i5N z(+gJv?sq&U4UnWE=g6Uwyb4#H2G1RB?NY`*vgBlK7M~4@-o(PJCk_~fae~sxMLPE453LkHj_> zPw;cVu9%?N58=-W%6=2*W($KrPjZ6QYAn1^3pIIgs!CeMVVxz{-u)iDG~{RzyJT$i zOq%QJcSX#C-zDhu9?}wZDO!}Kr-Ue_Dw59%BNERfU6JvxM3ux3l=%=G3}Mh_H0Ay0 zrTAkXDDpxIkA2B&zEXpNPmq=I!;h^$i7JU7Xo|+DJV&7T-@u^=tvbCioF4m2@n8QZ ze)du-q|pNmG6qoIZ;2|29}19h1G5-}7dS_|R0NPoV|zh#~8JOEQ?KMj8DDdeb2C~^r@@#(4yZ1 zaKt(rznlO;CgjR485f33VPk{k;~rd>YZjt6rH@@o3EIdY!iel7A)_%vjh>#gZ} z%0^1rd7BL=agH%JY)sID#QZ-cHw_&p8D>C&+l_${PJNsaq~@3f3jH|QrUS}t2SQohMZM;zk* z%=GYE^NW0{283o*cywfso$BKyY$zE#|2oN{XARe4J{pmHcL zGb2R|t1AcwemQkqinn+e6MmPJGfLA4(xlgJn@w^eP;wMWDxh9@QwyE3 zYDil&kqyAg0}onyR$(8rYm)ojIfg5s?NVFkUI3po&5WITPUk`@GFfAu7cNW;x5qvA zDZFl10)`d_-q~yHMn<)p)qfa4{xb9N%It09;*F1daV=??ZT7#6sdRE z_94v&%Z1@fjCzwwQ{-bogSAsQ)WkM4;|e*+*|P^c6FbSLR3-YgnE18C%~2b4jWv@W zIplRSg@+_5z^61}={(fq6*FYZV9JrV2haiOk{h@n(LfH}k3L9yhS^uCT|BX9i#?!) zvwTiI}D0vKVSC(y-xuw&{)Qpe_v-Rp}!|2Y=;%;H)7-oHmDIe_rIw z$CTkIAlbPs)vI#^C^V^|Be~xiD+J^Mvf7|UBUq?3w^65<80k175|O+G1*NWr za1*RBsDY92LXOSzQ-A~Be^L~oB1N13GZ32)@#_n)mpZVx18vry>v#&>OGKu5U2mao z;~GM08=nBHx>Ls@iX|n|MsNToK%9r)P{9^Pp`ctZSB~$uKgSu()9T*ggZ2Jq^|X1o z_+>jh`>gxL!HX~2PcODxhX-Nv-g<4bOqolGz2Vt?7NbE0~ox!`M?Vw_N!Qo zXlotVz}_0n7`?Adk2vy@00*xCqf3n*$`wUXfI7my-1FId{OKozJq=~qXi}>s+E}C( z)Iv?PvB<0RWwn-4wU)AKp?6kBw6ZsY;dV1eBYs6ng)VhM~CLuwvU7?C)% zI~n04hw8~2`UhCIp{^A7brTG1jEA9;;E!END(ns;6+nqCV}6R5idc7xC{ffU;8%d+ zSEpU}e}zVL0go2czY9!}EMHB7QNxjXgT0KG;sE>ZZV$p6T{5sS+XlD*d!T`80b~l+ zrvfHjU|?YS8WBL$^ce^WE@9L|2oLRSLCB!)nKm1qx)>sq1EwCfjPz!8+$+2|h-QKI z2h9=p-N5Y#bs7%}kt>@$mT{+Kw}3MNR6v0=jTRV_-L1YjQn!Qh=v8K`PzCa8`Oy2@{zry<&YX)8>dhpCu(q)k{cqLHP(89@7x0) z9@I!fBF&vbo9E`a1H@3VrV7U(m)?CgFYez%@D>R!oI<4&*%UMcDJL=&}R!o8w_lf%B?9Vpjbl0(e~pVR{W{bH*UwT>ub;8a+JT>!7u5nyoBq_SJW+U z?1Ggkx5=hPv=N%%=vvKh%HlNay_i}qWON*L&rybmt3Y)k77k>g(10UFf=w(F^fDQt zb2(cQ|LK`ac^#W77>G13v>>2ZEoA)$MCn^`p@RLVl$8-NlX!xA?@iA{4ZeXQtr|tC zxKWS>3sqk_YefxnoJuIWC5Jc}CJz)XjIUScHX z=Vf&Ii1;({NftC;4K@;Z*m_1h!mo_ghilk0GEAabO(%}QQ{rza#~naP8cP1MAhr~W zq4Tnn4@)BCDAqdlu|cs;^b2_mE0rWG+1rSfv;iz}VCKiB5rjv$J-T0)lyVczHjPXO z#cP)zAF%eq>o^<*aPC8tLc9Sx!;f$#;RV59W>L<2UNYUtWB|LeaQTV3 zBq)==#s};c>f9kOW@*9L*1iN0X;P`|(X& zHjT)5&R8*zy0mFzLMUFD7K$k<1D?5nyl+r5;YWZ@jgJkAv2)QuzD)Asky0IhYycZw zAeBatO(PS+&g$iff0Hbi{53uUlEDI94{8NFG@x>`yTA%N>Y8t5ZpX+$Bf~y}3@Gnv z(RuQWdNz&R;Kge-M`p|NNAVxFA8&mvwxC*I)xxGU7}A;n$rO}Z+6HFms||K= ze`xj^Xw%4K7;ts<@-w7Kd?bI3kDX1maMCe8t^ zWuzsFhn>N*q7!2+E_bmTTwYzhJVRF!AIV?iW9K1lT>9{X($OMB(7U}NHc=^NBfsKz z&N~sE20SGis+S+gO=51$yT8+o3>ZzTtCy$1N`f-^Yka`gT67$(3a>p5;20kpz;?YC zZtJ-dJcs|vXu?h?0WHtjgnYhIi7!FCJlshpg zkf<#iz)pzlWem&6ktD@X@|T5BO5JO}g^e?~J}Ghm+iv8y|ue8Ji-ufI`0rMTA=8V?%5mzk|F2oCh8A~>eWaB0* zTa9GE@>*NCJU3Tz^-cb=Sc{FmG3FymuY-g92?dbS#Y^C_`2c4XHg*wwdF;L5=UIvl zLK0=dL|Oqkcij`(PP4;M#Qv(A=zlgCimt5FqE>GL*fcU3m1`x(HC9Q)CV!2OW}tWz z>J3yS{HsI*ClCP*vNRo(6{+c$LIRJsfIyfv%<uh#v))|Hhy`6NJmyk$_6#3HJ~cX5hz+dzU1 zV3`Hen4z|88krDwWE9=VktFev{53vyq>(HRyGUoG)fows{Ocec%kUZ*kexnYS68OB z_VDI2CEQl=mlVcf3s@3t6nLs4{tZKHpn{^AD9TK(G_k0cBV%537t;^1pj}D zvjlmC5?y^#-h8%mxVO1`?>Xg8LGBxB%LcHKp^!$AO(T;LO3N#+%t@89!bnobn}XmZ ziVOp2ZLnh`ppfCKm1T)%8^GcWc&*QAwNmJ@X=F0kS;>)SKDkIFe~rIn=#26z0E3f8 zOS0!}8?4nm+-Dfy<_o+HYy_xFV+O)Pt$0V}r%dTumJB#4>`cppp|JzB=p~2g{w1Go zCU?Z;*a62OQl8_hHE`{DXELs#RTXAGiUE^^p8RD&_J+$4WO>B*$*X6)LnF^$;FUb3 z8^x(hP!Smpkp14X#7#$0Nh`9Slt*-0n$k`{!9ldo^yU8ky#vJh;}?O?!WAQ<^x|Br z>a-3uGVC*m9l7iD$)F-@)5v7x2~vzr$%nE>+jw*{9GyooVts6|(_9JtCuEwZKQ@5n zlR{4WW@6`+ZOW&F5^nqrJ)9AvTWrtam&UFF!`KEpbmong3MJ}e9NA!J$Sw`VEDie% zGT`7YO=Vik=pm9vlqq+kK>jMjA!Gws3K5SYkWFX44NMTenBL`)0JUjEUgGn-jcghS z#nfy1%?LMIe`UOrvNF`odQz?#r&w%ItR)*A2R?_XANf$Mu!G=@2q`AF*fcU3b!%;E z=bMyc3P<`bdYr5XMxoq5%kP+ivYY*}0W8HVMcC1sXVk1sBNNgJD$@$!XP{)j)`oXt z)M|mG8nglIgvh?~$|68gLW!*mI=Re=pJ8GkiHan){A7>ZRmf2n9XyFou-E`r>f)Iw z&Una=1{ZWz|Y;QiGRIo;s1h zu68IMk{8CRk%0q2Ym3wJZXL*=d&IdS5)4|Cc5vD74yV@O(0k6F;BfRi(Z3DFCXeD7 z)Nj+sq?U|nd4{z=S1#x>doea$0oeS?FeM1>(Uvaq;3hscfK48;H=40&WJ2rC;nyEqbT26C(za6;IrOpAAFNaWN(#>DiZY{NS@ zICgk#aavY}0oVvWGy4ZtWPdG=sSf~y*(|!Z;hhPQ{o=H&47H%M8^u`FZLuTQ^mJw; z8^C_By1t%;oSPt&7N_Ml+{MkBe7F(Opq#2vDy5LwHe!iRIFd#@@Ug+qO|~iV<~_T5PAFp_PsGaH$Jm5q_ot%%^lEcJk8+uC?-T=RzD(qcacK0CrLgI5o40b1ptt zfPGGY4Jc~KMzv6`X^Iv+e7Gqop8vH0Ebbhu6BpCHb~kMCTASKQNqG~z0a5kU20N56 z_+uP|-Fx=@{-ej6Pv}gn2C$WMn-u9!%X^R0Z{dr!Aa6m!eQyI?oeK;XJ<>sP3RfaU z!*1E2yEz*d%A0CLJXvAq59PgQ;GbT~ooY7{w1E>H$iGT=kKsq#@A#Cw-D)Jrkm2{r za#CMMq=se8MjT9N0h`)k*cx5KJ)q{;83|;4ary#I{1Nf6C5kiCc3e3%#L~1pOJ8<5 z0xdcL01jm1)`pAe$Qa#IfJ;$%mxy@qA$c-vC>B@LmlmQ;CPQZ1G@`DxQdc&N*~p{> z^|Va51Ke?f$f-`hUB$sowyha5HYkQ)33TE^JgO)Z?L@J`&fc@y3-5X2tcXm|V$;ZE zu(P^4E!AAb>teTwGIx`DEkSF8olL-z;bQ~XNi7-E0_-^s5xBkQi_a@M7mAbzHh``6 z{8Qw^)N4g#OWp{;PHPYDQ-t;5TrgA|=`n~!L4ITMCR6P4w8Azh*GF>&)}vmHDKiU1 zwhhJ76|W7t!c!({;>Zs~rqrz{7M@TC`POhJryquVEvQ;bZRAN}|2pQJ8zGdYcFOoZ z<+6;_ za9bJw3?3q&4ddr@h(Vf6^h@4#YlEHS1s+DfHjPC0?-`-p+>}itlcJMpId-AcnBH>S zh56+17NBB7Cw$i(=!EadGmv8?9)o^0kjY9@YN!o%CZyXhPfG<&V~3D4Z;2h^{7ekl z05$_V645q|Oo(?@UXf?GkO=ZG77BcKV}M&7Ywm`=*s;K%jt!}7isZXht1Z7;ZsU-$ z+bgSxiSib%OWZ>CUrx2&u2a^4|NhVaz~6UX`_60hX}<9_e$6z0HY=b1iGSU~zrT>d z0n~z^CXmtcGYUF~FN0b`30b%K>s*CVDEgC~%r>cwx#stpAMQ2h_xe?*S(IN-+uGs=1-e) zU>`PbH|IZptzT_ENW$h>0ib&VcRL?@OhXCB!}T@wxO);Fy(Q$tzTm`NCipfA_$3xA zV&)0%bVZ3-z;|&8Kb!p?|CV=uMmn#&bvh)asM~VjmvX`a`TUPI>u0#Y0&CDdE(L*F zddLJ63q867+UW)*r_;iX$!A0Y^QhHp&`tG)J+?)0lHd`1fJg;SuBwRIxT;xg2bZgU zdAKQNIyend*uurrPQ#xq5&RS#5i#KJ#(+l-C;InK_%@>uY*1eFmq`?()bcohMLmNl z-p@u&G#L41$dHoEAPHTPb<-eNH1RqqL$ayi9X5Z95jgoCnSD% zUdTqHe}@b-19mH8krz5LfcMuUC^Q<9{4!)<<3LdNDl+(j#z$cMVFHYjJ@9xCgg=`X z!x=^nUH&^{0&YSc4kH2T_kQ!k=2wtbKaWtDl3D1dF@p^yZX?f!Cg{{x+hkK|SG({XTBK3`hhS>}x#D8q%*vf*3X4 z=tixoRX$qN6R!+eNFcj>@kZO|Tdvx;O3U++sF81nmxms)Bj<=%=K;j)?wQ;2yDHIh z;2($QFdqwa<%Lg|?NZ2A&+j*yaPA^X711c}G1mQ%ju-`PG%ZwSI-Oa^?-b&&k z&l~PMNYih@*rRE9br-R4fLxoDmB4Fsyko%Fyxv`2=q+Uj<(7*zh~}@K{V#@YD2B2a zd3huw=UKC6BiWK#vlJm5^1XMNyu!B<>0^O)O6zh6ExQ zQOxBi`82P1rNT}SKuKq99#SFzfkRVfJ_@sq0OmqmbtD6+LZ2x;k}5ds5Qw8ExSqZi zNTV+r9BF23vOt0$prz#Z8VMV&7;>#rGi)Jg%4&VcXg^Dhb{rie(VtL+PD3JPV?`?)Lx>@p z-ceC&9t2ONd3-e)78nAW9EiMsJ={aEV!Ksph6YCt8QSw}z}j1~8$sS48UP_{StHAa z|4}akSKlqn3>kb5xc>8Gr3pidy0~+Fi?>CTBko;b_ zRVONk;NL?0$bmMC1AqTk68A{?gTt(k3s^~KB!AYu{hh7D0xgzYE?&4(UW>9z>u0&` zx)fX=z~!lGl)B9>uZ`z^A2}|tT0t8Q{0?u(hc0faL+&`anukqj+EUSt#yViZc3v$2 zOdR98Ml-&q*db$q`|SFlhyDy+eK&=b+=CovU6Y-$6~-h$Lm7~ghD&oKC7`mFlK2|0 zY3qe6kcT<_;Rv$l#NS4oIA~|z*<|YvH+vF13^8gx&o{6nQc&lPv@B)YX?r{M($?Ze z^Zx`L5_?8a4`EwI!-Y;+I7%w6mo9(NI3o=>txx`JXkR95@O?PmG8pUAs}B@i8d!T> zElK8}hL0$Tuwhme+A^HMx(8;RHNEIrLKsbEa?f`N?B?I_vDCX=HL}atatLoI!8yxTqmTF^p_2m2R49lhlgpJHk#Ymk z6~C}7ae*t&AbMTOhbn{Ejy`Sm-4o>dFitcP+N=68Ie6KXdj?C^hbOC}@*N57?I}U{ zVt0t|`h)`v7jEEqls0N9&kHId<_=m_sj!dKA}|o8vxiP0Utj|YDnh&4$4(@E zfmeLJQ?K6<(FhAw7rKJH=QzOeLm1U*hW_mOAY)Pjz7MC_3<)rs8?0#AVDvlDTyyuH zB*lE(p6G^I{%0o3CvcB}WHL3LiyKQ4CiI3Q&R*E;M8YQJenN-6CoV3$joCwUfO7_h zV0BVDGFfq*gRjQvc;BcE)wzQ7F7wVWE4F%DSbX$>{>ofP3nN&g3NQ2d26~mmBfTT@ zHX|@Wgzp+kKmBfMcjXRVz6m`TN0vQOCgk714(NO78KIm(*zY9g8?__9=+6H()p(csyTZ?qgQT-_tGF8(&xa02X}XWdZba1!bWnAZ|YJ*dRiW9c4*94r_DZ?aqmRr zfr6S*4KTdJs+37F=IAuw(?GE2jK>jY5W&1v?YCNP_?)OU>Muz%2$)b&094@)m3)q~ z1nnWk@mQ=Q>S29jX+do6imk&Z^Y9;fxab`wTBif6u7EO%(YL9j?yR< z{b?}%<5(Cbtm!@30}%07OvL$V{|WUvd-4TWJNXj-OF|mM{P_w%w<`7%a0~kFHUe}; zg6*$IR7AT5hhI`Mf)&1KaP?^5MqowmDM#RXf_Zm%-nr|ZN^b?4k?F}(ES6NvQ zcbC`1!eV7^ZZxZX;h>zvtnb#+wWg(!a)_ zfoGGVfkTA8bzHHHEDlAlvmrjLl$ICnmX<1OrS-*?Wij*Rp_n;D*vn_wMW02ao!=`K zQ0VUJYH4wCwY0nnaX^KhP&mweT);6ql41_7zrQ59C)2@oQi!?2{o|zYy72%Zt%yzB z<0H7Z)mih*fH_<4!Z!B$?V>!b8;nHX`q<4zSds$&y>vq+gz?=(64OaEc z0S+JCG=;?1lOm?SJMeLa?C=7{R$Elo*GtQHOO=&H`cGhQqI%LPoz+It&9C#ckVH=2 zDp`2>>G!UxOFaiHe}q=jq1D4&3S@TWSaSd2DFyQ&zz5qXp>+4K+khNB%4zgT#Hy(k zxiWe!{`g8wN3fUd`RhE5nUKeK%@hkM;AgDhk%MJmiqSZjK}VJ|yVrf+P4ztvJ8lr# z)rw7X8AoSxKtA(aH{S>b$S0qg2oT(s#-#+tcZ&Ewwe^@3RvFj|BZ^K7z!5OGG4l3- z+kmMlLvm2a(2LWrWC!wJ4edXSgf_~)-AlHgb^;H+w{-x^0sY?Z!!l|2gK%z+a{7D6 z7wlL<=pS#KuwNDV$Z#7F&ha=h?4Q`s>Gdd!Tmf$oa#W)+6((Sjm`ugzH11crXZ+P!~q-TO+7o*HIVc=O?gPu zL8|Hegop--d}dE*bjpE*WFD^otV5=f7fL@Lg_b1bemV?)LxzCI*9y;}yFlr=<`V=Y zue8_Xcm%`W+5$(Uc0r?O=F~NTUN&#Mzg1Ihrn%dAaT!~m?1SQxR3Ev-vYj~S7#l5m z_vP5dxv!2d@c%-gC=f;ABUnGA*b8!oad0i)F5K}Egi%FQ1Fm4zK54xxLlxn9Zeo8N z$8>zrz=QKFFr=- zClP_PrJl&lZ4daBv0xj|IpvKciAS6j@5+zeK?E#(xlVZb2E6i1QKb#a>GiAGRJ<@Y zy=9PF*|ISV%>ertwI>De?sWh>pWr@=*b|3d)LxMl0dGl z%`CEc{q?I_Y&{UoYiMN*i%p{|AD)Mj4CLxiP21ErgsCqkVLYl>7TA6<5^SjPQ=DBb zvgQlN9f-oz_S5V2=(3kB;Tcr;gaV4xVMJ_?v$Bkc!gvrA?bxO`2a0+`${-KMFz)8U z(%dB7+%0e=TEHpx(7!<7Myy@4g*d4$vVdJ03G6&8?~8~+QmY`k+q)D{8wKs>LfZN0 zRC3t_XjwryD5FIw+@(SPL5|kVIpe!tLO)7PJHwv;aGZfL{w!;nL)7EjPK__$5{;G& zKmC2QK{_-J@}AIq$FceUWdw4IJ0NbPJ13J8YANhdK7bRE_uM{GD~ZqGh;=#x2IMa< zscZtpz}xRra5?$afR2sQg+$kQV5kId8KWA~iIeIiAMk0ZR6zT^Das9}gv?jNUkuye(*U9UE|EI-k{QNReIzlPWP$QqckI-BL zQ)~b|EB0`l=&y+n!Ubt;UBy5Nirt06RBntGxKgOv>oP?sSC)#o_+6BRQIMdPOEviv}H=TEkmF(dbW8zN&tu7zMOp%sIcb zh^;9JtjxfUr7>um1|$KJT9OB$HD>b>9P#B_1IqWa`P~9q!&~@P0_4X^fl7)w3wR7| z;M)m~OyQmn98x2FL$zQ|AKx{HeCJkDyk=;f?<7~2xN{0K8GLDWqqD1)!?2_)gS7TA?U;^ zR=&nEu%C}?Mvr2sYp9@OANMIaSrVTE@3K(kjzkq|6x6mwk<*{yLE1FQC~%pLl0m&+ zd`dT?lecDhX-&*Ldc4bDRFVVAW->cZr(^V{4abCREmROdrWLnBA`=^J2pPmZk@m9y z+8+tfJdPe3xON7n^h&(?u%Y2!{EI;{1`uQx!|=*u9+Atg{K`WudxBzREahek%+Vk_z|&8I_)jlr#}>hzhq z*Ifo9`R7PNi(sz+TM!shhyw+bu1Ez_gl;Q7Wy5qaej^c-@Fg#xY&q`^+NLa^?sFvg zter+(4%ujK-f7OuGRXpXwxHAUi3dn$6N-mE-JKS3E(KM>ztL!N)|mv`ra6$zN@CJ@ z&HkZw%^FQdLzQ2y3Lvy%Fxrp~nd{!yp4{Y=&_J5yk~BODH3Zb#@a`jF0ls}sktO&) z0U=5hsvZo${j#KjF%&N;i4LQ`t3s0?F|S5!HJiVcMm3Iz#vU{rMTwWq)l_cSd=;XJ z;mg$K_Wc3-7^5+$JoEjH82K-sx>e*_3*l5G;@>Ej2WVf;L$1JuxVSld1NLv-zSMO6 z@#vmdwhk?0cB}FI!&IO7xDzeKhV03Y(T3)7nuE=p?ouMYN_LtlNA>NPjB7>j5gZIuUyDQKpm*-o6P4j#}&jyU>3 zDTgQ%9`=1;YS9$LjsAua8=|X`eG&OH>PwS4q6n~ltECsHp-UoPa8Ywx0l&C_8Vvzg5x0rZ!g^7 zO;eSXT|7pd)kC`IWaja~_Ur~Y3F$aGDmwvfMe2gPUi}=~tTVgYPf@In9IpW~icpDN zuXXP9PhI49eY%5RVGZeraX`*F+t9K>m<=Fg0vuB;u)H}z;Sa6`2+ zALC8*mlqSGba%ahPCc^P&V*_Y>c7(<8wuNZUMZ&uY1>3ivA&;|iXBugb;cSDcULj`&1@>J0~taEp?Utlr4T;ZpiG95(XK zD7q1eeQ{-vX7NZOD(Oz6FcpY4Qms=CaLk0#PtA);ku0Uf<>g|fvIa-H(+_>=^+bZe|=35`w2rVH@r3b{73>ibGi9&H$T-6 zhu=aHewK}9fo$=bKvuebknNAl`NP=)8CR==_H; zqmXx9P0wVQ&VM~(*zuSM$Cs4MLYF%hy3ms0Q*02bRA9BkXyc{jgHfwk4AZPpQ7dMi zqpvJ9rKm`rUsPGa@3>gOA6J_18qh6unfVl^cM)UPpeAfcvo zL5#<^G$>XzGc}-J(RM#)UBy{DBtl|;kk^6!PUn2Fb2(alem7N}#u{sq8E;V_`WsFh z`M^CW+t4%vX@pvx9a3J%o^po#dfP0SoNoG6G*Nt+++1_RN-M+~Nck#WBE58DW6Q66 z6-SR^XgJIF_i>dEJd@ZJ*rlY*y_7dM^L-ZD3U4MC-z4l%M8Bn9a88r z2X96KlRNkR*!Q}K(@7oRNj%S*$lqKxkvp!@a(V)(mzNHl0#RU1SNV!nIh-_*9cIvC(HOB%=EkX zU-odu>f!B)_wepO4-B?jaEmzg%Ya5``(DpKzoeYR#4QkE@8Xi88G`h6mFLx1FZ83R zF?`X2^LQlT=6B`S7@wB64U+H^{{|ONBXwmbiLvYgHxz9e-=kn) z-VvUI*Yh+v$nE-=tHJ5|(G3TkHO)r=x;C2p<)f`_+80Kk{snG`I(09qJ{^Uf2Z^?E z?iD>6aLrNrhJ*auMy7 z2D7Ci1S_TNctLmiBDe#|EkVLb(jBLI7A=2rO$hmDJcO)swNX?&C?E?#pU%INQy~eH z3hIqb;sPsDd9r6FqzehfRMcGCf|FfBHk*f{$THo5G{D|nppwj3W z9!G!LH?}$wZ76<=GcMvw+M#Q_xXhV5VozmAo}Rzo^Hr)xiYeCFW<^!zsE%*X#kkZ= zQ%d8>=QOc+KgpuO2uAp#!L&OPOd}ivsa@k8OX^lB74CDj?ERvYUr%iEg`9Kd%{h>0GWaM7aeGQ{BhZAZ77UIffHm#qRBdy(&bN|(qYnk0LV zHS6`5Q+N;2EZozGJ=W|pmrg4sK{3E*huG<-yp>4Pia%TfKo=))gtX3vuB6N{t~nHY zJLD5W_H;eQg4zcbh+&pD$_IYy%&i+@n}Sv*+08g$&bTcwc~gVH#0e0Fh_g3kg( z$=Tr^ZPL<0`E&6#UfXUlLFAr522}4~4>e&324L?*6gp&R-+gNw3lNPNkWF+l3E+Oe zkYskl*5;6$`SCMFlEmQuWYG z#i)=1bUqDfKrK_N%HVSR_F=!#pkt;GzNut9=~oy`^rr>c;#e>qGCX@z*u#zVLDTQ! z5Nzn2Dy_or(h=M~RuovoQTzlOE_6V)jt$Vl+zz5^{CZ#B#e`CO?z4U{C*THlM7LjU zc{N%r0$7ZEPB#|t8CJ^_Mj@A(yW>tj!lV46vH2i{&1@6rCqsaTwhSiyaVCU^bo@Bg zalVBIWTex6)5w+i^H(F0Xbxc5w8!MJlPw-Z{;?|u#_zaVwgcmjF@|wI%|FM5VQp8Q zMeGP47kA8ybH8^=i5U2<4>JAe0#>O)7wXvdCm!Gv=Lp%1vu|;LF|!DT5%S$-2(Rpz zYV@G6nC56msh>*!Srqffap^T>EVr+pVldpDV_YcJc8Lzoy`U)%o3=?lI-Lu7gfmOV z%?lU$x!Wt$aocdGF%RpCb`9t0PEL8uHR1c2$KCL(J|n0-B-+B;0_Cb7?c%us~|)r3=`mTVrveC(pn*&OOce|Z6w+cTj? zH3k*Q=?uHH3}<)SQR zD5;_$p=q-eo}D&AAPRIM3wc<{#ruJLRE!>xTU2fjl5hVEjk2L3bxYP2=lov7>3H9$ zL|AilS*qt#a5CMMeB@MpBvcvFFh)_ppwu1bqV9(1Aeg1gmRoEi1)_y?Sje_a?%pjr zOM{5FLuLMpC$ORlGh2sGW@Dd+G^xv$pfHIB-!+pxNYPD(e{3c%6w$1q3A~qv{g4qn zPK_X+S&GICkE7}f31$?YX(;6W`u+gA@ld0NylheG#Y%-*;v$1A}#ta&WIbxE^<3`;Jakcv3>>Q1&UHlck}rX0H4E;tz?i)CoyUnMv!q z`!G*1PO6W;&YH)wp>VvuGgz;adknKOU5m0 zXcu((R^7z`Gp|ctd$eH8HuVNCqd(0zvdeGZq;Zy*Zcs>HH*Y?U=87*jZ@Re!ls*F~ zF=eA;t5cA=BGKhguDiygkMFE+;5NsiSl?J$5SzQ`)gZ~imv|rjX*B&fwa=BCle9;5 z_YN`Q4|uCMcV*3n?{YOeCLB~S%t`0cKIX4y(zCB_(m$2f0nQV4*sV1KA8^O%UC`QT zOn+3d2=(})vA=aafcV{20AbCZZ*y{Aq#g^kL}02^hz&4Og@%8)D&AK8YH zs^#o!2@BiwBz<(j zEMVZ-^?*Y*WV7HT05WwBdQY+rv(WM&3uV2Y6g=NjY9TX(^?IZcVYea`+I~-NHuPMF zt|u}i^1!?QQ4^m*Olhl+(|f6PsE~MZv!^_D?)f3Ohq(rtTxF3oy8VAX*;QICy zc*t0H4DKmXpG)&n#@j4d?p_&|tj~Qm9xNYlHM>>l76&3>E(Q%n&$6aizn&>NuWpKegR73| zhOc>{4^iWWj{q4e5Ret5{7;vb%>v24Tn|WITm>Xk=bv|&Z;E0mi+u)PX2B89t_;a{ z)G9O{EaeCg`Y?H$=-WEk(F=?rMMf9A+4!G6H!&L#H^E1jUX0!ucsVI(zB>hOdY7XY zJ3fr>>Y!zm@iuGnuf2O!9d8;_PZ~f5FC|}OP539*GvObhnemib7PvQoZ@@4`v65vF zfp1bTvmm*4Wk|k9T(dkLBr9C)6|6sd*E7w}U)?lEFDM4Lj4qgkbN70HQN0Qv^jN>$#;%YUvOP4S)J>*= zG5INfHB27cwMINazN)B}nLh{5Eu#_=8FU6C1#j;m>MwmvFn%~G-2Djrs}3;UK_BnB zojxuxqZ`VeQ;=WOZFT_9kSsd0Ei_P!HN*3s(=Fmww}@ng>(rWvhBVSlryxSx>m;1w zFny~=qjBSl-UwAKUL`zt_xQ5k8@|jLCglu z_Par$hI>#NhIb?dO>}&nty8$~wX}zJqCbtMciy|IG4K;YQUT4_=*GEF^q7%x>;&Pw zJQFyN48Vw#?M2bJgcZ^9DF-BuxQ0%@$JfS&g)DE@$hhmh>+K70Hkj%98;|gaFB+A< zxiTt$MyUMTtD!QtpnsEuUwF|aKEmH^r{`2XbzQ@4oLD~gUf^-_HofD-u=Epue8ijr z&+wgOmKLakcQoJPqcdB!Ieq@Uq*WFihe-h{o*K~`?c!gf$ukPl6l*&1$=QSn8B&z^s5`jiCyY=S!!@W zc}G`VC@9yS^_Om^NwL$WVjq1p;C@><6*%&AMdu z6c`OmCSH^DIb=Zpk{VFHKn*lz1jyfxdf*88Wt|zshI7y&WHYC`AsDIC6D7*WlAoD| z%rOo0d`k@tM_q8ZD@gkIQjAz%tXr{WZ_Gmp-n2}{8$wttmB(t_gp;OB)$*0}?q3s_ zWJBXAbrQmv_sOBz(Go9+CD|(!cUO^hLj+w$ewF{}lgIoLqBO=d-k5*GsWn5AqGHz4 zI2A&PX2>%67a1$IF)VY&_&$8n<4Eg_zD2Tcmg03S#V4sTU~*dO<7+JUKO?z6whoct ztK6`(UlsoDTEtzxeut%&*kze3m!^CzkqM;C=%I=+fcE<4<4=tXw=P|Xba@lrS0!9? z37)$Wut&}GU9Dh9MK#tqGX(KF$+DQNu@(=$%mT*i-@mHoO5(|VRKu3$Z97>4NU6;s8^NFd~~kQaz5 zD&tW_$)eg&s-OXkrV1m8LqrwBk~BOX2@p*cR6CO@Ltn5ZAprHWOwk>l!DL zMIwVJyKDjHJ!;5rgfs*nX{91ZF4S}H)GHsz1hvI|-30jb#KOju}1 ztD*$pzWsgbyQ{=|7hE}?VxE)tZjmZBQZ3QSmmzTUBg`xM(-edUV`0P8$L`W(WkX}A zAyU*_Q4JwkH*~@I$*%O3a;iwm>XLcLZbYdFYWR{Da47l{<)bYk{X-G`7UO=?3)RS? zmo8oC>(;Q84Ksw9fwy?JhHRR3zk^_HWGlRYqZ>IjFCfV2LP70ajvy9YauFEGUy1Fn z&*_h|9m{KL-mBgMxS905d%VuY)dFqlZ9gz){Z$`6V>q zPsc7H6)@e{v_V)SZ*>HuGq}F}e!yO9M8w0jjbuPx=PWBF|10e`0yDl$9MbtXndBWt z1Hz0LH)U7i?LR(sL7qrr#G3;^lPhX&57~|Q;Hbh<=(YpS%87KIf5h$rXK%)X0wIr* zBtRXZgw7F~=oW<(6;HOK>juAeMQ=tz&pst1#svPSd{8ZHHc?VWxLJ-k*>lijT5mg@ zJ~qX}X3y_8nu_!b`?%r5*b&R2yy=YJt9&`YMnNynviu1o_tRnEM@xp;@qRXvhIGA` z>N-DBsY}0T?23mUUq2m~qaFq=dnS57O!O%aJpX)iGZ9}m*K-?``;me|5FWDqc!$&8 z7rt>je%+6~F!DD?v`D45ytKNwzOq)~)RhQA2}Qq4jvWeY44Vax2i0C5bw`zPby2JX zUzEfXa4dD)@;avo0V$9+SLfvXeYl2{PTfRIQlSg&A|BJ_$^{KB2bcc;4G>Zc{1{?j zaONf<!IQ6H6Y3CO%VUnUR4pAE3AjP)aPOx{ufQL1ldlMZ!?G%Qs} zesav=LZ!G=8GX&f`q<49GUA5Mf(e!H)?SX!$DG$VUM~x4TFe9_oF3 zH}ai{CxZ#DGTuf|!k4^&LeY0AlC)SuC~8qB(n@<7GmBj2UCh|}MsJ`f4$5Gs45{SW z`Ne&Ub6R>j^%mCoDA*Ow8@ei&MmS#}B?1ab-3z)td}VOZuz!Zs3JMQJ(XNNe$34Hz z8ovr?J>(G9bGIO)W{kC;EUFtdE;%0gZ(cNxa&KySe-aVf4N25nAmJ7#>SaE>?nJ$R z^$Pma&Y6&XEXictW$7qHd?9Sps1lh9k_b)B1 zB?B~mnLLq7DjUHx)-LZ|%V6VD4tli0hk%a8Y8xaZvc zckUm;Uvj_It(ID{CUTWTyt6kPF;+Cwt?sJQN7b)tX}2|`iqv@a%x=Iudy1*Aj1f8U zlA8$85_5d?BW%G(HBS_7F5zl?l+_oB#&}9qRFVxtPl>d;K**)2r8QhGy!|?HOJ^i- z5lliJyLReWTJ2G{Kc-M%0HC|$VD32nqrq#5twz(FjSfsZBa^u?DSedt&%QVPW|aMn}21gQGW8z4c ztz4s^ib_s4lB$s6C~8{Cuw-nE2c|o9gbKm%N1uEvZU6$c6!ALsTQ$$;QoGX&L^VU^6X~;ae&h4>a3#nrM$a@1wu?jq5w|M=1M)!XhWI*`$41J?#FN8r#r@*v#ldd}MS@=l!P<)!P;sEXQI(Srmm9_dY2&mKDdo!|UBv4MgpVND!_KzXtu=xgAmV@`H8sDlwlqI4@PYmy4PCGrXrK%NJem2WB=*#z?i2Lz&VQeMlOJFlu4*Y|gxt zj0$+9>D4jj?QN>jaMkHa{lo#50y$U>q&qm>H^+1gbDB#R3p!_xJ)7dqJiAn=zI_<- zIFxV6PMUFrq2+%@MERY-{HD@HySwHn3eSK?mOh7h$;%lMlRf7}ddVTrxpI}9Z0>ws zl@zbZr1-H)#v{&GdPRf@RT!j56->ABNIr=d^Q2nckiN4G4V)WpY>Fg{3@m>o zbvw0Cc!oBe5&I^W?8z}rp2jpA;>tdv{%fEA0$1p*Q|IMoP$AL(({IH)sU&Ns-y*pv zMdgG$p_%U)MdoA?*G-=oMMi1auK=LtP88KdXHf#g>3sB6*^YrN7al z*Pj(AAp1fS%h4p{kqW8mtJwJm3#omtH^8Prw8(m+gMq5h_b^K*UKve0`_M87e1*9? z=wWVqSipt(hO|-8V1v4w5$Fv8j`|+DrZMoo?m0U48dg>4m@ciPDd&voh4vghYDQ`> zOT6ZbTXN|~=gxzxk+y^Qv#dcNBMYu$>fz>UMky^%Gt|SK)eK@jP}DsH;*2zd8!KkV zJL!zmPo8>^n7o#k09l;!FuTw8&vfZ@_4v+qj#I~$lmVtmIN8WN`kbWEk|W2%$cXXY zGEzLKlJQ{Ks0ZEc#X3M)m8#5{Q*t)Ys`({Yw5r+LZCmoOVMR>^oI8P=~xvx5-oYt+L4e&6Yhx?v|!bA~WUsJA`4 z_B}#rcCjHNg%wt4nTZ@I=kjd+FuoJc+K-YN#xEFG`-Q}pfMr=$FdH*CH>CN8NH@s9 zBF*j+xt6FfeJCp`g&q~MhgOTt7Yya^mKPEk@cfNu5?S!v<0UuXkysQHJgB2cH96?f zSqWajx|;hBA8UyZ>S8?$nKkkFGCquf>&jQ<5X#I&mw`V~aW#sxixumL0Ur>oboiD+rOMf82X)c>?%#YL>nEi+q#LUL0Giv^tW5xneD*pC*n*Y zT3Rev4mL+(OptR~UOqq?s|s>^YQ*2+|VvN82@RWj_$ zWVof0@i6sE9f-O@%jQ*x(Wo_monAJgMe@|I^FFZUPQ%Ey(6!wNowdRGXftpY=H@RZ zUD_N}A?A7E)M^rDV#x26D`sr(`ovg0{w2~G(pktFTQw5Akb&h}n6DaDLQ z?S`m}&Uja6DZ|dda7JQ4&(iETHLOT zsz#lRN=5-ZF5Rf>8F=p3!*-{?jq$hsMrTt7pyj3FUZpgEp31vI46_h zv`WS^l#RLyrP%U(H`+HDv7sqgJ?;E%HqEAO?d(mnSiEjDO1JC z#tN*gDk{h`tF=zQ)oCJtSv>kI1k8n{;!a}{ zUxJwPoI*ij_F*t1)d|vBps`Eh=87j7oG$|#$Ot#Kd>P)ul*Ns%`~$P1`!szlt={KX zC~tg}RbUR9N{izmo*=?#{XWk!&6~`qfQP5BPGj(Kj4o<3gpCfSM0fg#c}A0`F?kUO z#*!~M*cGoi3TSn|5L8PS3VMnkc`=2lWm(~3OV=mH-VadbB|CG*ln9REE^*Pus772U zh}27h%#ivaxF7_h$X7&)%)!=6$fyLvCmUKV+GAX{JlJRiWL|`Mmydx4lve;f=~D?q4`h{b znwBou5v9N9={f5%eZxy`-fI#wnNp!>(82C|cRSuaNX=5)?k{8I;Kb8@oNs5{bH{tNGU$Wlbt^MM({ZdkBMBGpU| zOG;OM|9N692}EryVeTyyNNJuNJfI^f@T}0hjEn+!G`Up|20a=U*Fo!bm=6jmz4rYu z+-bH45mQ)8PYZ^lrcS4Pm6r=jfQs3Np~`W}r6g0v+#2%*bmhqmM2ku7!KuelPzDrY zswi_f%1d0%7@lZsV7n%e6_X;GFbJxC!u_0Y^Yk(+(u++LRq^xXD!%_TvEDXmIqqS3 z>GjewJVGq_TqeV7DjAO>Ki97XwB-dBP`KZG`Q_CcFrdJ5^p;;OFKA-v7p75Q&ryq?g$3qM&59VdLB|=Z;7($iQkD|P zA|CI2jKCJy;|>8;5z1@e*Ls5%cI7hk06aL;^ez?nA$Li32|(uA<+7QAbAy#_kxtTB z$rOfG7T7{UXA8O;QbIDYSt@{yWo;&$;_@ZiLkW4d5c5VE($BoahBp#JV$ufk5$VO| zjjE!~Nbp|Om7HweR3Sw-YVOEP#fYCrofabO+!+Bmy0Jr@wZ_Fi4@c!5W(s3L0R;<= zVZ#^?TA3>d92ki$fz8>y76&Qq!!Rbwuw=t$S1IClPa+f*K^eDGo(y}m2$DfsdWNEi z$2_ISaM=%=*$2Q>Q_aan%!!xFHh$hDz)T?<0i=(qWIVY1Xx1e)2g4n|v)NV=j^V@% z5IJIDE+z`geOZ|=h|u*G$tfYq>1cUUei>|r;M`#3yhzr_z-j^I-3Mwg8N z^%w$5!~cA68fHR3Ds&qIs)}q08PaJpo@@|QA;tNqZ6Y%jBYqwZ?&|3zqkbnulRm(X zP^q5WkcA-GGd4q#tjj!I#%_!R;t>pHVIGaomOSZ>NiCS^?T zXMPz_G5au%id5oAXS*t?fK*BKT~&SjR_dxyl=1TP*bkFn^22$htZS|+N!bVhsjXnN zKH2n`E-k}Pi5+jrWOzm;<8k9|{i7>4uY7&=X3g{cfscu5yVe8-?ZK#v?F)uOui?{f zD|!#u7%42*Wo4mYwcy7j!o+d8C@mfg%03KjJ{4&QIa#d9FB37xETc?`jMgk@ks%v# zU(15M((ogmfy7RXvaTz<#OA#uu`VWpHbu&@9T-)?R+$P;Hh^GZrDb?Ma$jUp)Ft3< zD)(Le%a1;eo)Uy&Lo_;?FuOkL06b6PH9nD~64IO+TLS#lJ`75t97>K3<=xg* z6-WMZTG(rLbU_&}<(L=yVG2xUNVQ;7qnc_yB*)EtAjhbF!=nhx=quRpd=JA!YWdFE zl`pTk8~&i@2F4jIzHl zV$|%16)|xmRg4XsYO47VIve`{ov#og&TI6sjauo=wO1AjCc7MYEk%|mbM6dtv=4(1 zhf#dg@JElO${Ifqd|h65iHLaF>9FR^h(^rOpt%P{$HP9%Ao4yuZ8maF1q zv*B848Ez37K9$3nqmmUR+T;(E9VAo2@g zqXOrK7A=vyk%8rEjJr3@>QMr~&xOv#f;~;8&Qod(4rLLyd5H};Bo@KM2BafWf(;H; zMV%1?t?5cmHaMz~;?I#&Au|;tejYxWrl(d-pijDMX(vV9^N5AWuc4bzMv;OQf|1k` zj+}}5Ws6FKg!W-@66IIY{TNdS;)xN7OCrJDq+GGr4eCNOo|~8~`(ZHqK$mK&`H(O7 z_JuEBG`2hnK#S0k{ojB4?@*7UItUo)VsN+Iyp_cQzC81K%1e1;Pi3*ef^)-`=P0j| zWEoQcik?Zrs9;9QqD_{kP-F>Ll%bs9B{nZ}Lo?oMh)I)oR7_*!`NTp%}`k^7|$7! z)DnN?ZAOX4aK#tt0hw7%pxwn#y{gGBOB6*j5)4u*uSGCze`V1g)#>vzAA2pzY_@ob z4P7K=!(nd3Af!&Q_WRztUzTl+ALoxj><%~nDAy%P&SCcK8!!3rBl|U$uE!|J*L^oMp&*T zEZkX2AV>_U=~0WKHSsJXW)L#j2h-XI5>-{v$)?eTQNi*|H{S9#WurO(T}oi7ifv^Xe_IGFrwbN`j`kQEa zU3MEA8wi1mdA->A!}l;Ujg3JtCk9h}g}WiHEEFtl{0B)i;m~RYB}Ikp!}5(p+Dntk zDxkYtly0slF$YhHlEV6vD3PPoSAsl|+W1Pp@T@4ysvTZ(!zzgpGFgQ>igcAjE1i|# z{jRGy*}VF9kfTumk6O1dhIO}tU{mJV!7?S!q0Nbgs<%iouXnLvf=nc>ghr?DTL%2x zKC0zR-mS61BC0;_D;%X-w5QGJ3NxOKEJ4^A7>1aHJfoOEikON{Hb+jqSy5Z-8Dzw; zH)AeOs$@K48DeV?uMv8+h#)m0NPulZoM_Q7?Sc07r&k>OtVJGCqbqiD3TE{#koXd; zEbt2kGqMlEnhPSmASbJ>HLf&nT1>7bCS)LYVC=cQb3Aj%;%Azdyo@z5(et%PF*)wb zmu0Fr+0Y59lHpJ$!=6gUgU&aI_>WO6C)^o&@BaSVzt+C5ef;_LD>rc(cPF#DaSDPs z;7KGYC2To0_Wm|MaBdJ1NrLfQr4c27;UO(HV{L$BG{*l`=`*>bUki0Yj2`kueJ6D@zF zeMNqpUHcwRjKAaHq|*;VU#%s^KYD}ypxO2Zn3aRgjb?Sq+cAxpL+QoA9@0GOJ&d1JF)HHb% z88O~3=JjAIIoaeqQ}wGkhX zfD$+BnfzPZ@WHv^&xa!EA_J?L7T;0L`H3rwA4%OSdmY4kJhf#J@eVJ!d3GdPXX2qD z5`B(i_17|0oNPG2#;TIyKV(w;yGq8x!{6%P3^9|?bE7?RmG4B82^)wM;RZX1PP0wH zYSi^lF>85#=Hkqp3SWZ-&4_a&>S8XQ{6nHlK=NL>LP9n6VSppm7}8nD8B;cFpqVQ` zHx?kR2*2wgGbx%f6M}d~lZBHOhTzpMu{tK6q>9P`RLN>SL=*%V%^&00n|YfV1@JJ{ z!$4PSggsaKqu#pb)2u|qumrdUe$>7TXioIn_s#82Z5Zw}+XD%imX`|#;v-8;$TZI` z7qYOAYGJgiIJB@LD<*D1^E*&!CtDdircd?WdE- zNB~(=$;sx=QdLr1kV$b?CF2=N&FoH#a5so-2o zCOPy?_zPBY*kQ`sXisY`&)&wR z_PqLBRG&-gbA>*ULAIg~`2o2^Eg%_(jS6@sbG!awgVuf0Bpe+uxEe3yLcv(ofpaM@ z*<0$1Ly~yJ!So%?|8}0LoG2!rVsS1NLxAF`dgVQPQ3S1l@#$9$mD1e^4K-1e@vSv zGzTq;rqdgqN9enTk10Rs^6hP7u1L!Zu_g;sd|KYn>$ig1pzo+nFK6P`6=$IPLP0PL zT?>m`E0hVJ8`i-s-Mg^S>>)fH(I8CcD?yn@nJe`(Re zBgz%63(=wh9g7xuOF3q*H*NE*E8B$gc*zaNB*w|47~~_;Sq{f^Rt(ywt2x;m`*)C| zQ2>u-TXk$cYp+!g&bv3SuR7gMe~W15HJWWF7_A3r%fVraS;g#TDjpakJ4|>r%_k(Ut=(uxPrE@TGKc-Y8NN7r8PK$?U+Lz+PHn2Js|dk(!V zX&U4Z`~Wg~VCK@>#T~-Vd51cf?MEw*J)CZ%rGgIbmq>aEcjmL)DJ&I?$UY2vT#;6g zlSQ8V!nj!x<)`^pQSLZ61I`iXubW(IsC<;ACE&g+ZZ-B zu`%6X6b!OMQgZ0^7Bftcn z*(jRu>?%5=SJ4-}Ft;!_(`&s~uhnoT{dk{kzm9V!byr-l5A*DHGd9wGc~|Lg{qY4> z^EYd``QRKxp%7gi&9frf;@@!cxAU}G1Xi72(cCUuG z`;pV8lxN0N8B#3%HrjbpX4+2soKBu69VB}!2}pgP91hxDaCrsUeRJe}SQ|Oc+TY^i zsnBoqgRYt}QbT05P3&|^kDJmb{vHYkVWW$a&mO^tV}9+m)TI&0#P!b1SI}&&y#h#*@;5b3MM24MiFtg#S@Z^*+j>F$Jx+5?85&mu4JbjJL zB!{CAXO!omuoHI84UTTos$rV>AANh2)-S0&C!-6;bRlc>W{)m8(WQ}3b)`J9%}cYk z-e_*ouc#dA#elyjHwJ@{`T$bjenwJos9k~;2(@iu11_kmQ#31hSkv7AA!SARzo4%o zrX6kZ9n|iDE;S5V1%axyDngVnb@6fE8xH)i*7fdsN-qcK#_dMex@NQRunpQSI>$eN1)w5O@tcmJeF^y}o#K z6mCpkoDMqCzh6xMsOI_pz^@@NVyo+sI&d7ON;OGyIG)gI%;b7V<*I*iI`fNNS<)K? z4>CTd^xe`WwDWo~{exXuA&=u!XFLu;8)EK42D%hZ7qJ~jc&4GnR&?!v*VkV@NnJdC ztEPv@aQjZI!NYivH%s9^YcWl z)d^^72P$vX=CR~iS0s5H0toPAE0mxbR9GiUQllO+D%5TKkK-BDV}<|=o=@#~=%4bB zs*UfD`Hg$lMfDh+Ac(+{`N)$Wn7SK=`?`<^ zz5ZRCt&P_4c|^liv5HLSIHovt@OX!{u;Fid3f_?kpP*hA)IqJ5hv{#SP=Ce$I8LU% zqds@*OWb24bLlWap=JH%G5SGrJI~U`Tl8^;K2{xkd_W&ax%WTEbOQQw z<2XL9)5qH<@Nt$texi?C^nqN{f6#!Si`0(5pQ9uz3Ylc&2WjDQ`+xsSNeZX*W5_9e zM)HZSL}w(K=t^`(GKsDvXAlEjBT3L-k^}uEDMY`${~0PwzoRF#9^a zcTF0)ZXRm;I^o^=4v6io54tgnt*@TSe3eOgH0Mr7P06fmPNwb-*Ucxush8i=**nDF zl7TqzAew^_`2_eEj$>#vcXb~*<&WdBRr`BfAdAw+4gF_o*zobL1giot*c7XM6yHt- zJ80SV%y)50+bM4!Y9BUj+uiN!GvA=ej37)Q1{h7}y?Oz-6pD$OAlSYL?_y+a^?xx^ z#bv??RgET$@qK(y znNj2w+%#CvYZm4<=8nRryKH#^N8nz*6;4$AS5KaJFL~lbXQjlleb}er#s| diff --git a/build/.doctrees/codecamps/CodeCamp2021-1.doctree b/build/.doctrees/codecamps/CodeCamp2021-1.doctree deleted file mode 100644 index 085404ea9e2736528dc42221586e13063fdf9ea9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19806 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 diff --git a/build/.doctrees/codecamps/CodeCampJune2023.doctree b/build/.doctrees/codecamps/CodeCampJune2023.doctree deleted file mode 100644 index e8c31ac320238822a9da8b9259ecf049aabea5f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32283 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 diff --git a/build/.doctrees/codecamps/Code_Camp_2015.doctree b/build/.doctrees/codecamps/Code_Camp_2015.doctree deleted file mode 100644 index d705a996a2e68b739839b42fc535c46ddc049638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68683 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 diff --git a/build/.doctrees/codecamps/Code_Camp_2017.doctree b/build/.doctrees/codecamps/Code_Camp_2017.doctree deleted file mode 100644 index 1b2721bd21dea1031e4ee17189a6469eb030d329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62971 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 diff --git a/build/.doctrees/faq/FAQ.doctree b/build/.doctrees/faq/FAQ.doctree deleted file mode 100644 index 1174f6b46d2135a43df2b03ba70044601cfaa753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38157 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 diff --git a/build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree b/build/.doctrees/html_static_pandoc/2014_How_to_find_default_data.doctree deleted file mode 100644 index dc30274a8b6ac4d8e84c9ae1a076291676cf22e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20487 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 diff --git a/build/.doctrees/html_static_pandoc/Archive_Definition.doctree b/build/.doctrees/html_static_pandoc/Archive_Definition.doctree deleted file mode 100644 index 39f3930164db56f1a0719f400ab50a6ceb29d371..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65774 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 diff --git a/build/.doctrees/html_static_pandoc/Associating_Axes_with_Data.doctree b/build/.doctrees/html_static_pandoc/Associating_Axes_with_Data.doctree deleted file mode 100644 index 4f850fe9035b161755b14ce4029be53a6572cc1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16440 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 QXmv!fYa|ryiDJ0%|M7n-YybcN diff --git a/build/.doctrees/html_static_pandoc/Connecting_NXdata_to_NXdetector.doctree b/build/.doctrees/html_static_pandoc/Connecting_NXdata_to_NXdetector.doctree deleted file mode 100644 index 2a7c5ae82dcfe70c3a849f55676922a5d9532520..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39268 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 Lw`raWC!_yAAG#n4 diff --git a/build/.doctrees/html_static_pandoc/Detector_Geometry.doctree b/build/.doctrees/html_static_pandoc/Detector_Geometry.doctree deleted file mode 100644 index 495be1faf98df5bed6cb7294a24526f2aa23fef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17982 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 diff --git a/build/.doctrees/html_static_pandoc/Download.doctree b/build/.doctrees/html_static_pandoc/Download.doctree deleted file mode 100644 index bbdeabe229df84abf010453da74282e0461d1a14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19886 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 SY(~o?L#b^Fy{5!H?0*9wi`-cN diff --git a/build/.doctrees/html_static_pandoc/File_id_attribute_for_Nexus_files.doctree b/build/.doctrees/html_static_pandoc/File_id_attribute_for_Nexus_files.doctree deleted file mode 100644 index 0ad79010439fd86fb949c9de3023eefc691bb751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14572 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 diff --git a/build/.doctrees/html_static_pandoc/GenericScan.doctree b/build/.doctrees/html_static_pandoc/GenericScan.doctree deleted file mode 100644 index f01c1ba3c56a25e480070042892282ce09b6e903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34677 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 diff --git a/build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree b/build/.doctrees/html_static_pandoc/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.doctree deleted file mode 100644 index 8d81f4803077f2d40cb2788ecf4f50ffad21e320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25262 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

N8o!_xr|51UogAVEcpWawodaVy63>3@Mf~Nj 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 diff --git a/build/.doctrees/html_static_pandoc/IssueReporting.doctree b/build/.doctrees/html_static_pandoc/IssueReporting.doctree deleted file mode 100644 index af7c4ba5a84b7dedb6fa09d6676336c1fc58be86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11272 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 K<6cC!TKWHqit=y( diff --git a/build/.doctrees/html_static_pandoc/Java_API.doctree b/build/.doctrees/html_static_pandoc/Java_API.doctree deleted file mode 100644 index 9b92f42a3391c058d6512701bec20bccf8c7d751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22385 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 vGjLUTJJa)ZZIs1R*D+@Mck&~E*Ir4@RP diff --git a/build/.doctrees/html_static_pandoc/Latest_News.doctree b/build/.doctrees/html_static_pandoc/Latest_News.doctree deleted file mode 100644 index 04057f5c1a9db06f5c44b245243a5d5a57901df0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144878 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 diff --git a/build/.doctrees/html_static_pandoc/Linking_External_Files.doctree b/build/.doctrees/html_static_pandoc/Linking_External_Files.doctree deleted file mode 100644 index 378ef1bc24f3114f7dc48aac9167cb9bcc92ac65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36084 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 diff --git a/build/.doctrees/html_static_pandoc/Metaformat.doctree b/build/.doctrees/html_static_pandoc/Metaformat.doctree deleted file mode 100644 index e0ba0c7a9553ea3fcbe7114e00e9d2f54bce1311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27433 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 diff --git a/build/.doctrees/html_static_pandoc/MonoXPSD.doctree b/build/.doctrees/html_static_pandoc/MonoXPSD.doctree deleted file mode 100644 index cfde5475247a6ecfafaad898184ca4b47e3a3567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44740 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 diff --git a/build/.doctrees/html_static_pandoc/MonoXSingle.doctree b/build/.doctrees/html_static_pandoc/MonoXSingle.doctree deleted file mode 100644 index 29c2f758746d2b8e79d7e2e5e77a0516e9164f7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35678 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 diff --git a/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Reflectometry.doctree b/build/.doctrees/html_static_pandoc/Monochromatic_Neutron_and_X-ray_Reflectometry.doctree deleted file mode 100644 index fd5845d35a82c0e8fb9afd2e969fe11bd4122bb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30776 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 diff --git a/build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree b/build/.doctrees/html_static_pandoc/Multi_Method_Instruments.doctree deleted file mode 100644 index 5641ad0c613c58c63f62e4e238a0585c153c6fe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31916 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 %AAgId-XvzZsu>2s5GilmD%%iscn3|vYK-Mp z_l3!!J5Zq6m0_d{BgAMK#=Fqis?MRQ2v^rd0xHhCl^bn-wrMqWohp@$_zzzExfMsxy?1&%)8YKgCk$`#Rc zh@a7LvR+bUWi)X_DAo_uZO@b#p7$f(#mW5Bq0-7KDWZdnTxv}o5T=jXGrgC@E<&S1 z2Nyjb0kVr>N*k%ATy6pc!M1|U5KQ&a2By85EE?%FGytyB6BfaJCtW_kHpC4Z;pfnY zp1i_EFHn@hbMi49G1ZxN{JS-HMk&i^($}EPtkB3%Kz0fa{$6w4g<;^?L#K+oUzqWL z^D9K@1psB_B(4$=ap-wteDgQAKY z#bRA2hKQoXDZYJ{Ux!a-z}aPFN zr3zaOkI?CioHs2*h(_xFAWYX}Hk1iM_z)r}DXE)uB?i@QBr~DY2!D8h7CLo-kRpjQ zncT{B6w(^!3o_rMJ`z70(h1@huBh`wBRE{-gc(cc`$HEX6kN+8%Yp}P4k(H9i!-C4 zvxH%A8%)E$-(lc3ZCuKxYEN)71w3-x}W>9tMg zdG%sV7w`}U{KE)EXhRo-ZjS^yG^k+eY*?fdZ}6m-j|@(zyE7cS&8mLV#Toucw#HF* zzjBmU{RJl-@<&`$^hXhhxVT8uU=$c=`9U*In&RJ6s0o9pLhH`L`eDII8kreBHyQQ@ bJg4(GtrBvWG4=m?31zxEDbW2W{+QrD(lNO! diff --git a/build/.doctrees/html_static_pandoc/NAPI_Routines.doctree b/build/.doctrees/html_static_pandoc/NAPI_Routines.doctree deleted file mode 100644 index 80ebb512d8a3a7c851200e28a10b5c50a48d490c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429294 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 diff --git a/build/.doctrees/html_static_pandoc/NAPI_Utility_Routines.doctree b/build/.doctrees/html_static_pandoc/NAPI_Utility_Routines.doctree deleted file mode 100644 index cb6347bc56ba358fd355322b21b254753f29cda7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201691 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 diff --git a/build/.doctrees/html_static_pandoc/NXaperture_and_Slits.doctree b/build/.doctrees/html_static_pandoc/NXaperture_and_Slits.doctree deleted file mode 100644 index 1423ed7b53d3b63455a05b6c1c404a83927ed445..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21736 zcmeHPZFd{Tb(SoVA|M``dW&OQPBtfMhoS|*vDG$*cHHPFiKU~Ibz?==hdQeTc7R=Q zu?z2uNV@Xr*Z!6Mjeh9w>T~bR><*S#kOWl6@iEU41nkb-nYnNC+_^I&)`WO^f&avt z*)#~_qps)sapKENhz&m(6cZWeLWsLUd@FWDEAQ$ zRGGBsr{Mr3UhK=~Mdp0c`}BqD5&`wM7kd-A=fv`;$V@d=GRz!bzLZfimA>O;ju$&& zoXa%!@-T_L$jNdq_Px}1`o~T-2*HOi%QHP^$(8Fhu<*66ZS0cTiq

x0O@exp^lTJzD%7w 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 Hmr?#7hpb)F diff --git a/build/.doctrees/html_static_pandoc/NXbrowse.doctree b/build/.doctrees/html_static_pandoc/NXbrowse.doctree deleted file mode 100644 index 20e8f1b96449f9889cc9d36b37329ae7f190b722..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17989 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 F{sZ4|o96%k diff --git a/build/.doctrees/html_static_pandoc/NXbrowse.f90.doctree b/build/.doctrees/html_static_pandoc/NXbrowse.f90.doctree deleted file mode 100644 index bcba0097cedf2f79fdc86837b26785e7b0dbb595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139351 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 C;+)g~ diff --git a/build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree b/build/.doctrees/html_static_pandoc/NXdetector_documentation.doctree deleted file mode 100644 index 1ddafa41b9272ec7128e99cfd4adc6f1c412fa15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26018 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 z 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 Rv5K*9(4GtTuH~K9{{d^lII92v diff --git a/build/.doctrees/html_static_pandoc/NXlrcs.f90.doctree b/build/.doctrees/html_static_pandoc/NXlrcs.f90.doctree deleted file mode 100644 index eed6adc0c36bf81f60cca3abea88388f12805493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72661 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 L6mSU7NBjQ=orRt4 diff --git a/build/.doctrees/html_static_pandoc/NXmeasurement.doctree b/build/.doctrees/html_static_pandoc/NXmeasurement.doctree deleted file mode 100644 index 45b1d1b39e94dd2ea761429897841b3b73941592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16759 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 diff --git a/build/.doctrees/html_static_pandoc/NXmonoref_example-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXmonoref_example-NIAC2006.doctree deleted file mode 100644 index c66b5f035313dc867f25dd8d56afa3fa4ba2b9c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43588 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 T%z|`x;8LV3f&wk!`E>OEpmbj- diff --git a/build/.doctrees/html_static_pandoc/NXmonotas_example-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXmonotas_example-NIAC2006.doctree deleted file mode 100644 index 87395bb2fb65a95602db9aab71feade384984d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54028 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 WmSiwzGspG;IwHG^yfFfm<%OQ8A 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 Zbjj$HPLIAumv%&mfx>-mvfziD{vRMDB$5CC diff --git a/build/.doctrees/html_static_pandoc/NXtofnref-NIAC2006.doctree b/build/.doctrees/html_static_pandoc/NXtofnref-NIAC2006.doctree deleted file mode 100644 index b17267066284f08021c2df30e9dbbc4d5bff8525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38224 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 aI04d69TJ!!DgC-bXU=9ufwu6p*ZCg`X|Hhr diff --git a/build/.doctrees/html_static_pandoc/NXtranslate.doctree b/build/.doctrees/html_static_pandoc/NXtranslate.doctree deleted file mode 100644 index 317fdd400ac63e30f3df552b0b93215b16d24dd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15442 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 Zp%5-L_W{?qan;7$v8Ed}J}B11{y(FEt04dY diff --git a/build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree b/build/.doctrees/html_static_pandoc/NeXus_CIF_Integration.doctree deleted file mode 100644 index 633305e63fa1a8cc2578fbfa5f63d96384f6386c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28998 zcmeHQ3zO4Ep64|KV<-Y7q;e$LXt(CB$%Yy8NOqG6mn@kHFb7O_37gE;ZPv(A+tMIQ zjvn*as#N7`T-DtNxUX>^C7tcl_d3@X9um8Wmyw?*xe{g zxr6ExXWiI$0OIME+|Cl~cKeH`oelv|f7U{KAlIx=?q`V^rh58`<;q-OquJM?Xb|629ZK|uY4clrn6omCM3WlzGClWEuH-dphAV_jSlr=G}t@&jUliA|r_ zAuJAUj7f!OiKR~NFT9gtQM-vPaVmfZ5L;Q-7A-qXW51iFa4+OePWo;F*C9?jft@61 z#ODRF*!<~?n+=OEUE6tvCGsz)sJU3nBHFXq7vgwZWa4yc_xX44SKf!-70m0cU^1`G zz{wE^+q(e^bF19&2^xO?gUGyp_uj#z(vI+VZZEcH~lOgwrd@XlNrLobWyuznUJ!v3V>oZyD!aTF4{mV91trL%oyB=0{whToFaPJNS}acMVdMLsETdNne>N{13V4ThUz)rq z4~vxZff`#SHP(TCIYL@-{N4&BH(Jw87xubq7QtRg{WN%vGtd-wQp?WzNNlcIH*ezq z>o;y$38fMPIe_&_ETkWlrf@2-=LZ3Pkg2tY1cHX=DHW{KE;1+Go6tpaF~~wcJ)q2n zVQl_+{c$x*gAGs2;GbaiHm@=I(b!ECIWoRji5>QODN~?I{ zA%7yP%4D+eWgzVkm=Rp$HrW7KnPsLj==}2Ye2@OF{QQyfO9*>Rp)!nyP%(_cDX=>Mo^q_Ozphe%zyPM|VD&>$r8S#Bf~ zreQt-rJ|I;Tb_?pHAeNo0oIghBHIQpFbiQ~$4EsP35+C2NyO_xiVX}wL>s(RNZb2{bqqfg1s1 zq?g#WK^es_B_@WyBny;DM|*}MSYpH&NfypfIv}f!b@-u5hl$5X(rrz6nv^m3>|LpW z(9(EHh`=zzO0alTA`pgCjRNHf#|}|h;T56qp_VkTpJDZ(DH9;5&IUu0C_{Jy6|0Lg zC(XcbL%pvelpKhJ!~zA5mIK*lnY3dnUjR=Nf zn%UF@5D3E2wLp*i8+TVeQIl_PJiNwBK{KfoqL>xi z4QvPnq_Hod$i@&V)C>Tcn5-CKsVRW*q@}r}6RH5+B{!m6ymY@LfhvR?qj~z#J|*1P z`_det+$(`$Z8OBiV6Xz9H=$~~UZLtv?(+JRyNXl*|ThlLQ&m*JHI70L>Mu&L$i?^6%6Ei&BzEM#T>H z;HoWDbw(+iAY@z91_oAwbQsQrRMgg!^ty+wb#ns!KrpV<(*K;9Ems{-_SoqBg*+DJ-=b+zndE+MHymQVK|@^ zie+TUDfT0y!@@18!pATjkK#bq3y8rVArRRBkr*)q0!rqQWtsR9CVLPlL|Z+2G(n4@ z(4H8?ZgS7)8VyP$ekC*L1k#QHZjbDP8pF{#1>A6vo9wM%MB8eM0HZkm z;AJvu3RChDHmk1=|5@*#Ot9P<1iny+wq^o(k~A{ZyAdt=FmJ%q6$PBg01}r~PxFbA zE`9>Cq8|;ZJ~ZPK5X6l^9F|lZ@67(4hPaRCc;w1q{d))N^xkwSb!;vpW1 zYtJI-P)jB1tZ&@41_)wukFE<$iT#iF^jSQC+Nua9fa9|dvJ zb;xVe7?Rgq7Y)UWcAE0~jW%-5Pu8qE*4Fl5zicE+wvla4my$mOjDDYTgfs%BKxhKO z=5_s>N1*GsD)=wi+A{d^5D5;dM zB-Pq!k&PvH1^$Bal+O0Z6k`dTR)YW^uc{hS@jz|k4X!U7T}RM#RZ={rh_E)Mf>2IT z3#ld#Q>s2p1>CyRpm5NvYGBl%e#wCSb;Ejr2@lz>l6x{0+Bu2^Wi}j9DbUQAS|-Sy zKKu(T-dr_;BMJmLXeh=U)d376b9rQGK=*4@7ie4*0BX=z%H!%*1We*iWu;o>fEjB6 zAXn2uz)V$uGS_RC0CW;ao~UO2&nrEY{40rRmicpGsY%*jC+Ek)nG@d~=&f)U}UK68k_Kx8-Q+JH4o41c9?PW=ZPL9vmwNyhQ z4yEf@h?1`cx%y0rIwoqKrROO+pf$_S4=3jYvUX-Z!iJHw+|a(1lVhft6LR!b{ArYp zH&4Zz=iyD0@FO$uG7k{=O-R2rKPKhgq(hAo@8^(pn;e6q`*A6E^L+d1*sOZSWP60r zMMjNW*buj9Y&FlZpF@J(FuQJ?T3_}4CEs~+S?M#SCZ(L$?Bba4D{Xn8EovWn6Lvg^ z%VTqJwUJG z_W0BO)UVV+{kPtSJ8xs;{MawgQfI89+b+javA91pHR& z;J5t&MiGkjOQg-}qYaCr%_^g_l|?JueND2Xca|dI{~jiey#p)iYgV( z;BpyVWoiPoAV-S;&T~wg$*~S{EMnvgzV0wNz9U&^vONUWaLnG23aP{koo4xkfiGC| z>sqYY0Bhc_%NmzhQ-5>KY&&bJjCzTaE{m5lS;555YBBLHnD|LuCO)jSZE3=ur7E*t z0Ptn;e1R6k|5GjE-v{v@)g}J@riZl5?yf4~pEKZP@%#W51ovwZ{69c&S(o5~OjfNe zaM+wwXa5_9)!O_vvh$6(d$n|%$nR^Sp~Pfa)E-|jPt;=GLon|rW?m8T9FG5P)u41m z19o_Q`UzVda7{7Y0;aTvnS!1QMZ}l$%gkYcDap$h&EOfaX$qz(O~09&rjrvTjx<%c ziJb=~OCqi*`J6nG9wFnYuntux_ZvS0a)Zj=hRd`M@6hQ}L-Ps0&O%CY39)Zw7i=j} z8~04;qTsx44(6!h=2}nkvjTXeuc5$eix6Ol)J8f&Z6NV zi-spG8Xd1V>TE@Y!P~UK?lrk4T?V05`8AcMUYSAquAdM6y_Uk;Q25=s6n!{!CKIs88-O#lYV)TdIYir0Nwv+{Bc;iY>r*8ZWja zU{$J@?pIKYdAqf_Vs#V}E+xHq=zbP+Iq41|z<0@hKJB`e zBMy#DS?y%aC~pqm(fUw`)KCA=qiDIXeARpzQ;1WNmfzJoIA?_C^4Mc{Q>H#ziY9=B zI9(Y#*~q20g^1(J<%J}D~qUGcV3QN{-v~?B> zxP1(9%j*M)9GSnS1>Jizi}+1TI#MO?qsk#p(Q!*i>X;kQafEABr}1h7T!uw&NEq9H zLJ4sJAIBq!BJf6Az9dY1Dlr4s{;O$jBcT z=bbF3cQthKH#3|wE$R&o;!L8h#l^dSF6Qs@!6hbyfGfn}cXoh_F+o%nbBIOUoIA`? zu_YGx`e=MuQg>P6q8s{x&7rsv%N`8z<*b?(C&9vJ_}bE6vpAq{Y2~;F z;{zcs^`a;Zal2{h#|OtT826@z*`Tve8<}xZ6!&u@vm18k%18`N0P0(vQscyL0rJUht0;zdbv-v{k*(_5C9P77iIFD}aZ znC?7IV}`gZ4n1(M-~cU4V1k3!8adBEvGaZiN_FshjmSkWA(pbVxAN%hhec>W4`_lSz6*)P zt(5!1TNLN*ER8xvlQ`i+$XYILEbioj2*Pp$U(!gIhyu(T+`=MG>@S*ziOk%nvp*n_ zx`4Y@qeOPfBUwtEw1bza_)0|I=pd@1>!g8*Ugc?{AW*h*Kn6F#s&_&GXiInN@QEjZ z7l^z~pD+pToTd9I!5e}GM8sKK0-S$^h+ZTugXDyL2qNDZEFN8eWDMo7lOMt+WX@3w z?dtE4a)@`#o&0FVwSKtj5$|e<;(l9*%hZz>fSw(kp#*zUu;UEcSN`?-$5_VsxaU;B zQ%eE<-wb%#$xR~rOvbCeOnW>By)A-XAc4u2a33|a$W1-*;EZ@5GCAnv>X{>emrt;S zhzrR9u0`DM(0#`NT@onpCYXps|6DS#p=dv5&}*_LZ}NBbwG%|R5?sCi<$WB?$9iys zq|!G~nMsJz&$1x~(hJAf@Mt?g(i1s!$97>DE|IB7vTmiHKY$I#WVX^qdPfb^^a5Q> z??QzSumle`R$`LN4thQ7$N}y^?Butf;fIR^nOKgyM|;Yw32{<}yY#LbaYmUF=r2Uk z4_zP1k#=y8HLe!qci3FSq99r+-k1g$c$P^LYBnzQ^YN| zsD98@h~%If1-aC6*S9K-dGDnWh)ZTx9&~90KAb|Fk{7yMg{6OiM~0nqq70rC2K_AU zB~roz`9HmG+Ck!-M diff --git a/build/.doctrees/html_static_pandoc/Nexus_41_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_41_Release_Notes.doctree deleted file mode 100644 index 6b91dac5182879472ed93176a474e1f830f5fc83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23280 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 diff --git a/build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_42_Release_Notes.doctree deleted file mode 100644 index f26211eadd17659e995bbbfeba4d236d6c7890d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30911 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

L5f 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 diff --git a/build/.doctrees/html_static_pandoc/Nexus_4_Release_Notes.doctree b/build/.doctrees/html_static_pandoc/Nexus_4_Release_Notes.doctree deleted file mode 100644 index 94b4b4f6123d24ae39160cce560885ead805fe81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29344 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 diff --git a/build/.doctrees/html_static_pandoc/OO-NeXus.doctree b/build/.doctrees/html_static_pandoc/OO-NeXus.doctree deleted file mode 100644 index 0aa0d07d2d78304b93916cc8065132c7475d5054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37025 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 F{s$}0+LizS diff --git a/build/.doctrees/html_static_pandoc/Objects_or_Interfaces.doctree b/build/.doctrees/html_static_pandoc/Objects_or_Interfaces.doctree deleted file mode 100644 index 04f84fc3212f8db8d28b374525bf68b21daf90ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99936 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 diff --git a/build/.doctrees/html_static_pandoc/Proposal_NeXus_Errors.doctree b/build/.doctrees/html_static_pandoc/Proposal_NeXus_Errors.doctree deleted file mode 100644 index cfa75d0bda7ea7ea396550ef9dea0a15dfb0d368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17107 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 Sgr-M!(=dy#6X?eOci`Xp{-I|8 diff --git a/build/.doctrees/html_static_pandoc/Proposal_to_Simplify_Nexus.doctree b/build/.doctrees/html_static_pandoc/Proposal_to_Simplify_Nexus.doctree deleted file mode 100644 index e6bbd7d1973d15e5b64e575aad2648fe43faa647..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40832 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 diff --git a/build/.doctrees/html_static_pandoc/SAS.doctree b/build/.doctrees/html_static_pandoc/SAS.doctree deleted file mode 100644 index 058f4a78285ae160102e6ae9f5505ffcf3ff8faf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49581 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 NDlyaKOvZ!m{{qeudVc@_ diff --git a/build/.doctrees/html_static_pandoc/Scaled_Data.doctree b/build/.doctrees/html_static_pandoc/Scaled_Data.doctree deleted file mode 100644 index 94c090828389b09bcd03ddc3e9ccf8bb85a69b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22697 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 diff --git a/build/.doctrees/html_static_pandoc/Scans.doctree b/build/.doctrees/html_static_pandoc/Scans.doctree deleted file mode 100644 index c381e88eecceeaf516f0a1ac0f2d80ba5dfa1667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19216 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 KZbeW(`2PUtHbqwe diff --git a/build/.doctrees/html_static_pandoc/TOFRaw.doctree b/build/.doctrees/html_static_pandoc/TOFRaw.doctree deleted file mode 100644 index 0090dbb12183de3ab6bc025f523e72a45a5ba9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657155 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 diff --git a/build/.doctrees/html_static_pandoc/TOFRawScan.doctree b/build/.doctrees/html_static_pandoc/TOFRawScan.doctree deleted file mode 100644 index 852a1d66378498221661a474284f38f035bebe07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65121 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

IV%m)%{j7wRT(8&_|}3SF+WV$FDTfa&@Ab zIsX2&nhJ5Qx8K@(VvZ`W%3k%sEU}9giXBR{%45)RH|gK~ z9+Q^o@q}a!9m4g)s#ked&pes=7V&MNkQ_5DH9Zoq;P)%(X~=I{W6WKmt4z~rTz$*T zFiD`R_*ni!GrEVZb=tI6e0_`HN_s&uE)3PLZ8T%1z66?$!*7vml4eo*rwvj14&c-^ z$ZN@Q;q6<57HP96-D!x@Tc=Iwwfg}Uo6~5NN6Exy-;0ZwEoph_3 z&>3^*02YrDi=R%q#`^;<=a)eMa|0gYh8pBq-3AGz;KJc^k~j#~wSP=n121ihp^bZs z)X7J)#1Lr>(XAlWQZ~y_zKnHQ5z=LVPLIQH8PC6k*XUb&90??a~ht*Sq6-1}WL9Otdj8_d!nvmU>)!oD02R@NlTfjv=O z(rU)=Z2?X#4ZR!-PKdL$!G0T+$=@~9)F0Jt>i;MOS5+fd?nhbf#odXu2RnI|+W2)t z)IK^%YFC!OdMuo6Sy=Ym>pHuCzE6mRyC zpDhzmH*19m#V&V~ILB@%iy@r1=N4xnGF>?UUdphqkJ5|3#_c;;_=vNC$615+C{6ll zkTFhO>}UL5G^gJ^d<}OklRNNn_wcnbT%7P6F0XgTX$p+n1@t|nUNfoK!-ec%+LbKG z^C<4?EqCAalkOO=FK0XGV>>7;QwFe!P`ZFjuxGueLziFyda)myzJ$>SssD$gI1 z4>((>n`2{}_96B%7$QMZuVeGtXw>HEL*NmKBG!MVQiDMtscjy8+3pU!ER#0{n5Cr) zRuZpaYnmj*hGW6=fY?5KojGAJTS*s@^k#4vp+R!2!DnS=KDp=zoiX>)WgXWKyfj9G zAZHqQ#F?oZXz6Z1`f;N^*P|FLZwGNV@sVF8ZjAHZ_RqJoNZ-F#&D0LkG)dcdA>AJY zY!H07m2cE#+u`$uYRCzw7X_-y@xzH6Qy|$eP^|dAu4=1dXv2E1nqdkQVB8?h=nz>5 zHV?o9g#{)x;{F)D8m;K-wAX`JJ$yS2x=HG{eR+Qz)nh*tJRu)1p)2=wxhROz1-JyX9* z9%aGUPuhn=Bi%QG!%>n2?MWyisolK&Ji>;cMGtzTjggSM27q{rn#*Nx52;J8fdSZx zAQokUd!p6SMcTbcy#VtRiTL~p?@@ggq@sF)nD8~(cz!kY4j>dJQM%EaR3nh&xQ~u9 zh=vhm=vOyfd|w|0qc#{DKnZmV=3irK#{-?JUnAqYVV;k&ySux1lv>&~c>snsg~%2dhSFxai01?f%{xbwq!*-!^3L@LtsE|%%yOABmxp&wOqkcHRzwTcb z2F0$~*Rml_8gKu049!(4*0&{9CAJ4i*Q+$s53!d7Fovip4T2VvMgXK|W9n1&xeh8s z2N!xzrMHkC#XU%#tq$L!lFY`PnI)njI~n(eDRj&Qt*A+5Fzf_ARMipC41+*Zi6`Id zqRg{)F!UnK9QZ!RF^kMMStrN1EEx2R=2u9b58~&z+8cN9eMKo((N&b+8+^?j-8*mR zUfK^td211V6C^;~a|~aA>jynD^&9--^H$|q?BNxg@*(QzO(b2SQt+)jmzkkV*$h7k z{}V;R{@?#o#Eb90!>_;R*Dv^mJlJL3`oVlN@A&f^w$6S=g9iy4tbxY}m|9T>EBL?v zm30Vg{t_~O@ejEA3cz?pc=#QMyCi!P82-S`FD4vqBEsP5|vV@u*clcaIu);tIGU4NM`4js&624LC_~uEG_*@@(DKsD? tFhkF>(JBUu84s@(4~wpFHHy1~vCq!Q!TzZN-|{*36)K-L>A17={{cDZ?8*QD diff --git a/build/.doctrees/html_static_pandoc/Thumbnails_for_Nexus_files.doctree b/build/.doctrees/html_static_pandoc/Thumbnails_for_Nexus_files.doctree deleted file mode 100644 index 0085a0bcecaf32c74967bef48baeae19b1bb629f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13050 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 qA{dW)w^E5dqgBa8QYzyb3ERG#7W0H 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 diff --git a/build/.doctrees/html_static_pandoc/XESraw.doctree b/build/.doctrees/html_static_pandoc/XESraw.doctree deleted file mode 100644 index 55be5721b47fdd41462899ab5c9e3addc8cd9e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24549 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�_w(#;H_R7Re4Nf{q4lhn9nkq87fikoE&B zCKdslUMFNyd3j@ahfHLY3`<)ef5aGz95Bl9B)L$cSM_Dd zEj}4?8-{9zVLF^E8v?rbEwp)Ua-<#eOk_W&qbxVg+tep1TExAPHvW?RRqmhS4(TiL zx+P7kuvB8BP@*zy@7Rn1e7G>(FJ-&im;%&2Mly8pwPk|XH?r zQRY~gsaDZkCxWbG*Lmdp6R8CKQ&QOu)zi;nHD6Fr_5b{P;`E8fF6e)hZ_&-GkZuLS zuH{lDO-un}$d{94(ru{xCH`^U&X?;pst!sx83taet+{6J%~j2{?3DD>(Id;Txl`yJ zM_WiLAk4%2^F5@s0=>Y-inJ#B5V~Ono+p)p_~W{+egY~#;q^^=_l>;UMt)sb6Rc(g rEzJ)rHM}L2H`2;ft!}u!|yVctgMKns@&iARqjJ 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 diff --git a/build/.doctrees/index.doctree b/build/.doctrees/index.doctree deleted file mode 100644 index 9b1cbad998e9ad7e769619100218a0c0ff40f4aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28826 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 QGH(f1zI=UoFR#`WXs_d3~+QR}#Q~?qR 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 diff --git a/build/.doctrees/niac/NIAC2006ILL.doctree b/build/.doctrees/niac/NIAC2006ILL.doctree deleted file mode 100644 index 9baa30a010d366ee1a86f0c018e414ca90e52792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66093 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 diff --git a/build/.doctrees/niac/NIAC2006LBL.doctree b/build/.doctrees/niac/NIAC2006LBL.doctree deleted file mode 100644 index 89fcb9312fa339de58bcc3afb3cb9e153ba4a215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74384 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 M&VjT*Pr9xD4?$F4!2kdN diff --git a/build/.doctrees/niac/NIAC2006LBL_RoadMap.doctree b/build/.doctrees/niac/NIAC2006LBL_RoadMap.doctree deleted file mode 100644 index b4b9dccdd3ae45863c67973198656aa12500b637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33954 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%0A(?o~UOQ>XT^{MHSnil^Ta+)lPkyuM0Oy3%iZt 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 diff --git a/build/.doctrees/niac/NIAC2006_Scanning_Group.doctree b/build/.doctrees/niac/NIAC2006_Scanning_Group.doctree deleted file mode 100644 index f17f4855dcf72e073e85eda049ff99b3fcf5660f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54552 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 diff --git a/build/.doctrees/niac/NIAC2006_Synchrotron_Group.doctree b/build/.doctrees/niac/NIAC2006_Synchrotron_Group.doctree deleted file mode 100644 index 600d7bed39118bcef907c069bfc1180b36a6507e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54102 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 diff --git a/build/.doctrees/niac/NIAC2006_TOF_Group.doctree b/build/.doctrees/niac/NIAC2006_TOF_Group.doctree deleted file mode 100644 index c4c664d2ab1516c7609f97822eb1be0d1deab6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64486 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%0A3tU||F4?>m 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 diff --git a/build/.doctrees/niac/NIAC2007.doctree b/build/.doctrees/niac/NIAC2007.doctree deleted file mode 100644 index 5737be232439e5a9c9c3f073051435da77d740fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94002 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 z zJTVsYAy;hK10_4m#0)`>{c{P$A(p+@TpnwH*|34ld|ZWQP=B5zNs>|#AA9yHEgPhc zNsqb1K7Yk0CNlqX-V8>uN6`Om@{@Zmv=G=q#s!e{w?TS5*U?S3L6o*nJ~bkqB!8Q+ zZ9aGCBI1rekkLXss2DIGnZXe4BC8{p2s9UlcbYC!r?DvRkagiSsWi|t&5rB9F|vuy zgE~Pk!LNM-esjnRfq_~!NeEve-VCmE%q-D}c~z{l?(3YSnp%qxXxGH44Lzo0~f7y$Db=m5iP zNv92wSEwTam?ovXiMpZ`Q!2_Tr&GWd|D?);r^yZ~NToQsif!}a7~@D}cpB#++XH=p zEOyKO%<3H6$3m$~83ns|zpooaYmRtdX8V=JuO7p9Rh*cwc z#$5q60EIu%fT_jHpez!o78p~Um?6TFJ4}qb1ObHvRdiyk$R#48Ktu!RhG^Yr9h+UC z%u$)SgZVcFsu&xH%!8`dI4i+KCKJgNWN`ytY^qv}TAE)QOHLHx4r`z$D^o7+UKCX{ zkI{u_yD5`|BIpTHMJ7^hFCoJSz(y}{sdKaOYLKz%Rbyiv)~CVe0&QfgYE2RV zqZWysBidfsX}+rZb7n!-7YZF zUV-s93J|iA6On}qHA&q-8#5ET1ay+=TLdI^;{5^3Lf7h>10ciW?hH7PZ2??&#?k)6 z?g8HEo=L&f`3kTEElvdd7?c_PvdWMj`ot~~4vLO1 zg2=%NS$0Hx5j+OP!WV*ZkV2Ljy4)Tq4~%{R%uS4dJ;fJlsYn`V{tVpNQI~ujZX(q93W8ByeVYh^Eq#e%P($tF?=U^;#rAXV@<9#vd)k;rjEaGbDllpi%_e5inN zojh65;*vPMq2d}nM4UKY6blkZMt%I!)NC9fjy!|I!wH3q*l@ho0>klFR#dp&?g1g; zk_3I@!F6!M1cOW1G7?<18j5p382CZQfTQM&0C2or>xurRmwBDSVS`61p36br?7EA&KgH)@u;Du5?A4#qAN z*{!Xa6bS1^RU=yfDpY#ZfNsD@*@3_6U41}gUB*O za07vO`j8CYMiOUR@z`yY7&mZx%&2Vh16 zL(CR!P~_}On`XTC_m9yo9H5;*v{-buLNN->hENP0myI&x1!WhG$VN@$hGP$o#n#D~ z6^Jcq)*FRAUI_Mx@z)^90R&%XMP3u+{IF|E&5OCFw48uzow(W2){?wgq1JlgRGhUe zl?bxdv%{?Ejj)!5Fg-|zSMx>C==I>(>ahc>3q@6b4~>WzsWHz1mD895qy%ur|%2dy_<3xbv{jv}Bz`Z2?w zhl_pI(aH#XmguR-;wb8QgplVV@y?UhPoql!PAYWN8T#=HI%A$L{+P0Ij+if>R2bvv zcH9V3F2(1ki^JR#Ikf8-=!%fCc11{x&xd_OrWKL{at+4(1HwFtxK74fi^lNlO+HLy zO9y5nW1lv~mpqgqZa?DqZO)WQT=MWyAq7c z#h~ONH26}8z7@c|A&;k`dm=I}SSa($FfK;n)0TEhe;!U6kt#z)=PR0A%sl%)ue!k` z$bp9zpVRy`;t+@EY6;QuN3?xJm}}bA0wgv=?HI_zJ$WBR-sKg)Amsx_#7gI++H{~u z7QdjXxDwnthwF;;yC`Bpl~1Z23YzNB-xbjkuTBI0-}g7f7al}v<%Fb4%=N90QoPXm z$lY-^hbaEPji_JRU>V@{4BB9#RXvreIu?WUy+i6A84VcixH3sMT<+;9nO9k;?!z0* zbw`=UY$k8E`0L!iqR}+X&SL$zEc<(OaFhNO>!DpdKffOKFK;=oLyt%UgYQo$ny29 zOLYcqtW%ts@4b4aG@z`8V!1HqpryC|g>p}AMa0&xv*T}d!%!2)8}V%fLv(x9!gFe$ zU`Z7osR7CkiNHmt(vjqS*!L!)UO78b(vaw3bbOiLz{`tNE04@+0E@FlwF<@2iudxa zN$PEYMca^Q;|m$>$y<{Sb_=D}tR6byVp+rvy3QstMZTDKGB#Z*D!rZBj;R4JPBRi^ zo?8>;`2lx0WsGK8-RXuEv)tx;EVq}3vr&{&k6aTMGvR9uNfS})#Gh|Kt%yl$X~2+@ zy{X!?(Pg10L4OqV3je%f<|UjK{r2nX4}35edmi>d3!JssfHVeRTyj6J*xVq$!e zB1SP~x7BYqjW^v{w0zAJzSpL?NkDsfoku)aN}izI15R&P4ZWC2vDQ~J{<$; zVq!cat{^Uaz){3qesi&2tWSM?dgM_$g0U=^PH_lPOey)g-&G-dsf&d(YH+wqx+hR*rbOx0YfS&hS=gw_^ z`R#7<+$ybWXC(FM*s=XGL5H&NldTkL+M5`uTlq*$1QCSTU`f2}gGd~cv3y|XYN>`C zAjFsuk8=r;4(p)-QblcSOTm~Z9}~2WS97f67WuQW&=c@moKThWc8jD*q@BR-Qo2c@ zC(){q+ja&35Lc@QvXxJw$gbTCtn$-e0F|v8AwISB4Sp~kBSb9RrQQp0qWqTU?qD92_x8;#M zeg{fX$pQHlrHW*gloDBoZsRHKcsbS7#Jh1@?ElbOe45{2FE3fj~yLFws+C$H&OBjBiki$5FJ>38~0qttyV|O@waiSFOAgdeYE=H;;sHg zfvltS=)B=bQ@fx2<*NSGAypmg>JR!H#;7>oH%}}FHjo`&v;Pa^pjDumatv$~$U2G~ z#1!d2dX3aZ1oUo|3m`7rSS0IsZG_sMrQ5stj%dZ^jHvOw1HT78TkIjeXq|B73=JaQ`^6+m6Ka;ZSpQCeBRI%ynI z)$xG%Vc(;472yZuiW%}xBQs>LKvN|{!U9=GVMt7s{$|3+Z7df+T$u?4vX0kA%_6uK zY0>1%n6HHSh-N~8hJ0^rCW8PcHK*peskcAERwoPs?&15SoIBC|(ePRs1av}=(q!@U zm%oj9{lW23CHy^Bz0TT>y32k8c#nI!Y@G447XH zTXo;16z-M8^iFtD^Rt$Zl1IG!^awc?enURcsjaUII5fZFSyS7(FJv89t{9q~81wga zE`Q7KWSn%aE!pHG_gO8OD4(i_bgO8M)(?S0(v3_j1rwA~vjf)AlFRSqovkif84bf* zWonIxug@E)l>ZInuSBD;Bg_hQ2ap5g4t-Sf{{xd_KG^2!VaK?k9eS)BJsVRE* z|Ni&?nzWALdwLieB0q$Oz8_EF8=v3fKLBmvM@SYPu#Ajvd@>V1LBctHxXWTAz)jf3 zGGy5o1)^_Ja!P?sNg%S(nizhtDn{Se`1cL|eT%;F;Y;V@F|#`BQzTv>Lk?95@D>M}~y0;u&MjzEec0esOc?&5r1XT>yAh8bk zZ9ZuL>DO`N6Jj=mjEy2-7c;8`J{o;<^F%bpgCg_q4v5Tq`P3RHNacdPGHzz7=MmGW z9kGlJ0Wym!65h~bUay7}kcJq-VgXb|^ZMU~zUnDMJH3-p0F`KD%gKRE(MJi6z;1Z6 z;7~|Z%nsWsK}fbvk)*~JnQqnzAua|?12MHFbVad(1F;Y~xfrkn7GMdVkQFOB2oDS3 z5G?uAotqD?Y9%PF?MMVh(E_5=kM#Fmwy2X!}2Oslcoo`d z`YCM8%w9H7b)DC5wh{M~5!7t694SdHm0cRyqEAs0>14optAqoe>r+#EX5G{Qc&sF{ z4KpGlJ1?3^DuHtTm2?>GM!%1a3Xgdi9f2rz6CHAjYv_oIoRe9m-g|jXjY@F~uU|Gn zGV!e#ee&cebFE%B9|fFIh5F9OjEdWy9-%*=c8PA0o|0-wWF8(Dw-)Ne!Ly=|F%o?M zKy!J;HSkHO+8n&QyITz%n=Uk}h7HrJvSv8r%d3xOfK{W}ngJvtHXTXuAt!NR%QDpu ze>z<0*ev)7FPPT{KO3{3pnW;o>mP{n*&Ni8I0r>n1t|TaIJiV`hPJE#N#|fx1Lxqp zwx7@r8(!7*HfQLe61d%&hTWP$e*WV$*H}qY>F?n;Yt_f%kk9EkYQ#Y<5|!U z*;|Ol(K|dxA4Ooi7>UHaT3b>6PYX! zuo%1ZZiPjXRy2JjEK<`KXlnC%{XW=2m%#!YKV)6p1dCP)S;#UZKG3jAHz+E|ZHWOn zkvaMto@iwbJOl0IcXPNBH!y85AcZ=G7;vZy^#Ktz8xM!q^1>s1LY%o8$|M?)eP82! zN+OXe8$XaT{h|ET66a}=4q2o(=8_T#2VV)!UjW<>`y#LN1kd?0n_j;`=IRDrUFesF zYdPU`HeIkV8pT8(;4~Xe)MmtJB3TUmE39do3tT^bdH;)Qx7k9H8ujtWyG-H1BQ@@; z^2Jb24?cZ+>!~c2o?!r#;(XNRScN4MkQRNE1pH)T6yvzp5I7GwBbfn;e8tE=$cIFF zZ#ZrybSF0j4hEB4Z`LX8W_Dn!aVwP)@d^)$U3dGk3mH#oH@xG|w7aS&IpwcaU9ypw5zkj@u!v6l`#s+j*^xTq!6KFjXiP&fE0a{KuPFB z`#yTryMQ#3g6~hzDY`4yx6Cf{`PI2g`)wOO6OV2|#$jJ}!|)l8Oe+Be)t6FKL<$Bv z1t!YJ&7x!i(xT7d5h+u62CAQvs_Ah9Qtc$TNomo`L=D5k;k9jq9wo5O@eL!9PH)TN zbC#i#$cnOB&nczTkQ{w}kOVmxLqkf%5UNtjCp^lcZypRDxdzYqb=I(q$DSK@jTOcM z+aaf$#<}ba5%2I&lzqs0K0s|1ez=ReNf2+-c2HifL6${^OwK;Tc|-Mm+^D_HJa@l2 z@YZmkqZAp9$tPraJnA3SzbG8))PkxgsmNupCcg7*ah zDA7mJ`N~Li?j55qbD|aFQo`i`-O2?q*aIWE|a4e8Y>j%TIH@tEp*8CJ^OgK00BOs93q6~?L9 z$Ov$n{laTX?@pQOw>u@lDgaX^4IX)aDrRi=j_#^_u~rN*zMpx%A6VG=RmZ$LVVb80 zHGzR<>GYOFmgti&9EF>ZwCl(~IUJSrUV81MVPTAiM*=lwYbPYUn^Pz*L!#Oz7gD3o z50F^J1a*)@K6h65Az!mF*1|6Hc5EMp!(zAFwi_lbv}>jn5piJNh>mzrq&#yfIdMu# z9YN(A%PM|^LB&jBke)OaC@^ULm}z7WbPY{uCOAwh(?O3#S0z(RP_f}UI}FyBhh}99 z?A9-d9Pun=D3Dp?z0{Yy#lu5C0-TZjia+NCGYJZOFRs6I*sIV7xpwT=M%Qd?!(`7V z&q9(sxy7?carb~oarybwC7Y9S#BbWw_WJX)d`q{h$%JUf*%>9Nop6$Q~1n zly_!&7FqD_fC%&Z@d$IsBj0(s3K+YZQo~(#hEYg{GUsvku-)3PG@~dssx3XV<>fk@ z@$AH+*RbrJKI&M?LOfn+MMfb+@$pF1Jkp4yisp?;SJ!a=&I@zbnA~{$r#}X-BTw<7 z)7-B;c7xYEQkYJ)pgk}-1G%V0B#PPDLb`Yr?cHnmOAu~&E5O}QJj>KjyU^}d)UXLa_=X)!PC?+2A>6RfxQ-!ev za7~y_s#X-Pd=z=oYvCgGz7(kpN&=A|p2v9+$KCJ!WoKu=pSr<5N~=R*?A7f+AJya=&{R! z*FaE;ZrZ=OLk){9&Yogf#MtXgj64NE(wW>O8;mMD-|>QZX2hk{SH9_Mc7zd61B|CG za~y_qm-0!1lq69K1I!|pgr=FHg*!`%TmsTaMtXmO8T$6>m{z`_tDo#O-yT{Of%R8P zrjH&W8lVEt5i^>0t3|#g7aMMv7u^YlhUIj#9y%2Q_E$=%ch>fuhUK||2ixhnYa@oB zkB_#8G&#lpN{LZgT6$o7!8*3tCnBJS2FX%~)by1%j);NyaP;syJOqvhr5Q5ls;{9e zBH|MH(Qs{W%Fd8QoHtV|vqP)gl_Lj2nnN~jK3EGkv0_I7C=a5TEo0s7+KrT*GazRc z4S&{`hA8oY+;qg6m1a~s?FARLr@d_hvkx+aGInK5ZqU7q(fmwZ(pY=qwptz2aiS?& zEJ&#-(pHt485=-H35HG%JS!t`wl78U>>dEnygLd$H|IZ;Gx2P^QBYa*)2KN;@DtoE zfoz)8$0||6Afjd(Q3KcJd_EK+_LxEN5<_9^-^B#_0TvbPHu$4$L+^JJvB&D6-KGV3 z90ai!`ZX4FFyA={Li|PX5&pGSz-5e z3cF(36aX~2*Q(&6|Jj%#0qCl85b>mMAa}Z(CU7yutW8-~CTKu-n$ZvQ`aKHAv)w1W zU}k4SOU|#pY9QLQ*=B~g%++k;ZH_7Vnz#`wtn9KV9(@!We@6w!nTM>LA{y)+4h_z& zVYL zUMx@YI8#hUTJ~m0t6ea)1J`ZS79tr1Fm3P>ren7EecKnwAb=2_tV0qmWYry&5ZRdCMxsUeo0EQ4 zNP;r9g?!MbAS%_=)_|OcMY*#FM7d()N50o`CBedC&=M@{KcHNEY5R77qyEW9;TiWI zzA%=TOECvhB94R$Sta5E-0_~1<*;~leoS5o5*4FuA5PK0pBvD3d4sQ_MKcioSMTa% zOvv=~<0oelqxmroK&L34mFjqp@(w+80f1(QMHM906Ee_7F*1K>W6}lGn=$)1=F?Iv z@};LA$18El;mkj@GlqP=U4<{`F2^g!z$(Xlx{)M!5l8?QeH1Tljl>J0sPuuayi4MJ zErYa$49ZzvFmpfzuGg|gX>LS3+zT*gq-awfNEz>PinYV{U>U5AO}+PsdSB!dL0JWP z6neh^Aul_=qGGgu#E<~`bX&syh~|| z41ZB&M2eC28oF#TEQ_fnz&h@+R_NJyBK1w0Nm?TEui`htM5FC5NIRy2aJ;3Zn z7=T@O7YC?B3$uOqt_xmjv^{{TA`;`_AgTQEAyauart(9l32HJ!oWX1$gn~OxI@pHU z=0^4^`Q*{Qq9QvA>?}GSd3%(359thLYya|)sdy=-qC7yI)5;)komqE~`8hcvdf`ElY<_H#U5;_>z3<@?KX5X#OX(2FS`@6Lo2C-`v^9F4(9>*D0-!fT zYsrI=S^@x?AK|EkpKv2&AdOOL@cukQSO{oGVA^YnMhS;wioP4)@`K&^6|qUI@9umv zN#i~M(5~pC1gJ3**>yE`mHJ#QgN%jx+&8>no&i(khPm8|YTz1CSYWVMz3e!;KEuFX zl1RhDjR=PaMZ4Ey({7q*w{r-zd-dLtH{QVc7OcZ>*)sym42)f7n42C$UEn;&Q^_OW7nnQ;tac0 z!k$=!I{Jo>GfCQp>rg7~lifzNyXP^-=;Gd3(*q(t1*`ELv~<1;m8+Jps|4?1H8qXp zs&OAdvUZDb=ZJM&k5O^pgl)I=5I=Y(yv+bkq@aZLrfF&%R-On83l;+uEb!`jHV%#n z_N)0r-m7>2PPII$LGG0%|2vuTg-h2HnySF#*vg_p%0d7d$-EJ&c5LH@^nI=)YidI} zMwGcV+=7PW7!8tEvDt7!!a#!lQEFJ`AJdDaRl?1Og6E@&%G3P7+Y>G5x2B!7 z6mhbmr;TMtCn0Sqs)5hwn zO(Yb%2jsVU~x#Mx-lm7b4jNiL10eGX!%?4Vzt?ST)FLC{R(1I|U5VYPQb|Bl5D`rM`D!xWZDaqTo?pFi*=i zoIPk$#5x-$EKs*iW~e->g5O2MT~&O^z?5cl%f^mQijpe%@Defu@esB{#w$#9Sil`D zJ2Z{GPTOd@4ZhvD3KGapmEtoJzTf&uV!o#uQB(9$B3KBu2|@&>@XBL|~FmWyJi1CNP^NJDBFjG~z`Uhgv!` zMw3*?QyZuH4!hqTYSrL_rqmC;u88e;P@I1>Hs?Ph&fg!8^J5#%q=|9|-?M9B-Dls0 zH2kic?QPAMLH#Z(Ig3;qeMv=t{HUHvAnQqwciDLcje8k^3I5lZt3#goG~X~`4pT@d z)=PNJ#w7E*tYMq&_C7aH>G&ERN@{L~%%3jNH&iRs~W z8oRVS6Tsz1RvH?OWuc8HW}UT5Uo))Mgl(7tiG7m0cwMn5M-|6lcW7%=wQF_xVMUnZ ztk_tCnKm3ZD78$_;4@#E_rS`yPg}{DQx9Q5c-Rf>!FDK3{-YKT1{)5(NrLO+)W?AA zM%2))ntu1Q#Ro5Hzgd2MZ*F#O?$%}cYi<3-!-wnlo`pEDmLjaH{Oyx3zgl~EZ|=@z z-*R`6`*w-Id^<%8P*^j<`L>Kt!~(O9ZEa}oJhzA@=Wjp>MwaCK?Ch<)#Xg zP?rcit4@0{B@`Lqad$?hKI+kW+}Sh}b5Qy)g;KG2D*)3xaH1|F78pY1Q+$1_@is?p zkW0CDh&pn=ic9F*ND(^wbD;q``}h2Cp1>wsxb%sl$uKxEt1um zrz6o`Z_T$+YclQsfs?Hzd$3%502HnHm{?-;iL|izzUWRniazf6WVK(iG@^z1DGQq0EQ#0wV^z zd;4w(=NxWW*%p+8n-=P7(=&JW$vg1^&OKUUEBRzoZ+j-f7dV9xwNi(7j}yMng(Kff zon*`$V#~7FygN3VH;B#t;jsBOg2Z^tKkg4>9*zd`CDU-2#C`=_>vs1M2!lgKj2+W~ z)nq~@gSVq-wb;sf4|&51g3LI4`0%N0}TeHJsR-^W=fC(D==*pE6 zVw!jWQ#4R?n2D1^Wc1Wr!vC1I7k@DT0i8K`R_2NztG?7ml!gW0bBN|AMVf%Jnk>Q0 z@84!**FX744W(#-y(Tbx$9{Ea+7`pBm{95CYO|jdU0HKU;Tt$D+F+9HG?_^m3-bv_ zC~4Q>3KnZyVVXy4pPNzJGRL=pHp7&%89Z~p(z0P8#1;e22HEGY_-Q(5L5{_M6jC^` z%`gF*~k<`)@YkHGxQA)DecrzR|!5uARPS#%E&! z2T`@&c>vI|xKujd&m&f3@vBWdngE!QOb+10EyrTxLm#7q6i2Sn@d09(P4afVWC)&v zNom6F_zym*jLic+{td{PMZ)sfBy{@W{_97Kc2preoJSrsaeX9@;*R~tDvDvFZDU#1 zZIyV$b(6tZzPq}-xI}KVTJ$aoREk?J9chIt(y4%FWsTfO5hBBpHZvrSfUfm{b3F~r z!Q@^FlVT$@fNB0SRhfuiCu$NhYvM{jWf0>~G7qbPOh%EzjfGv5Y zV|n2{f(dpGl%+%@R_oGvE#$s#5b5K%pxL??e9(h97N?;aDLskawBTp-v;hUrH#El6|!4N6;X_8S$-@68`Ed zIz=pkf9faTCsu4H40J~unW@^_QLrKi@b*c#X*o_LjUc|?ty@^4;zDEYVC|N#QEj*m z+=)yZVP(Uj@fCWMM&^xfvsDr+%f{Vmbq0U>Gin4uWK~TfUPS_}*TteHhUE)cwd+K} zb3XSn#^8?!qYjXo(m5`gTDZRMV*n4AcONN64uhVoyj?7sfDyD%XbP z6DreaREoJ=7>iNpMD>uSLqIYiz}NFuSkpEa6va{^g9k3~!hKMn4_! zw!+ouV!Gv~LMk&-0WbRG%X*TYDDbvpn+>vlD^WdZ-H@4O1Re3>C1w>a;*7h@r70z% z&bMXjlv}dH816LRtQs5Zw6brO+Q?JY6o^1F(jRDm5HO(!t`1Q{L@e=;PqK`TP#zXN zZVjH++f=yvB**f`7J$?2a#<5LkAiwg;(g$PlBk+SL?os~e>_pnDox0B#l5Mfb?sY1 zC?!56H8IU$;9IzBF@K#WtZ z>$%u;>{IXK0)pRT0hYn&G~uUj;H#u^vnGEP5;c$D@k}G6-NHdFg1(Bkr`1~;7x6c} zJBdwfB=l4XKIdrn1oj^LRfM2WqX{rR$6uOl#1xA^@U8pQDH#{?V51wJ2_nN~bGdoDxXZfE68aKzT~?Rp?P$`J2FP)avl}Q7*z`D}3t> zqQUu=>jsFMVTshIM1_)%6J?yRQ`;kbj2Hav8Q86Mw}z-_vTX?z!T&(KWr+Wzw>7eL zYYlAk#wKo=1shLz!Nkkc*pKacL9I=v`%)Ee;;RI6S9^5~ugg)9pcQCa;%AC z(l_xyXq>@LaoWRxoaDZeZzt&HTSl$N3-LK)J0LhtRL5QI$S+<_gh8uvyMlS6`1@zc zOf@Xfxn7O$W#kcB$aS0=)gaE{^R{4P3hFTqRpj_Em7@pb)@Scj4ZPpCCn7s89`u_B2SqU~`C zDzb5P^Iv6e#-NPT&aeSS@inCkOU*qMQw(J3=X4vW0wBEwm#b5G?3WD=hMQ`)B zyl;}=C0}=a7B<})b}9in!8nVFmg}=x8VZ-wMo{B3vZ(jGUBl%JWZ$CkT5C?kJ>4Qb zavB7{83H(rO$19)MI~9J#s2Y*-V08X4cC;30ouW(G-qwTt_} zao&OJZO$MKpNmw2qlOYSY*l~=1d`n+kyg1hdtD-V#%nb)s-(BcDle-lX@41Ys%>~p zY!qDO--^@^8#4Y}Xi~9NRU7f6y4FHS-+RN#mQ(+AXE^Md7!YvxBGAu#WGOLbY;D z#XE}aG;MV6pausqyu?H}Nt<)DHwSIN&;_`-^NP}bkN^0bPo!bJfTJQ4QAaEFiek3x zrUu{yWr*KQT1(dFBog}nt)FA5cIyNBs?pas^o2Zc=KWm9=(RORUk~VOk-m`sc;e@T z_=|p)C-C)%zJ5(#FX`(D&M~J#^!x#C-`jeRzVJf(ac~*X);4`jQSQt1^^m^q(^mzj zHf>#@FO<@LevO^JTQBJg@3o&J*sh>nb?A9ZzR-T&#Bu@Up;zbW`EB_Ela{T2rY|Js z{e(!HAbJP;-H1=1I9^--=U=V=`>&kP_=}U7e(@hfPCgNF=?#%qrhu^W3Dl$~A}IY5 zIq8>(Nxwu$`o(|wL?om)L_qo_^3g95kACrAJ`vgE8~H>8qc=n>nIfNvO!S6GBvU|? zoTt#5A%UHQ;JvSl9X$)FI~Pgai$S8trLG)F-7QV@UQ7AY1dq$yT@o=abI<4rwQ4_H z>dt5~hh+MTOC8;`D5Q=qAQDnX*WU=Kqob%L{nQVaIyzg5UgZ98xuY$6lq>g#OCE)k z3%MhoE9KAoA>o4~NSc#S1DX;jHEfI+q+L?)$!Jhzbd99HS7p9M1%$7^->JLpXduyw zT}UORN={_dG@&rlz?@Ii4y)56?aVd)#dHl(DhXc+=1&80dKhH{uBYS;6=*rZ$LGY7 zo{kqJnd0+8{G7oFMHuLzXlVYHY^n* zBO)`R85xm|50Y810Nu{DZ#;ku_*O5VD+>bDSMwTr0lmWf{{OZ1`G_D{-4bTz#%wk# zGvb`R*Is*lueI0y`@i|?-~9W(`Rlv?^4GqnKm7PVudXK3`J4U0Xf$7p#w$MJ@9&Hj z!_DP*zK&n{_eT8mXZ&Z6|9^iuc)eO|mcwy;uA%t*JHyFzHd>D7{QM{UUyuGXjkTW6 zR{O09zCT>d*MsSNyyS`a+n!t3&_ zs&_mwI9qJiejuJ%ZqAm|Aw#@49zWl#s!wnI;frs+(E#!1?tE}LzFW=5Z#Jv)T0A*j zRip8%@oaH59#w-?HJDe^`FgyZ57yJgd@!q4>%n|9SdOZ*>uNQeg0tyry~?5as=8V( zE|!DK%kgqmEyq{O@k-CkFRIJI&lk(`&iQm$oezf7*>pV}ub3l8xW8F4_08&FH68Hp zX0=`pX8KV>A1{{cNp--`)8T-3s>O0NURLWxzMKON*5m48Ip#l0@X2sX1Fsj>lQAO= zX4fkg%8>cutLbXPG~dQ^i*qouSuYp!o7J2Ca&R59Uv3ujYBX36_KmU^Uo0-iiP`GK z=hO8Un==jfczH3HPggP2r<3*iYIXP4t&8b;vN_uyE-r5w>*tH*7D)}k?cDaqudL60C2g#Ru`TNW9`51*z6a^o3-=F;Nt*3wEbo{2#IXwHD z-X4Bv|NS$5k!Ja=s{teH`ANk;-~XniwI;u=2Wk~{%x}LjL*MY<TW) zSzGCqF@JqJk`DY6{?Fgv9?k}s@c7o{e0^(pYqP?d zx^*^QUM$m+xOKK1%!iZl>elP&%jq{^)!qvJ592|m#GQ{m`pGwsrgJg<{&Ho}ar4Wb zIAe1*ehVWk1hZ{Js8N0wzWTh&LA-GG|BGJyKX%~wr)@ZZt57gM{)UV< z{@earcI@m|-!YBYh`ciRu@;UVYhSj2+n5BTR_z27kAiEYe%zgG+;zHI+3 z@O~Et|HUt7U2B(qL(J2jgP+SZ{P>SWOc~yo_`c?{mCwknMZb+b-_D81ipf`Kx!(x|I+^p{Wi2wgM zK|2{=t;d&$alE~cep29-;J_DWHT@j3-=ADg`#i^Z{fii`f9I3_ogek@{J6g=qx3zB zhB?Kp)jDdR0Nis_ukqn0;~BpET2NMd0p$(hp$11oXsrF}Ahss*`CvSojjMyR@s$7GtWK^`K+A>vGpD zvpPCCI;kFn*N=(ubb~v-1k_P=aCJ2suNmkeS_gN1vAn*S_<8na4tKKN43_KaaBz8b z1|&DDd(*+?g0R5D>BVFX2nx^KtXj{HuO{Ppb-2Lr^$XuUf6loD1#5W(MkZ5`d2hKG zPKe{M*2Qu)oNVS7-(r+6H<#7Ve(~RD)8XW1l@w6JJw7Ll@?bW;guX6rdbb{50ok+p z^p(hR4Kix559S1vURR$l*5BT&!e`>`HnN`%M$-r{G`Q>_{+M`C^~FF|Lo0?duZ}mv z*?6$5P87EpDiSiPPRA@~FhTH!6mZLn z1=Ci?#x#Mi7EM&oY6!KUW#xZYiWi++4Q8|0oa2Zg)ysN3cv(H2jxL%pH7$SMKJtU* zFaC1$i@zk)RXv#whlIe|H1Jl2J6S{V1Auq!3Bl zr1G=ra#5XZzTLc>-mJd7|K-iw1DLRUi?3TuNB#=ivsDg!l$S zD+RDQ9V!Ak0l6*k)(e=fLbRIqc#$CLWU)a$!#|L9bv7nw+8@uxLrsMgpCb#(XbDMv zn`>(^yJD|bim-TE4xw;}8%-m;-H$;#n%ZAq|OlWLXR^o+Y2@nFliwJKElda8Mjw?lktEQve7&30QD(y>}5e>GBu2+&-5r7 z`E;>uV8~pnR^zofaC2q86#G14M+RTxChJZ9eDJ|s8_Ls!;P)5Hiw`~^*Rn2V3j<5b zc{ILMFkb>tNKgB02im9OS5xz8^?0*(hD2{1APW}rtwk*TXn%3uCuLI}?MrOv(QPz5 z9skG87?bSy5IhAG9K>FSLb~{+~?tb^RNcD2K^GQ{8lDhizp(; z(N$;FYm27YV(}7tG14rTgO^&Hlmsw^z(G4g13A6%=IIfm!R({)5OFJl69||fmbv0L zFS`Qw2vRJf$gCJD@pC|Px>-Uy9WewRCK@EC6gTqt;>;;FW957^AH^1q7J_%BWX$HWh#vo8*#o|T$(7rgO(-YGt=yB;whAaU^3o7*cpbP zpMEXt^m?&D#tS(-74aJ_MkDfPJy>3h*OgoZl+i-!VKhZkOV{KhHFJ#nIY~b!=>t+< zlk}OSuSxn$(vL~{Owy0x`yRf(Uf^;-E@gO)e<~#?9dz~e1r6#(*vK!tnqd~K34T`-jQ5!gc#Oy8Vv}AVQ*Y(7>gPPJ zaFdUW#^gEQ_H8^<9Y23GcsV`>gQJIR!rqMnSnX!AKOz3-i)#D^&?4C>nX64vfK5M7 z5S47f5GjNWH%Rn{oD7}Rl4mh_vo|R9>8d|p^jj137jtijCeY7JpiPJg`U7?hDb@GT z{npT$xJ$3KWdnE~ALnih+V{!Y6Y)kf!HO~L2F_>K1qWXreTj!_CPMik4082Ju-ao3 zQnh!oIkQKznBT}J5(Rp-wTKmXU=CJ2yY8UD&oMD*2k)=yvAu)rT5UXu{9uhs zG|C2|b(V$g+V zm7J`s6>Jxrmz@?9cgCGfUxq3Ud!X0_jrvvOBCSuYwhfb|t7QChZ6jtLtd9&s$)B}w zV*7Nl{v+>)C1<#H7-tt3s4Z!#lqPamS)C;fTeW^Ic_Ifc5VER1)I^`P2N!skgKPG6 zV+Cw*?iFApZd(us3~dYIaDvZREikPWY9s~!`t|F5v()}zKHI-oyt-Ar9-mqBwkX1hH2`5C(~`Co(U@8<-tS2)|47_^HE}eIV!y0;c!uOwQbWrtZt= zupEv_`SH3hYG+ae!(iQKQe?&&xr`9^q!JKJ+PBQeNi}O%P>(Pbu#x1?)>|R9n*FY@ zET+_dh%hWxH?SNZJbqgJTil0Pl@XqU&v6G&PWf;S*jmhgYUEozs5Vmg(oDj7y>)x6 z(!!?omf(vSw;$gT{$DRO=xFgegnjYj@DQ&s$fjqdLPhkJ90-KPBeUHxoGynOoPNU= z_#)DS<2<&S$75J7UJYhl;&`oj`7)VQJP-r8AT5I78f&S^z-$M zni5x*`KgClt*X7SsEWSWRfU0#0efjKK!QawROS`(mpO#cGX$TI!Iv(R$(0?CUxy#o zjymYWx2=4@QZI|E~n z*57)A#JAU&QDTez@B_up2oxN+DKW8BX!hao&VB@<+HM7gbu9&wVbDH(JIxV0yN^F8R_JH2PLtp}K@ni@Ar zI!HWM{3Hk~HM%VQq40YHMVqQGiE7t%fwejN?1~~a%+}bf zknd=fh|9`m2m=!w6?-n%L){-XesOCsd)CF_-7@Ajo}ug%%Y{|jGo%T-!h*xd2zo7(Q4aVk2LeGQk3JZmElEt2@Og5@rDtK1z6_=vBYq`@XeJ31 zYIwWs9$vh_L+539^Fvs%9X#z5V8-&xFch|4ds)S5xg3lTP$qhCck$B;19n#$vxKEYTrSh{SxC|4zLnr;~;biI%pMXVgf*p zn?|S~2{SZgp5jlp-Zzho2cjp$CLPDJH;Us-gi5^3AUQ#Z+HINd+#gihtSOv{LG`uV zS|v$E#KoIM8e_>UQ|L?POU<7nWdaisL;b~HMMB27#QeHc7A_JepzCCURcV8&sD{F& z38{>U%jt5tAQ@1sQkfiKK5A74i=B|6CyldT?VX1A0~iFAFQ(M+mQj`3e7A`&dzx4S z+P=n9nyG2#-n12rhDJc5AMr?0sJOae{&t)@f}uHxP5ac!w%2P`Nt9`u_ANG{pRUyv zWNG^kDP{zx&#cY6Bp;`c7IwjA>u<@avi)=%3orP(-VNMogF zur{~aTUk#?ax}vYU!luHr{x8OD5Q^+Z;~RHdyPDob8@4A7uFh3w3iV!VJj$^nVwoE zwNcu3HV?3`ndx+J5kbe0Hx1xb?(mi=Of90La=d24Jq+RIwSN6t;_EA=iy^Vw`yb&i zT`i~bN*0!x{X1LF-0?GL-sLqL0%_Gd#HuVpx8L~KZve!)z`H|)kD`9zDdGIr+b+$e zzmv`9?-HDy%y}ip9-y7-;?XcZAqJbn%6q@_iC`p!@%#v}E(con2;4Eys_>fw$d4%K zUwzA`FRy>@r=i2yU`QPG$@1Ir<@lx9_xR}K)Qe0%_O2lF3gE;D=`;@OA5`!4RUI@* z3ek~<>hW;BAS$FEEk-wMOzoQvBNSe!YcM3m^pJ9csmsqv{~+eB$v5rn!{cxVtG8}M z`ik2-Vf=(-UQ7V-a+X?PG>3!2R&76S9D^$YYWOfJA|T5(lWjR= z!JMGL=d!l2*Rdu9EBiw8hI545RqOqDRik+MQDOmKO`UUP_pV4bI3<|j*VUE80@xmm7FTk}^e!5mEG-#O z#rT|lZ>Lx@7CopSR^nIZ#K7iPi`V0&p5{vy?;r^^7|t6E(2z2$B>kW?ZQ8;j6@s4mYFId)6)3PE85!wBIb&9&$QejuP=Y9RN z)U#xiW-t5wJ_T1` zrprLc4sOKwU zxqN}@y(f^R_hrr$gpKMb$|^#0DdxqTAD5)}`uYk*tdH!WN|l-*C`(fgQZ|DSeA5(| ziYlP1wUv||qOtTp3=5VUCs5iS?g9)Z_s10JswxrCS_WA?RzDv?P84n+YqW9FsM1zG4* zjrTA1@$)Vz{B+EaIOyhbw!@#YIU4>HdY>$(oEViD4D?AJZ!eM=`BP#y3{f~16PuU2 zLF#z9U&M()u&E>4fe09Rw{kiLsWfk}AVr zLn9LZkp_N4SrgE8(uo?yvaFnP?T?mNeDg9(OJ`xOil;6&v-MQ=L&G2%B-5VQcP4z1 zh}N(g5Nm3lEMJRS%eUuKO0F5f8}|9h!AXo|;%Y6-69gxkWE$joo3dO@-2St{E6j?z zPPMD95iH@#1@p}+`&7n?tqBmdwb_+8k2B=7O}V6_)<7LhF(eH1zE0 zLx1+{>5-Wi+e2FFW@RHx^V%#C0`e;(!bI}o#ozw7_}_~c|Dk&E;>C8@A{f9Sp$5m4 zs6QvdvRDsRFJ4qWQQXdEe%CubV=Qn=eQaa3pc7MF%SVAc2-E;O5QmT@ z95jMGLwl!Z1_nsmV5pE3M9pi^HL^jYSir{AyE`%;uMh8S?FgR@N3kQuWg2TO11;X# z$E?@eE|M5j^NrkN*-8V|adU_>OhdDMc$s7=U@cU@^h)_rZ8NA9JMV`B6`oL(Hu3W% zVRbDb=g~@%4nuOwq1aF`i1?FSsCB${KRg@bQK2>c`o+BmKhlJLxdlDBVO$}It*90W zH$5CSxc4%h0hulOKgndfb;QG|$7AL?zC_*J?kc0+BbUKmK@2sLZeqQ#!cf^+oEMvx z&#%V=Re<1W85y$O&k4ywYm_7~(gl_r-$wl_YP^W7eS~wkFqVlC@a&e5^7io?HK#BR zui$O(xZlg!!`Nbt0|h`hhaq%?1Z^g2jjGkD`-BO8p6|F#g3K?}xy5zts$z#2Zxba& zoezz5J3cp^$Kw!5GfyPYVkI1VAzsOwlH5wFSXczqxekOGpAvi!U)mwH+l>cUlfAau zW~TzkYUZF+cc|?kP+pZT6N4dgwiU#Rn5mU!gcL^@vj_5I8=0!Dk!6Yn6OSfdv*tyJ zz!Ad3mVnnui6Ey78GJ@WsP+1MhT(}+Ijcr~gr?F88~?hL5M^y<8lo!c8QO=ESfvn< zmlQ5EfhYMSbYKPKg}gX?e0=!u*-6y-8loj4 z7pvjo%AOApr=EJtOi|D6a{vlluhKk}`9cYttj$~V@JDUjnMq`ix?W#kOy{pe$x3o6 z|L^&Yhel2TK!?S}t;f&rYq4pzNHmm#`PwD~t4u6mR=PQUU0pe(b1Jf=yns>|EN@ja z7}J|IK_u!JY#5R#7j4Ypk~Vj1>t*SP0by~679?La0LnwWXPLmX=~asncQpD#_%13D zLJrFw5M9Wb@Rn*k{^Sd9JRU_Ko}d^e9kopOYip{gMOF=3dqM|5 z$_No_Wch8TezjX3Q4aS|n_kYh2;oPU142RMaXzZE6@HC}RO`BzifbJ->)TQ%Wg zl#@R;OSFdD{iA!W7qJtV+*Kivo!!z8>v&badP1HJV8k>mP89(gbJ4jD#SR2=5)up0 zs5}_>4>s^wgTXnT0UH$D63a7jG=`d)Nu-~QM?jvFsNo=xfFNIP8;ae|;e#v+kIO;E-k|OiOYA~Lp{1$Y2(DvZ2m4(CT=g3sbWI0(3698s-cD0K`aRfUA!8ZME_ z!_D!N8a&9m9*fgcCPr8VFD!5oBxAIKp}K-g;$-AtdFX>Uo}r{`C^fyT-%7)^YVY{* zXU{%ADJfNU!DDue!+9-*i{}g@#(QDe{}_{YPOWIM0+|E?&8pgvx_QhNqdlYnNrQ)iBDGi52qq%o3KRkb*w89?Cx(aG4HuSpxY)6A zwb%sfdm`8JP9Xc(u-W(=4-_e@QDm%;yybMILchpexxADF@jxzdL>?mOlmU<53};kK z5RZRzPM&DOs7ogY7>S@fqSgW$f&;xi@5)P}IFX=|?U=d5G1m($0XC%iBTd314$t7{ zFotl%PXyKwbNb~7Ii_>`8T>;Ql(%Y9o{gy!fC@lH9XwM+nDHFWkDC6|76~9ImEf$= zES1%X*XdBwRfu7^iB>HF7K1aSG8ixdnWY2XMEXzW;<<-gqz zsn}fJ2vew9y`CzcJM#Xc4P)hJ9D>zkAV;yIn<5p?&}k{ho69G7a6SNB0tabSc}-E3 z^ez1w;M(xax`S#E1=XQrrU=r^C-Ni8lTrKw?IRmo-X3rW)`3?Nb0Gm;fjv{`=Gv|d zq5>N?sYeKj>h$hOCz0r)DB7}4ZGzTi9yS71$VCnXRN~^89G`Si!z(3O!=B8hbW_43 zOC<;AWWWj}hWHRKdiWX~&BG|oEL$^ZSI7#(VGXtZ661Tvb4SQ4sbEo?PFAbR<$~Yv z-BpI_bOC{^_2};1SJ+{prAgv{vziUg_HG0PX~W9F23su!b3qs_UI>nn(Wi}OebV77 z1m;I^HKlj7+E4(UW(>s0b8TWS9X(Ui5I-m8i$Ft60T%QUU-EAkktGPq0OBZ(>HvFd z$q7gV?Rd_6A^_{-XP^nu6{ZH(Pb1Cq1gpKqF=Y}2kPIv9k^q1QWwC{C)}B#dXomLt z8B7>0-dsaGY|f>O2Uq$CH-~n*BVSjOiB*c-QY~)hRTg7UebPW&Z$9uH-FsNJ{k=%j zEJj-E1tBenSJ5M^LdEj5q_%RT6~kdjcYVX3^nK{MI_z8O`<1WdbFOLjvbmTzE|wZW zL~hlhT~|$>Q!XV!v5%Kh4zO!@Fdcf%563_*z=;Lu?M%vs@|w?w3Lvz>)v;|(G#R9Xk7q#OJe%FX0$Q5Ovw7$T&j3K$3> zCl7_&@@TMz-{^32?;-iy^-#-Y4DY_im@iPivO&-b9}CV;KKke*fsj=a?L9eu1NP_e zZ%|;fDf8ABn!pe~p=?1%pcu_-Ym z>3mhte9egB+1z+o2f1QZy+40r2{C>{H=Y^Jm8^6t+1Bh$!bP&a)mFF~T@&P*8cW5D z!G>{v1rL(n%c4-$JqQ9rdDprlZ2w7@bSIwatJbbGU@s_t;`lX2h1egm_ z1%`xPNtud#YDEzAuAUc_JNC4*0wpppXg!E3S%%Xo%PVGHJx=kTN%XY#^JZeoU&$E$AAhC$``J2*U#n`ZT%D@RsV9o{#PQIv03xnR$f?}Sl1qR*jH#SUV z2xW0KELLkGOlYZA?74Uu7egH<^z>?QO`WBO^rwQc2^qNdhLK*ALjm*D4_%_$RlBY6 z_Wu2ig0IYX1=1;7>lVY4vEp?>)%^8XzaYG%-LOwfWLFxaB6LaQU}YvntBel^xv zI=oqo34R_@e{rpeIUpA{&$K=(ebd`-crXWRDiWUGbpBAK;EEb$Y^^U__t5 zNup!OB(EkNvrD88aE>?}E_qIa5v>hb3Ew3WlN8T+O6QWJsZr}GJ!U1j#iKcM#xUMB zNf-<4^XaSghBFs(u?B0=P1vzGm$ZEAa17@+IEsei5J)lxypcfB1-}mCB6q%0G(rmD z(SyU>vD2>tK+r2?oCtOrklERBP5P9Q4~R$_kzSNo3iqidrdp-o1~D6>1PAOPTcG#JmsF|VYH*GyK6m#keQ+yWYY$b5WDQ`P&P0j}2fR?KYJ>pSq8`5qkyZqI-EjsS zY2;nvDe73pq<&r#`7>MIs z+3GXx5*4;Z%Ea%q?UL; zkRmIkDFGFyHjLR4c^l9y2@ivb0k(s^&kzR9p{U@s!^3;UUty5c8YQ9FcWyq;2Rf`XcFxFeU54$>10^0Pc zO+9{IZ(^Kd&~R|Bm!m-xQPaL@fr^AbBk2D@!DbsqP0i+df$TGI7AI;kXR9; zw5DTyfPDOh0eNc|R=d$>-gJ&JlUuanXg?SAE@8zKi3;g8X{ujJmbN9++j#5VyQ74K zf!Z8af+qF_%>_b8c`{iIQtCV>Z3RhciK3N~h;MT5&)5qRKIYly#yxIcv?jv8qeEMY|`8pl0kClpi6 z1U(fg8%@=Ia4#IFCQg=7^LU!D+aV$pF{QB6U)(!7Ied1aBH@%cA~m=ZgA;m13t}bU zL+VJOtWuW17O@*T`Dzli&L~Ih6?Ct8p3xhy7+uG`8ZLKrn-+op8hy9KWlUr13D--@ z@+?8&k5s7*vvOJ)I=PIiB9Nbuj&lp>3~TYyE?bmcY0L<+${o<&0Y+M~{Vqr>&VI z2itBxuLxP`VBcPr)>2F!GE`evDYTOdcO7NRW-hD+3(M_iw5HWdT92z!Kf9Y%EZPaa zGA(`g%34B)p-Xjtb+7INjr&4J80h4Yi?f!|<~jt@o`ltnyVbwDe{vW5vD&+RCjfUP zUEOtaP~ExpF}^RCO{$_1?pfx1gyl`8ye}WAx0+ee`Q?9Dpcan;$ z+dtVIP6*(PJ_HW!Bjbz7;#N_vyWUW%HN9MH5Il~txfYv%B6Q3_CcSTA+}bshl1d2t zyc>Rh2PP_`Aa`eU>wW3 zjEy5Lpx;e9#kA8p$uf!q+eF6!0#RC^zOBu&ny@-l%~YH*11V`8W+fX9z4WEGt^Mx7 zlPC9&?;SnIZ;?Ix#r7FAlayO02v5zhMb7kZbN5TUMEksD99*MWu8y^p$p|0BRkHLw zE+LveCZLjE|8F-`=4gNZ(e)?PoXhMk{X)xE{eCVkmUs`PA)(1N4tH)-Eqvv>W~z^F z-~IR}ckle9>VHHsyz|Bb0)=;L;Q6ekzT-zgb<6_Q#{m{$SI6@o>oPLHqIW&Z9TWa({|Oou28e z=FQHuUi1%AH*m)9pw8vq_(ApQgZ+d3{O+gA+5TX-zj@i6olaefnIVV4T53s`w^n=S zuSX&A0%^xmA6i%Ky}3)DRmkSr*gnk*6iVDyBeFwT9YPb6gO?kp`Ya6@+nI zuRg?#%Xz3|z`hY2Iz+VUU&59~K$J8FaJVP^QW4lF!Va7%xe^AIcs2?%!o8X!zE)94 z?cVa@72=LGAJ;k85b}eb=jP2)psq!oEPO05H_Sk1gFVb2)q{u4Wt2KL#4I~wstwH6 z3P;#&+8(0NX*^!GDM1s}mUd^nv{z8Q##*SV_9E`9^jk7QsOr{}X1Qc%Fm;ML%In(oRey~H|_0%f;xS$fsGhpWp-UU!t0tTxyv1eeE zYEPaR(Y&(&9T*dObsf#B!xr?Or_A0N@t0o!1i!h2FB!fDy$l(cw?d?LWco*%$T+5(PCU^WuRJZ|Mop~NWbDPD zg4cU&Y*E+rvbq!dAID~mDoGbVS>I<8WTT;Kdf`}_j@~kkd<)l};zqSz_009-;rmA& zV@-tlrj{g=$0-~*Wfx?=5gvm@O|HbV>wWF4d}ohiDR0}=ElhqV9#xr0y%zCuHZ%l> zpepdFx+@U}yka|f!U)qYd_?pMcflOIzEi4(6zWPy&Yf&_FB+->mLI;c$NXBv6afm3I7G7KHM#(urjNbH)WWE-o&>+I#; zsdkdT-Gy_Dn(q4$F90vtSuP}iQaC$nke~z-r76LS1gg$g#!0Ap&9%&vcNm_skFt2V zim~hSdOzZzWqoA1;DpILYj&p4_O?K5gVaT@2o~rZQ_@mwaR_Y&k;PGbz$ei z1stM*n+h=(^G^MqMDQWE+E0c7=2eM)BA-@+M+(=qpSy-3+(5)d^Vlx*04^ROOBfB+ z!+Ig$gYYp6=y1EExg(@WyC5T`Gy0C86-+T5gJ$T=0()=@0VI(lh!X2ilrQR+sR$yE zx`hs(Fl%Z}K^cax1z~0ewf8ZSI)WB~pxXMtiUV;qE-069`vs!HWQHuQ20nVk4RQ3G zEvg;6jY|9leA!+JC3`ArS?ku(dPIKU+H;_wudeEDcCq|eJZb5}=IC5^sL{FnIS|`w zE26b zXPaF59w$Js8(G#vaeypQ!Fv`Y502Ef@J(eT?4ACT`)uhUh_4= zi6eWqBM>WW-@oD5ora5GMQ6P@U=%XZrYtAlUC8{+9i)(4u~1z6f@@|I9Ni4li3B2> z(3C|sL0h*f=}d|A_g#>XfT>Jwp+pvZs*Hqvw1S6u0~mNXWu~*KuX5>(h-%3O0(Pe& z=C!PE7vWeU1Iqx*z$+GndSb^^8EgUpoiW9lyU0KdZq`D^=Nu*&ED46alA>>Uriyx~ zC>1b0OR4%UXS-=94Ox=Gaojqfwmz0eRO*tGOw^sP zx1$`NjxPv}L`%Gyp8P{bg#5-^14nmA96ZrAf?U@j<|y&vVD*v^$wk3}r9~p6XNXF6 zAO`=N{v84`Y?X%UGZdGN41N2Mhw7K1xKB6+(U_;0*obZ2TZ{`+H>c%yUk`knzQZ34 zqBZrC2y~Vhi-QoD8ByX}V$gNWx!lQ`5p2y>he%o>&!B)dVh(kJ7)Kv*qcv0;pmVtrtViyW0&v}HWq-aSg#})D;b=FD6{c1hTp4pW?tQPW6qe&`05D$K zcWfeW>kBxOLz^t0FMa{Ss1CJ9Lao7tZ@DVWDf=0AYVMK@i}X&DY z+s&m~*cKwuhp8UwC`ImL_^`a`sH<|4yw^^V!uy3)NUgi}4btSmm;B0RHSCRVfCFi6 z=Hs+z$c-Gl0JA%VHM8p0`gKKI?q)-4P;9eQHOIpNyVGfE7)-U zG?1#IAyjyCLMk&GJjXnzP||x4f|-*yaXR@UCaaqn(Ts-WzK_TOzqNcA;(|y2!rwrH0{rYufm?=-Zt3Em}9PLNCa9 zo6gnCBB`>v6gcdy`eRU$NM|fc@bW@=16*)kq(+g*Wd)(yBz}c!4!{sZ`l05jrB=CC zEu%B##rG`TdaHhJ8^|9zRnh@Yxp0V~z$QqVFnrEyZCVC3)SV#;+FHXD<=1(s_>>Cf z2f1mnG-ThkXHNe3pxAf0Ye_7t|2QbtS|N&U#waZ(L;ti2U1QHnOO#n?25XbYC_+wKa_mKagKL)Gp%20HDjT^1{Lfki#Cqpu1-zQNL6 zkL64Ww(9opH>0=}Op4Wa36NH^gjCYnwH@rjWExj2Eq-bgnk#?IK5ZX@ZDS9p`AT4t z<6>*{u|C%}l;^C4OQI5shN3au=fycQrN-@}_FHzElbl@Xc>d2t*^W2#LB9r!ezd=Sn!eDM#y&1luwi_0dG5F#My@)^E z-@nCyb$Vpy*k3$4`XutkADMwURxK`&80o`obwfFg0NfAyX-1$VY z5dQyTK~x7s91qz7zudP)1<&PF)jN<~9|KAQ_3wPrzw@L1ogWizxgxH~w|ye}Vglr>8+QS7@=nYm??FDe$RWWY>>FLq^>R|@{)tHhHxw=YFfBN}r+!UhLblT%E zA^)ZFuem%mkMF4swevr`Q0$%BOguU{I;kEEhVB?lXlDZpDPu(aD(ACY3-}N}5%wUb zZVT<%mzsI2!0;vx%K-U50#G%OIpOf{5NOK79REX194=^t3b>pe{myBH`}WMt`H00& zrXcMeTAK3?YOqaXyy0XszxWnk4@a>2*)RS(hRft;l^Yzej?WP)4`yTPFXtCG?ey4r zd^RV03B9cehy|zzd9^H;RNbuZZ_pQ9Z_z>OQwl0VSTtyB5Zp4PZ#K==sOR1w=qcrK zt4E@=VzJY@&vp9ah$OPw znI?627VndU(YcaQ)yP|if1XShD)X$j>EuB3xLv@Pi*a23NAc-k!yz+jskm8fNz5r` z(UUu2zxNYPg$v!!rR()}6>IjVtB#FSBvNbFt7ie&wnubwMO-&FA#W(Im-2YR~{N?Bue_1zk_%7Bti8HL@a)|Z2o+o2)39UX^DqqEpJ>2{pN~*!d z(x9kI4)r0VD_VZISkblxF0$Ax(7z2G+XsaJg|;{xs5-5Nw>aj9ED2H4p@g4Jm%94$ z+l}1hFYkYOlLnVp=%$X;{CYei2xQ%yf}5OI-n85L?&1DG7(PW1L0}LAB_k8gg|uxJ z=ut<*Vr`nq<(p$8 z9D3pIaM4hkqD)9scT+9kI7!bNhQOW<1C-Bo+f)2f!$SO%^qLDOyPSDS&gx~`qQc+Q z2gb}|TeI85Bp+c$qOYnjB1Z5PvtMVV_Ja@R-5Bl%ANV%b9MUJKWv%43V&X}SQ<{Bt z1jkdyy~N3nH*1oh(V_6brG{;&Gd{LB@002*&ovhYw=KA*+4ueU|$cj_qZjYouaAW|hC2TFtgDmD6B?@ch3XEK)^o?yBDel%vtov-*-e~zC&B1L|z zQ-2RZ$R1@|ZH_s$lwxJna4LjHfH&OQ$k-@CuJEOsh3HVT+QNnt9WpJnMN0xPWwQrd z^FCem=L`CN)I;}at*7nL(E6F7h3pu*Kgez%9=G2bcZ(2flL8v>;CMh=K)zEhx{FRT zv`&ZGS0Xo2GF4w6ed$^r_(I{2$nYm6W)`{Hqb%RPz+&!-uw1s7sRcMEH8eUaon3d9 z?&lc1k4ux~ z%&81iNyVL7W+&tvf(XWNZC6k7t@6zs5_u?w+);64XHfOU?WK+``nl1Ea^2Iy(+b-= z?bwZ^^79@x6--QJ7W%e1Vvkfo3Sqy{Y1k4kTli-?b3(*)7eTROs=+9%+|q(ot~m-d zx5pDmSXCePK5OCDhkrXhs;Fek;s~3|J#i5x$;L49|=q19HYK0jrWX>R#mc z)wq{hOe%_{Vy1{VTmXv|ud!%E z?~3PAo-PhWMrGVw%EvwsVZ9%LnP|&beO7(^`#(a`ZTUWYBJZc-9Oixa*hMNFXeC8M zd`*cx5f^E?v@Y$wwXHnhixjDRHQK@pfe8pb7Z!8MA7rhPeG;)~FJW`a3sjPS>@1JH5WqR7i3usb(Z*D}5n05?8gh&03a8 zI;vM;Y?*P$YfmCwTP7hkOSd+zYW2=~22rGD(59CedWTsx<6a_Ly0p8_ll3)m)zyRu zG9>)`h;X73X}m ztYW?nVl(-)hg!26m5@ zK}L{z92J6!&d5a6ms7MYs<_v>>* znr6}4ZcY(AVwRZwyI0o5hf`?Rx3K?P#>LityVJ{ZqUW?E~WAiwEPg z|#E45VKE|6x$0^ zOdCWXq`jJAN%-Ci&I5t0ldq23(qxNWgic|kwCmX#FW&FsvEjbmzyQ+6^=xo(1`RqS z`9O4q(EM@r@Uw@6F=GG0aiY-lq3`>%vsptQgpIbr?hA11=Thd!nE}bAHvgK855GFm zE@~x>4gX7wsO+T;4J2ijMyFxNSQ;_yK2?yec8VYreR(U)Qsp||Fkt!QAneVl$qa|C zpe&@Fh7RGlEuWocg7%tqgq=R1+Z#TiudC;4=Ti}$T;|D928&P0XHm;JG6KLN%K3}G ziWGs-hUs&u%ulwI=vOBbtT>xAMT{4I6M(|><#f4R5b`c2ptOHe>uzX3x-2Z|g?$|W z3)6?|33Lpgj7MEZ!6l|_V6w5HWhmmKqkaQ1X%nVF8An5KfRJiPbv!y$oeq51(9DdT z@_0V0tPyNGr=|=OypVq4NISwwD$vxmc(8m~j!h8+kkOeQq4w#LG|+&|4^`J~8Qc*3 z5xp?pNAOY-wLoO@MiMeHF-L}XcSy8DgaZf`Z+}+%TUw~XDJ33bD&QmvN=!TFMh{bd zVM(133I>*%$4K*Qh~K+?TX^Vzl4jbR!Hk1c${oJ5@gK)GVxZwGw66%TJS`7i`T|an zq2Yr_*`E4FfhwAQv_TIWtQCEOax`i!QECLX_uv2nmN`y!V4cy@GHv8U>EP40IDI{} z!cP}rLx;WDywlIEkI3y;N2*A{=#7O?+AnCfjfS{MK>TGvZ;51m00d| z9@h=-I5Ik4l=F3|>ycB`)l(wSuRHERL=k+qS;^^eG zcKPlKX9l^BY&5TT!}LBv>gz3H(j5J&=2CMp%` zIgx2((=~~YF0vm-_USFyPUotFZsRfTS4LQrTf{7Vi&_vTW(HoR#J2I-jLx$qwCe*& zzFa-JXiqo`qoavhlBKzg+BIQC!qN>!Mef^gy%(o$ZgW?!y#-24pc=TA+uhn4ghsmE zF_1S|G^28unmm<$zS=?e*KS3hR#)O^5IY#@au`m{qgJDMOkphN zY&*es1q_iM*t3Mn+3Cx{oCb#Vwc#vy+#@yb2se4D=&_Hmf?mjNo^ku) zT_U4)v0%#DuUQYPrAjF3#4}XTD|MBjOh6721`D6>aWybU7*g$5{9@qn(*Mi`h)n zDoIB8xAlza+yaukx(+i$2D)FJqJP@TmPL>FTFnd6xFC8$fIP(<8xg;q3AzE z*2-r4Nh|VWW&WI?ml}`q(VjnSYDh0R_8_AuFATPF=cKDdV$mun=dbSU-@ZXBdUv(y zmHqE%^}VmqN7Oa#L*h#KEZJ?bl6>}ir!>WEBSVY~3ZMaH;rp0A@l^E+c%zq|ER3}K z=R92_q7DMQ!hOVCyW~!5i45Z9ijzUT6(_s0lZ{|T zehhuJ9+tf&Cw;hO3GG+UpuPe7Ke*za8}vW|fMM$k748pKmech-W%c1Q$I~zxece}~ zApw^l{{7)>dd1KmR$re!A$K`mb7O{#S~fwDowND-lsmypOlqM+B{4rlWV-vlw?6y` zQ3in@MW0=%hoY;gafyYe!ANWEn|%-Ig`%{D^2w5JaOC_IhgCg?gy{Cd8uq*7{lb1& zue{lfvBsNqKc!yJ2$Vi2(kMlINlGWKI%DmKxBo5v_u|EWs9wByv7HSI%2ormTMb4j1b$Aqfy;7M zFJ9D#Now!^yWa6Bl3poaY|MzfX{B^w)>am1bMH3GX>G`noHF$yKOzTNZI+;zJ=9ZO z4x3(Hm;t8kNbJa+KOsH#RDWBj7L$ZYNa8uF2N$Ve9tSg)p|!>Vgx=$R3TCVl3wm95{QBPqc{j4kO zG?m|M0ZrZ!=K@+PYCxh%4~KUV(v$s@`Jn%krSu6W-)>+fU7{=0MyX+xJf3E8)CMH< zYzW(3V}+h>=>@U%N!jcsX}f%$K38N0d|gdX#__o>rO=f%Qv38((N}TtDV9r-Ie7nDE zB7X%GC_;weG*R-+dAC@r!%?liE6pU4!(jm&5Fj2W#}-*@{V%o;U=w`A8ykp|EqW+VqI-!=c{o`OHE0+ zL9b{m9R#<31$Ig+JHekcl0bn8um$ILE-p7DSK|fhM|7n&MB3DRM{u2aWk!*L0fN7m zg6*xLz+lidcQVH*KE!Ao&8uY##u5p-tG>VQ$M-!sw;XvGT(h5wa=RWTEPn3CqzNSl zbetss%2XxWb433g*I9Ey4Ri-6G9&UF(ye(obGEHa`mzFD6-^<}E0L&@X{y1ndhn_n zS;N#Feiio}KfkX9Vhi-dQk#K$%`dK!@#e}c-Z}yg$(8G2odxgdh$sfCd;%;o zx^au9bwsnxs=?n;+6%wh1()pTA&bO!YV@pKOHUN9drQ_o#Ey;(cF0dDXzjdAb>pk$ zGS2j@D;NAMNi@~AEYw9LssnnpfzZ*GN@;c{@nK8X9JQy~uV0VQ8tZMdCvD6+CU`jj zK}~Qu5}>6Xar1+iPgbG%thEA48y7@R@Nvs4eO~G7vIt%w5m;U^{k1h6`zQP#oE-h> zojSHe7=WH=Yq{o_7L=1}UWt%ieVo)6|Jbd3g>fLXl&!q?_`W3NYH_}%WCv;TSewbl zg(?%lO3!c`n2T?6ck4QFzCyRwZmaQ#;YjU44^rY+#S0jbeN29431Xm-S)*O^6T{hS6vYr3yMA!&NQE zw{j1=8+$|_x2QPs(HA;ob8%?tLBt_j#LdAIXBcbCFkfI}bqYW)^qUv@Bz)_k?BlXV$_0HHpQ&_)#7UwD=c1r3T$q}XsFkwt6EAuYyX5idyf3^$hai-vdj zy=95Wf=Q6zHg+fVkZ7pqt}G45DtA%W--X9&-LEJjNYx#T{D;ye>3fSgd+kL#Jc^Qn zIP23M$~iX?gGed|V;jh#U>M^LSQtVivS}|jYCwuni?Ehi+d%BM**vZPU86gsA4A9a zEex0G6@!Q(HM_ImC6R(;Z4Z>lbK@PY@5^lv61p4R_ z5aOGvccu73@AyY9xFX<4s$uW=@n_FIKXC#NByU+_jl?V?!%Xo;Sj>6XK$*A)wXL#G zg(YN6DPuTz8Hx}N6*W7xoC&MJ9UNPRd|2__u)JcG?ckTU-gW+uAGfqCAY;m5q4XDv z3|O_LY>doaBsV>NtRc`w)I}rS%%XLduqL~tOKU(OPP(fS+{6MqyWF$kIIP0+Vy5&{ zc-(rIz$@LbMY^#Wv+=nLC1nEIEGl=b6F}h51r8!bA;>SSi93xY?ih;8nbahR5b~RI zG8YrZTRM`>7{odeh?b!c5NLdXRsAI5R{gJ+Rd;%wdw}lRV;;=dL zNWUE6>+8^P#<$>Jzfx1=Y)pO`9ffnv2p&Gcz&dy!>Ir`0BlbVw&ErBfSM zAtvQlS>pGw=t5+&WaEnQOW>;|n`}HlS2AbAH>}eb@sun?bD-*-zzC(@+K_^cbn+O% zegxMBtD#1C>`5feC7Ous%V=C|!%+@G3{SU}T+)6x>GJY&Nh1u9YW14Ss@cq}B+0L6 zTpv4-P#I3G3I$1xX^Pc)bocHnj2?g{7yQj?HaOe65d@-*DV5^3 z70S9}>sv$~d?52m^?XvHs>gCqlRBr7 zJ_2AJ-FsN}wl&}uiZs4a)OuPd3aV7d1hY%ws*cX$p!Z=2= zy4YMy9Q{erEuxCnZ+wd$;9oRx@zvWsXnJ5YG?1ln^u#GRK7RhJD)F{ttamRFRD95s zfPElu+~rMPgxm=1OzZ`_(HMxrGp~sBd~u!?4;UfDKzVE6#n}@nA5*MFR2={2{Sax& zdJ_aqo(P-&(O?b#(0AeYw?2&={1dX=I`Ubc??&a;ZxU5SxNLCLGx)cMIWz;uOak4*uLs2puRv@FTpvqT}h{|&Y*<4jYF^Lcti)fA()+Nh(k*Gzw%8gdpfHW>! zYRL2^eQYfBQ^<6w?%s9_+>91<%42q&9|0L*3k%B4S_Ey)Q`|swp*jG$u8qNT|6tpp zXsy;BMOuS$`&b9+BFv`Ji&?8DaJFDacFgd%yz25EUwO!Yp^rR*#8k<`i8PQ3F199IkMrrmG$ZQW!oE6h?W2<%d6In1Vb z6GL6c*k!4#bfHJ<(^3Y2dUWXp!@MSv4~D54xnyVHJrB0`?{5_BWR4}cr>8irf`QN_ zCN9)0D_>HStV?*f--D1)Nobd<%_ovR*b&O*j;vWp_{HSM_N+}J%;D(EkZ9*TyQ4y#6ktgTbmOEZ&%!tDE~IpAwFpy1ppQp%<^n~7(-Cu z_)D9LINLT=dmrzM+al_~lVPYcR%#xk0T~maOlOYf3YTP1T1J^8rd#%p-{_8Kg(n)9 zvEuK0-ULMiXl4d7n@X_&pfSyD`#ll;M|4xts(QL$kxH4rl=M=hkNCVI7|JorHKx6s z=h?C9FgSHUBC77Gm9_^}#rQXR5zR*YE;#>cAXzO$l@CCrEuckya&jaCX7;{0 z(XBonh|3NWbvejTKycCq3|P-Diu}%*i-F;oOP-Gx&SZ~ZVUk;>eQ06}i9JJ~Z3v`l z?A%$&=9cHDj5A#jpbVA)a|8Q?7`&dmLU6!PM30z7O6IbB4-n%nh zah&V*X#z}(orlGIxFJ!Ht?L_GPET&BfyXT-p(6Ju)*o z$M(;8M5iR9he_*^&{|vEmJ=c_#pCZ99=Q*`PG7AzRDa4R8LUMXVIoFpT!#s$dgsUu z=8J%lM)r}cF35H85vlQ&+;Pe5M-L7?(^ml(m=suvOJ|mtmu=NHJtgT6nMg&^?}%=iZMhG^&Zl2Doctz!>s>`zS|`%GUGJ97MD{(4Ae|c=Rf{L&nk34hS{_< zT{+OhC=^_pmmFpN!|IdIKO-WZULo$ZimXyX;g%8^K#6yMINPCO+2x!$so(sCaroaJ8;;NPO||#gQ)J8_fWh1 zzPzT93-865{rWv&47SwiYDYOsrA2u;HJdWJ+A!jds1)YoHHnLrTsgn!ZvvZ+pGf-@ zWosORmHAjboAVfK1eYcG_2@aVUaQ8J{Uvj(JJK(Iu4cR`Qot&!C-aQUi@v#cYa1d=iA&rh} zQzbkvh!}gM_BG#PJGIQ-vdvJFQr^v2ZQC*{Xj*l#ZIjz|ZM+``6-9646|sE+SEj!# zia%%t{4dGmh$m=Wl1=l{I8bd;gzvi!>2~`;2eF(P6N#2qge@|}HlsRS75VeAj_s9# zVL1YPgDi!FOet>(tkwf6-aNNiokGAmOs_g~xur5dgW}7v^a4}Z9IB%R8JG2}QSD@^ zNFmqQz6z#Vj*O*K0{8tl>6h9Y%tE@;XRxDjX_n? zRQ-6$d^sGB80(ZxEZ=61TD+G-6c3-kN}MOs9@n`ixUzTrruZKccRE9U$zgLjLkwZO zHyp3~oOq~s-+%Y#e*p|P@sZw)DIr&J2?jT^A9HqyCGmHE{$GVbG4wYQ$ohqPfrVMu zKhz(Oi2lU0%a`?s+?qk#o!K`E`qG<2Azwz={WM<@yafg_AI$Y8Qnpy$|Ak}Q1qxRZX=rkDJ3O-x5R6E8E<2bd+&&L6((r2 zNQo5KXL>8I09@xGsSjvPYwB=HxQ)-iJM%j#B`!msImu6y43!>yA%!Q#hg31Dn?r5! z5!Wx}mtQPipZcsn5B}`Q{m)%e(!Onp&&yR4nyZ}#k;K9B5IdY$U^A6&YSIVaedW>@ z5qhRf!0`|bj!CJIc;mc=RD%eLTGmr}F--fZz3?@fs87am<540=hsZaCiJ~cgaqsBl z@Y%`9(c@!@29XZzg$W1op@*P*Tr8c2lAQ-1u>;^+=N?UO7UFUGSf>5#Iyjbb8-N&B zM_C#kbqSJS$FYm{IARv&2rE_*b&U_LK2qN@SdG>U?EYo+Cr7wJ5Dsi3!L2^y1gT1& zi<8`Q^*#5k6_a0g-A4)g!AsJo*JcnYhv=EE^@_R_&SYX^D8qO7?d1}dI2NWt_UMR- zL0!&i?pYJ%ZQH$qlC3!-WtVruQ=`DK#VZXSM^EI_uT4I!~}zu3TQ61FD*{7_vrxv89Z_+ z4L4cfCd+8rlTCHwZuRf(pWMYFtM+c+0oYU31Jw=d2GyNgAL9#h1BU8DAt^l579I=c z5O)v+vd{pC`ofdT!`C)n2&=6*^R=pO-zgOgw|}xb7AJjKe%68&%fQ`T+?#YmWzF<* zu|ZlmtmD!Y9gF3FSwTc=YfLFRc z@|6%7!^&zTdhMvNv-{S;lPC9&?;SnI#Fth1#rA0$Q;hGZXc@UhO7w4YKR~=ev#KT0 zZh~3#jnwHJPlMX=WNt}L6{`VvbJXcWzUAd8HN; zKdC;tefQ&^+`aRYs{au=(&q68gu3q5c>3AC+K>N>{&=+6A8cB09S*rYVn3eTdG2Oe;!n|X z(=#0;^9=@Nk^J`uDZx3FbWo@MZv3G7^uhkYet!4U}e$`4Q#8YW^PrIeRd=fVzVgNqzX44?)G`@QlK9&pFvCi!mY8sMtomH{?K0D_9}+Cg`+j}yyw+0Nu(TV{i^deXw8kqx)R(Lqitg?0Q8k>t1;@FRrq(2~B#0W0zzge{WIc;X0Y<8>-i=%wrQwa>OY5T4z zF}dl2V>a9q+yv8-{F?VXZT)z-#?+YAlqPGRvO%px1_)w~!n5GxF0gzf+y(D>ZsM=? zE;a+UXfU=jR`9kx+```bai`ibG&I3owl8FX;3<%(SSOJMq+%(#j)=t;WJH|{=Ro^B z&4MF99^J=EIDoxeiZ+<2q}07b62x25Ws4x3%QMOgTx!+C z9aPBpX=n=jztRJ-O_nWfOa>FPd3&eYI{voSyNu%16lh>%xzO#XA+saTmOupJq~Sn^ zL?dxBbXNmdExqL5hNl@ftx6y$Callv4Tw7L`t)Q$1v57zIyF_?lMXOll!`D#mx``v ziAqLX66b0O<$7gNZd&)=!{NnzaRPxGwp>YH`bA?}W1CY}Gi)g{32p+bZ?dMH{%{Sr zZGpU!Zg+8TSJrr)zpQjzoxevovglg;*AlEF*91cYT>xWolDpfc^LNN$SO6f{x0>tS z{4*p&qgatzg*-&bkq~jTjkNl!?Tg}%T3*6j6&xfGsP~KFMS0$mg2WnJVg|m?u2t=E zevT|@mLqF|IE0RrI^dvpis7YBjAG1?L+vNSK=NWlC!}<0AxDzX1$tZd8kA00LJVPZ z&9AzwfZ3uma2ObbL=YyXaGj@hw34gYo6LPo1eg?*LKCvY&=QQBNk)%MGFgH(JgWd- zF|H^bt#nYrsk0bMT8D$2O(`Haau+=Vn`iEeG**W_;ly~NYB?}*)U2NbyAO2Z6Oys8 z=o$DJ26q6_qOq6{SX2}^FSgb|1(qrv*1Ghq#_0KG$!xTqR29Y+S|95~u|)~{pjz_K zeRBe!$gy@40s%Z4b9o<~drHg0SVuFHbXW2K))kFWYBR95x;XsWs_OB~%E{aOmbGS0 z(2ST#sC0=jC3PTA65fyKW+nRW#+Z!}EMRreB$;NJ*no1W07!a~+pckPL*DfFd>?zZnO)pA8 zQ-F`|%cIH=JlK?cq2s>vpTHu@r67v(DiL`^)vJwd%#)!RCTZXk&uwiWifgkL0zRik zo5lez$FHQ3TaEx5;fhR68&5ZT@L37`@KjE6)jiBv>G(oE=C)2>hV-4c~FTKVZ$M0 zP21RN9>x9zQFO9`Gj_$wvkV*CR)=XZi8O%eC}pbPee|&I1H?G2uucv|y>m_sLyF-G2Gp@K zQ2Iv*4!#VW?pTt_MQN%O1+6Ly#dz}wQ;{ZRaHDr$d;0ank$UZ2cYZ&@N%y&L46w`* zc)`k8H_>E9GjoRt3gnE!!y5P)e+O>p1Wve;o1x;F+|?$Hkpx-&kjEkv+a3ZOwBHV! zoq}7}bOBlk^>F6G9#R{dx!^4S%RAQ4J+0SmG-g-0@QuoVTcO>1brxBUr#B4?VzaW{ zzE+43!AK!Hs3~Rk%^PZM24GRt7jN)_?>#Y($xMYY)VL(9gRlVaSOs`l&Gh?(mjBCR zWS20xxm43fQ-VGzdbPOqxnJQ1@|pvVN|EtWJE;f%ngK}LYKvqaa@s}SStbM!oh5w& zmK@k|iY^#GM-GDA8QdPHs-F6F)sr@Ka`sS#2?4YTU zBl;Igm=dwHdxP0gZy$0k&W$y>K@+I=A=83MZX&OiLtj%@78pqS*C217vO#LbolFhe zZD$YLl$%fY>!;~6{E8|$_dan?*jhCd;qsnLo~(|y=s-;viNl-RRqA@P3N^UgtaR3R zCu`Z#gA!r&ic)B>fjU!9bs2qbsIKCoTdB7Oz5Wo~B4C}NEPz``)Sf?Q1~^^wLn;`$ zx7rkcro8o@<=$+vo7=Gc&=l0bRE~_clcsg9G(9M*_A;%3ZQd_PYAvhir_LJ%dc~-N zn#f0Nja!)+(JH!o|M7v(+en`?3cC4Z?RsDUPSJlA~+A}-cpzX;gMo}~&#PR12zUG{&YFktc`ABJX9*xex@;5f5 zec7h%(bUx{a`==#MazgBQitHFF^9V8dZp$wtkT)~dRT`R6+wK19l0LM2Vt+TtJ}Yy zLj+7M>AKDSN3lyuot`aF zSmd;g7x82LZ5SlBDn?wp<GgNcW$Tkrx=2y;Ud$FmuPItpsL}@4g-ypqB89d( z8frsH4AmkSNszE;_W%BG{+hqP_Pt;Gp8iaJ`%n07Z}Km1#OHtJ-+q&Se^=wUfB;m< z6y&pbdh)N|@iiaUe`BB<6TS7pu%$^ z_C1~0mMz%B*En`|;uwh&hq4IDl5g3v6I<5JiX}=mX^Y8DLW2NEfC2#q7fJL!yZb!$ zN9c#sWAy9!0_UlpdXI5F$oVAa_n&K3)v7`P#HAoPiEIi4>#{C$%{AA&PjyrA?p<82 zHqZLI<_T6Im0G)D*WaD^*895K{7|36=I@%XHC^|onO@nJQfFJKaA@iMU)3@IIh(CX6b&SrB0S^xd z^gnl#1>}OvQwhLad+u}002?V388<-na;15?`3+0^v$(fWH2&1KLzKqIJcDka+V-iM zR<2UX9&7HY^11h#wz z2~^I#S2_27<=h7qY;73fxLeV#;#I$!+#2)uZ&OXp+E#!g)9$g`n^5i4GKe}EX%VMn zu4(W{Y_#%K=O@p+*jFI*v?LR~LF1%*8 zrKgL#OH&7^n5Q;+;iR72mc4b%<6N#>y@yr-yACP!h|c6U&ZJ3gOdl92c~90)Uhs&X zA(Q(rb5;aQgJ2p1xoG5+3!2b!1db#z%U8F#S{PU`2>YKF53El&6ub=gezA*I4`M)E`>_a(`+1DeOfsJ? zaHGJ+h08@WM>FwHv^f8^@Zy|eac&pCIPcxyG;6jv1uvmrAkt2$_DSMdYYsbm-(kT* z%Uu4$fBt{ySemP4&#W-L`~}(no93Ay^}Mae@Z(Da!v4Y_JPioD#e;AK{N6>Lyh70m z`1HM1Q#YHE{_76DRHu51c;0Fvn;??mIc`LK=-{`z7XYFC1`Jm$_I~f%hQYt zgQW3IDz9~{08Hs-Z;uER7oZos$NclRIX9Npm8fv>jW25{*Os-Ezg1qL%GbE7eU7&k z0#;`gqein+xj|4TRJw8v2UI0^_k!dUv>6zriOeE>EDNCTEDNA3mLtSvW(UVrl|}gg zZZ*3KQi~b3jSI{yAL~6a434*1+FTaE&MpgJZz+*j`HOCYk^#6#5;<5Ml3s(b8tT9I zaISFpHv_n)Z*f_`I=3ufeH7R*oe6WYkXFXRUh&j;JOp3u$;u78k zq%YD+!92pMtfP^E*e4J#uNzB%hB*)p%3n{~vTvs$IBTnUAX{A+WbXm8mEu8mBWq^g zIK)xUaZ&4yA>LvMox54RQ~s(|CpAL^(@@}=2vcCPte$lC7v6T>8eUv@4c})CKPi3< zSFiN`^S{^s^S{UWD(BOe{ZaEv#IRXg%>&uLEex^`0om;(fXvhjRl;v>bz5Y~K!BY` z#dw$j*^I5`fvmSM$bJjRI>m!*6CdjXME+YndGfwm=4{eWZI)|i z$a#j9!x=fIlNr+cV!qaw1;me*1;p3>(CShAW%%7tZg*c?{$iE#I)@nBnMuBMz>QbO zyp+5nM4j*ycjKQ(?Zt(KaqZ*9!8Dysl);{Gb|g2CA5{2_m2STz$*f!^4F|C3`Wi<_3JXkisX=d~{9 zdtcES)J|33F@Z-;Mq@Fy=pKYIg|+F{%6&#F_W0wAO6ixEw_dl>dLpu?SjP2;VnMJJ z!i{gFysv%QthmI5FRBaOQRTwpmu`ujX%&~zeBOfobm0ZP%7VU1D|0Z93~0jk`_>0D z*n(wFo^RK;qPhj;kCX3f&A~z2T%Vnzpw9pc2JCe26JsQ6gUce%(KK;qKDf?T%;^5p z36l-ijqlN3d^fXnIWBbNy8dcJ10lGS%bUTO;QyJX*i>_AOWcq5N6--QT`n zdH1&;lvi*t``}dh?7Q#1TjAsVw;9~ndmc{muQgtnL$ps*(GE(_2#L4&2qRi`%e3UcmHhf zPT!?>XJZBvjuh^0Vl_g{K`J4AOq2N4&^Mfoq%_FxpwO1FoQ4D?e7kw`%2(BU8{8~^ zoP3YZo3$|5i`LOq8K-!sLsV~TSFsy$uMQE_PsA=VtVw(9dpP8H#BOtaFy9bqCH#r- zj%&i7z!;Q!v?a@syCm@t?R+gIPlsLdeSELeAsf42}4 zO+BmGx8pk7F&gP~FcA&NY{==l^@>RUOU(rO8bm#>ugQ4jGPtkfvWKD2X0jUjNy*5g zWT1_b@k2N*v}$fEUv0#H#Cw_e=P11^4ZDr$(EP3GI+=PYa?tu$(~K}4mP2hZPw_OS z?tHqHq`45gvt1d2zmSC@FNtv?@*&0>8|gD?(1t@DzYC{B9Q7B)KztSB$*5lM#AcJE za+v_00RIKW+Rj>@QQ>MriG(YI9P9rGz(R^t<(T- zzuie^40!u(^2rPWRp;pTT24o9SG_mSB*KN_`*`#*&guk-;wbDFzcj*Ey_^FSo(^QA z=QBWy+j3vV4)s6Y_2+SiT1BO_tWm(kaS? zR1@;;lXh50>En<}37ALG?w7~EpS*6&?o==2LGtw{(k#c+kci37pMc{}Xk|V{h(U3> z#q+15|CKo;S;ikY<=U3;>IbkW{FQ+GK)r?fdpHBil_5{ zarHQ0ykUXm{XwPE->ujvDvYAyV^wVwS#V7C%CP_$-Dr&8oa(+n`T3n4BUC<)Yb z+Tq{xk>(-7?TLsm;Y5f@%TBzhN0;u7EtNEzZi#&Q@lg3~^#g&gUkYi4%vND(-0P)X z^7FaMKCXsY-_l{n#fMB@H4{f>DIRdod7y194BFiZpe5{ilWHJkmphHhaRzE|I>!45 zq&n0b9Z8Z^ZCtU61qMFG9uSm5+sy+@e_^n+Vz7+z&|f0$Tm5Ivnyqdr1a-obAG%}3 zPzZmj&tCnO_}@SG@)@` zbXnHO>S2t{xUfE#2rR2I0Z z(q5iFUv3gX*;W*#rHHhf^~T6`vR3H7^{pGEwp>@esq3K2idy&J811Ptsj&$youpA} zYT42<%QY0P6irx{7hI=A9=Y1r|c>8hb7V<2DpP zJf0fn=j8o^_IXR+=Kg-#XCL*67M^bVva0^+xEcNy&&w}igLCD%8xJ&}`{v=3VFT6C zG!N1sl#Xd;g?3(w#ziR*Fl9jgUas=7q@!C32tBF4VY99xB`ZkC>p2G77h>#(A<%Dn&@D29TFbSzs_oP`-Wb z3rnv}i4LV`B0aC?8KQigE7Yp7(A91ypsAu@%V>TcF!9a}@yr26QZGp}1%=y3DV(hjQ z8yt&e4l7AoE}LFMS)5Svc-kU1G}UOkbq7<3GfPFbv&8(N#6aFNQ!@-l<1&*X<8PHX ztlh4}@QI-9bF_G|{htiJAsX{NqPZuZOzRnQY(TG#TbdZAc9x%T z3pl2q7c>1#r_ZFZz}%DcV0NBoT!&dBre@?lbgo*xxk8X9oYpwlO{XpmPb)z%(vN0n z0Jr{&4rmnC2QBni{h=kxCp~5)xhW3-o6w{>DBs|o3YjVT)a~1T`E=>CfE*Ys$j%Fm zbk!N89NSW*S=%`hn1j8QY#3YIhdq=$@UPB=Qscls$}V&+Hi_>ocgfS4%|NEx9qt8Mvy>WSCk6`ZFoeE1|5d`nuyJzM$R-Hw!u;vw6C{4HG)|{_Lq=82K>I~4n zR0kE-9ARRBt_8)6t+^xz*4*-&lMBwTd6u(!pk2?wbNwx?l2PRt%1tOJIi^t3o_qGd z?G5a{VntlFv=a3)t?YbMFw?e(cyA9sbBj*4N``lPDE;Rl(O>4;0^`V!SEY0s6ZI%@ zOilA-bJY!MMA33hrGA~I!&Pu`Yp?=0W)%^^MJ-OdyVvcXLYI8y=2zw4Sz*f6(uJ#p z!)QstCzsy)wYxQbFQV1BL zINBAJ8`twx(II(#wVj6LgX(gg#o(Q~6{4Wl%{^C^!$X832kE5$W^Z85l?Wns4#p7C zF{isk*--{%&}i860YtJV-h=CRj^plU#2m7gdjO$dwzM`$jra^bIPTGTmSqBh$JSUO z*?2s^A8$+GxT&bHRBgEH3aRr)F0x>T#2iGl7Q7N(q+t6r1o)6Bap=Vch;sM$9ndpGex_!rUix4-pGb?FDDJ`I;@Ajl$vQ@1nHHze}LJ0~TG$OKaJrn~{ZO$qZd{vd^GOXJY zT90AGmt}!z^w7S2S!!&tuYsx}E^vgpl=7V5B6bX_p@Nwdpgm{|s+CKdmuy#9;Yb0F z9P!drioZ+yno2pi#9rnBn?_{nd*+?e>8s9wZ28f=rNocsO+s?!T_4nq`q{j74r|^b zjLE#S6mF?q%|YmXcF|XUR~g!@cQK#|&Z6TUod@`fAHemE!4YY``^`oJoLkx2xW0KR zM%fzWuY7C{(l3;CPzo{I%otkIUh6yXdOR+t0r8-^%mZlYL|UPo)(r8+PG9h-ICxa< z_uB(BA`X!~G|a^6ppn9NLBkN-pfLf%=_QNS531KWF#NUfAg3fL+qwJ&*`SZoi#qAC zyoLCei3_nfUaxgC-V%lp{Ob<&Y>cU7umNQq_edU4e>)MVv*O(-tMpmSDw%mCbYgI;bv#C< zCs#~^d7!vbC@4nRp|7l_)X^Cn-U6d%iZ_B4s@7^$L{L^&+oPp>DtjjXa#tCNjmkq; z8ausVwU?ne%jqBwRGSk)#T#E*HLxS5T9JLXl6AW2i~C8Y>b9z;YEJAnRWUw1w3|#d zyC0X-$sC*V^Sn*DMmk<7DW-IhPt2d;sz*kq14^mmuC4?}8{e#Fgs>u;&0EI$#ARH3 z^Zzd1{8>K;rmJmm(1L&=A7p^zfWe3ZqPB2bc>w4Y3V_iq|6;-p=f=t8-p?B-*Cq~? z`!6D0s)`B@#p5Gl#yoT^%8yR%l`CQll<=W^{j=-k8}X?btl8LS=A7ayc2cX)N_(e0 z;iR7M;Bix(JvZ7HS>&!ry<#f+sOB_#TnfBUSTMfo;x`+%^JCX10OR2|dXz4wABoTf zw>;14PEBm&Aj($A_teexmkol+?Zy0P!+$$&6;)GoEAuiimBw=yQbsH?GM1|lW6F-0r#JrP6kw2ehdK$57pdHY#33cJx^Xa- zi36td3apkD@oi;d#dB5(!XYUpGL7}6GRGBSFEFpLA-pGn_ikA= z&lj9yQH$WciUT&<`7$a0%yTAcXqKIzE9W{?@sq+{2t9Y3n#ko1>Ez*=fVL*y`Ok$k}`L?6Yy!;h}`_>!_F^r zI+XRwqT3$mzR8=W8&;U%X=*o{okLf$)rV{baS`CyYWwiYp3SIwb8Ta*TT0c!vlFc%gax<@>*yTyZK*g zCP)m$z1Y+{QOvz|{dh4q{Y(rszC?h#I1z9>7|5Si#SOjF=( z4^0CM<##T`kX)+SYjI#mNs-P3#o)Wra13PIjAT0VRaJhsg~g1Gl8PY4HN+X*@P2sn z>{-Szc7uGc#^;W#QVL)UF#L(o;ZGTK$T=_GnHAOvoV4v<8eNreAbgL;vXdFh)Dlz> z^^xD3MS#3II*@EMh@jye%P$p#G2vXJiDrR59TgcRUf?iL3M3B$%9586}Fmcu*9 zq&mMTo$Hb1)p5C0V5rq(tnTwvY2umn_cawp8}MF#cVlP3@lS;2T$pP|k0QEjX^wN+ zq55?DYk^bx)CF8V!R^iJo^t_qiq~Y5ls(6l@rRu0y%@fHnHI!6da7z;Bdy0?-<)fm zn`1JzN-(ypiEGA}i$C{Y|3-y>VPem&y+feEVXq|z>#k9P$~mT&e9Gy* zM*K4^c*n^!1!Az9$Z#j0T%V4>bI!nnJ3;RV9tOTXW@;dvX0ezBSTi;o!;LS0H=z4z z1iE((bnJ>jv`Z%*EB`Y7J*FRE+~fzp=P+A3$$ajH1(lb-BKzyTZ0y76%{*{D_Vgru z18+R%0@vm8==;dhx4b8cCt`1oREM|lS|^Oy;KHnZ871BRE1G6P$fj&84`8oO1laV% z>}A@S<1l`~UdtzBKQ&M0tCTXI1vIN^&>Yi99!S;-0?FIOgT$xAQ$i+#2}xH7JFAyh z$gHC%gzxa4r`FoD0PR=N-#tccY5I^E+U1=V;$xgv8#i)`-Kp)%&h- z(70pD@%3vPn-fX;nHd`cR>6jxERt4WyUT{Ut{VCi=3rDPdOyl6|dl}`C) zZO|q2ioQzx-5m~yQdqU@07%*!jl+REM7?;d`gGpiYnN=W7^IGWLX04ub{^T249 zHvcYx_Cb_Ymc&y;qG3$xv_yDN#J8YZyGES0GUM4;2$c-n#B#w@*z;<=dySr+ z#`ePcG)nhWQH5qHAl8zzZF_S(&kDjbsCK!UjhllNMwO*1Jl#dec zS6g+e`H>l$^e6G?BG)`~0R$=fVoZ6zAs<$FdsP%Gn>W+l7Bx)y!|9|IpKM7W7VwhJYTJR+BAmra+&1bSr-kt7LqOnOw>~tBp(U>0Y2cAZCTw=;wA8o8uN`$WIGJI;SB~3hWNhamj<*?oY#$R(_R(Y^` z*fgzxYomnM`=AR~db!%S>@{&e5$3z_CigT4eYe~0I}-@QB~$g~TDx^f)2GX~H*Zny zsWI4TSm9e3V2x}S0<%`O!j7mSjJZ|4EOx2ovQ58l+up^l$Zk%m9A!Q-wium8Z?NWy zz>ydD9?Y<)!o}04iJI%u52vm3qtJ^t0y18-TI*Bof$LO+Q!8dnWB>pv#*J&S|2ZO*ukJu%nM`Yd6%koQ&_CY<)deP71 zW_mz9=E0I{3q$kQlc4#r7iq=rzDphgD;qL6Iz&UQOBT=yQF6drjcZV7C-#-oGdL?3 zZE9KbUzs%jD_)J_@FymP&PzbEx3p<)`leMmZ^SOqtDMhKF%{S7vS9M|B$%w4>R57@ zpSMV^xF)08-JN|)!|FxCG!D%A>aylnnKZxO_%#oGitGrLy}=j*OWIIRPi=;`mNlz0 zlV;^=>ov*ZX~#PTRn)=`zB=-f}AQ17+!aTl}z2knV!^F2;@G~(bljplC;aTqW2GpVaXIv zDVb2n#%Uk*DKu5@VX5sz?MKPe#gDq==?BC1pe1c?!iAPB=M9Ia=Q~6>rS#~lpi1&s zbQ`uLzPsCMlYL9u?dryb4PTW@I2FvtT2C>$k6xT*b80A{&RD!XY zXb67=iHvAikyI!9{GoamwY+S(Boo{_N~=)K$WU^uYP)RC<%YYa*ahb^bf+v1juh7| zp}jEdp6tZk(jIkyOrN0-Qx2s`8no=|udds*ufMux93X07sbf~lX1GwNrXeo*>t$gq zlMDF3fApy?3x9q$34e~h{r3O=f8GDze*5S0x8Hu7jdgct_!_F|GYO&TpIP4`6u&#D z_P_nM{PC>s{QleR?Ras0fLk(<5DbqPaYunalKHUwZM>zF^^F+kRO7cuXfF0DEHuIPc85a%q^%^LjYg2pqqd z3mmj`B1yOMraa}YdKC{ptiXu@3T2wCLoJzu z$gUz18WB8yW>X<2w%bxK#Yj3*qpNpT9`>NpoZWgVy%fvuEDwU`=UTWRqUOe>1cIa7 z@rl;K-og_Z2rhNPk6z#~=8kmHzd zZW6X`mVlA7Q{q&^O5xbDbA_1YHkLv=%%#6IX3|XTmL2NzMi1Z7LHV;r57lI&1^XB| zuB5yMO1?Aicq#?e4e~!WQJKcB15%4B31l5jFXfWKLho|A+v@cPC7wLA^Sz5vRm1R2 zf`#i_Hj5p(BoGA(>eA|JJQ6UoG%`@9MJ6pl9gfy%lD$73vnEkDMv~o@RL(9ZL~T$q ziPCi%BKg)M5W{;d1;lw9X=~y}nuc-x!^ExKX$&r2%5LrWV%~^$Cyq#4o7Zdg+^rql znR#o|^5fpm$6Fo)YoiIss&sm+pOJv6hnt(lo$=kC2` zLnsT5-~!~-j($)eH_%EQE{`_(qfP#3lmBCG@;qkZ?nGu{8un&0VQ)tDa$jD&xqk8b z*BjSvu47L&vU%9(N~sH>9N+<|tjQPlEK}K+tTton`cp`L9gK?^jf*l z+v^f#fG;WZ&1JUM$$aggO7y{=nM+M{VRXUKG|OxA%!_wcs%~U>mqsJ2FtSR^jf}!3 zUZ~>PEY8jL?yRV{)$wOqs2AZ(5KX_ZaqX|?M7=G@2`}tj=^gQmM%OuX^{9EQQ@R%& z4`c&JO(Nwuam)i@a&$agx_Mc0b-%kipn^EE=S>|D90pGDp+itwiGH_j^{xGhf&Z!< zmAZu{CiWaP)W_~f!Nd~B6MxEGn-(D>o=0N}JKbuJxD+|hdhZoGCY_(GwS`lgQ&noV zj)`%1@v61CyMxbXu_#}=wZ0(@O}tu8$}hPf6%Q!b0uJwi6W138hZXeb8DQTd z=u1)bprJp{CZ2{k{re>1^wzZl(?~&wHfrcel;gBkZkXmAtqH0>5aiZIfE;|C{-t^5 zqzRF;fKkt(758xuCq91?3u+ z4DEdRi3`ONm*8LlZg+ckcH5AMOU|drJR5e2$TX!D%(4_|=t_}oB4G~3yMr70rg6AZ z91@DsGbNTI9!<2ibO~ep1;p_(+GE&nmew@OQO(F|hy@#-ES5L$pOh+Dx?4{ROYN=? z;BU7Z9muOFP#0a8g{jK3KO)p#tZ-gY_(!2MChXt8W#jcR0;cFybO1C}A_R&%<)vnR zUYQ7K#lA#>fD$v3%C9`YAu2WH!S}LYnOtz6oZV0 zQ7S?Rqj|NQE=R!wmGUi8f>OyaFS#;~!xsXCbg=sbqJ`$0tmvC z%!!hvAc&=bRaBFCa5?p$;BqyFi$8pswQ&rb?r3QvEQ0BYfwD_jvKSQ@C|m$aj+sb< zrodM7pz~qz(3#phE}ful)Hd=uELL3oS&VhvBCnkge?ASSW1r2N{1wyN zAM{}3tL2sTo1cAsbwi-?bIVS9n4Wh2yLk|}R}=*L#Y5l;j^2qm&>rW31SZO8=C9<< zlxs!J)ipKudQZ3CC*>!*!3g4Ql#|b4FJ&Z66kn0^A~K~zDd#5h0d~|58XteVgwWM* z?RYPqSV1Na7^i5B60@KO3qU$ zor0zxn$PBLAf75;mNwf_1M;&@V!v?fTKVQpx(?`S_SQTj zqxWakS<&bpEIKySRk@Xd!SXtZn>SGeT|+0WtR>!ie7D<1|AZWuq!TM=j?iKoo(F_8 zOGY!FxTo=ywt{jNvV|vFkMvPE-+PxxQbbrQ9M9lD0+(DV_jk!E)@0Foma>I~B4G+@ zThsI+oIv*PFuyVA{$ouvLH60(jX}qk2zsv-1-&29&>XxAL$OVgkLy2^xF-2cdH8XJ zAqsfV#r(&4S^i`^q$+7h9oI@8T+S2)m($CD%NYwy!F3n>(SgG^0zJ{2>yK+F#;fEz z@v*~bnJ0kiQW{iqG@J*$D@8%?vt>Zgd5HI9=fj%!s;1mJ3xq)#Ra3U5!} zPJ*iip}2H+(N9b3#DiG4HRk1+u$VQTEDAk&*uuliVK%x~pGXI+x> zy&1|%`1v?X6ExUPNY*$CmrjLPBZTlH&o~!Ap!(8S0G0Dn&Vce8GCdmM7a~mSTbFbU zM?}d-0?>lFgc6;#Gi!2ZPBIFGhpQQN~21g$m;hel>A@ozK zM?GK>~f;zjQs`kJS^!^{ubVQMv)o5vPIla0ZaK7%xv;j9Cpi zIX2&q$88z5|Jz@8s+e^5I*t0jAV)PC#n ztaArXKO2rD?zAaYTPYbMe}z9$7pLY0;eL~`klagS^vS(m83%^EjAuj(n**;oy8*hv)idSDkr@d4Tgu)Jn!et^uoL#juUr@Gru;DKydAJF>lGFkLvSXk%9N#dFLIW8Hsep z!jBujnx=)M0qy8%U*XaCC)(==MFF$52r#GH=(0zSt0b8A)EPbApIN`pA>2Wb9%S}( z=1vSDzC=Lc>qIbd|Cvsz{p=Y(a(j+Lo?dL%-XaN;s~=;o)12GE+{j*per8C(r%$re zKO!C40VV*#S=wd=}*Kf}de`M6jDewOErXUN@b<|&#rsepv9#N$%Eic3A$C+rGdYR^%j+Zt8DAbC)K16M zVJqiSg+R}h;|j^Asksah3vF-=a>h3w()|9GCsn8{X4Rs>H@k9+lD^97{b|tyLN5Jt z$rV39vElN}o2f*ngrSPwJggHIfNbftI!rX!P!Fa52LkI+l3BVGmWNEkVdUOCW8|H5 z2}&+xscFsw$C1_9W4A8ESY=!Y9IaP;nGSV05Nm6;jVJ;Ya~aXG&?OCThX~a)bP8!N z52BAf2b=zO^YP~C_2%mO3?5iv#FoHLGsnbi<>~?~w8pz>DSnncgj{7&wia*`?YuNN z7HujI63;CI64UYO$5kG7!@ZvC+MNSCD~~E10-eCT2!!NvQed*nMXdurR>?bl6t}`! z`Btk&2z3x}9Hm^;LMcaCmDuVQI2!qw#EnGU18F(~in$s)DB?WYAMW`4*P|@!Kicf_ zQ0$j;qgdo?`q&TSy1hB%b$#nl=Q&yr`VRNRBY?0(0!a81alM~TMAm5}g{R|f zH2cy1!N}2G$DK|I9`_F$#NIRrTf%IN!a$BMV|L{HjpPC3%ees(gk7(zkz8O2jYh68TQo#y> zMrM;_@mS>=W&mNgo~dK@m+Q?aHRQoQ#o&9Q!IlkMWR%uwN`g+bwDZk3q=Cd9Nf=+h zAEj22I)cZOL_;NI-t#FhKmUS4x8|T0`qS2q;Hs&%MHd0?R)jIE2dIt})5kIXY(-g&7L^;qd7{bkw4my@T` zkIl+I(&KuR)$)3yM@^QvY<#Tt--%eB<-L zbsEm*=P@44Zs)ujsXRTd#FYux?{lp8j#k}y5y4SqZY_#X%2cZ*2d zl+3LpyFJG0ix)N{0bahZ7F3uxVB}Es<@c$DU1BfGTIe^IxX?dyiZP6mSpUe2?bvAq zTdf}x%HMV#?Se!0xOSEWn_n*xHjU(v!;8Sw2ZZK1G2ZwLCw5rqqoKR1kkkg0B9;=r z-o>PmZUeiHrV}=u>lH$-Jw?99uXN`IVj|V>w)x_2mE&@ z0)HCjYBfQWQO@S`SU2JTD)H5&8kI7z{8g7@Sk=1jNI9s~eO?4sc`H{huVlc?BvmW2 z*%7F4;XeN!v;WwO7ZwK5nFK_md+8jEhdh631JmsI@4^^EAS+MdXf1|@jc&Wq%G8LT zuYr+i%P(!>OnCz@9zVWHGETQKHBPrRmGYR}yKbCW>E=w*!t_ndv4I&Z=J!KzsC=v2 z!fmLR-Ne339O6yd-)JRXk5j(T2ukVhJ={ZFRI;A$-GcUqeNh_nGZF*OE}?wgQH0%6O1Cip z4M`X}7LeRnc8_A|mexn!;&N@_|h4 zE(>bETN>0pisFZ3x+@&SVPXVma%Cqz0^dsL%|3!=iP`2;Xl|UJzulx+QIEwMqJj7) zvbJ(zVG{BC0v4nIK~D$K*o+Pz#r(VHrYxoO@UY#bJa=ljJ&T%DFvzg%3$_%m0AGq+ zgin*%kFw^kUBM_W^B*$4sUe>5pq2F`JS3EefA#)2*70q^7siz-+y$4fptr&-&)I~X>0AYzIE z7jN$z76|~uDx8wp4!ig2NFArkT1vSAG$_FwB9VnlDT5#?fo~KvE*s2^D;JsdSd#c) z`xoteKt1Ly_0Jbx>Z>BL|3Wi!@L;dnYxzued-EGd?>Nu29sG$VUuVOII;OL|@>djM z=A4u1eM7|{%a`v%ID6O^P)@t|oy@p`VzwpsEsjmR=f7!jK>7q7?W4efJj1d9vxhVg zA;yF5IuAoWSQtaD2}8~mk0GB#7y>8RFW+u;K6p>7t9%hVt^zJ5DNBRHy6<86mvX@} zkN&>=-qp`0@ekMxq~Md82z#a3X zau?&suAFvA6IZRDapABM$DsREb46or`+c=c;aG_oC7zCI#fyyeNnQt6KFX236FD>}KsIZNN4n?_eFTA7>mkBvWS{5tyjk9zI7{AG zZC8nl!e|kV5myfW>>X8Xj1@SCigOuoW6bh&mFWHH8#s>9o1NKt7d0mt2hbdV!#>4S z7U(KG$z(v*dP6=f3A{6hmBeB}Ez!Bn*?iu5__pT?*@*0J8zMNap*gsP=*4_~;ieRn zeFYR6EDczW3!O%-(eI;A_U2=8S>1`~FxV*k}>Mx;n zT8)1K(Qe`vn?|F&xx@wi-5s(Lv6#JKXS*{z*n!bkZcq;N8doja&9?h?T%?@3dKlm> z;pfD|{o_SiPVho&wP;iEs_>=Ah54qCg(={8*Oni9yr1zNno;rEV5xK0Hx2ta-d+~C zwh*!=)roZHg&R4q1(OHn3Y&Xm3Nn#ohb#=FQU0TAiX#@kb>Bf=hVnCu_b3?{i}AJ z_^?{Dp)W`a#N7|uDl_XVK=-+IkjW)G*ZX-hexvvqPe;I~2m?KHf#|ZRkSUR<4ojL*6UtcZwHf zJ~Tc%C$n%2IVD{0SOAaL%$eT?Q^;qu_rDQz5@BY64)S2XH4*mHaKBBkX@8Su<`8DS zwAb=QnGe^mk>yZ07Z{(ROO|xsXiwcq6X#N47UuNhe7^a3tn}tB7?m9b`KRMasqeO><(~mish5^D>%kId{p2n_-Srt}9KW!v z*$$UD+mg-pm_>g2rPN+XzmqrXl3rLyfqhqVK0z~coNJ6|0#-j!Cu_*~<$WVP*XZfI zS^i?-S>DquUth*7*@nG4$1Ljy>8Yk($(!$Q7oP8Z&G)@!%=e}KA)#{B_O>cIbbCrd zF@BA2q$i&LZXN_~E)0PqLEwvJK;X4e2-x~hI$ZNr>b?M3k}qD)$@fSIq{5Tb^CW+(+?0E*?_2<<6ED%^9N;p8`H{d*JSWyl zVh@c1uVO)?(3`xbMwi4(r}DR`%YupV#ez0Uu6&vtaJI5tu9azr8vG-_+zPC%1 zM>M#$FxmJoWA`hq|2Q&}AUGw(Au|S&@eeI)%(Odc)RS!QAO`B@?`%B zDMF`uexAAT&MzV{Jk$e3Nv@1~@K9DEFy%{gXa+tO>5qowH3OU>sR79d4=*EXm(mMl zkap3g<^kw5ay{+Fs6D%6|LxbDIN*weuJpdz)Q-`NOTtR|z26Eq{IEIyy$#mJ+^bB}Z}dn<;x|j=?6J;jQHY zUFtexpJs>qvmq>#>E&ohM6VMKN%p-5G{KqcRm6~afsB+g{qy6rSx@rqaWIEpeqP5; z+CT1Eai4)^Y~cfq7TH1ZVir8tCvAI-pY01TrxrMVJa4uy>Dh%Oem~deXlOo}-{E`i zs{Ux={?FO|FXz0F07^2^m?!dJbE+uV{CY9i6d)1#MdFu1d%6~7_4dVLq8IZOj&EG@ zl>|lZ!!nH$izpt$+haE77XooYi>7FZw&I^?%ibtzp{^~qQ2Ed)VJ_#~k_!N**mzj% zq+v1gT0CvOL^H1!HS=$mG4o%1zR9ue6HDt9hf9jt0%h$_&hnhSTt4pY1eDs?(>$IB z!hbIcg!dK$;dFaaXUbT6p6-p+eEf)G^K(~lr;ksH0_(M1QFkc&V3M26*?W=cBWGYe z<%;hSI~LX1>z7wt{hK6jvaey{9wi6!MeK*zyOb;Tzg@bvaq;VojcYg8G2fJ=2|!yy zFcR7TJcv+Zka(m~$KH%(89ae)hKW4H@?+`)GsaWZ4-Z#GledqY0)}>z0nsit>77L7 zLfsxWLvpwDjubvA-3NWRX{(Nq+E1w-9>HiVjPkY)*9zJ^`Pw?#zj#B6H`H2HR8sOj z=nN_7gmn-R%W5s*dthE^pDV{6sl4T)?wqYk)k9FA-clZ&;EXA##fJosbIupUFB zjxraiAhy$Jw=)jNe+Q#|Nb6XQuvV#|9gu~hxI5p)jnK3t{X30zW57Cd8lVp#aLMR2 zCqY~mX2POpkotvu)vy^1IlmK2y1%q+IBqT((~Nq2Xby!+1AmL%+h^RgqIJ?HtP^4SkZ+bZ3Y z3CUONFyoXIk(>?Kf_Qn@sdici-67|wr7hL9Dp{!El4X_)u|Se* zJxHwVB?{097^EVnSCg;P&c9&q@aQzrh z&fUCGo|!mG-gxf7^-^&HJy)_uw!9~fwWy6w=j{u(Ze3o#bZv{cKDqRN-smCd56Yk6 zi$KxeR!3`5MuV2kIXc^mc|iE&I3TVNks4QfD6}&e2y<_3^ zOxo13^%x<^Yimm7gGfvi%lY%=W^1q6=HH-HDwoT4v)&lF&aF!PU-?S6cdy!$Qwpk> zzFchMdlj|9f0xkSNX~4nmd~9nZ!`|e=iYhe!}2?4&%gWO`EwtZEALPX+&_DT#H;7y zmHWe5vUuf>kE%!2Ph+4}sNUQsHEXB829^80e}A)k-ic!6&0$X=Mjs;q@O%64Qz=i^ zhW(@ZTBAN(s}7@AF4oSM57*pdBM+@c)A|%GR%>Ui+uK|9UD@1z>BZ(%ERJ!t)KkAK ze|%-_!kWMLX|KIjt*s63L_KZ{ca$#fJY4qqve!wujkvOVuYSs)FSs>GqN7a1z18Rv zSHWr&6E0JaPpgBdL$bvFTJTh@wR^5}|9rW8jfAkOU*F(BP*jU4#?Z-W;Uk6WaL{Ut zqqOv|7q4BB3(v*RuK0OE>6K)2i-cKn=W+QyOf;6yx()+`XYbnISGL%;9VKc{A1Z38;13?UuQ|$KFSzUT}E|U8ibftt@Y*GBRG3H|YUKAcMbGP;|t) zQj8nERL5AY*X{Q!2W%djuIT~GZa{clRp6g-RRU#W5i!-6pX{KA4j_I4>$BQY>uy-8 zWiPV?SL`%A8C#glb%%TcUIFwzt@x|AgDMN47>jYf?Q3Tew}EN!HgIf3?r z)|93$GoL#8PA!1BZ)r57YzkIcUBuA@z9p~EK#nlzoDY!ZGQ4}z`A)k_Y$lJH>eLn( zw=DDVT1{NVq=NP1_8n;C?p@@DU7YVNuIHC{bhUQ3f0@^vs#NcF$<-cZl+U>o9o1eB)rsvj(EyuGch@(kMzl=~`R-QRL)7N9Aia8r zooon}ykvdGk2_byYCjs8dq)!x8w|m!NuMw}OzsF?Zc|yuB#w&L%(oU`nOiwG@Vphv zKx_iMl&cQDfMiE3mfPMMNi+sjz|mY8qqYl}EMgdqiM(dft^l=xC9`wM@pPi{3IWY6 zh!QIY%+32mr72`aAaYdIqjy^&waBc!Rjn|9MI&MbSl&I%ES<8MJ{Vu8?}??O9e!** za`*d89*)kN50MDDTT5HY5PEKRvRW&fS}T5{Y4#cx4C$IL1BG5!WWvi6mfgt{C5KHq znSg@M9X3A4jvrD?hon_^CZC2HvdJkcjIPHJH%$WD0J!@-F;v9}h zwdfGi#vnlZerv}L(zW;qXTQfpwXbuSw446$v)RVGCrxa}(7FEZ1Tx1&kUs!PFRGR$Nq>aZ&b?6~ZE;Ar(VJE;KYONj^4TiK{^{vo*2j zUF8|qKGW%di-u?9&eDK=>RD@+?Ea#U&feliE$_d6i)e-;G;Ku5M+1dr@4<`4rW=3) zQ)tA=XIm5KTpNAq#r@{3b?cseyXKpsM8$#nL<2xx3X=t^Z55%uhgBjb!g9S>#UCRx zddfhnNYP->j?rq^qvxKh6&AwrruL7~1wbyaxdW?%qc{`^iGa%tgG}EVdA-rm{%S|g z^C{A%E#vVUpY_#%FN>L>BaqZ~sMA!49H}aT@xWrD3{)NhfQM5v(xtEjDth4Qllkb| z-|!VlpMkPxr`Ns1styl*YeI$t@VxF8%%iX+%X5jZZ1*St03wpK7=r2w=X<+NB{o3< z=X(zz&-EIDsMKm(WDyn`oDoEf(>4H;D!tb9!*M8J_pFkGnv^z~qn%lM42k(`wPj7P zK))Gq;?a=P5JlKBfOP8*QSJl6!#KYQs?|o7%of_E=UY6Mg|rOT!a9ub{3U>b4A~ny)%A%cDYxt z9V7I{UBt3uN}|l^IFxvc5qI-sDO33sA?Ow%<)*~9MGVuzl!fKnqJ-PUCEFBS<`!!U zl4%9oLIm1Eq}jzq*}~-5#f8`fCD?rNHKsgs%C3b8u7ydhGm5N>$g4#Ot7%EK7%`QN zxTuU;h=5v{bebcY79y7xCX^N>kuD^T79)!mCWz)sp@oQ`#mJvU37?7NS%lbGh|HM? zoM~w@D{3}>^+>M7>$oxA#rlz4Ii36TBe^nmh8G_k^NyuQawYCdWJ5^VP#?*affyRQ zIzN&taoHSoX?`SEs`_z`>+&PHGBGM;qCLzx`H@^1xgS50D{<3sPST;9@gupC#16zt zm{YRIY_22mBe`-mSK)tZxiTBhOuEtAL^Jnyrb{-;>rdiqUsH(~_w!sFM!a3^?WxL= zk_>tqY5Et}PsUI4hZ05d3tK9sB)@5{-rx`AKiyzJ`8h$eEmWKD{)KDJOgMCjMsAL6 zWQ8|gBF1NLNc=K!#YArnh)m!rKQG1uq&Q%&JKWPu8)LiiX)i{j(?5)()6bPFsoNR*4p;zZ+=&?Q0<6xl*=L1v5vT5;2HpIVU>U~>Psxb^oH_NLrtm2(xgiN;(( z=T%9Kxe}$Zt|Vj5MzVhxG*p?jsmyA==5iAz{Q+)Xc9RyNOQH%kvGwMjMK` ztZyrXE}mODdqneu1J_DUrrNEKNSU(qvdbirch~n18+(>Y1V8a0oxJPt{?Q(`9L6z{zqoqX(j&(u zqb&h)58NEG#?6Ng+IWCX(ai73h}=lrXLP#p*TMw(*N_}_i+QZpi{oVOYu*U06(=Tz@H7bax%4?RQ^JaBxiW`y?Azf zDRP3R!wF8uWTz9TJ5 zr^U)hRqy6R?Yw69O(F?d4i7<{UIT?%J0n255yCDNmLXfA^+2LJ@satSfl`M zfnj*^l%-u8T8V^mP0^5>n){51+1CrN=Q~=@FBe|fLOKk)G&aJ?^Ltt1b~1rhJwk0pUmkOa8tM1hf*FO|S5`B?lx zx7#M~EZGW;$A;IIuo8vyM=hIF5Qw&!{R4hI-0_I^KBN&i65u`~Lcm`_iG@zTcZJEW zp~BBUn!Vk$EZ>qF(@11X{Ym*k$0{>e@&@6UbBe;}?_fy&_M_4P0X8J@AhUanehx`S zFb@G0Ez6-2E0H-uSXNT82bUw>i|pmMc*YWBONNaxmoMR~GdS4(c_z(Fa^AG$*V9_1S)LBpMZ z7u4A?!&~#rig(^h3gYxD-A)AxRtd(%uqu97S-s>eZyu+ToJZfn;N>Qc(y-pB;pXep zVv&38oF)1(;+sHyja0$^_f22oXL!&@u~$MrY$-iOw&Uan{v>f(`FO|jwyK5@Z-iBk zI1xnmEpwa_d##ommgX*AXU+&q=nopZEPg6r{JkBTpGeic6Ih zpKwe&Us!Mm@Xrkr?U{dGyl|6upG6Y3PZm8}Bzx@S%YXlt?9e`0uWa{L2MWP=Wt)7p zvA29dF^Ys)3iDK9u_))4uO|jYh%=Cn-6{{JU*Y4Dds^0_UtHp%Z*4+wCy-WB(j7Tu zu(}A6`eK||E8m1@mQoeo^tfu3Oq2v4K&M*nWpDwnuwBs0lXn3$TQAGOJxtj%mfz+{3J9%qyX5qECsZ2L5ky;Jt}$cYK-;q=1vt?1j5VfByahyExdf!SiZ3$ zfb4D9+{x~k=ozxL=+X!}a_skqTp#A{k*JRZw({ZqfT43>YW zb0Zq}1Sm=YX+AUQYJH`sT3_HflXjgc=ef=#Yci@{eApw>iSy9LK;Q9C#BX*c;@vc! zQ8z^b_va&ld-hsBr@0buKd;h*%WyUCz?Q&MYU0uJn<*Pfa7HUM!&@;x`4YjDuM0!< zOF`8&G{-UT;QC+=76us|Es=f*ry(o*7;Syi=$c(XoW!8oC&m6-rC24a-0aGfn^C?_ zAQ-Dj$;d2nyk&)37*xPGd|!vixZ$pV|2GLgWC=0D=vaxiin`c;}h^->Q*^F@I)Rm66-aU`gmVD~%}WsF2^8 zrs{E}Jv4+Jto?FNjmeFpWJ!8-U#SUYrkq$+6ai0l94IehRN`4zcA^v&sPIoyxP=l+ z6jQ*Y)wr)pM6E%9N~2r$?_kiv|L^lK-SFIJkz{6jp>vw?OyGdHD+W4tqK(ReL7S_? zK^L3nZh%QnC@+2c)#VG9Zd_iA9jg1~kDG(R;rTOX`gc2PfvrF`j58`damI>Io*8-Z z_up=BmsDDefs9qmeg6izV&0PHW(OTp34g|;N%M`grzvmUEEw)I8PMMsN7g1BDBq*8 z{@~Slv`aMbgi>g^MsquBe#FfW=R_o4#h0b|^MIwbHF`3_F4wX9jHbe087_J{epWqQ z@nK3kOWd8eI4!qf8Z2B$e&sqt?7%=iiI@i+41D&oyw@j{bI?@(tD5B6JDQ>LvTm*i$#gjlXRQ7t9$IsWx}StZks6n$~dS4mz~ zV>eU@ormtWTm`7H?WmfUD`#J$*%lcZtzgm4u+<(|6{Wuo8=aa}RJZEtahp;YSthsp z#GVWqD#fCal+XTFgK-6$1D*6rj^EBF3xW;I2ncimt>vNbjk(Y_q=0)uylaMd^BC=~ zEQA;_RwTe0Wo`@aLR6!;M)Q_sXW?aOX<7a{A3gXtx0<oC7Q0yoFj0$7pEM|Sbw)aMcSdP zKC|kNQNkU)n~(UukwX^^QAx}o=WpPE#35}V>H+F4x1$)H_!40hUl+!yE;u#TXm%22 z7Dl7mR(^qCs;TSqjEr|qIwr=ooz)&?ZWgXP+FFCviYI4YUs0KDG}k?tj(Uq~aHb%# zfLibAOr^knX;i87RxBde8!jyNg0I`{94SFD1?6_Fge5GT%T^7i*Q&MgOG_Ma;QYk) z2<4(7i9zyjdb4igH;4j$C(>s|tr^>vnt@z7QzMwvj=C2scejeQG;TA-fIR-|Ps@X4 z+^-3l%k5|$RG!AFHWcBead+19g@~uL(qU4lH_zW&0GSrSB)az7ew5XF_+t`p_z*`y z@9|HOB>8@bE%OMN4$X2|%Jmxy(1i&^A%{7p(U zA)2n$G~+e_wSe4hW!R3-bvstwxn-IQPBGD<+X-4Di$|_b%ZL2))oVBC=k2Au2PY3H%cz<5z=t5)<@cqZHrPa+jO21cfSAjMH z=5XvYVYks9`+26%>Bt=|B`Q7s_?Zx8&^W??>^ilD(s03bW zVdSh0g6-Q_+gpoy&=I!SG?e&y!x67i!mNW`)ZBnw$Y^zUpuMc9J<!-2DkHa- zQpD+w^x|h?-KfXCc6UelX==EuvVxRP-|LpV_*U&G?TmShn0rdVBumff93#h5g-0-y z$T1@ffAt7zvp_A6sC+gT2^2|-3}dt^vhw@I$jWrYY$kO~UXu*=39mdEpGMGWB=RUE zuRo>uU_5#GI-!Nf!$|AAfsCdKp}`aV?$D)KY<|O^KN|F^oqpR$rp$wTFfUQA#TD*9 zIp_|mZN7Z*7$2qR=|nqKvSs+o}P!ZHIwP-bUhI)Ik(q ze74t6K7(zufvJlh@=<7bs^04kaS#RtN_xPedp1W7=byyXi zBw|8i*42|Ncda2H@Q3?(uGInV+t|4fvpRZR&kYB=mETr~xNv{}Ed9`Squ1;9wws($ z?S@u`pA(u?&F6)C-mPY))hDf0_xS6XCq|kS&kuFr^EuaBdW2zHKTAI_(iCmHpgFTE z`c1&x1_o{vr6{>4t62Bfe%R=^n=khowQjGzU2iDUCEepA${oS+gnVBNI0n^Lot=i? zmJ-ES-k9g)AF~}^=FSgWek+vf!-K=^VB4sX=j@`ar@fBTFzV{_cGWhiP%rA=T|VqL zhV}0D{euX_U%;CSBkOjy6~olpU|R-J5*E;|wY?3yp#TgfAI#>dWXl^tc@_Zl+2BS| z{HrDZ%C@|7G^oGukDnjwZ@MRIp;$K7U+w#8bN`uM^&ByEPmV@n>7zm8wTtNK~ckiXtJ$WnzH|b+Hb4e0ks~$Y_lpaW~tTZn+ zKNU)Z|3vtHNCuwd*W>Ol{klX71**-kI{(t0#E;NBVeQ zALsN@)yH4;K|5oA-Fk`#Zs>!jf?uVlxnv()*LVNxo0ELs(8oX@f71uIf?r>kxb&4i z`uaH32T#oV>lydDe!ZYJO0zZeJL>rEpVtRt2!6fuJeMl^__IF#sE-pb@bS1lcsBU8 z{vwyY&vdGM3Z=KuV^grEHASy0n|10VHGD5>89-Kh zzcunrXy)(vZ^A8q#eWlO>534`-|^psQo169@^_~F2Hxlmq0aGd3R(P9{+rN5SA-<` zEfn!j_-{fEeLl|TSTg;w;C`w zmrnkbJ^p*?-$R`AQH(B~|@qe8p-#uM}Y3P_Prp~q)y$f(de0S#g( z`pc-$n=uu-sc#V#(sv#cF}kY{qe2(bG|2xIkRqc(XGD373Vot)w4z_i86SQ3m-rPB zBBMbHG}Tk-Uui-_qGvCPaexNLXNf=sC)j4Li`|ai(er=dA3raK*TvNZ_u#A!cDn7D z1q*KdD03_G=Ec=gdbTZ*G9i^j$!k2e2jlU$B}*jbMX@8>lc8m;)Hb5zI5Ux(=x&fevm5AO z5k(JOnajD)ZBmund55G@HB*&G$OFs^h$#m#tpU^LuvKYCYfcyYbNWqE@SQuGRXsb+)w-SUaH~2VJ|>dIlxB zjyvcDw%2-$%#&0;atGnE0I<;Yy~uJsJ5UguxvyS&?wMznmra#-`LY?hJ-cHCOJU@8 zw|5Q0G|e$3td1W?tNs8$`>QxKKVA9dM!QV__}^vE8rqjl&wd(*vKlYx zhGx%xVh{Y0-7~Gwv^>-GB0KP`$n`yIV1|+9^{k+0c6QCM>w*t%7=;2fvdmH7Zw1zH zXa}Jg*rUJ>sf@Q}4z0c)$U2*D*W9$a?!b*)J471-!qqrH(-+Lu(6#Uxhf!b+=$1g= z^@GSUR{`4XTBu|CLC+4%$QP9bKr6D%t-!`t0Db~oz>ud3kz)grHP{V7C_svePuws@ zGvDxX{w6pRM}hBMFrO|3)-G>-82g^tvm$Gmv25dpKePpB&5i4BbR+H%xO>5t<+&jT z^{Ep@qww;|%9a~Bac8;f4_6r1H~nB}MN%q%`lI>&#rHonH}2kCy<&d4yu9MMR+oJ& zJJE1J)Ejilc)pqWuh+R6k%p9m{A3$m;ZFauPymPvDcP)Wr3g7 zB>qb-@$mvpOLI0+&LYPtg*b%-Yl@HA&{=1pHP4x-IpCI&@|E1$7U0_LO&hM9T)S}h z&Ybf)v&Dth(TDa^>IYhLjM;R@I)wR=g*s8oF#iQg$$LekaMV51vk`r9!ksb$b ztM%+kD{dW&tSy%Byy={CUPHUi5*l+>7;x$cT9)%3Jj@4r!X+ep^tcr}pE<9h+KbM4 zXWqH6_DtLX6Bj_G1z$gMK(_KrFF;FwRJ~lE!4>N5uYP1tVV5dR2TFFsdDl7OoWJW_ zAnQWzV+*sp%<-mSK<&6$4bWzwgS=Hu5<#+>pFJ0vg2;MZ63+3a0}!e zEOoc|c3Q}PMqO1=iYZ?~Q`HJD%PFr5UUk7bxt zx4)FgzaYXay}s7&6TRK>nj>iu&{7dw%lV}B=H#G_dBcQqL-yqwBI6kFVtIh~cIzl< zr3S23k1AdrWGoOI7C!12r!_jOz%VH1OQ`=MSLAfz)=8=Ud_+>L|0l9W+d3wy6_-Dv zlcz;H-kZ7jc4TeYau}qdAZf#WSTR%c)@n-4Kq3H%-NFTek{>#-e1jt?LAm*4-p9JnC;J_3XhMn$F<58?VK)AeX< zVeb0z1q^q9_e~7Ly0-horZm%D8d~na+`)JR*)AKo@hW`8a+YI*V1q_-z+)K7!oYN7 z4VO0E0Y+BmmL=d(WV3M;K{I`Cu*=I2cg=fia?B+tx@CLeyYDg)Dh?7mX;`+w_)O9? z@7SClpGw)PK@j9X47_1E-qIc0jWCE_y6Hh3qc}1@w*v%K7tHH6##Y`gAEupO%Kgkmi3dPS0BBPsVM zlGqo6bpEs4U#%ooSde#p$M!6HFiWIEc{$-NO)b5RYk`gF0?efdREo*FxqfrqyvC;{5XA|)=t~pd z>b4#DyS;>_Li!%WQ0xHaC=2H3+cQ6Xgt+AwAFL8`J=bna9weZt>DAF_U`LYS3@KKC z0hB!FI3>1Hh|_I^E|?GT1JL$}i!B4G7K3&9h>E(!Y^+DI1^1->ih2HpYYlx&@Z5H{ z99FnMrLI`RQ3u+ofl{~fhE$5C;RI=vJb~pLxAqlTMnci56(s2_7bummTnEDLb2v53 za(m?1!Zy)fG0Q8d`4t}{(^8&SQFEo|>k+0G$ML+1nhTUlcz(cYeh0yY<6^#4{1x;3 znjeH+C-%0!!Q?;?4`MI8Pfdn7)7Tj>fR`24}banzY>aihow-KH-%h($+%+Xha^zap)=?nmD!8(c-%Li!52b_SFc7Trv5w@tuGRN;Zu zb9q21u*#`IAp(*F^}VOMVl9c?CO9?fJ?|#*foO(oGyRADST0ORt{3tAhDCD{oa+og zA<1{+?!dMJbDb7bC<-dz6ygI9c$M&+rfeVDa321^-`Yis1(4E&BxUq;(4wtjPzW?V zB*iG%Kn|xyrAGsdrAIp@5iA=%NQ5|f1uo%+zqyHVgg4m{=SCqp0{2Yrhb3<98@D3x6m>YldGTBpoihFM!krQh;{2SboO}C4eSz*yJD1H-i?KQtxcnX5NDPXz4=y0+8wiVNw zjzk;O6|uY^7S0WhZ!2C4V1+EN5(@`0)`t||Z!Z_KJc)%(=FDX&U3deV!75?7y`*|6 zj(SdbjXIVG7WHDuUop#9gDoE_jM*8nML}t~7FFL$ zb8392g&Md^cIu2$8qPqr@5?f2NcXI5^MTvjQr1-5_rHd;W z+i@Qemo#ReR^$)@gs<8_yx5G_yR=Xfun|2YF-IN}WN62c8^iJ|=&tSHf_d8)&c6WC zeU4KJ%U1`OpA3^8Mq!B(J4R+=X+GhZ%PW7hX%vgOXw1!k>@ zveo4#mX@1YS8iZYxyFj}^vlUr*OD8up{7=m3oWJo5^}A@VtuJuR21vSSoLmX@fb6! zO{^R@CaZ?lj6qft3&stt7AtH@qMp>?CBIbM9FrSaB*tEhCRT_O9?!Hqyk|DDHrynS zn^+YFlbcu)hVzmU{4DFi*fYb|rw@xF%cWKs(-enBWy`>OW;1KRa^XQ@HRS^E9yXz| z73mT#OQO|xI!tR!m77}kE$l%R^701b`^k&GjnTEy%yKWf;wIL5_sm8XdaE*7Zn%(+wKXOAga_F_%l0Z}-eb)@~bGxZN`wS+#9WlN(vD-7_0mtc97& z;A@tZ+C8(8W!mO=+{gkgW@uB!!0bV{4t9?b)Z`7hh?$yLn%y%SS(j~&$IYzBVt%rT z<=BSSV&N>BScq+o$$W-2QMzJ>T(ShaXEHFeuD@!|g29_|@fFUZiIvx?5lU+2BEOE` zn5ddsaIH#L$!cq3bYa_m1M93%!6p`28(Lvi*c_I)tC59OP}Rh$s%GZ1EU7ANN_bqd zo?6u$4$91%T1Kr(SIHV`RWKzBs8zv~te#c{Q?hj0nD1(4(X=sicxOKIa%ojAm#mdG zLl#>oJ?s39deZ!id{8ra2v02wFePg<&o| zoc97>=zCibkknad1f8e!cB?h}v)JFY1#{BV$p%<-*hY)YDEn~#xB~=!$_r~JVQlR8 z5SxEGBuBCAVYiCpZqSEu{QfW@-9#$XMMENlk1+Z{>gCSii3#HTv4iEq+e3zbs zueNbv9A4?89ma|AZ6U^m)*O3;AJCKm&5J{j=A*5^k4L#II%nxv*B^uDb5pe&h=l%SKR5F_{v})k1@*X>|uvA-xzgAbCAILIXruA z_415gXdS_!61jAe)*L;Sx|_?=jQA)Wfgp{5|3Go>OZpv>RGqVX*ij=01Nv{ zKaSEF7?i~eysahiqWqHslDK7MfimS-9u$pB9M^hGBez?LivCw5*>n9zHAS?}t8sVf zETFBqsN?r`IeYP$mW-6x+5SJG;&{f-03>$49*3ATCbx|u z-T4F`Kgk>xBnV~nAe%aP98A~0Sx=g(!(2w)YxU|%J-@=LHRveI0p`u-z4W0rM)EMO zA=hh-)SPj~hfGzU%Zz_YEr_Sm0zEz>Q3U%Xiah6PxKmKt2z4CJ6fU(~Givt99N;1F zVegCMvJAPCS$QzI7um?}Dh3zFcrYQS#D|^YKooEk&@ZXGqF!bcgw&Ew4<$4oCK^+F zvXPteV3Hu69+Z(D47c@^U-_^PU^umFOD`rXHt5HyfXv(DtEm&w5c0`W%>Yj8mL?TL zNp;OCTirA5JA?DwIAHH|xG6k!WY%z&=sN)@Q}|w~%?Ir)&lb!moaVa}Y|oI-Bq-y+ zWESp^ivvt?PC-|hLORYv^0OPNnnSY^?6)e88)-b3CNdrcac=wj_@ZOf@s*!JLE;?F zWM|VLy!dv>kRzv zcKe@WKeAP8Ii{VGp|yB?10{u9%2;pzAt9)BLiviS72HU&zRZwC6KlvW>4J1Obs1zm zU}ROU+rLk(@&k~my5LHNBA~IDee48j8jVHSD4{M%q&qW_pC~LV%UyPL=NNAq?C8n? z<{3Fvz^!q5s`^R}xRIj3?aaa;L*j6zaIDjCuU@x!*y*ci;A#D>uJ&R&6$0Y(F^x?; ze6%5-uQIg9wv6oAn@08_DqtcsIXm|tlreFdr*kc!hWSdnbDLAO=~WZtp;Ec=X~kv*`LSei(DP2z667IpT^OXNj?e{anobtvD)qyS)WAzK z%ja{L{QJ|%XN6U3(A>)b=9T#sdBm`hepEEg&IzT8*!rjuwm#S|w&uBT1V;v?DHbV3 z)D0S;&OJElYB(&=+X!_W&J<3I>+m7)FK5Lg%|_;lWFz}%aiTW`u@Esc=_!x%r=%H3 zU9)g6JrZY}J}R!(XHY$QMH&Yy8e&gVBZb93FNydEIB2I}BbT~UT6rN5wK^IV_gtN( zwhV@4vkf}JDj@Stpd}9@H}n;2br`rIAM*xuO{O(!p`yBGmA4)P?K}JPygFc)vhNhu zkAs-090EV}^9?!`02?ZkNBWKIgZYWZW?j_jxwM1QU@2AQH&S6=pc*qSupDOx8E}*d zH(DNE6z<8BXT>8;dZtrovqoQ{{L(G>r4#k)O0TrQsx|17$^quBY*n3B;2D{t_Koy` z`9|t^1Vhy$?k4?DBk%xHT~aANnMx^iA4a13c)vuI=WGrC^`H^j?(G+CH9Z$s!$aV= zKH89HQ5f0@7h>v3X0>k^*#jpMjn4YAZ%I&zvY(bf6nv$&{6;G8zf2`yz|aCN)tEZ2 zgYYE3Ca0YwHf>35cG~H8^)y5|x%;r3r}gSeCl|A74LZ4UfO%7Vhdm2mWZy+$$OBKs zvve!CLyYV}GT@r9p{(x|{7ek&1U>sHp(0nmW;G+g(p)ENiJia${E@}H<|`r^BrJ3) zkS~Km+}87Y%40s7#dKw}4SLNgAoKpA>zE6vFq1t_X6X{}U2ACp&R zzH*7bfwc};v;AM^ScCS|o*8lK7Lo+7GLDI2BElwNWINWT6L;*4 zj%w4U#C2`w3<2P5DA=>Lm_0KLC~I^UW$zcEj}@MkMJ+>5mrHrVQ&BZXl;r?3Dgvgw zoO-*LA>YuIX6X1r`^8qW0>G}RKjP`AY4}j1&*FILR$f`dQ&#>XeNOR%pM0{`Vy0@wRpV*V%l#r!<4YIw~@jnMYsP|`MNgf@2;+75xYJhy>! zJ&k*zk$tzJkv$nRv74-?L=N#XF{>j8uBp*@wfP@F$Zx8#UWNX z2f^E*1DkMnGDigx)ivH+DvLmcajxc{N@gM$PVM_ZLpbh?CG=l?KIPNZJVa7ak$@XX z#cNcnwpZ5;VjDEP3@A1Hvpxqw)qxLl(S@@RnZt+^29T&0vu70}O}`|WOEZ%>(D1A* zXc=<@B}U+1y({@FIf~klZvYiftQzX2yoP+K?&N-EW>`gnx-+w&$fj=9)W_t+mr^lh z%nmfv=zw~SP-h)d>VDSK2O3&mh=i!%x&W>h|8di0>Mq{okRu7TPaNY+~F20D6QQz=_TSN}UK- zL=;C@wFVt%Il#OrP4mjwES|97 zuh1~Wn>pY)xH-%^VKI@tXay4%AJ_A0AEmt-elh0r35y&R$X1se1M@1nx2-G!HDR&C z<4M+Z$%KV?ISE=79wuXqH0mcdCDYJq$|9+%h``NwI_fVC?`m{ZuB}g7=m3hQErdel zdsu#COhNX3k@}5BYGr}TiHmQ!q?_A5Q4TPpCSc1Kx8uI$nPR@eSnpa9CWTyY%eaD5 zu>^`$XJ%%83;*@=>6mGsK4=4I9CUhPouqR8@CNm90pHH>7J< z7y`AO?lh`V>lqg>LtSMIQ`BuA9Ch`<!q7O3XrEWrdL^{-eEykElAXy%P=4HIJLg zQQD6iX#lvLnT^yaTalZNksJlQ{iV5(u?on%+cnm%u3a#1StI_GO)|1S;``CBaPyPHzY ztwFC+4lu8KFD8dZnf@luP3d_yy{$!K<+vh6Ed8J%mR{U1mgYH7!^7Nah`Q_hMP1E} zR$O7GHstCRp(+R};92>LfvQzRrK9u$H+-+n(dx%*9L6gwKB;W1{g+rZ2Vmk(QOnd0 zz19=oR{q#z3gQjChmKV*Y7`lG&m1Ogyl66nBlQD$0Gtom>Fc<2zQo6iQDAxD0EbHZ zUK=M&Zv}Qp9AZ8V-*b^4Sp(dxJ%bNJmbQB=DJE*3#qG&%90b6)t)SmU>Is=Ta6MuN zr9B_oQG|&pY6REmp5KilcMvXb;+2;4a#Wr^|D`pEZBYnG`lt>+=lwVu#l#?jITyLn zKsKN$isQksoXW<0?w-FMqWH@Ki%|$Are^XNetuMQM>C8hu{!_BKSYysrJBTsqGy% za@yU26^4vzhJvV=N<0zRBR`1R1N({1{tUWiAKGr?WZop5m`|jCWR?yu4i}R zE!7;se~OCEJU&iZapbr4WF$T(k5o5$@o?1E?1c%8CAu`J>sid1QR*p{%B+)A zPbwKt9))(?^V?5{QnwfFrz1bK+gT_~Q@c_7i5t3!{hVs|+|cR_hj9|%MexCo9=)yq;0zA$~{9}lb@D1}U9W^|gI2sGK- zf}srDp-Vb+XR(FPlOuc724iiwpsr&62}qXYnw&QL&1N;m7 zIy%5>f{~5uL^!nIHrPq{iCcYvrSil!j>@-EVtS+NSil&n#ytom#)JS!+c9}lew_pr z%mXXG$I}g@yWS==Pj`oB$VrBAr?7@QBqJO6R^nrh3O5ayi}tW%_u#5_fu>{If=cAP z)J2``wmr1mLEGx}s25|3z%e;ZZBh>x+JjB$_j%S4+k1k$yKx7f&vWO>d==^MqU-fs zn0M5UtYFJ#&igU1cN!!>-6M2ffZMY-iK*Z6yfdjhI)qWnL>rr#q2{@zUG_m&Z%9{|aD26iSG{og_qY-~xf{)2R~u4gP_NaeXE+-Y*g(=i_)mihO)k6eY#s zV;w4ohG}|!Bfnm+D@yrJVzyrQ+f~o^c87i(nhxB3K(UQEbP$mqI=q$%nm zPM{!BO66%VCF@Z7W1fCmPnUH>9^&R<#~-KwTdVeBCM#2Op`fJ&iJ1oGOsaJj{{SsE zqIoIXg34ucEf^Md{g?)NoQ~s|yc+O0mf+($c16!e!ngPrerC-Og#^z}j;sJfAraO0PWfFn9zOi1H8|V?u+8A``exD8(`7pMb^A=-0$>U>cHAZ#lrGj%;sxN~ zQ&&*@RGs(bl(Xk=)Dj%5%g9eYr#F+CZ0JQ1aHzsz%j{sfVcVpz?-Mgl_#I=ShB%&K z_Kc7~pSli#KxjHkx{X}l`zbPY*^C!Q<$!mBs%j&V38fVCaB~Rwr@P&9h5n}$2SxZv zVepUY3~_=v*crk`dDHrriR%3IBy|?TKoJb^{<`XXYKAQnIB&hiHVIHWt#95=sWJfZ zK%52y-z#N)cP3%9rWM9SMW%Iwv3^;J0ylqkRlYhC_dcJNd-c5XZdR2kBJT8QQ1rc0 z<&Bwy@pxKcOjPCHm8dck1x?4DQL8Q4pqh=JXfSkK6;U(F$6c>Ghs P(GrqcIiZE!xU>BKwf9#B diff --git a/build/.doctrees/niac/NIAC2007_photos.doctree b/build/.doctrees/niac/NIAC2007_photos.doctree deleted file mode 100644 index 94bd4fbf96728dd1d8fa80ed9f435e321a3dbdac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34877 zcmeHQ`;yaEnukC)w4s{&WRgIlBtV)#x4Cq4=^-ou0;EZLDT-p5Ou)#tY{|%yN0-pO z3%mR0yuv=hJjB#g?H~IH^8oV#^9uX>&P5lujx1ZUQ&dft`ba+KyBvMr?_71H^N+v& zW$qt;{R<9f7yHB2A%9?6&en?FZaZ$<@Ok?Fw%ZE(h7<6g2+#4WcQ`HKf5Fq=_-^R6 z3?9FWpZ2#*%WivygP$+(Po#?^E3j;TC81!U5hgX5bI(tFuxr=KiWbqW zuWP>5Hk!J(><3os^>(eMX_|sUZ@OW?2sn)wHa)8a5wA9l=b^9NtlxUoXpjK@x9;eD zV_kEMtAt2rn&kwB=jeguI=Zd-f$p?*udOw=HNR!SW|klL zLNt=Jf#-HTz27%HU-OKCXZS?pbhWGrmd z8-+;0_>1L-Q1kDc&h5Z5Vc@yW1#N5D)3>?ye&{+{TMzUVX0lfg-M%3#tG#+)1rNg} ziThWtt2>s@Mcp)mVBoLU>s>1_!{$oM?bn&rJFeH)1L>9j{j+xY;^kHC)#mr#-qmid ztkfM#Z?Ry-4Ei?F0W#)30-1SW2s(({tpraD4PYl17dt>v8WAPoFgX?`1H#xS$b`Vy z{vXTvOFO)Oi~C;f+O%KGIkk*OCv@ioz8uq$QOQ~|7jQk#O^GXhq)Qv(YN=Wk5u#iY z^MYq|3^WL`p+Hoc-#nS1-uu+pirXB}&N27kB6+;S4{BNF2RbAZy{REsXe3%Ka}NYypb9;UC+x1{9Fo#N?+SYJQ}dkpG4g9JvkaQ`C>zvNfmk;$ zQIvUQXTlmwxJF@Ueq;U?qK=#A&3W^}qg`Q>xpn~-)X_Q(Oc3!S?VabxP@4W(M0T`z zWOCm4oc^bYvO5J4qWHx-oR$E=hvwJj9`pRBd4bAd3fD;}n?vZmZ=Q#M&3fMn>aBX{ zqc>G=8eZ2EJ&AhL)18)S`1Lo|YpcO~wRK+pdFO$;5|=Mtyw(_)Zs7VWp3iEI3y*44 zFv6yhkr$|}$zCVxI3PmjWomxX%;`*k&lDPd>~&Ez_{E?eK(ww zhjdtTe20<5xW<#h&EJ_fsUo5}?IkRA8f3ev;!Yk?>&v88bLY)mmp#mJyBAQFxbb76 zpPH1C%nq()j($nzs2Fg;ov?$@mFf^vZhnX0)BJuhD26S!P?P;6Bqk4;-%%DkUaWIX zUfN4#C#eJ1QVlN48b*p|mRKNNtdkGPiJQ(Up4lZ4RfYKsjoe{gBC{AFdQp~ZKAJ>K zPQgByT~&c;pAeJJzb9#;9X-~wdv}ah271?!1Kg-5D{C-~*I;6-CcCp3AW`+UoK9pN zn01ZhEeBR$@09x3!0>Rx=v%t;_y7JMKU4SsG|N3k<4Xmkep%Dr%3Li!ezLKA_xm3o zTwJ|!d1d4AgSUAUS4L8-j-*%{NpW=~#kG+X*GE#^7)7yqaU{j1krX3sx;oOPt0Qf? zI?|@ABW=1m(x$5;ZMr(rrfVZ@x;E0LYa?yCHqxeRBW=1i(xz)8ZMw#7idsfAUKw*9 zdsr=!S6is7iuH_oA~`>zt|Wxa%o<`u^`J@?HdiGJgR7E-wN=T&)T(5GT~)FGt}0oe zR*@{L0adcVt14N5Rh67?HCgmk-1%0MgK(*1 zphy}PIwoeArm16wX+chLRDl^Ojx0*G44r!#Y~s@uj$BYkZUV(k4vO9)8FWHaXy&+1dKZZ81G5|<4XWzdnUjbp1c_DU2r2*)4yQ4rVb6Jr8;Ox zag#zr@)I=f31|qTPT0pd4RCM?)9+>QNfl^Q^fJVq@Gb~`r24dDc0ZY}sl$V5K~8a0 z(a(_LCWVLOCwTCuBhtB(c0td~5FUJb2&S9?JeaPj!-Hw54jxk6r0|gZ1doT6)E;MN z2M;l+s)olQEF`U@Y2lit4GylQGH^uVQsDR!HYqZ6jkpOK8v+_f$e1tT4Rt5{EY3i_GTB?JE6qkaHk&)M3H2R0j(wE(MEzQCLWBg2kqQ#UDz*;v8V{Z!>`fo1%NGhQ)tY1`DQX>adVg zj<}-=I-q=I0a*wC(flW_ivmMthk)@o?qQUG#@B$x+nGRvP1EH-gPWn69tP7jb#Tau zN94Q;a7b~Jfx@P)Wj2Zx+`tOy)Z+@#=;`~;3ym4M?iz`@-z z^`3@!{{h-&PwzTCe$ zc*uFp6g>9gb-p5l*C;atj&>#BSe+p_*tA_v({ci4s0JEL)6^RlISpA+%^}65pmDA! zG$c1cqa&d4AsKYS!Rs1;aSZ&^Z&KKFT@EbPD}x2oG<8_W>Bov-A;qO&u~`%rlAB;* z3Rv7M0gJ1E#r2uMf=$%rz@kwZESRRL!$M9xRs;(vE(Hs}C@ds5!J;Q%p_hQgHNfJ< zOklw#>2hEJ^Hv57rfcfJkkgJ80Yi#Q0fSqmP#;6`6Ey6&k5K{~*Lfdfa(HBYkYVR* zP`Jl={t6wgaO_@2K;MJFiQUJAN736+SrS3EmtI}OIp@O;Bs23XG)UMdUi8YBkp8p- zygUoo5&4l?ze+FL{T{Dc=e*gcm3tR2d)@3DGbB$d z@}3?eM_!X>{4D;y9WlNW0%(8>05Jqpy!0y@`4Tqy7d+OpeIvjEK7HsbJVLHy$BS^x zJz-NM6t_Gd`V_LfdgP+8eD8StB193>_dWrA?<57MDEO3u&k(=@qwSwLMoHMe_XQ*= z9B?zw0W3%P9=KV;1FQ@DwvY!HX=cr?^1uz;vlyHd^1y8}`L`6@q2MkB_Yf5Ffb7hx zN*qkIqCD&Yav+bre*Mmm-UULxz`c)$RCuR}qX0+Rv@K_L&wesjtL z2j)Z#)UzQ+VgK8?_NV;h+y8b6`?GFcG5a&pvFs1KA@k#SfOAky3dYP+Az#SOYRVT{ zZ&s;SKf} zx0p8=>HFag`EWYrjSZzYzKOkYzqB{*m+%IAdRojIjP(8RhI}TR@r;_bKRmpHZMu@HquvASlvO zL@%GD>>ot-KLa_j{kyUKH*)PyxyiTwMhWZl2d+hWt^5s@v8;a+Ss%yxcR}B~N5OX# z+^66HfXZ|2DS&54rZI{N&sJhZ6Q@58R5OU;RK*HEPh2^>OTP zg1%=_(4*ir1vY|0_Lq+imG*ZbDYifNjOZ!lep;91DBlB{B|K1k=`=IYVpx_||-&3%GppgADN7N@H z`~L_zvHcGrUf}%4Q&$-s8+~iyT=gFjG3n*o`@DP zr$!U^BTsPgu`h1KzQ9%u`Lh`#z45YyH;Rv^bJicL#&i6xe+6%3j;;To^u}iFjaQ|; z@v4M3ijS`OLfrSGY-EnK2TE_WVsA7{d!t#x8^uT3e5vVdys-<^ALbz`uA#PKFSK*LK>5jUE!rh~P<(97HwqZb2d9wracZa2pzocbfVLFreMP|% zf%9F&@17A;^Sq$>A+YXfaQ?+aeTlzsIv;j%u^w6WR9J| z8F_;%Q24{n^#^Co_lO;PBx{9X_L{|L%SrPYbR5Tay^e3Q&2JlQCt$;;@5<9cxF!70 z1#Y0*xOhYWtx0O5&7wlOwcWT}Y=s_eb=iod(}tD@WvtxT5^?)|BcR=dNePZ4(dNq? zY~PCy`IBHA^UriUWM94Kzmp5&C>h%)4?_AVKk1oc8%K#B3ta=dHtT^)J2zA60{eb` zp!WwN;sDPic0O=ki>R823O%}4;;IF1t3exO5|zm89PZHDMk0=*9oG#UH!xB}kH{D` z-)IF+*l%pnroo6{v5VLl*%~ykp)l=RO%h4XCp^}$4HnyYgKdW!@ur?ECxS8B>60Q4 zVy9+ouH3L`?`Kl+0fL%|jSAu@TDf_|*s|c2Ko3Gcoic~Ls>3cwNZjHZ-E-g-P+}iu z$}`0-z}+qEXx$<+@ng|)VD|?0OLg0z=aCCx&{@8|>|5gZ$uv>J@I2RRnApp}miuYX z(@nL+t_p{^H;1IoF{xa`sUeCTB73!ctO{M^y3+YeN;;V)*dYk|4$~c@O!y{@Y{LRP z4>enNx*=BV!iQ}U_W|2U9O=hAqlL|_v6^-O3`0FO$wo9;aURQbJIpl9rdAu}3~O%L zHWc$nU)00EZ6u=+`GF-0LaiP42aQCbVeVp)VxMnYDmuhsSrH}RrK1PF5w_jNR$l`A zu(368eWNifh2gXnG_WVH6&IpIjW)K(ZrXJ7iM!bs7kE~k9E1U|w3u%`F7Cf3SQ;J6 zPVP+m8~P3P*ea7PL^d3fFK!#W2e5@ZAR!}JAv!`e32^LmQA}*BZxMoiJp2{H#ep$s zM4S1_n?FdgO&#~ii#7;j`qk-K{0D(Zbdq2{a z&ssZhN(ycNp`I!rIBz&dRjE;6tX=uOlE*slb+d9)wF zDU_9dBdTzso5U`n5jsJ3*x$yU^;-?o>Y6tGMd{jWyRx7j^!qw0jX#E{x5z^LIL2am zWW#n_ddf|wS|;}3ZDDVAUVp%2%n6Y6I;1LwD5 zp=WZi)#S*C9@j9mHL|FL4jcWZ(MCnJjcl5RA?^~|PPD-Dx?%Kn%WmlHHg>Y-TO;$F z93h>w;@vmwj;#E7(jLS41y^_~jc`A&T3Jm+h3&9~Jy=k@gGQixU4vEKFF4&TqlG-Xt|cQvyrQa_6Kg7SLHEvw&U+d1|I)b^0oGYPJ& za00d@Tt&1hiO5MRqBTiG-cu1>l|&%OA-h(L?0PY>8->WQXi1oY))^^o084)a5iN#M z5nYxewIb@OT^T{IX=aVJvpQALgKcQZA1CjNqIH-ss+tbv)f(TRG!l)p~ zA&YFEPZn7}pDeOJl}c64BJ0ykh>9q(J(Xk?QDk{4;wqxZ?jQge6?#;^MPz7f~Rl6)Nd?k3X_@s7tM ze8R652fBwIS0C*!y35IIMV-@(!~;=c)bt*(oR%H7(c^QedKc!awW+VooPo$q{>u5v F{{!($_GbV9 diff --git a/build/.doctrees/niac/NIAC2008.doctree b/build/.doctrees/niac/NIAC2008.doctree deleted file mode 100644 index 0c35906666aab1beb276e55e50076408b1b79a9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45432 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 R;f6K@5b?N4(S6iy{U7cql&k;% diff --git a/build/.doctrees/niac/NIAC2008_attendees.doctree b/build/.doctrees/niac/NIAC2008_attendees.doctree deleted file mode 100644 index da33d6b522bacca5ac3f16cc5eec8d083fa634e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26780 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 R>py1(3b*OW4E{jo{{S(?=Sctn diff --git a/build/.doctrees/niac/NIAC2009.doctree b/build/.doctrees/niac/NIAC2009.doctree deleted file mode 100644 index 1199f828111921de1f519f956154931c6d229c63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84340 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 HM(zIt7Fm0T diff --git a/build/.doctrees/niac/NIAC2010.doctree b/build/.doctrees/niac/NIAC2010.doctree deleted file mode 100644 index 0d5ac0a6702e773009c9cc7a951b9e6e00464a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69138 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
+ {Address of user}? +
+ + {Telephone number of user}? + + + {Fax number of user}? + + + {Email of user}? + + + {Facility based unique identifier for this person e.g. their + identification code on the facility address/contact database, + should allow owner identification by the archive system.} + + + {Affiliation unique identifier.}? + + + + + + + {Descriptive name of sample} + + + {Sample identifier} + + + {The chemical formula specified using CIF conventions.}{Abbreviated + version of CIF standard: + 1. Only recognized element symbols may be used. + 2. Each element symbol is followed by a 'count' number. A count + of '1' may be omitted. + 3. A space or parenthesis must separate each cluster of (element + symbol + count). + 4. Where a group of elements is enclosed in parentheses, the + multiplier for the group must follow the closing parentheses. That + is, all element and group multipliers are assumed to be printed as + subscripted numbers. + 5. Unless the elements are ordered in a manner that corresponds to + their chemical structure, the order of the elements within any group + or moiety depends on whether or not carbon is present. If carbon is + present, the order should be: C, then H, then the other elements in + alphabetical order of their symbol. If carbon is not present, the + elements are listed purely in alphabetic order of their symbol. This + is the 'Hill' system used by Chemical Abstracts.} + + + {Description of the sample}? + + + {20 character fixed length sample description for legends}? + + + + + {Sample temperature.}? + + + {Applied electric field}? + + + {Applied magnetic field}? + + + {External stress}? + + + {Applied pressure}? + + + + + + + + {Name of instrument} + + + + {Name of source}? + + + "Spallation Neutron Source"|"Pulsed Reactor Neutron Source"| + "Reactor Neutron Source"|"Synchrotron X-ray Source"| + "Pulsed Muon Source"|"Rotating Anode X-ray"|Fixed Tube X-ray" + + + neutron|x-ray|muon|electron? + + + + {Effective distance from sample}{Distance as seen by radiation from + sample. This number should be negative to signify that it is upstream + of the sample.}? + + + {Source power}? + + + {Accelerator current}? + + + {Accelerator voltage}? + + + {any source/facility related messages/events that occurred during the + experiment}? + + + {synchrotron operating mode}{"Single Bunch"|"Multi Bunch"}? + + + {Is the synchrotron operating in top_up mode}? + + + {"Engineering" location of source}? + + + + + + + {critical energy}? + + + {bending radius}? + + + {spectrum of bending magnet}? + + + {"Engineering" position of bending magnet}? + + + + + + {"undulator"|"wiggler"|...}? + + + {gap}? + + + {taper}? + + + {phase}? + + + {number of poles}? + + + {length of insertion device}? + + + {total power delivered by insertion device}? + + + {energy of peak}? + + + {bandwidth of peak energy}? + + + {harmonic of peak}? + + + {spectrum of insertion device}? + + + {"Engineering" position of insertion device}? + + + + + + + + {value of motor - need [n] as may be scanned} + + + {Hardware device record, e.g. EPICS process variable, taco/tango ...} + + + + + 1+ + + {Data values} + + + {Data values} + + + {name/manufacturer/model/etc. information}? + + + + "He3 gas cylinder"|He3 PSD"|"He3 planar multidetector"| "He3 curved multidetector"| + "multi-tube He3 PSD"|"BF3 gas"|"scintillator"|"fission chamber"|"CCD"|...? + + + + {Identifier for detector}? + + + {offset from the detector center in x-direction}? + + + {offset from the detector center in the y-direction}? + + + {Size of each detector pixel. If it is scalar all pixels are the same size}? + + + {Size of each detector pixel. If it is scalar all pixels are the same size}? + + + + + {Distance}? + + + {Polar Angle}? + + + {Azimuthal Angle}? + + + {Position and orientation of detector element}? + + + {translation normal to direct beam}? + + + {Solid angle subtended by the detector at the sample}? + + + + {Detector dead time}? + + + {Delay in detector registering an event}? + + + {Detector gas pressure}? + + + {maximum drift space dimension}? + + + + {Crate number of detector}? + + + {Slot number of detector}? + + + {Input number of detector}? + + + + + {Efficiency of detector with respect to e.g. wavelength}? + + + {date of last calibration (geometry and/or efficiency) measurements}? + + + {summary of conversion of array data to pixels (e.g. polynomial approximations) and location of details of the calibrations}? + + + + + + + + 1+ + + + {Data Values}? + + + {Standard deviations of data values - the data array is identified by the attribute signal="1". This array must have the same dimensions as the data}? + + + {Dimension scale defining an axis of the data}? + + + {Errors associated with axis "variable"}? + + + + + ---- title: DLSraw permalink: DLSraw.html layout: wiki --- \\\* --> Zero -or many + --> One or more ? --> 0 or 1 -{Extended title for entry}? -{unique identifier for the experiment, defined by the facility, possibly -linked to the proposals}? {Number of run or scan stored in this entry}? -{}? { Date of the public release of the data. (file_time + X years)} { -Revision id of the file due to re-calibration, reprocessing new -analysis, new instrument definition format, ... } { Reason for the new -revision. (e.g. first revision, re-calibration, ) } {Name of entry DTD}? -{Name of entry DTD}? {Name of entry DTD}? {Starting time of -measurement}? {Ending time of measurement}? {Duration of measurement -(end_time - start_time)}? {Time transpired actually collecting data i.e. -taking out time when collection was suspended due to e.g. temperature -out of range}? {information on the reliability/source of the information -provided by the experimenter. (e.g.: From proposal, updated at -experiment time, ...} {Keyword domain (e.g. chemistry, astronomy, -ecology, ...)}? {Keywords defined for this study}? {A pointer to a -reference work providing the definition of the restricted vocabulary of -which the keyword list is a subset}? {Subject categorisations for this -study}? {Brief summary of the experiment, including key objectives}? -{Description of the full experiment (document in pdf, latex, ...)}? -{Special requirements of instrument}? {List of publications related to -the proposal}? {Facility access type (normal, rapid access, program -access, ...)}? {Identifier of the funding grant}? {Name of program used -to generate this file}? {Name of command line used to generate this -file}? + {Descriptive name of the input data} {Uniform Resource -Identifier of the input data} {Notes describing entry}? {An small image -that is representative of the entry.} {An example of this is a 640x480 -jpeg image automatically produced by a low resolution plot of the -NXdata.}? 1+ {Name of user responsible for this entry} {role of user -responsible for this entry, comma separated list} {Suggested roles are -"local_contact", "principal_investigator", "proposer", "experimenter", -"funding_agency"} {Affiliation of user}? -{Address of user}? -{Telephone number of user}? {Fax number of user}? {Email of user}? -{Facility based unique identifier for this person e.g. their -identification code on the facility address/contact database, should -allow owner identification by the archive system.} {Affiliation unique -identifier.}? {Descriptive name of sample} {Sample identifier} {The -chemical formula specified using CIF conventions.}{Abbreviated version -of CIF standard: 1. Only recognized element symbols may be used. 2. Each -element symbol is followed by a 'count' number. A count of '1' may be -omitted. 3. A space or parenthesis must separate each cluster of -(element symbol + count). 4. Where a group of elements is enclosed in -parentheses, the multiplier for the group must follow the closing -parentheses. That is, all element and group multipliers are assumed to -be printed as subscripted numbers. 5. Unless the elements are ordered in -a manner that corresponds to their chemical structure, the order of the -elements within any group or moiety depends on whether or not carbon is -present. If carbon is present, the order should be: C, then H, then the -other elements in alphabetical order of their symbol. If carbon is not -present, the elements are listed purely in alphabetic order of their -symbol. This is the 'Hill' system used by Chemical Abstracts.} -{Description of the sample}? {20 character fixed length sample -description for legends}? {Sample temperature.}? {Applied electric -field}? {Applied magnetic field}? {External stress}? {Applied pressure}? -{Name of instrument} {Name of source}? "Spallation Neutron -Source"\|"Pulsed Reactor Neutron Source"\| "Reactor Neutron -Source"\|"Synchrotron X-ray Source"\| "Pulsed Muon Source"\|"Rotating -Anode X-ray"\|Fixed Tube X-ray" neutron|x-ray|muon|electron? {Effective -distance from sample}{Distance as seen by radiation from sample. This -number should be negative to signify that it is upstream of the -sample.}? {Source power}? {Accelerator current}? {Accelerator voltage}? -{any source/facility related messages/events that occurred during the -experiment}? {synchrotron operating mode}{"Single Bunch"\|"Multi -Bunch"}? {Is the synchrotron operating in top_up mode}? {"Engineering" -location of source}? {critical energy}? {bending radius}? {spectrum of -bending magnet}? {"Engineering" position of bending magnet}? -{"undulator"\|"wiggler"\|...}? {gap}? {taper}? {phase}? {number of -poles}? {length of insertion device}? {total power delivered by -insertion device}? {energy of peak}? {bandwidth of peak energy}? -{harmonic of peak}? {spectrum of insertion device}? {"Engineering" -position of insertion device}? + {value of motor - need [n] as may be -scanned} {Hardware device record, e.g. EPICS process variable, -taco/tango ...} 1+ {Data values} {Data values} -{name/manufacturer/model/etc. information}? "He3 gas cylinder"\|He3 -PSD"\|"He3 planar multidetector"\| "He3 curved multidetector"\| -"multi-tube He3 PSD"\|"BF3 gas"\|"scintillator"\|"fission -chamber"\|"CCD"\|...? {Identifier for detector}? {offset from the -detector center in x-direction}? {offset from the detector center in the -y-direction}? {Size of each detector pixel. If it is scalar all pixels -are the same size}? {Size of each detector pixel. If it is scalar all -pixels are the same size}? {Distance}? {Polar Angle}? {Azimuthal Angle}? -{Position and orientation of detector element}? {translation normal to -direct beam}? {Solid angle subtended by the detector at the sample}? -{Detector dead time}? {Delay in detector registering an event}? -{Detector gas pressure}? {maximum drift space dimension}? {Crate number -of detector}? {Slot number of detector}? {Input number of detector}? -{Efficiency of detector with respect to e.g. wavelength}? {date of last -calibration (geometry and/or efficiency) measurements}? {summary of -conversion of array data to pixels (e.g. polynomial approximations) and -location of details of the calibrations}? 1+ {Data Values}? {Standard -deviations of data values - the data array is identified by the -attribute signal="1". This array must have the same dimensions as the -data}? {Dimension scale defining an axis of the data}? {Errors -associated with axis "variable"}? + + \ No newline at end of file diff --git a/source/content/Design_Issues.rst b/source/content/Design_Issues.rst index 5d58b894..a70fb3c1 100644 --- a/source/content/Design_Issues.rst +++ b/source/content/Design_Issues.rst @@ -2,51 +2,54 @@ Design Issues ============= +If you have a specific subject concerning the NeXus format design, please add it to the following list and start +a new page (see the `help pages `_ for instructions on adding new pages). If you want others +to participate, you should announce the new discussion on the `NeXus Mailing List +`_. ---- title: Design Issues permalink: Design_Issues.html layout: wiki --- -If you have a specific subject concerning the NeXus format design, -please add it to the following list and start a new page (see the [help -pages](Help:Contents.html "wikilink") for instructions on adding new -pages). If you want others to participate, you should announce the new -discussion on the [NeXus Mailing -List](http://lists.nexusformat.org/mailman/listinfo/nexus). Current -Discussions ------------------- - Structure of NeXus files - basic -questions: - [Objects or Interfaces](Objects_or_Interfaces.html -"wikilink") - [How to avoid name clashes during future extensions of the -Nexus -standard](How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html -"wikilink") - Geometry questions: - Data - [Associating Axes with -Data](Associating_Axes_with_Data.html "wikilink") - [Thumbnails for -Nexus files](Thumbnails_for_Nexus_files.html "wikilink") - [file\\_id -attribute for Nexus files](file_id_attribute_for_Nexus_files.html -"wikilink") - [Scaled Data](Scaled_Data.html "wikilink") - -[NXmonochromator and inheritance](NXmonochromator_and_inheritance.html -"wikilink") Coma Discussions ---------------- These are issues which -have not been attended too for a long time. - [Containers and -Inheritance](Containers_and_Inheritance.html "wikilink") - XLST and -Reusable definitions - [Units](Units.html "wikilink") Closed Discussions ------------------- - [NXaperture and Slits](NXaperture_and_Slits.html -"wikilink") - implemented in form of NXslit and NXpinhole - [Multi -Method Instruments](Multi_Method_Instruments.html "wikilink") - -implemented in form of NXsubentry - [Object oriented -NeXus](OO-NeXus.html "wikilink") - -[2014\\_How\\_to\\_find\\_default\\_data](2014_How_to_find_default_data.html -"wikilink") - a proposal for the 2014 NIAC meeting - [Proposal: NeXus -Coordinates](Proposal_NeXus_Coordinates.html "wikilink") - [Coordinate -Systems](Coordinate_Systems.html "wikilink") - [Extension of NeXus -Coordinate Systems](Extension_of_NeXus_Coordinate_Systems.html -"wikilink") - [Indirect Time-of-Flight and -Coordinates](Indirect_Time-of-Flight_and_Coordinates.html "wikilink") - -[NXgeometry and NXshape - documentation and -review](NXgeometry_and_NXshape\_-\_documentation_and_review.html -"wikilink") - [Detector Geometry](Detector_Geometry.html "wikilink") - -[Update for NXflou application -definition](Update_for_NXflou_application_definition.html "wikilink") - -[NeXus CIF Integration](NeXus_CIF_Integration.html "wikilink") - -[ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") - -[Connecting NXdata to NXdetector](Connecting_NXdata_to_NXdetector.html -"wikilink") - [Double Linking](Double_Linking.html "wikilink") - -[NXmeasurement](NXmeasurement.html "wikilink") - [Proposal: NeXus -Errors](Proposal:\_NeXus_Errors.html "wikilink") - [Storing Event -Data](Storing_Event_Data.html "wikilink") - [NXdetector -documentation](NXdetector_documentation.html "wikilink") +Current Discussions +------------------- + +- Structure of NeXus files - basic questions: + - `Objects or Interfaces `_ + - `How to avoid name clashes during future extensions of the Nexus standard `_ +- Geometry questions: + - Data: + - `Associating Axes with Data `_ + - `Thumbnails for Nexus files `_ + - `file_id attribute for Nexus files `_ + - `Scaled Data `_ + - `NXmonochromator and inheritance `_ + +Coma Discussions +---------------- + +These are issues which have not been attended to for a long time. + +- `Containers and Inheritance `_ +- XLST and Reusable definitions +- `Units `_ + +Closed Discussions +------------------ + +- `NXaperture and Slits `_ - implemented in form of NXslit and NXpinhole +- `Multi Method Instruments `_ - implemented in form of NXsubentry +- `Object oriented NeXus `_ +- `2014_How_to_find_default_data <2014_How_to_find_default_data.html>`_ - a proposal for the 2014 NIAC meeting +- `Proposal: NeXus Coordinates `_ +- `Coordinate Systems `_ +- `Extension of NeXus Coordinate Systems `_ +- `Indirect Time-of-Flight and Coordinates `_ +- `NXgeometry and NXshape - documentation and review + `_ +- `Detector Geometry `_ +- `Update for NXflou application definition `_ +- `NeXus CIF Integration `_ +- `Concordance Discussion `_ +- `Connecting NXdata to NXdetector `_ +- `Double Linking `_ +- `NXmeasurement `_ +- `Proposal: NeXus Errors `_ +- `Storing Event Data `_ +- `NXdetector documentation `_ diff --git a/source/content/Detector_Geometry.rst b/source/content/Detector_Geometry.rst index bf763eb2..66e4fae2 100644 --- a/source/content/Detector_Geometry.rst +++ b/source/content/Detector_Geometry.rst @@ -2,35 +2,49 @@ Detector Geometry ================= +--- title: Detector Geometry permalink: Detector_Geometry.html layout: wiki --- ---- title: Detector Geometry permalink: Detector_Geometry.html layout: -wiki --- Issue ----- Defining the location of a detector, or any generic -object, is potentially challenging. It needs to be agreed upon how to -define the location of an object, specifically detectors, and their -phsyical extent. Proposals should be able to define a position -unambigiously in a way that is easily interpreted by analysis and -plotting software. Proposal: McStas ---------------- Taken from the -McStas manual p45: The instrument is given a global, absolute coordinate -system. In addition, every component in the instrument has its own local -coordinate system that can be given any desired position and orientation -(though the position and orientatino must remain fixed for the duration -of a single simulation). By convention, the z axis points in the -direction of the beam, the x axis is perpendicular to the beam in the -horizontal plane pointing left as seen from the source, and the y axis -points upwards (see figure 5.1). Nothin in McStas enforces this -convention, but if every component used different conventions the user -would be faced with a severe headacha! It is therefore recommended that -this convention is followed by users implementing new components. -Proposal: Vitess ---------------- ### Determined from a figure on p6 The -x axis points in the direction of the beam, the z axis up, and the y -axis to the left while facing down-stream to complete the right handed -coordinate system. ### Determined from a figure on p22 Orientation is -given by two angles which define a component's normal direction. phi is -the angle between the x axis and the normal, projected onto the xy -plane. theta is the angle between the xy plane and the normal. This does -assume that a normal direction is well defined. [Peter -Peterson](User%3APfpeterson.html "wikilink") Thursday, 28 August 2003, -12:04:51 pm Conclusion ---------- 01/2015 This got nowhere. It is also -now obsolete as NIAC is under the impression that the CIF-style -coordinate description allows us to define the position and orientation -of detector elements in space in an adequate and exact way. +Issue +----- + +Defining the location of a detector, or any generic object, is potentially challenging. It needs to be agreed upon how +to define the location of an object, specifically detectors, and their physical extent. Proposals should be able to +define a position unambiguously in a way that is easily interpreted by analysis and plotting software. + +Proposal: McStas +----------------- + +Taken from the McStas manual p45: + +The instrument is given a global, absolute coordinate system. In addition, every component in the instrument has its +own local coordinate system that can be given any desired position and orientation (though the position and orientation +must remain fixed for the duration of a single simulation). + +By convention, the z axis points in the direction of the beam, the x axis is perpendicular to the beam in the horizontal +plane pointing left as seen from the source, and the y axis points upwards (see figure 5.1). Nothing in McStas enforces +this convention, but if every component used different conventions, the user would be faced with a severe headache! It is +therefore recommended that this convention is followed by users implementing new components. + +Proposal: Vitess +---------------- + +### Determined from a figure on p6 + +The x axis points in the direction of the beam, the z axis up, and the y axis to the left while facing downstream to +complete the right-handed coordinate system. + +### Determined from a figure on p22 + +Orientation is given by two angles which define a component's normal direction. Phi is the angle between the x axis and +the normal, projected onto the xy plane. Theta is the angle between the xy plane and the normal. This does assume that a +normal direction is well defined. + +[Peter Peterson](User%3APfpeterson.html "wikilink") Thursday, 28 August 2003, 12:04:51 pm + +Conclusion +---------- + +01/2015 + +This got nowhere. It is also now obsolete as NIAC is under the impression that the CIF-style coordinate description +allows us to define the position and orientation of detector elements in space in an adequate and exact way. diff --git a/source/content/Extension_of_NeXus_Coordinate_Systems.rst b/source/content/Extension_of_NeXus_Coordinate_Systems.rst index 130cdc92..dda5e55b 100644 --- a/source/content/Extension_of_NeXus_Coordinate_Systems.rst +++ b/source/content/Extension_of_NeXus_Coordinate_Systems.rst @@ -1,79 +1,65 @@ -===================================== -Extension of NeXus Coordinate Systems -===================================== - - ---- title: Extension of NeXus Coordinate Systems permalink: -Extension_of_NeXus_Coordinate_Systems.html layout: wiki --- Extension of -the NeXus Coordinate Systems ----------------------------------------- -This suggestion results from comparing imageCIF with NeXus. Ideally we -should be able to make a mapping from CIF to NeXus. Unfortunately, NeXus -had some weaknesses in coordinate systems (addressed by this proposal) -and scaled data. Please note, that this proposal extends in what we -already do in NeXus and does not invalidate earlier efforts. The CIF way -of specifying axis is far more accurate then what we do with NeXus. Thus -the suggestion is to align NeXus with the well thought out CIF scheme. -This section consists first of a discussion of the CIF axis system and -then of suggestions how to use this within NeXus. CIF uses a coordinate -system which is similar to the McStas coordinate system which NeXus uses -at its bottom. Just the orientation of the Z-axis differs. The -description of any given axis in CIF consists of three elements: - The -type of the axis. This can be translation or rotation - The axis vector. -This is the direction of a translation or the vector around which the -axis rotates. - The axis offset. The offset to the base of the rotation -or translation. If this is not given 0,0,0 is assumed. CIF also -describes in which order transformations have to be applied to get a -component into its final position from its zero position. In CIF this is -done by chaining axis through the depends attribute. This scheme is a -generalisation of the methods used commonly in crystallography. There a -crystal is brought into scattering position by applying a series of -rotations. Please note that order is important! ### Axis Suggestions for -NeXus 1) NeXus stays with the McStas coordinate system. 2) NeXus uses -the vector and offset scheme to document existing NeXus axis. The base -of all operations is always the component, if not specified by an offset -vector. Rotations are in degree, translations in milimetre. Some -examples: - rotation\\_angle has a vector 0 1 0, rotation around Y - -azimuthal\\_angle is a rotation around Z, vector = 0 0 1 - polar\\_angle -is also a rotation around Y, vector 0 1 0, but as the rotation axis is -with the previous component upstream, we have an offset of 0 0 -distance -In NXsample we additionally have: - chi is a rotation around Z, vector 0 -0 1 - phi is a rotation around Y, vector 0 1 0 - kappa, for kappa the -vector attribute has to be given as there are kappa goniometres with -different values of kappa. 3) Each NeXus component can have an -additional field with the name transform. This contains a komma -separated list of the operations required to place the component at its -position in the instrument. The formula is: Xcurrent = op1*op2....*opn -\* X0 with transform becoming: op1,op2,....,opn Names of operations are -the names of the axis to apply. Unqualified names relate to axis in the -same group. In order to refer axis outside the current group, full path -names must be given. Storing this separatly in a transform field gives -direct access whereas the CIF depends system requires a lot of searches -to reconstruct the sequence of transforms. This is why I like transform -better. In this description, our NeXus polar coordinate system has the -transform: azimuthal_angle, polar_angle This is also the default if the -transform field is missing. 4) NeXus strongly prefers to use the NeXus -simple coordinate system with polar\\_angle and azimuthal\\_angle as -describe above. This description has the advantage that polar\\_angle is -always two theta. 5) With the vector/offset scheme arbitrary axis can be -stored in NeXus. The rule then is that type, vector and offset have to -be specified as attributes. Type is NX\\_CHAR, vector and offset are of -dim 3 and type NX\\_FLOAT. We need these attributes anyway as there are -angles such as kappa, which differ in their rotation axis between -instruments. 6) NeXus is missing a rotation around the X axis. As we -already bought into quite lyrical names for rotation axis I suggest -aequatorial\\_angle as a name for this. 7) Consequently, as NeXus does -not have fields for describing translations, except in Nxgeometry, I -suggest to add x\\_translation, y\\_translation and z\\_translation -fields to each component. I choose to suggest separate fields for the -translations as they frequently map to dedicated motors. Please note -that all angles have to be 0 if you were to determine the operation of -any given translation motor. 8) The orientation field in NXgeometry -receives the same meaning as vector in axis descriptions. With vector -being aligned with the main axis of the component. 9) NXgeometry stays -as is as a means to describe shapes, engineering coordinates of -orientations of components. Conclusion ---------- 01/2015: CIF style -coordinate system descriptions have been ratified by NIAC in 2012. The -ratified version differs in many details, but not in the approach, from -the material on this page. Please consult a recent copy of the NeXus -manual for an update to date description of NeXus coordinate -descriptions. +===================================== +Extension of NeXus Coordinate Systems +===================================== + +Extension of the NeXus Coordinate Systems +----------------------------------------- + +This suggestion results from comparing imageCIF with NeXus. Ideally, we should be able to make a mapping from CIF to NeXus. Unfortunately, NeXus had some weaknesses in coordinate systems (addressed by this proposal) and scaled data. Please note, that this proposal extends in what we already do in NeXus and does not invalidate earlier efforts. + +The CIF way of specifying axes is far more accurate than what we do with NeXus. Thus, the suggestion is to align NeXus with the well thought-out CIF scheme. This section consists first of a discussion of the CIF axis system and then of suggestions on how to use this within NeXus. + +CIF uses a coordinate system which is similar to the McStas coordinate system that NeXus uses at its bottom. Just the orientation of the Z-axis differs. The description of any given axis in CIF consists of three elements: + +1. **The type of the axis**. This can be translation or rotation. +2. **The axis vector**. This is the direction of a translation or the vector around which the axis rotates. +3. **The axis offset**. The offset to the base of the rotation or translation. If this is not given, 0,0,0 is assumed. + +CIF also describes in which order transformations have to be applied to get a component into its final position from its zero position. In CIF, this is done by chaining axes through the `depends` attribute. This scheme is a generalization of the methods commonly used in crystallography. There, a crystal is brought into scattering position by applying a series of rotations. Please note that order is important! + +### Axis Suggestions for NeXus + +1. NeXus stays with the McStas coordinate system. +2. NeXus uses the vector and offset scheme to document existing NeXus axes. The base of all operations is always the component, if not specified by an offset vector. Rotations are in degrees, translations in millimeters. Some examples: + - `rotation_angle` has a vector 0 1 0, rotation around Y + - `azimuthal_angle` is a rotation around Z, vector = 0 0 1 + - `polar_angle` is also a rotation around Y, vector 0 1 0, but as the rotation axis is with the previous component upstream, we have an offset of 0 0 -distance + +In `NXsample`, we additionally have: + - `chi` is a rotation around Z, vector 0 0 1 + - `phi` is a rotation around Y, vector 0 1 0 + - `kappa`, for kappa the vector attribute has to be given as there are kappa goniometers with different values of kappa. + +3. Each NeXus component can have an additional field with the name `transform`. This contains a comma-separated list of the operations required to place the component at its position in the instrument. The formula is: + + Xcurrent = op1*op2....*opn \* X0 + +with transform becoming: + + op1,op2,....,opn + +Names of operations are the names of the axis to apply. Unqualified names relate to axes in the same group. In order to refer to axes outside the current group, full path names must be given. Storing this separately in a transform field gives direct access, whereas the CIF `depends` system requires a lot of searches to reconstruct the sequence of transforms. This is why I prefer `transform`. + +In this description, our NeXus polar coordinate system has the transform: + + azimuthal_angle, polar_angle + +This is also the default if the transform field is missing. + +4. NeXus strongly prefers to use the NeXus simple coordinate system with `polar_angle` and `azimuthal_angle` as described above. This description has the advantage that `polar_angle` is always two theta. + +5. With the vector/offset scheme, arbitrary axes can be stored in NeXus. The rule then is that type, vector, and offset have to be specified as attributes. Type is `NX_CHAR`, vector and offset are of dimension 3 and type `NX_FLOAT`. We need these attributes anyway, as there are angles such as `kappa`, which differ in their rotation axis between instruments. + +6. NeXus is missing a rotation around the X-axis. As we have already adopted quite lyrical names for rotation axes, I suggest `aequatorial_angle` as a name for this. + +7. Consequently, as NeXus does not have fields for describing translations, except in `NXgeometry`, I suggest adding `x_translation`, `y_translation`, and `z_translation` fields to each component. I choose to suggest separate fields for the translations as they frequently map to dedicated motors. Please note that all angles have to be 0 if you were to determine the operation of any given translation motor. + +8. The `orientation` field in `NXgeometry` receives the same meaning as `vector` in axis descriptions, with `vector` being aligned with the main axis of the component. + +9. `NXgeometry` stays as is as a means to describe shapes, engineering coordinates, and orientations of components. + +Conclusion +---------- + +01/2015: CIF-style coordinate system descriptions have been ratified by NIAC in 2012. The ratified version differs in many details, but not in the approach, from the material on this page. Please consult a recent copy of the NeXus manual for an up-to-date description of NeXus coordinate descriptions. + diff --git a/source/content/File_id_attribute_for_Nexus_files.rst b/source/content/File_id_attribute_for_Nexus_files.rst index 5f96367d..918572b4 100644 --- a/source/content/File_id_attribute_for_Nexus_files.rst +++ b/source/content/File_id_attribute_for_Nexus_files.rst @@ -2,27 +2,38 @@ File id attribute for Nexus files ================================= +In its current definition of `NXroot` no attribute is provided to hold a unique ID for a file. Though there is one for +the filename, this might not be unique and can change over time. +Several facilities are planning to store files on large storage systems to which access is provided not only via a file +system but also via web applications. ---- title: File id attribute for Nexus files permalink: -File_id_attribute_for_Nexus_files.html layout: wiki --- In its current -definition of \`NXroot\` no attribute is provided to hold a unique ID -for a file. Though there is one for the filename, this might not be -unique and can change over time. Several facilities are planning to -store files on large storage systems to which access is provided not -only via a file system but also via web applications. The latter ones -typically rely on a database holding an index of the files on the -storage. In such cases a file on the storage system is typically -associated with an ID which acts as a primary key for the file. -Currently this ID is only stored in the database. Thus if the names or -locations of files on the storage system change there is no way to -rebuild the map between IDs and files. I thus suggest to add an -attribute \`file_id\` to the \`NXroot\` class which allows facilities to -store such a unique key for a file directly to the Nexus file. The other -ID values available are related to a particular instance of \`NXentry\` -and are thus not feasible to identify a file. In particular if several -instances of \`NXentry\` are stored in a single file (this would make -sense for archiving purposes as tape libraries can usually handle large -files much better than very small ones). NXroot (base class, version -1.0) @NX_class @file_time @file_name @file_update_time @NeXus_version -@HDF_version @HDF5_Version @XML_version @creator @file_id NXentry The -\`file_id\` attribute should be of type \`NX_CHAR\`. +The latter ones typically rely on a database holding an index of the files on the storage. +In such cases a file on the storage system is typically associated with an ID which acts as a primary key for the file. +Currently this ID is only stored in the database. +Thus if the names or locations of files on the storage system change there is no way to rebuild the map between IDs and +files. + +I thus suggest to add an attribute `file_id` to the `NXroot` class which allows facilities to store such a unique key +for a file directly to the Nexus file. +The other ID values available are related to a particular instance of `NXentry` and are thus not feasible to identify a +file. + +In particular if several instances of `NXentry` are stored in a single file (this would make sense for archiving +purposes as tape libraries can usually handle large files much better than very small ones). + +.. code-block:: xml + + NXroot (base class, version 1.0) + + @NX_class + @file_time + @file_name + @file_update_time + @NeXus_version + @HDF_version + @HDF5_Version + @XML_version + @creator + @file_id + +The `file_id` attribute should be of type `NX_CHAR`. diff --git a/source/content/GenericScan.rst b/source/content/GenericScan.rst index 859b7c9b..61ed9334 100644 --- a/source/content/GenericScan.rst +++ b/source/content/GenericScan.rst @@ -2,28 +2,39 @@ GenericScan =========== +Generic Scan Instrument +----------------------- +This is a DTD for an example generic instrument which performs scans. +This example is for an omega-two-theta (rotation_angle polar_angle +in NeXus notation) scan and serves to highlight NeXus scan data storage +principles: ---- title: GenericScan permalink: GenericScan.html layout: wiki --- -Generic Scan Instrument ----------------------- This is a DTD for an -example generic instrument which performs scans. This example is for an -omega-two-theta (rotation\\_angle polar\\_angle in NeXus notation) scan -and serves to highlight NeXus scan data storage principles: - Assume np -to be the number of scan points - Variable data (such as motors) which -can vary during the scan are stored as arrays of length np at their -proper place in the NXinstrument hierarchy. - In NXdata links to all -varied positions and the dectector counts are created. This provides for -easy access to the popular table format for scans. - In the case of -multi dimensional detectors, the PSD data must be stored with the scan -variable being the fastest varying dimension(the first) for technical -reasons. - If you to choose to store PSD scans in separate files or -separate entries, it is the users responsibility to process the data in -the right order. -+ -{Extended title for entry} -{Descriptive name of sample} {Type of sample environment} {polar_angle -to monochromator} { sample rotation} {name of instrument} {name of -facility} "Reactor" {reactor power} {wavelength at each scan position} -{Detector counts for each scan position} {polar angle for each scan -position} monitor \| timer {preset value for monitor or timer} {Monitor -counts for each scan position} {Link to detector counts} {Link to -detector polar_angle} {Link to sample rotation_angle} +- Assume np to be the number of scan points +- Variable data (such as motors) which can vary during the scan are stored as arrays of length np at their proper place in the NXinstrument hierarchy. +- In NXdata links to all varied positions and the dectector counts are created. + +This provides for easy access to the popular table format for scans. +- In the case of multi dimensional detectors, the PSD data must be stored with the scan variable being the fastest varying dimension(the first) for technical reasons. +- If you to choose to store PSD scans in separate files or separate entries, it is the users responsibility to process the data in the right order. + +.. code-block:: xml + + {Extended title for entry} + {Descriptive name of sample} + {Type of sample environment} + {polar_angle to monochromator} + {sample rotation} + {name of instrument} + {name of facility} + "Reactor" + {reactor power} + {wavelength at each scan position} + {Detector counts for each scan position} + {polar angle for each scan position} + monitor | + timer + {preset value for monitor or timer} + {Monitor counts for each scan position} + {Link to detector counts} + {Link to detector polar_angle} + {Link to sample rotation_angle} \ No newline at end of file diff --git a/source/content/Group_Attributes.rst b/source/content/Group_Attributes.rst index 2ea840dd..b8a4336b 100644 --- a/source/content/Group_Attributes.rst +++ b/source/content/Group_Attributes.rst @@ -2,22 +2,22 @@ Group Attributes ================ +### Group Attributes Implementation +At the last NIAC meeting we decided that group attributes shall be +implemented for NAPI-4.0. I now looked into this. As recent versions +of HDF4 now also support group attributes, the implementation is not a +big problem. However there is one issue: The most logical approach +would be to modify NXputattr, NXgetattr, NXgetnextattr etc. to do +group attributes. But this changes the way the NeXus-API works in a +subtle and incompatible way: Now the NeXus-API writes a file global +attribute when no dataset is open. After the change, file global +attributes would only be written at root level, else group attributes +would be written when no dataset is open. This can break older code. +Or we can keep the way the API works and introduce a new set of +functions for handling group attributes. ---- title: Group Attributes permalink: Group_Attributes.html layout: -wiki --- ### Group Attributes Implementation At the last NIAC meeting we -decided that group attributes shall be implemented for NAPI-4.0. I now -looked into this. As recent versions of HDF4 now also support group -attributes, the implementation is not a big problem. However there is -one issue: The most logical approach would be to modify NXputattr, -NXgetattr, NXgetnextattr etc. to do group attributes. But this changes -the way the NeXus-API works in a subtle and incompatible way: Now the -NeXus-API writes a file global attribute when no dataset is open. After -the change, file global attributes would only be written at root level, -else group attributes would be written when no dataset is open. This can -break older code. Or we can keep the way the API works and introduce a -new set of functions for handling group attributes. So we have two -choices: - Use the existing NX attribute functions and introduce a -subtle version incompatibility - Define new functions for group -attributes. I am in favour of the first solution because it prevents -API-bloat. But what does everyone else think? Mark Koennecke, January, -6, 2006 Decided: february, 3, 2006, we go with the incompatible change +So we have two choices: + +- Use the existing NX attribute functions and introduce a subtle version incompatibility + +- Define new functions for group attributes. I am in favour of the first solution because it prevents API-bloat. But what does everyone else think? Mark Koennecke, January, 6, 2006 Decided: february, 3, 2006,we go with the incompatible change diff --git a/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst b/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst index 3a44f641..301b0469 100644 --- a/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst +++ b/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst @@ -2,51 +2,60 @@ How to avoid name clashes during future extensions of the Nexus standard ======================================================================== +The current standard allows users to use any name they want for fields and groups within base +classes. This can cause troubles for future extensions of the standard. Consider the simple case +where a user has chosen a name for a field within a base class which is not used by the current +standard. What will happen when the NIAC decides 3 years later that this name will be used for a +new standard field in the same base class. There are three possible approaches to avoid this +problem: ---- title: How to avoid name clashes during future extensions of the -Nexus standard permalink: -How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html -layout: wiki --- The Problem ----------- The current standard allows -users to use any name they want for fields and groups within base -classes. This can cause troubles for future extensions of the standard. -Consider the simple case where a user has chosen a name for a field -within a base class which is not used by the current standard. What will -happen when the NIAC decides 3 years later that this name will be used -for a new standard field in the same base class. This is in particular -problematic if the new field has an entirely different semantics as the -one the user had in mind when he created its own field. There are three -possible approaches to avoid this problem - every user defined field -must start with a particular prefix - use strong typing not only for -groups but also for fields - store all non-standard fields in an -instance of NXcollection Each of these approaches has its pros and cons -which should be discussed in this article. Question: I readily agree -that there is a potential problem. But what does it tell us that we -needed 20 years to discover it? MK Prefixes for user defined names -------------------------------- The most obvious way would be to add a -prefix to a field in order to distinguish standard- from user-defined -fields. For instance we could require users to prefix their own fields -with \`user\_\_\` so a user defined angle would have a name like -\`user\__tth\` ### Pros :\\\* easy to implement -- a paragraph in the -documentation would suffice ### Cons :\\\* it is virtually impossible to -force users to stick to this convention :\\\* every field name must be -parsed before we can tell whether it is a standard or a user defined -field :\\\* users hardly ever read a manual that careful to recognize -such a convention Strong typing for fields ------------------------ A -type could be added to each field by adding an attribute like -\*NX\\_class\* for groups. Indeed we could reuse \*NX\\_class\* for -fields. Such an approach might makes names entirely arbitrary as we -search for fields by type rather than by name (as we are doing it for -groups). ### Pros ### Cons - We break heavily with NeXus: the dictionary -is part of NeXus - All searches would need to be for type. Types which -are encoded in attributes. This becomes only practical with a special -tool. Do we like special tools? Given our limited resources to maintain -them? Using of NXcollection --------------------- The third approach is -to make more extensive use of \*NXcollection\*. Every field or group -which is not defined by the standard will be stored in an instance of -\*NXcollection\*. ### Pros :\\\* like the prefix approach this is easy -to do - just add a section in the documentation :\\\* no need to invent -new concepts as \*NXcollection\* already exists :\\\* could use -\*NXcollection\* as a kind of staging area for future class extensions -### Cons :\\\* add an additional hierarchy to the Nexus tree :\\\* need -to define standard name for instances of \*NXcollection\* to avoid -future name clashes with the collection instance itself +- every user defined field must start with a particular prefix +- use strong typing not only for groups but also for fields +- store all non-standard fields in an instance of NXcollection + +Each of these approaches has its pros and cons which should be discussed in this article. +Question: I readily agree that there is a potential problem. But what does it tell us that we +needed 20 years to discover it? MK + +Prefixes for user defined names +------------------------------- + +The most obvious way would be to add a prefix to a field in order to distinguish standard- from +user-defined fields. For instance we could require users to prefix their own fields with `user__` +so a user defined angle would have a name like user__tth + +Pros: +* easy to implement -- a paragraph in the documentation would suffice + +Cons: +* it is virtually impossible to force users to stick to this convention +* every field name must be parsed before we can tell whether it is a standard or a user defined field +* users hardly ever read a manual that careful to recognize such a convention + +Strong typing for fields +------------------------ + +A type could be added to each field by adding an attribute like *NX_class* for groups. Indeed we +could reuse *NX_class* for fields. Such an approach might makes names entirely arbitrary as we +search for fields by type rather than by name (as we are doing it for groups). + +Pros: + +Cons: +- We break heavily with NeXus: the dictionary is part of NeXus +- All searches would need to be for type. Types which are encoded in attributes. This becomes only practical with a special tool. Do we like special tools? Given our limited resources to maintain them? + +Using of NXcollection +--------------------- + +The third approach is to make more extensive use of *NXcollection*. Every field or group which +is not defined by the standard will be stored in an instance of *NXcollection*. + +Pros: +* like the prefix approach this is easy to do - just add a section in the documentation +* no need to invent new concepts as *NXcollection* already exists +* could use *NXcollection* as a kind of staging area for future class extensions + +Cons: +* add an additional hierarchy to the Nexus tree +* need to define standard name for instances of *NXcollection* to avoid future name clashes with the collection instance itself diff --git a/source/content/IndirectDiscuss.rst b/source/content/IndirectDiscuss.rst index 5786cf04..2e9f0857 100644 --- a/source/content/IndirectDiscuss.rst +++ b/source/content/IndirectDiscuss.rst @@ -2,116 +2,66 @@ IndirectDiscuss =============== +This file is from the old SWIKI and a starting point for discussion. The idea is to come up with a definition +based on inheritance from other definitions such as `TOFRaw `__, NXtofnigs.xml. ---- title: IndirectDiscuss permalink: IndirectDiscuss.html layout: wiki ---- This file is from the old SWIKI and a starting point for discussion -... the idea is to come up with a definition based on inheritance from -other definitions such as [TOFRaw](TOFRaw.html "wikilink") NXtofnigs.xml -{Name of instrument} {(x,y,z) position coordinates relative to origin at -sample position}? {The orientation information is stored as direction -cosines relative to origin at sample position.} {"nxcylinder", "nxbox", -"nxsphere", ...}? { nshapepar dimensions for selected shape}? -{Sequential order of target along beam path} {Optional -description/label}? {Sequential order of component along beam path}? -{"Engineering" position of moderator}? {Effective distance as seen by -measuring radiation}? { "H20" \| "D20" \| "Liquid H2" \| "Liquid CH4" \| -"Liquid D2" \| "Solid D2" \| "C" \|"Solid CH4" \| "Solid H2"}? {Poison -depth}? {whether the moderator is coupled}? { Gd \| Cd \|...} -{average/nominal moderator temperature} {log file of moderator -temperature} {moderator pulse shape} {Position and orientation of -moderator}? {(x,y,z) position coordinates relative to origin at sample -position}? {The orientation information is stored as direction cosines -relative to origin at sample position.} {"nxcylinder", "nxbox", -"nxsphere", ...}? { nshapepar dimensions for selected shape}? -{Sequential order of moderator along beam path} \* {} {} {Reflectivity -as function of wavelength [nsurf,i]} {} {} "vacuum"\|"helium"\|"argon" -{external material outside substrate} {} {} {} {} {} {} {number of -substrate sections} {Position and orientation of guide}? {(x,y,z) -position coordinates relative to origin at sample position}? {The -orientation information is stored as direction cosines relative to -origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { -nshapepar dimensions for selected shape}? {Sequential order of guide -along beam path} ? \* {Chopper type -single|contra_rotating_pair|synchro_pair}? {chopper rotation speed}? -{Number of slits} {angular opening} {disc spacing in direction of beam}? -{radius to centre of slit} {total slit height} {chopper phase angle}? -{pulse reduction factor of this chopper in relation to other -choppers/fastest pulse in the instrument}? {Effective distance to the -origin}? {low and high values of wavelength range transmitted}? -{Position and orientation of chopper}? {(x,y,z) position coordinates -relative to origin at sample position}? {The orientation information is -stored as direction cosines relative to origin at sample position.} -{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for -selected shape}? {Sequential order of chopper along beam path} \* -{Absorbing material of the aperture}? {Description of aperture}? -{Position and orientation of aperture}? {(x,y,z) position coordinates -relative to origin at sample position}? {The orientation information is -stored as direction cosines relative to origin at sample position.} -{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for -selected shape}? {Sequential order of aperture along beam path} + -"Fission Chamber"\|"Scintillator"? "monitor"\|"timer"? {preset value for -time or monitor}? {Distance of monitor from sample position}? {Monitor -efficiency as a function of wavelength}? {Proportion of incident beam -sampled by the monitor} {Position and orientation of monitor}? {(x,y,z) -position coordinates relative to origin at sample position}? {The -orientation information is stored as direction cosines relative to -origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { -nshapepar dimensions for selected shape}? {Sequential order of monitor -along beam path} {Coordinate system reference marker} 0 \* {"Beryllium" -\| "Pyrolytic Graphite" \| "Graphite" \| "Sapphire" \| "Silicon"}? {in -\| out}? {Wavelength transmission profile of filter}? {average/nominal -filter temperature} {Linked temperature_log for the filter}? {Sensor(s) -used to monitor the filter temperature}? {Unit cell parameters for -single crystal filter(lengths and angles)}? {Unit cell}? {Orientation -matrix of single crystal filter}? {Position and orientation of filters -within bank}? {(x,y,z) position coordinates relative to origin at sample -position}? {The orientation information is stored as direction cosines -relative to origin at sample position.} {"nxcylinder", "nxbox", -"nxsphere", ...}? { nshapepar dimensions for selected shape}? -{Sequential order of filter bank along beam path} \* "Soller"\|"radial" -{divergence of collimator in local x direction} {divergence of -collimator in local y direction}? {thickness of absorbing blades}? {gap -between absorbing blades}? {coating on or complete material of blades}? -{material separating absorbing blades}? {Position and orientation of -collimators within bank}? {(x,y,z) position coordinates relative to -origin at sample position}? {The orientation information is stored as -direction cosines relative to origin at sample position.} {"nxcylinder", -"nxbox", "nxsphere", ...}? { nshapepar dimensions for selected shape}? -{Sequential order of collimator bank along beam path} + { "PG (Highly -Oriented Pyrolytic Graphite)" \| "Ge" \| "Si" \| "Cu" \| "Fe3Si" \| -"CoFe" \| "Cu2MnAl (Heusler)" \| "Multilayer" } {horizontal mosaic Full -Width Half Maximum}? {vertical mosaic Full Width Half Maximum}? {Optimum -diffracted wavelength} {Bragg angle of nominal reflection} {Lattice -parameter of the nominal reflection}? {Scattering vector, Q, of nominal -reflection}? {Unit cell parameters (lengths and angles)}? {Volume of the -unit cell}? {(hkl) values of nominal reflection}? {average/nominal -crystal temperature}? {log file of crystal temperature}? {crystal -reflectivity versus wavelength}? {crystal transmission versus -wavelength}? {Horizontal width of individual segment}? {Vertical height -of individual segment}? {Thickness of individual segment}? {Typical gap -between adjacent segments}? {number of segment columns in horizontal -direction}? {number of segment rows in vertical direction}? {Horizontal -curvature of focusing crystal}? {Vertical curvature of focusing -crystal}? {Cut angle of reflecting Bragg plane and plane of crystal -surface}? {Position and orientation of crystals within bank}? {(x,y,z) -position coordinates relative to origin at sample position}? {The -orientation information is stored as direction cosines relative to -origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { -nshapepar dimensions for selected shape}? {Sequential order of analyser -bank along beam path} + {Identifier for detector} -{name/manufacturer/model/etc. information}? {Detector gas pressure}? -{maximum drift space dimension}? {Crate number of detector}? {Slot -number of detector}? {Input number of detector}? {"He3 gas -cylinder"\|He3 PSD"\|"He3 planar multidetector"\| "He3 curved -multidetector"\| "multi-tube He3 PSD"\|"BF3 gas"\|"scintillator"? {Total -distance from sample position to detector through secondary -spectrometer} {Position and orientation of detector elements in bank}? -{(x,y,z) position coordinates relative to origin at sample position}? -{The orientation information is stored as direction cosines relative to -origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { -nshapepar dimensions for selected shape}? {Sequential order of detector -bank along beam path} {Total time of flight from sample position to -detector through secondary spectrometer} {Detector dead time}? {Delay in -detector registering an event}? {date of last calibration (geometry -and/or efficiency) measurements}? {details of the calibration method}? -{Efficiency of detector with respect to e.g. wavelength}? \*? +- **Name of instrument**: + - (x,y,z) position coordinates relative to origin at sample position? + - The orientation information is stored as direction cosines relative to origin at sample position. + +- **Shape**: + - Options: "nxcylinder", "nxbox", "nxsphere", etc. + - nshapepar dimensions for selected shape? + +- **Sequential order of target along beam path**. + +- **Optional description/label**: + - Sequential order of component along beam path? + +- **Moderator information**: + - "Engineering" position of moderator. + - Effective distance as seen by measuring radiation. + - Moderator type: "H2O" | "D20" | "Liquid H2" | "Liquid CH4" | "Solid D2", etc. + - Poison depth and moderator coupling details. + - Average/nominal moderator temperature and temperature log. + +- **Guide details**: + - Position and orientation of guide (x, y, z coordinates relative to origin at sample position). + - Shape: "nxcylinder", "nxbox", "nxsphere", etc. + - Sequential order of guide along beam path. + +- **Chopper details**: + - Chopper type: "single", "contra_rotating_pair", "synchro_pair". + - Chopper rotation speed. + - Number of slits, angular opening, disc spacing, and radius to center of slit. + - Chopper phase angle and pulse reduction factor. + +- **Aperture information**: + - Absorbing material, description of aperture. + - Position and orientation of aperture. + - Shape: "nxcylinder", "nxbox", "nxsphere", etc. + +- **Monitor information**: + - Type: "Fission Chamber" | "Scintillator". + - Monitor efficiency, proportion of incident beam sampled, and distance from sample. + - Wavelength transmission profile of filter. + - Filter temperature and sensor log. + +- **Collimator details**: + - Type: "Soller" | "radial". + - Divergence in local x and y directions, thickness of absorbing blades. + - Position and orientation within bank. + +- **Crystal details**: + - Type: "PG", "Ge", "Si", "Cu", etc. + - Horizontal and vertical mosaic Full Width Half Maximum. + - Bragg angle, lattice parameter, and scattering vector for nominal reflection. + - Unit cell parameters, volume, and (hkl) values. + - Crystal reflectivity and transmission profiles. + +- **Detector details**: + - Type: "He3 gas cylinder" | "He3 PSD" | "scintillator", etc. + - Total distance from sample position to detector. + - Position and orientation in detector bank. + - Total time of flight and detector dead time. + - Efficiency of detector with respect to wavelength. \ No newline at end of file diff --git a/source/content/Indirect_Time-of-Flight_and_Coordinates.rst b/source/content/Indirect_Time-of-Flight_and_Coordinates.rst index d6f44ccd..ea3132f8 100644 --- a/source/content/Indirect_Time-of-Flight_and_Coordinates.rst +++ b/source/content/Indirect_Time-of-Flight_and_Coordinates.rst @@ -2,44 +2,42 @@ Indirect Time-of-Flight and Coordinates ======================================= +I am having some problems describing a indirect time-of-flight instrument we are currently +building. The name of the instrument is MARS. See this image for a schema. +![MARS|center](mars.png "MARS|center") ---- title: Indirect Time-of-Flight and Coordinates permalink: -Indirect_Time-of-Flight_and_Coordinates.html layout: wiki --- I am -having some problems describing a indirect time-of-flight instrument we -are currently building. The name of the instrument is MARS. See this -image for a schema. ![MARS|center](mars.png "MARS|center") The -instrument has 12 elastic detectors. These go in a separate NXentry -group and are covered by the the TOFNPD DTD. However, I missed -information about choppers in that DTD. This leads to my first question: -Is TOF-monitors, data and distances really the only items needed for -data analysis for TOFNPD? There are also 12 inelastic detectors. Theya -are supposed to go in another NXentry group following the to-be-defined -TOFNIG-DTD. Each of them is mounted on a triffid together with an -analyzer. The triffids are positioned at various polar\\_angles with -respect to the sample. On each triffid the analyzers move upwards and -scatter neutrons into the detectors below them. In order to make this -perfectly clear: scattering happens in the vertical plane. There are -several problem here: I tend to treat both the analyzers and the -detectors as a bank each. They are usually moved together; any -differences can be caught in parameter arrays. How to describe the -analyzer position? The polar\\_angle is clear. I like to think of the -polar\\_angle corresponding to longitude in a polar coordinate system -with the incoming beam describing the null meridian. But the tile angle -or latitude is missing from our simple coordinate system. What we have -is the azimuthal angle. From the use at the triple axis I deduce that -this is really a rotation around a vector connecting the sample and the -analyzer. This simply does not cut it. I suggest to add a tilt angle out -of the instrument plane, corresponding to latitude to our simple -coordinate system which would then consist of: polar\\_angle, tilt, -distance and azimuthal\\_angle. How to describe the scattering between -the analyzer and the detector? Rather then defining yet another -coordinate system, I would like to wrap two theta between analyzer and -detector into the tilt angle. ------------------------------------------------------------------------- -May be I am just confused about [Coordinate -Systems](Coordinate_Systems.html "wikilink") here. ---- ------------------------------------------------------------------------- ------------------------------------------------------------------------- -Conclusion ---------- 01/2015 This page is totally obsolete. I think the -problem was resolved by changing the scattering plane. Now, the adequate -solution is the CIF-style description of the axes used. +The instrument has 12 elastic detectors. These go in a separate NXentry group and are covered +by the the TOFNPD DTD. However, I missed information about choppers in that DTD. This leads to +my first question: Is TOF-monitors, data and distances really the only items needed for data +analysis for TOFNPD? + +There are also 12 inelastic detectors. They are supposed to go in another NXentry group +following the to-be-defined TOFNIG-DTD. Each of them is mounted on a triffid together with an +analyzer. The triffids are positioned at various polar_angles with respect to the sample. On +each triffid the analyzers move upwards and scatter neutrons into the detectors below them. In +order to make this perfectly clear: scattering happens in the vertical plane. + +There are several problems here: I tend to treat both the analyzers and the detectors as a bank +each. They are usually moved together; any differences can be caught in parameter arrays. How +to describe the analyzer position? The polar_angle is clear. I like to think of the polar_angle +corresponding to longitude in a polar coordinate system with the incoming beam describing the +null meridian. But the tile angle or latitude is missing from our simple coordinate system. +What we have is the azimuthal angle. From the use at the triple axis I deduce that this is +really a rotation around a vector connecting the sample and the analyzer. This simply does not +cut it. I suggest to add a tilt angle out of the instrument plane, corresponding to latitude to +our simple coordinate system which would then consist of: polar_angle, tilt, distance and +azimuthal_angle. + +How to describe the scattering between the analyzer and the detector? Rather than defining yet +another coordinate system, I would like to wrap two theta between analyzer and detector into the +tilt angle. + + +May be I am just confused about [Coordinate Systems](Coordinate_Systems.html "wikilink") here. +---------------------------------------------------------------------------------------------- + +Conclusion +---------- + +01/2015 This page is totally obsolete. I think the problem was resolved by changing the +scattering plane. Now, the adequate solution is the CIF-style description of the axes used. diff --git a/source/content/Instruments.rst b/source/content/Instruments.rst index 533300ac..2909a063 100644 --- a/source/content/Instruments.rst +++ b/source/content/Instruments.rst @@ -2,95 +2,90 @@ Instruments =========== +The NeXus Design page lists the group classes from which a NeXus file is constructed. They provide the glossary of items that could, in principle, be stored in a standard-conforming NeXus file (other items may be inserted into the file if the author wishes, but they won't be part of the standard). If you are going to include a particular piece of metadata, consult the `class definitions ` to find out what to call it. However, to assist those writing data analysis software, it is useful to provide more than a glossary; it is important to define the required contents of NeXus files that contain data from particular classes of neutron, x-ray, or muon instruments. +As part of the NeXus standard, we have identified a number of generic instruments that describe an appreciable number of existing instruments around the world. Although not identical in every detail, they share enough common characteristics, and more importantly, they require sufficiently similar modes of data analysis, to make a standard description useful. They are in the process of being defined for the NeXus standard. The definitions will be in XML using the NXDL (NeXus Definition Language) format. ---- title: Instruments permalink: Instruments.html layout: wiki --- The -NeXus Design page lists the group classes from which a NeXus file is -constructed. They provide the glossary of items that could, in -principle, be stored in a standard-conforming NeXus file (other items -may be inserted into the file if the author wishes, but they won't be -part of the standard). If you are going to include a particular piece of -metadata, consult the [class definitions](Design.html "wikilink") to -find out what to call it. However, to assist those writing data analysis -software, it is useful to provide more than a glossary; it is important -to define the required contents of NeXus files that contain data from -particular classes of neutron, x-ray, or muon instrument. As part of the -NeXus standard, we have identified a number of generic instruments that -describe an appreciable number of existing instruments around the world. -Although not identical in every detail, they share enough common -characteristics, and more importantly, they require sufficiently similar -modes of data analysis, to make a standard description useful. They are -in the process of being defined for the NeXus standard. The definitions -will be in XML using the NXDL (NeXus Definition Language) format. -Instrument Definitions List --------------------------- ### TRAC -[Pete](User%3APete_Jemian.html "wikilink") 15:49, 14 December 2009 -(UTC): [NeXus definitions TRAC ticket -\\#3](http://trac.nexusformat.org/definitions/ticket/3) was created to -describe the items on this page. Classes that were not already described -in NXDL have TRAC tickets created. The status of each of these classes -is described in the comments on that page. All new propositions for -classes should be described with a [new TRAC -ticket](http://trac.nexusformat.org/definitions/newticket). ### Ratified -These have been voted on by the [NIAC](NIAC.html "wikilink") and so are -official NeXus definitions - [NXTOFRaw: Time-of-Flight Raw -Data](TOFRaw.html "wikilink") Editors: [Freddie -Akeroyd](User%3AFreddie_Akeroyd.html "wikilink"), [Peter -Peterson](User%3APeter_Peterson.html "wikilink") - [Monochromatic -Neutron and X-ray Powder -Diffraction](Monochromatic_Neutron_and_X-ray_Powder_Diffraction.html -"wikilink") Editor: [Mark Knnecke](User%3AMark_Koennecke.html -"wikilink"), PSI - [Generic Scanning Instrument](GenericScan.html -"wikilink") Editor: [Mark Knnecke](User%3AMark_Koennecke.html -"wikilink"), PSI - [Monochromatic Neutron and X-ray Triple-Axis -Spectrometer](Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer.html -"wikilink") Editor: [Nicholas Maliszewskyj](User%3ANickm.html -"wikilink") (NIST Center for Neutron Research, USA). ### Proposed In -this case the need for a particular definition has been identified, an -editor has been assigned and some detailed discussions have taken place; -however the definition has not yet been voted on by the [NIAC](NIAC.html -"wikilink") and so could still undergo modification. - [Monochromatic -Neutron and X-ray Single Crystal -Diffractometer](Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.html -"wikilink") Editor: [Mark Knnecke](User%3AMark_Koennecke.html -"wikilink"), PSI - [Archive Definition](Archive_Definition.html -"wikilink") Editor: [Laurent Lerusse](User%3AL.lerusse.html "wikilink") -(CCLRC - Rutherford Appleton Laboratory, e-Science, UK) - [Monochromatic -Neutron and X-ray Small Angle Scattering](SAS.html "wikilink") Editor: -Ron Ghosh (Institut Laue Langevin, France). - [Processed -Data](Processed_Data.html "wikilink") Editor: [Ray -Osborn](User%3ARay_Osborn.html "wikilink") (Argonne National Laboratory, -USA) - [X-Ray Synchrotron Raw](XESraw.html "wikilink") Editor: [Stuart -Campbell](User%3AStuart_Campbell.html "wikilink") (Diamond Light Source, -UK) - [Muon Time Differential](Muon_Time_Differential.html "wikilink") -Editor: [Steve Cottrell](User%3ASteve_Cottrell.html "wikilink") (ISIS, -UK) ### Planned These definitions are currently being worked on and so -could still undergo major revisions. When they near completion they will -be moved into the \*Proposed\* category above. - Diffraction - Protein -Crystallography - [Time-of-Flight Neutron Powder -Diffraction](Time-of-Flight_Neutron_Powder_Diffraction.html "wikilink"), -Editor: [Peter Peterson](User%3APfpeterson.html "wikilink") (Spallation -Neutron Source, USA). - [Time-of-Flight Neutron Single Crystal -Diffractometer](Time-of-Flight_Neutron_Single_Crystal_Diffractometer.html -"wikilink"), Editor: TBA - Reflectometry - [Time-of-Flight Neutron -Reflectometry](Time-of-Flight_Neutron_Reflectometry.html "wikilink"), -Editor: Robert Dalgliesh (ISIS Pulsed Neutron and Muon Source, UK) - -[Monochromatic Neutron and X-ray -Reflectometry](Monochromatic_Neutron_and_X-ray_Reflectometry.html -"wikilink"), Editor: Paul Kienzle (NIST Center for Neutron Research, -USA) - Imaging - X-ray Tomography - Small-Angle Scattering - Grazing -Incidence Small-Angle X-ray Scattering, Editor: TBA - [Time-of-Flight -Small Angle Scattering](Time-of-Flight_Small_Angle_Scattering.html -"wikilink"), Editor: Stephen King (ISIS Pulsed Neutron and Muon Source, -UK) - Ultra-Small-Angle Neutron Scattering, Editor: TBA - -Ultra-Small-Angle X-ray Scattering, Editor: [User%3APete -Jemian](User%3APete_Jemian.html "wikilink") (Advanced Photon Source, -USA) - Spectrometers - [Time-of-Flight Neutron Direct Geometry -Spectrometer](Time-of-Flight_Neutron_Direct_Geometry_Spectrometer.html -"wikilink"), Editor: Toby Perring (ISIS Pulsed Neutron and Muon Source, -UK) - [Time-of-Flight Neutron Indirect Geometry -Spectrometer](Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer.html -"wikilink"), Editor: Martyn Bull (ISIS Pulsed Neutron and Muon Source, -UK) - XAS: X-ray Absorption Spectroscopy - XPCS: X-ray Photon -Correlation Spectroscopy - Spin-Echo - [Neutron Spin -Echo](Neutron_Spin_Echo.html "wikilink"), Editor: Robert Georgii -(FRM-II, Germany) - [Time-of-Flight Neutron Spin -Echo](Time-of-Flight_Neutron_Spin_Echo.html "wikilink"), Editor: TBA +Instrument Definitions List +--------------------------- + +# TRAC +*Pete* 15:49, 14 December 2009 (UTC): `NeXus definitions TRAC ticket #3 `__ was created to describe the items on this page. Classes that were not already described in NXDL have TRAC tickets created. The status of each of these classes is described in the comments on that page. All new propositions for classes should be described with a `new TRAC ticket `__. + +# Ratified +These have been voted on by the `NIAC <../niac/niac.html>`__ and so are official NeXus definitions: + +- `NXTOFRaw: Time-of-Flight Raw Data `__ + Editors: *Freddie Akeroyd*, *Peter Peterson* + +- `Monochromatic Neutron and X-ray Powder Diffraction `__ + Editor: *Mark Knnecke*, PSI + +- `Generic Scanning Instrument `__ + Editor: *Mark Knnecke*, PSI + +- `Monochromatic Neutron and X-ray Triple-Axis Spectrometer `__ + Editor: *Nicholas Maliszewskyj* (NIST Center for Neutron Research, USA). + +### Proposed +These definitions are being worked on and could still undergo modification before being voted on by the `NIAC <../niac/niac.html>`__: + +- `Monochromatic Neutron and X-ray Single Crystal Diffractometer `__ + Editor: *Mark Knnecke*, PSI + +- `Archive Definition `__ + Editor: *Laurent Lerusse* (CCLRC - Rutherford Appleton Laboratory, e-Science, UK) + +- `Monochromatic Neutron and X-ray Small Angle Scattering `__ + Editor: *Ron Ghosh* (Institut Laue Langevin, France) + +- `Processed Data `__ + Editor: *Ray Osborn* (Argonne National Laboratory, USA) + +- `X-Ray Synchrotron Raw `__ + Editor: *Stuart Campbell* (Diamond Light Source, UK) + +- `Muon Time Differential `__ + Editor: *Steve Cottrell* (ISIS, UK) + +### Planned +These definitions are currently being worked on and so could still undergo major revisions. When they near completion, they will be moved into the *Proposed* category above. + +- Diffraction +- Protein Crystallography +- `Time-of-Flight Neutron Powder Diffraction `__ + Editor: *Peter Peterson* (Spallation Neutron Source, USA). + +- `Time-of-Flight Neutron Single Crystal Diffractometer `__ + Editor: TBA + +- Reflectometry +- `Time-of-Flight Neutron Reflectometry `__ + Editor: *Robert Dalgliesh* (ISIS Pulsed Neutron and Muon Source, UK) + +- `Monochromatic Neutron and X-ray Reflectometry `__ + Editor: *Paul Kienzle* (NIST Center for Neutron Research, USA) + +- Imaging + - X-ray Tomography + - Small-Angle Scattering + - Grazing Incidence Small-Angle X-ray Scattering (Editor: TBA) + - `Time-of-Flight Small Angle Scattering `__ + Editor: *Stephen King* (ISIS Pulsed Neutron and Muon Source, UK) + - Ultra-Small-Angle Neutron Scattering (Editor: TBA) + - Ultra-Small-Angle X-ray Scattering + Editor: *Pete Jemian* (Advanced Photon Source, USA) + +- Spectrometers + - `Time-of-Flight Neutron Direct Geometry Spectrometer `__ + Editor: *Toby Perring* (ISIS Pulsed Neutron and Muon Source, UK) + + - `Time-of-Flight Neutron Indirect Geometry Spectrometer `__ + Editor: *Martyn Bull* (ISIS Pulsed Neutron and Muon Source, UK) + +- XAS: X-ray Absorption Spectroscopy +- XPCS: X-ray Photon Correlation Spectroscopy +- Spin-Echo + - `Neutron Spin Echo ` + Editor: *Robert Georgii* (FRM-II, Germany) + - `Time-of-Flight Neutron Spin Echo `__ + Editor: TBA diff --git a/source/content/IssueReporting.rst b/source/content/IssueReporting.rst index b8bd651a..f68e43cb 100644 --- a/source/content/IssueReporting.rst +++ b/source/content/IssueReporting.rst @@ -3,7 +3,6 @@ IssueReporting ============== ---- title: IssueReporting permalink: IssueReporting.html layout: wiki --- NeXus Instrument/Base Class Definitions --------------------------------------- - [View current issues](https://github.com/nexusformat/definitions/issues) - [Timeline diff --git a/source/content/Metaformat.rst b/source/content/Metaformat.rst index 3812d941..f8d6c1ef 100644 --- a/source/content/Metaformat.rst +++ b/source/content/Metaformat.rst @@ -2,61 +2,99 @@ Metaformat ========== +Metaformat +---------- + +*Work is currently in progress to replace Meta-DTDs with* +[XML schema](Schema.html "wikilink"). + +The contents of NeXus files are defined using XML. The hierarchical structure of NeXus files maps very conveniently into XML files with NeXus groups and items as the XML entities, and data attributes as XML attributes. NeXus utilities are being developed to help people determine whether their files are standard-conforming. However, formal XML format definitions (DTDs) are difficult for the non-expert to read, so we have produced a much simpler meta-DTD format, which produces well-formed (DTD-less) XML files that will be converted into DTD files. + +This page describes the rules for producing these files. Some examples are available below and in the NeXus content section. The utility `NXtoDTD` can be used to generate the skeleton of such a file from an existing NeXus file; it outputs the XML tags without the data or any annotation. + +Meta-DTD Definition +------------------- + +- Each meta-DTD file should begin with a standard XML document tag, e.g.: + + .. code-block:: xml + + + +- This should be followed by a comment block giving the URL of the XML file, the name of the editor, the keyword `$Id$`, which will generate a revision number when the file is committed to the [SubversionServer](SubversionServer.html "wikilink"), and a brief description of the file. + +- Each NeXus group is an XML entity defined by its class, e.g., NXuser, NXdata, etc. + +- The name of the group is given by the `name` attribute of the entity. XML attributes are the name=value pairs located within the opening tag of the XML entity, e.g.: + + .. code-block:: xml + + + +- All other data items are XML entities defined by their name, e.g.: + + .. code-block:: xml + + + +- Data attributes are stored as XML attributes. The data type is defined as an XML attribute, although it is not defined as an HDF attribute in the NeXus file itself, e.g.: + + .. code-block:: xml + + + +- If the value of an attribute is not defined by the DTD, a short description is enclosed within quotes and curly braces, e.g.: + + .. code-block:: xml + + + +- Similarly, the value of a data item which is not defined by the DTD should be placed within curly braces between the opening and closing tag, e.g.: + + .. code-block:: xml + + {Sample temperature in kelvin} + +- Following the opening tag of a group entity and before the closing tag of a data entity, there may be one of three symbols, which have the same meanings as in regular expressions: + - `*` May occur 0 or more times + - `+` May occur one or more times (i.e., at least once) + - `?` May occur 0 or one time (i.e., no more than once) + + If no symbol is given, the item is mandatory. + +- If a data item is an array, add the array dimensions in square brackets to the type attribute. Use a colon if the dimension length is not defined by the DTD, e.g.: + + .. code-block:: xml + + + + Replace the colon with `i`, `j`, etc., if you wish to match the dimension length to other data items within the same group. + +- If no data type is specified, it is assumed to be a character string (`NX_CHAR`). + +- The `version` attribute of the analysis entity, defined in each `NXentry` group, should be set to `$Revision$` when the file is first written so that the CVS revision number is substituted when the XML file is committed to the CVS server, e.g.: + + .. code-block:: xml + + + +Example +------- + +The instrument definitions are being constructed out of XML files for each of the component groups. If you are interested in defining your own definition, please form them from these component parts (remove the XML document type at the top of each file). See `NXtofnpd.xml` for a complete example. + +The following is a colorized version of `NXmonitor.xml`: + +.. code-block:: xml ---- title: Metaformat permalink: Metaformat.html layout: wiki --- -(\*work is currently in progress to replace Meta-DTDs with [XML -schema](Schema.html "wikilink")\*) The contents of NeXus files are -defined using XML. The hierarchical structure of NeXus files maps very -conveniently into XML files with NeXus groups and items as the XML -entities, and data attributes as XML attributes. NeXus utilities are -being developed to help people determine whether their files are -standard-conforming. However, formal XML format definitions (DTDs) are -difficult for the non-expert to read, so we have produced a much simpler -meta-DTD format, which produces well-formed (DTD-less) XML files that -will be converted into DTD files. This page describes the rules for -producing these files - some examples are available below and in the -NeXus content section. The utility NXtoDTD can be used to generate the -skeleton of such a file from an existing NeXus file; it outputs the XML -tags without the data or any annotation. Meta-DTD Definition -------------------- - Each meta-DTD file should begin with a standard -XML document tag, i.e. -This should be followed by a comment block giving the URL of the XML -file, the name of the editor, the keyword $Id$, which will generate a -revision number when the file is committed to the -[SubversionServer](SubversionServer.html "wikilink"), and a brief -description of the file, e.g. - Each NeXus group is an XML entity -defined by its class, e.g. NXuser, NXdata, .... - The name of the group -is given by the name attribute of the entity. N.B. XML attributes are -the name=value pairs located within the opening tag of the XML entity, -e.g. All other data items are XML entities defined by their name, e.g. - -Data attributes are stored as XML attributes. The data type is defined -as an XML attribute although it is not defined as an HDF attribute in -the NeXus file itself, e.g. - If the value of an attribute is not -defined by the DTD, a short description is enclosed within quotes and -curly braces, e.g. - Similarly, the value of a data item which is not -defined by the DTD should be placed within curly braces between the -opening and closing tag, e.g. {Temperature of sample} - Following the -opening tag of a group entity and before the closing tag of a data -entity, there may be one of three symbols, which have the same meanings -that they have in regular expressions. - \`*\` May occur 0 or more times -- \`+\` May occur one or more times (i.e. at least once) - \`?\` May -occur 0 or one times (i.e. no more than once) e.g. ? {Temperature of -sample}? If no symbol is given, the item is mandatory. - If a data item -is an array, add the array dimensions in square brackets to the type -attribute. Use a colon if the dimension length is not defined by the -DTD, e.g. Replace the colon with i, j, ... if you wish to match the -dimension length to other data items within the same group. - If no data -type is specified, it is assumed to be a character string (NX\\_CHAR). - -The version attribute of the analysis entity, defined in each -NXentry group should be set to $Revision$ when the file is first written -so that the CVS revision number is substituted when the XML file is -committed to the CVS server, e.g. Example ------- The instrument -definitions are being constructed out of XML files for each of the -component groups. If you are interested in defining your own definition, -please form them from these component parts (remove the XML document -type at the top of each file). See NXtofnpd.xml for a complete example. -The following is a colorized version of NXmonitor.xml. ### NXmonitor.xml -{Distance of monitor from sample} {Integral over monitor spectrum}? -{Time-of-flight range over which the integral was calculated}? "Fission -Chamber"\|"Scintillator"? {Height of monitor}? {Width of monitor}? -{Time-of-flight}? {Monitor efficiency}? {Monitor data}? + + {Distance of monitor from sample} + {Integral over monitor spectrum}? + {Time-of-flight range over which the integral was calculated}? + "Fission Chamber"|"Scintillator"? + {Height of monitor}? + {Width of monitor}? + {Time-of-flight}? + {Monitor efficiency}? + {Monitor data}? + diff --git a/source/content/MonoXPSD.rst b/source/content/MonoXPSD.rst index 04c1c32f..2fb1e6dd 100644 --- a/source/content/MonoXPSD.rst +++ b/source/content/MonoXPSD.rst @@ -2,11 +2,6 @@ MonoXPSD ======== - ---- title: MonoXPSD permalink: MonoXPSD.html layout: wiki --- -Monochromatic Single Crystal Diffractometer with Position Sensitive -Detector ----------------------------------------------------------------------------- Instrument definition for a single crystal diffractometer at a monochromatic neutron or X-ray beam. This is the version for a position sensitive detector. Such an instrument can be used in various ways: In @@ -26,20 +21,42 @@ feel free to add them. If you think something is missing which is required for standard data reduction tasks, please contact the maintainer of this definition. If you to choose to store PSD scans in separate files or separate entries, it is the users responsibility to -process the data in the right order. NP is again the number of scan -points -+ -{Title of the experiment} -{start time of measurement} {nominal wavelength selected} + {Polar -Angle, or two theta as an array with values for each scan point} {The -counts detected in the area detector, np is the number of scan points} -{distance to sample position} {offsets of each pixels centers x-value to -the detector center} {offsets of each pixels centers y-value to the -detector center} monitor \| timer {preset value for monitor or timer} -{Monitor counts at each scan point} {Descriptive name of sample} { -Sample rotation, also known as omega } { chi angle } { phi angle } -{Orientation matrix of single crystal according to conventions -established by Busing, Levy, 1967 } ? { Miller indices of the target -reflection} + {Link to detector counts in NXdetector} {Link to polar -angle data in NXdetector} {Link to pixel_offset_x in NXdetector} {Link -to pixel_offset_y in NXdetector} +process the data in the right order. NP is again the number of scan points + +.. code-block:: xml + + + {Title of the experiment} + {start time of measurement} + {nominal wavelength selected} + {Polar Angle, or two theta as an array with values for each scan point} + + {The counts detected in the area detector, np is the number of scan points} + + + {distance to sample position} + + {offsets of each pixel's centers x-value to the detector center} + {offsets of each pixel's centers y-value to the detector center} + + + monitor | timer + {preset value for monitor or timer} + {Monitor counts at each scan point} + + {Descriptive name of sample} + + {Sample rotation, also known as omega} + {chi angle} + {phi angle} + + {Orientation matrix of single crystal according to conventions established by Busing, Levy, 1967} + {Miller indices of the target reflection} + + + {Link to detector counts in NXdetector} + {Link to polar angle data in NXdetector} + {Link to pixel_offset_x in NXdetector} + {Link to pixel_offset_y in NXdetector} + + diff --git a/source/content/MonoXSingle.rst b/source/content/MonoXSingle.rst index eec31166..ffe69746 100644 --- a/source/content/MonoXSingle.rst +++ b/source/content/MonoXSingle.rst @@ -2,10 +2,6 @@ MonoXSingle =========== - ---- title: MonoXSingle permalink: MonoXSingle.html layout: wiki --- -Monochromatic Single Crystal Diffractometer with Single Detector ----------------------------------------------------------------- Instrument definition for a single crystal diffractometer at a monochromatic neutron or X-ray beam. This is the single detector version. General Notes: - A Eulerian cradle is assumed. If you do not @@ -20,14 +16,35 @@ definition is fairly minimal and shall cater for standard data reduction needs. If your most favourite items are missing, feel free to add them. If you think something is missing which is required for standard data reduction tasks, please contact the maintainer of this definition. -+ -{Title of the experiment} -{start time of measurement} {nominal wavelength selected} + {Polar -Angle, commonly known as two theta} {Polar Angle, or two theta as an -array with values for each detector element} {The counts detected in the -detector} monitor \| timer {preset value for monitor or timer} {Monitor -counts} {Descriptive name of sample} { Sample rotation, aslo known as -omega } { chi angle } { phi angle } {Orientation matrix of single -crystal according to conventions established by Busing, Levy, 1967 } { -Miller indices of the target reflection} + {Link to detector counts in -NXdetector} {Link to polar angle data in NXdetector} + +.. code-block:: xml + + + {Title of the experiment} + {start time of measurement} + {nominal wavelength selected} + + {Polar Angle, commonly known as two theta} + {Polar Angle, or two theta as an array with values for each detector element} + + {The counts detected in the detector} + + monitor | timer + {preset value for monitor or timer} + {Monitor counts} + + + {Descriptive name of sample} + + {Sample rotation, also known as omega} + {chi angle} + {phi angle} + + {Orientation matrix of single crystal according to conventions established by Busing, Levy, 1967} + {Miller indices of the target reflection} + + + {Link to detector counts in NXdetector} + {Link to polar angle data in NXdetector} + + diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst b/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst index 6964600e..0679c389 100644 --- a/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst +++ b/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst @@ -2,10 +2,4 @@ Monochromatic Neutron and X-ray Powder Diffraction ================================================== - ---- title: Monochromatic Neutron and X-ray Powder Diffraction permalink: -Monochromatic_Neutron_and_X-ray_Powder_Diffraction.html layout: wiki --- -Monochromatic Neutron and X-Ray Powder Diffraction --------------------------------------------------- Find below my version -of a DTD for monochromatic powder diffraction. I kept it fairly minimal; -just the necessary stuff to do a normal Rietveld with it. +Find below my version of a DTD for monochromatic powder diffraction. I kept it fairly minimal; just the necessary stuff to do a normal Rietveld with it. diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst b/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst index b67063ed..5c4f8384 100644 --- a/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst +++ b/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst @@ -2,12 +2,6 @@ Monochromatic Neutron and X-ray Reflectometry ============================================= ---- -title: Monochromatic Neutron and X-ray Reflectometry -permalink: Monochromatic_Neutron_and_X-ray_Reflectometry.html -layout: wiki ---- - **Please add comments to the discussion tab of this page and sign them** This proposed instrument definition adds a new class (NXspin) and also incorporates a few additions to existing base classes. diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst b/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst index 356a1c5d..0cdc8278 100644 --- a/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst +++ b/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst @@ -2,14 +2,7 @@ Monochromatic Neutron and X-ray Single Crystal Diffractometer ============================================================= - ---- title: Monochromatic Neutron and X-ray Single Crystal Diffractometer -permalink: -Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.html -layout: wiki --- Monochromatic Neutron and X-Ray Single Crystal -Diffractometer -------------------------------------------------------------- This is -the instrument definition for a single crystal diffractometer at a +This is the instrument definition for a single crystal diffractometer at a monochromatic beam port, be it X-ray or neutrons. A eulerian cradle is assumed as the sample positioner. However, with the exchange of a few fields in NXsample, CAD-4 geometry is covered too. The description also @@ -20,5 +13,7 @@ instructions how to deal with the case of a general scans in the DTD's. The common case is that multiple reflections are scanned in succession; in that case each reflection should have its own entry in the file. There are actually two DTD's which differ only in the NXdetector group: -- [Four Circle with Single Detector](MonoXSingle.html "wikilink") - -[Four Circle with Position Sensitive Detector](MonoXPSD.html "wikilink") + +- `[Four Circle with Single Detector] `__ +- `[Four Circle with Position Sensitive Detector] `__ + diff --git a/source/content/Multi_Method_Instruments.rst b/source/content/Multi_Method_Instruments.rst index 9f3444c4..5910c361 100644 --- a/source/content/Multi_Method_Instruments.rst +++ b/source/content/Multi_Method_Instruments.rst @@ -1,74 +1,88 @@ ======================== -Multi Method Instruments +Multi-Method Instruments ======================== +This suggestion is one of the outcomes of the NeXus for Synchrotrons Workshop at PSI: + +### The Suggestion + +Add to `NXentry` a new class named `NXsubentry`, which has the same structure as `NXentry`. Each `NXsubentry` is to +hold the data or links thereto of a single application definition in a multi-method instrument. + +### The Reasoning + +Synchrotron beamlines often utilize several different detectors and detector types to combine multiple techniques in +simultaneous measurements. NeXus currently asks for separate `NXentry` groups to be written for each technique. +This works well if one measurement is written to a file. However, there is a second requirement: multiple scans, +multiple measurements, or even a whole log of an experimental session must sometimes be written to one NeXus file. +In such cases, having different techniques in separate `NXentry` groups makes the files difficult to understand, as +the relationship between different measurements is lost. + +To address this issue and keep data from these multiple techniques together, it is desirable to write all data into a +single `NXentry` in a NeXus file. Currently, NeXus application definitions refer to the same names and paths, leading +to many name collisions when trying to satisfy two application definitions in one `NXentry` in a file. + +The ability to combine application definitions could be enabled by modifying the application definitions to refer to +new and separate groups inside the main `NXentry` of the NeXus file. These groups would be named after the particular +application/technique and would contain all the data (or links to it) relevant to that application/technique. + +For an example experiment that involves a combination of SAS and Fluorescence, the proposed NeXus structure could look like: + +.. code-block:: xml + + + NXSas, NXFluo + + + + + + + + + + NXSas + + + + + + + NXFluo + + + + + + + + +In the above NeXus tree, the entire beamline state could be stored in +``entry/instrument`` and then any subset of this that is relevant to the SAS +or Fluorescence techniques would then be linked within the +``entry/SAS/instrument`` and the ``entry/Fluo/instrument`` groups as defined +by the current application definitions with a minor change in the hierarchy. + +The advantages of this approach are: + +- Only minor changes from current practice. +- The only name collisions to worry about are the names of the applications/techniques themselves. +- Application definitions need not be concerned with the names and paths that other application definitions proscribe. +- The paths for each application remain well-defined, and an analysis program for either technique can find the relevant data without having to understand the other techniques present in the file. Further, the same analysis programs can read the multi-technique files in the same way (i.e., with the same code) exactly the same as they read single-technique files. +- A user inspecting the data manually can find all the relevant information for a particular analysis in one group and so doesn't need to understand the entire beamline. + +One drawback of this approach is that the beamline staff would have to define many links when configuring the data acquisition software. However, this is necessary work regardless of how the data is saved since the user must be informed of how the different instrument components and detectors relate to the various analyses anyway. In fact, NeXus and the above proposal simplify this task by clearly documenting in a formal manner where the relevant information can be read. + +Some examples of beamlines that would benefit from this proposal include: + +- **Fluorescence + Absorption + Diffraction:** Beamline L, Doris, Beamline P06, PETRA III. +- **PX + Fluorescence:** In PX, a fluorescence signal is often recorded, especially for SAD-/MAD-measurements (PETRA beamlines P11, P13, P14). +- **SAXS + Fluorescence:** Fluorescence is often used as a secondary signal in SAXS (PETRA P03). +- **SAXS + Ellipsometry:** Beamline BW4, DORIS. + +Summarizing this discussion, the suggestion is to allow ``NXentry`` or possibly new +``NXsubentry`` groups underneath ``NXentry``, each of which can adhere to a +different application definition. All participants agreed that a good means of +handling multi-technique instruments in NeXus is essential for the adoption of +NeXus at synchrotron facilities. **This is a MUST HAVE!** ---- title: Multi Method Instruments permalink: -Multi_Method_Instruments.html layout: wiki --- Multi Method Instruments ------------------------- This suggestion is one of the outcomes of the -NeXus for Synchrotrons Workshop at PSI: ### The Suggestion Add to -NXentry a new class named NXsubentry which has the same structure as -NXentry. Each NXsubentry is to hold the data or links thereto of a -single application definition in a multi method instrument. ### The -Reasoning Synchrotron beamlines often utilise several different -detectors and detector types in order to combine multiple techniques in -simultaneous measurements. NeXus currently asks for separate NXentry -groups to be written for each technique. This is good if one measurement -is written to a file. However, there is a second requirement that -multiple scans, multiple measurements, possibly a whole log of an -experimental session is written to one NeXus file. Then having different -techniques in different NXentries will make the files difficult to -understand as the relationship between different measurements is lost. -Thus, in order to keep the data from these multiple techniques together, -it is desirable to have the ability to write it all into a single -NXentry in a NeXus. The current NeXus application definitions refer to -the same names and paths and so there are many name collisions when -trying to satisfy two application definitions in one NXentry in a file. -The ability to combine application definitions could be enabled by -modifying the application definitions to refer to new and separate -groups inside the main NXentry of the NeXus file that refer to the -particular application/technique name and which contains all of the data -(or links to it) that is relevant to that application/technique. For an -example experiment that involves a combination of SAS and Fluorescence, -the proposed NeXus structure could look like: entry:NXentry/ definition -= "NXSas, NXFluo" user:NXuser/ sample:NXsamle/ instrument:NXinstument/ -SASdet:NXdetector/ fancyname:NXdetector/ fancyname2:NXdetector/ ... -SAS:NXsubentry/ definition = "NXSas" instrument:NXinstrument/ -detector:link to SASdet data:NXdata/ Fluo:NXsubentry/ definition = -"NXFluo" instrument:NXinstrument/ detector:link to fancyname -detector2:link to fancyname2 data:NXdata/ In the above NeXus tree, the -entire beamline state could be stored in entry/instrument and then any -subset of this that is relevant to the SAS or Fluorescence techniques -would then be linked within the entry/SAS/instrument and the -entry/Fluo/instrument groups as defined by the current application -definitions with a minor change in the heirarchy. The advantages of this -approach are: - Only minor changes from current practice. - The only -name collisions to worry about are the names of the -applications/techniques themselves. - Application definitions need not -be concerned with the names and paths that other application definitions -proscribe. - The paths for each application remains well defined and an -analysis program for either technique can find the relevant data without -having to understand the other techniques present in the file. Further, -the same analysis programs can read the multi-technique files in the -same way (i.e. with the same code) exactly the same as they read -single-technique files. - A user inspecting the data manually can find -all the relevant information for a particular analysis in the one group -and so doesn't need to understand the entire beamline. One drawback of -this approach is that the beamline staff would have to define many links -when configuring the data acquisition software. However, this is -necessary work regardless of how the data is saved since the user must -be informed of how the different instrument components and detectors -relate to the various analyses anyway. In fact, NeXus and the above -proposal simplifies this task by clearly documenting in a formal manner -where the relevant information can be read. Some examples of beamlines -that would benefit from this proposal include: - Fluorescence + -Absorption + Diffraction (Beamline L, Doris, Beamline P06, PETRA III). - -PX + fluorescence: In PX often a fluorescence-signal is recorded, -especially for SAD-/MAD-measurements (PETRA beamlines P11 P13 P14). - -SAXS+fluorescence: fluorescence is often used as a second signal in SAXS -(PETRA P03). - SAXS + ellipsometry: Beamline BW4, DORIS Summarizing this -discussion, the suggestion is to allow NXentry or possibly new -NXsubentry groups underneath NXentry. Each of which can adhere to a -different application definition. All participants agreed that a good -means of handling multi technique instruments in NeXus is essential for -the adoption of NeXus at synchrotron facilities. This is a MUST HAVE! diff --git a/source/content/Muon_Time_Differential.rst b/source/content/Muon_Time_Differential.rst index 658a1a30..ea6b1703 100644 --- a/source/content/Muon_Time_Differential.rst +++ b/source/content/Muon_Time_Differential.rst @@ -3,8 +3,7 @@ Muon Time Differential ====================== ---- title: Muon Time Differential permalink: Muon_Time_Differential.html -layout: wiki --- The Instrument Definition for the Muon instruments has +The Instrument Definition for the Muon instruments has evolved from that proposed in 2001 to the more robust definition outlined in the linked discussion document (pdfs/Muon_V2R7.pdf). For completeness both are discussed in this document; however, the NIAC are diff --git a/source/content/NAPI_Routines.rst b/source/content/NAPI_Routines.rst index 0d7fb920..e590a58a 100644 --- a/source/content/NAPI_Routines.rst +++ b/source/content/NAPI_Routines.rst @@ -2,304 +2,1082 @@ NAPI Routines ============= +OUT OF DATE +----------- +This page is now out of date and has been replaced by `[Doxygen generated documentation] `__ + +General Initialization and Shutdown +----------------------------------- + +NXopen +====== + + Opens the NeXus file, and creates and initializes the NeXus file structure. + The returned handle is a pointer to this structure. + + **Usage:** + + .. code-block:: c + + status = NXopen(file_name, access_method, file_id); + + **Input Arguments** + + - file_name: *char \*** + Name of NeXus file to be opened. + + - access_method: *int* + File Access options: + + - ``NXACC_READ``: Read only + + - ``NXACC_RDWR``: Read and write access + + - ``NXACC_CREATE``: Create (HDF4) file + + - ``NXACC_CREATE4``: Create HDF4 file + + - ``NXACC_CREATE5``: Create HDF5 file + + - ``NXACC_CREATEXML``: Create XML file + + **Output Arguments** + + - file_id: *NXhandle \*** + Identifier of the NeXus file. + + +NXclose +======= + + Closes NeXus file and deletes all associated data structures from memory. + + **Usage:** + + .. code-block:: c + + status = NXclose (file_id) + + **Input Arguments** + - file_id + - NXhandle * + - Identifier of NeXus file + +NXmakegroup +=========== + + Creates a NeXus group at the current level in the group hierarchy, defining its name and class. This does not open the new group automatically. + + **Usage:** + + .. code-block:: c + + status = NXmakegroup (file_id, group_name, group_class) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + group_name char * Name of NeXus group + group_class char * Class of NeXus group + + +NXopengroup +=========== + + Opens an existing NeXus group for input and output of data. + + **Usage:** + + .. code-block:: c + + status = NXopengroup (file_id, group_name, group_class) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + group_name char * Name of NeXus group + group_class char * Class of NeXus group + + +NXopenpath +========== + + Opens a NeXus group or dataset from a path string. The NeXus item must exist for NXopenpath to work correctly. The path string for NXopenpath has the same form as a unix path string: /group1/group/group2/dataset. Both absolute and relative path are supported. + + **Usage:** + + .. code-block:: c + + status = NXopenpath(file_id, path_string) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + path_string char * path to dataset or group in NeXus file + + +NXopengrouppath +=============== + + Opens a NeXus group from a path string. This function is subtly different from NXopenpath in that it only opens the path to the last group; it does not open datasets. The NeXus item must exist for NXopengrouppath to work correctly. The path string for NXopengrouppath has the same form as a unix path string: /group1/group/group2/dataset. Both absolute and relative path are supported. + + **Usage:** + + .. code-block:: c + + status = NXopengrouppath(file_id, path_string) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + path_string char * path to dataset or group in NeXus file + +NXclosegroup +============ + + Closes the currently open group. If this group is a top-level group (i.e. with class NXentry), no groups are left open. Otherwise, the next group up in the hierarchy (i.e. the group containing the currently open group) is left open. + + **Usage:** + + .. code-block:: c + + status = NXclosegroup (file_id) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + +NXmakedata +========== + + Creates a new NeXus data set with the specified name, type, rank, and dimensions. + + **Usage:** + + .. code-block:: c + + status = NXmakedata (file_id, data_name, data_type, rank, dimensions[]) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **data_name** (char \*): + Name of NeXus data set. + + - **data_type** (int): + Data Type: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: unsigned 4-byte integer + + - **rank** (int): + Rank of data. + + - **dimensions** (int[]): + Dimensions of data. The array is of size 'rank'. + + +NXcompmakedata +============== + + Creates a new NeXus data set with the specified name, type, rank, and dimensions, compressed using the specified protocol. + + **Usage:** + + .. code-block:: c + + status = NXcompmakedata (file_id, data_name, data_type, rank, dimensions[], compress_type, bufsize[]) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **data_name** (char \*): + Name of NeXus data set. + + - **data_type** (int): + Data Type: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: unsigned 4-byte integer + + - **rank** (int): + Rank of data. + + - **dimensions** (int[]): + Dimensions of data. The array is of size 'rank'. + + - **compress_type** (int): + Compression algorithm: + + - ``NX_COMP_LZW``: GZIP + + - ``NX_COMP_HUF``: Skipping Huffman + + - ``NX_COMP_RLE``: Run Length Encoding + + - **bufsize** (int[]): + The typical buffer size for writing. + +NXopendata +=========== + + Opens an existing NeXus data set for further processing i.e. reading and writing data or attributes, defining compression algorithms, and obtaining data set information. + + **Usage:** + + .. code-block:: c + + status = NXopendata (file_id, data_name) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **data_name** (char \*): + Name of NeXus data set + + +NXcompress +========== + + Defines a compression algorithm for subsequent calls to NXputdata. + This routine is now deprecated; please use `NXcompmakedata` instead. + + **Usage:** + + .. code-block:: c + + status = NXcompress (file_id, compress_type) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **compress_type** (int): + Compression algorithm: + + - ``NX_COMP_LZW``: GZIP + + - ``NX_COMP_HUF``: Skipping Huffman + + - ``NX_COMP_RLE``: Run Length Encoding + + +NXclosedata +=========== + + Ends access to the currently active data set. + + **Usage:** + + .. code-block:: c + + status = NXclosedata (file_id) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + +NXsetnumberformat +================= + + Sets the number format when writing to ASCII files. + When serializing NeXus files to ASCII-XML files, a format for printing numbers is required. + The NeXus-API has reasonable defaults for this. However, with this function, a desired format can be chosen for special cases. + Please note that calls to this function will be silently ignored for the binary NeXus formats HDF-4 and HDF-5. + + **Usage:** + + .. code-block:: c + + status = NXsetnumberformat(file_id, data_type, format_string) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **data_type** (int): + The NeXus data type for which to change the print format: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: unsigned 4-byte integer + + - **format_string** (char \*): + An ANSI-C language style format string. + + +Reading and Writing +------------------- + +NXgetdata +========= + + Reads data values from the currently open data set. + Please note that memory overwrite occurs if the caller has not allocated enough memory to hold all the data available. + Call ``NXgetinfo`` to determine the required dimension sizes. + The data set must have been opened by ``NXopendata``. + + **Usage:** + + .. code-block:: c + + status = NXgetdata (file_id, data) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + **Output Arguments:** + + - **data** (void \*): + Data values. + + +NXgetslab +========= + + Reads a subset of the data in the current data set specifying the starting indices and size of each dimension. + The caller is responsible for allocating enough memory for the data. + + **Usage:** + + .. code-block:: c + + status = NXgetslab (file_id, data, start[], size[]) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **start[]** (int): + Indices of starting values in each dimension. + + - **size[]** (int): + Length of slab in each dimension. + + **Output Arguments:** + + - **data** (void \*): + Data values. + + +NXgetattr +========= + + Reads attribute values associated with the currently open data set. + The attribute is defined by its name. + Attributes are meta-data; data that provides information on the associated data set such as units, long names, etc. + If no data set is open, it looks for a global attribute (i.e., attributes of the NeXus file). + The caller is responsible for allocating enough memory for the attribute values. + Only the first 'length' bytes of the attribute are read to prevent memory overwrite. + + **Usage:** + + .. code-block:: c + + status = NXgetattr (file_id, attr_name, value, length, type) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **attr_name** (char \*): + Name of attribute. + + - **length** (int \*): + Length of buffer for storing attribute data. + + - **type** (int \*): + Attribute Data Type: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: Unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: Unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: Unsigned 4-byte integer + + **Output Arguments:** + + - **value** (void \*): + Value of attribute. + + - **length** (int \*): + Actual length of attribute data. + + +NXputdata +========= + + Writes data into the specified data set. + + **Usage:** + + .. code-block:: c + + status = NXputdata (file_id, data[]) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **data** (void \*): + Data values. + + +NXputslab +========= + + Writes a subset of a multidimensional data array, specified by the starting indices and size of each dimension, into the currently open dataset. + + **Usage:** + + .. code-block:: c + + status = NXputslab (file_id, data, start[], size[]) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **data** (void \*): + Data values. + + - **start[]** (int): + Indices of starting values in each dimension. + + - **size[]** (int): + Length of slab in each dimension. + + +NXputattr +========= + + Writes an attribute of the currently open data set. + If no data set is open, a global attribute is generated. + The attribute has both a name and a value. + + **Usage:** + + .. code-block:: c + + status = NXputattr (file_id, attr_name, value, length, type) + + **Return Value:** + + - **status** (int): + Error status. + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **attr_name** (char \*): + Name of attribute. + + - **value** (void \*): + Value of attribute. + + - **length** (int): + Length of data. + + - **type** (int): + Data Type: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: Unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: Unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: Unsigned 4-byte integer + + +NXflush +======== + + Flushes all data to the NeXus file. Since this command closes and reopens the file, a new file handle is returned. The command leaves the program in the same state, i.e., with the same group and/or data set open. + + **Usage:** + + .. code-block:: c + + status = NXflush (file_id) + + **Input & Output Arguments:** + + - **file_id** (NXhandle \*): + Identifier of NeXus file + + +Meta-Data Routines +------------------ + +NXgetinfo +========= + + Gets the rank, dimensions, and data type of the currently open data set. + + **Usage:** + + .. code-block:: c + + status = NXgetinfo(file_id, rank, dimensions[], data_type) + + **Return Value:** + + **status** (int): + Error status. + + **Input Arguments** + + **file_id** (NXhandle): + Identifier of NeXus file. + + **Output Arguments:** + + **rank** (int*): + Rank of data. + + **dimensions** (int[]): + Dimensions of data. + + **data_type** (int*): + Data Type: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: Unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: Unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: Unsigned 4-byte integer + + + +NXgetgroupinfo +============== + + Returns the number of items in the current group, and the name and class of the current group. + + **Usage:** + + .. code-block:: c + + status = NXgetgroupinfo (file_id, item_number, group_name, group_class) + + **Return Value:** + + status int Error status + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + + **Output Arguments:** + + item_number int* Number of NeXus data items in the current group + group_name char* Name of currently open NeXus group + group_class char* Class of currently open NeXus group + +NXinitgroupdir +============== + + Initializes directory searches of the currently open group. This is required to reset searches using NXgetnextentry that may have been interrupted before completion. + + **Usage:** + + .. code-block:: c + + status = NXinitgroupdir (file_id) + + **Return Value:** + + status int Error status + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + + +NXgetnextentry +============== + + Implements a directory search facility on the current group level. The first call initializes the search and returns information on the first data item in the list. Subsequent calls yield information about the remaining items. If the item is a group, its name and class is returned. If it is a data set, its name and type is returned with a class of SDS. + + **Usage:** + + .. code-block:: c + + status = NXgetnextentry (file_id, name, class, data_type) + + **Return Value:** + + - **status** (int): + Error status. + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + **Output Arguments:** + + - **name** (char \*): + Name of NeXus data item (group or set). + + - **class** (char \*): + Class of NeXus group (SDS for a data item). + + - **data_type** (int \*): + Data Type: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: Unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: Unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: Unsigned 4-byte integer + + + +NXgetattrinfo +============= + + Returns the number of attributes in the current data set. + + **Usage:** + + .. code-block:: c + + status = NXgetattrinfo (file_id, attr_number) + + **Return Value:** + + status int Error status + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + + **Output Arguments:** + + attr_number int * Number of attributes in the current data set + + +NXinitattrdir +============= + + Initializes attribute searches of the currently open data set. This is required to reset searches using NXgetnextattr that may have been interrupted before completion. + + **Usage:** + + .. code-block:: c + + status = NXinitattrdir (file_id) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + + +NXgetnextattr +============= + + Implements a search facility of the attributes of the currently open data set. The first call initializes the search and returns information on the first attribute in the list. Subsequent calls yield information about the remaining attributes. This routine returns global attributes if no data set is open. + + **Usage:** + + .. code-block:: c + + status = NXgetnextattr (file_id, attr_name, length, attr_type) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + **Output Arguments:** + + - **attr_name** (char \*): + Name of next attribute. + + - **length** (int \*): + Length of next attribute. + + - **attr_type** (int \*): + Data type of next attribute: + + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: Unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: Unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: Unsigned 4-byte integer + + + +NXgetgroupID +============ + + Returns the identifier of the currently open group as an NXlink structure. + + **Usage:** + + .. code-block:: c + + status = NXgetgroupID (file_id, group_id) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + + **Output Arguments:** + + group_id NXlink Identifier of NeXus group + + +NXgetdataID +============ + + Gets the identifier of the currently open data set as an NXlink structure. Returns NX_ERROR if there is no open data set. + + **Usage:** + + .. code-block:: c + + status = NXgetdataID (file_id, data_id) + + **Input Arguments** + + file_id NXhandle Identifier of NeXus file + + **Output Arguments:** + + data_id NXlink Identifier of NeXus data set + + +NXmakelink +========== + + Links a data item (group or set) to a NeXus group. + Returns ``NX_ERROR`` if the current group level is the root level, since no data item can be linked here. + + **Usage:** + + .. code-block:: c + + status = NXmakelink (file_id, link) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + **Output Arguments:** + + - **link** (NXlink \*): + Identifier of linked group. + + +NXsameID +======== + + Tests if two data items are the same, i.e., one is linked to the other. + + **Usage:** + + .. code-block:: c + + status = NXsameID (file_id, link1, link2) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + - **link1** (NXlink \*): + Identifier of first item. + + - **link2** (NXlink \*): + Identifier of second item. + + +NXopensourcegroup +================= + + Opens the group from which a linked dataset was linked. + This is useful for accessing auxiliary information related to the dataset. + This works only if the linked dataset is currently open. + + **Usage:** + + .. code-block:: c + + status = NXopensourcegroup (file_id) + + **Input Arguments** + + - **file_id** (NXhandle): + Identifier of NeXus file. + + +Memory Allocation +----------------- + +NXmalloc +======== + + Allocates memory to the specified data pointer according to the specified data type, rank, and dimensions. + + **Usage:** + + .. code-block:: c + + status = NXmalloc (void** data, int rank, int dimensions[], int datatype) + + **Output Arguments:** + + - **data** (void \*\*): + Data pointer. + + **Input Arguments** + + - **rank** (int): + Rank of data. + + - **dimensions** (int[]): + Dimensions of data. + + - **datatype** (int): + Data Type: + - ``NX_CHAR``: Character string + + - ``NX_FLOAT32``: 4-byte real + + - ``NX_FLOAT64``: 8-byte real + + - ``NX_INT8``: 1-byte integer + + - ``NX_UINT8``: Unsigned 1-byte integer + + - ``NX_INT16``: 2-byte integer + + - ``NX_UINT16``: Unsigned 2-byte integer + + - ``NX_INT32``: 4-byte integer + + - ``NX_UINT32``: Unsigned 4-byte integer + + +NXfree +====== + + Frees memory allocated to the specified data pointer. + + **Usage:** + + .. code-block:: c + + status = NXfree (data) + + **Input Arguments** + + - **data** (void \*\*): + Pointer to the allocated memory. + + +NXinquirefile +============= + + Queries which file is really active. + + **Usage:** + + .. code-block:: c + + status = NXinquirefile(handle, filename, filenameLength) + + **Input Arguments** + + - **handle** (NXhandle): + Handle to a currently open NeXus file. + + - **filenameLength** (int): + Length of filename buffer. + + **Output Arguments:** + + - **filename** (char \*): + Buffer to receive the filename. + + +NXlinkexternal +============== + + Links an external file. This happens by creating a group which points to an external file. Navigating into such a group automatically opens the external file. + + **Usage:** + + .. code-block:: c + + status = NXlinkexternal(handle, name, nxclass, nxurl) + + **Input Arguments** + + - **handle** (NXhandle): + Handle to a currently open NeXus file. + + - **name** (NXname): + The name of the group to link the file to. + + - **nxclass** (NXname): + The NeXus class of the group to which the external file is to be linked. + + - **nxurl** (NXURL): + An URL of a format understood by the NeXus-API. The only URL format so far is: ``nxfile://path-to-file#path-to-group-in-file``. This consists of two parts: the file path and a path to a group in the file to be mapped into the source file. + + +NXisexternalgroup +================= + + Tests if the group is an external group. If not, ``NX_ERROR`` is returned. If yes, ``NX_OK`` is returned and the URL of the external file is copied into `nxurl`. + + **Usage:** + + .. code-block:: c + + status = NXisexternalgroup(handle, name, nxclass, nxurl, nxurllen) + + **Input Arguments** + + - **handle** (NXhandle): + Handle to a currently open NeXus file. + + - **name** (NXname): + The name of the group to test. + + - **nxclass** (NXname): + The NeXus class of the group to test. + + - **nxurllen** (int): + Length of the `nxurl` buffer. + + **Output Arguments:** + + - **nxurl** (char \*): + Buffer to copy the URL into. ---- title: NAPI Routines permalink: NAPI_Routines.html layout: wiki --- -OUT OF DATE ----------- This page is now out of date and has been -replaced by [Doxygen generated -documentation](https://manual.nexusformat.org/doxygen/html-c/) General -Initialization and Shutdown ----------------------------------- ### -NXopen Opens the NeXus file, and creates and initializes the NeXus file -structure. The returned handle is a pointer to this structure. ;Usage: -status = NXopen (file_name, access_method, file_id) \|- ! rowspan=2 \| -Input Arguments \| file\\_name \| char \\\* \| Name of NeXus file to be -opened \|- \| access\\_method \| int \| File Access:NXACC\\_READ - read -only NXACC\\_RDWR - read and write access NXACC\\_CREATE - create (HDF4) -file NXACC\\_CREATE4 - create HDF4 file NXACC\\_CREATE5 - create HDF5 -file NXACC\\_CREATEXML - create XML file \|- ! \| Output Arguments \| -file\\_id \| NXhandle \\\* \| Identifier of NeXus file \|} ### NXclose -Closes NeXus file and deletes all associated data structures from -memory. ;Usage: status = NXclose (file_id) \|- ! \| Input Arguments \| -file\\_id \| NXhandle \\\* \| Identifier of NeXus file \|} ### -NXmakegroup Creates a NeXus group at the current level in the group -hierarchy, defining its name and class. This does not open the new group -automatically. ;Usage: status = NXmakegroup (file_id, group_name, -group_class) \|- ! rowspan=3 \| Input Arguments \| file\\_id \| -NXhandle \| Identifier of NeXus file \|- \| group\\_name \| char \\\* \| -Name of NeXus group \|- \| group\\_class \| char \\\* \| Class of NeXus -group \|} ### NXopengroup Opens an existing NeXus group for input and -output of data. ;Usage: status = NXopengroup (file_id, group_name, -group_class) \|- ! rowspan=3 \| Input Arguments \| file\\_id \| -NXhandle \| Identifier of NeXus file \|- \| group\\_name \| char \\\* \| -Name of NeXus group \|- \| group\\_class \| char \\\* \| Class of NeXus -group \|} ### NXopenpath Opens a NeXus group or dataset from a path -string. The NeXus item must exist for NXopenpath to work correctly. The -path string for NXopenpath has the same form as a unix path string: -/group1/group/group2/dataset. Both absolute and relative path are -supported. ;Usage: status = NXopenpath(file_id, path_string) \|- \| -rowspan=3 \| Input Arguments \| file\\_id \| NXhandle \|Identifier of -NeXus file \|- \| path\\_string \| char\\\* \| path to dataset or group -in NeXus file \|} ### NXopengrouppath Opens a NeXus group from a path -string. This function is subtly different from NXopenpath in that it -only opens the path to the last group; it does not open datasets. The -NeXus item must exist for NXopengrouppath to work correctly. The path -string for NXopengrouppath has the same form as a unix path string: -/group1/group/group2/dataset. Both absolute and relative path are -supported. ;Usage: status = NXopengrouppath(file_id, path_string) \|- \| -rowspan=3 \| Input Arguments \| file\\_id \| NXhandle \|Identifier of -NeXus file \|- \| path\\_string \| char\\\* \| path to dataset or group -in NeXus file \|} ### NXclosegroup Closes the currently open group. If -this group is a top-level group (i.e. with class NXentry), no groups are -left open. Otherwise, the next group up in the hierarchy (i.e. the group -containing the currently open group) is left open. ;Usage: status = -NXclosegroup (file_id) \|- ! \| Input Arguments \| file\\_id \| NXhandle -\| Identifier of NeXus file \|} ### NXmakedata Creates a new NeXus data -set with the specified name, type, rank and dimensions. ;Usage: status = -NXmakedata (file_id, data_name, data_type, rank, dimensions[]) \|- ! -rowspan=5 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of -NeXus file \|- \| data\\_name \| char \\\* \| Name of NeXus data set \|- -\| data\\_type \| int \| Data Type:NX\\_CHAR - Character string -NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte -integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer -NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer -NX\\_UINT32 - unsigned 4-byte integer \|- \| rank \| int \| Rank of data -\|- \| dimensions \| int\\[\\] \| Dimensions of data. The array is of -size 'rank' \|} ### NXcompmakedata Creates a new NeXus data set with the -specified name, type, rank and dimensions, compressed using the -specified protocol. ;Usage: status = NXcompmakedata (file_id, data_name, -data_type, rank, dimensions[], compress_type, bufsize[]) \|- ! -rowspan=7 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of -NeXus file \|- \| data\\_name \| char \\\* \| Name of NeXus data set \|- -\| data\\_type \| int \| Data Type:NX\\_CHAR - Character string -NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte -integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer -NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer -NX\\_UINT32 - unsigned 4-byte integer \|- \| rank \| int \| Rank of data -\|- \| dimensions \| int\\[\\] \| Dimensions of data. The array is of -size 'rank' \|- \| compress\\_type \| int \| Compression -algorithm:NX\\_COMP\\_LZW - GZIP NX\\_COMP\\_HUF - Skipping Huffman -NX\\_COMP\\_RLE - Run Length Encoding \|- \| bufsize \| int\\[\\] \| The -typical buffersize for writing. \|} The buffersize requires further -explanation. HDF-5 compresses data in chunks. And the buffersize is this -chunksize. If data is written in one go with a NXputdata, this is the -dimensions of the data. If data is written in slabs, this is the -preferred size of the slabs. Please note, that this has only a -performance impact when writing, it is no show stopper. Please note that -HDF-4 does not support compression on data sets written in slabs: If you -want compression with HDF-4, data must be written with one call to -NXputdata. Compression is ignored for XML-NeXus files. ### NXopendata -Opens an existing NeXus data set for further processing i.e. reading and -writing data or attributes, defining compression algorithms, and -obtaining data set information. ;Usage: status = NXopendata (file_id, -data_name) \|- ! rowspan=2 \| Input Arguments \| file\\_id \| NXhandle -\| Identifier of NeXus file \|- \| data\\_name \| char \\\* \| Name of -NeXus data set \|} ### NXcompress Defines a compression algorithm for -subsequent calls to NXputdata. This routine is now deprecated; please -use NXcompmakedata instead. ;Usage: status = NXcompress (file_id, -compress_type) \|- ! rowspan=2 \| Input Arguments \| file\\_id \| -NXhandle \| Identifier of NeXus file \|- \| compress\\_type \| int \| -Compression algorithm:NX\\_COMP\\_LZW - GZIP NX\\_COMP\\_HUF - Skipping -Huffman NX\\_COMP\\_RLE - Run Length Encoding \|} ### NXclosedata Ends -access to the currently active data set ;Usage: status = NXclosedata -(file_id) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| -Identifier of NeXus file \|- \|} ### NXsetnumberformat Sets the number -format when writing to ASCII files. When serializing NeXus file to -ASCII-XML files a format for printing numbers is required. The NeXus-API -has reasonable defaults for this. However, with this function a desired -format can be choosen for special cases. Please note that calls to this -function will be silently ignored for the binary NeXus formats HDF-4 and -HDF-5. ;Usage: status = -NXsetnumberformat(file_id,data_type,format_string \|- ! rowspan=3 \| -Input Arguments \| file\\_id \| NXhandle \| Identifier of NeXus file \|- -\|data\\_type \| int \| The NeXus data type for which to change the -print format. Data Type:NX\\_CHAR - Character string NX\\_FLOAT32 - -4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer -NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer -NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer -NX\\_UINT32 - unsigned 4-byte integer \|- \| format\\_string \| char\\\* -\| A ANSI-C language style format string \|- \|} Reading and Writing -------------------- ### NXgetdata Reads data values from the currently -open data set. Please note that memory overwrite occurs if the caller -has not allocated enough memory to hold all the data available. Call -NXgetinfo to determine the required dimension sizes. The data set must -have been opened by NXopendata. ;Usage: status = NXgetdata (file_id, -data) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of -NeXus file \|- ! \| Output Arguments \| data \| void \\\* \| Data values -\|} ### NXgetslab Reads a subset of the data in the current data set -specifying the starting indices and size of each dimension. The caller -is responsible for allocating enough memory for the data. ;Usage: status -= NXgetslab (file_id, data, start[], size[]) \|- ! rowspan=3 \| Input -Arguments \| file\\_id \| NXhandle \| Identifier of NeXus file \|- \| -start\\[\\] \| int \| Indices of starting values in each dimension \|- -\| size\\[\\] \| int \| Length of slab in each dimension \|- ! \| Output -Arguments \| data \| void \\\* \| Data values \|} ### NXgetattr Reads -attribute values associated with the currently open data set. The -attribute is defined by its name. Attributes are meta-data; data that -provides information on the associated data set such as units, long -names etc. If no data set is open, it looks for a global attribute i.e. -attributes of the NeXus file. The caller is responsible for allocating -enough memory for the attribute values. Note, however, that only the -first 'length' bytes of the attribute are read to prevent memory -overwrite. ;Usage: status = NXgetattr (file_id, attr_name, value, -length, type) \|- ! rowspan=4 \| Input Arguments \| file\\_id \| -NXhandle \| Identifier of NeXus file \|- \| attr\\_name \| char \\\* \| -Name of attribute \|- \| length \| int \\\* \| Length of buffer for -storing attribute data \|- \| type \| int \\\* \| Attribute Data -Type:NX\\_CHAR - Character string NX\\_FLOAT32 - 4-byte real -NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer NX\\_UINT8 - -unsigned 1-byte integer NX\\_INT16 - 2-byte integer NX\\_UINT16 - -unsigned 2-byte integer NX\\_INT32 - 4-byte integer NX\\_UINT32 - -unsigned 4-byte integer \|- ! rowspan=2 \| Output Arguments \| value -\| void \\\* \| Value of attribute \|- \| length \| int \\\* \| Actual -length of attribute data \|} ### NXputdata Writes data into the -specified data set. ;Usage: status = NXputdata (file_id, data[]) \|- ! -rowspan=2 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of -NeXus file \|- \| data \| void \\\* \| Data values \|} ### NXputslab -Writes a subset of a multidimensional data array, specified by the -starting indices and size of each dimension, into the currently open -dataset. ;Usage: status = NXputslab (file_id, data, start[], size[]) \|- -! rowspan=4 \| Input Arguments \| file\\_id \| NXhandle \| Identifier -of NeXus file \|- \| data \| void \\\* \| Data values \|- \| start\\[\\] -\| int \| Indices of starting values in each dimension \|- \| size\\[\\] -\| int \| Length of slab in each dimension \|} ### NXputattr Writes an -attribute of the currently open data set. If no data set is open, a -global attribute is generated. The attribute has both a name and a -value. ;Usage: status = NXputattr (file_id, attr_name, value, length, -type) \|- ! \| Return Value \| status \| int \| Error status \|- ! -rowspan=5 \| Input Arguments \| file\\_id \| NXhandle \| Identifier of -NeXus file \|- \| attr\\_name \| char \\\* \| Name of attribute \|- \| -value \| void \\\* \| Value of attribute \|- \| length \| int \| Length -of data \|- \| type \| int \| Data Type:NX\\_CHAR - Character string -NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte -integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer -NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer -NX\\_UINT32 - unsigned 4-byte integer \|} ### NXflush Flushes all data -to the NeXus file. Since this command closes and reopens the file, a new -file handle is returned. The command leaves the program in the same -state, i.e. with the same group and/or data set open. ;Usage: status = -NXflush (file_id) \|- ! \| Input & Output Argument \| file\\_id \| -NXhandle \\\* \| Identifier of NeXus file \|} Meta-Data Routines ------------------- ### NXgetinfo Gets the rank, dimensions and data type -of the currently open data set. ;Usage: status = NXgetinfo (file_id, -rank, dimensions[], data_type) \|- ! \| Input Arguments \| file\\_id \| -NXhandle \| Identifier of NeXus file \|- ! rowspan=3 \| Output -Arguments \| rank \| int \\\* \| Rank of data \|- \| dimensions \| -int\\[\\] \| Dimensions of data \|- \| data\\_type \| int \\\* \| Data -Type:NX\\_CHAR - Character string NX\\_FLOAT32 - 4-byte real -NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer NX\\_UINT8 - -unsigned 1-byte integer NX\\_INT16 - 2-byte integer NX\\_UINT16 - -unsigned 2-byte integer NX\\_INT32 - 4-byte integer NX\\_UINT32 - -unsigned 4-byte integer \|} ### NXgetgroupinfo Returns the number of -items in the current group, and the name and class of the current group. -;Usage: status = NXgetgroupinfo (file_id, item_number, group_name, -group_class) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| -Identifier of NeXus file \|- ! rowspan=3 \| Output Arguments \| -item\\_number \| int \\\* \| Number of NeXus data items in the current -group \|- \| group\\_name \| char \\\* \| Name of currently open NeXus -group \|- \| group\\_class \| char \\\* \| Class of currently open NeXus -group \|} ### NXinitgroupdir Initializes directory searches of the -currently open group. This is required to reset searches using -NXgetnextentry that may have been interrupted before completion. ;Usage: -status = NXinitgroupdir (file_id) \|- ! \| Input Arguments \| file\\_id -\| NXhandle \| Identifier of NeXus file \|} ### NXgetnextentry -Implements a directory search facility on the current group level. The -first call initializes the search and returns information on the first -data item in the list. Subsequent calls yield information about the -remaining items. If the item is a group, its name and class is returned. -If it is a data set, its name and type is returned with a class of -SDS. ;Usage: status = NXgetnextentry (file_id, name, class, data_type) -\|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of NeXus -file \|- ! rowspan=3 \| Output Arguments \| name \| char \\\* \| Name -of NeXus data item (group or set) \|- \| class \| char \\\* \| Class of -NeXus group (SDS for a data item) \|- \| data\\_type \| int \\\* \| -Data Type:NX\\_CHAR - Character string NX\\_FLOAT32 - 4-byte real -NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer NX\\_UINT8 - -unsigned 1-byte integer NX\\_INT16 - 2-byte integer NX\\_UINT16 - -unsigned 2-byte integer NX\\_INT32 - 4-byte integer NX\\_UINT32 - -unsigned 4-byte integer \|} ### NXgetattrinfo Returns the number of -attributes in the current data set. ;Usage: status = NXgetattrinfo -(file_id, attr_number) \|- ! \| Input Arguments \| file\\_id \| NXhandle -\| Identifier of NeXus file \|- ! \| Output Arguments \| attr\\_number -\| int \\\* \| Number of attributes in the current data set \|} ### -NXinitattrdir Initializes attribute searches of the currently open data -set. This is required to reset searches using NXgetnextattr that may -have been interrupted before completion. ;Usage: status = NXinitattrdir -(file_id) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| -Identifier of NeXus file \|} ### NXgetnextattr Implements a search -facility of the attributes of the currently open data set. The first -call initializes the search and returns information on the first -attribute in the list. Subsequent calls yield information about the -remaining attributes. This routine returns global attributes if no data -set is open. ;Usage: status = NXgetnextattr (file_id, attr_name, length, -attr_type) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| -Identifier of NeXus file \|- ! rowspan=3 \| Output Arguments \| -attr\\_name \| char \\\* \| Name of next attribute \|- \| length \| int -\\\* \| Length of next attribute \|- \| attr\\_type \| int \\\* \| Data -type of next attribute:NX\\_CHAR - Character string NX\\_FLOAT32 - -4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte integer -NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer -NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer -NX\\_UINT32 - unsigned 4-byte integer \|} ### NXgetgroupID Returns the -identifier of the currently open group as an NXlink structure. ;Usage: -status = NXgetgroupID (file_id, group_id) \|- ! \| Input Arguments \| -file\\_id \| NXhandle \| Identifier of NeXus file \|- ! \| Output -Arguments \| group\\_id \| NXlink \\\* \| Identifier of NeXus group \|} -### NXgetdataID Gets the identifier of the currently open data set as an -NXlink structure. Returns NX\\_ERROR if there is no open data set. -;Usage: status = NXgetdataID (file_id, data_id) \|- ! \| Input Arguments -\| file\\_id \| NXhandle \| Identifier of NeXus file \|- ! \| Output -Arguments \| data\\_id \| NXlink \\\* \| Identifier of NeXus data set -\|} ### NXmakelink Links a data item (group or set) to a NeXus group. -Returns NX\\_ERROR if the current group level is the root level, since -no data item can be linked here. ;Usage: status = NXmakelink (file_id, -link) \|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of -NeXus file \|- ! \| Output Arguments \| link \| NXlink \\\* \| -Identifier of linked group \|} ### NXsameID Tests if two data items are -the same, i.e. one is linked to the other. ;Usage: status = NXsameID -(file_id, link1, link2) \|- ! rowspan=3\| Input Arguments \| file\\_id -\| NXhandle \| Identifier of NeXus file \|- \| link1 \| NXlink \\\* \| -Identifier of first item \|- \| link2 \| NXlink \\\* \| Indentifier of -second item \|- \|} ### NXopensourcegroup Opens the group from which a -linked dataset was linked. This is useful for accessing auxiliary -information related to the dataset. This works only if the linked -dataset is currently open. ;Usage: status = NXopensourcegroup (file_id) -\|- ! \| Input Arguments \| file\\_id \| NXhandle \| Identifier of NeXus -file \|- \|} Memory Allocation ----------------- ### NXmalloc Allocates -memory to the specified data pointer according to the specifed data -type, rank and dimensions. ;Usage: status = NXmalloc (void*\* data, int -rank, int dimensions[], int datatype) \|- ! \| Output Arguments \| data -\| void \\*\\\* \| Data pointer \|- ! rowspan=3 \| Input Arguments \| -rank \| int \| Rank of data \|- \| dimensions \| int\\[\\] \| Dimensions -of data \|- \| datatype \| int \| Data Type:NX\\_CHAR - Character string -NX\\_FLOAT32 - 4-byte real NX\\_FLOAT64 - 8-byte real NX\\_INT8 - 1-byte -integer NX\\_UINT8 - unsigned 1-byte integer NX\\_INT16 - 2-byte integer -NX\\_UINT16 - unsigned 2-byte integer NX\\_INT32 - 4-byte integer -NX\\_UINT32 - unsigned 4-byte integer \|} ### NXfree Frees memory -allocated to the specified data pointer. ;Usage: status = NXfree (data) -\|- ! \| Input Arguments \| data \| void \\*\\\* \| Pointer to the -allocated memory \|} External Linking ---------------- ### NXinquirefile -Queries which file is really active. ;Usage: status = -NXinquirefile(handle,filename, filenameLength); \|- ! rowspan=2 \| -Input Arguments \| handle \| NXhandle \| handle to a currently open -NeXus file. \|- \| filenameLength \| int \| length of filename buffer -\|- ! \|Output Arguments \| filename \| char\\\* \| buffer to receive -filename \|} ### NXlinkexternal Links an external file. This happens by -creating a group which points to an external file. Navigating into such -a group automatically opens the external file. ;Usage: status = -NXlinkexternal(handle,name, nxclass, nxurl); \|- ! rowspan=4 \| Input -Arguments \| handle \| NXhandle \| handle to a currently open NeXus -file. \|- \| name \| NXname \| The name of the group to link the file -to. \|- \| nxclass \| NXname \| The NeXus class of the group to which -the external file is to be linked. \|- \| nxurl \| NXURL \| An URL of a -format which the NeXus-API understands. The only URL format so far is: -nxfile://path-to-file\\#path-to-group-in-file. This consistes of two -parts: The file path and a path to a group in the file which is to be -mapped into the source file. \|} ### NXisexternalgroup Tests in the -group is an external group. If not, NX\\_ERROR is returned. If yes, -NX\\_OK is returned and the URL of the external file is copied into -nxurl. ;Usage: status = NXisexternalgroup(handle,name, nxclass, -nxurl,nxurllen); \|- ! rowspan=4 \| Input Arguments \| handle \| -NXhandle \| handle to a currently open NeXus file. \|- \| name \| NXname -\| The name of the group to test. \|- \| nxclass \| NXname \| The NeXus -class of the group to test. \|- \| nxurllen \| int \| length of the -nxurl buffer \|- ! rowspan=4 \| Output Arguments \| nxurl \| char \\\* -\| buffer to copy the URL, too. \|} diff --git a/source/content/NAPI_Utility_Routines.rst b/source/content/NAPI_Utility_Routines.rst index 76ed0a1d..f8f840fb 100644 --- a/source/content/NAPI_Utility_Routines.rst +++ b/source/content/NAPI_Utility_Routines.rst @@ -2,154 +2,417 @@ NAPI Utility Routines ===================== +NXUwriteglobals +=============== + + Writes the global attributes defined in the NeXus standard. Note that ``NeXus_version``, ``file_name`` + and ``file_time`` are written automatically by the NeXus API. The + attribute arguments are optional, so the Fortran 90 keyword syntax can be used + for all of them, *e.g.*, ``status = NXUwriteglobals (file_id, user="Joe + Bloggs", email="JB@some.where")``. + + **Usage:** + + .. code-block:: fortran + + status = NXUwriteglobals (file_id, user, affiliation, address, phone, fax, email) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **user** (type: ``character(len=*)``): + Name of user. + + - **affiliation** (type: ``character(len=*)``): + User's affiliation. + + - **address** (type: ``character(len=*)``): + User's address. + + - **phone** (type: ``character(len=*)``): + User's telephone number. + + - **fax** (type: ``character(len=*)``): + User's fax number. + + - **email** (type: ``character(len=*)``): + User's email address. + +NXUwritegroup +============= + + Creates a NeXus group leaving it open for subsequent data output. + + **Usage:** + + .. code-block:: fortran + + status = NXUwritegroup (file_id, group_name, group_class) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **group_name** (type: ``character(len=*)``): + Name of group. + + - **group_class** (type: ``character(len=*)``): + Class of group. + + +NXUwritedata +============ + + Creates, opens and writes a NeXus data set in the current group. Data can be a scalar value, or a one-, two-, or three-dimensional array. If higher dimensions are required, use the core API (see ``NXputdata``). ``units``, ``data_start``, and ``data_size`` are optional parameters. If you want the data set to be compressed, set default compression parameters in ``NXUsetcompress``. + + **Usage:** + + .. code-block:: c + + status = NXUwritedata (file_id, data_name, data, units, data_start, data_size) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **data_name** (type: ``character(len=*)``): + Name of data set. + + - **data** (type: + ``integer(:)``, ``integer(:,:)``, ``integer(:,:,:)``, + ``real``, ``real(:)``, ``real(:,:)``, ``real(:,:,:)``, + ``character(len=*)``): + Data values. + + - **units** (type: ``character(len=*)``, optional): + Data units. + + - **start** (type: ``integer(:)``, optional): + Starting indices of data slab. + + - **size** (type: ``integer(:)``, optional): + Length of each dimension of data slab. + + +NXUreaddata +=========== + + Opens and reads a NeXus data set in the current group. Data can be a scalar value, or a one-, two-, or three-dimensional array. If higher dimensions are required, use the core API (see ``NXgetdata``). ``units``, ``data_start``, and ``data_size`` are optional parameters. + + **Usage:** + + .. code-block:: c + + status = NXUreaddata(file_id, data_name, data, units, data_start, data_size) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **data_name** (type: ``character(len=*)``): + Name of data set. + + - **start** (type: ``integer(:)``, optional): + Starting indices of data slab. + + - **size** (type: ``integer(:)``, optional): + Length of each dimension of data slab. + + **Output Arguments:** + + - **data** (type: + ``integer(:)``, ``integer(:,:)``, ``integer(:,:,:)``, + ``real``, ``real(:)``, ``real(:,:)``, ``real(:,:,:)``, + ``character(len=*)``): + Data values. + + - **units** (type: ``character(len=*)``, optional): + Data units. + +NXUwritehistogram +================= + + Creates, opens, and writes a one-dimensional NeXus data item with units. The input data are assumed to be histogram bin boundaries, and the stored data contains the histogram centers, i.e., the stored array has a dimension one less than the data. The ``histogram_offset`` attribute is automatically set to half the width of the first bin, which allows the regeneration of the bin boundaries by ``NXUreadhistogram``. + + **Usage:** + + .. code-block:: c + + status = NXUwritehistogram(file_id, data_name, data, units) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **data_name** (type: ``character(len=*)``): + Name of histogram. + + - **data** (type: ``real(:), pointer``): + Histogram bin boundaries. + + - **units** (type: ``character(len=*)``, optional): + Data units. + + +NXUreadhistogram +================ + + Opens and reads a one-dimensional real data set in the current group. The data are assumed to be histogram bin boundaries, which are stored in NeXus files as bin centers with the first bin offset defined as the attribute ``histogram_offset``, i.e., the returned array has a dimension one greater than the stored array (see ``NXUwritehistogram``). If the ``histogram_offset`` attribute is not present, it is assumed that the first bin width equals the separation of the first two bin centers. + + **Usage:** + + .. code-block:: c + + status = NXUreadhistogram (file_id, data_name, data, units) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **data_name** (type: ``character(len=*)``): + Name of histogram. + + **Output Arguments:** + + - **data** (type: ``real(:), pointer``): + Histogram bin boundaries. + + - **units** (type: ``character(len=*)``, optional): + Data units. + + +NXUsetcompress +============== + + Sets the compression type to be used in subsequent calls to ``NXUwritedata``. The second parameter, which is optional, sets the minimum number of elements in a data set before any compression is performed. This is to prevent inefficient compression of small data sets. The default value is 100. + + **Usage:** + + .. code-block:: c + + status = NXUsetcompress (file_id, compress_type, compress_size) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **compress_type** (type: ``integer``): + Compression algorithm. Options include: + - ``NX_COMP_LZW``: GZIP + - ``NX_COMP_HUF``: Skipping Huffman + - ``NX_COMP_RLE``: Run Length Encoding + - ``NX_COMP_NONE``: No compression + + - **compress_size** (type: ``integer``): + Minimum number of elements in data set before compression is attempted. + +NXUfindgroup +============= + + Finds if the NeXus group exists in the current group and returns its class. The returned status is ``NX_EOD`` if the group is not found. + + **Usage:** + + .. code-block:: c + + status = NXUfindgroup (file_id, group_name, group_class) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **group_name** (type: ``character(len=*)``): + Name of group. + + **Output Arguments:** + + - **group_class** (type: ``character(len=*)``): + Class of group. + +NXUfindclass +============= + + Finds if a NeXus group of the requested class exists in the current group and returns its name. ``find_index`` is used when there is more than one group of the required class; ``find_index = 3`` returns the name of the third group found. The returned status is ``NX_EOD`` if no such group is found. + + **Usage:** + + .. code-block:: c + + status = NXUfindclass (file_id, group_class, group_name, find_index) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **group_class** (type: ``character(len=*)``): + Requested class. + + - **find_index** (type: ``integer``): + Search index. + + **Output Arguments:** + + - **group_name** (type: ``character(len=*)``): + Name of the group with that class. + +NXUfinddata +============ + + Finds if a NeXus data set of the requested name exists in the current group. The returned status is ``NX_EOD`` if the data set is not found. + + **Usage:** + + .. code-block:: c + + status = NXUfinddata (file_id, data_name) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **data_name** (type: ``character(len=*)``): + Requested data set. + +NXUfindattr +============ + + Finds if a NeXus attribute of the current data set exists. The returned status is ``NX_EOD`` if the attribute is not found. + + **Usage:** + + .. code-block:: c + + status = NXUfindattr (file_id, attr_name) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **attr_name** (type: ``character(len=*)``): + Requested attribute name. + +NXUfindsignal +============= + + Finds the NeXus data set in the current group with the required signal attribute, and returns its name, rank, type, and dimensions. The returned status is ``NX_EOD`` if the signal data set is not found. + + **Usage:** + + .. code-block:: c + + status = NXUfindsignal (file_id, signal, data_name, data_rank, data_type, data_dimensions) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **signal** (type: ``integer``): + Required value of signal attribute. + + **Output Arguments:** + + - **data_name** (type: ``character(len=*)``): + Data set with the required signal attribute. + + - **data_rank** (type: ``integer``): + Rank of the data set. + + - **data_type** (type: ``integer``): + Type of the data set (see list of valid data types). + + - **data_dimensions** (type: ``integer(:)``): + Dimensions of the data set. + + +NXUfindaxis +============ + + Finds the NeXus data set in the current group with the required axis and primary attributes, and returns its name, rank, type, and dimensions. Note that the axis data set should be one-dimensional. The returned status is ``NX_EOD`` if the axis data set is not found. + + **Usage:** + + .. code-block:: c + + status = NXUfindaxis (file_id, axis, primary, data_name, data_rank, data_type, data_dimensions) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **axis** (type: ``integer``): + Required value of axis attribute. + + - **primary** (type: ``integer``): + Required value of primary attribute. + + **Output Arguments:** + + - **data_name** (type: ``character(len=*)``): + Data set with the required axis attribute. + + - **data_rank** (type: ``integer``): + Rank of the data set. + + - **data_type** (type: ``integer``): + Type of the data set (see list of valid data types). + + - **data_dimensions** (type: ``integer(:)``): + Dimensions of the data set. + +NXUfindlink +============ + + Finds another group to which the currently open data set is linked and leaves it open for getting associated data. ``group_id`` stores the ID of the original group to enable a subsequent return (see ``NXUresumelink``). ``group_class`` is an optional argument that restricts the search to the specified group class. The returned status is ``NX_EOD`` if the group is not found. + + **Usage:** + + .. code-block:: c + + status = NXUfindlink (file_id, group_id, group_class) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **group_class** (type: ``character(len=*)``): + Group classes to be searched. + + **Output Arguments:** + + - **group_id** (type: ``NXlink``): + ID of the current group. + +NXUresumelink +============== + + Returns to the original group from which an ``NXUfindlink`` call was issued. + + **Usage:** + + .. code-block:: c + + status = NXUresumelink (file_id, group_id) + + **Input Arguments:** + + - **file_id** (type: ``NXhandle``): + Identifier of NeXus file. + + - **group_id** (type: ``NXlink``): + ID of the original group. ---- title: NAPI Utility Routines permalink: NAPI_Utility_Routines.html -layout: wiki --- ### NXUwriteglobals Writes the global attributes -defined in the NeXus standard. Note that NeXus\\_version, file\\_name -and file\\_time are written automatically by the NeXus API. The -attribute arguments are optional, so the F90 keyword syntax can be used -for all of them, \*e.g.\*, status = NXUwriteglobals (file_id, user="Joe -Bloggs", email="JB@some.where") ;Usage: status = NXUwriteglobals -(file_id, user, affiliation, address, phone, fax, email) \|- ! -rowspan=7 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| user \| character(len=\\\*) \| Name of -user \|- \| affiliation \| character(len=\\\*) \| User's affiliation \|- -\| address \| character(len=\\\*) \| User's address \|- \| phone \| -character(len=\\\*) \| User's telephone number \|- \| fax \| -character(len=\\\*) \| User's fax number \|- \| email \| -character(len=\\\*) \| User's email address \|} ### NXUwritegroup -Creates a NeXus group leaving it open for subsequent data output. -;Usage: status = NXUwritegroup (file_id, group_name, group_class) \|- ! -rowspan=3 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| group\\_name \| character(len=\\\*) \| -Name of group \|- \| group\\_class \| character(len=\\\*) \| Class of -group \|} ### NXUwritedata Creates, opens and writes a NeXus data set in -the current group. data can be a scalar value, or a one-, two-, or -three-dimensional array. If higher dimensions are required, use the core -API (see NXputdata). units, data\\_start and data\\_size are -optional parameters. If you want the data set to be compressed, set -default compression parameters in NXUsetcompress. ;Usage: status = -NXUwritedata (file_id, data_name, data, units, data_start, data_size) -\|- ! rowspan=7\| Input Arguments \|- \| file\\_id \| type(NXhandle) -\| Identifier of NeXus file \|- \| data\\_name \| character(len=\\\*) \| -Name of data set \|- \| data \| integer integer(:) integer(:,:) -integer(:,:,:) real real(:) real(:,:) real(:,:,:) character(len=\\\*) \| -Data values \|- \| units \| character(len=\\\*) \| Data units (optional) -\|- \| start \| integer(:) \| Starting indices of data slab (optional) -\|- \| size \| integer(:) \| Length of each dimension of data slab -(optional) \|} ### NXUreaddata Opens and reads a NeXus data set in the -current group. data can be a scalar value, or a one-, two-, or -three-dimensional array. If higher dimensions are required, use the core -API (see NXgetdata). units, data\\_start and data\\_size are -optional parameters. ;Usage: status = NXUreaddata (file_id, data_name, -data, units, data_start, data_size) \|- ! rowspan=4 \| Input Arguments -\| file\\_id \| type(NXhandle) \| Identifier of NeXus file \|- \| -data\\_name \| character(len=\\\*) \| Name of data set \|- \| start \| -integer(:) \| Starting indices of data slab (optional) \|- \| size \| -integer(:) \| Length of each dimension of data slab (optional) \|- ! -rowspan=2 \| Output Arguments \| data \| integer integer(:) -integer(:,:) integer(:,:,:) real real(:) real(:,:) real(:,:,:) -character(len=\\\*) \| Data values \|- \| units \| character(len=\\\*) -\| Data units (optional) \|} ### NXUwritehistogram Creates, opens and -writes a one dimensional NeXus data item with units. The input data -are assumed to be histogram bin boundaries, and the stored data contains -the histogram centers, i.e. the stored array has a dimension one less -than the data. The histogram\\_offset attribute is automatically set -to half the width of the first bin, which allows the regeneration of the -bin boundaries by NXUreadhistogram. ;Usage: status = NXUwritehistogram -(file_id, data_name, data, units) \|- ! rowspan=4 \| Input Arguments -\| file\\_id \| type(NXhandle) \| Identifier of NeXus file \|- \| -data\\_name \| character(len=\\\*) \| Name of histogram \|- \| data \| -real(:), pointer \| Histogram bin boundaries \|- \| units \| -character(len=\\\*) \| Data units (optional) \|} ### NXUreadhistogram -Opens and reads a one dimensional real data set in the current group. -The data are assumed to be histogram bin boundaries, which are stored in -NeXus files as bin centers with the first bin offset defined as the -attribute histogram\\_offset, i.e. the returned array has a dimension -one greater than the stored array (see NXUwritehistogram). If the -histogram\\_offset attribute is not present, it is assumed that the -first bin width equals the separation of the first two bin centers. -;Usage: status = NXUreadhistogram (file_id, data_name, data, units) \|- -! rowspan=2 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| data\\_name \| character(len=\\\*) \| -Name of histogram \|- ! rowspan=2 \| Output Arguments \| data \| -real(:), pointer \| Histogram bin boundaries \|- \| units \| -character(len=\\\*) \| Data units (optional) \|} ### NXUsetcompress Sets -the compression type to be used in subsequent calls to NXUwritedata. The -second parameter, which is optional, sets the minimum number of elements -in a data set before any compression is performed. This is to prevent -inefficient compression of small data sets. The default value is 100. -;Usage: status = NXUsetcompress (file_id, compress_type, compress_size) -\|- ! rowspan=3 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| compress\\_type \| integer \| -Compression algorithm:NX\\_COMP\\_LZW - GZIP NX\\_COMP\\_HUF - Skipping -Huffman NX\\_COMP\\_RLE - Run Length Encoding NX\\_COMP\\_NONE - No -compression \|- \| compress\\_size \| integer \| Minimum number of -elements in data set before data compression is attempted. \|} ### -NXUfindgroup Finds if NeXus group exists in the current group and -returns its class. The returned status is NX\\_EOD if the group is not -found. ;Usage: status = NXUfindgroup (file_id, group_name, group_class) -\|- ! rowspan=2 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| group\\_name \| character(len=\\\*) \| -Name of group \|- ! \| Output Arguments \| group\\_class \| -character(len=\\\*) \| Class of group \|} ### NXUfindclass Finds if a -NeXus group of the requested class exists in the current group and -returns its name. find\\_index is used when there is more than one -group of the required class; find\\_index = 3 returns the name of the -third group found. The returned status is NX\\_EOD if no such group is -found. ;Usage: status = NXUfindclass (file_id, group_class, group_name, -find_index) \|- ! rowspan=3 \| Input Arguments \| file\\_id \| -type(NXhandle) \| Identifier of NeXus file \|- \| group\\_class \| -character(len=\\\*) \| Requested class \|- \| find\\_index \| integer \| -Search index \|- ! \| Output Arguments \| group\\_name \| -character(len=\\\*) \| Name of group with that class \|} ### NXUfinddata -Finds if a NeXus data set of the requested name exists in the current -group. The returned status is NX\\_EOD if the data set is not found. -;Usage: status = NXUfinddata (file_id, data_name) \|- ! rowspan=2 \| -Input Arguments \| file\\_id \| type(NXhandle) \| Identifier of NeXus -file \|- \| data\\_name \| character(len=\\\*) \| Requested data set \|} -### NXUfindattr Finds if a NeXus attribute of the current data set -exists. The returned status is NX\\_EOD if the attribute is not found. -;Usage: status = NXUfindattr (file_id, attr_name) \|- ! rowspan=2 \| -Input Arguments \| file\\_id \| type(NXhandle) \| Identifier of NeXus -file \|- \| attr\\_name \| character(len=\\\*) \| Requested attribute -name \|} ### NXUfindsignal Finds the NeXus data set in the current group -with the required signal attribute, and returns its name, rank, type and -dimensions. The returned status is NX\\_EOD if the signal data set is -not found. ;Usage: status = NXUfindsignal (file_id, signal, data_name, -data_rank, data_type, data_dimensions) \|- ! rowspan=2 \| Input -Arguments \| file\\_id \| type(NXhandle) \| Identifier of NeXus file \|- -\| signal \| integer \| Required value of signal attribute \|- ! -rowspan=4 \| Output Arguments \| data\\_name \| character(len=\\\*) \| -Data set with required signal attribute \|- \| data\\_rank \| integer \| -Rank of data set \|- \| data\\_type \| integer \| Type of data set (see -list of valid data types) \|- \| data\\_dimensions \| integer(:) \| -Dimensions of data set \|} ### NXUfindaxis Finds the NeXus data set in -the current group with the required axis and primary attributes, and -returns its name, rank, type and dimensions. Note that the axis data set -should be one-dimensional. The returned status is NX\\_EOD if the axis -data set is not found. ;Usage: status = NXUfindaxis (file_id, axis, -primary, data_name, data_rank, data_type, data_dimensions) \|- ! -rowspan=3 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| axis \| integer \| Required value of -axis attribute \|- \| primary \| integer \| Required value of primary -attribute \|- ! rowspan=4 \| Output Arguments \| data\\_name \| -character(len=\\\*) \| Data set with required signal attribute \|- \| -data\\_rank \| integer \| Rank of data set \|- \| data\\_type \| integer -\| Type of data set (see list of valid data types) \|- \| -data\\_dimensions \| integer(:) \| Dimensions of data set \|} ### -NXUfindlink Finds another group to which the currently open data set is -linked and leaves it open for getting associated data. group\\_id -stores the ID of the original group to enable a subsequent return (see -NXUresumelink). group\\_class is an optional argument which restricts -the search to the specified group class. The returned status is NX\\_EOD -if the group is not found. ;Usage: status = NXUfindlink (file_id, -group_id, group_class) \|- ! rowspan=2 \| Input Arguments \| file\\_id -\| type(NXhandle) \| Identifier of NeXus file \|- \| group\\_class \| -character(len=\\\*) \| Group classes to be searched. \|- ! \| Output -Arguments \| group\\_id \| type(NXlink) \| ID of current group. \|} ### -NXUresumelink Returns to the original group from which an NXfindlink -call was issued. ;Usage: status = NXUresumelink (file_id, group_id) \|- -! rowspan=2 \| Input Arguments \| file\\_id \| type(NXhandle) \| -Identifier of NeXus file \|- \| group\\_id \| type(NXlink) \| ID of -original group \|} diff --git a/source/content/NXaperture_and_Slits.rst b/source/content/NXaperture_and_Slits.rst index 03964835..ac0c9594 100644 --- a/source/content/NXaperture_and_Slits.rst +++ b/source/content/NXaperture_and_Slits.rst @@ -2,39 +2,63 @@ NXaperture and Slits ==================== +The actual *NXaperture* base class is far too complex for most of the apertures used at synchrotron facilities. Currently, the most commonly used aperture types are: ---- title: NXaperture and Slits permalink: NXaperture_and_Slits.html -layout: wiki --- The actual \*NXaperture\* base class is far t0o complex -for most of the apertures used at synchrotron facilities. Currently the -most commonly used aperture types are - pinholes - 2 or 4 blade slits. -From the current implementation of \*NXaperture\* it would be rather -difficult to obtain relevant quantities like the size of the slit gap or -the offsets of the gap. There are basically two ways how to face this -problem - redesign \*NXaperture\* - or introduce new classes for more -specific aperture types. Which of them is appropriate for us should be -the topic of this discussion. Introducing new classes ------------------------ #### Pinholes - \*NXpinhole\* ![c|A pinhold in -the beam.](pinhole_2.png "fig:c|A pinhold in the beam.") Pinholes are -most probably the simplest apertures available. The only parameter of -importance is the diameter of the pinhole and its position with respect -to the beam (as shown in the image). From this sketch one could easily -deduce a new class \*NXpinhole\* with the following parameters: -NXpinhole diameter:NX_LENGTH depends_on:NX_CHAR The first parameter -\*diameter\* describes the diameter of the pinhole while the -depends\\_on references the last element of the chain of transformations -to position the center of the pinhole. #### Slits - \*NXslit\* ![A -four-blade slit system.](slit.png "fig:A four-blade slit system.") Two -or four blade slits are the most common apertures used at synchrotrons. -In this example a 4-blade slit is shown. The most important parameter -for such a system is the size of the aperture determined by the -positions of the blades. A base class \*NXslit\* could look like this -NXslit x_gap:NX_LENGTH y_gap:NX_LENGTH depends_on:NX_CHAR The gaps are -given in the local reference frame of the slit system, which is defined -by the transformation chain referenced by the \*depends\\_on\* field. -The \*depends\\_on\* places the center of the slit assembly into the -coordinate system. \*NXslit\* basically describes a rectangular -aperture. The positions of the individual slit blades are not included -in the definition of the base class. #### What happens to \*NXaperture\* -The original \*NXaperture\* remains unchanged (for the sake of -compatibility) and can still be used for all kind of more complex -apertures which cannot be represented by the the new classes. +- Pinholes + +- 2 or 4 blade slits. + +From the current implementation of *NXaperture*, it would be rather difficult to obtain relevant quantities like the size of the slit gap or the offsets of the gap. There are basically two ways how to face this problem: + +- Redesign *NXaperture* + +- Or introduce new classes for more specific aperture types. + +Which of them is appropriate for us should be the topic of this discussion. + +Introducing new classes +----------------------- + +Pinholes - *NXpinhole* +====================== + +.. figure:: ../extra_files/pinhole_2.png + :align: center + :width: 300px + :alt: A pinhole in the beam. + +Pinholes are most probably the simplest apertures available. The only parameter of importance is the diameter of the pinhole and its position with respect to the beam (as shown in the image). From this sketch, one could easily deduce a new class *NXpinhole* with the following parameters: + +- NXpinhole + + - diameter: NX_LENGTH + + - depends_on: NX_CHAR + +The first parameter, *diameter*, describes the diameter of the pinhole, while *depends_on* references the last element of the chain of transformations to position the center of the pinhole. + +Slits - *NXslit* +================ + +.. figure:: ../extra_files/slit.png + :align: center + :width: 300px + :alt: A four-blade slit system. + + +Two or four blade slits are the most common apertures used at synchrotrons. In this example, a 4-blade slit is shown. The most important parameter for such a system is the size of the aperture determined by the positions of the blades. A base class *NXslit* could look like this: + +- NXslit + + - x_gap: NX_LENGTH + + - y_gap: NX_LENGTH + + - depends_on: NX_CHAR + +The gaps are given in the local reference frame of the slit system, which is defined by the transformation chain referenced by the *depends_on* field. The *depends_on* places the center of the slit assembly into the coordinate system. *NXslit* basically describes a rectangular aperture. The positions of the individual slit blades are not included in the definition of the base class. + +What happens to *NXaperture* +============================ + +The original *NXaperture* remains unchanged (for the sake of compatibility) and can still be used for all kinds of more complex apertures which cannot be represented by the new classes. diff --git a/source/content/NXbrowse.f90.rst b/source/content/NXbrowse.f90.rst index 7362cde4..fe0a091a 100644 --- a/source/content/NXbrowse.f90.rst +++ b/source/content/NXbrowse.f90.rst @@ -1,219 +1,416 @@ -============ +=============== NXbrowse.f90 -============ - - ---- title: NXbrowse.f90 permalink: NXbrowse.f90.html layout: wiki --- -!------------------------------------------------------------------------------ -! NeXus - Neutron & X-ray Common Data Format ! ! Fortran 90 Browser ! ! -Copyright (C) 1999, Ray Osborn ! ! This library is free software; you -can redistribute it and/or ! modify it under the terms of the GNU Lesser -General Public ! License as published by the Free Software Foundation; -either ! version 2 of the License, or (at your option) any later -version. ! ! This library is distributed in the hope that it will be -useful, ! but WITHOUT ANY WARRANTY; without even the implied warranty of -! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! -Lesser General Public License for more details. ! ! You should have -received a copy of the GNU Lesser General Public ! License along with -this library; if not, write to the Free Software ! Foundation, Inc., 59 -Temple Place, Suite 330, Boston, MA 02111-1307 USA ! ! Contact : R. -Osborn ! Materials Science Division ! Argonne National Laboratory ! -Argonne, IL 60439-4845 ! USA ! ! For further information, see ! !$Id: -NXbrowse.f90,v 1.6 1999/11/24 16:30:12 nexus Exp $ -!------------------------------------------------------------------------------ -program NXbrowse use NXUmodule character(len=80) :: file_name, -input_text, path type(NXhandle) :: file_id character(len=NX_MAXNAMELEN), -allocatable :: name(:), class(:) character(len=NX_MAXNAMELEN) :: -group_name, group_class, data_name, attr_name integer :: status, n, i, -NXrank, NXtype, NXdims(NX_MAXRANK) logical :: single_element -character(len=255) :: char_value integer(kind=NXi4) :: int_value -integer(kind=NXi4), pointer :: int_array(:), int_2Darray(:,:), -int_3Darray(:,:,:) real(kind=NXr4) :: real_value real(kind=NXr4), -pointer :: real_array(:), real_2Darray(:,:), real_3Darray(:,:,:) -real(kind=NXr8) :: dble_value real(kind=NXr8), pointer :: dble_array(:), -dble_2Darray(:,:), dble_3Darray(:,:,:) write (unit=\*, fmt="(a)", -advance="no") " Give name of NeXus file : " read \*, file_name !Open -input file and output global attributes if (NXopen (trim(file_name), -NXACC_READ, file_id) /= NX_OK) then call NXerror ("Can't open -"//trim(file_name)) stop end if do status = NXgetnextattr (file_id, -attr_name, n, NXtype) if (status /= NX_OK) exit !Output attribute -information according to type select case (NXtype) case (NX_CHAR) if -(NXgetattr (file_id, attr_name, char_value) /= NX_OK) cycle print \*, " -"//trim(attr_name)//" = "//trim(char_value) char_value = " " case -(NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) if (NXgetattr -(file_id, attr_name, int_value) == NX_OK) then print \*, " -"//trim(attr_name)//" = ",int_value end if case (NX_FLOAT32) if -(NXgetattr (file_id, attr_name, real_value) == NX_OK) then print \*, " -"//trim(attr_name)//" = ",real_value end if case (NX_FLOAT64) if -(NXgetattr (file_id, attr_name, dble_value) == NX_OK) then print \*, " -"//trim(attr_name)//" = ",dble_value end if end select end do !Input -commands until the EXIT command is given path = "NX" do write (unit=\*, -fmt="(a)", advance="no") " "//trim(path)//"> " read "(a)", input_text -select case (command(input_text)) !Command is to print a directory of -the current group case ("DIR") if (NXgetgroupinfo (file_id, n) /= NX_OK) -cycle allocate (name(n), class(n)) status = NXgroupdir (file_id, n, -name, class) if (status == NX_OK) then do i = 1,n if (class(i)(1:2) == -"NX") then print \*, " NX Group : "//trim(name(i))//" -("//trim(class(i))//")" else if (class(i)(1:3) == "SDS") then print \*, -" NX Data : "//trim(name(i)) end if end do end if deallocate (name, -class) !Command is to open the specified group case ("OPEN") input_text -= adjustl(input_text(5:len_trim(input_text))) read -(input_text(1:index(input_text," ")), fmt="(a)") group_name if -(NXUfindgroup (file_id, group_name, group_class) == NX_EOD) then call -NXerror (trim(group_name)//" does not exist") cycle end if if -(NXopengroup (file_id, group_name, group_class) /= NX_OK) cycle !Add the -group to the prompt string path = trim(path)//"/"//trim(group_name) -!Command is to print the values of the data !1) if the array index is -specified, a single element is output !2) if no index is given, the -minimum and maximum values of the array are output case ("READ") -input_text = adjustl(input_text(5:len_trim(input_text))) !Check for -evidence that an individual element has been specified if -(index(input_text,"(") == 0) then read (input_text(1:index(input_text," -")), fmt="(a)") data_name single_element = .false. else read -(input_text(1:index(input_text,"(")-1), fmt="(a)") data_name -single_element = .true. end if !Check the specified data item exists if -(NXUfinddata (file_id, data_name) == NX_EOD) then call NXerror -(trim(data_name)//" does not exist") cycle end if !Open the data and -obtain its type and rank details if (NXopendata (file_id, data_name) /= -NX_OK) cycle if (NXgetinfo (file_id, NXrank, NXdims, NXtype) /= NX_OK) -cycle if (single_element) then input_text = -input_text(index(input_text,"(")+1:index(input_text,")")-1) if -(dimcount(input_text) /= NXrank) then call NXerror ("Invalid array -index") cycle end if read (input_text, fmt=\*) NXdims(1:NXrank) end if -!Output data according to data type select case (NXtype) case (NX_CHAR) -if (NXUreaddata (file_id, data_name, char_value) /= NX_OK) cycle print -\*, " "//trim(data_name)//" ["//trim(NXdatatype(NXtype))//"] = -"//trim(char_value) char_value = " " case -(NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) !Output data -according to rank select case (NXrank) case (1) if (single_element) then -if (NXUreaddata (file_id, data_name, int_array, data_start=NXdims, -data_size=(/1/)) == NX_OK) then print \*, " -"//trim(data_name)//"("//trim(input_text)//") -["//trim(NXdatatype(NXtype))& //"] = ", int_array(1) end if else if -(NXUreaddata (file_id, data_name, int_array) == NX_OK) then if -(size(int_array) > 1) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(int_array), " to ", -maxval(int_array) else print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", int_array end if end if end if -deallocate (int_array, stat = status) case (2) if (single_element) then -if (NXUreaddata (file_id, data_name, int_2Darray, data_start=NXdims, -data_size=(/1,1/)) == NX_OK) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", int_2Darray(1,1) end if else if -(NXUreaddata (file_id, data_name, int_2Darray) == NX_OK) then print \*, -" "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(int_2Darray), " to ", -maxval(int_2Darray) end if end if deallocate (int_2Darray, stat = -status) case (3) if (single_element) then if (NXUreaddata (file_id, -data_name, int_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == -NX_OK) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", int_3Darray(1,1,1) end if else -if (NXUreaddata (file_id, data_name, int_3Darray) == NX_OK) then print -\*, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(int_3Darray), " to ", -maxval(int_3Darray) end if end if deallocate (int_3Darray, stat = -status) end select case (NX_FLOAT32) !Output data according to rank -select case (NXrank) case (1) if (single_element) then if (NXUreaddata -(file_id, data_name, real_array, data_start=NXdims, data_size=(/1/)) == -NX_OK) then print \*, " "//trim(data_name)//"("//trim(input_text)//") -["//trim(NXdatatype(NXtype))& //"] = ", real_array(1) end if else if -(NXUreaddata (file_id, data_name, real_array) == NX_OK) then if -(size(real_array) > 1) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(real_array), " to ", -maxval(real_array) else print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", real_array end if end if end if -deallocate (real_array, stat = status) case (2) if (single_element) then -if (NXUreaddata (file_id, data_name, real_2Darray, data_start=NXdims, -data_size=(/1,1/)) == NX_OK) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", real_2Darray(1,1) end if else if -(NXUreaddata (file_id, data_name, real_2Darray) == NX_OK) then print \*, -" "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(real_2Darray), " to ", -maxval(real_2Darray) end if end if deallocate (real_2Darray, stat = -status) case (3) if (single_element) then if (NXUreaddata (file_id, -data_name, real_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == -NX_OK) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", real_3Darray(1,1,1) end if else -if (NXUreaddata (file_id, data_name, real_3Darray) == NX_OK) then print -\*, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(real_3Darray), " to ", -maxval(real_3Darray) end if end if deallocate (real_3Darray, stat = -status) end select case (NX_FLOAT64) !Output data according to rank -select case (NXrank) case (1) if (single_element) then if (NXUreaddata -(file_id, data_name, dble_array, data_start=NXdims, data_size=(/1/)) == -NX_OK) then print \*, " "//trim(data_name)//"("//trim(input_text)//") -["//trim(NXdatatype(NXtype))& //"] = ", dble_array(1) end if else if -(NXUreaddata (file_id, data_name, dble_array) == NX_OK) then if -(size(dble_array) > 1) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(dble_array), " to ", -maxval(dble_array) else print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", dble_array end if end if end if -deallocate (dble_array, stat = status) case (2) if (single_element) then -if (NXUreaddata (file_id, data_name, dble_2Darray, data_start=NXdims, -data_size=(/1,1/)) == NX_OK) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", dble_2Darray(1,1) end if else if -(NXUreaddata (file_id, data_name, dble_2Darray) == NX_OK) then print \*, -" "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(dble_2Darray), " to ", -maxval(dble_2Darray) end if end if deallocate (dble_2Darray, stat = -status) case (3) if (single_element) then if (NXUreaddata (file_id, -data_name, dble_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == -NX_OK) then print \*, " -"//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", dble_3Darray(1,1,1) end if else -if (NXUreaddata (file_id, data_name, dble_3Darray) == NX_OK) then print -\*, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" -["//trim(NXdatatype(NXtype))& //"] = ", minval(dble_3Darray), " to ", -maxval(dble_3Darray) end if end if deallocate (dble_3Darray, stat = -status) end select end select if (single_element) cycle !Check for -attributes do status = NXgetnextattr (file_id, attr_name, n, NXtype) if -(status /= NX_OK) exit !Output attribute information according to type -select case (NXtype) case (NX_CHAR) if (NXgetattr (file_id, attr_name, -char_value) /= NX_OK) cycle print \*, " "//trim(attr_name)//" = -"//trim(char_value) char_value = " " case -(NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) if (NXgetattr -(file_id, attr_name, int_value) == NX_OK) then print \*, " -"//trim(attr_name)//" = ",int_value end if case (NX_FLOAT32) if -(NXgetattr (file_id, attr_name, real_value) == NX_OK) then print \*, " -"//trim(attr_name)//" = ",real_value end if case (NX_FLOAT64) if -(NXgetattr (file_id, attr_name, dble_value) == NX_OK) then print \*, " -"//trim(attr_name)//" = ",dble_value end if end select end do !Command -is to close the current group case ("CLOSE") if (NXclosegroup (file_id) -/= NX_OK) cycle !Remove the group from the prompt string path = -path(1:(index(path,"/",back=.true.)-1)) !Command is to print help -information case ("HELP") print \*, "NXbrowse commands : DIR" print \*, -" OPEN " print \*, " READ " print \*, " CLOSE" print \*, " HELP" print -\*, " EXIT" !Command is to exit the program case ("EXIT","QUIT") exit -end select end do status = NXclose (file_id) contains !Returns the first -word of input text in upper case function command (input_text) result -(output_text) character(len=\*), intent(in) :: input_text -character(len=80) :: output_text integer :: i, letter output_text = " " -do i = 1,len_trim(adjustl(input_text)) if (input_text(i:i) == " ") exit -letter = ichar(input_text(i:i)) if (letter >= 97 .and. letter <= 122) -letter = letter - 32 output_text(i:i) = char(letter) end do end function -command !Outputs the specified dimensions as a formatted string function -dimstring (rank, dims) result (string) integer, intent(in) :: rank, -dims(:) character(len=50) :: string character(len=10) :: buffer integer -:: i if (rank == 1 .and. dims(1) == 1) then string = " " else string = -"(" do i = 1,rank write (buffer, fmt="(i10)") dims(i) string = -trim(string)//trim(adjustl(buffer))//"," end do -string(len_trim(string):len_trim(string)) = ")" end if end function -dimstring !Outputs the number of dimensions specified in an input string -function dimcount (string) result (rank) character(len=50), intent(in) -:: string integer :: rank integer :: i logical :: number_found if -(verify(trim(string)," 0123456789,") /= 0) then rank = 0 else i = 1 rank -= 1 number_found = .false. do if (verify(string(i:i),"0123456789") == 0) -then number_found = .true. else if (number_found .and. string(i:i) == -",") then rank = rank + 1 number_found = .false. else rank = 0 exit end -if i = i + 1 if (i > len_trim(string)) exit end do if (.not. -number_found) rank = 0 end if end function dimcount end program NXbrowse +=============== + +.. code-block:: fortran + + !------------------------------------------------------------------------------ + ! NeXus - Neutron & X-ray Common Data Format + ! + ! Fortran 90 Browser + ! + ! Copyright (C) 1999, Ray Osborn + ! + ! This library is free software; you can redistribute it and/or + ! modify it under the terms of the GNU Lesser General Public + ! License as published by the Free Software Foundation; either + ! version 2 of the License, or (at your option) any later version. + ! + ! This library is distributed in the hope that it will be useful, + ! but WITHOUT ANY WARRANTY; without even the implied warranty of + ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ! Lesser General Public License for more details. + ! + ! You should have received a copy of the GNU Lesser General Public + ! License along with this library; if not, write to the Free Software + ! Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ! + ! Contact : R. Osborn + ! Materials Science Division + ! Argonne National Laboratory + ! Argonne, IL 60439-4845 + ! USA + ! + ! For further information, see + ! + !$Id: NXbrowse.f90,v 1.6 1999/11/24 16:30:12 nexus Exp $ + !------------------------------------------------------------------------------ + + program NXbrowse + + use NXUmodule + character(len=80) :: file_name, input_text, path + type(NXhandle) :: file_id + character(len=NX_MAXNAMELEN), allocatable :: name(:), class(:) + character(len=NX_MAXNAMELEN) :: group_name, group_class, data_name, attr_name + integer :: status, n, i, NXrank, NXtype, NXdims(NX_MAXRANK) + logical :: single_element + character(len=255) :: char_value + integer(kind=NXi4) :: int_value + integer(kind=NXi4), pointer :: int_array(:), int_2Darray(:,:), int_3Darray(:,:,:) + real(kind=NXr4) :: real_value + real(kind=NXr4), pointer :: real_array(:), real_2Darray(:,:), real_3Darray(:,:,:) + real(kind=NXr8) :: dble_value + real(kind=NXr8), pointer :: dble_array(:), dble_2Darray(:,:), dble_3Darray(:,:,:) + + write (unit=*, fmt="(a)", advance="no") " Give name of NeXus file : " + read *, file_name + !Open input file and output global attributes + if (NXopen (trim(file_name), NXACC_READ, file_id) /= NX_OK) then + call NXerror ("Can't open "//trim(file_name)) + stop + end if + do + status = NXgetnextattr (file_id, attr_name, n, NXtype) + if (status /= NX_OK) exit + !Output attribute information according to type + select case (NXtype) + case (NX_CHAR) + if (NXgetattr (file_id, attr_name, char_value) /= NX_OK) cycle + print *, " "//trim(attr_name)//" = "//trim(char_value) + char_value = " " + case (NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) + if (NXgetattr (file_id, attr_name, int_value) == NX_OK) then + print *, " "//trim(attr_name)//" = ",int_value + end if + case (NX_FLOAT32) + if (NXgetattr (file_id, attr_name, real_value) == NX_OK) then + print *, " "//trim(attr_name)//" = ",real_value + end if + case (NX_FLOAT64) + if (NXgetattr (file_id, attr_name, dble_value) == NX_OK) then + print *, " "//trim(attr_name)//" = ",dble_value + end if + end select + end do + !Input commands until the EXIT command is given + path = "NX" + do + write (unit=*, fmt="(a)", advance="no") " "//trim(path)//"> " + read "(a)", input_text + select case (command(input_text)) + !Command is to print a directory of the current group + case ("DIR") + if (NXgetgroupinfo (file_id, n) /= NX_OK) cycle + allocate (name(n), class(n)) + status = NXgroupdir (file_id, n, name, class) + if (status == NX_OK) then + do i = 1,n + if (class(i)(1:2) == "NX") then + print *, " NX Group : "//trim(name(i))//" ("//trim(class(i))//")" + else if (class(i)(1:3) == "SDS") then + print *, " NX Data : "//trim(name(i)) + end if + end do + end if + deallocate (name, class) + !Command is to open the specified group + case ("OPEN") + input_text = adjustl(input_text(5:len_trim(input_text))) + read (input_text(1:index(input_text," ")), fmt="(a)") group_name + if (NXUfindgroup (file_id, group_name, group_class) == NX_EOD) then + call NXerror (trim(group_name)//" does not exist") + cycle + end if + if (NXopengroup (file_id, group_name, group_class) /= NX_OK) cycle + !Add the group to the prompt string + path = trim(path)//"/"//trim(group_name) + !Command is to print the values of the data + !1) if the array index is specified, a single element is output + !2) if no index is given, the minimum and maximum values of the array are output + case ("READ") + input_text = adjustl(input_text(5:len_trim(input_text))) + !Check for evidence that an individual element has been specified + if (index(input_text,"(") == 0) then + read (input_text(1:index(input_text," ")), fmt="(a)") data_name + single_element = .false. + else + read (input_text(1:index(input_text,"(")-1), fmt="(a)") data_name + single_element = .true. + end if + !Check the specified data item exists + if (NXUfinddata (file_id, data_name) == NX_EOD) then + call NXerror (trim(data_name)//" does not exist") + cycle + end if + !Open the data and obtain its type and rank details + if (NXopendata (file_id, data_name) /= NX_OK) cycle + if (NXgetinfo (file_id, NXrank, NXdims, NXtype) /= NX_OK) cycle + if (single_element) then + input_text = input_text(index(input_text,"(")+1:index(input_text,")")-1) + if (dimcount(input_text) /= NXrank) then + call NXerror ("Invalid array index") + cycle + end if + read (input_text, fmt=*) NXdims(1:NXrank) + end if + !Output data according to data type + select case (NXtype) + case (NX_CHAR) + if (NXUreaddata (file_id, data_name, char_value) /= NX_OK) cycle + print *, " "//trim(data_name)//" ["//trim(NXdatatype(NXtype))//"] = "//trim(char_value) + char_value = " " + case (NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) + !Output data according to rank + select case (NXrank) + case (1) + if (single_element) then + if (NXUreaddata (file_id, data_name, int_array, data_start=NXdims, data_size=(/1/)) == NX_OK) then + print *, " "//trim(data_name)//"("//trim(input_text)//") ["//trim(NXdatatype(NXtype))& + //"] = ", int_array(1) + end if + else + if (NXUreaddata (file_id, data_name, int_array) == NX_OK) then + if (size(int_array) > 1) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(int_array), " to ", maxval(int_array) + else + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", int_array + end if + end if + end if + deallocate (int_array, stat = status) + case (2) + if (single_element) then + if (NXUreaddata (file_id, data_name, int_2Darray, data_start=NXdims, data_size=(/1,1/)) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", int_2Darray(1,1) + end if + else + if (NXUreaddata (file_id, data_name, int_2Darray) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(int_2Darray), " to ", maxval(int_2Darray) + end if + end if + deallocate (int_2Darray, stat = status) + case (3) + if (single_element) then + if (NXUreaddata (file_id, data_name, int_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", int_3Darray(1,1,1) + end if + else + if (NXUreaddata (file_id, data_name, int_3Darray) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(int_3Darray), " to ", maxval(int_3Darray) + end if + end if + deallocate (int_3Darray, stat = status) + end select + case (NX_FLOAT32) + !Output data according to rank + select case (NXrank) + case (1) + if (single_element) then + if (NXUreaddata (file_id, data_name, real_array, data_start=NXdims, data_size=(/1/)) == NX_OK) then + print *, " "//trim(data_name)//"("//trim(input_text)//") ["//trim(NXdatatype(NXtype))& + //"] = ", real_array(1) + end if + else + if (NXUreaddata (file_id, data_name, real_array) == NX_OK) then + if (size(real_array) > 1) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(real_array), " to ", maxval(real_array) + else + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", real_array + end if + end if + end if + deallocate (real_array, stat = status) + case (2) + if (single_element) then + if (NXUreaddata (file_id, data_name, real_2Darray, data_start=NXdims, data_size=(/1,1/)) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", real_2Darray(1,1) + end if + else + if (NXUreaddata (file_id, data_name, real_2Darray) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(real_2Darray), " to ", maxval(real_2Darray) + end if + end if + deallocate (real_2Darray, stat = status) + case (3) + if (single_element) then + if (NXUreaddata (file_id, data_name, real_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", real_3Darray(1,1,1) + end if + else + if (NXUreaddata (file_id, data_name, real_3Darray) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(real_3Darray), " to ", maxval(real_3Darray) + end if + end if + deallocate (real_3Darray, stat = status) + end select + case (NX_FLOAT64) + !Output data according to rank + select case (NXrank) + case (1) + if (single_element) then + if (NXUreaddata (file_id, data_name, dble_array, data_start=NXdims, data_size=(/1/)) == NX_OK) then + print *, " "//trim(data_name)//"("//trim(input_text)//") ["//trim(NXdatatype(NXtype))& + //"] = ", dble_array(1) + end if + else + if (NXUreaddata (file_id, data_name, dble_array) == NX_OK) then + if (size(dble_array) > 1) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(dble_array), " to ", maxval(dble_array) + else + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", dble_array + end if + end if + end if + deallocate (dble_array, stat = status) + case (2) + if (single_element) then + if (NXUreaddata (file_id, data_name, dble_2Darray, data_start=NXdims, data_size=(/1,1/)) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", dble_2Darray(1,1) + end if + else + if (NXUreaddata (file_id, data_name, dble_2Darray) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(dble_2Darray), " to ", maxval(dble_2Darray) + end if + end if + deallocate (dble_2Darray, stat = status) + case (3) + if (single_element) then + if (NXUreaddata (file_id, data_name, dble_3Darray, data_start=NXdims, data_size=(/1,1,1/)) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", dble_3Darray(1,1,1) + end if + else + if (NXUreaddata (file_id, data_name, dble_3Darray) == NX_OK) then + print *, " "//trim(data_name)//trim(dimstring(NXrank,NXdims))//" ["//trim(NXdatatype(NXtype))& + //"] = ", minval(dble_3Darray), " to ", maxval(dble_3Darray) + end if + end if + deallocate (dble_3Darray, stat = status) + end select + end select + if (single_element) cycle + !Check for attributes + do + status = NXgetnextattr (file_id, attr_name, n, NXtype) + if (status /= NX_OK) exit + !Output attribute information according to type + select case (NXtype) + case (NX_CHAR) + if (NXgetattr (file_id, attr_name, char_value) /= NX_OK) cycle + print *, " "//trim(attr_name)//" = "//trim(char_value) + char_value = " " + case (NX_INT8,NX_UINT8,NX_INT16,NX_UINT16,NX_INT32,NX_UINT32) + if (NXgetattr (file_id, attr_name, int_value) == NX_OK) then + print *, " "//trim(attr_name)//" = ",int_value + end if + case (NX_FLOAT32) + if (NXgetattr (file_id, attr_name, real_value) == NX_OK) then + print *, " "//trim(attr_name)//" = ",real_value + end if + case (NX_FLOAT64) + if (NXgetattr (file_id, attr_name, dble_value) == NX_OK) then + print *, " "//trim(attr_name)//" = ",dble_value + end if + end select + end do + !Command is to close the current group + case ("CLOSE") + if (NXclosegroup (file_id) /= NX_OK) cycle + !Remove the group from the prompt string + path = path(1:(index(path,"/",back=.true.)-1)) + !Command is to print help information + case ("HELP") + print *, "NXbrowse commands : DIR" + print *, " OPEN " + print *, " READ " + print *, " CLOSE" + print *, " HELP" + print *, " EXIT" + !Command is to exit the program + case ("EXIT","QUIT") + exit + end select + end do + status = NXclose (file_id) + + contains + + !Returns the first word of input text in upper case + function command (input_text) result (output_text) + + character(len=*), intent(in) :: input_text + character(len=80) :: output_text + integer :: i, letter + + output_text = " " + do i = 1,len_trim(adjustl(input_text)) + if (input_text(i:i) == " ") exit + letter = ichar(input_text(i:i)) + if (letter >= 97 .and. letter <= 122) letter = letter - 32 + output_text(i:i) = char(letter) + end do + + end function command + + !Outputs the specified dimensions as a formatted string + function dimstring (rank, dims) result (string) + + integer, intent(in) :: rank, dims(:) + character(len=50) :: string + character(len=10) :: buffer + integer :: i + + if (rank == 1 .and. dims(1) == 1) then + string = " " + else + string = "(" + do i = 1,rank + write (buffer, fmt="(i10)") dims(i) + string = trim(string)//trim(adjustl(buffer))//"," + end do + string(len_trim(string):len_trim(string)) = ")" + end if + + end function dimstring + + !Outputs the number of dimensions specified in an input string + function dimcount (string) result (rank) + + character(len=50), intent(in) :: string + integer :: rank + integer :: i + logical :: number_found + + if (verify(trim(string)," 0123456789,") /= 0) then + rank = 0 + else + i = 1 + rank = 1 + number_found = .false. + do + if (verify(string(i:i),"0123456789") == 0) then + number_found = .true. + else if (number_found .and. string(i:i) == ",") then + rank = rank + 1 + number_found = .false. + else + rank = 0 + exit + end if + i = i + 1 + if (i > len_trim(string)) exit + end do + if (.not. number_found) rank = 0 + end if + + end function dimcount + + end program NXbrowse + diff --git a/source/content/NXdetector_2012_10.rst b/source/content/NXdetector_2012_10.rst index 2f5fc246..b8ddd0a5 100644 --- a/source/content/NXdetector_2012_10.rst +++ b/source/content/NXdetector_2012_10.rst @@ -3,11 +3,14 @@ NXdetector 2012 10 ================== ---- title: NXdetector 2012 10 permalink: NXdetector_2012_10.html layout: -wiki --- This is from an discussion about additions/modifications to +This is from an discussion about additions/modifications to NXdetector to help Dectris as it decides to write raw image data into -HDF5/NeXus format. on 2012-11-07, Mark Koennecke wrote ------------------------------------ Hi, at the last teleconference we +HDF5/NeXus format. on 2012-11-07, + +Mark Koennecke wrote +-------------------- + +Hi, at the last teleconference we agreed that I do a summary of the state and options on the DECTRIS/detector_element issue. Well, this is it. In the meantime the information came in that DECTRIS is joining the two planned workshops @@ -20,21 +23,25 @@ one joint image. This can be easily stored in one NXdetector group. A mask stored with the data gives information which pixels are valied and which are boundaries. The problem starts when the individual modules are arranged in an irregular arrangement: for example on a half sphere. Then -there are two requirements: - The user still wants to see an image -merged from the individual modules in order to quickly get an overview -of the data. This requirement is best fulfilled by keeping the data in -one fat array. - For proper data analysis, more information on each -individual module is needed. This is: \* The position of the module -within the pixel array, offset and size \* The physical position and -orientation of the module with respect to the detector as a whole In -order to handle this, there are several propositions. Use NXgeometry -================ NXdetector module01,NXgeometry NXtranslation -NXorientation module02,NXgeometry NXtranslation NXorientation ..... This -option is missing the index information. I am not sure if we want to add +there are two requirements: + +- The user still wants to see an image merged from the individual modules in order to quickly get an overview of the data. This requirement is best fulfilled by keeping the data in one fat array. + +- For proper data analysis, more information on each individual module is needed. This is: \* The position of the module within the pixel array, offset and size \* The physical position and orientation of the module with respect to the detector as a whole In order to handle this, there are several propositions. + +Use NXgeometry +============== + +NXdetector module01,NXgeometry NXtranslation NXorientation module02,NXgeometry NXtranslation NXorientation +..... This option is missing the index information. I am not sure if we want to add that to NXgeometry. I am also not sure if we still wish to advocate the use of NXgeometry. IMHO, the CIF mapping is better and NXgeometry may be -deprecated soon.. But is not yet.... NXdetector_element -====================== The second option would be a new group: +deprecated soon.. But is not yet.... + +NXdetector_element +================== + +The second option would be a new group: NXdetector_element looking like this: NXdetector distance module01,NXdetector_element x[nx] @transformation_type=translation @offset=x,y,z @vector= ... @@ -44,8 +51,11 @@ pixel_offset[2]=x,y The x any y arrays describe the pixels of the module. This is wasting space as it is for example for x: x[0]=0*pixelsize, x[1] = 1*pixelsize,... The offset and vector attributes the position and orientation in space. The start indices go -into the pixel_offset Tobias Suggestion ===================== A variant -based on the way CIF handles the same problem detector:NXdetector +into the pixel_offset + +Tobias Suggestion +================= +A variant based on the way CIF handles the same problem detector:NXdetector data[j,k,l] = [....] detector_arm[1] = [250] @transformation=translation @vector={1,0,0} @units=cm @depends_on=/entry/instrument/something/brick depends_on=detector_arm module:NXdetector_module data_origin[2] = [l,m] @@ -56,15 +66,23 @@ data_size[2] = [n,o] module_offset[1] = [250] @depends_on="module_offset" slow_pixel_direction[1] = [0.172] @transformation=translation @vector={0,1,0} @units=mm @depends_on="module_offset" module:NXdetector_module .... This uses less -space. SNS Usage ============== SNS had a similar problem and has -resolved the issue by storing each detector module in a separate +space. + +SNS Usage +========= + +SNS had a similar problem and has resolved the issue by storing each detector module in a separate NXdetector group. This works perfectly and would require no change on our side. However, this would mean that DECTRIS would need to change their data writing for this case. And vieweing the total image cannot be done easily anymore without a reconstruction in SW or a duplication of data. This looks like: module01,NXdetector data[NP,i,j] distance ...... -module02,NXdetector data[NP,ij] distance... .... The General Case -==================== What also works is the existing facility in NeXus +module02,NXdetector data[NP,ij] distance... .... + +The General Case +================ + +What also works is the existing facility in NeXus to describe each pixel individually. Any pixel gets an ID and there are arrays for distance, coordinates etc which are nPixel long. With nPixel being the total number of pixels. But this would again destroy the diff --git a/source/content/NXdetector_documentation.rst b/source/content/NXdetector_documentation.rst index 390ff73c..431d25ff 100644 --- a/source/content/NXdetector_documentation.rst +++ b/source/content/NXdetector_documentation.rst @@ -2,34 +2,28 @@ NXdetector documentation ======================== +There are some flaws in the documentation of NXdetector which we need fix ++----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NXdetector field | comment | ++----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| distance | The distance field still requires documentation | +| polar\_angle | I guess here we have a collision with the definition for the canonical 'polar\_angle' in the user manual. Despite this, the reference manual still mentions that this field requires documentation. | +| azimuthal\_angle | Same as for polar\_angle (collision with definition of canonical rotations as well as missing documentation) | +| dead\_time | which dead time. What does term refer to? | +| count\_time | what do we mean with count time. Is this the time the each pixel was exposed to radiation (or particles)? | +| acquisition\_mode | this is somehow confusing: what is the difference between 'gated' and 'triggered'? Is 'event' not simply gated/triggered by an event? Why does this have its own mode? | +| angular\_calibration | we should definitely provide a formula here which explains how to use this numbers? Is a single number per pixel really enough? | +| countrate\_correction\_\_applied | are the two underscores a typo or have they been used intentionally? What exactly does this mean? Is this something we have introduced for DECTRIS? | +| frame\_time | here we should replace the term 'exposure\_time' with 'count\_time' to avoid confusion | +| gain\_setting | I guess this is something we made for DECTRIS | ++----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ---- title: NXdetector documentation permalink: -NXdetector_documentation.html layout: wiki --- There are some flaws in -the documentation of NXdetector which we need fix \| \| NXdetector field -\| \| comment \| -\|----------------------------------\ -\| distance \| The distance field still requires documentation \| \| -polar\\_angle \| I guess here we have a collision with the definition -for the canonical 'polar\\_angle' in the user manual. Despite this, the -reference manual still mentions that this field requires documentation. -\| \| azimuthal\\_angle \| Same as for polar\\_angle (collision with -definition of canonical rotations as well as missing documentation) \| -\| dead\\_time \| which dead time. What does term refer to? \| \| -count\\_time \| what do we mean with count time. Is this the time the -each pixel was exposed to radiation (or particles)? \| \| -acquisition\\_mode \| this is somehow confusing: what is the difference -between 'gated' and 'triggered'? Is 'event' not simply gated/triggered -by an event? Why does this have its own mode? \| \| -angular\\_calibration \| we should definitely provide a formula here -which explains how to use this numbers? Is a single number per pixel -really enough? \| \| countrate\\_correction\\\_\\_applied \| are the two -underscores a typo or have they been used intentionally? What exactly -does this mean? Is this something we have introduced for DECTRIS? \| \| -frame\\_time \| here we should replace the term 'exposure\\_time' with -'count\\_time' to avoid confusion \| \| gain\\_setting \| I guess this -is something we made for DECTRIS \| In order to make things easier we -should somehow agree on a coherent naming scheme for time values (maybe -provide some timing diagram). Update 01/2015 -------------- The fields -listed here have proper documentation now. INHO, this really did not -belong here but should rather have been an issue on github. But may be -it did not get enough love there..... +In order to make things easier we should somehow agree on a coherent +naming scheme for time values (maybe provide some timing diagram). + +Update 01/2015 +-------------- + +The fields listed here have proper documentation now. INHO, this really +did not belong here but should rather have been an issue on github. But +may be it did not get enough love there..... \ No newline at end of file diff --git a/source/content/NeXpy.rst b/source/content/NeXpy.rst index 6d3495e9..ac909b5f 100644 --- a/source/content/NeXpy.rst +++ b/source/content/NeXpy.rst @@ -1,28 +1,39 @@ -===== NeXpy ===== - ---- title: NeXpy permalink: NeXpy.html layout: wiki --- -[NeXpy](https://nexpy.github.io/nexpy/) provides a high-level python +`[NeXpy] `__ provides a high-level Python interface to NeXus data contained within a simple GUI. It is designed to provide an intuitive interactive toolbox allowing users both to access existing NeXus files and to create new NeXus-conforming data structures -without expert knowledge of the file format. Installation ------------ +without expert knowledge of the file format. + +Installation +------------ + WARNING: NeXpy is in the early stages of development, and so there has been no stable release yet. It is available for testing purposes only. -To check out the latest version from the [GitHub -repository](https://github.com/nexpy/nexpy) and install the NeXpy -package to the standard python site-packages directory,: -\`> git clone \`[\`https://github.com/nexpy/nexpy.git\`](https://github.com/nexpy/nexpy.git) -\`> cd nexpy\` \`> python setup.py install\` This assumes that the -standard Python script directory is in your default path. The source -code can also be viewed on the [NeXpy -GitHub](https://github.com/nexpy/nexpy). ### Installation Issues #### -Locating the NeXus library NeXpy utilizes the python wrapper to the -NeXus C API distributed with the standard NeXus distribution. This -/wrapper needs the location of the libNeXus precompiled binary. It looks -in the following places in order:: +To check out the latest version from the `[GitHub repository] `__ and install the NeXpy +package to the standard Python site-packages directory, do the following: + +.. code-block:: bash + + > git clone https://github.com/nexpy/nexpy.git + > cd nexpy + > python setup.py install + +This assumes that the standard Python script directory is in your default path. The source code can also be viewed on the `[NeXpy GitHub] `__. + +Installation Issues +=================== + +Locating the NeXus Library +-------------------------- + +NeXpy utilizes the Python wrapper to the NeXus C API distributed with the +standard NeXus distribution. This /wrapper needs the location of the libNeXus precompiled binary. It looks +in the following places in order: + +.. code-block:: text +-----------------------------------+-----------------------------------+ | Location | Operating System | @@ -46,9 +57,10 @@ in the following places in order:: | | | +-----------------------------------+-----------------------------------+ -- On Windows it looks for one of libNeXus.dll or libNeXus-0.dll. -- On OS X it looks for libNeXus.dylib. -- On Unix it looks for libNeXus.so. +- On Windows, it looks for one of libNeXus.dll or libNeXus-0.dll. +- On OS X, it looks for libNeXus.dylib. +- On Unix, it looks for libNeXus.so. + NEXUSDIR defaults to r'C:\\Program Files\\NeXus Data Format'. PREFIX defaults to /usr/local, but is replaced by the value of --prefix during configure. The import will raise an OSError exception if the library wasn't found or couldn't @@ -56,68 +68,123 @@ be loaded. Note that on Windows in particular this may be because the supporting usual places. If you are extracting the nexus library from a bundle at runtime, set os.environ['NEXUSLIB'] to the path where it is extracted before the first import of nexpy. -#### Required Libraries -[nexus](http://www.nexusformat.org) - [numpy](https://numpy.org) - -[scipy](https://scipy.org) - [h5py](https://www.h5py.org) - [matplotlib -v1.1.0](http://matplotlib.sourceforge.net) - -[hdf5](http://www.hdfgroup.org) - [mxml](http://www.minixml.org) (XML -NeXus files only) - [PySide v1.1.0](http://www.pyside.org/) (GUI only) - -[iPython v0.13](http://ipython.org/) (GUI only) - -[pyspec](http://pyspec.sourceforge.net) (SPEC reader only) Running NeXpy -------------- There are two ways of using the NeXpy interface to NeXus -files. 1. Within a standard python or ipython shell. 2. Using the GUI -shell ### Python Shell \`$ python\` -\`Python 2.7.2 (default, Oct 11 2012, 20:14:37) \` -\`[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin\` -\`Type \`\`help\`\`, \`\`copyright\`\`, \`\`credits\`` or \`\`license\`` for more information.\` -\`>>> from nexpy.api import nexus\` -\`>>> a=nexus.load('data/chopper.nxs')\` ### GUI Shell To run the NeXpy -GUI, type \`> nexpy\` ![NeXpy|center|800px](Nexpy.png -"fig:NeXpy|center|800px") The GUI contains three main panes: Tree -Pane:This contains the tree structure of NeXus files opened in the File -menu and/or any NXroot and NXentry groups created within the shell. Plot -Pane:Any NXdata or NXmonitor group can be plotted in this pane by -right-clicking on the relevant node in the tree. Shell Pane:This is a -regular python shell, with both Numpy and NeXpy already imported (as -\\\* so no prefixes are necessary). Any assignments to items in the tree -pane are automatically reflected in the tree pane, and new NXroot, -NXentry, or NXdata objects are added to the tree. Currently, it is not -possible to plot directly from the shell pane, but this will be added in -the future. There are a number of useful features available when running -NeXpy within the GUI shell. 1. Data can be loaded with the menu item -using a standard file browser window. 2. All current NeXus data trees -are easy to inspect in the pane on the upper left side. Hovering over a -data item produces a tooltip containing a list of all the item's -children. 3. Newly created group can be added to the tree at any time. -4. Any changes to data sets in the scripting window will be reflected -within the tree pane, including the creation of new NXroot or NXentry -groups. 5. NXdata and NXmonitor plots can be displayed by right-clicking -and choosing 'Plot'. 6. Axis limits are set by a series of slider bars. -7. The scripting shell provides convenient autocompletion, and -automatically displays function docstrings as a tooltip when you open -the function parentheses. #### Planned Enhancements - Editing data items -in the tree within an editor pane. NeXus Interface --------------- ### -Loading NeXus Data The entire tree structure of a NeXus file can be -loaded by a single command. \`>>> from nexpy.api import nexus\` -\`>>> a=nexus.load('sns/data/ARCS_7326_tof.nxs')\` The assigned variable -now contains the entire tree structure of the file, which can be -displayed by printing the 'tree' property. \`>>> print a.tree\` -\`root:NXroot\` ` @HDF5_Version = 1.8.2\` ` @NeXus_version = 4.2.1\` -` @file_name = ARCS_7326_tof.nxs\` -` @file_time = 2010-05-05T01:59:25-05:00\` ` entry:NXentry\` -` \`[\`data:NXdata\`](data:NXdata) -` data = float32(631x461x4x825)\` -` @axes = rotation_angle:tilt_angle:sample_angle:time_of_flight\` -` @signal = 1\` ` rotation_angle = float32(632)\` -` @units = degree\` -` sample_angle = [ 210. 215. 220. 225. 230.]\` -` @units = degree\` ` tilt_angle = float32(462)\` -` @units = degree\` ` time_of_flight = float32(826)\` -` @units = microsecond\` ` run_number = 7326\` -` sample:NXsample\` ` pulse_time = 2854.94747365\` -` @units = microsecond\` Individual data items are immediately -available from the command-line. \`>>> print a.entry.run_number\` -\`7326\` Note that only the tree structure and smaller data sets are +Required Libraries +------------------ + +- [nexus](http://www.nexusformat.org) +- [numpy](https://numpy.org) +- [scipy](https://scipy.org) +- [h5py](https://www.h5py.org) +- [matplotlib v1.1.0](http://matplotlib.sourceforge.net) +- [hdf5](http://www.hdfgroup.org) +- [mxml](http://www.minixml.org) (XML NeXus files only) +- [PySide v1.1.0](http://www.pyside.org/) (GUI only) +- [iPython v0.13](http://ipython.org/) (GUI only) +- [pyspec](http://pyspec.sourceforge.net) (SPEC reader only) Running NeXpy + + +There are two ways of using the NeXpy interface to NeXus +files. + +1. Within a standard Python or IPython shell. +2. Using the GUI shell. + +Python Shell +------------ + +.. code-block:: text + + $ python + Python 2.7.2 (default, Oct 11 2012, 20:14:37) + [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin + Type `help`, `copyright`, `credits` or `license` for more information. + >>> from nexpy.api import nexus + >>> a=nexus.load('data/chopper.nxs') + +GUI Shell +--------- + +To run the NeXpy GUI, type: + +.. code-block:: text + + > nexpy + +.. figure:: ../extra_files/Nexpy.png + :align: center + :width: 800px + :alt: NeXpy + + NeXpy GUI screenshot. + +The GUI contains three main panes: + +- **Tree Pane**: This contains the tree structure of NeXus files opened in the File menu and/or any NXroot and NXentry groups created within the shell. +- **Plot Pane**: Any NXdata or NXmonitor group can be plotted in this pane by right-clicking on the relevant node in the tree. +- **Shell Pane**: This is a regular Python shell, with both Numpy and NeXpy already imported (as `*` so no prefixes are necessary). Any assignments to items in the tree pane are automatically reflected in the tree pane, and new NXroot, NXentry, or NXdata objects are added to the tree. Currently, it is not possible to plot directly from the shell pane, but this will be added in the future. + +There are a number of useful features available when running NeXpy within the GUI shell: + +1. Data can be loaded with the menu item using a standard file browser window. +2. All current NeXus data trees are easy to inspect in the pane on the upper left side. Hovering over a data item produces a tooltip containing a list of all the item's children. +3. Newly created groups can be added to the tree at any time. +4. Any changes to data sets in the scripting window will be reflected within the tree pane, including the creation of new NXroot or NXentry groups. +5. NXdata and NXmonitor plots can be displayed by right-clicking and choosing 'Plot'. +6. Axis limits are set by a series of slider bars. +7. The scripting shell provides convenient autocompletion and automatically displays function docstrings as a tooltip when you open the function parentheses. + + +Planned Enhancements +-------------------- + +- Editing data items in the tree within an editor pane. + +NeXus Interface +--------------- + +### Loading NeXus Data + +The entire tree structure of a NeXus file can be loaded by a single command. + +.. code-block:: python + + >>> from nexpy.api import nexus + >>> a = nexus.load('sns/data/ARCS_7326_tof.nxs') + +The assigned variable now contains the entire tree structure of the file, which can be displayed by printing the 'tree' property. + +.. code-block:: python + + >>> print a.tree + root:NXroot @HDF5_Version = 1.8.2 @NeXus_version = 4.2.1 @file_name = ARCS_7326_tof.nxs + @file_time = 2010-05-05T01:59:25-05:00 + entry:NXentry + [data:NXdata] + data = float32(631x461x4x825) + @axes = rotation_angle:tilt_angle:sample_angle:time_of_flight + @signal = 1 + rotation_angle = float32(632) + @units = degree + sample_angle = [ 210. 215. 220. 225. 230.] + @units = degree + tilt_angle = float32(462) + @units = degree + time_of_flight = float32(826) + @units = microsecond + run_number = 7326 + sample:NXsample + pulse_time = 2854.94747365 + @units = microsecond + +Individual data items are immediately available from the command-line. + +.. code-block:: python + + >>> print a.entry.run_number + 7326 + + +Note that only the tree structure and smaller data sets are read into memory to avoid using up memory unnecessarily. In the above example, only the types and dimensions of the larger data sets are displayed in the tree. However, the filename is also stored, so the data @@ -125,17 +192,35 @@ can be loaded as soon as it is needed, either as a complete array or as a series of slabs. ### Creating NeXus Data It is just as easy to create new NeXus data sets from scratch using Numpy arrays. The following example shows the creation of a simple function, which is then saved to -a file. \`>>> import numpy as np\` -\`>>> x=y=np.linspace(0,2*np.pi,101)\` \`>>> X,Y=np.meshgrid(x,y)\` -\`>>> z=np.sin(X)*np.sin(Y)\` \`>>> a=NXdata(z,[x,y])\` -\`>>> a.save('function.nxs')\` This file can then be loaded again. -\`>>> b=nexus.load('function.nxs')\` \`>>> print b.tree\` -\`root:NXroot\` ` @HDF5_Version = 1.8.2\` ` @NeXus_version = 4.2.1\` -` @file_name = function.nxs\` ` @file_time = 2010-05-10T17:01:13+01:00\` -` entry:NXentry\` ` \`[\`data:NXdata\`](data:NXdata) -` axis1 = float64(101)\` ` axis2 = float64(101)\` -` signal = float64(101x101)\` ` @axes = axis1:axis2\` -` @signal = 1\` Note that the save() method automatically wraps +a file. + +.. code-block:: python + + >>> import numpy as np + >>> x = y = np.linspace(0, 2 * np.pi, 101) + >>> X, Y = np.meshgrid(x, y) + >>> z = np.sin(X) * np.sin(Y) + >>> a = NXdata(z, [x, y]) + >>> a.save('function.nxs') + +This file can then be loaded again: + +.. code-block:: python + + >>> b = nexus.load('function.nxs') + >>> print b.tree + root:NXroot @HDF5_Version = 1.8.2 @NeXus_version = 4.2.1 @file_name = function.nxs + @file_time = 2010-05-10T17:01:13+01:00 + entry:NXentry + [data:NXdata] + axis1 = float64(101) + axis2 = float64(101) + signal = float64(101x101) + @axes = axis1:axis2 + @signal = 1 + + +Note that the save() method automatically wraps any valid NeXus data in an NXentry group, in order to produce a standard-compliant file. #### NeXus Fields NeXus data values are stored in NeXus objects of class 'NXfield'. The NXfield class wraps standard @@ -144,186 +229,362 @@ associated with them. There are two ways to create an NXfield. - Explicit initialization. The data value is given by the first positional argument, and may be a python scalar or string, or a Numpy array. In this method, keyword arguments can be used to define NXfield attributes. -\`>>> x = NXfield(np.linspace(0,2*np.pi,101), units='degree')\` - -Implicit initialization as the child of a NeXus group. The assigned -values are automatically converted to an NXfield. -\`>>> a.entry.sample.temperature=40.0\` -\`>>> a.entry.sample.temperature\` -\`NXfield(name=temperature,value=40.0)\` NXfield attributes can be -assigned after creating the NXfield. Note that attribute names must not -start with 'nx' to avoid name clashes. -\`>>> a.entry.sample.temperature.units='K'\` The actual values of an -NXfield are stored in the 'nxdata' attribute. If the NXfield is read in -from a data file, this attribute is not input if the array size is large -to avoid using up memory unnecessarily. It will, however, be read in if -the value is accessed for plotting or manipulating data. If this will -cause a memory exception, the data should be read in as a series of -slabs using the nxget method. -\`>>> with root.NXentry[0].data.data as slab:\` -` Ni,Nj,Nk = slab.shape\` ` size = [1,1,Nk]\` -` for i in range(Ni):\` -` for j in range(Nj):\` -` value = slab.get([i,j,0],size)\` Data values can -be returned converted to different units if the 'units' attribute has -been set. \`>>> phi = x.nxdata_as(units='radian')\` -\`>>> y = NXfield(np.sin(phi))\` #### NeXus Groups NeXus groups are -defined as subclasses of the NXgroup class. Apart from the class name, -they behave identically except for the NXdata, NXmonitor, and NXlog -groups, which have extra methods defined. The initialization parameters -can be used to populate the group with other predefined NeXus objects, -either groups or fields. \`>>> temperature = NXfield(40.0, units='K')\` -\`>>> sample = NXsample(temperature=temperature)\` -\`>>> print sample.tree\` \`sample:NXsample\` ` temperature = 40.0\` -` units = K\` Note that, in this example, it was necessary to use the -keyword form to add the NXfield 'temperature' since its name is -otherwise undefined within the NXsample group. This name is set -automatically if the NXfield is added as an attribute assignment. -\`>>> sample = NXsample()\` -\`>>> sample.temperature=NXfield(40.0, units='K')\` \`sample:NXsample\` -` temperature = 40.0\` ` units = K\` The objects in NeXus groups, -which can be NXfields or other NXgroups, can also be assigned and -referenced as dictionary items. -\`>>> sample[\`\`temperature\`\`] = 40.0\` \`>>> sample.keys()\` -\`['temperature']\` NXdata Groups NXdata groups contain data ready to be -plotted. That means that the group should consist of an NXfield -containing the data and one or more NXfields containing the axes. NeXus -defines a method of associating axes with the appropriate dimension, but -NeXpy provides a simple constructor that implements this method -automatically. This was already demonstrated in the example above, -reproduced here: \`>>> import numpy as np\` -\`>>> x=y=np.linspace(0,2*np.pi,101)\` \`>>> X,Y=np.meshgrid(y,x)\` -\`>>> z=np.sin(X)*np.sin(Y)\` \`>>> a=NXdata(z,[x,y])\` The first -positional argument is an NXfield or Numpy array containing the data, -while the second is a list containing the axes, again as NXfields or -Numpy arrays. In this example, the names of the arrays have not been -defined within an NXfield so default names were assigned. -\`>>> print a.tree\` ` \`[\`data:NXdata\`](data:NXdata) -` axis1 = float64(101)\` ` axis2 = float64(101)\` -` signal = float64(101x101)\` ` @axes = axis1:axis2\` -` @signal = 1\` However, names can be assigned explicitly when -creating the NXfield through the 'name' attribute. -\`>>> phi=np.linspace(0,2*np.pi,101)\` \`>>> data=np.sin(phi)\` -\`>>> a=NXdata(NXfield(data,name='intensity'),(NXfield(phi,name='polar_angle')))\` -\`>>> print a.tree\` [\`data:NXdata\`](data:NXdata) -` intensity = float64(101)\` ` @axes = polar_angle\` -` @signal = 1\` ` polar_angle = float64(101)\` ### Adding NeXus Data -to the Tree View If you create a NeXus group dynamically in the iPython -shell, it can be added to the tree view using the tree's add method. -\`>>> a=NXroot()\` \`>>> a.entry = NXentry()\` \`>>> tree.add(a)\` If -the group is not an NXroot group, the data will be wrapped automatically -in an NXroot group and given a default name that doesn't conflict with -existing tree nodes, e.g., w4. ### Plotting NeXus Data #### Python Shell -NXdata, NXmonitor, and NXlog groups all have a plot method, which -automatically determines what should be plotted. \`>>> data.plot()\` ![A -simple NeXpy plot|center](NeXPy-Simple_plot.png "fig:A simple NeXpy -plot|center") If the data is one-dimensional, it is possible to overplot -more than one data set using 'over=True'. Conventional Matplotlib -keywords can be used to change markers and colors. -\`>>> data.plot(log=True)\` -\`>>> data.plot(over=True, log=True, color='r')\` #### GUI Shell NXdata, -NXmonitor, and NXlog data can be plotted by right-clicking on the group -within the tree. The plot pane contains a toolbar to change axis or -signal intensity limits. The slider provides a graphical way of setting -minimum and/or maximum values or they can be typed into the text boxes. -![Axis Limits Toolbar|center|600px](Axis_Limits_Bar.png "fig:Axis Limits -Toolbar|center|600px") There are two checkboxes: Lock:If the maximum -and/or minimum values are not set to the limits, then this checkbox -locks the difference between the two. This checkbox disables setting of -the minimum value. You can step through the z-values with automatic -replots by selecting the maximum box and using the keyboard up and down -arrows or by clicking the box arrows. Autoscale: When stepping through -the z-values, this checkbox determines whether the plot should change -the color scale. ### Manipulating NeXus Data ### Slicing #### NXfield A -slice of an NXfield can be obtained using the usual python indexing -syntax. \`>>> x=NXfield(np.linspace(0,2*np.pi,101))\` -\`>>> print x[0:51]\` -\`[ 0. 0.06283185 0.12566371 ..., 3.01592895 3.0787608 3.14159265]\` -If either of the indices are floats, then the limits are set by the -values themselves (assuming the array is monotonic). -\`>>> print x[0.5:1.5]\` -\`[ 0.50265482 0.56548668 0.62831853 ..., 1.38230077 1.44513262 1.50796447]\` -#### NXdata It is also possible to slice whole NXdata groups. In this -case, the slicing works on the multidimensional NXfield, but the full -NXdata group is returned with both the signal data and the associated -axes limited by the slice parameters. If either of the limits along any -one axis is a float, the limits are set by the values of the axis. -\`>>> a=NXdata(np.sin(x),x)\` \`>>> a[1.5:2.5].x\` -\`NXfield(name=x,value=[ 1.57079633 1.72787596 1.88495559 ..., 2.19911486 2.35619449])\` -Unless the slice reduces one of the axes to a single item, the rank of -the data remains the same. To project data along one of the axes, and so -reduce the rank by one, the data can be summed along that axis using the -nxsum() method. This employs the Numpy array sum() method. -\`>>> x=y=NXfield(np.linspace(0,2*np.pi,41))\` -\`>>> X,Y=np.meshgrid(x,y)\` -\`>>> a=NXdata(np.sin(X)*np.sin(Y), (x,y))\` \`>>> print a.tree\` -[\`data:NXdata\`](data:NXdata) ` axis1 = float64(41)\` -` axis2 = float64(41)\` ` signal = float64(41x41)\` -` @axes = axis1:axis2\` ` @signal = 1\` -\`>>> print a.sum(0).tree\` [\`data:NXdata\`](data:NXdata) -` axis2 = float64(41)\` ` signal = float64(41)\` ` @axes = axis2\` -` @long_name = Integral from 0.0 to 6.28318530718 \` -` @signal = 1\` It is also possible to slice whole NXdata groups. In -this case, the slicing works on the multidimensional NXfield, but the -full NXdata group is returned with both the signal data and the -associated axes limited by the slice parameters. If either of the limits -along any one axis is a float, the limits are set by the values of the -axis. \`>>> a=NXdata(np.sin(x),x)\` \`>>> a[1.5:2.5].x\` -\`NXfield(name=x,value=[ 1.57079633 1.72787596 1.88495559 ..., 2.19911486 2.35619449])\` -Unless the slice reduces one of the axes to a single item, the rank of -the data remains the same. To project data along one of the axes, and so -reduce the rank by one, the data can be summed along that axis using the -nxsum() method. This employs the Numpy array sum() method. -\`>>> x=y=NXfield(np.linspace(0,2*np.pi,41))\` -\`>>> X,Y=np.meshgrid(x,y)\` -\`>>> a=NXdata(np.sin(X)*np.sin(Y), (x,y))\` \`>>> print a.tree\` -[\`data:NXdata\`](data:NXdata) ` axis1 = float64(41)\` -` axis2 = float64(41)\` ` signal = float64(41x41)\` -` @axes = axis1:axis2\` ` @signal = 1\` -\`>>> print a.sum(0).tree\` [\`data:NXdata\`](data:NXdata) -` axis2 = float64(41)\` ` signal = float64(41)\` ` @axes = axis2\` -` @long_name = Integral from 0.0 to 6.28318530718 \` -` @signal = 1\` ### Arithmetic Operations #### NXfield Arithmetic -operations can be applied to NXfield objects in much the same way as -scalars or Numpy arrays that they contain. This includes addition, -subtraction, multiplication and division, either with other NXfield -objects or to scalar numbers or Numpy arrays. -\`>>> x=NXfield(array((1.5,2.5,3.5),name='x')\` \`>>> x\` -\`NXfield(name=x,value=[ 1.5 2.5 3.5])\` \`>>> x+1\` -NXfield(name=x,value=\\[ 2.5 3.5 4.5\\]) \`>>> 2*x\` -\`NXfield(name=x,value=[ 3. 5. 7.])\` \`>>> x+x\` -\`NXfield(name=x,value=[ 3. 5. 7.])\` \`>>> x-x\` -\`NXfield(name=x,value=[ 0. 0. 0.])\` \`>>> x/x\` -\`NXfield(name=x,value=[ 1. 1. 1.])\` #### NXdata Similar operations -can also be performed on whole NXdata groups. If two NXdata groups are -to be added, the rank and dimension sizes of the main signal array must -match (although the names could be different). -\`>>> y=NXfield(np.sin(x),name='y')\` \`>>> y\` -\`NXfield(name=y,value=[ 0.99749499 0.59847214 -0.35078323])\` -\`>>> a=NXdata(y,x)\` \`>>> print a.tree\` -[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` -` y = [ 0.99749499 0.59847214 -0.35078323]\` ` @axes = x\` -` @signal = 1\` \`>>> print (a+1).tree\` -[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` -` y = [ 1.99749499 1.59847214 0.64921677]\` ` @axes = x\` -` @signal = 1\` \`>>> print (2*a).tree\` -[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` -` y = [ 1.99498997 1.19694429 -0.70156646]\` ` @axes = x\` -` @signal = 1\` \`>>> print (a+a).tree\` -[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` -` y = [ 1.99498997 1.19694429 -0.70156646]\` ` @axes = x\` -` @signal = 1\` \`>>> print (a-a).tree\` -[\`data:NXdata\`](data:NXdata) ` x = [ 1.5 2.5 3.5]\` -` y = [ 0. 0. 0.]\` ` @axes = x\` ` @signal = 1\` -\`>>> print (a/2).tree\` [\`data:NXdata\`](data:NXdata) -` x = [ 1.5 2.5 3.5]\` ` y = [ 0.49874749 0.29923607 -0.17539161]\` -` @axes = x\` ` @signal = 1\` If data errors are included in the -NXdata group (with an additional array named 'errors'), then the errors -are propagated according to the operand. \`>>> print a.tree\` -[\`data:NXdata\`](data:NXdata) -` errors = [ 0.99874671 0.77360981 0.59226956]\` -` x = [ 1.5 2.5 3.5]\` ` y = [ 0.99749499 0.59847214 0.35078323]\` -` @axes = x\` ` @signal = 1\` \`>>> print (a+a).tree\` -[\`data:NXdata\`](data:NXdata) -` errors = [ 1.41244114 1.09404949 0.83759564]\` -` x = [ 1.5 2.5 3.5]\` ` y = [ 1.99498997 1.19694429 0.70156646]\` -` @axes = x\` ` @signal = 1\` + +.. code-block:: python + + >>> x = NXfield(np.linspace(0, 2 * np.pi, 101), units='degree') # Implicit initialization as the child of a NeXus group. + The assigned values are automatically converted to an NXfield. + + >>> a.entry.sample.temperature = 40.0 + >>> a.entry.sample.temperature + NXfield(name=temperature, value=40.0) + + +NXfield attributes can be assigned after creating the NXfield. +Note that attribute names must not start with 'nx' to avoid name clashes. + +.. code-block:: python + + >>> a.entry.sample.temperature.units = 'K' + +The actual values of an NXfield are stored in the 'nxdata' attribute. +If the NXfield is read in from a data file, this attribute is not input if the array size is large to avoid using up memory unnecessarily. +It will, however, be read in if the value is accessed for plotting or manipulating data. +If this will cause a memory exception, the data should be read in as a series of slabs using the `nxget` method. + +.. code-block:: python + + >>> with root.NXentry[0].data.data as slab: + >>> Ni, Nj, Nk = slab.shape + >>> size = [1, 1, Nk] + >>> for i in range(Ni): + >>> for j in range(Nj): + >>> value = slab.get([i, j, 0], size) + +Data values can be returned converted to different units if the 'units' attribute has been set. + +.. code-block:: python + + >>> phi = x.nxdata_as(units='radian') + >>> y = NXfield(np.sin(phi)) + + +NeXus Groups +------------ + +NeXus groups are defined as subclasses of the NXgroup class. Apart from the class name, +they behave identically except for the NXdata, NXmonitor, and NXlog groups, which have extra methods defined. +The initialization parameters can be used to populate the group with other predefined NeXus objects, either groups or fields. + +.. code-block:: python + + >>> temperature = NXfield(40.0, units='K') + >>> sample = NXsample(temperature=temperature) + >>> print sample.tree + sample:NXsample + temperature = 40.0 + units = K + +Note that, in this example, it was necessary to use the keyword form to add the NXfield 'temperature' since its name +is otherwise undefined within the NXsample group. This name is set automatically if the NXfield is added as an attribute assignment. + +.. code-block:: python + + >>> sample = NXsample() + >>> sample.temperature = NXfield(40.0, units='K') + >>> print sample.tree + sample:NXsample + temperature = 40.0 + units = K + +The objects in NeXus groups, which can be NXfields or other NXgroups, can also be assigned and referenced as dictionary items. + +.. code-block:: python + + >>> sample['temperature'] = 40.0 + >>> sample.keys() + ['temperature'] + + +### NXdata Groups + +NXdata groups contain data ready to be plotted. That means that the group should consist of an NXfield containing the data +and one or more NXfields containing the axes. NeXus defines a method of associating axes with the appropriate dimension, +but NeXpy provides a simple constructor that implements this method automatically. This was already demonstrated in the example above, reproduced here: + +.. code-block:: python + + >>> import numpy as np + >>> x = y = np.linspace(0, 2 * np.pi, 101) + >>> X, Y = np.meshgrid(y, x) + >>> z = np.sin(X) * np.sin(Y) + >>> a = NXdata(z, [x, y]) + +The first positional argument is an NXfield or Numpy array containing the data, while the second is a list containing the axes, +again as NXfields or Numpy arrays. In this example, the names of the arrays have not been defined within an NXfield, +so default names were assigned. + +.. code-block:: python + + >>> print a.tree + [data:NXdata](data:NXdata) + axis1 = float64(101) + axis2 = float64(101) + signal = float64(101x101) + @axes = axis1:axis2 + @signal = 1 + +However, names can be assigned explicitly when creating the NXfield through the 'name' attribute. + +.. code-block:: python + + >>> phi = np.linspace(0, 2 * np.pi, 101) + >>> data = np.sin(phi) + >>> a = NXdata(NXfield(data, name='intensity'), (NXfield(phi, name='polar_angle'))) + >>> print a.tree + [data:NXdata](data:NXdata) + intensity = float64(101) + @axes = polar_angle + @signal = 1 + polar_angle = float64(101) + +### Adding NeXus Data to the Tree View + +If you create a NeXus group dynamically in the iPython shell, it can be added to the tree view using the tree's `add` method. + +.. code-block:: python + + >>> a = NXroot() + >>> a.entry = NXentry() + >>> tree.add(a) + +If the group is not an NXroot group, the data will be wrapped automatically in an NXroot group and given a default name +that doesn't conflict with existing tree nodes, e.g., w4. + + +Plotting NeXus Data +------------------- + +Python Shell +------------ + +NXdata, NXmonitor, and NXlog groups all have a `plot` method, which automatically determines what should be plotted. + +.. code-block:: python + + >>> data.plot() + +.. image:: ../extra_files/NeXPy-Simple_plot.png + :align: center + :alt: A simple NeXpy plot + +If the data is one-dimensional, it is possible to overplot more than one data set using 'over=True'. Conventional Matplotlib keywords can be used to change markers and colors. + +.. code-block:: python + + >>> data.plot(log=True) + >>> data.plot(over=True, log=True, color='r') + +GUI Shell +--------- + +NXdata, NXmonitor, and NXlog data can be plotted by right-clicking on the group within the tree. The plot pane contains a toolbar to change axis or signal intensity limits. The slider provides a graphical way of setting minimum and/or maximum values or they can be typed into the text boxes. + +.. image:: ../extra_files/Axis_Limits_Bar.png + :align: center + :width: 600px + :alt: Axis Limits Toolbar + +There are two checkboxes: +- **Lock:** If the maximum and/or minimum values are not set to the limits, then this checkbox locks the difference between the two. This checkbox disables setting of the minimum value. You can step through the z-values with automatic replots by selecting the maximum box and using the keyboard up and down arrows or by clicking the box arrows. +- **Autoscale:** When stepping through the z-values, this checkbox determines whether the plot should change the color scale. + +Manipulating NeXus Data +----------------------- + +Slicing +------- + +NXfield +------- + +A slice of an NXfield can be obtained using the usual Python indexing syntax. + +.. code-block:: python + + >>> x = NXfield(np.linspace(0, 2 * np.pi, 101)) + >>> print x[0:51] + [ 0. 0.06283185 0.12566371 ..., 3.01592895 3.0787608 3.14159265] + +If either of the indices are floats, then the limits are set by the values themselves (assuming the array is monotonic). + +.. code-block:: python + + >>> print x[0.5:1.5] + [ 0.50265482 0.56548668 0.62831853 ..., 1.38230077 1.44513262 1.50796447] + +NXdata +------ + +It is also possible to slice whole NXdata groups. In this case, the slicing works on the multidimensional NXfield, but the full NXdata group is returned with both the signal data and the associated axes limited by the slice parameters. If either of the limits along any one axis is a float, the limits are set by the values of the axis. + +.. code-block:: python + + >>> a = NXdata(np.sin(x), x) + >>> a[1.5:2.5].x + NXfield(name=x, value=[ 1.57079633 1.72787596 1.88495559 ..., 2.19911486 2.35619449]) + +Unless the slice reduces one of the axes to a single item, the rank of the data remains the same. To project data along one of the axes, and so reduce the rank by one, the data can be summed along that axis using the `nxsum()` method. This employs the Numpy array `sum()` method. + + +.. code-block:: python + + >>> x = y = NXfield(np.linspace(0, 2 * np.pi, 41)) + >>> X, Y = np.meshgrid(x, y) + >>> a = NXdata(np.sin(X) * np.sin(Y), (x, y)) + + >>> print a.tree + [data:NXdata](data:NXdata) + axis1 = float64(41) + axis2 = float64(41) + signal = float64(41x41) + @axes = axis1:axis2 + @signal = 1 + + >>> print a.sum(0).tree + [data:NXdata](data:NXdata) + axis2 = float64(41) + signal = float64(41) + @axes = axis2 + @long_name = Integral from 0.0 to 6.28318530718 + @signal = 1 + +It is also possible to slice whole NXdata groups. In this case, the slicing works on the multidimensional NXfield, but the full NXdata group is returned with both the signal data and the associated axes limited by the slice parameters. If either of the limits along any one axis is a float, the limits are set by the values of the axis. + +.. code-block:: python + + >>> a = NXdata(np.sin(x), x) + >>> a[1.5:2.5].x + NXfield(name=x, value=[ 1.57079633 1.72787596 1.88495559 ..., 2.19911486 2.35619449]) + +Unless the slice reduces one of the axes to a single item, the rank of the data remains the same. To project data along one of the axes, and so reduce the rank by one, the data can be summed along that axis using the ``nxsum()`` method. This employs the Numpy array ``sum()`` method. + +.. code-block:: python + + >>> x = y = NXfield(np.linspace(0, 2 * np.pi, 41)) + >>> X, Y = np.meshgrid(x, y) + >>> a = NXdata(np.sin(X) * np.sin(Y), (x, y)) + + >>> print a.tree + [data:NXdata](data:NXdata) + axis1 = float64(41) + axis2 = float64(41) + signal = float64(41x41) + @axes = axis1:axis2 + @signal = 1 + + >>> print a.sum(0).tree + [data:NXdata](data:NXdata) + axis2 = float64(41) + signal = float64(41) + @axes = axis2 + @long_name = Integral from 0.0 to 6.28318530718 + @signal = 1 + +Arithmetic Operations +--------------------- + +NXfield Arithmetic +------------------ + +Arithmetic operations can be applied to NXfield objects in much the same way as scalars or Numpy arrays that they contain. This includes addition, subtraction, multiplication, and division, either with other NXfield objects or to scalar numbers or Numpy arrays. + +.. code-block:: python + + >>> x = NXfield(np.array([1.5, 2.5, 3.5]), name='x') + >>> x + NXfield(name=x, value=[ 1.5 2.5 3.5]) + >>> x + 1 + NXfield(name=x, value=[ 2.5 3.5 4.5]) + >>> 2 * x + NXfield(name=x, value=[ 3. 5. 7.]) + >>> x + x + NXfield(name=x, value=[ 3. 5. 7.]) + >>> x - x + NXfield(name=x, value=[ 0. 0. 0.]) + >>> x / x + NXfield(name=x, value=[ 1. 1. 1.]) + +NXdata +------ + +Similar operations can also be performed on whole NXdata groups. If two NXdata groups are to be added, the rank and dimension sizes of the main signal array must match (although the names could be different). + +.. code-block:: python + + >>> y = NXfield(np.sin(x), name='y') + >>> y + NXfield(name=y, value=[ 0.99749499 0.59847214 -0.35078323]) + >>> a = NXdata(y, x) + >>> print a.tree + [data:NXdata](data:NXdata) + x = [ 1.5 2.5 3.5] + y = [ 0.99749499 0.59847214 -0.35078323] + @axes = x + @signal = 1 + + >>> print (a + 1).tree + [data:NXdata](data:NXdata) + x = [ 1.5 2.5 3.5] + y = [ 1.99749499 1.59847214 0.64921677] + @axes = x + @signal = 1 + + >>> print (2 * a).tree + [data:NXdata](data:NXdata) + x = [ 1.5 2.5 3.5] + y = [ 1.99498997 1.19694429 -0.70156646] + @axes = x + @signal = 1 + + >>> print (a + a).tree + [data:NXdata](data:NXdata) + x = [ 1.5 2.5 3.5] + y = [ 1.99498997 1.19694429 -0.70156646] + @axes = x + @signal = 1 + + >>> print (a - a).tree + [data:NXdata](data:NXdata) + x = [ 1.5 2.5 3.5] + y = [ 0. 0. 0.] + @axes = x + @signal = 1 + + >>> print (a / 2).tree + [data:NXdata](data:NXdata) + x = [ 1.5 2.5 3.5] + y = [ 0.49874749 0.29923607 -0.17539161] + @axes = x + @signal = 1 + +If data errors are included in the NXdata group (with an additional array named 'errors'), then the errors are propagated according to the operand. + +.. code-block:: python + + >>> print a.tree + [data:NXdata](data:NXdata) + errors = [ 0.99874671 0.77360981 0.59226956] + x = [ 1.5 2.5 3.5] + y = [ 0.99749499 0.59847214 0.35078323] + @axes = x + @signal = 1 + + >>> print (a + a).tree + [data:NXdata](data:NXdata) + errors = [ 1.41244114 1.09404949 0.83759564] + x = [ 1.5 2.5 3.5] + y = [ 1.99498997 1.19694429 0.70156646] + @axes = x + @signal = 1 + diff --git a/source/content/NeXus_CIF_Integration.rst b/source/content/NeXus_CIF_Integration.rst index ad495b73..c9f85dbb 100644 --- a/source/content/NeXus_CIF_Integration.rst +++ b/source/content/NeXus_CIF_Integration.rst @@ -2,56 +2,71 @@ NeXus CIF Integration ===================== +NeXus CIF Integration ===================== +At August 22, 2013, some members of the NIAC will meet with representatives of the CIF community and the IUCR in order to discuss a possible merger or collaboration between NeXus and CIF. This wiki page is meant as a forum to discuss the NIAC's position towards this integration. The initial reaction was quite positive. ---- title: NeXus CIF Integration permalink: NeXus_CIF_Integration.html -layout: wiki --- NeXus CIF Integration ===================== At august, -22, 2013 some members of the NIAC will meet with representatives of the -CIF community and the IUCR in order to discuss a possible merger or -collaboration between NeXus and CIF. This wiki page is meant as a forum -to discuss the NIAC's position towards this integration. The initial -reaction was quite positive. Some Issues and Differences -=========================== - NeXus addresses a far greater range of -techniques and instrumentation then CIF does. - NeXus is about -hierarchical data storage and arrays - CIF so far prefers tables and -ASCII. - CIF (or Herbert) are very concerned about getting data out of -files into relational databases. The NeXus position as of now is to -store the necessary information in a NeXus file and have databases -populated by external scanners. Thus NeXus makes no assumptions about -database structures. - Both CIF and NeXus have dictionaries of -documented names. In many cases the dictionaries overlap. - NeXus is -based on HDF-5 and NXDL, CIF on the star ASCII file format and DDL as a -dictionary description language. There are many versions of DDL. - CIF's -ASCII file format is hitting a limit when storing raw data from modern -high speed detectors. Or sometimes even when storing atom positions for -huge protein structures. - Herbert has demonstrated that it is possible -to map CIF into NeXus. There are issues but no real show stoppers. - -DECTRIS is pushing the PX community towards HDF/NeXus through the use of -NeXus as the format for the upcoming EIGER series of detectors Questions -========= - How can CIF and NeXus interoperate and integrate? - Is CIF -ready to expand towards a more general data format? - How are the NeXus -and CIF dictionaries to be integrated? Or are they to be integrated? - -How will the new integrated file format be used? I assume for deposition -of data with IUCR journals. - What exactly is the interest of the CIF -community to collaborate with NeXus? - Which CIF concepts would need to -be included into NeXus to make it work? - How does CIF solve the issue: -we provide for everything - but in most cases really need only 20-30 -data items - This is the problem NeXus solves with application -definitions. The NIAC's Interest =================== - NeXus has always -tried to be inclusive: it is no use having a standard if everyone has an -own one! - Recognition by the IUCR would be a selling point for NeXus -and helpful. - Increased interoperability: Interoperability is the -raison d'etre of NeXus - Ideal world: use CIF, HDF5 and NeXus tools on -all files. To Discuss ========== - Anything to add to the statements -above? - NeXus tries to be inclusive: how far are we prepared to change? -Presumably this can only be answered after the meeting when we can see -more clearly what the merger means. It is also crystal clear that any -changes to NeXus for a CIF merger need proper process: discussion and -voting. ### CIF-NeXus Presentation The draft for the NeXus CIF -presentation can be downloaded here: [CIFNeXus.pdf](pdfs/CIFNexus.pdf -"wikilink"). May be we get a chance to discuss this on the next Telco. -Details of how NeXus and CDF might be mapped are contained on the -[ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") page -Conclusion ---------- 01/2015: A NXmx application definition has been -designed together with COMCIFS. The application definition was tested at -diamond and it works. This NXmx application definition together with a -few changes to NeXus to make it work were ratified at NIAC 2014. +Some Issues and Differences +=========================== + +- NeXus addresses a far greater range of techniques and instrumentation than CIF does. + +- NeXus is about hierarchical data storage and arrays. + +- CIF so far prefers tables and ASCII. + +- CIF (or Herbert) are very concerned about getting data out of files into relational databases. The NeXus position as of now is to store the necessary information in a NeXus file and have databases populated by external scanners. Thus, NeXus makes no assumptions about database structures. + +- Both CIF and NeXus have dictionaries of documented names. In many cases, the dictionaries overlap. + +- NeXus is based on HDF-5 and NXDL, CIF on the star ASCII file format and DDL as a dictionary description language. There are many versions of DDL. + +- CIF's ASCII file format is hitting a limit when storing raw data from modern high-speed detectors. Or sometimes even when storing atom positions for huge protein structures. + +- Herbert has demonstrated that it is possible to map CIF into NeXus. There are issues but no real showstoppers. + +- DECTRIS is pushing the PX community towards HDF/NeXus through the use of NeXus as the format for the upcoming EIGER series of detectors. + +Questions +========= + +- How can CIF and NeXus interoperate and integrate? + +- Is CIF ready to expand towards a more general data format? + +- How are the NeXus and CIF dictionaries to be integrated? Or are they to be integrated? + +- How will the new integrated file format be used? I assume for deposition of data with IUCR journals. + +- What exactly is the interest of the CIF community to collaborate with NeXus? + +- Which CIF concepts would need to be included into NeXus to make it work? + +- How does CIF solve the issue: we provide for everything, but in most cases really need only 20-30 data items? This is the problem NeXus solves with application definitions. + +The NIAC's Interest +=================== + +- NeXus has always tried to be inclusive: it is no use having a standard if everyone has their own one! + +- Recognition by the IUCR would be a selling point for NeXus and helpful. + +- Increased interoperability: Interoperability is the raison d'etre of NeXus. + +- Ideal world: use CIF, HDF5, and NeXus tools on all files. + +To Discuss +========== + +- Anything to add to the statements above? + +- NeXus tries to be inclusive: how far are we prepared to change? Presumably, this can only be answered after the meeting when we can see more clearly what the merger means. It is also crystal clear that any changes to NeXus for a CIF merger need proper process: discussion and voting. + +CIF-NeXus Presentation +---------------------- + +The draft for the NeXus CIF presentation can be downloaded here: [CIFNeXus.pdf](pdfs/CIFNexus.pdf "wikilink"). May be we get a chance to discuss this on the next Telco. Details of how NeXus and CDF might be mapped are contained on the [ConcordanceDiscussion](ConcordanceDiscussion.html "wikilink") page. + +Conclusion +---------- + +01/2015: A NXmx application definition has been designed together with COMCIFS. The application definition was tested at Diamond and it works. This NXmx application definition together with a few changes to NeXus to make it work were ratified at NIAC 2014. diff --git a/source/content/Nexus_41_Release_Notes.rst b/source/content/Nexus_41_Release_Notes.rst index 826be3e2..63e3f7a4 100644 --- a/source/content/Nexus_41_Release_Notes.rst +++ b/source/content/Nexus_41_Release_Notes.rst @@ -3,40 +3,67 @@ Nexus 41 Release Notes ====================== ---- title: Nexus 41 Release Notes permalink: Nexus_41_Release_Notes.html -layout: wiki --- System Requirements ------------------- \**MXML XML -Parsing Library*\* Version 2.2.2 or higher of mxml is required. Earlier +System Requirements +------------------- +\**MXML XML Parsing Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions have a bug and the XML API will not work. This package can be -downloded in [both source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT +downloded in [both source and binary rpm form](http://www.easysw.com/~mike/mxml/software.php) and is also +available as part of [Fedora Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). + +IMPORTANT +--------- + NOTE: Debian also provides the mxml package, but it based on 2.0 and -will not work properly. Building Notes -------------- ### NAG F90/F95 -Compiler The NAG compiler needs the \*\*-mismatch*\* flag to be -specified or else it will not compile NXmodule.f90 This is achieve by -running configure with the \**FCFLAGS*\* environment variable set to -contain the flag e.g. env FCFLAGS="-mismatch" ./configure --with-f90=f95 -### HDF4 on Intel Macs There is a problem with the include file, hdfi.h -(normally in /usr/local/include). See for details of the modifications -necessary to fix it. New Features ------------ - New types NX\\_INT64 -and NX\\_UINT64 to suppport 64 bit integers (only available in HDF5 and -XML) [details](http://trac.nexusformat.org/code/ticket/87). - Python -bindings are now included in the Windows install kit -[details](http://trac.nexusformat.org/code/ticket/86) Changed Features ----------------- Known Issues ------------ Miscellaneous bug fixes ------------------------ The following items are bugs reported in -previous releases and resolved in the 4.1 release. - The Fortran 90 part -of testsuite failed with the Absoft compiler on MacOSX (it passed with -g95 and gfortran (4.2)) [details -here](http://trac.nexusformat.org/code/ticket/68) - NXputattr assumed -NULL termination of NX\\_CHAR attributes, which is usually the case in C -but not true for JAVA. A workaround is to add '\\\\0' manually [bug -report](http://trac.nexusformat.org/code/ticket/83) - pkgconfig issue -[bug report](http://trac.nexusformat.org/code/ticket/84) - Build issue -with MXML-2.3 [bug report](http://trac.nexusformat.org/code/ticket/91) - -XML buffer resizing performance issue [bug -report](http://trac.nexusformat.org/code/ticket/92) - Documentation is -now installed to datadir (/usr/share) [bug -report](http://trac.nexusformat.org/code/ticket/93) Upcoming Features +will not work properly. + +Building Notes +-------------- + +NAG F90/F95 +============ +### Compiler +The NAG compiler needs the **-mismatch** flag to be specified or else it will not compile `NXmodule.f90`. This is achieved by running configure with the **FCFLAGS** environment variable set to contain the flag, e.g.: + +.. code-block:: text + + env FCFLAGS="-mismatch" ./configure --with-f90=f95 + +HDF4 on Intel Macs +================== + +There is a problem with the include file, `hdfi.h` (normally in `/usr/local/include`). See for details of the modifications necessary to fix it. + + +New Features +------------ + +- New types NX\\_INT64 and NX\\_UINT64 to suppport 64 bit integers (only available in HDF5 and XML) [details](http://trac.nexusformat.org/code/ticket/87). + +- Python bindings are now included in the Windows install kit [details](http://trac.nexusformat.org/code/ticket/86) + +Changed Features +---------------- + +Known Issues +------------ + +Miscellaneous bug fixes +----------------------- + +The following items are bugs reported in +previous releases and resolved in the 4.1 release. + +- The Fortran 90 part of testsuite failed with the Absoft compiler on MacOSX (it passed with g95 and gfortran (4.2)) [details here](http://trac.nexusformat.org/code/ticket/68) + +- NXputattr assumed NULL termination of NX\\_CHAR attributes, which is usually the case in C but not true for JAVA. A workaround is to add '\\\\0' manually [bug report](http://trac.nexusformat.org/code/ticket/83) + +- pkgconfig issue [bug report](http://trac.nexusformat.org/code/ticket/84) + +- Build issuewith MXML-2.3 [bug report](http://trac.nexusformat.org/code/ticket/91) + +- XML buffer resizing performance issue [bug report](http://trac.nexusformat.org/code/ticket/92) + +- Documentation is now installed to datadir (/usr/share) [bug report](http://trac.nexusformat.org/code/ticket/93) + +Upcoming Features ----------------- diff --git a/source/content/Nexus_42_Release_Notes.rst b/source/content/Nexus_42_Release_Notes.rst index 3502710b..71818704 100644 --- a/source/content/Nexus_42_Release_Notes.rst +++ b/source/content/Nexus_42_Release_Notes.rst @@ -3,57 +3,103 @@ Nexus 42 Release Notes ====================== ---- title: Nexus 42 Release Notes permalink: Nexus_42_Release_Notes.html -layout: wiki --- 4.2.1 ----- The following new featues have been added: -- NXbrowse now has readline support (i.e. previous command line recall -and TAB completion of entry names) - new API functions NXgetpath() and -NXgetversion() added - NXgetnextentry() now uses less stack space 4.2.0 ------ System Requirements ------------------- \**MXML XML Parsing -Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions +4.2.1 +----- +The following new featues have been added: + +- NXbrowse now has readline support (i.e. previous command line recall and TAB completion of entry names) + +- new API functions NXgetpath() and NXgetversion() added + +- NXgetnextentry() now uses less stack space 4.2.0 + +System Requirements +------------------- + +\**MXML XML Parsing Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions have a bug and the XML API will not work. This package can be downloded -in [both source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and +in [both source and binary rpm form](http://www.easysw.com/~mike/mxml/software.php) and is also +available as part of [Fedora Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). + +IMPORTANT NOTE: Debian also provides the mxml package, but it based on 2.0 and will not work properly. \**Python Interface*\* You will need both the numpy and ctypes modules to be available. These are provided in both the -Fedora and EPEL repositories. Building Notes -------------- ### NAG -F90/F95 Compiler The NAG compiler needs the \*\*-mismatch*\* flag to be +Fedora and EPEL repositories. + +Building Notes +-------------- + +NAG F90/F95 Compiler +==================== + +The NAG compiler needs the \*\*-mismatch*\* flag to be specified or else it will not compile NXmodule.f90 This is achieve by running configure with the \**FCFLAGS*\* environment variable set to contain the flag e.g. env FCFLAGS="-mismatch" ./configure --with-f90=f95 ### HDF4 on Intel Macs There is a problem with the include file, hdfi.h (normally in /usr/local/include). See for details of the modifications -necessary to fix it. New Features ------------ ### C++ Interface +necessary to fix it. + +New Features +------------ + +C++ Interface +============= + (provided by [Freddie Akeroyd](User%3AFreddie_Akeroyd.html "wikilink") and [Peter Peterson](User%3APeter_Peterson.html "wikilink")) See the -[doxygen -documentation](http://download.nexusformat.org/doxygen/html/classNeXus_1_1File.html) -and [NeXus API test -program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx). -A C++ Stream Like interface is also supported - the idea is to provide -an IOSteam like interface and allow you to type // create an entry and a -data item File nf(fname, NXACC_CREATE); nf << Group("entry1", "NXentry") -<< Data("dat1", w, "int_attr", 3); nf.close(); File nf1(fname, -NXACC_RDWR); // add a double_attr to an existing setup nf1 >> -Group("entry1", "NXentry") >> Data("dat1") << Attr("double_attr", 6.0); -nf1.close(); // read back data items File nf2(fname, NXACC_READ); nf2 >> -Group("entry1", "NXentry") >> Data("dat1", w1, "int_attr", i, -"double_attr", d); // alternative way to read d1 nf2 >> Data("dat1") >> -Attr("double_attr", d1); See also the [NeXus API test -program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx) -### IDL Interface (provided by Jussi Kauppila and [Mark -Koennecke](User%3AMark_Koennecke.html "wikilink")) There is a new +[doxygen documentation](http://download.nexusformat.org/doxygen/html/classNeXus_1_1File.html) +and [NeXus API test program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx). +A C++ Stream Like interface is also supported + +- the idea is to provide an IOSteam like interface and allow you to type // create an entry and a data item File nf(fname, NXACC_CREATE); nf << Group("entry1", "NXentry") + +.. code-block:: cpp + + << Data("dat1", w, "int_attr", 3); nf.close(); + File nf1(fname, NXACC_RDWR); // add a double_attr to an existing setup + nf1 >> + + Group("entry1", "NXentry") >> Data("dat1") << Attr("double_attr", 6.0); + nf1.close(); + + // read back data items + File nf2(fname, NXACC_READ); nf2 >> + Group("entry1", "NXentry") >> Data("dat1", w1, "int_attr", i, "double_attr", d); + + // alternative way to read d1 + nf2 >> Data("dat1") >> Attr("double_attr", d1); + + +See also the [NeXus API test program](http://svn.nexusformat.org/code/branches/4.2/test/napi_test_cpp.cxx) + +IDL Interface +============= + +(provided by Jussi Kauppila and [Mark Koennecke](User%3AMark_Koennecke.html "wikilink")) There is a new interface to RSI's Interactive Data Language, IDL for NeXus. This interface has to be considered beta. Nevertheless it is working most of -the time. Known issues include: - Compressed reading and writing do not -work for HDF-4 files, probably because of a library version conflict on -libz. ### Python Interface There is now, thanks to [Paul -Kienzle](User%3APaul_Kienzle.html "wikilink"), a supported interface for +the time. Known issues include: + +- Compressed reading and writing do not work for HDF-4 files, probably because of a library version conflict on libz. + +Python Interface +================ + +There is now, thanks to [Paul Kienzle](User%3APaul_Kienzle.html "wikilink"), a supported interface for the python scripting language. Arrays are stored in numpy arrays and -thus allow for efficient data manipulations. Changed Features ----------------- Known Issues ------------ See the comments on the IDL -interface. Miscellaneous bug fixes ----------------------- The following -items are bugs reported in previous releases and resolved in the 4.2 -release. Upcoming Features ----------------- +thus allow for efficient data manipulations. + +Changed Features +---------------- + +Known Issues +------------ +See the comments on the IDL interface. + +Miscellaneous bug fixes +----------------------- +The following items are bugs reported in previous releases and resolved in the 4.2 release. + +Upcoming Features +----------------- diff --git a/source/content/Nexus_43_Release_Notes.rst b/source/content/Nexus_43_Release_Notes.rst index 78cd258d..dd5b968d 100644 --- a/source/content/Nexus_43_Release_Notes.rst +++ b/source/content/Nexus_43_Release_Notes.rst @@ -3,55 +3,64 @@ Nexus 43 Release Notes ====================== ---- title: Nexus 43 Release Notes permalink: Nexus_43_Release_Notes.html -layout: wiki --- 4.3.0rc1 -------- Dowload the release candidate from -the [NeXus download -page](http://download.nexusformat.org/kits/nx43testing.shtml). Issues -reported with this release [can be found -here](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority) +4.3.0rc1 +-------- + +Dowload the release candidate from the [NeXus download page](http://download.nexusformat.org/kits/nx43testing.shtml). Issues +reported with this release [can be found here](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.3.0-rc1&order=priority) and results to testing on [NeXus\\_43\\_Testing](NeXus_43_Testing.html -"wikilink") New Features ------------ - Links to external files via the -NeXus external linking mechanism have now been enhanced to take -advantage of native HDF5 external linking. Previously a nexus external -file link was only visible to NeXus aware programs, and this will -continue to be the case for XML and HDF4 based files. In the case of -files created with the HDF5 underlying format, external file links will -now be visible to any HDF5 (1.8.\\\*) aware program. - HDF5 based files -can now have multiple unlimited dimensions (previously only one was -allowed) - New API functions have been added to handle very large -arrays. Most original NeXus functions had array dimensions of type int -which restricted the maximum size of an array. New functions with a 64 -suffix have been added which use int64\\_t rather than int - existing -functions continue to work as normal, so there is no need to update code -unless you want to make use of the larger dimensions. - A new python -tree API has been added (note: need to add link for more finformation) - -A GUI java based NXvalidate program has now been added - The NeXus API -now ensures thread safety, even if the underlying HDF/XML library is not -built that way. The current approach would not allow any concurrency in -writing, but HDF5 does not support this anyway at the moment. - A new -function NXreopen() has been added which will create additional NXhandle -objects from an existing NXhandle, allowing you to have several NXhandle -structures referring to the same file. This can give a large performance -gain if you need to write to different parts of a file as separate -threads can be created with their own NXhandles, thus removing the need -to open and close data groups that can lead to unnecessary flushing to -disk etc. - New application NXtraverse added - TODO: other applications -- anything of note changed in NXtranslate, NXsummary etc? Changed -Features ---------------- - The HDF5 1.6.\\\* series libraries are no -longer supported - NeXus now requires 1.8.\\\* or higher. The 1.6.\\\* -series is now very old and moving to 1.8.\\\* has allowed us to make use -of new and improved features, such as native external file linking (see -above) System Requirements ------------------- \**MXML XML Parsing -Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions -have a bug and the XML API will not work. This package can be downloded -in [both source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and +"wikilink") + +New Features +------------ + +- Links to external files via the NeXus external linking mechanism have now been enhanced to take advantage of native HDF5 external linking. Previously a nexus external file link was only visible to NeXus aware programs, and this will continue to be the case for XML and HDF4 based files. In the case of files created with the HDF5 underlying format, external file links will now be visible to any HDF5 (1.8.\\\*) aware program. + +- HDF5 based files can now have multiple unlimited dimensions (previously only one was allowed) + +- New API functions have been added to handle very large arrays. Most original NeXus functions had array dimensions of type int which restricted the maximum size of an array. New functions with a 64 suffix have been added which use int64\\_t rather than int + +- existing functions continue to work as normal, so there is no need to update code unless you want to make use of the larger dimensions. + +- A new python tree API has been added (note: need to add link for more finformation) + +- A GUI java based NXvalidate program has now been added - The NeXus API now ensures thread safety, even if the underlying HDF/XML library is not built that way. The current approach would not allow any concurrency in writing, but HDF5 does not support this anyway at the moment. + +- A new function NXreopen() has been added which will create additional NXhandle objects from an existing NXhandle, allowing you to have several NXhandle structures referring to the same file. This can give a large performance gain if you need to write to different parts of a file as separate threads can be created with their own NXhandles, thus removing the need to open and close data groups that can lead to unnecessary flushing to disk etc. - New application NXtraverse added + +- TODO: other applications + +- anything of note changed in NXtranslate, NXsummary etc? + +Changed Features +---------------- + +- The HDF5 1.6.\\\* series libraries are no longer supported + +- NeXus now requires 1.8.\\\* or higher. The 1.6.\\\* series is now very old and moving to 1.8.\\\* has allowed us to make use of new and improved features, such as native external file linking (see above) + +System Requirements +------------------- + +\**MXML XML Parsing Library*\* Version 2.2.2 or higher of mxml is required. Earlier versions have a bug and the XML API will not work. This package can be downloded +in [both source and binary rpm form](http://www.easysw.com/~mike/mxml/software.php) and is also available as part of [Fedora +Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). + +IMPORTANT NOTE: Debian also provides the mxml package, but it based on 2.0 and will not work properly. \**Python Interface*\* You will need both the numpy and ctypes modules to be available. These are provided in both the Fedora and EPEL repositories. \**HDF5 Version*\* Only the HDF5-1.8.\\\* -series (and above) is now supported. Building Notes -------------- Known -Issues ------------ Miscellaneous bug fixes ----------------------- -Upcoming Features ----------------- +series (and above) is now supported. + +Building Notes +-------------- + +Known Issues +------------ + +Miscellaneous bug fixes +----------------------- + +Upcoming Features +----------------- + diff --git a/source/content/Nexus_4_Release_Notes.rst b/source/content/Nexus_4_Release_Notes.rst index 196fe04a..875407de 100644 --- a/source/content/Nexus_4_Release_Notes.rst +++ b/source/content/Nexus_4_Release_Notes.rst @@ -2,56 +2,85 @@ Nexus 4 Release Notes ===================== +System Requirements +------------------- +**MXML XML Parsing Library** ---- title: Nexus 4 Release Notes permalink: Nexus_4_Release_Notes.html -layout: wiki --- System Requirements ------------------- \**MXML XML -Parsing Library*\* Version 2.2.2 of mxml is required. Earlier versions -have a bug and the XML API will not work. This package can be downloded -in [both source and binary rpm -form](http://www.easysw.com/~mike/mxml/software.php) and is also -available as part of [Fedora -Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). IMPORTANT -NOTE: Debian also provides the mxml package, but it based on 2.0 and -will not work properly. Building Notes -------------- ### NAG F90/F95 -Compiler The NAG compiler needs the \*\*-mismatch*\* flag to be -specified or else it will not compile NXmodule.f90 This is achieve by -running configure with the \**FCFLAGS*\* environment variable set to -contain the flag e.g. env FCFLAGS="-mismatch" ./configure --with-f90=f95 -New Features ------------ The following items are features added to the -NeXus API to provide new functionality to the core library or to assist -in the build process. - Extended XML-API to handle unlimited dimensions -- Add building of Doxygen documentation - Add support for two -dimensional character arrays (HDF4 and HDF5 only) - Added group -attribute support to HDF4 (2006/05/02). Requires HDF4 version (???) - -Add NXmakenamedlink (2007/01/09) to all three file formats (external -linking) - Add NXprintlink - Improved link testing in test suite - API -can now read generic HDF5 files, such as those produced by matlab - Add -facility to enable/disable error reporting - New NXsummary tool for -summarising contentes of a NeXus file - Fortran 90 API now works with -gfortran 4.2 and above as well as with G95 - PYTHON and TCL bindings -provided via a [SWIG interface](http://www.swig.org/) - Additional -NXtranslate translators: SPEC, ESRF-EDF Changed Features ----------------- The following aspects of the API have changed in a -potentially non-backward compatible way - The JAVA API now uses -org.nexusformat rather than gov.anl.neutron.nexus Known Issues ------------- The main problems are summarised here - for a complete list -see [all reported 4.0.0 -issues](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority) -- The Fortran 90 part of testsuite fails with the Absoft compiler on -MacOSX (it passes with g95 and gfortran (4.2)) [details -here](http://trac.nexusformat.org/code/ticket/68) - NXputattr assumes -NULL termination of NX\\_CHAR attributes, which is usually the case in C -but not true for JAVA. A workaround is to add '\\\\0' manually. This -error has been fixed in the code and will be available in the next -release. More information is available in the [bug -report](http://trac.nexusformat.org/code/ticket/83) Miscellaneous bug -fixes ----------------------- The following items are bugs reported in -the 3.x releases and resolved for the 4.0 release. - Leading and -trailing whitespace is stripped from char data on a read; this can be -disabled by passing the NXACC\\_NOSTRIP option to NXopen - Fix problems -with MXML (what problems?) - Improve test procedures when not all -libraries are present - Correct sourcepath for javadoc - Updated -makefiles for swig bindings (python, tcl) Upcoming Features ------------------ Work on these features is still in progress. They are -expected to be part of the NeXus 4.1 release. - Add skeletal utility -functions (NXU) to API (2005/04/26) +Version 2.2.2 of mxml is required. Earlier versions have a bug and the XML API will not work. This package can be downloaded in [both source and binary rpm form](http://www.easysw.com/~mike/mxml/software.php) and is also available as part of [Fedora Extras](http://fedoraproject.org/wiki/Extras/UsingExtras). + +IMPORTANT NOTE: Debian also provides the mxml package, but it is based on 2.0 and will not work properly. + +Building Notes +-------------- +NAG F90/F95 Compiler +==================== +The NAG compiler needs the **-mismatch** flag to be specified or else it will not compile `NXmodule.f90`. This is achieved by running configure with the **FCFLAGS** environment variable set to contain the flag, e.g.: + +.. code-block:: text + + env FCFLAGS="-mismatch" ./configure --with-f90=f95 + + +New Features +------------ +The following items are features added to the NeXus API to provide new functionality to the core library or to assist in the build process: + +- Extended XML-API to handle unlimited dimensions + +- Add building of Doxygen documentation + +- Add support for two-dimensional character arrays (HDF4 and HDF5 only) + +- Added group attribute support to HDF4 (2006/05/02). Requires HDF4 version (???) + +- Add `NXmakenamedlink` (2007/01/09) to all three file formats (external linking) + +- Add `NXprintlink` + +- Improved link testing in the test suite + +- API can now read generic HDF5 files, such as those produced by Matlab + +- Add facility to enable/disable error reporting + +- New `NXsummary` tool for summarizing contents of a NeXus file + +- Fortran 90 API now works with gfortran 4.2 and above as well as with G95 + +- PYTHON and TCL bindings provided via a [SWIG interface](http://www.swig.org/) + +- Additional `NXtranslate` translators: SPEC, ESRF-EDF + +Changed Features +---------------- +The following aspects of the API have changed in a potentially non-backward compatible way: + +- The JAVA API now uses `org.nexusformat` rather than `gov.anl.neutron.nexus` + +Known Issues +------------ +The main problems are summarized here - for a complete list see [all reported 4.0.0 issues](http://trac.nexusformat.org/code/query?status=new&status=assigned&status=reopened&status=closed&version=4.0.0&order=priority): + +- The Fortran 90 part of the test suite fails with the Absoft compiler on MacOSX (it passes with g95 and gfortran (4.2)) [details here](http://trac.nexusformat.org/code/ticket/68) + +- `NXputattr` assumes NULL termination of `NX_CHAR` attributes, which is usually the case in C but not true for JAVA. A workaround is to add '\\0' manually. This error has been fixed in the code and will be available in the next release. More information is available in the [bug report](http://trac.nexusformat.org/code/ticket/83) + +Miscellaneous bug fixes +------------------------ +The following items are bugs reported in the 3.x releases and resolved for the 4.0 release: + +- Leading and trailing whitespace is stripped from char data on a read; this can be disabled by passing the `NXACC_NOSTRIP` option to `NXopen` + +- Fix problems with MXML (what problems?) + +- Improve test procedures when not all libraries are present + +- Correct sourcepath for javadoc + +- Updated makefiles for SWIG bindings (Python, TCL) + +Upcoming Features +----------------- +Work on these features is still in progress. They are expected to be part of the NeXus 4.1 release: + +- Add skeletal utility functions (NXU) to the API (2005/04/26) diff --git a/source/content/TOFRaw.rst b/source/content/TOFRaw.rst index e02ee750..52724401 100644 --- a/source/content/TOFRaw.rst +++ b/source/content/TOFRaw.rst @@ -68,20 +68,20 @@ TOFRaw .. container:: highlight - NXroot - NXdata - NXdetector - NXentry - NXgeometry - NXinstrument - NXlog - NXmoderator - NXmonitor - NXsample - NXuser - NXevent_data - NXsource - NXdetector_group (proposed) + - NXroot + - NXdata + - NXdetector + - NXentry + - NXgeometry + - NXinstrument + - NXlog + - NXmoderator + - NXmonitor + - NXsample + - NXuser + - NXevent_data + - NXsource + - NXdetector_group (proposed) Some of these classes, such as NXgeometry, are taken directly from what was ratified by the `NIAC <../niac/niac.html>`__. diff --git a/source/content/content.rst b/source/content/content.rst index c835f754..f83bec3d 100644 --- a/source/content/content.rst +++ b/source/content/content.rst @@ -30,7 +30,6 @@ Content GenericScan Group_Attributes How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard - index IndirectDiscuss Indirect_Time-of-Flight_and_Coordinates Instruments diff --git a/source/content/index.rst b/source/content/index.rst deleted file mode 100644 index 2de46e1e..00000000 --- a/source/content/index.rst +++ /dev/null @@ -1,41 +0,0 @@ -===== -index -===== - - ---- title: About the NeXus Data Format permalink: index.html layout: -page --- NeXus is a common data format for neutron, x-ray, and muon -science. It is being developed as an international standard by -scientists and programmers representing major scientific facilities in -order to facilitate greater cooperation in the analysis and -visualization of neutron, x-ray, and muon data. ## Documentation: \* -Most recent publication to cite: \*J. Appl. Cryst.\* (2015). \**48*\*, -301-305 -[doi:10.1107/S1600576714027575](https://doi.org/10.1107/S1600576714027575) -\* [User Manual](https://manual.nexusformat.org/user_manual.html): \* -[Introduction](https://manual.nexusformat.org/introduction.html) to the -concepts behind the NeXus data format \* -[Design](https://manual.nexusformat.org/design.html): The hierarchical -design of NeXus files \* [NeXus Class -Definitions](https://manual.nexusformat.org/classes/index.html): -description of each NXDL specification \* [base -classes](https://manual.nexusformat.org/classes/base_classes/index.html): -components that might be used in any NeXus data file \* [application -definitions](https://manual.nexusformat.org/classes/applications/index.html): -layout specifications for a specific purpose \* [contributed -definitions](https://manual.nexusformat.org/classes/contributed_definitions/index.html): -propositions from the community \* -[Utilities](https://manual.nexusformat.org/utilities.html): Software -applications that browse, plot, and analyze NeXus data \* -[FAQ](https://manual.nexusformat.org/faq.html): Commonly asked questions -about NeXus \* [Facilities](Facilities.html "wikilink") using NeXus ## -Discussion and Development: \* Next Meetings: [Autumn -NIAC2024](NIAC2024.html) \* Most recent meetings: [Code Camp -2023](CodeCampJune2023.html), [Autumn NIAC2022](NIAC2022.html) \* -[Teleconferences](Teleconferences.html "wikilink") \* [Current Active -Projects](ActiveProjects.html "wikilink") \* [NeXus International -Advisory Committee](NIAC.html "wikilink") \* [Bug / Issue -Reporting](IssueReporting.html "wikilink") \* [Mailing -Lists](https://manual.nexusformat.org/mailinglist.html) \* [Show and -Tell](https://indico.desy.de/category/1080/) - Series of meetings, each -dedicated to a specific NeXus adoption topic diff --git a/source/index.rst b/source/index.rst index 63995cef..9ad81a2c 100644 --- a/source/index.rst +++ b/source/index.rst @@ -3,7 +3,7 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -.. image:: ../common/NeXus_Logo.png +.. image:: ../common/NeXus_Logo_dark_10000.png :width: 400 :alt: Alternative text From 70fb48e7b5a67957b782bd1b927e5f6c32db0dfd Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Thu, 30 Jan 2025 12:33:23 -0600 Subject: [PATCH 13/16] renamed content directory to general_content to avoid conflicts with prev Vagrant repo --- source/codecamps/CodeCamp2014.rst | 4 ++-- source/facilities/facilities.rst | 12 ++++++------ source/faq/faq.rst | 2 +- .../2014_How_to_find_default_data.rst | 0 .../2014_axes_and_uncertainties.rst | 0 .../Archive_Definition.rst | 0 .../Associating_Axes_with_Data.rst | 0 .../ConcordanceDiscussion.rst | 0 .../Connecting_NXdata_to_NXdetector.rst | 0 .../Containers_and_Inheritance.rst | 0 source/{content => general_content}/DLSraw.rst | 0 .../Design_Issues.rst | 0 .../Detector_Geometry.rst | 0 .../{content => general_content}/Download.rst | 0 .../Extension_of_NeXus_Coordinate_Systems.rst | 0 .../File_id_attribute_for_Nexus_files.rst | 0 .../GenericScan.rst | 0 .../Group_Attributes.rst | 0 ...future_extensions_of_the_Nexus_standard.rst | 0 .../IndirectDiscuss.rst | 0 ...Indirect_Time-of-Flight_and_Coordinates.rst | 0 .../Instruments.rst | 0 .../IssueReporting.rst | 0 .../{content => general_content}/Japinotes.rst | 0 .../{content => general_content}/Java_API.rst | 0 .../{content => general_content}/Jnexustut.rst | 0 .../Latest_News.rst | 0 .../Linking_External_Files.rst | 0 .../Metaformat.rst | 0 .../{content => general_content}/MonoXPSD.rst | 0 .../MonoXSingle.rst | 0 ...ic_Neutron_and_X-ray_Powder_Diffraction.rst | 0 ...romatic_Neutron_and_X-ray_Reflectometry.rst | 0 ...and_X-ray_Single_Crystal_Diffractometer.rst | 0 .../Multi_Method_Instruments.rst | 0 .../Muon_Time_Differential.rst | 0 .../NAPI_Routines.rst | 0 .../NAPI_Utility_Routines.rst | 0 .../NXaperture_and_Slits.rst | 0 .../NXbrowse.f90.rst | 0 .../{content => general_content}/NXbrowse.rst | 0 .../NXdetector_2012_10.rst | 0 .../NXdetector_documentation.rst | 0 source/{content => general_content}/NXdir.rst | 0 ..._and_NXshape_-_documentation_and_review.rst | 0 .../NXlrcs.f90.rst | 0 .../NXmeasurement.rst | 0 .../NXmonoref-NIAC2006.rst | 0 .../NXmonoref_example-NIAC2006.rst | 0 .../NXmonotas-NIAC2006.rst | 0 .../NXmonotas_example-NIAC2006.rst | 0 .../NXnet_Proposal.rst | 0 .../NXtofnref-NIAC2006.rst | 0 .../NXtranslate.rst | 0 source/{content => general_content}/NeXpy.rst | 0 .../NeXus_CIF_Integration.rst | 0 .../Nexus_41_Release_Notes.rst | 0 .../Nexus_42_Release_Notes.rst | 0 .../Nexus_43_Release_Notes.rst | 0 .../Nexus_4_Release_Notes.rst | 0 .../{content => general_content}/OO-NeXus.rst | 0 .../Object_Oriented_Interface.rst | 0 .../Objects_or_Interfaces.rst | 0 .../Proposal_NeXus_Coordinates.rst | 0 .../Proposal_NeXus_Errors.rst | 0 .../Proposal_to_Simplify_Nexus.rst | 0 .../ReflectDiscuss.rst | 0 source/{content => general_content}/SAS.rst | 0 .../Scaled_Data.rst | 0 source/{content => general_content}/Scans.rst | 0 .../Storing_Event_Data.rst | 0 source/{content => general_content}/TOFRaw.rst | 0 .../TOFRawScan.rst | 0 .../Thumbnails_for_Nexus_files.rst | 0 ...me-of-Flight_Neutron_Powder_Diffraction.rst | 0 ...pdate_for_NXflou_application_definition.rst | 0 .../{content => general_content}/Utilities.rst | 0 .../Workshop_PSI_2010.rst | 0 source/{content => general_content}/XESraw.rst | 0 .../{content => general_content}/content.rst | 0 source/index.rst | 2 +- source/niac/NIAC2006ILL.rst | 6 +++--- source/niac/NIAC2006LBL.rst | 18 +++++++++--------- source/niac/NIAC2006LBL_RoadMap.rst | 14 +++++++------- source/niac/NIAC2006_Scanning_Group.rst | 6 +++--- source/niac/NIAC2006_TOF_Group.rst | 8 ++++---- source/niac/NIAC2007.rst | 2 +- source/niac/NIAC2007_Minutes.rst | 6 +++--- source/niac/NIAC2008.rst | 2 +- source/niac/NIAC2014_Meeting.rst | 10 +++++----- source/teleconferences/Telco_20160412.rst | 2 +- 91 files changed, 47 insertions(+), 47 deletions(-) rename source/{content => general_content}/2014_How_to_find_default_data.rst (100%) rename source/{content => general_content}/2014_axes_and_uncertainties.rst (100%) rename source/{content => general_content}/Archive_Definition.rst (100%) rename source/{content => general_content}/Associating_Axes_with_Data.rst (100%) rename source/{content => general_content}/ConcordanceDiscussion.rst (100%) rename source/{content => general_content}/Connecting_NXdata_to_NXdetector.rst (100%) rename source/{content => general_content}/Containers_and_Inheritance.rst (100%) rename source/{content => general_content}/DLSraw.rst (100%) rename source/{content => general_content}/Design_Issues.rst (100%) rename source/{content => general_content}/Detector_Geometry.rst (100%) rename source/{content => general_content}/Download.rst (100%) rename source/{content => general_content}/Extension_of_NeXus_Coordinate_Systems.rst (100%) rename source/{content => general_content}/File_id_attribute_for_Nexus_files.rst (100%) rename source/{content => general_content}/GenericScan.rst (100%) rename source/{content => general_content}/Group_Attributes.rst (100%) rename source/{content => general_content}/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst (100%) rename source/{content => general_content}/IndirectDiscuss.rst (100%) rename source/{content => general_content}/Indirect_Time-of-Flight_and_Coordinates.rst (100%) rename source/{content => general_content}/Instruments.rst (100%) rename source/{content => general_content}/IssueReporting.rst (100%) rename source/{content => general_content}/Japinotes.rst (100%) rename source/{content => general_content}/Java_API.rst (100%) rename source/{content => general_content}/Jnexustut.rst (100%) rename source/{content => general_content}/Latest_News.rst (100%) rename source/{content => general_content}/Linking_External_Files.rst (100%) rename source/{content => general_content}/Metaformat.rst (100%) rename source/{content => general_content}/MonoXPSD.rst (100%) rename source/{content => general_content}/MonoXSingle.rst (100%) rename source/{content => general_content}/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst (100%) rename source/{content => general_content}/Monochromatic_Neutron_and_X-ray_Reflectometry.rst (100%) rename source/{content => general_content}/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst (100%) rename source/{content => general_content}/Multi_Method_Instruments.rst (100%) rename source/{content => general_content}/Muon_Time_Differential.rst (100%) rename source/{content => general_content}/NAPI_Routines.rst (100%) rename source/{content => general_content}/NAPI_Utility_Routines.rst (100%) rename source/{content => general_content}/NXaperture_and_Slits.rst (100%) rename source/{content => general_content}/NXbrowse.f90.rst (100%) rename source/{content => general_content}/NXbrowse.rst (100%) rename source/{content => general_content}/NXdetector_2012_10.rst (100%) rename source/{content => general_content}/NXdetector_documentation.rst (100%) rename source/{content => general_content}/NXdir.rst (100%) rename source/{content => general_content}/NXgeometry_and_NXshape_-_documentation_and_review.rst (100%) rename source/{content => general_content}/NXlrcs.f90.rst (100%) rename source/{content => general_content}/NXmeasurement.rst (100%) rename source/{content => general_content}/NXmonoref-NIAC2006.rst (100%) rename source/{content => general_content}/NXmonoref_example-NIAC2006.rst (100%) rename source/{content => general_content}/NXmonotas-NIAC2006.rst (100%) rename source/{content => general_content}/NXmonotas_example-NIAC2006.rst (100%) rename source/{content => general_content}/NXnet_Proposal.rst (100%) rename source/{content => general_content}/NXtofnref-NIAC2006.rst (100%) rename source/{content => general_content}/NXtranslate.rst (100%) rename source/{content => general_content}/NeXpy.rst (100%) rename source/{content => general_content}/NeXus_CIF_Integration.rst (100%) rename source/{content => general_content}/Nexus_41_Release_Notes.rst (100%) rename source/{content => general_content}/Nexus_42_Release_Notes.rst (100%) rename source/{content => general_content}/Nexus_43_Release_Notes.rst (100%) rename source/{content => general_content}/Nexus_4_Release_Notes.rst (100%) rename source/{content => general_content}/OO-NeXus.rst (100%) rename source/{content => general_content}/Object_Oriented_Interface.rst (100%) rename source/{content => general_content}/Objects_or_Interfaces.rst (100%) rename source/{content => general_content}/Proposal_NeXus_Coordinates.rst (100%) rename source/{content => general_content}/Proposal_NeXus_Errors.rst (100%) rename source/{content => general_content}/Proposal_to_Simplify_Nexus.rst (100%) rename source/{content => general_content}/ReflectDiscuss.rst (100%) rename source/{content => general_content}/SAS.rst (100%) rename source/{content => general_content}/Scaled_Data.rst (100%) rename source/{content => general_content}/Scans.rst (100%) rename source/{content => general_content}/Storing_Event_Data.rst (100%) rename source/{content => general_content}/TOFRaw.rst (100%) rename source/{content => general_content}/TOFRawScan.rst (100%) rename source/{content => general_content}/Thumbnails_for_Nexus_files.rst (100%) rename source/{content => general_content}/Time-of-Flight_Neutron_Powder_Diffraction.rst (100%) rename source/{content => general_content}/Update_for_NXflou_application_definition.rst (100%) rename source/{content => general_content}/Utilities.rst (100%) rename source/{content => general_content}/Workshop_PSI_2010.rst (100%) rename source/{content => general_content}/XESraw.rst (100%) rename source/{content => general_content}/content.rst (100%) diff --git a/source/codecamps/CodeCamp2014.rst b/source/codecamps/CodeCamp2014.rst index d6f987d0..b4317a83 100644 --- a/source/codecamps/CodeCamp2014.rst +++ b/source/codecamps/CodeCamp2014.rst @@ -54,10 +54,10 @@ NIAC2014 CodeCamp implement difference in rules between base classes and application definitions - - Discuss `NeXus interfaces <../content/Objects_or_Interfaces.html>`__ + - Discuss `NeXus interfaces <../general_content/Objects_or_Interfaces.html>`__ - `How to avoid name clashes during future extensions of the Nexus - standard <../content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html>`__ + standard <../general_content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.html>`__ - Optional contents in application definitions? - Discuss lightweight tags versus application definitions - Rules for multi file NeXus files diff --git a/source/facilities/facilities.rst b/source/facilities/facilities.rst index 56ffe86a..35364adc 100644 --- a/source/facilities/facilities.rst +++ b/source/facilities/facilities.rst @@ -24,10 +24,10 @@ Facilities producing and using NeXus files on its `muon spectrometers `__ for many years now (see - `Muon_Time_Differential <../content/Muon_Time_Differential.html>`__ + `Muon_Time_Differential <../general_content/Muon_Time_Differential.html>`__ definition). The current definition is in the process of being updated to allow it to store more complex experiments and also to - make it more similar to the `TOFRaw <../content/TOFRaw.html>`__ definition + make it more similar to the `TOFRaw <../general_content/TOFRaw.html>`__ definition used on the ISIS neutron instruments. .. rubric:: X-ray Facilities @@ -97,11 +97,11 @@ Facilities **ISIS Neutron Facility, STFC Rutherford Appleton Laboratory, UK**: Instruments on the `ISIS second target station `__ are now generating NeXus - files as per the `TOFRaw <../content/TOFRaw.html>`__ definition in parallel + files as per the `TOFRaw <../general_content/TOFRaw.html>`__ definition in parallel with old ISIS RAW format files. Currently most data analysis is carried out using the ISIS RAW files, but the new `Mantid data analysis framework `__ supports - `TOFRaw <../content/TOFRaw.html>`__ NeXus files and is being increasingly + `TOFRaw <../general_content/TOFRaw.html>`__ NeXus files and is being increasingly used. The long term goal is to entirely replace the old ISIS RAW file format on both the first and second target stations with NeXus files; the rate determining step for this is the updating of @@ -111,7 +111,7 @@ Facilities Laboratory `__\ **, USA**: The Lujan Center is generating NeXus files on all instruments. We are in the process of making the files consistent with the emerging - standards, especially `TOFRaw <../content/TOFRaw.html>`__. The facility hosts + standards, especially `TOFRaw <../general_content/TOFRaw.html>`__. The facility hosts about 65,000 NeXus files and the number is growing. **Materials and Life Science Facility,** @@ -153,7 +153,7 @@ Facilities **Spallation Neutron Source** `SNS `__\ **, Oak Ridge, TN, USA**: SNS - is using `TOFRaw <../content/TOFRaw.html>`__ for storing histogram based data + is using `TOFRaw <../general_content/TOFRaw.html>`__ for storing histogram based data from all instruments. We are working towards storing the raw event data in NeXus instead as the data acquisition saves data in that form already. diff --git a/source/faq/faq.rst b/source/faq/faq.rst index 70609100..e5be4a1a 100644 --- a/source/faq/faq.rst +++ b/source/faq/faq.rst @@ -120,7 +120,7 @@ FAQ in analyzing data from your instrument. Insert the relevant grep character, as defined in the `NeXus - Meta-DTD format <../content/Metaformat.html>`__ to denote the number of + Meta-DTD format <../general_content/Metaformat.html>`__ to denote the number of occurrences. If the item is optional (“?” or “\*”), then it does not need to be added to your definition. diff --git a/source/content/2014_How_to_find_default_data.rst b/source/general_content/2014_How_to_find_default_data.rst similarity index 100% rename from source/content/2014_How_to_find_default_data.rst rename to source/general_content/2014_How_to_find_default_data.rst diff --git a/source/content/2014_axes_and_uncertainties.rst b/source/general_content/2014_axes_and_uncertainties.rst similarity index 100% rename from source/content/2014_axes_and_uncertainties.rst rename to source/general_content/2014_axes_and_uncertainties.rst diff --git a/source/content/Archive_Definition.rst b/source/general_content/Archive_Definition.rst similarity index 100% rename from source/content/Archive_Definition.rst rename to source/general_content/Archive_Definition.rst diff --git a/source/content/Associating_Axes_with_Data.rst b/source/general_content/Associating_Axes_with_Data.rst similarity index 100% rename from source/content/Associating_Axes_with_Data.rst rename to source/general_content/Associating_Axes_with_Data.rst diff --git a/source/content/ConcordanceDiscussion.rst b/source/general_content/ConcordanceDiscussion.rst similarity index 100% rename from source/content/ConcordanceDiscussion.rst rename to source/general_content/ConcordanceDiscussion.rst diff --git a/source/content/Connecting_NXdata_to_NXdetector.rst b/source/general_content/Connecting_NXdata_to_NXdetector.rst similarity index 100% rename from source/content/Connecting_NXdata_to_NXdetector.rst rename to source/general_content/Connecting_NXdata_to_NXdetector.rst diff --git a/source/content/Containers_and_Inheritance.rst b/source/general_content/Containers_and_Inheritance.rst similarity index 100% rename from source/content/Containers_and_Inheritance.rst rename to source/general_content/Containers_and_Inheritance.rst diff --git a/source/content/DLSraw.rst b/source/general_content/DLSraw.rst similarity index 100% rename from source/content/DLSraw.rst rename to source/general_content/DLSraw.rst diff --git a/source/content/Design_Issues.rst b/source/general_content/Design_Issues.rst similarity index 100% rename from source/content/Design_Issues.rst rename to source/general_content/Design_Issues.rst diff --git a/source/content/Detector_Geometry.rst b/source/general_content/Detector_Geometry.rst similarity index 100% rename from source/content/Detector_Geometry.rst rename to source/general_content/Detector_Geometry.rst diff --git a/source/content/Download.rst b/source/general_content/Download.rst similarity index 100% rename from source/content/Download.rst rename to source/general_content/Download.rst diff --git a/source/content/Extension_of_NeXus_Coordinate_Systems.rst b/source/general_content/Extension_of_NeXus_Coordinate_Systems.rst similarity index 100% rename from source/content/Extension_of_NeXus_Coordinate_Systems.rst rename to source/general_content/Extension_of_NeXus_Coordinate_Systems.rst diff --git a/source/content/File_id_attribute_for_Nexus_files.rst b/source/general_content/File_id_attribute_for_Nexus_files.rst similarity index 100% rename from source/content/File_id_attribute_for_Nexus_files.rst rename to source/general_content/File_id_attribute_for_Nexus_files.rst diff --git a/source/content/GenericScan.rst b/source/general_content/GenericScan.rst similarity index 100% rename from source/content/GenericScan.rst rename to source/general_content/GenericScan.rst diff --git a/source/content/Group_Attributes.rst b/source/general_content/Group_Attributes.rst similarity index 100% rename from source/content/Group_Attributes.rst rename to source/general_content/Group_Attributes.rst diff --git a/source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst b/source/general_content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst similarity index 100% rename from source/content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst rename to source/general_content/How_to_avoid_name_clashes_during_future_extensions_of_the_Nexus_standard.rst diff --git a/source/content/IndirectDiscuss.rst b/source/general_content/IndirectDiscuss.rst similarity index 100% rename from source/content/IndirectDiscuss.rst rename to source/general_content/IndirectDiscuss.rst diff --git a/source/content/Indirect_Time-of-Flight_and_Coordinates.rst b/source/general_content/Indirect_Time-of-Flight_and_Coordinates.rst similarity index 100% rename from source/content/Indirect_Time-of-Flight_and_Coordinates.rst rename to source/general_content/Indirect_Time-of-Flight_and_Coordinates.rst diff --git a/source/content/Instruments.rst b/source/general_content/Instruments.rst similarity index 100% rename from source/content/Instruments.rst rename to source/general_content/Instruments.rst diff --git a/source/content/IssueReporting.rst b/source/general_content/IssueReporting.rst similarity index 100% rename from source/content/IssueReporting.rst rename to source/general_content/IssueReporting.rst diff --git a/source/content/Japinotes.rst b/source/general_content/Japinotes.rst similarity index 100% rename from source/content/Japinotes.rst rename to source/general_content/Japinotes.rst diff --git a/source/content/Java_API.rst b/source/general_content/Java_API.rst similarity index 100% rename from source/content/Java_API.rst rename to source/general_content/Java_API.rst diff --git a/source/content/Jnexustut.rst b/source/general_content/Jnexustut.rst similarity index 100% rename from source/content/Jnexustut.rst rename to source/general_content/Jnexustut.rst diff --git a/source/content/Latest_News.rst b/source/general_content/Latest_News.rst similarity index 100% rename from source/content/Latest_News.rst rename to source/general_content/Latest_News.rst diff --git a/source/content/Linking_External_Files.rst b/source/general_content/Linking_External_Files.rst similarity index 100% rename from source/content/Linking_External_Files.rst rename to source/general_content/Linking_External_Files.rst diff --git a/source/content/Metaformat.rst b/source/general_content/Metaformat.rst similarity index 100% rename from source/content/Metaformat.rst rename to source/general_content/Metaformat.rst diff --git a/source/content/MonoXPSD.rst b/source/general_content/MonoXPSD.rst similarity index 100% rename from source/content/MonoXPSD.rst rename to source/general_content/MonoXPSD.rst diff --git a/source/content/MonoXSingle.rst b/source/general_content/MonoXSingle.rst similarity index 100% rename from source/content/MonoXSingle.rst rename to source/general_content/MonoXSingle.rst diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst b/source/general_content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst similarity index 100% rename from source/content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst rename to source/general_content/Monochromatic_Neutron_and_X-ray_Powder_Diffraction.rst diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst b/source/general_content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst similarity index 100% rename from source/content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst rename to source/general_content/Monochromatic_Neutron_and_X-ray_Reflectometry.rst diff --git a/source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst b/source/general_content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst similarity index 100% rename from source/content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst rename to source/general_content/Monochromatic_Neutron_and_X-ray_Single_Crystal_Diffractometer.rst diff --git a/source/content/Multi_Method_Instruments.rst b/source/general_content/Multi_Method_Instruments.rst similarity index 100% rename from source/content/Multi_Method_Instruments.rst rename to source/general_content/Multi_Method_Instruments.rst diff --git a/source/content/Muon_Time_Differential.rst b/source/general_content/Muon_Time_Differential.rst similarity index 100% rename from source/content/Muon_Time_Differential.rst rename to source/general_content/Muon_Time_Differential.rst diff --git a/source/content/NAPI_Routines.rst b/source/general_content/NAPI_Routines.rst similarity index 100% rename from source/content/NAPI_Routines.rst rename to source/general_content/NAPI_Routines.rst diff --git a/source/content/NAPI_Utility_Routines.rst b/source/general_content/NAPI_Utility_Routines.rst similarity index 100% rename from source/content/NAPI_Utility_Routines.rst rename to source/general_content/NAPI_Utility_Routines.rst diff --git a/source/content/NXaperture_and_Slits.rst b/source/general_content/NXaperture_and_Slits.rst similarity index 100% rename from source/content/NXaperture_and_Slits.rst rename to source/general_content/NXaperture_and_Slits.rst diff --git a/source/content/NXbrowse.f90.rst b/source/general_content/NXbrowse.f90.rst similarity index 100% rename from source/content/NXbrowse.f90.rst rename to source/general_content/NXbrowse.f90.rst diff --git a/source/content/NXbrowse.rst b/source/general_content/NXbrowse.rst similarity index 100% rename from source/content/NXbrowse.rst rename to source/general_content/NXbrowse.rst diff --git a/source/content/NXdetector_2012_10.rst b/source/general_content/NXdetector_2012_10.rst similarity index 100% rename from source/content/NXdetector_2012_10.rst rename to source/general_content/NXdetector_2012_10.rst diff --git a/source/content/NXdetector_documentation.rst b/source/general_content/NXdetector_documentation.rst similarity index 100% rename from source/content/NXdetector_documentation.rst rename to source/general_content/NXdetector_documentation.rst diff --git a/source/content/NXdir.rst b/source/general_content/NXdir.rst similarity index 100% rename from source/content/NXdir.rst rename to source/general_content/NXdir.rst diff --git a/source/content/NXgeometry_and_NXshape_-_documentation_and_review.rst b/source/general_content/NXgeometry_and_NXshape_-_documentation_and_review.rst similarity index 100% rename from source/content/NXgeometry_and_NXshape_-_documentation_and_review.rst rename to source/general_content/NXgeometry_and_NXshape_-_documentation_and_review.rst diff --git a/source/content/NXlrcs.f90.rst b/source/general_content/NXlrcs.f90.rst similarity index 100% rename from source/content/NXlrcs.f90.rst rename to source/general_content/NXlrcs.f90.rst diff --git a/source/content/NXmeasurement.rst b/source/general_content/NXmeasurement.rst similarity index 100% rename from source/content/NXmeasurement.rst rename to source/general_content/NXmeasurement.rst diff --git a/source/content/NXmonoref-NIAC2006.rst b/source/general_content/NXmonoref-NIAC2006.rst similarity index 100% rename from source/content/NXmonoref-NIAC2006.rst rename to source/general_content/NXmonoref-NIAC2006.rst diff --git a/source/content/NXmonoref_example-NIAC2006.rst b/source/general_content/NXmonoref_example-NIAC2006.rst similarity index 100% rename from source/content/NXmonoref_example-NIAC2006.rst rename to source/general_content/NXmonoref_example-NIAC2006.rst diff --git a/source/content/NXmonotas-NIAC2006.rst b/source/general_content/NXmonotas-NIAC2006.rst similarity index 100% rename from source/content/NXmonotas-NIAC2006.rst rename to source/general_content/NXmonotas-NIAC2006.rst diff --git a/source/content/NXmonotas_example-NIAC2006.rst b/source/general_content/NXmonotas_example-NIAC2006.rst similarity index 100% rename from source/content/NXmonotas_example-NIAC2006.rst rename to source/general_content/NXmonotas_example-NIAC2006.rst diff --git a/source/content/NXnet_Proposal.rst b/source/general_content/NXnet_Proposal.rst similarity index 100% rename from source/content/NXnet_Proposal.rst rename to source/general_content/NXnet_Proposal.rst diff --git a/source/content/NXtofnref-NIAC2006.rst b/source/general_content/NXtofnref-NIAC2006.rst similarity index 100% rename from source/content/NXtofnref-NIAC2006.rst rename to source/general_content/NXtofnref-NIAC2006.rst diff --git a/source/content/NXtranslate.rst b/source/general_content/NXtranslate.rst similarity index 100% rename from source/content/NXtranslate.rst rename to source/general_content/NXtranslate.rst diff --git a/source/content/NeXpy.rst b/source/general_content/NeXpy.rst similarity index 100% rename from source/content/NeXpy.rst rename to source/general_content/NeXpy.rst diff --git a/source/content/NeXus_CIF_Integration.rst b/source/general_content/NeXus_CIF_Integration.rst similarity index 100% rename from source/content/NeXus_CIF_Integration.rst rename to source/general_content/NeXus_CIF_Integration.rst diff --git a/source/content/Nexus_41_Release_Notes.rst b/source/general_content/Nexus_41_Release_Notes.rst similarity index 100% rename from source/content/Nexus_41_Release_Notes.rst rename to source/general_content/Nexus_41_Release_Notes.rst diff --git a/source/content/Nexus_42_Release_Notes.rst b/source/general_content/Nexus_42_Release_Notes.rst similarity index 100% rename from source/content/Nexus_42_Release_Notes.rst rename to source/general_content/Nexus_42_Release_Notes.rst diff --git a/source/content/Nexus_43_Release_Notes.rst b/source/general_content/Nexus_43_Release_Notes.rst similarity index 100% rename from source/content/Nexus_43_Release_Notes.rst rename to source/general_content/Nexus_43_Release_Notes.rst diff --git a/source/content/Nexus_4_Release_Notes.rst b/source/general_content/Nexus_4_Release_Notes.rst similarity index 100% rename from source/content/Nexus_4_Release_Notes.rst rename to source/general_content/Nexus_4_Release_Notes.rst diff --git a/source/content/OO-NeXus.rst b/source/general_content/OO-NeXus.rst similarity index 100% rename from source/content/OO-NeXus.rst rename to source/general_content/OO-NeXus.rst diff --git a/source/content/Object_Oriented_Interface.rst b/source/general_content/Object_Oriented_Interface.rst similarity index 100% rename from source/content/Object_Oriented_Interface.rst rename to source/general_content/Object_Oriented_Interface.rst diff --git a/source/content/Objects_or_Interfaces.rst b/source/general_content/Objects_or_Interfaces.rst similarity index 100% rename from source/content/Objects_or_Interfaces.rst rename to source/general_content/Objects_or_Interfaces.rst diff --git a/source/content/Proposal_NeXus_Coordinates.rst b/source/general_content/Proposal_NeXus_Coordinates.rst similarity index 100% rename from source/content/Proposal_NeXus_Coordinates.rst rename to source/general_content/Proposal_NeXus_Coordinates.rst diff --git a/source/content/Proposal_NeXus_Errors.rst b/source/general_content/Proposal_NeXus_Errors.rst similarity index 100% rename from source/content/Proposal_NeXus_Errors.rst rename to source/general_content/Proposal_NeXus_Errors.rst diff --git a/source/content/Proposal_to_Simplify_Nexus.rst b/source/general_content/Proposal_to_Simplify_Nexus.rst similarity index 100% rename from source/content/Proposal_to_Simplify_Nexus.rst rename to source/general_content/Proposal_to_Simplify_Nexus.rst diff --git a/source/content/ReflectDiscuss.rst b/source/general_content/ReflectDiscuss.rst similarity index 100% rename from source/content/ReflectDiscuss.rst rename to source/general_content/ReflectDiscuss.rst diff --git a/source/content/SAS.rst b/source/general_content/SAS.rst similarity index 100% rename from source/content/SAS.rst rename to source/general_content/SAS.rst diff --git a/source/content/Scaled_Data.rst b/source/general_content/Scaled_Data.rst similarity index 100% rename from source/content/Scaled_Data.rst rename to source/general_content/Scaled_Data.rst diff --git a/source/content/Scans.rst b/source/general_content/Scans.rst similarity index 100% rename from source/content/Scans.rst rename to source/general_content/Scans.rst diff --git a/source/content/Storing_Event_Data.rst b/source/general_content/Storing_Event_Data.rst similarity index 100% rename from source/content/Storing_Event_Data.rst rename to source/general_content/Storing_Event_Data.rst diff --git a/source/content/TOFRaw.rst b/source/general_content/TOFRaw.rst similarity index 100% rename from source/content/TOFRaw.rst rename to source/general_content/TOFRaw.rst diff --git a/source/content/TOFRawScan.rst b/source/general_content/TOFRawScan.rst similarity index 100% rename from source/content/TOFRawScan.rst rename to source/general_content/TOFRawScan.rst diff --git a/source/content/Thumbnails_for_Nexus_files.rst b/source/general_content/Thumbnails_for_Nexus_files.rst similarity index 100% rename from source/content/Thumbnails_for_Nexus_files.rst rename to source/general_content/Thumbnails_for_Nexus_files.rst diff --git a/source/content/Time-of-Flight_Neutron_Powder_Diffraction.rst b/source/general_content/Time-of-Flight_Neutron_Powder_Diffraction.rst similarity index 100% rename from source/content/Time-of-Flight_Neutron_Powder_Diffraction.rst rename to source/general_content/Time-of-Flight_Neutron_Powder_Diffraction.rst diff --git a/source/content/Update_for_NXflou_application_definition.rst b/source/general_content/Update_for_NXflou_application_definition.rst similarity index 100% rename from source/content/Update_for_NXflou_application_definition.rst rename to source/general_content/Update_for_NXflou_application_definition.rst diff --git a/source/content/Utilities.rst b/source/general_content/Utilities.rst similarity index 100% rename from source/content/Utilities.rst rename to source/general_content/Utilities.rst diff --git a/source/content/Workshop_PSI_2010.rst b/source/general_content/Workshop_PSI_2010.rst similarity index 100% rename from source/content/Workshop_PSI_2010.rst rename to source/general_content/Workshop_PSI_2010.rst diff --git a/source/content/XESraw.rst b/source/general_content/XESraw.rst similarity index 100% rename from source/content/XESraw.rst rename to source/general_content/XESraw.rst diff --git a/source/content/content.rst b/source/general_content/content.rst similarity index 100% rename from source/content/content.rst rename to source/general_content/content.rst diff --git a/source/index.rst b/source/index.rst index 9ad81a2c..565f07e7 100644 --- a/source/index.rst +++ b/source/index.rst @@ -57,6 +57,6 @@ Discussion and Development: niac/niac faq/faq facilities/facilities - content/content + general_content/content diff --git a/source/niac/NIAC2006ILL.rst b/source/niac/NIAC2006ILL.rst index 01bbf33a..63833452 100644 --- a/source/niac/NIAC2006ILL.rst +++ b/source/niac/NIAC2006ILL.rst @@ -40,7 +40,7 @@ NIAC2006ILL - Amend constitution to state that all officers, including technical chair, are elected at each meeting, effective at the end of the meeting - - Discuss and vote on `TOF raw file definition <../content/TOFRaw.html>`__ + - Discuss and vote on `TOF raw file definition <../general_content/TOFRaw.html>`__ .. rubric:: General Information :name: NIAC2006ILL_general-information @@ -89,7 +89,7 @@ NIAC2006ILL **technical programming the api** "'"instruments-1 - 3-axis/reflection/`SAS <../content/SAS.html>`__/polarised/muons """ + 3-axis/reflection/`SAS <../general_content/SAS.html>`__/polarised/muons """ - (step-scanning/multi-detector/X-ray/neutron) - examples @@ -223,4 +223,4 @@ NIAC2006ILL - TOF Group (Freddie Akeroyd) - Scanning Group (Paul Kienzle) - Technical Computing/APIGroup (Nick Maliszewskyj) - - `Small-Angle Scattering Group <../content/SAS.html>`__ (Ron Ghosh) + - `Small-Angle Scattering Group <../general_content/SAS.html>`__ (Ron Ghosh) diff --git a/source/niac/NIAC2006LBL.rst b/source/niac/NIAC2006LBL.rst index a6c06bda..72552b61 100644 --- a/source/niac/NIAC2006LBL.rst +++ b/source/niac/NIAC2006LBL.rst @@ -59,12 +59,12 @@ NIAC2006LBL NeXus. - SCAN definition similar to TOFRAW definition - NXcharacterization needs to be formalized - - Finalize `archive definition <../content/Archive_Definition.html>`__ + - Finalize `archive definition <../general_content/Archive_Definition.html>`__ .. rubric:: Tabled Until Next Time :name: tabled-until-next-time - - Moving from `Meta-DTDs <../content/Metaformat.html>`__ to XML Schema. see + - Moving from `Meta-DTDs <../general_content/Metaformat.html>`__ to XML Schema. see `NeXML proposal `__ .. rubric:: October 5 @@ -101,23 +101,23 @@ NIAC2006LBL - Examine classes for ratification - `X-ray Experimental (Synchrotron) raw NeXus - data <../content/XESraw.html>`__ - - `Archive_Definition <../content/Archive_Definition.html>`__ + data <../general_content/XESraw.html>`__ + - `Archive_Definition <../general_content/Archive_Definition.html>`__ - - Examine instruments for ratification - `Monochromatic Neutron and X-ray Small-Angle - Scattering <../content/SAS.html>`__ + Scattering <../general_content/SAS.html>`__ - Reflectometry - Time-of-Flight_Neutron_Indirect_Geometry_Spectrometer - Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer - - `Time-of-Flight_Neutron_Powder_Diffraction <../content/Time-of-Flight_Neutron_Powder_Diffraction.html>`__ - - `Muon_Time_Differential <../content/Muon_Time_Differential.html>`__ - - `MonoXPSD <../content/MonoXPSD.html>`__ Monochromatic Single Crystal + - `Time-of-Flight_Neutron_Powder_Diffraction <../general_content/Time-of-Flight_Neutron_Powder_Diffraction.html>`__ + - `Muon_Time_Differential <../general_content/Muon_Time_Differential.html>`__ + - `MonoXPSD <../general_content/MonoXPSD.html>`__ Monochromatic Single Crystal Diffractometer with Position Sensitive Detector - - `MonoXSingle <../content/MonoXSingle.html>`__ Monochromatic Single + - `MonoXSingle <../general_content/MonoXSingle.html>`__ Monochromatic Single Crystal Diffractometer with Single Detector - ??:?? Triage diff --git a/source/niac/NIAC2006LBL_RoadMap.rst b/source/niac/NIAC2006LBL_RoadMap.rst index 9f9d6eee..57d4c641 100644 --- a/source/niac/NIAC2006LBL_RoadMap.rst +++ b/source/niac/NIAC2006LBL_RoadMap.rst @@ -20,18 +20,18 @@ NIAC2006LBL RoadMap - Monochromatic Neutron and X-ray Single Crystal Diffractometers - - `MonoXPSD <../content/MonoXPSD.html>`__ Monochromatic Single Crystal + - `MonoXPSD <../general_content/MonoXPSD.html>`__ Monochromatic Single Crystal Diffractometer with Position Sensitive Detector - - `MonoXSingle <../content/MonoXSingle.html>`__ Monochromatic Single + - `MonoXSingle <../general_content/MonoXSingle.html>`__ Monochromatic Single Crystal Diffractometer with Single Detector - Monochromatic_Neutron_and_X-ray_Triple-Axis_Spectrometer - - `Archive_Definition <../content/Archive_Definition.html>`__ + - `Archive_Definition <../general_content/Archive_Definition.html>`__ - priority 2 - - `Time-of-Flight_Neutron_Powder_Diffraction <../content/Time-of-Flight_Neutron_Powder_Diffraction.html>`__ - - `Monochromatic Neutron and X-ray Small Angle Scattering <../content/SAS.html>`__ + - `Time-of-Flight_Neutron_Powder_Diffraction <../general_content/Time-of-Flight_Neutron_Powder_Diffraction.html>`__ + - `Monochromatic Neutron and X-ray Small Angle Scattering <../general_content/SAS.html>`__ - Time-of-Flight Small Angle Scattering - priority 3 @@ -60,7 +60,7 @@ NIAC2006LBL RoadMap When looking at a geometry is the orientation applied before the translation or the other way around. - .. rubric:: `XESraw <../content//XESraw.html>`__ + .. rubric:: `XESraw <../general_content//XESraw.html>`__ .. rubric:: scanning environment variables :name: scanning-environment-variables @@ -100,4 +100,4 @@ NIAC2006LBL RoadMap - (*working*) SCAN definition similar to TOFRAW definition - (*working*) NXcharacterization needs to be formalized - (*working*) Finalize `archive - definition <../content/Archive_Definition.html>`__ + definition <../general_content/Archive_Definition.html>`__ diff --git a/source/niac/NIAC2006_Scanning_Group.rst b/source/niac/NIAC2006_Scanning_Group.rst index af72d535..b5e3a497 100644 --- a/source/niac/NIAC2006_Scanning_Group.rst +++ b/source/niac/NIAC2006_Scanning_Group.rst @@ -13,11 +13,11 @@ NIAC2006 Scanning Group Definitions for some measurement classes: - Triple axis definition: - `NXmonotas-NIAC2006 <../content/NXmonotas-NIAC2006.html>`__ + `NXmonotas-NIAC2006 <../general_content/NXmonotas-NIAC2006.html>`__ - Reflectometry definition: - `NXmonoref-NIAC2006 <../content/NXmonoref-NIAC2006.html>`__ + `NXmonoref-NIAC2006 <../general_content/NXmonoref-NIAC2006.html>`__ - TOF Reflectometry definition: - `NXtofnref-NIAC2006 <../content/NXtofnref-NIAC2006.html>`__ + `NXtofnref-NIAC2006 <../general_content/NXtofnref-NIAC2006.html>`__ .. rubric:: Session 1 :name: session-1 diff --git a/source/niac/NIAC2006_TOF_Group.rst b/source/niac/NIAC2006_TOF_Group.rst index e1c89189..685d884e 100644 --- a/source/niac/NIAC2006_TOF_Group.rst +++ b/source/niac/NIAC2006_TOF_Group.rst @@ -27,13 +27,13 @@ NIAC2006 TOF Group case)](TOFRaw.html "wikilink") proposal in preparation for a full group discussion. - .. rubric:: Summary of main proposals in `TOFRaw <../content/TOFRaw.html>`__ + .. rubric:: Summary of main proposals in `TOFRaw <../general_content/TOFRaw.html>`__ :name: summary-of-main-proposals-in-tofraw #. Some new meta-data names in NXentry for archiving and cataloguing of data #. Some thoughts about scans (now moved to - `NXTOFRWSC <../content/TOFRawScan.html>`__ and being considered by the + `NXTOFRWSC <../general_content/TOFRawScan.html>`__ and being considered by the Scanning Group ) #. General and Area detector specific NXdetector #. Additional options for specifying pixel geometry with area @@ -178,7 +178,7 @@ NIAC2006 TOF Group .. rubric:: Hardware detector ganging :name: hardware-detector-ganging - `TOFRaw <../content/TOFRaw.html>`__ originally suggested using an + `TOFRaw <../general_content/TOFRaw.html>`__ originally suggested using an **\_unganged** suffix on the ungrouped elements e.g. polar_angle_unganged. It was decided that creating a substructure within the NXdetector and putting the information there was better @@ -199,7 +199,7 @@ NIAC2006 TOF Group mapping) - An alternative is the gang_count and gang_index method in - `TOFRaw <../content/TOFRaw.html>`__, but this does require sorting of the + `TOFRaw <../general_content/TOFRaw.html>`__, but this does require sorting of the polar_angle etc. arrays prior to writing to the file .. rubric:: Proposals diff --git a/source/niac/NIAC2007.rst b/source/niac/NIAC2007.rst index 3dcec49e..9da09f20 100644 --- a/source/niac/NIAC2007.rst +++ b/source/niac/NIAC2007.rst @@ -298,7 +298,7 @@ NIAC2007 .. rubric:: Laurent :name: -laurent - - `Archive Definition <../content/Archive_Definition.html>`__ + - `Archive Definition <../general_content/Archive_Definition.html>`__ - nxingest a tool to extract metadata from a NeXus files and store it into a reformated xml document. - Status of NeXus/imgCif usage in the facilities (who is using diff --git a/source/niac/NIAC2007_Minutes.rst b/source/niac/NIAC2007_Minutes.rst index 87a8360e..41ba4ec9 100644 --- a/source/niac/NIAC2007_Minutes.rst +++ b/source/niac/NIAC2007_Minutes.rst @@ -61,11 +61,11 @@ NIAC2007 Minutes on Nexus which appeared as part of the ICNS proceedings *Physica B 385-386 (2006) 1343-1345* - There was a short discussion on scans and the role of - `TOFRawScan <../content/TOFRawScan.html>`__. Nick Hauser wanted to know if + `TOFRawScan <../general_content/TOFRawScan.html>`__. Nick Hauser wanted to know if there was a Nexus scan object ACTION : Nick Hauser to take over the - `NXgenericScan <../content/GenericScan.html>`__ definition + `NXgenericScan <../general_content/GenericScan.html>`__ definition .. rubric:: Thanks :name: thanks @@ -120,7 +120,7 @@ NIAC2007 Minutes but input from other NIAC members is required on naming of instrument definitions before moving them too. This leads onto the open question of how to name definitions like - `TOFRaw <../content/TOFRaw.html>`__ " should all definitions have an NX + `TOFRaw <../general_content/TOFRaw.html>`__ " should all definitions have an NX prefix like base classes or not? Pete Jemian suggests differentiating names between Instruments + diff --git a/source/niac/NIAC2008.rst b/source/niac/NIAC2008.rst index 2534c916..cdb7a86d 100644 --- a/source/niac/NIAC2008.rst +++ b/source/niac/NIAC2008.rst @@ -168,4 +168,4 @@ NIAC2008 - documentation transformed from mediawiki to DocBook, edited where necessary, chapters concatenated, and converted to pdf - pdf bundled with napi release and versions available at - `Download <../content/Download.html>`__ + `Download <../general_content/Download.html>`__ diff --git a/source/niac/NIAC2014_Meeting.rst b/source/niac/NIAC2014_Meeting.rst index 52e8c710..7c89d16f 100644 --- a/source/niac/NIAC2014_Meeting.rst +++ b/source/niac/NIAC2014_Meeting.rst @@ -74,13 +74,13 @@ NIAC2014 Meeting - NXdata: - proposal: describe `how to find the default - data <../content/2014_How_to_find_default_data.html>`__ + data <../general_content/2014_How_to_find_default_data.html>`__ - proposal: describe how data are related (particularly: `axes - and uncertainties <../content/2014_axes_and_uncertainties.html>`__) + and uncertainties <../general_content/2014_axes_and_uncertainties.html>`__) - NXformula - `Update for NXflou application - definition <../content/Update_for_NXflou_application_definition.html>`__ + definition <../general_content/Update_for_NXflou_application_definition.html>`__ .. rubric:: NIAC Agenda :name: NIAC2014_Meeting_niac-agenda @@ -173,7 +173,7 @@ NIAC2014 Meeting Vote on proposal for NXdata axes with indices attribute only required when required to resolve ambiguity. All in favour. Vote on proposal with indices required as in - `2014_axes_and_uncertainties <../content/2014_axes_and_uncertainties.html>`__. + `2014_axes_and_uncertainties <../general_content/2014_axes_and_uncertainties.html>`__. Accepted: 9 in favour. Strong disagreement by Ray Osborn as adoption is noted: "Adoption of NeXus will be hampered by additional complexity being required unnecessarily". Ben Watts @@ -199,7 +199,7 @@ NIAC2014 Meeting Ratification of new and amended base classes and definitions. NXfluo - `Update_for_NXflou_application_definition <../content/Update_for_NXflou_application_definition.html>`__ + `Update_for_NXflou_application_definition <../general_content/Update_for_NXflou_application_definition.html>`__ Resolution: Proposal is in agreement with existing scan rules. No vote required. Further amendments to the application definition may be required, but that needs to be refined. Mark B and Eugen W diff --git a/source/teleconferences/Telco_20160412.rst b/source/teleconferences/Telco_20160412.rst index 296e4fe7..3d0c2b73 100644 --- a/source/teleconferences/Telco_20160412.rst +++ b/source/teleconferences/Telco_20160412.rst @@ -29,7 +29,7 @@ Telco 20160412 - Eugen: I suggest we continue #414 in the NAPI repository - need to decide how to deal with internal functions - - reminder to update `Latest News <../content/Latest_News.html>`__ + - reminder to update `Latest News <../general_content/Latest_News.html>`__ - Dectris Eiger JSON format - Andreas to present - http://nexusformat.org main landing page update - Next meeting From c336836fd36d7cbce8cc6af0c803cbe23c60c917 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Tue, 11 Feb 2025 11:37:52 -0600 Subject: [PATCH 14/16] finished reformatting remaining rst files --- .../Containers_and_Inheritance.rst | 1 - source/general_content/Detector_Geometry.rst | 2 - source/general_content/Java_API.rst | 11 +- source/general_content/Latest_News.rst | 532 +++++++++++------ .../Linking_External_Files.rst | 91 ++- source/general_content/NXbrowse.rst | 22 +- source/general_content/NXdir.rst | 147 +++-- ...and_NXshape_-_documentation_and_review.rst | 251 +++++--- source/general_content/NXlrcs.f90.rst | 303 ++++++---- source/general_content/NXmeasurement.rst | 59 +- source/general_content/NXmonoref-NIAC2006.rst | 85 +-- .../NXmonoref_example-NIAC2006.rst | 166 ++++-- source/general_content/NXmonotas-NIAC2006.rst | 73 ++- .../NXmonotas_example-NIAC2006.rst | 252 ++++++-- source/general_content/NXnet_Proposal.rst | 119 ++-- source/general_content/NXtofnref-NIAC2006.rst | 168 ++++-- source/general_content/NXtranslate.rst | 77 ++- source/general_content/OO-NeXus.rst | 182 +++--- .../Object_Oriented_Interface.rst | 57 +- .../Proposal_NeXus_Coordinates.rst | 23 +- .../Proposal_to_Simplify_Nexus.rst | 17 + source/general_content/ReflectDiscuss.rst | 538 +++++++++++++----- source/general_content/SAS.rst | 228 ++++++-- source/general_content/Scaled_Data.rst | 71 ++- source/general_content/Storing_Event_Data.rst | 111 ++-- source/general_content/Utilities.rst | 287 +++++----- 26 files changed, 2593 insertions(+), 1280 deletions(-) diff --git a/source/general_content/Containers_and_Inheritance.rst b/source/general_content/Containers_and_Inheritance.rst index 61311e11..1e2ba972 100644 --- a/source/general_content/Containers_and_Inheritance.rst +++ b/source/general_content/Containers_and_Inheritance.rst @@ -2,7 +2,6 @@ Containers and Inheritance ========================== ---- title: Containers and Inheritance permalink: Containers_and_Inheritance.html layout: wiki --- *Currently Under Construction - will be linked to the discussion page when reviewed and completed* This page presents how neXus could benefit from an object/container-orientated approach to its user defined instrument definitions. By allowing base user definitions for components, datasets from full diff --git a/source/general_content/Detector_Geometry.rst b/source/general_content/Detector_Geometry.rst index 66e4fae2..d802b64a 100644 --- a/source/general_content/Detector_Geometry.rst +++ b/source/general_content/Detector_Geometry.rst @@ -2,8 +2,6 @@ Detector Geometry ================= ---- title: Detector Geometry permalink: Detector_Geometry.html layout: wiki --- - Issue ----- diff --git a/source/general_content/Java_API.rst b/source/general_content/Java_API.rst index 9af3fca4..afd302e9 100644 --- a/source/general_content/Java_API.rst +++ b/source/general_content/Java_API.rst @@ -3,18 +3,16 @@ Java API ======== ---- title: Java API permalink: Java_API.html layout: wiki --- The NeXus -for Java API Download and Information Page ----------------------------------------------------- NeXus for Java is -an API which provides access to NeXus data files to programs written in +The NeXus for Java API Download and Information Page +---------------------------------------------------- +NeXus for Java is an API which provides access to NeXus data files to programs written in the programming language Java. This API was implemented by Java code calling the original C language NeXus API through the Java Native Methods Interface. ### Documentation The following documentation is browsable online: 1. The [NeXus for Java API](japinotes.html "wikilink") general instructions including installation notes, instructions for running NeXus for Java programs and a brief introduction to the API. 2. -The -[Source](https://github.com/nexusformat/code/tree/master/bindings/java/) +The [Source](https://github.com/nexusformat/code/tree/master/bindings/java/) documentation 3. A verbose tutorial for the NeXus for Java API. 4. The API Reference. 5. Finally, the source code for the test driver for the API which also serves as a documented usage example. ### Acknowledgement @@ -30,6 +28,7 @@ WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no event shall the Author or the Contributors be liable for any damages suffered by the users arising out of the use of this software, even if advised of the possibility of such damage. + ------------------------------------------------------------------------ Binary Packages for the Java NeXus API 1.3x These packages are based on version 1.3.x of the NeXus-API and support only HDF-4. System type diff --git a/source/general_content/Latest_News.rst b/source/general_content/Latest_News.rst index d3b1ccaf..82c9b378 100644 --- a/source/general_content/Latest_News.rst +++ b/source/general_content/Latest_News.rst @@ -3,10 +3,11 @@ Latest News =========== ---- title: Latest News permalink: Latest_News.html -layout: wiki --- 2017 ----- October: The upcoming Code Camp will be hosted by Diamond Light -Source 24th to 26th October. Visit [Code Camp 2017](Code_Camp_2017.html) +2017 +---- + +The upcoming Code Camp will be hosted by Diamond Light +Source 24th to 26th October. Visit [Code Camp 2017] `__ took place in Copenhagen 13th & 14th hosted by ESS, on the three days before we had be -a Code Camp. Version [3.2 of the NeXus -Defintions](https://github.com/nexusformat/definitions/releases/tag/v3.2) +a Code Camp. Version [3.2 of the NeXus Defintions] `__ happened 16th - 18th at DESY in Hamburg January: As a result +of `[NIAC2014] <../niac/NIAC2014.html>`__ the `[Teleconferences] <../teleconferences/teleconferences.html>`__ are now open to the whole community. Dates and joining instructions are to be published on the wiki page. 2014 ----- December: [NIAC2014](NIAC2014.html "wikilink") -has happened. The [Code Camp](NIAC2014_CodeCamp.html "wikilink") had a -meeting with the HDF Group, but was largely a preparation for the [NIAC -meeting](NIAC2014_Meeting.html "wikilink"). The NIAC elected new members -and officers and there were many fruitful discussions. Important items +December: +========= + +`[NIAC2014] <../niac/NIAC2014.html>`__ has happened. The `[Code Camp] <../codecamps/NIAC2014_CodeCamp.html>`__ had a +meeting with the HDF Group, but was largely a preparation for the `[NIAC meeting] <../niac/NIAC2014_Meeting.html>`__. +The NIAC elected new members and officers and there were many fruitful discussions. Important items and decisions are recorded in the -[minutes](NIAC2014_Meeting#Minutes.html "wikilink"). Wednesday, -2014-08-07: A [NeXus code camp](NIAC2014.html "wikilink") has been -planned for 15th / 17th December 2014 with a [NIAC](NIAC2014.html -"wikilink") meeting to follow on 18th / 19th December 2014. This meeting -has been scheduled apart from the [2014 NOBUGS -conference](http://j-parc.jp/researcher/MatLife/en/meetings/nobugs2014) +`[minutes] <../niac/NIAC2014_Meeting.html#Minutes>`__. + +**Wednesday, 2014-08-07**: +A `[NeXus code camp] <../niac/NIAC2014.html>`__ has been +planned for 15th / 17th December 2014 with a `[NIAC] <../niac/NIAC2014.html>`__ meeting to follow on +18th / 19th December 2014. This meeting +has been scheduled apart from the [2014 NOBUGS conference] `__ +happened 18th / 19th September 2012 with a `[NIAC] <../niac/NIAC2012.html>`__ meeting to follow on 20th / 21th September 2012. These +meetings are the week before the [NOBUGS conference] `__ for historical +information about the NIAC meetings and Code Camps. + +**Wednesday, March 6, 2012**: + +Release candidates for NeXus 4.3 are now available from [NeXus\\_43\\_Testing] + +2010 +---- + +**Thursday, October 21, 2010**: + +NeXus Manual moved from the wiki to a \*book format*(\``http://www.nexusformat.org/Documentation`\`) (PDF & HTML are +available). The revised manual also documents the \*class definitions*(\``http://download.nexusformat.org/doc/html/ClassDefinitions.html`\`) +in [NXDL] +for further information. + +**Tuesday, March 9, 2010**: + +A `[NeXus Workshop] `__ will be held at +[PSI] + +2009 +---- + +**Tuesday, May 5, 2009**: + +[NeXus API 4.2.0 released] + +**Wednesday, August 27, 2008**: + +Work is currently in progress to convert NeXus definitions from +`[Meta-DTDs] `__ into [XML Schema] page. + +2007 +---- + +**Wednesday, October 31,2007**: + +The NeXus technical committee is pleased to announce the official release of version 4.1 of the eXus API. The NeXus API provides a unified interface for writing hierarchical data files in HDF4, HDF5, and XML formats. Version 4.1 resolves a number of bugs reported in the 4.0 release including issues with python bindings, text strings in the XML library, and problems encountered with using the Absoft FORTRAN90 compiler. Details of the new features contained in 4.1 can be found in -the [Release -Notes](http://trac.nexusformat.org/code/browser/tags/4.1.0/NEWS) Source -code, binary packages, and example code can be downloaded from [download -page](Download.html "wikilink"). Tuesday, September 11, 2007: The -upcoming 4.1 release of the NeXus API is now undergoing testing. More -details can be found on the [testing site](NeXus_41_Testing.html -"wikilink") as well as [provisional release -notes](Nexus_41_Release_Notes.html "wikilink") Friday, May 25, 2007:The -NeXus technical committee is pleased to announce the official release of +the [Release Notes] `__. + +**Tuesday, September 11, 2007**: +The upcoming 4.1 release of the NeXus API is now undergoing testing. More +details can be found on the [testing site] + +**Friday, May 25, 2007**: + +The NeXus technical committee is pleased to announce the official release of version 4.0 of the NeXus API. The NeXus API provides a unified interface for writing hierarchical data files in HDF4, HDF5, and XML formats. Version 4.0 resolves a number of bugs reported in the 3.0 release by @@ -117,99 +152,167 @@ unlimited dimensions, support for group attributes in HDF4, and support for reading generic (non-NeXus) HDF5 files. The new release also automagically generates documentation from the source code using the Doxygen documentation system. Details of the new features contained in -4.0.0 can be found in the [Release -Notes](http://trac.nexusformat.org/code/browser/tags/4.0.0/NEWS) Friday, -March 16, 2007: The upcoming 4.0 release of the NeXus API is now +4.0.0 can be found in the [Release Notes] as well as [provisional release +notes] + +2006 +---- + +**Thursday, December 7, 2006**: + +Site updated to MediaWiki 1.8.2 + +**Tuesday, November 28, 2006**: + +A NeXus install kit for Microsoft Windows is [now +available] have been moved to a [new +server] `__. The current proposal is to hold it in Grenoble in the first week of February, but details will be announced as they are finalized. In the -meantime, check the [NeXus Wiki pages](NIAC2006ILL.html "wikilink") for -discussions of the agenda. Friday, July 15, 2005:The technical committee -is pleased to announce the official release of [version 3.0.0 of the -NeXus API](http://www.nexus.anl.gov/nexus_api.html#download). Mark +meantime, check the `[NeXus Wiki pages] <../niac/NIAC2006ILL.html>`__ for +discussions of the agenda. + +**Friday, July 15, 2005**: + +The technical committee is pleased to announce the official release of [version 3.0.0 of the +NeXus API] +`[NXtranslate] `__ utility to map data in existing files to NeXus format via XML translation files. This application will aid developers to write NeXus reading applications by converting real data in a facility-native format to the NeXus standard. -In addition a [bugzilla server](http://nexus.isis.rl.ac.uk/) has been +In addition a [bugzilla server] `__. If you find any errors, please contact the chair (Ray Osborn) or executive -secretary (Peter Peterson) of NIAC. Thursday, August 31, 2004:NXvalid -allows a user to look at the contents of a NeXus file, like a graphical +secretary (Peter Peterson) of NIAC. + +**Thursday, August 31, 2004**: + +NXvalid allows a user to look at the contents of a NeXus file, like a graphical version of NXbrowse. The latest version is the first to incorporate the ISAW viewers for plotting 1D and 2D NXdata and NXmonitor. ISAW is a separate application developed at IPNS and needs to be separately installed. If ISAW is not installed, NXvalid will still work, but the -viewers will not be available. Friday, June 4, 2004:The second meeting -of the NeXus International Advisory Committee will be held at the Paul +viewers will not be available. + +**Friday, June 4, 2004**: + +The second meeting of the NeXus International Advisory Committee will be held at the Paul Scherrer Institut, near Villigen, Switzerland, on October 21-22, 2004, immediately following NOBUGS 2004. See the NeXus Swiki page for more -details. Thursday, April 15, 2004:NXdir is a console based tool that +details. + +**Thursday, April 15, 2004**: + +NXdir is a console based tool that allows inspecting the contents of a NeXus file. It allows for directory like listing of contents as well as printing out data. Version 0.2.4, which allows the user to select a 1D or 2D NXdata to write out to a -file, has just been released. 2003 ---- Friday, September 24, 2003:The -minutes of the first meeting of the NeXus International Advisory -Committee are now available. Friday, July 25, 2003:The first meeting of -the NeXus International Advisory Committee will be held at the +file, has just been released. + +2003 +---- + +**Friday, September 24, 2003**: + +The minutes of the first meeting of the NeXus International Advisory +Committee are now available. + +**Friday, July 25, 2003**: + +The first meeting of the NeXus International Advisory Committee will be held at the California Institute of Technology, Pasadena, California, USA, from 1:30pm September 8 to 12:30pm, September 10, 2003. See the NIAC 2003 web -page for more details. 2002 ---- Saturday, December 14, 2002:Another -proposal made at the NOBUGS conference was that we set up an interactive +page for more details. + +2002 +---- + +**Saturday, December 14, 2002**: + +Another proposal made at the NOBUGS conference was that we set up an interactive web forum to allow anyone to suggest changes to the NeXus format. We have now set up the NeXus Swiki for this purpose. This is an implementation of a Wiki Wiki Web which allows visitors to edit the web pages directly in their browser. We welcome any constructive contributions, and just ask that you respect the guidelines that are -referenced on the Swiki home page. Monday, December 2, 2002:Following a -meeting of NeXus users and developers at the recent NOBUGS conference, +referenced on the Swiki home page. + +**Monday, December 2, 2002**: + +Following a meeting of NeXus users and developers at the recent NOBUGS conference, we have decided to set up the NeXus Advisory Committee to oversee future developments of the format. The proposed Terms of Reference are given here. The membership of the committee will be nominated by neutron, x-ray, and muon facilities, and announced in the next few weeks. -Saturday, September 14, 2002:This is the official release of version -2.0.0 of the NeXus API. Mark Koennecke and Uwe Filges have produced a + +**Saturday, September 14, 2002**: + +This is the official release of version 2.0.0 of the NeXus API. Mark Koennecke and Uwe Filges have produced a version that will read and/or write both HDF4 and HDF5 files. This is transparent to the user (except when he/she is choosing to write either an HDF4 or HDF5 file), i.e., the API calls are identical for both sets @@ -219,47 +322,80 @@ that it works in practice. Also included in this release are two new utilities, NXtoXML and NXtoDTD, which convert existing NeXus files to XML, with and without data values respectively. NXtoDTD can be used to produce the skeleton of a NeXus metaDTD file from an existing NeXus -file. Monday, July 8, 2002:We have created a new XML meta-DTD format for +file. + +**Monday, July 8, 2002**: + +We have created a new XML meta-DTD format for specifying the contents of NeXus files. These files are well-conformed DTD-less XML files, which therefore allow us to use standard XML forms to edit or display them. The aim is to make the instrument and other -formats much more formally defined. 2000 ---- Thursday, December 14, -2000:The first public workshop devoted to the NeXus format will occur +formats much more formally defined. + +2000 +---- + +**Thursday, December 14, 2000**: + +The first public workshop devoted to the NeXus format will occur from March 20-21, 2001, at PSI, near Zurich, Switzerland. Check the -NeXus'2001 web page for further details. Wednesday, December 6, -2000:Version 1.3.3 of the API has been released. It includes a new +NeXus'2001 web page for further details. + +**Wednesday, December 6, 2000**: + +Version 1.3.3 of the API has been released. It includes a new routine, NXflush, to flush data to the output file, and the new Java API -as part of the standard distribution. Friday, October 20, 2000:Mark -Koennecke has released the initial version of NeXus API in the Java +as part of the standard distribution. + +**Friday, October 20, 2000**: + +Mark Koennecke has released the initial version of NeXus API in the Java programming language. It uses the Java Native Methods Interface in order to access the C language NAPI calls, so it can only be used by Java applications, not by applets. A shared library is needed in order to run -a NeXus for Java program. Tuesday, September 5, 2000:The NeXus FTP site -has been moved to a (hopefully permanent) location at <>. The API -installation section has been updated accordingly. Tuesday, June 20, -2000:At the recent NOBUGS III conference, several members of the NeXus +a NeXus for Java program. + +**Tuesday, September 5, 2000**: +The NeXus FTP site has been moved to a (hopefully permanent) location at <>. The API +installation section has been updated accordingly. + +**Tuesday, June 20, 2000**: + +At the recent NOBUGS III conference, several members of the NeXus design team made presentations of their work on NeXus. Mark Koennecke described a java web-based data server and browser, Przemek Klosowski discussed efforts at NIST to build a Tcl/Tk-based data explorer, and Chris Moreton-Smith presented a proposal to formalize the NeXus format in XML. NeXus was also discussed in a data formats subgroup. Watch these -pages for further developments. Thursday, March 9, 2000:Version 1.3.2 -has now been released. It contains some enhancements to the +pages for further developments. + +**Thursday, March 9, 2000**: + +Version 1.3.2 has now been released. It contains some enhancements to the functionality of the NeXus terminal browser, NXbrowse, including the ability to specify the file name in the command line and to dump data into an ASCII file. It also fixes potential problems when compiling on systems which do not use 4-byte int's and simplifies the interface between Fortran and C on Windows systems. See the release notes for more -details. Monday, January 24, 2000:The latest version of the NeXus -terminal browser, NXbrowse, is now written in ISO C (NXbrowse.c), and +details. + +**Monday, January 24, 2000**: + +The latest version of the NeXus terminal browser, NXbrowse, is now written in ISO C (NXbrowse.c), and can be installed from the NAPI Makefile (i.e. make NXbrowse). See the section on NeXus browsers for more details. Four extra routines have been added to the C and F77 core API's. They are NXgetgroupinfo, NXinitgroupdir, NXgetattrinfo, and NXinitattrdir. NXinitgroupdir and NXinitattrdir allow the reinitialization of group and attribute searches using NXgetnextentry and NXgetnextattr respectively. The NeXus API -version number is now 1.3.1. 1999 ---- Tuesday, December 14, -1999:Following popular demand, Mark Koennecke has updated the NeXus API +version number is now 1.3.1. + +1999 +---- + +**Tuesday, December 14, 1999**: + +Following popular demand, Mark Koennecke has updated the NeXus API to include data compression. In the core API, compression is invoked by a call to NXcompress between calls to NXopendata and NXputdata. N.B. Mark Koennecke pointed out that earlier claims that NXcompress could be @@ -272,28 +408,47 @@ been updated. Data is automatically compressed in NXUwritedata to NXUsetcompress, which defines the compression algorithm and the minimum size of data set to be compressed (it makes no sense to compress very small arrays). The current version of the NeXus API is v1.3.0. -Wednesday, November 24, 1999:There was yet another small error in the + +**Wednesday, November 24, 1999**: + +There was yet another small error in the Fortran 90 example program. The call to NXUwriteglobals did not have the correct syntax. This has prompted a change to NXUwriteglobals to make all the arguments optional, allowing the use of the F90 keyword syntax -when only a few attributes are to be written. Monday, November 22, -1999:The latest version of the ILL's popular data analysis package LAMP +when only a few attributes are to be written. + +**Monday, November 22, 1999**: + +The latest version of the ILL's popular data analysis package LAMP is able to read and write NeXus files. Although it normally requires an IDL license, they are also distributing a run-time version for various -operating systems. Friday, November 5, 1999:The NeXus API has been -re-released as version 1.2.1 under the terms of the GNU Lesser General +operating systems. + +**Friday, November 5, 1999**: + +The NeXus API has been re-released as version 1.2.1 under the terms of the GNU Lesser General Public License. While this maintains the freedom of use of the NeXus API available under the GNU General Public License, it allows commercial developers to incorporate the code into any software that is subsequently sold for profit. We feel that this should be beneficial to the NeXus community in the long run. If you have any comments on this -decision, please send them to the NeXus mailing list. Monday, October -18, 1999:A new version of the NeXus API has been released. It is now +decision, please send them to the NeXus mailing list. + +**Monday, October 18, 1999**: + +A new version of the NeXus API has been released. It is now version 1.2.0. Check the release notes for information concerning the -changes, which mostly involve minor bug fixes. Monday, September 20, -1999:The NeXus Home Page has been redesigned to make it easier to find +changes, which mostly involve minor bug fixes. + +**Monday, September 20, 1999**: + +The NeXus Home Page has been redesigned to make it easier to find individual web pages. If it does not format well in your browser, please -let me know. Friday, September 10, 1999:A small (but significant) error +let me know. + +**Friday, September 10, 1999**: + +A small (but significant) error has been corrected in the Fortran 90 example program. The file\\_id variable should be declared as the derived type NXhandle, i.e. type(NXhandle) :: file_id and not as a character string. Apologies if @@ -307,37 +462,61 @@ they prove useful, we will see if they can be implemented in C and/or F77. A simple terminal browser for a NeXus file, NXbrowse.f90, has been written. After compiling, linking, and running, type HELP at the terminal for a list of available commands (upper or lower case). -Thursday, August 12, 1999:Freddie Akeroyd has set up an archive of the + +**Thursday, August 12, 1999**: + +Freddie Akeroyd has set up an archive of the NeXus mailing list. The latest version of the NeXus API, which contains changes to the way NeXus groups are linked, has been installed. The previous method was not 100% reliable. Some of the links to Fortner -Software have been updated at their request. Saturday, June 5, 1999:Some -extra definitions to the NeXus glossary have been added e.g. definitions +Software have been updated at their request. + +**Saturday, June 5, 1999**: + +Some extra definitions to the NeXus glossary have been added e.g. definitions of NXdetector, NXcollimator, and NXattenuator. These are based on suggestions by Ron Ghosh and Chris Moreton-Smith a while ago, but I never got around to putting them on the web. Please view these definitions critically when you have need to use them. Friday, April 2, 1999:A site map has been added so that it is easier to find some of the -lower-lying web pages. 1998 ---- Wednesday, November 25, 1998:An -explicit set of instructions for identifying plottable data has been +lower-lying web pages. + +1998 +---- + +**Wednesday, November 25, 1998**: + +An explicit set of instructions for identifying plottable data has been added, since this is an important aim of the NeXus format. This issue came up in the NeXus mailing list a while ago, but I never added it to the web pages. The instructions reported here will, at some stage, be -incorporated into a higher-level suite of API routines. Friday, November -20, 1998:The first release of HDF5 v 1.0.0 is now available. Only Unix +incorporated into a higher-level suite of API routines. + +**Friday, November 20, 1998**: + +The first release of HDF5 v 1.0.0 is now available. Only Unix platforms are currently supported, so we will not change the NeXus API just yet. However, preliminary views of the revised HDF API suggest that we can layer the NeXus API transparently on top of HDF5 with no effect on user applications. Since HDF have not yet finalized their plans to ensure backward compatibility, we don't know what the implications for existing NeXus files are yet. I have added some notes to the -introduction to the NeXus API. Friday, September 4, 1998:Mark Koennecke -has provided an IDL 5.1 interface to the NeXus API. I have included +introduction to the NeXus API. + +**Friday, September 4, 1998**: + +Mark Koennecke has provided an IDL 5.1 interface to the NeXus API. I have included links to it in the API section. I also updated the Status section. -Friday, April 17, 1998:The NAPI code has been updated on the FTP site to + +**Friday, April 17, 1998**: + +The NAPI code has been updated on the FTP site to change the type specification in NXgetattr from char \\*data to void -\\*data. Tuesday, April 14, 1998:Although there have been no major -changes to the NeXus web pages for several months, there has been +\\*data. + +**Tuesday, April 14, 1998**: + +Although there have been no major changes to the NeXus web pages for several months, there has been considerable activity behind the scenes in developing the NeXus API. A CVS (Concurrent Versions System) server has been set up by Freddie Akeroyd to coordinate those involved in developing the NeXus API. The @@ -363,22 +542,37 @@ will refer to the first dimension whereas in Fortran, it will refer to the last. If you have any views on this vexed subject, please address them to the NeXus mailing list. Thursday, February 12, 1998:The latest version of openGenie can read and write NeXus files. Check the openGenie -web pages for more details. 1997 ---- Monday, August 25, 1997:A few -minor errors in the example programs in the NeXus API section have been +web pages for more details. + +1997 +---- + +**Monday, August 25, 1997**: + +A few minor errors in the example programs in the NeXus API section have been corrected. Following Freddie Akeroyd's suggestion, I have added a conversion table from C to Fortran for the subroutine arguments. Some of the instrument descriptions have been modified to make them simpler. The aim of this section is to give the minimum required parameters for meaningful data analysis although, in general, people will want to store extra information. Installation instructions have been added to the end -of the API section. Thursday, August 14, 1997:As I warned, we have moved -the FTP site to its semi-permanent location. Look for the API at <>. The -web pages have been updated accordingly. Sunday, August 10, 1997:A -discussion of the storage of histograms in NXdata groups to the NeXus +of the API section. + +**Thursday, August 14, 1997**: + +As I warned, we have moved the FTP site to its semi-permanent location. Look for the API at <>. The +web pages have been updated accordingly. + +**Sunday, August 10, 1997**: + +A discussion of the storage of histograms in NXdata groups to the NeXus structure chapter has been added following some comments by Phil Seeger (LANL). Phil Seeger also pointed out that we had omitted to specify the storage of data errors. This has been added to the NeXus glossary. -Friday August 8, 1997:The FTP URLs have been moved to <> because of some + +**Friday August 8, 1997**: + +The FTP URLs have been moved to <> because of some problems with the original server. This is a temporary move, so please check these pages before downloading future versions of the API. A set of helper routines designed to simplify the base API by combining diff --git a/source/general_content/Linking_External_Files.rst b/source/general_content/Linking_External_Files.rst index 6f57182b..c7924fee 100644 --- a/source/general_content/Linking_External_Files.rst +++ b/source/general_content/Linking_External_Files.rst @@ -2,17 +2,17 @@ Linking External Files ====================== - ---- title: Linking External Files permalink: Linking_External_Files.html -layout: wiki --- Linking External Files ---------------------- This -discussion is on how to access external files from within a given NeXus +This discussion is on how to access external files from within a given NeXus files. This defeats one guiding principle of NeXus: to have everything in one file, somewhat. However, having everything in one file can mean replicating large time-of-flight empty can or vanadium datasets in each data file. In such cases it would be nice to access transparently an external file holding such data. This page discusses some of the -implementation issues of such a scheme. ### Storing External File -Information Somehow the information that an external file has to be +implementation issues of such a scheme. + +**Storing External File Information Somehow** + +the information that an external file has to be accessed must be stored within the parent NeXus file. Given the feature set of NeXus, I suggest storing this information as an attribute of a NeXus object. It would be sensible to restrict this attribute to NeXus @@ -23,8 +23,11 @@ the fashion of the day but also gives a lot of freedom to implement various file access strategies and even file formats. As it might be necessary to specify alternative locations for a given external file, I suggest allowing multiple URLs separated by :: It must be :: because a -single colon can be part of a valid URL. ### Implementing External File -Access At The NAPI Level Various issues have to be adressed when +single colon can be part of a valid URL. + +**Implementing External File** + +Access At The NAPI Level Various issues have to be addressed when implementing external file access. The most important one is how to transparently navigate the file hierarchy resulting from external linking. In order to handle this, I suggest changing NXhandle. Currently @@ -39,8 +42,11 @@ has to check if it is leaving a mounted file and if this is the case, has to close the file and to pop the expired pNexusFunction structure from the stack. If we choose to implement external linking on datasets too a similar scheme would have to be implemented for NXopendata and -NXclosedata. ### Actually Accessing The External File This section is -about schemes for actually opening an external file as specified by a +NXclosedata. + +**Actually Accessing The External File** + +This section is about schemes for actually opening an external file as specified by a URL. Accessing an external NeXus file within the same file system is the easiest case: just open the path! It becomes moderately more complex when accessing NeXus files which are available through the http or ftp @@ -67,23 +73,48 @@ cause stability and maintainance problems due to the reliance on many shared libraries. ### Summary And Open Issues Summing it up, implementing external linking is definitely possible and implementable within a reasonable amount of time. Group attributes would have to be -implemented first though. Open questions include: - Do we restrict -external linking to groups? - Is the suggested path to an implementation -acceptable? There might be others. - Which level do we implement? - -Local NeXus files only? - Download, cache, access through a library -included with the NeXus-API? Which library then? - cURL? - Download and -cache delegated to external programs? - Dynamically loadable URL -Handlers? - Dynamically loadable physical file format handlers? - Your -question here! My two cents worth of opinion: shared libraries always -annoy me, I like big statically built things, especially as disk space -is cheap these days. I would implement a local disk access version first -in order to get the mechanics right, followed by a version implementing -the download, cache and access NeXus files scheme using cURL. Both -versions would restrict external linking to groups. Decisions NIAC 2006, -ILL, February 2006 --------------------------------------- - mount -becomes napimount - NXinquirefile, which file we are actually - nxdir -expanded to print and copy dependencies - Files are searched in -NX\\_LOAD\\_PATH - getenv becomes napigetenv in order to address -platform problems with getenv - External linking will only implement -local linking first. - If network linking is implemented, the use of -libcurl is preferred. - network linking is deferred, may be indefinitly +implemented first though. Open questions include: + +- Do we restrict external linking to groups? + +- Is the suggested path to an implementation acceptable? There might be others. + +- Which level do we implement? + +- Local NeXus files only? + +- Download, cache, access through a library included with the NeXus-API? Which library then? + +- cURL? + +- Download and cache delegated to external programs? + +- Dynamically loadable URL Handlers? + +- Dynamically loadable physical file format handlers? + +- Your question here! My two cents worth of opinion: shared libraries always + annoy me, I like big statically built things, especially as disk space + is cheap these days. I would implement a local disk access version first + in order to get the mechanics right, followed by a version implementing + the download, cache and access NeXus files scheme using cURL. Both + versions would restrict external linking to groups. + +Decisions NIAC 2006, ILL, February 2006 +--------------------------------------- + +- mount becomes napimount + +- NXinquirefile, which file we are actually + +- nxdir expanded to print and copy dependencies + +- Files are searched in NX\\_LOAD\\_PATH + +- getenv becomes napigetenv in order to address platform problems with getenv + +- External linking will only implement local linking first. + +- If network linking is implemented, the use of libcurl is preferred. + +- network linking is deferred, may be indefinitly diff --git a/source/general_content/NXbrowse.rst b/source/general_content/NXbrowse.rst index ee74272f..37c24d4b 100644 --- a/source/general_content/NXbrowse.rst +++ b/source/general_content/NXbrowse.rst @@ -3,12 +3,16 @@ NXbrowse ======== ---- title: NXbrowse permalink: NXbrowse.html layout: wiki --- NXbrowse +NXbrowse is a terminal browser that provides a simple command-line interface to view the contents of NeXus files. Datasets within the NeXus file can be dumped to an ASCII file. If you have any questions/comments/bug reports -email [Ray Osborn](mailto:ROsborn@anl.gov). Usage ----- A simple -terminal browser written in ISO C (replacing the earlier version in +email [Ray Osborn](mailto:ROsborn@anl.gov). + +Usage +----- + +A simple terminal browser written in ISO C (replacing the earlier version in Fortran 90). When compiled and linked with the NeXus API, it can be run interactively to list the directories of each group within a NeXus file. If used from a terminal (and installed in the default PATH @@ -51,10 +55,10 @@ commands. The following commands may be given in upper or lower case | help | List the available commands. | +--------------------+-------------------------------------------------+ -Installation ------------ NXbrowse is now installed as part of the -standard NeXus installation. See the [NeXus Downloads -section](Application_Program_Interface#Downloads.html "wikilink") for +Installation +------------ + +NXbrowse is now installed as part of the +standard NeXus installation. See the [NeXus Downloads section](Application_Program_Interface#Downloads.html "wikilink") for more details. If you encounter any bugs, please report them using the -[NeXus -bugzilla](Application_Program_Interface#Reporting_Bugs_in_the_NeXus_API.html -"wikilink"). +[NeXus bugzilla](Application_Program_Interface#Reporting_Bugs_in_the_NeXus_API.html "wikilink"). diff --git a/source/general_content/NXdir.rst b/source/general_content/NXdir.rst index 3552ea6f..adc7efb5 100644 --- a/source/general_content/NXdir.rst +++ b/source/general_content/NXdir.rst @@ -1,55 +1,100 @@ -===== NXdir ===== +NXdir is a console based tool that allows inspecting the contents of a NeXus file. +It allows for directory-like listing of contents as well as printing out data. If you +have any questions/comments/bug reports, email Peter Peterson . + +News +---- + +- May 7, 2004: New version of NXdir is v0.2.5. This version now supports NX_INT8 + and NX_UINT8 as well as fixes some bugs with reading integers from a NeXus file. +- Apr 15, 2004: New version of NXdir is v0.2.4. The added feature is writing out + an NXdata to file (1D and 2D only for now). Let me know if the format should be changed. +- Mar 17, 2004: New version of NXdir is v0.2.3. This version provides more consistency + between absolute and relative paths. It also allows for anchoring the path at both ends + using a /. +- Mar 01, 2004: First public release of NXdir is v0.2.2 with Linux binary here. + +Usage +----- + +NXdir runs on the command line with a variety of arguments. Below is the online help +information (note that defaults can be changed during compilation). + +About NXdir +------------ + +- `-h` / `--help` +- `--version` +- Node Selection: + - `-p` +- Output Control: + - `-o/+o` + - `-l` / `--max-array [value]` + - `-t` / `--tree-mode` + - `--path-mode` + - `--data-mode` + - `--printline` + - `--write-data` + +Some common usages are: + +- Print the online help: + +**nxdir --help** + +- List everything at the root level of the file: `nxdir lrcs3000.nxs` + +- Find the user names in all of the files in the directory: + `nxdir *.nxs -p NXuser/name -o` + +- Find all the data in a file: `nxdir NPDF_E2_R0003000.nx.hdf -p NXdata` + +- Print out how the entire file is organized: `nxdir trics058582002.hdf -p "*"` (The asterisk is in quotes so it is not expanded by the shell) + +Downloads +--------- + +- NXdir-v0.2.5.tar.gz + +- NXdir-v0.2.4.tar.gz + +- NXdir-v0.2.3.tar.gz + +- NXdir-v0.2.2.tar.gz + +- CHANGES + +Prerequisites +------------- + +- C++ compiler + +- NeXus libraries or + +- Precompiled binary + +Installation +------------ + +Binary: Some binaries can be found above. Download, rename to something you will remember (like nxdir), and move into your path. + +Unix/Linux/Irix/MacOSX: Unpack the tarball, enter the directory, and type `make`. Copy the resulting binary `nxdir` into your path. + +Un-installing +------------- + +Remove the file `nxdir`. The installation process did not modify the registry or other system settings in any way. + +Frequently Asked Questions (FAQ) +-------------------------------- + +**What is NXdir?** + +NXdir is a console tool used for inspecting the contents of a NeXus file. It can print out the organization of the file as well as any data enclosed. It is intended to be a cross between the Unix tools `ls` and `grep`. It should help people writing scripts access NeXus files without having to compile in the NeXus API. + +**The way NXdir prints arrays is hard to read, could you please change it?** ---- title: NXdir permalink: NXdir.html layout: wiki --- NXdir is a -console based tool that allows inspecting the contents of a NeXusfile. -It allows for directory like listing of contents as well as printing out -data. If you have any questions/comments/bug reports email Peter -Peterson News ---- May 7, 2004:New version of -NXdir is v0.2.5. This version now supports NX\\_INT8 and NX\\_UINT8 as -well as fixes some bugs with reading integers from a nexus file. Apr 15, -2004:New version of NXdir is v0.2.4. The added feature is writing out an -NXdata to file (1D and 2D only for now). Let me know if the format -should be changed. Mar 17, 2004:New version of NXdir is v0.2.3. This -version provides more consistency between abolsute and relative paths. -It also allows for anchoring the path at both ends using a /. Mar 01, -2004:First public release of NXdir is v0.2.2 with linux binary here. -Usage ----- NXdir runs on the command line with a variety of arguments. -Below is the online help information (note that defaults can be changed -during compilation). \| About NXdir \| \|--------------------------\| \| --h\|--help \| \| --version \| \| Node Selection \| \| -p \| \| Output -Control \| \| -o/+o \| \| -l\|--max-array \\[value\\] \| \| --t\|--tree-mode \| \| --path-mode \| \| --data-mode \| \| --printline \| -\| --write-data \| Some common usages are: - Print the online help: -nxdir --help - List the everything at the root level of the file: nxdir -lrcs3000.nxs - Find the user names in all of the files in the directory: -nxdir \*.nxs -p NXuser/name -o - Find all the data in a file: nxdir -NPDF_E2_R0003000.nx.hdf -p NXdata - Print out how the entire file is -organized nxdir trics058582002.hdf -p "\*" (The asterix is in quotes so -it is not expanded by the shell) Downloads --------- - -[NXdir-v0.2.5.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- -[NXdir-v0.2.4.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- -[NXdir-v0.2.3.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- -[NXdir-v0.2.2.tar.gz](ftp://ftp.neutron.anl.gov/nexus/NXdir/NXdir-0.2.5.tar.gz) -- [CHANGES](ftp://ftp.neutron.anl.gov/nexus/NXdir/CHANGES) Prerequisites -------------- - C++ compiler - NeXus libraries or - Precompiled binary -Installation ------------ Binary:Some binaries can be found above. -Download, rename to something you will remember (like nxdir) and move -into your path. Unix/Linux/Irix/MacOSX:Unpack the tarball, enter the -directory and type make. Copy the resulting binary nxdir into your path. -Un-installing ------------- Remove the file \`nxdir\`. The installation -process did not modify the registry or other system settings in any way. -Frequently Asked Questions (FAQ) -------------------------------- What -is NXdir?:NXdir is a console tool used for inspection the contents of a -NeXus file, it can print out the organization of the file as well as any -data enclosed. It is intended to be a cross between the unix tools ls -and grep. It should help people writing scripts access to NeXus files -without having to compile in the NeXus API. The way NXdir prints arrays -is hard to read, could you please change it?:No, but a format easier for -you to read can be added. Please send an example of a two dimensional -array in a format you like. +No, but a format easier for you to read can be added. Please send an example of a two-dimensional array in a format you like. \ No newline at end of file diff --git a/source/general_content/NXgeometry_and_NXshape_-_documentation_and_review.rst b/source/general_content/NXgeometry_and_NXshape_-_documentation_and_review.rst index 2bb235c5..2801005b 100644 --- a/source/general_content/NXgeometry_and_NXshape_-_documentation_and_review.rst +++ b/source/general_content/NXgeometry_and_NXshape_-_documentation_and_review.rst @@ -3,84 +3,177 @@ NXgeometry and NXshape - documentation and review ================================================= ---- title: NXgeometry and NXshape - documentation and review permalink: -NXgeometry_and_NXshape\_-\_documentation_and_review.html layout: wiki ---- NXgeometry ---------- ![ upright \| frame \| right \| c \| UML -diagramm of the relations between the different geometry related base -classes. ](Nxgeometry_uml.png "fig: upright \| frame \| right \| c \| -UML diagramm of the relations between the different geometry related -base classes. ") Geometries in Nexus are described using the -\*[NXgeometry](https://manual.nexusformat.org/classes/base_classes/NXgeometry.html)\* -base class. As shown in the UML diagramm on the right side this class -consists basically of three other base classes (composition): -\*NXshape\*, \*NXtranslation\*, and \*NXorientation\*. As far as I -understand the \*NXgeometry\* class it describes a single shape -(geometric object). This fact makes the dimensionality of several -attributes of the the other classes a bit odd (see below). However, -aside from this \*NXgeometry\* is quite ok. Note: the NeXus User Guide -describes the coordinate system here: - NXtranslation ------------- -\*[NXtranslation](https://manual.nexusformat.org/classes/base_classes/NXtranslation.html)\* -has an attribute \*distances\* of shape \`[numobj,3]\`. If, as stated -above, \*NXgeometry\* seems to describe only a single shape the first -dimension has no meaning. A dimensionality of \`[3]\` would be enough -for this field. NXorientation ------------- -\*[NXorientation](https://manual.nexusformat.org/classes/base_classes/NXorientation.html)\* -has an attribute \*value\* of shape \`[numobj,6]\`. If, as stated above, -\*NXgeometry\* seems to describe only a single shape the first dimension -has no meaning. A dimensionality of \`[6]\` would be enough for this -field. NXshape ------- -\*[NXshape](https://manual.nexusformat.org/classes/base_classes/NXshape.html)\* -This is where all the problems start. In fact there are three issues -with this class: 1. as for \*NXtranslation\* and \*NXorientation\* the -first dimension of the \*size\* attribute (\`numobj\`) has no meaning 2. -what is the attribute \*direction\* good for (its values \*convex\* and -\*concave\* are not defined) 3. last but not least: the shapes are not -defined well (this is the major issue) The last problem will be -discussed in more detail in the following sections. ### Definition of -geometric primitives Every geometric primitive requires a local -coordinate frame. All translations applied on a primitive will act on -the origin of this local frame. Additionally, the origin of this frame -of reference will act as a center for all rotations applied on the -primitive. Unfortunately, the 9 geometric primitives currently available -in Nexus are not defined in such a sense. The following sections provide -some possible definitions of these primitives along with the layout of -their parameters stored in the \*size\* attribute of \*NXshape\*. \| -Shape and coordinate frame for an \*nxflat\* \| An \*nxcylinder\* in its -local frame \| An \*nxbox\* in its local frame #### nxflat \*nxflag\* -can be considered as a flat plane. The plane defines the x-y-plane of -its local coordinate frame. The z-axis of this system is oriented so -that the resulting reference frame is a right-handed one. The shape has -two parameters: its \*height\* and \*width\* which will be stored in the -\*size\* attribute of \*NXshape\* as follows -\`NXshape::size[2]={width,height}\` #### nxcylinder The origin of the -local coordinate frame for \*nxcylinder\* is in the center of its -bottom. An \*nxcylinder\* has 5 parameters: radius, height, and the -three components of the direction vector v (see the figure above). These -parameters are stored in the \*size*attribute of \*NXshape\* as follows -\`NXshape::size[5]={radius,height,vx,vy,vz}\` v is here simply a unit -vector pointing in the direction of the main axis of the cylinder. #### -nxbox \`NXshape::size[3]={length,width,height}\` \| Shape and -coordinate frame for an \*nxsphere\* \| Shape and coordinate frame for -an \*nxsphere\* \| Shape and coordinate frame for an \*nxelliptical\* -#### nxsphere \`NXshape::size[1]={radius}\` #### nxcone Like for -NXcylinder the vector v is simply a unit vector pointing to the tip of -the cylinder (no direction cosines or something else fancy). -\`NXshape::size[4]={radius,vx,vy,vz}\` #### nxelliptical -\`NXshape::size[2]={semi-majoraxis,semi-minoraxis}\` I have no idea -what the other two parameters \*pole\* and \*angle of major axis\* are -good for. Maybe we can drop them. \| Shape and coordinate frame for an -\*nxtoroidal\* \| Shape and coordinate frame for an \*nxparabolic\* \| -Shape and coordinate frame for an \*nxpolynomial\* #### nxtoroidal -\`NXshape::size[2]={minorradius,majorradius}\` #### nxparabolic This -is a poorly designed shape. Only the parapolic parameter \*a\* is +.. image:: ../extra_files/Nxgeometry_uml.png + :alt: UML diagram of the relations between the different geometry related base classes. + :align: right + :class: upright frame + +Geometries in Nexus are described using the +`NXgeometry `_ +base class. As shown in the UML diagram on the right side, this class +consists basically of three other base classes (composition): *NXshape*, +*NXtranslation*, and *NXorientation*. As far as I understand the +*NXgeometry* class, it describes a single shape (geometric object). This +fact makes the dimensionality of several attributes of the other +classes a bit odd (see below). However, aside from this, *NXgeometry* is +quite ok. + +Note: the NeXus User Guide describes the coordinate system here: + +- https://manual.nexusformat.org/design.html#nexus-coordinate-systems + +NXtranslation +------------- + +`NXtranslation `_ +has an attribute *distances* of shape ``[numobj,3]``. If, as stated above, +*NXgeometry* seems to describe only a single shape, the first dimension +has no meaning. A dimensionality of ``[3]`` would be enough for this +field. + +NXorientation +------------- + +`NXorientation `_ +has an attribute *value* of shape ``[numobj,6]``. If, as stated above, +*NXgeometry* seems to describe only a single shape, the first dimension +has no meaning. A dimensionality of ``[6]`` would be enough for this +field. + +NXshape +------- + +`NXshape `_ + +This is where all the problems start. In fact, there are three issues +with this class: + +1. As for *NXtranslation* and *NXorientation*, the first dimension of + the *size* attribute (``numobj``) has no meaning. +2. What is the attribute *direction* good for (its values *convex* and + *concave* are not defined)? +3. Last but not least: the shapes are not defined well (this is the + major issue). + +The last problem will be discussed in more detail in the following +sections. + +Definition of geometric primitives +---------------------------------- + +Every geometric primitive requires a local coordinate frame. All +translations applied on a primitive will act on the origin of this local +frame. Additionally, the origin of this frame of reference will act as a +center for all rotations applied on the primitive. Unfortunately, the 9 +geometric primitives currently available in Nexus are not defined in +such a sense. The following sections provide some possible definitions +of these primitives along with the layout of their parameters stored in +the *size* attribute of *NXshape*. + +.. image:: ../extra_files/nxflat_image.png + :alt: Shape and coordinate frame for an *nxflat* + +.. image:: ../extra_files/Nxcylinder.png + :alt: An *nxcylinder* in its local frame + +.. image:: ../extra_files/Nxbox_image.png + :alt: An *nxbox* in its local frame + +nxflat +~~~~~~ + +*nxflat* can be considered as a flat plane. The plane defines the +x-y-plane of its local coordinate frame. The z-axis of this system is +oriented so that the resulting reference frame is a right-handed one. +The shape has two parameters: its *height* and *width*, which will be +stored in the *size* attribute of *NXshape* as follows: + +``NXshape::size[2]={width,height}`` + +nxcylinder +~~~~~~~~~~ + +The origin of the local coordinate frame for *nxcylinder* is in the +center of its bottom. An *nxcylinder* has 5 parameters: radius, height, +and components of the direction vector v (see the figure +above). These parameters are stored in the *size* attribute of *NXshape* +as follows: + +``NXshape::size[5]={radius,height,vx,vy,vz}`` + +v is here simply a unit vector pointing in the direction of the main +axis of the cylinder. + +nxbox +~~~~~ + +``NXshape::size[3]={length,width,height}`` + +.. image:: ../extra_files/nxsphere_image.png + :alt: Shape and coordinate frame for an *nxsphere* + +.. image:: ../extra_files/nxcone.png + :alt: Shape and coordinate frame for an *nxsphere* + +.. image:: ../extra_files/nxeliptical_image.png + :alt: Shape and coordinate frame for an *nxelliptical* + +nxsphere +~~~~~~~~ + +``NXshape::size[1]={radius}`` + +nxcone +~~~~~~ + +Like for *nxcylinder*, the vector v is simply a unit vector pointing to the +tip of the cylinder (no direction cosines or something else fancy). + +``NXshape::size[4]={radius,vx,vy,vz}`` + +nxelliptical +~~~~~~~~~~~~ + +``NXshape::size[2]={semi-major axis,semi-minor axis}`` + +I have no idea what the other two parameters *pole* and *angle of major +axis* are good for. Maybe we can drop them. + +.. image:: ../extra_files/nxtoroidal.png + :alt: Shape and coordinate frame for an *nxtoroidal* + +.. image:: ../extra_files/nxparabolic.png + :alt: Shape and coordinate frame for an *nxparabolic* + +.. image:: ../extra_files/nxpolynomial.png + :alt: Shape and coordinate frame for an *nxpolynomial* + +nxtoroidal +~~~~~~~~~~ + +``NXshape::size[2]={minor radius,major radius}`` + +nxparabolic +~~~~~~~~~~~ + +This is a poorly designed shape. Only the parabolic parameter *a* is defined in the current documentation. I included here at least the -height of the parabola. However it is indeed not clear whether or not +height of the parabola. However, it is indeed not clear whether or not this should be a 2D object or a 3D object. We definitely have to discuss -this. #### nxpolynomial Like \*nxparabolic\* this shape is rather poorly -designed. Besides the coefficients of the polynomial at least the bounds -of the interval on which the polynomial should be evaluated are required -to define the geometry. Also, like with \*nxparabolic\*, it is not clear -if this is a 2D or 3D object - both would be possible. We need to define -this more thoroughly. Update 01/2015 -------------- At NIAC 2014 it was -decided to deprecate NXgeometry. But this can still serve to document -NXgeometry better. +this. + +nxpolynomial +~~~~~~~~~~~~ + +Like *nxparabolic*, this shape is rather poorly designed. Besides the +coefficients of the polynomial, at least the bounds of the interval on +which the polynomial should be evaluated are required to define the +geometry. Also, like with *nxparabolic*, it is not clear if this is a 2D +or 3D object - both would be possible. We need to define this more +thoroughly. + +Update 01/2015 +-------------- + +At NIAC 2014, it was decided to deprecate *NXgeometry*. But this can still +serve to document *NXgeometry* better. \ No newline at end of file diff --git a/source/general_content/NXlrcs.f90.rst b/source/general_content/NXlrcs.f90.rst index 13daec7b..6959c577 100644 --- a/source/general_content/NXlrcs.f90.rst +++ b/source/general_content/NXlrcs.f90.rst @@ -3,125 +3,184 @@ NXlrcs.f90 ========== ---- title: NXlrcs.f90 permalink: NXlrcs.f90.html layout: wiki --- -program NXlrcs use IPNS_module use NXUmodule type(IPNS_histogram) :: -hist type(IPNS_sgarray) :: sgarray type(IPNS_subgroup) :: sg -type(IPNS_timefield) :: tf integer, dimension(:), allocatable :: sglist -integer :: int_value real :: real_value character(len=80) :: char_value, -entry character(len=40) :: argv character(len=4) :: run_no -character(len=24) :: iso_time character(len=18) :: IPNS_time real :: L1 -integer :: char_size, Nhist, Nsg, i, j, status type(NXhandle) :: file_id -type(NXlink) :: phi_id, time_id, M1_id, M2_id !Open LRMECS run file i = -IARGC() if (i == 0) then write (unit=\*, fmt="(a)", advance="no") " Give -run number : " read \*, int_value else call GETARG (i, argv) read -(trim(argv), "(i10)") int_value end if write (run_no, fmt="(i4.4)") -int_value call open_IPNS_file ("/data/lrmecs/lrcs"//run_no//".run") if -(.not. IPNS_OK) then print \*, IPNS_message stop end if !Open NeXus -output file and write global attributes if (NXopen -("lrcs"//run_no//".nxs", NXACC_CREATE, file_id) /= NX_OK) stop call -get_IPNS_item ("NAM", char_value, item_size=char_size) if -(NXUwriteglobals (file_id, trim(char_value(1:char_size))) /= NX_OK) stop -call get_IPNS_item ("NHT", Nhist) !Set default compression algorithm for -larger data sets if (NXUsetcompress (file_id, NX_COMP_LZW) /= NX_OK) -stop !Loop over each run-file histogram do i = 1,Nhist !Open one NXentry -for each histogram write (entry, fmt="(a,i1)") "Histogram", i if -(NXUwritegroup (file_id, entry, "NXentry") /= NX_OK) stop call -get_IPNS_item ("TTL", char_value) if (NXUwritedata (file_id, "title", -char_value) /= NX_OK) stop if (NXUwritedata (file_id, "analysis", -"TOFNDGS") /= NX_OK) stop call get_IPNS_item ("SDT", char_value) -IPNS_time(1:10) = char_value//" " call get_IPNS_item ("STM", char_value) -IPNS_time(11:18) = char_value call convert_time (IPNS_time, iso_time) if -(NXUwritedata (file_id, "start_time", iso_time) /= NX_OK) stop call -get_IPNS_item ("EDT", char_value) IPNS_time(1:10) = char_value//" " call -get_IPNS_item ("ETM", char_value) IPNS_time(11:18) = char_value call -convert_time (IPNS_time, iso_time) if (NXUwritedata (file_id, -"end_time", iso_time) /= NX_OK) stop call get_IPNS_item ("RUN", -int_value) if (NXUwritedata (file_id, "run_number", int_value) /= NX_OK) -stop !Open NXsample if (NXUwritegroup (file_id, "sample", "NXsample") /= -NX_OK) stop call get_IPNS_item ("L1", L1) if (NXUwritedata (file_id, -"distance", 0.0, "m") /= NX_OK) stop if (NXUwritedata (file_id, -"moderator_distance", L1, "m") /= NX_OK) stop if (NXclosegroup (file_id) -/= NX_OK) stop !Open NXinstrument call get_IPNS_item (i, hist) Nsg = -size(hist%sg) if (i == 1) then allocate (sglist(nsg-2)) sglist = (/ (i, -i=3,Nsg) /) else allocate (sglist(Nsg)) sglist = (/ (i, i=1,Nsg) /) end -if call get_IPNS_item (sglist, sgarray, i) deallocate (sglist) if -(NXUwritegroup (file_id, "LRMECS", "NXinstrument") /= NX_OK) stop !Open -NXsource if (NXUwritegroup (file_id, "source", "NXsource") /= NX_OK) -stop if (NXUwritedata (file_id, "distance", -L1, "m") /= NX_OK) stop -call get_IPNS_item ("PLS", int_value) if (NXUwritedata (file_id, -"proton_pulses", int_value) /= NX_OK) stop if (NXUwritedata (file_id, -"name", "IPNS") /= NX_OK) stop if (NXUwritedata (file_id, "type", -"Spallation Neutron Source") /= NX_OK) stop if (NXUwritedata (file_id, -"frequency", 30.0, "Hz") /= NX_OK) stop if (NXUwritedata (file_id, -"target_material", "depleted_U") /= NX_OK) stop if (NXUwritedata -(file_id, "moderator", "CH4") /= NX_OK) stop if (NXclosegroup (file_id) -/= NX_OK) stop !Open NXchopper if (NXUwritegroup (file_id, -"monochromator", "NXchopper") /= NX_OK) stop call get_IPNS_item ("LCH", -real_value) if (NXUwritedata (file_id, "distance", real_value-L1, "m") -/= NX_OK) stop if (NXUwritedata (file_id, "moderator_distance", -real_value, "m") /= NX_OK) stop if (NXUwritedata (file_id, "type", -"Fermi") /= NX_OK) stop call get_IPNS_item ("EIN", real_value) if -(NXUwritedata (file_id, "energy", real_value, "meV") /= NX_OK) stop if -(NXputattr (file_id, "calibration_status", "Nominal") /= NX_OK) stop if -(NXclosegroup (file_id) /= NX_OK) stop !Open NXdetector if -(NXUwritegroup (file_id, "detector_bank", "NXdetector") /= NX_OK) stop -if (NXUwritedata (file_id, "distance", sgarray%L2, "m") /= NX_OK) stop -if (NXUwritedata (file_id, "type", "He3 gas cylinder") /= NX_OK) stop if -(NXUwritedata (file_id, "gas_pressure", 6.0, "bars") /= NX_OK) stop if -(NXUwritedata (file_id, "time_of_flight", sgarray%time_of_flight, -"microseconds") /= NX_OK) stop if (NXgetdataID (file_id, time_id) /= -NX_OK) stop if (NXputattr (file_id, "long_name", "Time-of-Flight -[microseconds]") /= NX_OK) stop if (NXUwritedata (file_id, -"polar_angle", sgarray%phi, "degrees") /= NX_OK) stop if (NXgetdataID -(file_id, phi_id) /= NX_OK) stop if (NXputattr (file_id, "long_name", -"Polar Angle [degrees]") /= NX_OK) stop if (NXclosegroup (file_id) /= -NX_OK) stop if (NXclosegroup (file_id) /= NX_OK) stop !Open NXmonitor if -(i == 1) then if (NXUwritegroup (file_id, "monitor1", "NXmonitor") /= -NX_OK) stop call get_IPNS_item (1, sg, i) if (NXUwritedata (file_id, -"distance", sg%L2, "m") /= NX_OK) stop if (NXUwritedata (file_id, -"moderator_distance", L1+sg%L2, "m") /= NX_OK) stop if (NXUwritedata -(file_id, "time_of_flight", sg%time_of_flight, "microseconds") /= NX_OK) -stop if (NXputattr (file_id, "long_name", "Time-of-Flight -[microseconds]") /= NX_OK) stop if (NXUwritedata (file_id, "data", -sg%counts, "counts") /= NX_OK) stop if (NXputattr (file_id, "signal", 1) -/= NX_OK) stop if (NXputattr (file_id, "long_name", "Monitor 1 Counts") -/= NX_OK) stop if (NXputattr (file_id, "axes", "[time_of_flight]") /= -NX_OK) stop if (NXgetgroupID (file_id, M1_id) /= NX_OK) stop call -free_IPNS_subgroup (sg) if (NXclosegroup (file_id) /= NX_OK) stop else -if (NXmakelink (file_id, M1_id) /= NX_OK) stop end if !Open NXmonitor if -(i == 1) then if (NXUwritegroup (file_id, "monitor2", "NXmonitor") /= -NX_OK) stop call get_IPNS_item (2, sg, i) if (NXUwritedata (file_id, -"distance", sg%L2, "m") /= NX_OK) stop if (NXUwritedata (file_id, -"moderator_distance", L1+sg%L2, "m") /= NX_OK) stop if (NXUwritedata -(file_id, "time_of_flight", sg%time_of_flight, "microseconds") /= NX_OK) -stop if (NXputattr (file_id, "long_name", "Time-of-Flight -[microseconds]") /= NX_OK) stop if (NXUwritedata (file_id, "data", -sg%counts, "counts") /= NX_OK) stop if (NXputattr (file_id, "signal", 1) -/= NX_OK) stop if (NXputattr (file_id, "long_name", "Monitor 2 Counts") -/= NX_OK) stop if (NXputattr (file_id, "axes", "[time_of_flight]") /= -NX_OK) stop if (NXgetgroupID (file_id, M2_id) /= NX_OK) stop if -(NXclosegroup (file_id) /= NX_OK) stop call free_IPNS_subgroup (sg) else -if (NXmakelink (file_id, M2_id) /= NX_OK) stop end if !Open NXdata if -(NXUwritegroup (file_id, "data", "NXdata") /= NX_OK) stop call -get_IPNS_item ("TTL", char_value) if (NXUwritedata (file_id, "title", -char_value) /= NX_OK) stop if (NXUwritedata (file_id, "data", -sgarray%counts, "counts") /= NX_OK) stop if (NXputattr (file_id, -"signal", 1) /= NX_OK) stop if (NXputattr (file_id, "axes", -"[polar_angle,time_of_flight]") /= NX_OK) stop if (NXputattr (file_id, -"long_name", "Neutron Counts") /= NX_OK) stop if (NXmakelink (file_id, -time_id) /= NX_OK) stop if (NXmakelink (file_id, phi_id) /= NX_OK) stop -if (NXclosegroup (file_id) /= NX_OK) stop if (NXclosegroup (file_id) /= -NX_OK) stop call free_IPNS_sgarray (sgarray) end do if (NXclose -(file_id) /= NX_OK) stop contains subroutine convert_time (IPNS_time, -iso_time) character(len=\*), intent(in) :: IPNS_time character(len=\*), -intent(out) :: iso_time integer :: year, month, day character(len=\*), -parameter :: months="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" iso_time = -"2000-01-01T01:01:00-0600" read (IPNS_time(8:9), fmt=\*) year if (year < -80) then iso_time(1:4) = "20"//IPNS_time(8:9) else iso_time(1:4) = -"19"//IPNS_time(8:9) end if month = ((index(months, IPNS_time(4:6)) - -1)/3) + 1 if (month < 10) then iso_time(6:6) = "0" write (iso_time(7:7), -fmt="(i1)") month else write (iso_time(6:7), fmt="(i2)") month end if -read (IPNS_time(1:2), fmt=\*) day if (day < 10) then iso_time(9:9) = "0" -write (iso_time(10:10), fmt="(i1)") day else write (iso_time(9:10), -fmt="(i2)") day end if iso_time(12:19) = IPNS_time(11:18) end subroutine -convert_time end program NXlrcs +.. code-block:: fortran + + program NXlrcs + use IPNS_module + use NXUmodule + type(IPNS_histogram) :: hist + type(IPNS_sgarray) :: sgarray + type(IPNS_subgroup) :: sg + type(IPNS_timefield) :: tf + integer, dimension(:), allocatable :: sglist + integer :: int_value + real :: real_value + character(len=80) :: char_value, entry + character(len=40) :: argv + character(len=4) :: run_no + character(len=24) :: iso_time + character(len=18) :: IPNS_time + real :: L1 + integer :: char_size, Nhist, Nsg, i, j, status + type(NXhandle) :: file_id + type(NXlink) :: phi_id, time_id, M1_id, M2_id + + ! Open LRMECS run file + i = IARGC() + if (i == 0) then + write (unit=*, fmt="(a)", advance="no") " Give run number : " + read *, int_value + else + call GETARG (i, argv) + read (trim(argv), "(i10)") int_value + end if + + write (run_no, fmt="(i4.4)") int_value + call open_IPNS_file ("/data/lrmecs/lrcs"//run_no//".run") + if (.not. IPNS_OK) then + print *, IPNS_message + stop + end if + + ! Open NeXus output file and write global attributes + if (NXopen("lrcs"//run_no//".nxs", NXACC_CREATE, file_id) /= NX_OK) stop + call get_IPNS_item ("NAM", char_value, item_size=char_size) + if (NXUwriteglobals(file_id, trim(char_value(1:char_size))) /= NX_OK) stop + + call get_IPNS_item ("NHT", Nhist) + + ! Set default compression algorithm for larger data sets + if (NXUsetcompress(file_id, NX_COMP_LZW) /= NX_OK) stop + + ! Loop over each run-file histogram + do i = 1, Nhist + ! Open one NXentry for each histogram + write (entry, fmt="(a,i1)") "Histogram", i + if (NXUwritegroup(file_id, entry, "NXentry") /= NX_OK) stop + call get_IPNS_item ("TTL", char_value) + if (NXUwritedata(file_id, "title", char_value) /= NX_OK) stop + if (NXUwritedata(file_id, "analysis", "TOFNDGS") /= NX_OK) stop + call get_IPNS_item ("SDT", char_value) + IPNS_time(1:10) = char_value//" " + call get_IPNS_item ("STM", char_value) + IPNS_time(11:18) = char_value + call convert_time(IPNS_time, iso_time) + if (NXUwritedata(file_id, "start_time", iso_time) /= NX_OK) stop + call get_IPNS_item ("EDT", char_value) + IPNS_time(1:10) = char_value//" " + call get_IPNS_item ("ETM", char_value) + IPNS_time(11:18) = char_value + call convert_time(IPNS_time, iso_time) + if (NXUwritedata(file_id, "end_time", iso_time) /= NX_OK) stop + call get_IPNS_item ("RUN", int_value) + if (NXUwritedata(file_id, "run_number", int_value) /= NX_OK) stop + + ! Open NXsample + if (NXUwritegroup(file_id, "sample", "NXsample") /= NX_OK) stop + call get_IPNS_item ("L1", L1) + if (NXUwritedata(file_id, "distance", 0.0, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "moderator_distance", L1, "m") /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + + ! Open NXinstrument + call get_IPNS_item (i, hist) + Nsg = size(hist%sg) + if (i == 1) then + allocate(sglist(nsg-2)) + sglist = (/ (i, i=3,Nsg) /) + else + allocate(sglist(Nsg)) + sglist = (/ (i, i=1,Nsg) /) + end if + call get_IPNS_item(sglist, sgarray, i) + deallocate(sglist) + if (NXUwritegroup(file_id, "LRMECS", "NXinstrument") /= NX_OK) stop + + ! Open NXsource + if (NXUwritegroup(file_id, "source", "NXsource") /= NX_OK) stop + if (NXUwritedata(file_id, "distance", -L1, "m") /= NX_OK) stop + call get_IPNS_item ("PLS", int_value) + if (NXUwritedata(file_id, "proton_pulses", int_value) /= NX_OK) stop + if (NXUwritedata(file_id, "name", "IPNS") /= NX_OK) stop + if (NXUwritedata(file_id, "type", "Spallation Neutron Source") /= NX_OK) stop + if (NXUwritedata(file_id, "frequency", 30.0, "Hz") /= NX_OK) stop + if (NXUwritedata(file_id, "target_material", "depleted_U") /= NX_OK) stop + if (NXUwritedata(file_id, "moderator", "CH4") /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + + ! Open NXchopper + if (NXUwritegroup(file_id, "monochromator", "NXchopper") /= NX_OK) stop + call get_IPNS_item ("LCH", real_value) + if (NXUwritedata(file_id, "distance", real_value-L1, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "moderator_distance", real_value, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "type", "Fermi") /= NX_OK) stop + call get_IPNS_item ("EIN", real_value) + if (NXUwritedata(file_id, "energy", real_value, "meV") /= NX_OK) stop + if (NXputattr(file_id, "calibration_status", "Nominal") /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + + ! Open NXdetector + if (NXUwritegroup(file_id, "detector_bank", "NXdetector") /= NX_OK) stop + if (NXUwritedata(file_id, "distance", sgarray%L2, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "type", "He3 gas cylinder") /= NX_OK) stop + if (NXUwritedata(file_id, "gas_pressure", 6.0, "bars") /= NX_OK) stop + if (NXUwritedata(file_id, "time_of_flight", sgarray%time_of_flight, "microseconds") /= NX_OK) stop + if (NXgetdataID(file_id, time_id) /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Time-of-Flight [microseconds]") /= NX_OK) stop + if (NXUwritedata(file_id, "polar_angle", sgarray%phi, "degrees") /= NX_OK) stop + if (NXgetdataID(file_id, phi_id) /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Polar Angle [degrees]") /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + + ! Open NXmonitor + if (i == 1) then + if (NXUwritegroup(file_id, "monitor1", "NXmonitor") /= NX_OK) stop + call get_IPNS_item(1, sg, i) + if (NXUwritedata(file_id, "distance", sg%L2, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "moderator_distance", L1+sg%L2, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "time_of_flight", sg%time_of_flight, "microseconds") /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Time-of-Flight [microseconds]") /= NX_OK) stop + if (NXUwritedata(file_id, "data", sg%counts, "counts") /= NX_OK) stop + if (NXputattr(file_id, "signal", 1) /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Monitor 1 Counts") /= NX_OK) stop + if (NXputattr(file_id, "axes", "[time_of_flight]") /= NX_OK) stop + if (NXgetgroupID(file_id, M1_id) /= NX_OK) stop + call free_IPNS_subgroup(sg) + if (NXclosegroup(file_id) /= NX_OK) stop + else + if (NXmakelink(file_id, M1_id) /= NX_OK) stop + end if + + ! Open NXmonitor + if (i == 1) then + if (NXUwritegroup(file_id, "monitor2", "NXmonitor") /= NX_OK) stop + call get_IPNS_item(2, sg, i) + if (NXUwritedata(file_id, "distance", sg%L2, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "moderator_distance", L1+sg%L2, "m") /= NX_OK) stop + if (NXUwritedata(file_id, "time_of_flight", sg%time_of_flight, "microseconds") /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Time-of-Flight [microseconds]") /= NX_OK) stop + if (NXUwritedata(file_id, "data", sg%counts, "counts") /= NX_OK) stop + if (NXputattr(file_id, "signal", 1) /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Monitor 2 Counts") /= NX_OK) stop + if (NXputattr(file_id, "axes", "[time_of_flight]") /= NX_OK) stop + if (NXgetgroupID(file_id, M2_id) /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + call free_IPNS_subgroup(sg) + else + if (NXmakelink(file_id, M2_id) /= NX_OK) stop + end if + + ! Open NXdata + if (NXUwritegroup(file_id, "data", "NXdata") /= NX_OK) stop + call get_IPNS_item("TTL", char_value) + if (NXUwritedata(file_id, "title", char_value) /= NX_OK) stop + if (NXUwritedata(file_id, "data", sgarray%counts, "counts") /= NX_OK) stop + if (NXputattr(file_id, "signal", 1) /= NX_OK) stop + if (NXputattr(file_id, "axes", "[polar_angle,time_of_flight]") /= NX_OK) stop + if (NXputattr(file_id, "long_name", "Sample Data") /= NX_OK) stop + if (NXclosegroup(file_id) /= NX_OK) stop + end do + + if (NXclose(file_id) /= NX_OK) stop + end program NXlrcs diff --git a/source/general_content/NXmeasurement.rst b/source/general_content/NXmeasurement.rst index 22f69a39..d4717e7e 100644 --- a/source/general_content/NXmeasurement.rst +++ b/source/general_content/NXmeasurement.rst @@ -1,32 +1,35 @@ -============= NXmeasurement ============= +This is a proposal for NeXus which comes out of the NeXus for Synchrotrons workshop at PSI. In order to satisfy the +requirements of the beamline scientist, an additional, simplified NeXus hierarchy is proposed: + +- entry: NXentry + +- measurement: NXmeasurement + +- positions: NXpositioners + +- scalars: NXscalar + +- images: NXimagedata + +Please note that this is an example of how an NXmeasurement group may look like. The general feeling was to allow much +freedom in NXmeasurement and standardize later on if a common pattern emerges. The meaning is that the NXpositioners +group contains a list of all constants and motor positions, NXscalar arrays of all parameters varied during the scan, +and NXimageData contains the images and other detector data that have been captured during a scan or measurement. + +This structure is for the expert, the instrument scientist, who knows his instrument by heart and wishes to be able to +plot anything against anything in his instrument. NXmeasurement is not meant to stand alone but is to be augmented with +further NXsubentries containing the data in proper NeXus notation and hierarchy. It was pointed out that such a +simplified view can be generated by a data analysis application from a full NeXus NXinstrument view. + +Conclusion +---------- + +01/2015: As an in-part answer to this proposal, the NIAC adopted the NXcollection base class as a free-form container +for things which no one cares to standardize. Data in NXcollection will not be validated. But such a free-form structure +defeats one objective of NeXus, namely providing a dictionary of well-defined field names. Thus, users are encouraged +to use the base classes as far as possible and communicate with the NIAC about missing fields. NXmeasurement, as +suggested here, was rejected. ---- title: NXmeasurement permalink: NXmeasurement.html layout: wiki --- -NXmeasurement ------------- This is a proposal for NeXus which comes out -of the NeXus for Synchrotrons workshop at PSI In order to satisfy the -requirements of the beamline scientist an additional, simplified NeXus -hierarchy is proposed: entry:NXentry measurement:NXmeasurement -positions:NXpositioners scalars:NXscalar images:NXimagedata Please note -that this is an example how a NXmeasurement group may look like. The -general feeling was to allow much freedom in NXmeasurement and -standardize later on if a common pattern emerges. The meaning is that -the NXpositioners groups contains a list of all constants and motor -positions, NXscalar arrays of all parameters varied during the scan and -NXimageData the images and other detector data which has been captured -during a scan or measurement. This structure is for the expert, the -instrument scientist, who knows his instrument by heart and wishes to be -able to plot anything against anything in his instrument. NXmeasurement -is not meant to stand alone but is to be augmented with further -NXsubentries containing the data in proper NeXus notation and hierarchy. -It was pointed out that such a simplified view can be generated by a -data analysis application from a full NeXus NXinstrument view. -Conclusion ---------- 01/2015 As an in part answer to this proposal the -NIAC adopted the NXcollection base class as a free form container for -things which no one cares to standardize. Data in NXcollection will not -be validated. But such a free form structure defeats one objective of -NeXus, namely providing a dictionary of well defined field names. Thus -users are encouraged to use the base classes as far as possible and -communicate with the NIAC about missing fields. NXmeasurement as -suggested here was rejected. diff --git a/source/general_content/NXmonoref-NIAC2006.rst b/source/general_content/NXmonoref-NIAC2006.rst index 10a86436..3976a940 100644 --- a/source/general_content/NXmonoref-NIAC2006.rst +++ b/source/general_content/NXmonoref-NIAC2006.rst @@ -3,41 +3,50 @@ NXmonoref-NIAC2006 ================== ---- title: NXmonoref-NIAC2006 permalink: NXmonoref-NIAC2006.html layout: -wiki --- The following is the proposed monochromatic reflectometry -definition. Concerns: - Using classes rather than names in links (e.g., -NXdetector) will break if the user adds another detector group to the -entry. - I don't record whether the reflectometer is horizontal or -vertical geometry, but with slit and angles defined relative to the -sample surface this doesn't matter. - I'm asking the control software to -write the wavelength divergence into the file so that the user can read -it off directly without performing calculations. - Not recording region -of interest used to measure count duration. Could create a virtual -detector for this. - Normalization by monitor/timer not currently -supported - For backgrounds, don't know if the nominal Qz should be -calculated from the theta or twotheta. The correct choice depends on -the source of background. Example: -[NXmonoref\\_example-NIAC2006](NXmonoref_example-NIAC2006.html -"wikilink") -NXmonoref \* {Suggested spectrum measurement for intensity vs. -wavelength for a given slit setting. Warning: beam profile is not -regular, but this effect is accomodated in the spectrum measurement} \* -{Suggested background measurement} ? {Angle relative to the scattering -plane, not to gravity.} {\|Q\|}? ? { Location of slit along beamline -(midway between slits if slits are not coplanar). This is required to -compute instrument resolution. } { Need to add "nxslit" to list of -possible shapes. If the shape is a box, first dimension changes the -sample footprint. } ? ? ? ? ? ? { Need all fields so that we can -calculate shadow of beam stop on detector. } { Indicate sense of -scattering: 0 is front surface of sample, 180 is back surface of sample. -If 180, change the sign of the reflected angle in the data. It is also -possible for the beam to enter the substrate from the side and reflect -off the back surface of a film, in which case negative angles can be -interpreted as inverting the scattering length density profile of the -film (after accounting for absorption in the substrate. } ? ? { -"intensity"\|"background"\|"specular"\|"rock"\|"slice"\|"area" } ? { -"++"\|"+-"\|"-+"\|"--"\|"+"\|"-" } ? ? ? ? ? ? ? ? ? ? \* { Various logs -for temperature, field, etc. which are assumed to be constant over the -duration of the run. The reduction program should be able to display -their values on a parallel graph. Note that logs are not necessarily -sampled synchronously with the data points. } +The following is the proposed monochromatic reflectometry definition. + +Concerns: +---------- + +- Using classes rather than names in links (e.g., NXdetector) will break if the user adds another detector group to the entry. + +- I don't record whether the reflectometer is horizontal or vertical geometry, but with slit and angles defined relative to the sample surface, this doesn't matter. + +- I'm asking the control software to write the wavelength divergence into the file so that the user can read it off directly without performing calculations. + +- Not recording the region of interest used to measure count duration. Could create a virtual detector for this. + +- Normalization by monitor/timer is not currently supported. + +- For backgrounds, don't know if the nominal Qz should be calculated from the theta or twotheta. The correct choice depends on the source of background. + +Example: +-------- + +`[NXmonoref_example-NIAC2006] `__ + +- NXmonoref * Suggested spectrum measurement for intensity vs. wavelength for a given slit setting. Warning: beam profile is not regular, but this effect is accommodated in the spectrum measurement. + +- * Suggested background measurement. + +- ? Angle relative to the scattering plane, not to gravity. + +- {Q}? + +- ? Location of slit along the beamline (midway between slits if slits are not coplanar). This is required to compute instrument resolution. + +- { Need to add "nxslit" to list of possible shapes. If the shape is a box, the first dimension changes the sample footprint. } + +- ? ? ? ? ? ? + +- { Need all fields so that we can calculate the shadow of the beam stop on the detector. } + +- { Indicate the sense of scattering: 0 is the front surface of the sample, 180 is the back surface of the sample. If 180, change the sign of the reflected angle in the data. It is also possible for the beam to enter the substrate from the side and reflect off the back surface of a film, in which case negative angles can be interpreted as inverting the scattering length density profile of the film (after accounting for absorption in the substrate). } + +- ? ? { "intensity"|"background"|"specular"|"rock"|"slice"|"area" } + +- ? { "++"|"+-"|"--"|"+"|"-" } + +- ? ? ? ? ? ? ? ? ? + +- * Various logs for temperature, field, etc. which are assumed to be constant over the duration of the run. The reduction program should be able to display their values on a parallel graph. Note that logs are not necessarily sampled synchronously with the data points. diff --git a/source/general_content/NXmonoref_example-NIAC2006.rst b/source/general_content/NXmonoref_example-NIAC2006.rst index 454c6d57..b9ad33dd 100644 --- a/source/general_content/NXmonoref_example-NIAC2006.rst +++ b/source/general_content/NXmonoref_example-NIAC2006.rst @@ -2,43 +2,131 @@ NXmonoref example-NIAC2006 ========================== +.. code-block:: xml ---- title: NXmonoref example-NIAC2006 permalink: -NXmonoref_example-NIAC2006.html layout: wiki --- NXmonoref -Summer-School '02 Group B measurement of unknown sample -2002-06-04T15:09:03-0400 2002-06-04T16:18:28-0400 4165 0.092328 0.18454 -SS02 Group B NCNR unknown sample 2 2.04 2.08 2.12 2.16 2.2 2.24 2.28 -2.32 2.36 2.4 2.44 2.48 2.52 2.56 2.6 2.64 2.68 2.72 2.76 2.8 2.84 2.88 -2.92 2.96 3 3.04 3.08 3.12 3.16 3.2 3.24 3.28 3.32 3.36 3.4 3.44 3.48 -3.52 3.56 3.6 3.64 3.68 3.72 3.76 3.8 3.84 3.88 3.92 3.96 4 4.75 0.01 -1700 nxslit 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 1.1582 1.1786 -1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 1.3614 1.3818 -1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 1.5443 1.5646 1.585 -1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 1.7272 1.7475 1.7678 1.7882 -1.8085 1.8288 1.8491 1.8694 1.8898 1.9101 1.9304 1.9507 1.971 1.9914 -2.0117 2.032 200 nxslit 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 -1.1582 1.1786 1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 -1.3614 1.3818 1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 1.5443 -1.5646 1.585 1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 1.7272 1.7475 -1.7678 1.7882 1.8085 1.8288 1.8491 1.8694 1.8898 1.9101 1.9304 1.9507 -1.971 1.9914 2.0117 2.032 4 4.08 4.16 4.24 4.32 4.4 4.48 4.56 4.64 4.72 -4.8 4.88 4.96 5.04 5.12 5.2 5.28 5.36 5.44 5.52 5.6 5.68 5.76 5.84 5.92 -6 6.08 6.16 6.24 6.32 6.4 6.48 6.56 6.64 6.72 6.8 6.88 6.96 7.04 7.12 -7.2 7.28 7.36 7.44 7.52 7.6 7.68 7.76 7.84 7.92 8 194 239 256 319 291 -373 393 397 399 381 375 358 331 275 256 242 186 171 132 114 69 64 68 49 -43 50 41 61 83 80 102 110 109 143 139 134 138 127 147 134 124 127 106 88 -87 70 60 60 49 43 41 1220 specular 600000 600000 600000 600000 600000 -600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 -600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 -600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 -600000 600000 600000 600000 600000 600000 600000 600000 600000 600000 -600000 600000 600000 600000 600000 600000 600000 -2002-06-04T15:09:03-0400 0.0 115.8 228.6 339.6 448.8 555.6 660.6 764.4 -865.2 965.4 1063.2 1160.4 1255.2 1348.2 1440 1531.2 1621.2 1710 1797 -1882.8 1968 2052 2134.8 2215.8 2296.8 2376.6 2455.8 2533.8 2610.6 2686.8 -2761.8 2835.6 2908.8 2982 3052.8 3123.6 3193.8 3264 3333 3400.8 3468.6 -3535.8 3601.8 3666.6 3730.8 3795 3858 3919.8 3981.6 4043.4 4104.6 115.8 -112.8 111 109.2 106.8 105 103.8 100.8 100.2 97.8 97.2 94.8 93 91.8 91.2 -90 88.8 87 85.8 85.2 84 82.8 81 81 79.8 79.2 78 76.8 76.2 75 73.8 73.2 -73.2 70.8 70.8 70.2 70.2 69 67.8 67.8 67.2 66 64.8 64.2 64.2 63 61.8 -61.8 61.8 61.2 60 + + + NXmonoref + Summer-School '02 Group B measurement of unknown sample + 2002-06-04T15:09:03-0400 + 2002-06-04T16:18:28-0400 + 4165 + 0.092328 0.18454 + + SS02 Group B + NCNR + + + + unknown sample + + 2 2.04 2.08 2.12 2.16 2.2 2.24 2.28 2.32 2.36 2.4 2.44 2.48 + 2.52 2.56 2.6 2.64 2.68 2.72 2.76 2.8 2.84 2.88 2.92 2.96 3 + 3.04 3.08 3.12 3.16 3.2 3.24 3.28 3.32 3.36 3.4 3.44 3.48 + 3.52 3.56 3.6 3.64 3.68 3.72 3.76 3.8 3.84 3.88 3.92 3.96 4 + + + + + + + 4.75 + 0.01 + + + + + + 1700 + + + nxslit + + 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 1.1582 1.1786 + 1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 + 1.3614 1.3818 1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 + 1.5443 1.5646 1.585 1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 + 1.7272 1.7475 1.7678 1.7882 1.8085 1.8288 1.8491 1.8694 1.8898 + 1.9101 1.9304 1.9507 1.971 1.9914 2.0117 2.032 + + + + + + + + + 200 + + + nxslit + + 1.016 1.0363 1.0566 1.077 1.0973 1.1176 1.1379 1.1582 1.1786 + 1.1989 1.2192 1.2395 1.2598 1.2802 1.3005 1.3208 1.3411 + 1.3614 1.3818 1.4021 1.4224 1.4427 1.463 1.4834 1.5037 1.524 + 1.5443 1.5646 1.585 1.6053 1.6256 1.6459 1.6662 1.6866 1.7069 + 1.7272 1.7475 1.7678 1.7882 1.8085 1.8288 1.8491 1.8694 1.8898 + 1.9101 1.9304 1.9507 1.971 1.9914 2.0117 2.032 + + + + + + + + 4 4.08 4.16 4.24 4.32 4.4 4.48 4.56 4.64 4.72 4.8 4.88 4.96 5.04 + 5.12 5.2 5.28 5.36 5.44 5.52 5.6 5.68 5.76 5.84 5.92 6 6.08 6.16 + 6.24 6.32 6.4 6.48 6.56 6.64 6.72 6.8 6.88 6.96 7.04 7.12 7.2 + 7.28 7.36 7.44 7.52 7.6 7.68 7.76 7.84 7.92 8 + + + 194 239 256 319 291 373 393 397 399 381 375 358 331 275 256 242 + 186 171 132 114 69 64 68 49 43 50 41 61 83 80 102 110 109 143 139 + 134 138 127 147 134 124 127 106 88 87 70 60 60 49 43 41 + + 1220 + + + + + + + + + + + + + + specular + + + 600000 + + 600000 600000 600000 600000 600000 600000 600000 600000 600000 + 600000 600000 600000 600000 600000 600000 600000 600000 600000 + 600000 600000 600000 600000 600000 600000 600000 600000 600000 + 600000 600000 600000 600000 600000 600000 600000 600000 600000 + 600000 600000 600000 600000 600000 600000 600000 600000 600000 + 600000 600000 600000 600000 600000 600000 + + + + 2002-06-04T15:09:03-0400 + + + 115.8 112.8 111 109.2 106.8 105 103.8 100.8 100.2 97.8 97.2 + 94.8 93 91.8 91.2 90 88.8 87 85.8 85.2 84 82.8 81 81 79.8 + 79.2 78 76.8 76.2 75 73.8 73.2 73.2 70.8 70.8 70.2 70.2 69 + 67.8 67.8 67.2 66 64.8 64.2 64.2 63 61.8 61.8 61.8 61.2 60 + + + + \ No newline at end of file diff --git a/source/general_content/NXmonotas-NIAC2006.rst b/source/general_content/NXmonotas-NIAC2006.rst index 839aba63..26762bc6 100644 --- a/source/general_content/NXmonotas-NIAC2006.rst +++ b/source/general_content/NXmonotas-NIAC2006.rst @@ -3,30 +3,49 @@ NXmonotas-NIAC2006 ================== ---- title: NXmonotas-NIAC2006 permalink: NXmonotas-NIAC2006.html layout: -wiki --- Example: -[NXmonotas\\_example-NIAC2006](NXmonotas_example-NIAC2006.html -"wikilink") -NXmonotas {Reciprocal space vector of primary reflection in the -scattering plane} {Reciprocal space vector of secondary reflection in -the scattering plane} {Polar angle of the sample with respect to the -beam incident on the monochromator} {Azimuthal angle of the sample with -respect to the beam incident on the monochromator} {Rotation angle of -the sample} {Magnitude of momemtum transfer vector}? {Reciprocal space -component of scan}? {Reciprocal space component of scan}? {Reciprocal -space component of scan}? {Energy transfer of scan} ? ? {Optimum -diffracted energy} {The planar spacing of the nominal reflection} -{Rotation angle of the monochromator} ? ? ? ? {Optimum diffracted energy -for each analyzer} ? {Integer counts} {Polar angle of the detector with -respect to the beam incident on the monochromator} {Azimuthal angle of -the detector with respect to the beam incident on the analyzer} {Preset -timer value. This may be a vector if your control software can allow -different points in the sequence to be counted for different lengths. -The measured duration is not necessarily equal to the preset since the -monitor or detector may reach their presets earlier}? {Start times of -the individual measurements relative to the start of the scan. This -field is recommend so that for example NXlog entries can be plotted on -the same scale as individual points, but it is not required since many -old data sets do not store it.}? {Duration of the individual -measurements in the scan. If absent, then the duration is assumed to be -the value of the preset.}? +Example: +-------- + +`[NXmonotas_example-NIAC2006] `__ + +NXmonotas + +- {Reciprocal space vector of primary reflection in the scattering plane} + +- {Reciprocal space vector of secondary reflection in the scattering plane} + +- {Polar angle of the sample with respect to the beam incident on the monochromator} + +- {Azimuthal angle of the sample with respect to the beam incident on the monochromator} + +- {Rotation angle of the sample} + +- {Magnitude of momentum transfer vector}? + +- {Reciprocal space component of scan}? + +- {Reciprocal space component of scan}? + +- {Reciprocal space component of scan}? + +- {Energy transfer of scan}? + +- {Optimum diffracted energy} + +- {The planar spacing of the nominal reflection} + +- {Rotation angle of the monochromator}? + +- {Optimum diffracted energy for each analyzer}? + +- {Integer counts} + +- {Polar angle of the detector with respect to the beam incident on the monochromator} + +- {Azimuthal angle of the detector with respect to the beam incident on the analyzer} + +- {Preset timer value. This may be a vector if your control software can allow different points in the sequence to be counted for different lengths. The measured duration is not necessarily equal to the preset since the monitor or detector may reach their presets earlier}? + +- {Start times of the individual measurements relative to the start of the scan. This field is recommended so that, for example, NXlog entries can be plotted on the same scale as individual points, but it is not required since many old data sets do not store it}? + +- {Duration of the individual measurements in the scan. If absent, then the duration is assumed to be the value of the preset}? diff --git a/source/general_content/NXmonotas_example-NIAC2006.rst b/source/general_content/NXmonotas_example-NIAC2006.rst index e1e8127d..0e0b8b39 100644 --- a/source/general_content/NXmonotas_example-NIAC2006.rst +++ b/source/general_content/NXmonotas_example-NIAC2006.rst @@ -2,44 +2,216 @@ NXmonotas example-NIAC2006 ========================== +.. code-block:: xml ---- title: NXmonotas example-NIAC2006 permalink: -NXmonotas_example-NIAC2006.html layout: wiki --- -La1.2Sr1.8Mn2O7 m=2.4g phonons -NXmononxtas 2000-05-23T19:37 2000-05-23T21:04 1620 sc en 2.0 den 0.25 np -21 mn 1013000 Stephan Rosenkranz Argonne National Laboratory Bilayer -Manganite 3.874 3.874 20.145 90.000 90.000 90.000 -1.0 0.0 0.0 0.0 0.0 -1.0 295.2380 295.2360 295.2350 295.2320 295.2310 295.2290 295.2270 -295.2260 295.2250 295.2230 295.2220 295.2200 295.2190 295.2180 295.2180 -295.2170 295.2160 295.2160 295.2150 295.2150 295.2150 41.172 41.172 -41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 -41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 218.439 -218.976 219.518 220.065 220.617 221.174 221.736 222.304 222.878 223.458 -224.044 224.637 225.236 225.843 226.457 227.080 227.710 228.349 228.998 -229.656 230.324 180.0 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 -2.0000 2.0000 2.0000 2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.6000 0.6000 0.6000 0.6000 0.6000 -0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 -0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 2.0000 2.2500 2.5000 2.7500 -3.0000 3.2500 3.5000 3.7500 4.0000 4.2500 4.5000 4.7500 5.0000 5.2500 -5.5000 5.7500 6.0000 6.2500 6.5000 6.7500 7.0000 "Soller" 60.0 -"Pyrolytic Graphite" "PG (Highly Oriented Pyrolytic Graphite)" 14.700 -14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 -14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 -3.354 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 -20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 -20.586 20.586 "Soller" 40.0 "Soller" 40.0 "PG (Highly Oriented Pyrolytic -Graphite)" 16.7 16.95 17.2 17.45 17.7 17.95 18.2 18.45 18.7 18.95 19.2 -19.45 19.7 19.95 20.2 20.45 20.7 20.95 21.2 21.45 21.7 3.354 78.344 -78.766 79.195 79.631 80.074 80.526 80.985 81.453 81.930 82.417 82.914 -83.422 83.941 84.471 85.015 85.572 86.144 86.731 87.335 87.956 88.597 -22.230 22.465 22.706 22.956 23.214 23.481 23.758 24.044 24.342 24.650 -24.971 25.304 25.652 26.014 26.392 26.787 27.200 27.634 28.088 28.567 -29.070 0.0 "Soller" 99.0 49 43 29 22 25 21 27 44 53 80 89 80 36 20 9 18 -12 16 8 13 12 44.461 44.929 45.412 45.912 46.428 46.962 47.515 48.089 -48.683 49.300 49.942 50.609 51.304 52.028 52.784 53.574 54.401 55.267 -56.177 57.133 58.140 180.0 4052000 238.20 238.20 238.20 238.20 238.20 -238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 -238.20 238.20 238.20 238.20 238.20 238.20 + + + + + + La1.2Sr1.8Mn2O7 m=2.4g phonons + + NXmononxtas + + + 2000-05-23T19:37 + + + 2000-05-23T21:04 + + + 1620 + + + sc en 2.0 den 0.25 np 21 mn 1013000 + + + + Stephan Rosenkranz + + + Argonne National Laboratory + + + + + + Bilayer Manganite + + + 3.874 3.874 20.145 90.000 90.000 90.000 + + + -1.0 0.0 0.0 + + + 0.0 0.0 1.0 + + + 295.2380 295.2360 295.2350 295.2320 295.2310 295.2290 + 295.2270 295.2260 295.2250 295.2230 295.2220 295.2200 + 295.2190 295.2180 295.2180 295.2170 295.2160 295.2160 + 295.2150 295.2150 295.2150 + + + 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 + 41.172 41.172 41.172 41.172 41.172 41.172 41.172 41.172 + 41.172 41.172 41.172 41.172 41.172 + + + 218.439 218.976 219.518 220.065 220.617 221.174 221.736 + 222.304 222.878 223.458 224.044 224.637 225.236 225.843 + 226.457 227.080 227.710 228.349 228.998 229.656 230.324 + + + 180.0 + + + 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 + 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 + 2.0000 2.0000 2.0000 2.0000 2.0000 + + + 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 0.0000 0.0000 0.0000 0.0000 0.0000 + + + 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 + 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 + 0.6000 0.6000 0.6000 0.6000 0.6000 + + + 2.0000 2.2500 2.5000 2.7500 3.0000 3.2500 3.5000 3.7500 + 4.0000 4.2500 4.5000 4.7500 5.0000 5.2500 5.5000 5.7500 + 6.0000 6.2500 6.5000 6.7500 7.0000 + + + + + + + "Soller" + + + 60.0 + + + + + "Pyrolytic Graphite" + + + + + "PG (Highly Oriented Pyrolytic Graphite)" + + + 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 + 14.700 14.700 14.700 14.700 14.700 14.700 14.700 14.700 + 14.700 14.700 14.700 14.700 14.700 + + + 3.354 + + + 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 + 20.586 20.586 20.586 20.586 20.586 20.586 20.586 20.586 + 20.586 20.586 20.586 20.586 20.586 + + + + + "Soller" + + + 40.0 + + + + + "Soller" + + + 40.0 + + + + + "PG (Highly Oriented Pyrolytic Graphite)" + + + 16.7 16.95 17.2 17.45 17.7 17.95 18.2 18.45 18.7 18.95 19.2 + 19.45 19.7 19.95 20.2 20.45 20.7 20.95 21.2 21.45 21.7 + + + 3.354 + + + 78.344 78.766 79.195 79.631 80.074 80.526 80.985 81.453 + 81.930 82.417 82.914 83.422 83.941 84.471 85.015 85.572 + 86.144 86.731 87.335 87.956 88.597 + + + 22.230 22.465 22.706 22.956 23.214 23.481 23.758 24.044 + 24.342 24.650 24.971 25.304 25.652 26.014 26.392 26.787 + 27.200 27.634 28.088 28.567 29.070 + + + 0.0 + + + + + "Soller" + + + 99.0 + + + + + 49 43 29 22 25 21 27 44 53 80 89 80 36 20 9 18 12 16 8 13 12 + + + 44.461 44.929 45.412 45.912 46.428 46.962 47.515 48.089 48.683 + 49.300 49.942 50.609 51.304 52.028 52.784 53.574 54.401 55.267 + 56.177 57.133 58.140 + + + 180.0 + + + + + + + 4052000 + + + + + 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 + 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 238.20 + 238.20 238.20 238.20 + + + + + + + + + + + + diff --git a/source/general_content/NXnet_Proposal.rst b/source/general_content/NXnet_Proposal.rst index ba734eef..e6de1d77 100644 --- a/source/general_content/NXnet_Proposal.rst +++ b/source/general_content/NXnet_Proposal.rst @@ -2,67 +2,60 @@ NXnet Proposal ============== +The motivation for NeXus is to allow the exchange of data between programs, instruments, establishments, and branches of +science where the neutron, muon, and X-ray technologies are the common theme. Recently, the NeXus community has been +greatly (and crucially) occupied with choosing what data to store in a file and how it should be described in a common +fashion. This proposal tackles a complementary facet of the broader problem: namely, the exchange of the data files +themselves between the programs, operating systems, instruments, and establishments. ---- title: NXnet Proposal permalink: NXnet_Proposal.html layout: wiki ---- The motivation for NeXus is to allow the exchange of data between -programs, instruments, establishments and branches of science where the -neutron, muon and X-ray technologies are the common theme. Recently the -NeXus community has been greatly (and crucially) occupied with choosing -what data to store in a file and how it should be described in a common -fashion. This proposal tackles a complementary facet of the broader -problem; namely the exchange of the data files themselves between the -programs, operating systems, instruments and establishments. Most -scientists doing experiments on instruments at different establishments -will have experienced the joy of trying to copy data off a variety of -different computer systems, often being forced to network a laptop -machine at the last minute, write a CD or floppy disk before racing to -catch a flight, manually select and copy files one at a time via ftp -and/or negotiate a firewall to get at their data. If very lucky, maybe -they have been able to download data from a conveniently set up web -site, where remembering the password has been the only problem. If this -state of affairs wasnt bad enough, there are things that are even -harder to do than read your data. For example, you might want to send a -few calibration files and sample setup notes to a remote site ready for -an experiment. This would normally be seen as folly unless you have a -trusted colleague already on site to help you receive and look after the -files. And what if youve forgotten a file you needed on arrival? -Wouldnt it be nice if you could do a bit of data reduction on site and -then continue at home, all the time saving the reduced files in the same -directory as the raw data (and with no need to copy the data locally). -And then permit a colleague to access a few of the files from their own -laptop whilst at home (by setting permissions like you do on a local -Unix NFS file system or Windows share)? There is really very little -reason why we should accept such a desperate state of affairs. With the -help of the UKs e-Science centre we have been experimenting with the -San Diego Supercomputing Centres SRB (Storage Resource Broker) for -several months now. This provides at a minimum a very credible and -functional globally distributable file system. The proposal is in three -parts. 1. We adopt SRB as a working system on which to experiment with -building a global integrated network for sharing Neutron, Muon and X-Ray -data between our establishments and our users. We do this pragmatically -(like we have done with HDF) because it currently seems to do the job -and support is what standards like this need to develop. 2. More -fundamentally, we extend our remit of defining and organizing data types -within the NeXus file to also giving some sort of standardisation to the -organisation and location of data within a global file system. Quite -simply, this just avoids things being lost by everyone storing things -under different names and in different places (for example, a naming -convention for raw files). 3. Even more fundamentally, we spend some -effort defining the sort of meta-data which we might associate with each -file (possibly not contained in the NeXus file itself). This meta-data -would enable a data portal style search engine, just like a super -data-Google quickly to find relevant data by searching throughout this -global file system. Some of this sort of work is already underway but -some sort of standardization of the type and contents of this metadata -is very close to the sort of standardization we are aiming at with the -NeXus file contents and would greatly ease the ability to search and -find relevant information. The sheer use-ability of this particular -system, especially for quite a young technology is staggering. This is -not something to be planning for next year or the year after, its -something to be using now and then planning how to build a data -storage and access strategy around it. NeXus has taken a long time to -grow to the point where we are able to agree on the most difficult issue -of what is common within our data files, this is because its a really -difficult job. Taking some responsibility for (2) and (3) in particular -is a lot less work but is something best tackled early. Chris -Moreton-Smith +Most scientists doing experiments on instruments at different establishments will have experienced the joy of trying to +copy data off a variety of different computer systems, often being forced to network a laptop machine at the last minute, +write a CD or floppy disk before racing to catch a flight, manually select and copy files one at a time via FTP, and/or +negotiate a firewall to get at their data. If very lucky, maybe they have been able to download data from a conveniently +set-up website, where remembering the password has been the only problem. + +If this state of affairs wasn’t bad enough, there are things that are even harder to do than read your data. For example, +you might want to send a few calibration files and sample setup notes to a remote site ready for an experiment. This +would normally be seen as folly unless you have a trusted colleague already on-site to help you receive and look after +the files. And what if you’ve forgotten a file you needed on arrival? Wouldn’t it be nice if you could do a bit of data +reduction on-site and then continue at home, all the time saving the reduced files in the same directory as the raw data +(and with no need to copy the data locally)? And then permit a colleague to access a few of the files from their own +laptop while at home (by setting permissions like you do on a local Unix NFS file system or Windows share)? + +There is really very little reason why we should accept such a desperate state of affairs. With the help of the UK’s +e-Science Centre, we have been experimenting with the San Diego Supercomputing Centre’s SRB (Storage Resource Broker) +for several months now. This provides, at a minimum, a very credible and functional globally distributable file system. + +The proposal is in three parts: + +1. **Adopt SRB for Experimentation** + +We adopt SRB as a working system on which to experiment with building a global integrated network for sharing neutron, + muon, and X-ray data between our establishments and our users. We do this pragmatically (like we have done with HDF) + because it currently seems to do the job, and support is what standards like this need to develop. + +2. **Standardize Data Organization and Location** + +More fundamentally, we extend our remit of defining and organizing data types within the NeXus file to also giving + some sort of standardization to the organization and location of data within a global file system. Quite simply, this + just avoids things being lost by everyone storing things under different names and in different places (for example, a + naming convention for raw files). + +3. **Define Meta-Data for Enhanced Searchability** + +Even more fundamentally, we spend some effort defining the sort of meta-data which we might associate with each file + (possibly not contained in the NeXus file itself). This meta-data would enable a data-portal-style search engine, just + like a super data-Google, to quickly find relevant data by searching throughout this global file system. Some of this + sort of work is already underway, but some sort of standardization of the type and contents of this metadata is very + close to the sort of standardization we are aiming at with the NeXus file contents and would greatly ease the ability + to search and find relevant information. + +The sheer usability of this particular system, especially for quite a young technology, is staggering. This is not +something to be planning for next year or the year after; it’s something to be using now—and then planning how to build +a data storage and access strategy around it. + +NeXus has taken a long time to grow to the point where we are able to agree on the most difficult issue of what is +common within our data files. This is because it’s a really difficult job. Taking some responsibility for (2) and (3) +in particular is a lot less work but is something best tackled early. + +Chris Moreton-Smith diff --git a/source/general_content/NXtofnref-NIAC2006.rst b/source/general_content/NXtofnref-NIAC2006.rst index 4ae8f67f..40338650 100644 --- a/source/general_content/NXtofnref-NIAC2006.rst +++ b/source/general_content/NXtofnref-NIAC2006.rst @@ -1,42 +1,126 @@ -================== -NXtofnref-NIAC2006 -================== - - ---- title: NXtofnref-NIAC2006 permalink: NXtofnref-NIAC2006.html layout: -wiki --- Concerns: - mono and tof reflectometry must inherit from a -common base class; the current definition of tofnref inheriting from -monoref leaves the definition of the monochromator in the TOF -definition. - SNS Liquids has two monitors, but our definitions only -have one. Both are not always active. -NXtofnref { Distance from T_o to sample along beam-path. To calculate -wavelength: L[i] = wavelength at time T[i] T[i] = time of flight for -point i. d1 = distance from moderator to sample along beam path d2 = -distance from detector to sample along beam path h = Planck's constant -m_n = mass of the neutron L[i] = h/m_n \* T[i]/(d1+d2) } { Find the -center of mass of the pulse shape and use that as the T0 offset with -respect to the protons hitting the target. The TOF from target (which is -the real T0) to the moderator is insignficant compared to the -uncertainty from the pulse shape and so can be ignored. } \* { Guides in -total or in segments thgrough to sample position; may be interspersed -between other components - Check component index. Can be nested for -guides with multiple straight segments. Affects wavelength spectrum, -both in divergence and intensity. The spectrum scan will automatically -compensate for intensity effects. To compute divergence effects, -detailed information about the guide geometry will be required. } ? { -Reduction software needs to ignore Q values outside the range defined by -the choppers. The T0 chopper is phased to the source to block fast -neutron and gamma flash. The frame overlap chopper is set to select low -wavelength neutrons (those from the current pulse) or high wavelength -neutrons (those from the previous pulse. On a properly tuned instrument, -the time bins recorded in the detector will reflect the actions of the -choppers and these fields can be ignored. } ? { The frame overlap mirror -is used to eliminate very long wavelength neutrons from previous pulses. -Together with the choppers, this helps to choose which pulse to use in -the TOF calculations. On a properly tuned instrument the time bins -recorded in the detector will account for the actions of the mirror. -There will be some attenuation but this will be compensated for when -correcting for the spectrum scan. For an ab initio calculation, you -would need to store the angle wrt the beam to compute the cutoff angle -but often this will not be explicit since the instrument is simply tuned -to have the correct cutoff. } { Total time of flight } +Concerns +-------- + +- Mono and TOF reflectometry must inherit from a common base class; the current definition of `tofnref` inheriting from `monoref` leaves the definition of the monochromator in the TOF definition. + +- SNS Liquids has two monitors, but our definitions only have one. Both are not always active. + +.. raw:: xml + + + + + + + NXtofnref + + + + + + { Distance from T₀ to sample along beam-path. To calculate wavelength: + L[i] = wavelength at time T[i] + T[i] = time of flight for point i. + d1 = distance from moderator to sample along beam path + d2 = distance from detector to sample along beam path + h = Planck's constant + mₙ = mass of the neutron + + L[i] = h/mₙ * T[i]/(d1+d2) + } + + + { Find the center of mass of the pulse shape and use that + as the T₀ offset with respect to the protons hitting the target. + The TOF from target (which is the real T₀) to the moderator is + insignificant compared to the uncertainty from the pulse shape and + so can be ignored. + } + + + + * + { Guides in total or in segments through to sample position; may be + interspersed between other components - Check component index. + Can be nested for guides with multiple straight segments. + + Affects wavelength spectrum, both in divergence and intensity. The + spectrum scan will automatically compensate for intensity effects. + To compute divergence effects, detailed information about the guide + geometry will be required. + } + + + + + ? + + { Reduction software needs to ignore Q values outside the range + defined by the choppers. The T₀ chopper is phased to the source + to block fast neutron and gamma flash. The frame overlap + chopper is set to select low-wavelength neutrons (those from + the current pulse) or high-wavelength neutrons (those from + the previous pulse. + + On a properly tuned instrument, the time bins recorded in + the detector will reflect the actions of the choppers and + these fields can be ignored. + } + + + ? + + + { The frame overlap mirror is used to eliminate very long wavelength + neutrons from previous pulses. Together with the choppers, this + helps to choose which pulse to use in the TOF calculations. On a + properly tuned instrument the time bins recorded in the detector + will account for the actions of the mirror. + + There will be some attenuation but this will be compensated for + when correcting for the spectrum scan. + + For an ab initio calculation, you would need to store the angle + with respect to the beam to compute the cutoff angle but often this + will not be explicit since the instrument is simply tuned to have the + correct cutoff. + } + + + + + + { Total time of flight } + + + + + + + + diff --git a/source/general_content/NXtranslate.rst b/source/general_content/NXtranslate.rst index 721e36ca..2db86aac 100644 --- a/source/general_content/NXtranslate.rst +++ b/source/general_content/NXtranslate.rst @@ -2,30 +2,57 @@ NXtranslate =========== +NNXtranslate - the anything to NeXus converter +---------------------------------------------- + +NXtranslate is an extensible console-based tool that allows creating +NeXus files from information stored in other places. The program works +by parsing a translation file, which describes the structure of the +resulting file, and libraries that understand different file formats, +databases, etc., to retrieve information and put it into the resulting +NeXus file. NXtranslate was designed with "plugins" in mind to read from +new formats as needed. + +If you have any questions/comments/bug reports, email Peter Peterson +. Also, email if you want to be notified of +test (alpha/beta) releases. + +**News:** +October 1, 2004: The NXtranslate web page is published. The current version of NXtranslate is v0.1.1. +v0.2.0 is in progress and can be obtained by emailing . + +**Downloads:** +Source: The manual `NXtranslate.pdf` + +- `NXtranslate-v0.1.1.tar.gz` +- `NXtranslate-v0.1.0.tar.gz` + +**Prerequisites:** +- C++ compiler +- NeXus libraries + +**Installation:** +*Unix/Linux/Irix/MacOSX:* +Unpack the tarball, enter the directory, and type: + +.. code-block:: bash + + ./configure;make;make test;make install + make;make test;make install. + + +The resulting binary, nxtranslate, will be in /usr/local/bin/. + +**Un-installing:** + +Remove the file nxtranslate. ---- title: NXtranslate permalink: NXtranslate.html layout: wiki --- -NXtranslate - the anything to NeXus converter ---------------------------------------------- NXtranslate is an -extensible console based tool that allows creating NeXus files from -information stored in other places. The program works by parsing a -translation file, which describes the structure of the resulting file, -and libraries that understand different file formats, databases, etc. to -retrieve information and put it into the resulting NeXus file. -NXtranslate was designed with plugins in mind to read from new formats -as needed. If you have any questions/comments/bug reports email Peter -Peterson . Also email if you wanted to be notified -of test (alpha/beta) releases. \**News:\*\* October 1, 2004 The -NXtranslate web page is published. The current version of NXtranslate is -v0.1.1. v0.2.0 is in progress and the can be obtain by mailing -. \**Downloads:\*\* Source The manual -NXtranslate.pdf NXtranslate-v0.1.1.tar.gz NXtranslate-v0.1.0.tar.gz -\**Prerequisites:\*\* C++ compiler NeXus libraries \*' Installation:\*' -Unix/Linux/Irix/MacOSX: Unpack the tarball, enter the directory and type -make;make test;make install. The resulting binary, nxtranslate, will be -in /usr/local/bin/. \**Un-installing:\*\* Remove the file nxtranslate. The installation process did not modify the registry or other system -settings in any way. \*' Frequently Asked Questions (FAQ)\*' Q: What do -you mean by anything to NeXus? A: Because NXtranslate is extensible it -can get information from more places as new retrievers are written. -Since there is no inherent limitation on what retrievers are written, -the information can be from anything. +settings in any way. *' Frequently Asked Questions (FAQ)*' + +Q: What do you mean by “anything to NeXus”? + +A: Because NXtranslate is extensible it can get information from more +places as new retrievers are written. Since there is no inherent +limitation on what retrievers are written, the information can be from +anything. diff --git a/source/general_content/OO-NeXus.rst b/source/general_content/OO-NeXus.rst index e6b4d472..c896b89e 100644 --- a/source/general_content/OO-NeXus.rst +++ b/source/general_content/OO-NeXus.rst @@ -3,76 +3,120 @@ OO-NeXus ======== ---- title: OO-NeXus permalink: OO-NeXus.html layout: wiki --- Object -Oriented NeXus --------------------- This is a page to discuss the -various options we have for defining both object oriented instrument -definitions and an object oriented NeXus-API. The initial content of -this page results from discussions at the NIAC meeting 2007 at HMI, -Berlin and between Mark Koennecke and Nick Hauser later on. ### Summary -of OO Discussions at the NIAC Meeting 2007 at HMI - People seem to be -happy to use a NeXusFile object with methods like nf.makegroup(..), -nf.opengroup(..) etc. as a low level object oriented API for NeXus -files. This approach only encapsulates the file object and has already -been implemented in the Java NeXus API. - A higher level NeXus OO-API -should give access to the NeXus classes as defined in the instrument -definitions. ### Current State of the NeXus Base Classes The current -NeXus base classes used for instrument definitions are not really base -classes. They are rather dictionaries or templates which define names -for data items which may be present in a NeXus base class depending on -the actual configuration of the instrument. As such these NeXus base -classes contain lots of fields and concepts which often confuse both the -initiated and the uninitiated. ### OO-NeXus: Two Paths into the Future +Object Oriented NeXus +--------------------- + +This is a page to discuss the various options we have for defining both +object oriented instrument definitions and an object oriented NeXus-API. +The initial content of this page results from discussions at the NIAC +meeting 2007 at HMI, Berlin and between Mark Koennecke and Nick Hauser +later on. + +### Summary of OO Discussions at the NIAC Meeting 2007 at HMI + +- People seem to be happy to use a NeXusFile object with methods like + nf.makegroup(..), nf.opengroup(..) etc. as a low level object + oriented API for NeXus files. This approach only encapsulates the + file object and has already been implemented in the Java NeXus API. + +- A higher level NeXus OO-API should give access to the NeXus classes + as defined in the instrument definitions. + +### Current State of the NeXus Base Classes + +The current NeXus base classes used for instrument definitions are not +really base classes. They are rather dictionaries or templates which +define names for data items which may be present in a NeXus base class +depending on the actual configuration of the instrument. As such these +NeXus base classes contain lots of fields and concepts which often +confuse both the initiated and the uninitiated. + +### OO-NeXus: Two Paths into the Future + As things are we have two ways how to proceed with an object oriented -NeXus-API and object oriented definitions: - Rework the NeXus base -classes in a fully object oriented way using polymorphism and -inheritance. - A direct mapping of current neXus base classes to -objects. ### Path 1: OO Rework of the NeXus Classes This means to -perform a full object oriented analysis of the NeXus base classes using -polymorphism and inheritance. This was suggested by Darren Kelly at the -NIAC meeting 2006 at ILL. An example of a [possible class -hierarchy](media:NeXusOBJ.pdf "wikilink") was given by Mark -Koennecke at the NIAC meeting 2007 at HMI. There are some advantages to -this approach: - Different things, like different detectors, have -different names and this makes the base classes easier to understand. It -is easier to select NXtofareadetector rather then locate all the fields -necessary for such a detector from a dictionary. - The use of -inheritance makes the definitions easier to maintain because -duplications can be avoided through inheritance. - Choices in the -definitions, like the choice of coordinate system or shapes, can be made -explicit by abstract classes and polymorphism. - Fully OO definitions -can be mapped to appropriate classes in \*all\* object oriented -programming languages. But there are serious drawbacks to this approach -as well: - We need a much extended set of classes. - Most importantly: -we break backwards compatability: OO-NeXus files would have a deeper -nesting structure and other classes. ### Path 2: Map the current NeXus -Classes to Objects This means that we directly map the current NeXus -base classes hook, line and sinker into objects in an OO programming -language. This has the huge advantage of backwards compatability: Old -and new NeXus files look alike. We also would not need to vote on new -base classes. But there are disadvantages to this approach, too: - We -loose the improved maintainability and clarity of the full OO-approach. -But this can be overcome by using the full OO-classes plus some -production rules as a tool for filling the actual NeXus base classes. An -example: you have a TOF area detector? Then suck all fields for that -class plus the inherited ones into your NXdetector class. Make decisions -on choices like coordinate system on the way. - The resulting API -classes become ambiguous: i.e. different API detector classes loaded -from different files will have different contents. This is less of a -problem for dynamic object systems like the ones in python, CLOS and -smalltalk. Dynamic object system in this context means that fields can -be added at runtime. But there are many interesting OO programming -languages which do not feature such an open type system: most notably -C++ and Java. The problem with such languages can be solved in a number -of ways: - NeXus base classes become catchalls: i.e. they have fields -for all data items which may possibly be there. And throw errors when an -access for an field without data is attempted. This is ugly. - Use some -form of RunTime Type Information (RTTI). This can take the form of a -group attribute with a possible name like subtype. Then the OO-API can -read this attribute and create an appropriate class for this NeXus base -class as on Path 1. Example: the subtype is NXtofareadetector. Then -create a NXtofareadetector API class and fill its data fields from the -content of the file. ### Questions? - Where do we go? Path 1? Path 2? Or -a yet to be defined Path 3? - Do we have more options? ### Conclusion +NeXus-API and object oriented definitions: + +- Rework the NeXus base classes in a fully object oriented way using + polymorphism and inheritance. + +- A direct mapping of current neXus base classes to objects. + +### Path 1: OO Rework of the NeXus Classes + +This means to perform a full object oriented analysis of the NeXus base +classes using polymorphism and inheritance. This was suggested by Darren +Kelly at the NIAC meeting 2006 at ILL. An example of a [possible class +hierarchy](media:NeXusOBJ.pdf.html "wikilink") was given by Mark Koennecke at +the NIAC meeting 2007 at HMI. There are some advantages to this +approach: + +- Different things, like different detectors, have different names and + this makes the base classes easier to understand. It is easier to + select NXtofareadetector rather then locate all the fields necessary + for such a detector from a dictionary. + +- The use of inheritance makes the definitions easier to maintain + because duplications can be avoided through inheritance. + +- Choices in the definitions, like the choice of coordinate system or + shapes, can be made explicit by abstract classes and polymorphism. + +- Fully OO definitions can be mapped to appropriate classes in *all* + object oriented programming languages. + +But there are serious drawbacks to this approach as well: + +- We need a much extended set of classes. + +- Most importantly: we break backwards compatability: OO-NeXus files + would have a deeper nesting structure and other classes. + +### Path 2: Map the current NeXus Classes to Objects + +This means that we directly map the current NeXus base classes hook, +line and sinker into objects in an OO programming language. This has the +huge advantage of backwards compatability: Old and new NeXus files look +alike. We also would not need to vote on new base classes. But there are +disadvantages to this approach, too: + +- We loose the improved maintainability and clarity of the full + OO-approach. But this can be overcome by using the full OO-classes + plus some production rules as a tool for filling the actual NeXus + base classes. An example: you have a TOF area detector? Then suck + all fields for that class plus the inherited ones into your + NXdetector class. Make decisions on choices like coordinate system + on the way. + +- The resulting API classes become ambiguous: i.e. different API + detector classes loaded from different files will have different + contents. This is less of a problem for dynamic object systems like + the ones in python, CLOS and smalltalk. Dynamic object system in + this context means that fields can be added at runtime. But there + are many interesting OO programming languages which do not feature + such an open type system: most notably C++ and Java. The problem + with such languages can be solved in a number of ways: + + - NeXus base classes become catchalls: i.e. they have fields for + all data items which may possibly be there. And throw errors + when an access for an field without data is attempted. This is + ugly. + + - Use some form of RunTime Type Information (RTTI). This can take + the form of a group attribute with a possible name like subtype. + Then the OO-API can read this attribute and create an + appropriate class for this NeXus base class as on Path 1. + Example: the subtype is NXtofareadetector. Then create a + NXtofareadetector API class and fill its data fields from the + content of the file. + +### Questions? + +- Where do we go? Path 1? Path 2? Or a yet to be defined Path 3? + +- Do we have more options? + +### Conclusion + 01/2015: This discussion is obsolete. At NIAC 2014 it was decided to accept interfaces as an experimental feature instead. But this text still serves as valid statements about the difficulties which the NIAC diff --git a/source/general_content/Object_Oriented_Interface.rst b/source/general_content/Object_Oriented_Interface.rst index 84434d6a..8fc21a85 100644 --- a/source/general_content/Object_Oriented_Interface.rst +++ b/source/general_content/Object_Oriented_Interface.rst @@ -3,24 +3,39 @@ Object Oriented Interface ========================= ---- title: Object Oriented Interface permalink: -Object_Oriented_Interface.html layout: wiki --- For object oriented -languages (C++, Java, and Python) it would be good if there were a -common object oriented way of working with NeXus files. This page is set -up for determining the public methods of a NeXusFile object. class -NeXusFile{ public: enum access(READ=NXACC_READ, WRITE=NXACC_CREATE, -WRITE_HDF4=NXACC_CREATE4, WRITE_HDF5=NXACC_CREATE5, -READ_WRITE=NXACC_RDWR); enum -compress(COMP_LZW=NX_COMP_LZW,COMP_HUF=NX_COMP_HUF,COMP_RLE=NX_COMP_RLE,COMP_NONE); -// constructor, default mode is read NeXusFile(std::string &filename, -const access mode=READ); // opens the specified absolute path in the -file. the path is // a '/' delimited list of the names to open. If any -portion of //the path does not exist an exception will be thrown. void -openPath(const std::string &path); // creates and opens a group. this -throws an exception when fails void make_group(const std::string &name, -const std::string &class); // creates and opens a data. this throws an -exception when fails void make_data(const std::string &name, const -std::string &type, const std::vector &dimensions, const compress -comp_type=COMP_NONE); }; [Peter Peterson](User%3APfpeterson.html -"wikilink"), SNS Conclusion ---------- 01/2015 This is now obsolete. -Implementations in C++ and python are available. +For object oriented languages (C++, Java, and Python) it would be good +if there were a common object oriented way of working with NeXus files. +This page is set up for determining the public methods of a “NeXusFile” +object. + +.. code-block:: cpp + + class NeXusFile{ + public: + enum access(READ=NXACC_READ, WRITE=NXACC_CREATE, WRITE_HDF4=NXACC_CREATE4, + WRITE_HDF5=NXACC_CREATE5, READ_WRITE=NXACC_RDWR); + enum compress(COMP_LZW=NX_COMP_LZW,COMP_HUF=NX_COMP_HUF,COMP_RLE=NX_COMP_RLE,COMP_NONE); + + // constructor, default mode is read + NeXusFile(std::string &filename, const access mode=READ); + + // opens the specified absolute path in the file. the path is + // a '/' delimited list of the names to open. If any portion of + //the path does not exist an exception will be thrown. + void openPath(const std::string &path); + + // creates and opens a group. this throws an exception when fails + void make_group(const std::string &name, const std::string &class); + + // creates and opens a data. this throws an exception when fails + void make_data(const std::string &name, const std::string &type, const std::vector + &dimensions, const compress comp_type=COMP_NONE); + }; + +[Peter Peterson](User%3APfpeterson.html "wikilink"), SNS + +Conclusion +---------- + +01/2015 This is now obsolete. Implementations in C++ and python are +available. diff --git a/source/general_content/Proposal_NeXus_Coordinates.rst b/source/general_content/Proposal_NeXus_Coordinates.rst index 6159084b..8039c900 100644 --- a/source/general_content/Proposal_NeXus_Coordinates.rst +++ b/source/general_content/Proposal_NeXus_Coordinates.rst @@ -8,14 +8,29 @@ permalink: Proposal_NeXus_Coordinates.html layout: wiki --- -The current definition for NXdata groups assumes that the data (or signal) SDS is, in general, a multidimensional array that can be plotted against one or more independent axes, equal in number to the rank of the signal SDS. These axes are defined through the axes attribute. However, there are cases where the data represent a set of pixels that are defined by their coordinates, *i.e.*, they do not form a contiguous array. The data would then consist of a one-dimensional array. At present, such data can only be plotted against a single one-dimensional axis even if it is distributed in two-, three-, or higher-dimensional space. If we are to have a standard method of plotting such data, we need to have a way of identifying the pixel coordinates. +The current definition for NXdata groups assumes that the data (or signal) SDS is, in general, a multidimensional +array that can be plotted against one or more independent axes, equal in number to the rank of the signal SDS. +These axes are defined through the axes attribute. However, there are cases where the data represent a set of pixels +that are defined by their coordinates, *i.e.*, they do not form a contiguous array. The data would then consist of a +one-dimensional array. At present, such data can only be plotted against a single one-dimensional axis even if it is +distributed in two-, three-, or higher-dimensional space. If we are to have a standard method of plotting such data, +we need to have a way of identifying the pixel coordinates. Proposal -------- -An extra attribute be defined for a data (or signal) SDS called coordinates, which would consist of a text string containing the names of one or more SDSs that represent the coordinates of the signal SDS. The names will be separated by the same delimiters allowed for the axes attribute. The signal SDS must be one-dimensional. There are two scenarios: -1. The coordinates represent the centre of each pixel, so each coordinate SDS is also one-dimensional of the same length as the signal SDS. -2. The coordinates represent the vertices of each pixel, so each coordinate SDS would be two-dimensional, with the slower changing dimension having the same length as the signal SDS and the faster changing dimension having a length of the number of vertices (=2\ :sup:`n` for cartesian coordinates, where *n* is the number of coordinate SDSs). In that case, an attribute number\_vertices containing an integer specifying the number of vertices will be added to the signal SDS. +An extra attribute be defined for a data (or signal) SDS called coordinates, which would consist of a text string +containing the names of one or more SDSs that represent the coordinates of the signal SDS. The names will be separated +by the same delimiters allowed for the axes attribute. The signal SDS must be one-dimensional. There are two scenarios: + +1. The coordinates represent the centre of each pixel, so each coordinate SDS is also one-dimensional of the same +length as the signal SDS. + +2. The coordinates represent the vertices of each pixel, so each coordinate SDS would be two-dimensional, with the +slower changing dimension having the same length as the signal SDS and the faster changing dimension having a length of +the number of vertices (=2\ :sup:`n` for cartesian coordinates, where *n* is the number of coordinate SDSs). In that +case, an attribute number\_vertices containing an integer specifying the number of vertices will be added to the signal +SDS. Discussion ---------- diff --git a/source/general_content/Proposal_to_Simplify_Nexus.rst b/source/general_content/Proposal_to_Simplify_Nexus.rst index 615598b9..396475d3 100644 --- a/source/general_content/Proposal_to_Simplify_Nexus.rst +++ b/source/general_content/Proposal_to_Simplify_Nexus.rst @@ -19,16 +19,27 @@ NeXus *raison d'être* ===================== - NeXus is an exchange format for all neutron, X-ray, and muon scattering techniques in large facilities. + - This implicitly limits the scope of NeXus to all that is common to these techniques, while excluding instrument/technique peculiarities. Further descriptions (instrument details) are in principle out of scope, but may be specified as extensions to the basic requirements. + - The scientific data set is intrinsically the most important to physicists, compared with the exact instrument definition (which is essentially relevant for instrument debugging and simulation purposes). The official 'base' NeXus format should focus on the former rather than the latter. + - NeXus must be easy to use. + - This means that there is an efficient API (and this is the case, thanks to Mark K.) + - At the same time, NeXus should be flexible enough to potentially evolve from HDF and XML towards other physical storage formats (Open Document, ...) + - NeXus must be appealing for people to voluntarily use it (in programs). + - This means that the format structure must be clear, simple, and easy to understand. This is probably the most important point, otherwise it will push people to develop their own NeXus format, or even use their own non-NeXus format (based on HDF or not). + - The NeXus web server must present usage examples and distribute associated software. + - NeXus must be flexible and expandable. + - This means that there should be a recommended mechanism for extension of the 'base' NeXus into 'proprietary' NeXus. At the same time, a clear statement must be made concerning a limited number of absolute requirements, as well as 'official' recommendations for extensions. + - The scientific data must be immediately visible in the NeXus structure, as well as essential parameters for the data analysis. This means that the NXdata must be directly in the NXentry, and that essential parameters should be there as well (in an NXparameters class, see below). Further information (NXinstrument, ...) is optional. Format requirements @@ -37,9 +48,13 @@ Format requirements ### Proposal R1: Simplified NeXus hierarchy The base NeXus format should contain the following hierarchy: + - `NXentry` + - `NXdata` + - `NXsample` + - `NXparameters` Other classes should be mentioned as optional, even though NXmonitor and NXuser are recommended. @@ -47,7 +62,9 @@ Other classes should be mentioned as optional, even though NXmonitor and NXuser ### Proposal R2: simplified NXdata - Rename `long_name` into `label` in variable + - Suppress `first_good` and `last_good` + - Add a `range` attribute to variable so that it can be given as a regularly sampled range. ### Proposal R3: scanning mechanism (dim <= 3) diff --git a/source/general_content/ReflectDiscuss.rst b/source/general_content/ReflectDiscuss.rst index b0d6f0a9..adb06b9f 100644 --- a/source/general_content/ReflectDiscuss.rst +++ b/source/general_content/ReflectDiscuss.rst @@ -3,146 +3,398 @@ ReflectDiscuss ============== ---- title: ReflectDiscuss permalink: ReflectDiscuss.html layout: wiki ---- Three files as a starting point for discussion ... the idea is to -come up with reflectometer definitions based on inheritance from other -definitions such as [TOFRaw](TOFRaw.html "wikilink") - outline the parts -of tofraw needed for reflectometry. - create a reflectometry base - -create a TOF reflectometry from base+tofraw -\* intensity {Suggested spectrum measurement for intensity vs. -wavelength for a given slit setting. Warning: beam profile is not -regular, but this effect is accomodated in the spectrum measurement. May -measure monitor versus detector or monitor vs. monitor or simply -absolute detector counts for a particular slit setting.} \* background -{Suggested background measurement; needed for point detector -measurements} \* background {Suggested background measurement} ? {Angle -relative to the scattering plane, not to gravity.} {Reflectometry -characterization of samples is much more complex than given in -NXsample.} {Slits defining the beam width and possibly the height -relative to the surface of the sample.} ? ? ? ? ? ? { Need all fields so -that we can calculate shadow of beam stop on detector. } { Angle of the -detector relative to the scattering plane. } { Indicate sense of -scattering: 0 is front surface of sample, 180 is back surface of sample. -If 180, change the sign of the reflected angle in the data. It is also -possible for the beam to enter the substrate from the side and reflect -off the back surface of a film, in which case negative angles can be -interpreted as inverting the scattering length density profile of the -film (after accounting for absorption in the substrate. } ? { -"intensity"\|"background"\|"specular"\|"rock"\|"slice"\|"area" } ? { -"++"\|"+-"\|"-+"\|"--"\|"+"\|"-" } ? \* { Various logs for temperature, -field, etc. which are assumed to be constant over the duration of the -run. The reduction program should be able to display their values on a -parallel graph. Note that logs are not necessarily sampled synchronously -with the data points. } NXmonoref {\|Q\|}? ? ? ? ? ? ? ? ? ? ? ? ? { -Reduction software needs to ignore Q values outside the range defined by -the choppers. The T0 chopper is phased to the source to block fast -neutron and gamma flash. The frame overlap chopper is set to select low -wavelength neutrons (those from the current pulse) or high wavelength -neutrons (those from the previous pulse. On a properly tuned instrument, -the time bins recorded in the detector will reflect the actions of the -choppers and these fields can be ignored. } ? { The frame overlap mirror -is used to eliminate very long wavelength neutrons from previous pulses. -Together with the choppers, this helps to choose which pulse to use in -the TOF calculations. On a properly tuned instrument the time bins -recorded in the detector will account for the actions of the mirror. -There will be some attenuation but this will be compensated for when -correcting for the spectrum scan. For an ab initio calculation, you -would need to store the angle wrt the beam to compute the cutoff angle -but often this will not be explicit since the instrument is simply tuned -to have the correct cutoff. } also one from the old SWIKI NXtofnref.xml -{Name of instrument} {(x,y,z) position coordinates relative to origin at -sample position}? {The orientation information is stored as direction -cosines relative to origin at sample position.} {"nxcylinder", "nxbox", -"nxsphere", ...}? { nshapepar dimensions for selected shape}? -{Sequential order of target along beam path} {Optional -description/label}? {Sequential order of component along beam path}? -{"Engineering" position of moderator}? {Effective distance as seen by -measuring radiation}? { "H20" \| "D20" \| "Liquid H2" \| "Liquid CH4" \| -"Liquid D2" \| "Solid D2" \| "C" \|"Solid CH4" \| "Solid H2"}? {Poison -depth}? {whether the moderator is coupled}? { Gd \| Cd \|...} -{average/nominal moderator temperature} {log file of moderator -temperature} {moderator pulse shape} {Position and orientation of -moderator}? {(x,y,z) position coordinates relative to origin at sample -position}? {The orientation information is stored as direction cosines -relative to origin at sample position.} {"nxcylinder", "nxbox", -"nxsphere", ...}? { nshapepar dimensions for selected shape}? -{Sequential order of moderator along beam path} \* {} {} {Reflectivity -as function of wavelength [nsurf,i]} {} {} "vacuum"\|"helium"\|"argon" -{external material outside substrate} {} {} {} {} {} {} {number of -substrate sections} {Position and orientation of guide}? {(x,y,z) -position coordinates relative to origin at sample position}? {The -orientation information is stored as direction cosines relative to -origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { -nshapepar dimensions for selected shape}? {Sequential order of guide -along beam path} ? {Chopper type -single|contra_rotating_pair|synchro_pair}? {chopper rotation speed}? -{Number of slits} {angular opening} {disc spacing in direction of beam}? -{radius to centre of slit} {total slit height} {chopper phase angle}? -{pulse reduction factor of this chopper in relation to other -choppers/fastest pulse in the instrument}? {Effective distance to the -origin}? {low and high values of wavelength range transmitted}? -{Position and orientation of chopper}? {(x,y,z) position coordinates -relative to origin at sample position}? {The orientation information is -stored as direction cosines relative to origin at sample position.} -{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for -selected shape}? {Sequential order of chopper along beam path} \* -{Absorbing material of the aperture}? {Description of aperture}? -{Position and orientation of aperture}? {(x,y,z) position coordinates -relative to origin at sample position}? {The orientation information is -stored as direction cosines relative to origin at sample position.} -{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for -selected shape}? {Sequential order of aperture along beam path} + -"Fission Chamber"\|"Scintillator"? "monitor"\|"timer"? {preset value for -time or monitor}? {Distance of monitor from sample position}? {Monitor -efficiency as a function of wavelength}? {Proportion of incident beam -sampled by the monitor} {Position and orientation of monitor}? {(x,y,z) -position coordinates relative to origin at sample position}? {The -orientation information is stored as direction cosines relative to -origin at sample position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { -nshapepar dimensions for selected shape}? {Sequential order of monitor -along beam path} {} {} {Reflectivity as function of wavelength} {} {} -"vacuum"\|"helium"\|"argon" {external material outside substrate} {} {} -{} {} {} {} {Position and orientation of mirror}? {(x,y,z) position -coordinates relative to origin at sample position}? {The orientation -information is stored as direction cosines relative to origin at sample -position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar -dimensions for selected shape}? {Sequential order of aperture along beam -path} \* {} {} {Reflectivity as function of wavelength} {} {} -"vacuum"\|"helium"\|"argon" {external material outside substrate} {} {} -{} {} {} {} {Position and orientation of polariser}? {(x,y,z) position -coordinates relative to origin at sample position}? {The orientation -information is stored as direction cosines relative to origin at sample -position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar -dimensions for selected shape}? {Sequential order of aperture along beam -path} \* {coil|current-sheet}? {Number of turns/cm in flipping field -coils}? {Number of turns/cm in compensating field coils}? {Number of -turns/cm in guide field coils}? {Flipping field coil current in "on" -state"}? {Compensating field coil current in "on" state"}? {Guide field -coil current in "on" state"}? {thickness along path of neutron travel}? -{Position and orientation of flipper}? {(x,y,z) position coordinates -relative to origin at sample position}? {The orientation information is -stored as direction cosines relative to origin at sample position.} -{"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar dimensions for -selected shape}? {Sequential order of aperture along beam path} + {Total -time of flight} {Identifier for detector}? {Data values}? {Data values} -{offset from the detector center in x-direction}? {offset from the -detector center in the y-direction}? {name/manufacturer/model/etc. -information}? {Position and orientation of detector element}? -{translation normal to direct beam}? {Solid angle subtended by the -detector at the sample}? {Size of each detector pixel. If it is scalar -all pixels are the same size}? {Size of each detector pixel. If it is -scalar all pixels are the same size}? {Detector dead time}? {Delay in -detector registering an event}? {Detector gas pressure}? {maximum drift -space dimension}? {Crate number of detector}? {Slot number of detector}? -{Input number of detector}? "He3 gas cylinder"\|He3 PSD"\|"He3 planar -multidetector"\| "He3 curved multidetector"\| "multi-tube He3 PSD"\|"BF3 -gas"\|"scintillator"\|"fission chamber"? {Efficiency of detector with -respect to e.g. wavelength}? {date of last calibration (geometry and/or -efficiency) measurements}? {summary of conversion of array data to -pixels (e.g. polynomial approximations) and location of details of the -calibrations}? {Position and orientation of aperture}? {(x,y,z) position -coordinates relative to origin at sample position}? {The orientation -information is stored as direction cosines relative to origin at sample -position.} {"nxcylinder", "nxbox", "nxsphere", ...}? { nshapepar -dimensions for selected shape}? {Sequential order of aperture along beam -path} +Three files as a starting point for discussion ... the idea is to come +up with reflectometer definitions based on inheritance from other +definitions such as [TOFRaw](TOFRaw.html "wikilink") + +- outline the parts of tofraw needed for reflectometry. +- create a reflectometry base +- create a TOF reflectometry from base+tofraw + +.. code-block:: xml + + + + + + + + * + intensity + {Suggested spectrum measurement for intensity vs. wavelength + for a given slit setting. Warning: beam profile is not + regular, but this effect is accomodated in the spectrum measurement. + May measure monitor versus detector or monitor vs. monitor or + simply absolute detector counts for a particular slit setting.} + + + * + background + {Suggested background measurement; needed for point detector measurements} + + + * + background + {Suggested background measurement} + + + + ? + {Angle relative to the scattering plane, not to gravity.} + + {Reflectometry characterization of samples is much more complex than + given in NXsample.} + + + + + + + + {Slits defining the beam width and possibly the height relative + to the surface of the sample.} + + + + + ? + ? + + ? + ? + + + ? + + + ? + { Need all fields so that we can calculate shadow of beam stop on detector. } + + + + + { Angle of the detector relative to the scattering plane. } + + + { Indicate sense of scattering: 0 is front surface of sample, + 180 is back surface of sample. If 180, change the sign of the + reflected angle in the data. It is also possible for the beam + to enter the substrate from the side and reflect off the back + surface of a film, in which case negative angles can be + interpreted as inverting the scattering length density profile + of the film (after accounting for absorption in the substrate. } + + + + + + + ? + + + + + { "intensity"|"background"|"specular"|"rock"|"slice"|"area" } + + ? + { "++"|"+-"|"-+"|"--"|"+"|"-" } + + + + + ? + + + * + { Various logs for temperature, field, etc. which are assumed to + be constant over the duration of the run. The reduction program + should be able to display their values on a parallel graph. Note + that logs are not necessarily sampled synchronously with the + data points. } + + + + + + + NXmonoref + + + + + {|Q|}? + + + + + + + + + + + + ? + + + + + + ? + + + + ? + ? + ? + ? + ? + ? + ? + ? + ? + + + + + + ? + + { Reduction software needs to ignore Q values outside the range + defined by the choppers. The T0 chopper is phased to the source + to block fast neutron and gamma flash. The frame overlap + chopper is set to select low wavelength neutrons (those from + the current pulse) or high wavelength neutrons (those from + the previous pulse. + + On a properly tuned instrument, the time bins recorded in + the detector will reflect the actions of the choppers and + these fields can be ignored. + } + + + ? + + + { The frame overlap mirror is used to eliminate very long wavelength + neutrons from previous pulses. Together with the choppers, this + helps to choose which pulse to use in the TOF calculations. On a + properly tuned instrument the time bins recorded in the detector + will account for the actions of the mirror. + + There will be some attenuation but this will be compensated for + when correcting for the spectrum scan. + + For an ab initio calculation, you would need to store the angle + wrt the beam to compute the cutoff angle but often this will not + be explicit since the instrument is simply tuned to have the + correct cutoff. } + + + + + + +also one from the old SWIKI + +.. code-block:: xml + + NXtofnref.xml + + + + + {Name of instrument} + + + + + + + {(x,y,z) position coordinates relative to origin at sample position}? + + + + + + {The orientation information is stored as direction cosines relative to origin at sample position.} + + + + {"nxcylinder", "nxbox", "nxsphere", ...}? + + { nshapepar dimensions for selected shape}? + + + + {Sequential order of target along beam path} + + {Optional description/label}? + + {Sequential order of component along beam path}? + + + + + + + {"Engineering" position of moderator}? + {Effective distance as seen by measuring radiation}? + + { "H20" | "D20" | "Liquid H2" | "Liquid CH4" | "Liquid D2" | "Solid D2" | "C" |"Solid CH4" | "Solid H2"}? + {Poison depth}? + {whether the moderator is coupled}? + { Gd | Cd |...} + {average/nominal moderator temperature} + {log file of moderator temperature} + {moderator pulse shape} + + {Position and orientation of moderator}? + + + {(x,y,z) position coordinates relative to origin at sample position}? + + + + + {The orientation information is stored as direction cosines relative to origin at sample position.} + + + + {"nxcylinder", "nxbox", "nxsphere", ...}? + + { nshapepar dimensions for selected shape}? + + + + {Sequential order of moderator along beam path} + + + + + + + + {} + {} + {Reflectivity as function of wavelength [nsurf,i]} + {} + {} + "vacuum"|"helium"|"argon" + {external material outside substrate} + {} + {} + {} + {} + {} + {} + {number of substrate sections} + + {Position and orientation of guide}? + + + {(x,y,z) position coordinates relative to origin at sample position}? + + + + + {The orientation information is stored as direction cosines relative to origin at sample position.} + + + + {"nxcylinder", "nxbox", "nxsphere", ...}? + + { nshapepar dimensions for selected shape}? + + + + {Sequential order of guide along beam path} + + + + + + + + + + + {Chopper type single|contra_rotating_pair|synchro_pair}? + {chopper rotation speed}? + {Number of slits} + {angular opening} + {disc spacing in direction of beam}? + {radius to centre of slit} + {total slit height} + {chopper phase angle}? + {pulse reduction factor of this chopper in relation to other choppers/fastest pulse in the instrument}? + {Effective distance to the origin}? + {low and high values of wavelength range transmitted}? + + {Position and orientation of chopper}? + + + {(x,y,z) position coordinates relative to origin at sample position}? + + + + + {The orientation information is stored as direction cosines relative to origin at sample position.} + + + + {"nxcylinder", "nxbox", "nxsphere", ...}? + + { nshapepar dimensions for selected shape}? + + + + {Sequential order of chopper along beam path} + + + + + + diff --git a/source/general_content/SAS.rst b/source/general_content/SAS.rst index 00c8045e..2623b914 100644 --- a/source/general_content/SAS.rst +++ b/source/general_content/SAS.rst @@ -2,52 +2,184 @@ SAS === +Small-Angle Scattering +====================== ---- title: SAS permalink: SAS.html layout: wiki --- Small-Angle -Scattering ====================== 2006-04-19 ---------- Given the -complex requirements for initial data treatment on pulsed source SANS -instruments there has been general agreement to separate these from the -much simpler pin-hole geometry cameras used for monochromatic X-ray and -Neutron SAS studies, shown together below as NXmonosas. 2006-10-05 ----------- Effort was made to simplify the definition below, correct -errors (such as removed fields that did not exist in base classes), and -remove unnecessary information. Suggest that this be called -\*NXsas\\_mono\\_area\* (very cumbersome) since the fields are -appropriate to SAS instruments with area detectors at monochromatics -sources. The definition does not match well to other types of SAS -instrument such as USAS, Kratky, step-scanning, or slit-camera with PSD. -2006-10-06 ---------- A description of the wavelength and possibly a -spectral description (either vague or detailed such as a spectral -profile) is needed for analysis software to account for not only -wavelength but wavelength smearing and other spectral effects -(high-order harmonics, for example). Due to the variety of optics used -to provide such a beam, rather than define each of those possible optics -in the generic instrument definition, we define the spectral properties -of the beam incident on the sample that results from all the upstream -optics. Two possible ways: - Object-oriented approach - This needs a new -base class since a generic SAS description will define wavelength using -generic hardware; not everyone has helical velocity selector or a -crystal monochromator. X-rays are admittedly the more tedious case. - -NXspectrum might be a good choice. - NXwavelength\\_selector is more to -the point. - NXmonochromator is our choice. This will sit well next to -NXbending\\_magnet, NXcrystal, NXinsertion\\_device, NXmirror, -NXmoderator, and NXvelocity\\_selector. - NXbeam - Imperfect becuase -NXbeam was intended for the simulation community despite the note in the -documentation about beamline use. The fields are not entirely -appropriate and some questions will often arise. -{Name of instrument}? "neutron"\|"x-ray" {The nominal fraction of the -beam transmitted by the attenuator} {location and shape of aperture} -{location and shape of collimator} {characteristics of beam at sample} -{selected wavelength} {wavelength distribution full width at half -maximum}? ? {Data values}? {distance between sample and detector} -{X-direction pixel coordinate on the detector with origin at detector -center}? {Y-direction pixel coordinate on the detector with origin at -detector center}? {signal from detector when not illuminated}? {x,y -position of straight-through beam (a.k.a. beam center) on the detector}? -{shape, orientation and position of the beam stop} {"in"\|"out"} -"monitor"\|"timer"? {preset for terminating measurement} {Monitor value} -{signal from monitor when not illuminated}? {Elapsed actual counting -time, the time the instrument was really counting, without pauses or -times lost due beam unavailability} + {link to detector counts in -NXdetector} {link to x_offset in detector group} {link to y_offset in -detector group} +2006-04-19 +---------- + +Given the complex requirements for initial data treatment on pulsed +source SANS instruments there has been general agreement to separate +these from the much simpler pin-hole geometry cameras used for +monochromatic X-ray and Neutron SAS studies, shown together below as +NXmonosas. + +2006-10-05 +---------- + +Effort was made to simplify the definition below, correct errors (such +as removed fields that did not exist in base classes), and remove +unnecessary information. + +Suggest that this be called *NXsas_mono_area* (very cumbersome) since +the fields are appropriate to SAS instruments with area detectors at +monochromatics sources. The definition does not match well to other +types of SAS instrument such as USAS, Kratky, step-scanning, or +slit-camera with PSD. + +2006-10-06 +---------- + +A description of the wavelength and possibly a spectral description +(either vague or detailed such as a spectral profile) is needed for +analysis software to account for not only wavelength but wavelength +smearing and other spectral effects (high-order harmonics, for example). +Due to the variety of optics used to provide such a beam, rather than +define each of those possible optics in the generic instrument +definition, we define the spectral properties of the beam incident on +the sample that results from all the upstream optics. + +Two possible ways: + +- Object-oriented approach + - This needs a new base class since a generic SAS description will + define wavelength using generic hardware; not everyone has + helical velocity selector or a crystal monochromator. X-rays are + admittedly the more tedious case. + - NXspectrum might be a good choice. + - NXwavelength_selector is more to the point. + - NXmonochromator is our choice. This will sit well next to + NXbending_magnet, NXcrystal, NXinsertion_device, NXmirror, + NXmoderator, and NXvelocity_selector. + +.. code-block:: xml + + + + - NXbeam + - Imperfect because NXbeam was intended for the simulation + community despite the note in the documentation about beamline + use. The fields are not entirely appropriate and some questions + will often arise. + + + + + + + + + {Name of instrument}? + + "neutron"|"x-ray" + + + + + {The nominal fraction of the beam transmitted by the attenuator} + + + + + {location and shape of aperture} + + + {location and shape of collimator} + + + + + {characteristics of beam at sample} + {selected wavelength} + + {wavelength distribution full width at half maximum}? + + ? + + + + + {Data values}? + + + {distance between sample and detector} + + + {X-direction pixel coordinate on the detector with origin at detector center}? + + + {Y-direction pixel coordinate on the detector with origin at detector center}? + + + {signal from detector when not illuminated}? + + + + {x,y position of straight-through beam (a.k.a. beam center) on the detector}? + + + + {shape, orientation and position of the beam stop} + {"in"|"out"} + + + + + + "monitor"|"timer"? + + {preset for terminating measurement} + + {Monitor value} + + + {signal from monitor when not illuminated}? + + + + {Elapsed actual counting time, the time the instrument + was really counting, without pauses or times lost due + to beam unavailability} + + + + + + + + + {link to detector counts in NXdetector} + + + {link to x_offset in detector group} + + + {link to y_offset in detector group} + + + + diff --git a/source/general_content/Scaled_Data.rst b/source/general_content/Scaled_Data.rst index 978f2f46..065589fe 100644 --- a/source/general_content/Scaled_Data.rst +++ b/source/general_content/Scaled_Data.rst @@ -1,41 +1,66 @@ -=========== Scaled Data =========== ---- title: Scaled Data permalink: Scaled_Data.html layout: wiki --- -Scaled Data ----------- This suggestion is one of the outcomes of the -NeXus for Synchrotrons Workshop at PSI: The Suggestion -------------- +Scaled Data +----------- + +This suggestion is one of the outcomes of the +NeXus for Synchrotrons Workshop at PSI: + +The Suggestion +-------------- + NeXus STRONGLY suggests to store data as arrays of physical values in C storage order. However, for cases where this is not possible or would cause an efficiency concern when writing allow to store raw data. Such data must be annotated with additional attributes as described below in order to allow reading software to reconstruct the true physical value. -The Reasoning ------------- The data rates possible at synchrotron + +The Reasoning +------------- + +The data rates possible at synchrotron facilities and the new pixel detectors test current computing technology to their limits. There may not be enough time to scale or convert data on the fly before writing to disk. In some occasions significant space savings can be obtained by storing data as short integers and scaling them to the desired floating point values. In the formulas below Vtrue denotes the true value of the data item, Vraw the one which is stored in -the data element on file. The attributes are: - transform: This is the -indicator that a transformation of the Vraw data is necessary. Transform -can have one the following values: - offset: Vtrue = Vraw + offset - -scaling: Vtrue = Vraw \\\* scaling - scaling\\_offset: both an offset -and scaling is applied. Vtrue = Vraw\\*scaling + offset - sqrt\\_scaled: -Vtrue = (Vraw/scaling)\\*(Vraw/scaling) - logarithmic\\_scaled: Vtrue = -(Vraw/scaling)\\*\\*10 - polynomial: Vtrue = p1 + p2\\*Vraw + -p3\\*Vraw\\*Vraw + p4\\*Vraw\\*Vraw\\*Vraw .... - offset: The offset to -apply - scaling: The scale factor to apply - direction: a komma -separated list of length ndim which specifies for each dimension if it -is increasing or decreasing. If this attribute is missing, increasing is -implied. - precedence: a komma separated list of length ndim which gives -the rank order in which array indexes change with respect to other -indexes. A precedence of 1 denotes the fastest changing index. If this -attribute is missing, C storage order is implied. - coefficients, a -komma separated list of the polynomial coefficients to use for a -polynomial transform Update 01/2015 -------------- There was some -discussion on this at NIAC 2010 and 2012. IMHO, the result was that all +the data element on file. The attributes are: + +- transform: This is the indicator that a transformation of the Vraw data is necessary. Transform + can have one the following values: + + - offset: Vtrue = Vraw + offset + + - scaling: Vtrue = Vraw * scaling + + - scaling_offset: both an offset and scaling is applied. Vtrue = Vraw*scaling + offset + + - sqrt_scaled: Vtrue = (Vraw/scaling)*(Vraw/scaling) + + - logarithmic_scaled: Vtrue = (Vraw/scaling)**10 + + - polynomial: Vtrue = p1 + p2*Vraw + p3*Vraw*Vraw + p4*Vraw*Vraw*Vraw .... + +- offset: The offset to apply + +- scaling: The scale factor to apply + +- direction: a komma separated list of length ndim which specifies for each dimension if it + is increasing or decreasing. If this attribute is missing, increasing is implied. + +- precedence: a komma separated list of length ndim which gives the rank order in which array indexes change with + respect to other indexes. A precedence of 1 denotes the fastest changing index. If this attribute is missing, + C storage order is implied. + +- coefficients, a komma separated list of the polynomial coefficients to use for a polynomial transform + +Update 01/2015 +-------------- + +There was some discussion on this at NIAC 2010 and 2012. IMHO, the result was that all fixed schemes fall over in some point when people come up with new scaling schemes. It was decided to devise a NXformula base class to solve this problem. There was some further discussion on scaling in 2014 diff --git a/source/general_content/Storing_Event_Data.rst b/source/general_content/Storing_Event_Data.rst index d095abae..5c1719e4 100644 --- a/source/general_content/Storing_Event_Data.rst +++ b/source/general_content/Storing_Event_Data.rst @@ -1,51 +1,74 @@ -================== Storing Event Data ================== - ---- title: Storing Event Data permalink: Storing_Event_Data.html layout: -wiki --- This discussion concerns a proposal from -[NIAC2008](NIAC2008.html "wikilink") to rename -[NXevent\\_data](NXevent_data.html "wikilink") as NXtofevent\\_data. +This discussion concerns a proposal from +`[NIAC2008] <../niac/NIAC2008.html>`__ to rename +`[NXevent_data] `__ as NXtofevent_data. When this proposal was passed to the full committee, a number of issues were raised and it was decided that a further round of discussion was -required. Please comment on the proposals below on the [discussion -page](Talk:Storing_Event_Data.html "wikilink") Listed below are some of -the main reasons cited for and against: REASONS FOR ----------- - -NXtofevent\\_data better describes the content of the object, given that -[NXevent\\_data](NXevent_data.html "wikilink") has a -time\\_of\\_flight member REASONS AGAINST --------------- - Event data -is potentially of importance to the other communities and therefore it -would be good to ensure that the definition name for event data is as -general as possible. Event data is not always measured against -time\\_of\\_flight - it may be e.g. muon decay time and so a more -general event\\_time axis may be applicable - I'm not sure why the -addition of tof is necessary. Pulsed source and chopped continuous -source event data can be represented in ways that are substantially the -same. By renaming the fields we can handle different kinds of events in -the same manner, so there is no need to change the group name to be -specific to time of flight - NXtofevent\\_data is an ugly name. -NXtof\\_event\\_data is a better name, or just NXevent\\_data PROPOSAL -from Paul Kienzle regarding contents of NXevent\\_data --------------------------------------------------------------- First -note that either pulse\\_height or pulse\\_time is the wrong name. - -pulse\\_height\\[i,k?\\] refers to the voltage pulse measured by the -detector - pulse\\_time\\[j\\] refers to the time that the neutron pulse -reached the moderator The description of the pulse\\_height field is -confusing. It refer to events\\_per\\_pulse, which has length j but it's -own index is of length i, so something is screwy. I suggest renaming -time\\_of\\_flight to event\\_time and pulse\\_time to frame\\_time and -you have something that can be used either for continuous or pulsed -sources. - event\\_time\\[i\\]: time relative to the start of the frame -- pixel\\_number\\[i\\]: detector which registered the event - -frame\\_time\\[j\\]: time relative to the start of the measurement - -events\\_per\\_frame\\[j\\]: as before - pulse\\_height\\[i,k?\\]: -detector voltages The frame\\_time for continuous sources presumably -refers to the time when the detector was turned on after moving the -motors during a scan for multi-point scans. When scanning continously (a -potentially useful measurement during alignment operations), the frame -time would more likely refer to the pulses from the motor position -detectors. Conclusion ---------- 01/2015: There was no activity on this -for a long time. There is a NXevent\\_data base class and both SNS and +required. Please comment on the proposals below on the `[discussion page] `__. +Listed below are some of the main reasons cited for and against: + +REASONS FOR +----------- + +- NXtofevent_data better describes the content of the object, given that + [NXevent_data](NXevent_data.html "wikilink") has a time_of_flight member + +REASONS AGAINST +--------------- + +- Event data is potentially of importance to the other communities and therefore it + would be good to ensure that the definition name for event data is as + general as possible. Event data is not always measured against + time_of_flight + +- it may be e.g. muon decay time and so a more + general event_time axis may be applicable + +- I'm not sure why the + addition of tof is necessary. Pulsed source and chopped continuous + source event data can be represented in ways that are substantially the + same. By renaming the fields we can handle different kinds of events in + the same manner, so there is no need to change the group name to be + specific to time of flight + +- NXtofevent_data is an ugly name. + NXtof_event_data is a better name, or just NXevent_data + +PROPOSAL from Paul Kienzle regarding contents of NXevent_data +-------------------------------------------------------------- + +First +note that either pulse_height or pulse_time is the wrong name. + +- pulse_height[i,k?] refers to the voltage pulse measured by the + detector - pulse_time[j] refers to the time that the neutron pulse + reached the moderator The description of the pulse_height field is + confusing. It refer to events_per_pulse, which has length j but it's + own index is of length i, so something is screwy. I suggest renaming + time_of_flight to event_time and pulse_time to frame_time and + you have something that can be used either for continuous or pulsed + sources. + +- event_time[i]: time relative to the start of the frame + +- pixel_number[i]: detector which registered the event - + frame_time[j]: time relative to the start of the measurement - + events_per_frame[j]: as before + +- pulse_height[i,k?]: + detector voltages The frame_time for continuous sources presumably + refers to the time when the detector was turned on after moving the + motors during a scan for multi-point scans. When scanning continuously (a + potentially useful measurement during alignment operations), the frame + time would more likely refer to the pulses from the motor position + detectors. + +Conclusion +---------- + +01/2015: There was no activity on this +for a long time. There is a NXevent_data base class and both SNS and ISIS are writing data files using that base class. Please consult the documentation of the base class for the current state. diff --git a/source/general_content/Utilities.rst b/source/general_content/Utilities.rst index e220eb70..911173dc 100644 --- a/source/general_content/Utilities.rst +++ b/source/general_content/Utilities.rst @@ -1,157 +1,130 @@ -========= -Utilities -========= - - -.. container:: content - - .. container:: page - - .. rubric:: Utilities - :name: utilities - :class: page-title - - .. rubric:: NeXus Browsers and Other Utilities - :name: nexus-browsers-and-other-utilities - - | `NXbrowse `__:A command-line utility for browsing - NeXus files. - | NXtoXML:A utility to translate NeXus files to XML, written in - ISO C. If used from a terminal (and installed in the default - PATH [u**x] or defined as a symbol [VMS]), type - - .. container:: language-plaintext highlighter-rouge - - NXtoXML - - On most systems, NXtoXML is compiled and linked during the - standard NeXus installation (v2.0 and later). Precompiled binary - versions are available for a limited number of operating systems - (Linux, VMS, Macintosh). Please contact Ray Osborn for more - information. - - NXtoDTD: A utility to translate NeXus files to XML without - including the data values, written in ISO C. This is useful in - defining the structure of a NeXus file and can be used to produce - the skeleton of a NeXus metaDTD file from an existing NeXus file. - If used from a terminal (and installed in the default PATH [u**x] - or defined as a symbol [VMS]), type - - .. container:: language-plaintext highlighter-rouge - - NXtoDTD - - On most systems, NXtoDTD is compiled and linked during the - standard NeXus installation (v2.0 and later). Precompiled binary - versions are available for a limited number of operating systems - (Linux, VMS, Macintosh). Please contact Ray Osborn for more - information. - - | `NXdir `__:CLI tool that lists contents of NeXus - file and convert selected portions to ASCII. - | NXtree:A utility to output the structure of a NeXus file in a - tree structure. It has options to produce either HTML or LaTeX - output, with or without data values and attributes. - - .. container:: language-plaintext highlighter-rouge - - NXtree [-[no]attr] [-[no]data] [-html | -latex] - - The file NXtree.tar.gz contains the source code to be used on u**x - platforms and NXtree-win32.zip contains a binary version for - various flavors of Windows. It was written by Thomas Proffen - - - | NXvalid:GUI tool to interactively explore, plot, and validate - NeXus files. - | NXtranslate:Anything to NeXus converter - | NDS:NeXus data server, publish NeXus files on TCP/IP, read only - (SINQ) - | NNDB:Java program to browse NeXus files published through NDS - (SINQ) - | HDFView:Java-based tool for browsing and visualizing HDF4/5 - files. - | HDFExplorer:Windows HDF viewer for HDF4, HDF5 and netCDF files - from http://www.space-research.org offers grid/scalar - image/vector images and data export. - | IgorPro HDF5 Browser:Windows and MacOSX HDF viewer for HDF4 and - HDF5 files from http://www.wavemetrics.com provides views of raw - content dumps, tables, plots, and images, and data import. - - .. rubric:: Plotting Applications - :name: plotting-applications - - | `NeXpy `__: A Python-based approach to interactive - data analysis that allows complete data structures to be read - into a tree and new data structures to be created using an - simple intuitive syntax. The data can be plotted, sliced, - manipulated, and saved to a file. - | `Open Genie `__:Open Genie is an - object-oriented data analysis and visualization package - developed at the ISIS pulsed neutron facility. The latest - version has the ability to load an entire NeXus file into a - workspace structure, as well as write NeXus files. - | ISAW:ISAW is a java-based analysis package used to read, - manipulate, view, and save neutron scattering data. ISAW can - read data from NeXus files and can merge and sort data from - separate measurements.. - | IDL:Mark Koennecke has written a set of IDL utilities for - interfacing to NeXus files. - | LAMP:This is a general purpose neutron data analysis package, - developed at ILL and layered on IDL. A run-time version is - available for those without an IDL license. It can read and - write NeXus files. - | `KUPLOT `__:This is a universal - data plotting program, that is used to visualize DISCUS or - PDFFIT results as well as for other plotting purposes - | NXviewer:OpenDave based viewer (FRM2). - | HDFLook:Motif HDF viewer which has some impressive plotting - capabilities. For example, it is possible to plot 2D data sets - and then take arbitrary 1D cuts. However, it does not recognize - Vgroups, so the NeXus file hierarchy is lost making it hard to - identify the plottable data. However, the price is right (i.e. - it"s free). - | MATLAB: `MATLAB `__ - will read a general `HDF5 `__ - format file and so is able to import any NeXus file which used - HDF5 as its underlying representation. - - .. rubric:: Data Analysis - :name: data-analysis - - | `NeXpy `__: A Python-based approach to interactive - data analysis that allows complete data structures to be read - into a tree and new data structures to be created using an - simple intuitive syntax. The data can be plotted, sliced, - manipulated, and saved to a file. - | `Open Genie `__: I include Open Genie - here as well since it is really more of a data analysis package - than a plotting package per se. Support for performing analysis - on NeXus files is currently limited, but can be acomplished by - mapping parts of the imported NeXus file into a new workspace - that to make it resemble an ISIS RAW data file. - | LAMP: LAMP is also designed for analyzing raw data in addition - to visualizing the results. - | UDA and WIMDA:General purpose muon scattering analysis packages - (ISIS) - | hdfb.sav and h5b.sav:browser for any 1D/2D/3D data saved in HDF - (APS) - | GumTree:scientific workbench for instrument control (BI) - | ninx:inx (ILL) adapted to read FOCUS TOF files (SINQ) - | Nathan:TOF data analysis for FOCUS (IDL based) (SINQ) - | anatric, cami4pcd:four circle diffractometer data analysis - (SINQ) - | BerSANS:data analysis for SANS through adapter (SINQ) - - | fit:home grown fitting program (SINQ) - | addit, subi:programs to add or subtract powder data and write - files suitable for Rietveld programs (SINQ) - | Redas:data analysis for Reflectometer, based on Scilab (SINQ) - | Amortool:simple CLI tool for Reflectometer data analysis (SINQ) - | Scilab:general matlab like data analysis tool - with a NeXus - interface for that (SINQ) - | `Mantid `__: An instrument - independant data analysis framework that supports NeXus as an - output format and both `TOFRaw `__ and - `Muon_Time_Differential `__ as - input formats. +NeXus Browsers and Other Utilities +---------------------------------- + +`[NXbrowse] `__: +A command-line utility for browsing NeXus files. + +**NXtoXML**: +A utility to translate NeXus files to XML, written in ISO C. If used from a terminal (and installed in the default PATH [u**x] or defined as a symbol [VMS]), type + + NXtoXML + +On most systems, NXtoXML is compiled and linked during the standard NeXus installation (v2.0 and later). Precompiled binary versions are available for a limited number of operating systems (Linux, VMS, Macintosh). Please contact Ray Osborn for more information. + +**NXtoDTD**: +A utility to translate NeXus files to XML without including the data values, written in ISO C. This is useful in defining the structure of a NeXus file and can be used to produce the skeleton of a NeXus metaDTD file from an existing NeXus file. If used from a terminal (and installed in the default PATH [u**x] or defined as a symbol [VMS]), type + + NXtoDTD + +On most systems, NXtoDTD is compiled and linked during the standard NeXus installation (v2.0 and later). Precompiled binary versions are available for a limited number of operating systems (Linux, VMS, Macintosh). Please contact Ray Osborn for more information. + +`[NXdir] `__: +CLI tool that lists contents of NeXus file and convert selected portions to ASCII. + +**NXtree**: +A utility to output the structure of a NeXus file in a tree structure. It has options to produce either HTML or LaTeX output, with or without data values and attributes. + + NXtree [-[no]attr] [-[no]data] [-html | -latex] + +The file NXtree.tar.gz contains the source code to be used on u**x platforms and NXtree-win32.zip contains a binary version for various flavors of Windows. It was written by Thomas Proffen + +**NXvalid**: +GUI tool to interactively explore, plot, and validate NeXus files. + +**NXtranslate**: +Anything to NeXus converter + +**NDS**: +NeXus data server, publish NeXus files on TCP/IP, read only (SINQ) + +**NNDB**: +Java program to browse NeXus files published through NDS (SINQ) + +**HDFView**: +Java-based tool for browsing and visualizing HDF4/5 files. + +**HDFExplorer**: Windows HDF viewer for HDF4, HDF5 and netCDF files from offers grid/scalar image/vector images and data export. + +**IgorPro HDF5 Browser**: +Windows and MacOSX HDF viewer for HDF4 and HDF5 files from provides views of raw content dumps, tables, plots, and images, and data import. + +Plotting Applications +--------------------- + +`[NeXpy] `__: +A Python-based approach to interactive data analysis that allows complete data structures to be read into a tree and new data structures to be created using a simple intuitive syntax. The data can be plotted, sliced, manipulated, and saved to a file. + +**[Open Genie] `__: +A Python-based approach to interactive data analysis that allows complete data structures to be read into a tree and new data structures to be created using a simple intuitive syntax. The data can be plotted, sliced, manipulated, and saved to a file. + +**[Open Genie] `__ and [Muon_Time_Differential] `__ as input formats. From 2ec0f06c5acc791cf049602265e96f43e216b342 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Tue, 11 Feb 2025 11:58:04 -0600 Subject: [PATCH 15/16] added required common directory to hold the downloaded logo files from manual repo --- common/nothing | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 common/nothing diff --git a/common/nothing b/common/nothing new file mode 100644 index 00000000..e69de29b From fd3941487dd5b3ecf5176ba1556ccb2ac54b50c6 Mon Sep 17 00:00:00 2001 From: Russ Berg Date: Thu, 13 Feb 2025 09:13:26 -0600 Subject: [PATCH 16/16] specified svg images instead of png, fixed an underline in Jav_api.rst --- source/conf.py | 2 +- source/general_content/Java_API.rst | 1 - source/index.rst | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/source/conf.py b/source/conf.py index c8d76f27..d6dbadd8 100644 --- a/source/conf.py +++ b/source/conf.py @@ -110,7 +110,7 @@ def do_copy(): # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = "../common/NeXus_Logo_square.svg" -html_favicon = "../common/NeXus_Logo_dark_square_256.png" +html_favicon = "../common/NeXus_Logo_dark_square.svg" # Output file base name for HTML help builder. diff --git a/source/general_content/Java_API.rst b/source/general_content/Java_API.rst index afd302e9..bee72628 100644 --- a/source/general_content/Java_API.rst +++ b/source/general_content/Java_API.rst @@ -29,7 +29,6 @@ shall the Author or the Contributors be liable for any damages suffered by the users arising out of the use of this software, even if advised of the possibility of such damage. ------------------------------------------------------------------------- Binary Packages for the Java NeXus API 1.3x These packages are based on version 1.3.x of the NeXus-API and support only HDF-4. System type Creation Date DigitalUnix4.0D October, 19, 2000 Redhat Linux 6.2 Intel diff --git a/source/index.rst b/source/index.rst index 565f07e7..0637cecc 100644 --- a/source/index.rst +++ b/source/index.rst @@ -3,7 +3,7 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -.. image:: ../common/NeXus_Logo_dark_10000.png +.. image:: ../common/NeXus_Logo_dark.svg :width: 400 :alt: Alternative text

>bWwj|RNC^m7XS@4;tNVM&8#u>DG cVTU$?X!q(D{KrS@&^~Lly-4$(u(k020rz_eR{#J2 diff --git a/build/.doctrees/niac/NIAC2010_CodeCamp.doctree b/build/.doctrees/niac/NIAC2010_CodeCamp.doctree deleted file mode 100644 index 8d0bab540be19e77cc7cf85d8d890855d01d466b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64824 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 diff --git a/build/.doctrees/niac/NIAC2011_CodeCamp.doctree b/build/.doctrees/niac/NIAC2011_CodeCamp.doctree deleted file mode 100644 index 148b6806f4fd9f278bee5e893f1602679d756c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164036 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 LKuEw1n~nb;(Qym; diff --git a/build/.doctrees/niac/NIAC2012.doctree b/build/.doctrees/niac/NIAC2012.doctree deleted file mode 100644 index 22d8a3509b281639390170b8ca6bed63cf9bf0b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309295 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 A3IG5A diff --git a/build/.doctrees/niac/NIAC2014.doctree b/build/.doctrees/niac/NIAC2014.doctree deleted file mode 100644 index 3f31e5f4b65895aad3230791f1fe50f4767b5ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173680 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 diff --git a/build/.doctrees/niac/NIAC2014_CodeCamp.doctree b/build/.doctrees/niac/NIAC2014_CodeCamp.doctree deleted file mode 100644 index df82dcbfe7d2dc408589f2721e87489261b9a394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48457 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 DeHe^3 diff --git a/build/.doctrees/niac/NIAC2016Minutes.doctree b/build/.doctrees/niac/NIAC2016Minutes.doctree deleted file mode 100644 index 24b6276fdf44e55781ec8e7c17655334d9f5aac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76623 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 diff --git a/build/.doctrees/niac/NIAC2018.doctree b/build/.doctrees/niac/NIAC2018.doctree deleted file mode 100644 index 5d87ed7f5ba6deff92bc12f9ca70de712408ed67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34231 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 diff --git a/build/.doctrees/niac/NIAC2020.doctree b/build/.doctrees/niac/NIAC2020.doctree deleted file mode 100644 index bda1bd69cf44b89fb9774790fd465ea274b74943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54208 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 I(f0cP2Xw%{IRF3v diff --git a/build/.doctrees/niac/NIAC2020minutes_concluding.doctree b/build/.doctrees/niac/NIAC2020minutes_concluding.doctree deleted file mode 100644 index 0a08a4ab7c088d0a31a93c2b0cda39120fd290af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83399 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 E0o)1J)&Kwi diff --git a/build/.doctrees/niac/NIAC2022.doctree b/build/.doctrees/niac/NIAC2022.doctree deleted file mode 100644 index 2456026b9eeb4dece32f40979fff83d631dec0f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125283 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 diff --git a/build/.doctrees/niac/NIAC2022_fall_minutes.doctree b/build/.doctrees/niac/NIAC2022_fall_minutes.doctree deleted file mode 100644 index a2a6d1495fa8ab0d1d87ddcd6b8630946f37df77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43681 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 s1{v7fMXS`VdsP-E%h$F!=khHzo&sJ(EtDd diff --git a/build/.doctrees/niac/NIAC2022_minutes.doctree b/build/.doctrees/niac/NIAC2022_minutes.doctree deleted file mode 100644 index 02107839933530d4bbacc769b5e66fd290747649..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177951 zcmeFaiE>=odFNTO)=E2MwPlArGamPKOKN}?h=ogWv7~AcT&uXiBumBCv`i$B7sxCo zGU2?LBv3Jm@MBCzOh3Rp#Kc6*qxc2p73TNXhrRl{ zqC4pAC0)2Yvg3f2TLt?X~t8V&`f8YEWdqSo_t^ z>(?5<|987nKg@4uo&0!E#K-)bts-mWZ}WEdC~su-BCB_@R;Qo$I`w|5+o`v+qF?Vc z>b*v`dy*AR^ouYwzsin!-Gg5J@G$QcSua28<%Pb}Imiy{Uvzu%nf=yYwqM_C zwOjpGUhs}E!o5L{SFdE7MXS!=gQDN7xAmije%kHzo7pBqxAy8hlXZKIyqER6;o&e~ zy`N_Xy`2B_*iVM*+2r*=znL>qy?s)!P=*W-zHJo)Uh}1Yue;CA4EnupXC*tn+^e7X z+YblbPS&XR>#Me9I}f{udDz)(=RvFgaImZ4p7jpuomSyP{i50L9~HOP)(%?z=3sYq zuY0&=yT0G;9oGBtRQ})pE4#9OjnH-!3)( z)JYD4S%N~(B?rE6CM}#IgoUYKK@yn%{O3FTnNNP~vCn+wQy=(pa^k=86Q6vb!>75} zQ7&?ha~|RxCphEr*&SMLez^2K-^7FgFV%*4rQfy>VeR>T4l5UH5A44A-R9rgUHowA zJ1_HN$$_Qs+Ggt~6A0fss`E^LshKT(__~xA&2KM#FNle!OW$cD0hXQ)cI!*EdcWUm z?GE~g7m1T^w;BbaW9j>Q?Rru0AwPdt9NT{SL1S=K{bRSj_l7CjZ@#0CtGRrS&j-EM z($crqmIh1T@7E9P_szd+UTXf&ytjFomo?XHa0!B?dUFE~b2a_oIv?El?b4w6%jVzk z*k3k(-uzy3<|ygC zn%{2z{AqJVx1*%eNSw`tChs?YzVvMEu+v}LTN@N;9BaFI@1Pf??b>dy-q~yB#oD{p zo7QXBF>@~*^C!fE3ZXK zo=jxY2K?pu>fKM5z9X7U23wkKRsJ~3_)z1R@|ezen4(7snCsO1HRS&zC*Hp70uk6zI!(-#W|Lt^niLSHszn{`>kLm|`G=fSUDBj@giQnL$&__)OEn4^c za=72|w#b?p~seBp)Ox%{G;_rA#UcJ`uK-)-p&o7>s) zX1k5Cw~e*e<&*6v+46S1+wNv}5c2ItD|=EO6gHks zT*V&bgLYfr(UJ3xLs)&WqEUE-M%Q13Y_jeyqTsFU&;4Ha(57^!SN{@Qlli_lK_v9L zvhK3St%GJ?BRqzqV*0H^?t^3n{_iI zkJvta99Eyb!{W>Cw(8x(E@NrDdoP~fw;!|-W>x1!pC{b-ZRhn~$L!=T3o#LsnI5&0 zwfeSq#o*w;pRiZkRs$t8+b8}-+l#!NgCPW+l}+mo+SuwC#NBQq?gzFnMsabJv+-~9 z)$C<6KgrNoH9#A4o;k5QjIR%NUXBb|+O+T9y<1I;+0}0EU~S~frS+GoUuExl`B?`rjAT!RIibO+fUC-p_w4R)J^z2|a2-)m;&`!!Wi73r>SPTLF)>#g=- zy|bp@wmSP=x3}%lXm0B(+G%~oR?mhD4`>%%qm~^TQ}1OUfPw0j{_j)oldyCfC>gR_AU`5tw6?=mM5-74aVh&J4J=<}F!1k%v{eq*Z-kN|1>~WDI2y4JC z`f{;$MXS^HY6$id=;QFP)$ixI{>5>2yKnq{^jlmK=F!$CeJ;b`plMHNKjH|Dd=L0Z zbnvd(&5EYcQHkd;;R8qqaHuE-9BQBESq}J4J=-7j2Tn_Yr#W824Q3wkqH_4!+>>~b z<4upW?yu*Pb+dZo3$Qf+Pcx}_9q&oUc6!Gmhk~mh;9V5adgseGSfYPSFHk*+TcD>nvvUHv)+NF zoaBAmN)}PnTY)h(VAgi+gidi4ZbHD+yy6mqnBwK`LXeg12)hhUI+0GaTSNTYzy6=eZvET8{*P+ImRSP(h-|YX;G5ke2UYd8cg+^O zO?(g5*zXN&G|qA#u9RQW^7*`ebkr8d)RC6^E)K?yOn$TG)zp@@S#0Bkfw;H~)$6`x zEY2~54YwQG^9I0acW_j!z$tu>-?fmsUx34El*9TPUG|7pWQP(}h#Sz7`gzrZbWIcH|Pm0g0Xcw66LR6KmF{ zYj(NByqF+st{>-|jqYTiW5`@H5kZ96zutPd`J4}6+TAQ)J;0~HHR+)4Nzp8_<<=@9 zA3Ce|fVP7o7FKYHqYC;0BF!8C?fP!s7VUIl26~D+Vl-n&xF5J?5b4RzeBAE7aGqk% zcDkL*A8&fd0qeTj76NxyZd zKAa__9WL?CS@UykCGw_Y+eJHrBcM2GIOUw-BE_nIVHMI{%R6g$PoN~jDlQ)k5U^{A zD2x*n?Sm6jmOgHxl(waq{*qbz?8%y+dL{R3|q7gTkU!;V+C9_ zwDh;F?w|;=Imm8}V)xzAz@S1H3$Ytke~TKX?J$x!YIpl?HHcG(FTY z`)yckZnl7Ky4^V6F<0);UEk;+CHj%ykJU_!`SazEO#@ z>R?(#bxR_VoetuSM|9coq@mE+Dfv+bb()XsrJEgOFB5Lqjs2t!^_ZuPCv%V)-)<5qhKE8>1#Y2SBBq2 zjp1OqKU zQ|gE4yKCC`-F)9R7}_d%-c%=hGm1W=FL5C|(;lXZi4p0o#dt!Y^97g|JP2taox~)u;e_ zw$u8TfyAyf66EXs43n(=lG(a;4(4;XjFcM%s^a52Iv-idcG1S%6d(cKlQu$pa2 zp1vfYY2Y0ekLfqm%-R{*V04d~yX zUqD(j*22}2RNCRzh=lZl-L3+L#>t2?;H))ScE#F8loh%k!9MKQ?OuU$fbX!&;)lU_CsNiLVO`|;AL~r zD>UkI{P6xICqY8E(CEi;uHxiyw~JBAD`1NpLdW0&{rkR<484pCDzQ3_=q9S1*NoV3 z5!mn=McmmeVb~13G^jg;u8X6w0 zlM=)7n`yIxfRH-2Iw4I`_SrvM7w5?mWnZFs>{m!w*y{59Bv`wJgc4*c!3Ooj(=c1k zUSMU&EvOj9n?>?{*WvteO;s1xR#{$~)$G3b zJ@bz6)gD4+g&_`QzJV|?%|g3ir*;BTbQ}~?ySaf}(fPT3mtn(+`tS+XuoN)d0Z~=Z zAi(VM+i-=<1!nyD2)~HHbFG0xFwkf>m!c7sCk~VS)bk~Hkf3%0QJD0FfNw8+tk5&cmzz?`Ma^mbcl7XS)qxo#7W+<@cA=Xj2F2c#PW^ihL|MwAvE-4eqqbYC~Te=TK*_w%i z4H1BALUExNe!uztjdeVjiFu zzTu395aK|HY?$86`S7>BTzZ=(BH|b!35@@()c7~&6kpT1ixYCAp$B1P&JoNu6-EP> zl?^T(FU~**E{_2%$LM96#E7||6UoJb@x>VP+=B{7#*auFD|0I= z<+ct5Mff!V=k5*hQ8zP zVJGCMFsEv;?Vydr0q_f;hql5m*@$1s?zrna$pj3O5xu{WknnBv+ZE2?>AhErqEJ191IIZIlBndvMMc5;)f`1Wl@iW~4Ziop8zsx3H!g#Wn zTc*|ec5`|bYp%(lA4oj}Rbhj)5AH*8nIwaG2q7~+!|e?FtcwQ0*Xx60#VGX5A}Lyg zYog=K!CE)guU(5;vvWqt2_|DaF5164JHOt1{%G^g<9n}t3cwng1W>SBUN93)L3`!e ziUlID?G@G#nWmn@GXYga!2Q~L-9x;8zB*JX!Ztl&&hSxEd)ioV;7E%w=;t!LWd=+PACIJB96hQ zr1Ic^G4nu*lO-1g5_MMvgE)faV~VDn9)b^RKgbs?th;|Z+vluICG2NOZ4zWBj2$+C&yK-P@-|xOcWyaFx+k8j65VzAg3wt7} z25@s zu467t6@b_XSQ8J72|zR+9)j<(ZB7^&dOLfraHcz)Ww!kM4$*^mP#Zo+RR-3+^Ev;% z4`*n!?B;I1$$Qsa+3psIp5e-h=R+?34VE=sj)7 z^7bcu_%N5h_CdGzWs4^t>U%FBC^q#DqW?{kU_}BQH5UcgWS@3(fdp@C3d>JE<#YLX zZ8ha8ELul#lO4r5#yHALD+WPa9{QhsgzKnRZwaH{d9}SIjf7YzO%W~P#!Sp12F37P z6x?zsaO+Wf(bdHWQrCneiSbqi#C6c&J)|J+b z3M99h?pLrUpg#j2G>Xp*KY^JclGd!z(Cr;od2P;BntEb4Oru<%a};Bxnq*k9#`b&yUoRr~FNpbgM z9bCcg>zG<&8uk^Lnv$78|6PXv9zk?SX?=EZMbn5+Fn2*=@;tKvL1f^0)ByN2tD!3$ z(3}Gr1BO`7uG|fZpkPx|x$NWUTjr%^u}LQIc3#D=rKD&8xC};^0gJXRoQxKYGG}-r zQ|@FkEmyoDqSwbgxGa7Mg}nDPpdGlPZ7%ADsBKumH0UG>7UTS1Kzb z)o`ezF7myO6Bg<*QegUF9r7!Q9yCgYgJ^xC37yY|y{ud|_;UEgm3YnNTE;Ko!E%0; z8w3+-?>z#_MgV<6Xts`!ai$448I~-=6^tqG)|tqTVZv%s0dm4IeecR5#8hWmvLE z4`=VA7cV}$r%yN5H_l}!5+V`R;``>%LgUus(GYRv+xMQ$VOt8^lhClJ%yppnT{dc~ z!U=3w`2bdB-WV4At(cayA z_a8ld^zzZOr!Ta1_A8ru$)@d+#E2c&;;?GPMpcTH zYC#qn7u|5iwm4w!ob)fb#R%X4Q|@H1o;Ml zJ7|PZEgFF!@HOshpjnrKZmP$PeDUbX_Tzg&0=b&!f%yPfpidTz3Io+Nga~&IuvH`* zGVBgmvBP8tG?3zBg^L4(b7&-=z#052CTrIGfQjGWzA(?nn|JO#Hn%5Jl}=RNCnANo zo)uAUT$?f0>zXGoh&^l8rSM4yU5wJjSZqVMd`42@!ng|1hEHiq07SL{CWv%5kR9%H zaU3|{HxltCG@?Oj;fP`&(hbw_5OS6v|Hs=8H;L@EJ6CCZVkJ=1K0yu$NthL)m%~Cz zIH4mad5gy+ro(742{rQqi~ALGDQU`q{E$1qbQ|dPCyYE`O>J19XK6%hP9l<*%c7ge ziWKtVsUW;$``L>}PhU!y5MCAx($}By(Z`Zud_g})xrP;s5;s|jKlv1TTMH)GsUvB1 z;1D6=1Ert}=8#I|SzsezvMZu{o#Tjutbj9-Q{XN~ZBzFMcP=blI~m||_GZ6MG+OYJ zl$eD=`oY3szk7h6u($S!VHU2Z8YG}ms#E1qIh?2o5~;@31g(STBrAdW7?rq&!uiOR zr*U-hrajrBk(eImGP1(xj9zi|46(X0fv) z2Bu&)nV{xo)G5PLlCf>=m>9#6ftAct6jT<1are0$F`Dp_M&k)3Gc|k2LOX5|D9hCV25yQ_wSDiJ za%j35V?j>rCex^f(| zC_>$4L z`?yY}wL6ezmy6%?3DQ~1<)^4{^B_mPTy2Y{5Ozk~7#`PS!P;eka%LB3MxsMwDKg6g zAnVp>$0QRM#`m5LQzA}9=$SEZf3G;H`R$3JvQkkcY@FQw6{aCSBlZzHp?xap!^2sV z??PstmZ4=ZVcb)}Nh?|m;C>8~vvr{Rup&hy=(<5$8GGuv^4>iabu=08R z#PWil6=WXs{PSl4XLJofLKyOrYpT?DlTbAs+77USTbaXF&^!*qjT@GYr@87*61<1E zLjMW|{kisFbq|U)_jGLBvLPK(+Y+-F_OwKXAYNvE4@Z~6KXrq2*O(2SB#%I|Km?Iv zfc$xm5@fE8po8cQK{!ZEAx#~~^4vBp#;?_wnfMrD1mq}ja31n76tB5t_9 zW%#U#AD2w_a$^Q|#Vp^2cWMIh1jTmX!7_y{2iIT=jCDAj11D$cUzY1?tBtvf#M2@8 z!RkC58Z872gzz*Ij%aN9fSd=%Ia02Ys9BaNkM?JIJTO#?ZZPd+7l)~~rVML_bBf!- zhLHr7BT*KQp_GP1ny)yb0Hr3Yg`0U)y}9J`2B?Zk&`OYVN}?zsg{Z2;*rTwY(&co_ zb&306=qN-;R-FxJ62V|j@D>Hs)Ftc`cIN^4IusAg)XbPBwFtO&Xln5rU~%#)U<{i; z@H~0qlfxEhfM&fXHw-YAO9$D$ss)G*!JZK^t*B0kX%?66e(6TnAg&#Y-ra#`B%+I< zhYBMTZ92T2QS*>U4%L?`rv@o+lBZzD%MmSJ+a?wn%kycQsKo%-C?}$Zcl#!tq*NSs z4j!uWtrS1*SCo)LA3D6_E5f`ohp@6+M#eN*m6iEYa7~V}Vj?W7ksIrbX}e6@l0evt zQVsDOT~^J99+{qoUT5`7t_kDl(b2|Lo6z4iES^|=DS+B$41hM*&lRlTVbvh}N0z%x4o2A7GlI9TLgF8@xXp%0m16* z$_PI_Cy>cRz@rc>5F_XfHBVJE@pRoln@U86PRv3)=--XD3Yv!9L@QtTc%&Oz|-m?~QF}@Qe#A zUuy`SGPs3k2}B@;F+%QdGMdRri?j(N8OBKzcPI-AdX`wBHQ-y(Kw z7Zz4xamNTir9R^mv1pNs6Ur@OQWbNy2$@&L<|70pYf|rzXROd#cU*V zuoIO{Az>DRhAjHn+zlqPLQwt~R}32&k|P=04Yq{aaI}yx$Ea|B3Al2Nmc(z{O9&H? z!No`1FdOY#1EMobxAIh(?i7j11&C`mqJ<&VS_72Or1?VaSRBi@)Wi@`D18oDVZ~`9 z8;i9bG)Nh@!CC0L$WrBFyOv;(Vg#)?L(u*zOTe*Zp)lu>UdoWm*du3BYxQgEyN$h% zc60b>zI%1=#;t368|yc(UcGf||LV=%-Q8;+U0q+#%}a0GJ18+BR8vQ4$+1vP*rWhD z$Hi7ayaI5vWLtuRs62%uTX`A+pXE}PE*U>E#ZRmusPEUjY=Op*+xaXj^!|_)s*I}3 z8#m6(tJ+VkP~}x&2vxORzEUgnbKyw1A)a>I``Pm6cQGGBluR}hBBO;*71=V$Hq`)= z&C@aQHe*dw203NLPGYCX+LzoNgpj9-K;JrGW649Tn@_n4$Juf;JT%u}dtBnGRk9k5 z+-y=lG&oFO{E4FJ=DP=_?@MyS^o}xxJeg`>3IdLM3VQ$?l3bl=oT2T9>Dhv9Y;@0^ zEi(a5vb(qiH1U_fs^^E;4ap97kci!AfUqyH4NJdM5sy;8U{C$Fk^!VhXkoaf&^bHC zH6#9~QH=Mv?Di-lK*QAuiQ>Qa__%)1#}w>rs2iGs)M(r(I?muJGe+K05^#tr4k^#-@W|>6C%Y)=9KH{c@ih^PrV@O$=GqM68*o4=5qMP#5+Fcl zBn6~BpmVq)8MfSQ7L6jx)B#+;K5bmTZXp*Yr!H=zo;}%q_Sw_B@@tkmBx)CJh2)x1 zn(>>a-O>_yP#efNkMF%Qdf7_k`MGwJ}rk}Cn;GFRaB46RiL4>9jQ~dJ)YVyqTUI~b&c2Z1HD!X9jO*D zYoP$zJ0zkGiui_xq?T`nedu=-ikwE8rKW~SvSRJlM^!-WT`nTkVL3d24$K*DC&1mCMc#0Z~&$Cp`WLvI_i*wR2_Si|TA zY3QBIG#b#P5o(vM)Soz%hJlhi4aIT*1d=!mDgBV|gi5ML$qFBhix;YG+)!f(H;fs( zz6>gDaG=aXRK62Aq`xs-)^oYm_+vPwTim>Q6x7De?MFH$gny`oL6#B8H&R3G(BsC&TPDm*lhD0)Q`q)j zul7}wj-nPZL2Fa&dPr#vqBu@4tRzlF0|Z}CoPqHNvPiF%q*VHXmIz)DStKF|@CukFXRa&bYV?EEPJ# z7-B|N5eF*X&v(^42DLsK2PM5)lw-JZ7H1hOS}V^y&1%gGfTB%MC;5(&>rBvdw{7qWOU9buH46TA{(jjN z7D{?@?&c~tZSdt}xEt=XkH{8xGxB6hRUJjuQ&hM0;e%Or$3{rfIPnNr_+&_cls0@i zv-8~DNw0GNaIU#3A~N~>Ze;()bV~D&4T#VTHz=me1$z$Ck_2^CPNR6pW(mrn_-z@R zX6p?WO8|N6oM}cSaD{}$kC4(-W zo1v+>@{c%O5sK-ud{)lcJ`8~wWi(wZ4I!2WlBt<2+)0`~Iw-(!P&1-cEMyiL z2$g6mLG+o6Mb};jF#K55S8T*4cT$-OV&{4scN($4UJ>2Cpyyq^jPG^-0S9NYCjiUi zB1|4cZ11CK^Vkjow#Nfw^4P>;&2TN>4f5gYU)+-W&I88H=Hbw6ripiHrnC8a<6Wi; zVbOt|0TWJuAh#X@8U4o7_qKj>X_5d%mygOSdfhmwQi&5?9IHB|8M$;lPmr8ul^eGz z@S2yuLmolBUg=y?8XYTKCFde`8|Qk>h~JNwA)RteyHaxFc~hE!DsjaMT$+-CDoyc> zGYPlG>)n}hA}r2=LSp_6h9FAnnYs#AMhqAX?A>*i5IW)NozyF5c?xRPHNUu$-cb*6 z^{NWVL#J<1FB3JH1C9*Lfz>k?1Q&B#&0MKwN4UDC?uKUW+)WBIiL+Vk#$|0QRgaCX zIr8HvYRSwTM^Dij&V`^x?-Dc7-!V2*MRTn2&9u+lIGbT0b z9Ru?EaEYGaDuw2yosUy-ADK(-(xd7%Px#R8uSb}a#iZmIgV;5Q@#(P0>Z(gXy4wt- zTOMn#$CCH=ENm%klL78WJ&b{nC5y#Kyqy^vQ8*?+;yR^Ro{cvuZq0E|4vd?J-CD;D zMPDfj2-&ol1n2>g8U5^ws)Q4tZprmueWZ27kjp4{Bo49i1&d-Fh6~CCu|o~vDn8Tj zqy{nDDsQZnUtbM1`jRt%2Ei{ZmEYhqNNac|%r95DGR5`S+d}-iM;Viy<~72q&33e} z#N;&*c1pt#H=`o(S_|tE6<4of9IJt4ms0hIc$bbrkB_|3;!nbBjV?&v7Nel{cpk%H z9n`m|T^k`*2(y>N#6lw(%>jcmW=89)4ZP?mBSh}&e$H|8buUg?(zmW{Y+V1Sx-VSL zQe*NWf!ZO*xQ1~g|C$g1)Q=L<_vncdY@5Ub(1L8G`|W|_c)m>{Tx^U! zk==WxnP7T-y3J-sM-@?!UMTISWlmNY9}Ovt)3~Nvslxd6x~6AU7$@k4W8K*!G159T z3zN>qdY$!abS2sS95<|yx}76%#8<00mKUwmsd{w1Qm=x8Sl`G9K*63~GP}BwM$~p0 z@vaRH&0Prr`}Gvn$ZZnDoY7<%1R_&5KA};>Y9VMhy}~839Q^PL5@cJH*~G3l-W=ItY;DrgNMrqN>@k)y$%YiL##L~LP!EdZ~E>O?z3tZZkm;=_%$ zgc~7tXw;GC4nqS5M%ZMZd;QfX)_wY!VsbR!V4Iq&YbTi1nkHH*m3_ZtgJzKuG35PP z46v!^jhi=bZsheV*BjSvHE!Ixvc8|^SN5-8zmb2G@9pjrf^+SbWj&fUS&0rpYw-5M z&*6JJ!KG%DXOfWZm$FQLg#2pp*SW(1ma|&2A<%EXKl-V5{fPvPpCMfNi z37h7ghS;G8=S=4SgUAs?*ICOgHcAb!UJ2a83N#XXCq!8Ay=KCvzVlunMaLUjCnaI} zUR^^v>adOA5jAi)K*v4xf3VUArE|+5Q%!?WMVqSm8)S!OQi%^8nZ8g;9)G|n%2=_a zq7)`ChbT2kb<#D+QJW;ywti=6#Zris9ia*(FgOL?8Lpz>SklUdShhTG8UpbEF)~e) zP=WQ^&kfv#dlVS90}A@C-L%B-uMr&PL1mL4FV=<-|3LB5hMO(L^A^^xZIoIDe8~BE zeQyn-4bZ`RP3GY=UUpv#?7neGSHMC1X+30yk1a=22pN~#|=r2 zFlm#^A+DLzdhl@KteAaJ(%j_vx+Q_8AAyADUWO6dC4{<(tRWKBoDZp(TV9@@S%;gh z=U;YrTlE4ug8t0e=d25f5NRC_BzfQjL5mQNpDvTfIvOP;{TPQA>~xrOyk-R%Im9oE zxWcsshYKjEdvb%EgbewZ;v5__aXypmP}bn+q&o&hYJLRUF>+5liIAUv``7;iw*|E^ zw8GS|)2zcg4M&>IWw_z>2BZEY_Hm&4mbylQH$8dA)?gFEZPGRLN87;`u3CvqT_w%K zAQs~h#5eY6tYp$g?A80hC7Y6#ue9hA3!%^;b%*ezw%NUMtJj(bq&fm)=@d?>CGZK2 zqTj*MVym4*Q#tD_g1Gi0*gQJAo9`RBSRfR6sT%o7ne2V;l}!~%0&P99MPtAQAZaNy z3XApah06=WE%_Bf&V0;r$*~%Ttu2UDBY5b8JVnNteNk5XUe-FaY4KxPNO9YVPb#7n z0DqP=lwzd$dP*6^TxLwS*kVY(NJlXY)y`|O{EwXswH9XEwIuyXZ+kIQ13cav=wlX@ zKlH#mi%vKXi3|RZ;52(nM;&em=_X{s*;RJ!Bc6t}@GwIz#Y-4ObRBgCfpz+qNI~&8 z9Ix)8z^XtRCJpsIpCJs>hr`Hs!&nCXCOiXWHFovYDTK-i=QD^glE%#)eVW^Fd^cgJ)mi;tMG)A(a(91ME?HsgfA1L3+yU6<4_-)Vb{3-MgA!8p2w z1ZyY_h^r(s_e8o_sjL*_Gd>l`m+%tTHn~rZ7UNX{$wBMS!Texs} zT7|P6kPe0L@~(Oc+NLN?bm~6ggcYD?&DbQ|Tpj&bAz^3QaDvTPlJ9)cJ*06~?ZHR% z4FQt2`WbqIGxw@zrv^Z+=Xy|feVWGLi*^MESxTZU1U~a_54f1MB{;`+5&ghDz1NLy zOYz0p5NPU!xeOuFCZE*|+;EE0mJ?{r{WO~k9zU)VIGR@l#~6Sh6vjHMgH&0_nb%Ch zZ9dutJYkV*v-SWF@qWNZQuY+V3P*t;U~dZcuPA!cf|i5MT?Q0bXsi4VG8(nOzKXQe zYmpZRsBtF4AhiB2>whpe*b^B*Gxq(KZW<;%d(-bQ@p(IbM~WH0mou0;^BXyyz*e&| zjx%@p-cis=-BA7KlsjW99bWDYrv!{3LVH=HPjtqV_eM4_)Hw$+2woNd^$g8u>+{#<2@6zHI z=;M6>O}qt6+AU6*;RxC?AI_3VX_Zv3E!wzSe0QO)-Ie&Cvt>8uyjZ_(v<}hSyv@2T zl;0&+dQRseSc_p-H6!m}w<(CyfXQCBetv`QMZ0sOM9klsy9yZb+%OEJ>HBhfIXZGH!fBCq+_AVQuFyGqahonjumn_V5FddWGdAKj6=9Js+{R$N8>ZA# z`9BPGnYIOY>bH=lpuTyQZ~~o zTSXy2U{kc+Hkc3qR6Zq?a%-z$h1hELoB11Vi!*x~-|XGC?bWUm&(vyru|C^pG}#_! ztWWN+Jz}hnZ?9b%>vQ+kR%30fb-O`kw-Tx`Ygg?MR4duB!!59u+KczomT?!m08QIW z8?e6Ot4wG1PTH7uSbB=f)HSk{teM(qD?kI#QT~eH-jER> zjZRm~j>TBw8SSZ|baA1f1RQB^!%)JhGPzbw^E?GUy=$ScNbE`t&3FW(mt%-CMkG$# zlA1_y%Ccap%-4@PxYcSgeRWRG5js)3a*0G$9Tb5l(dJ|O6{C4>8|p=RP***sSLSR$ zU8;l?lqh3ln(ota|K@K!jT9B;bZ+12alp%YO{YiTmoqv}8`q5u%1S_H+IG`Jg>+}` zHN9Y?>DjwXj~3L%WgbG?)Be&6HH@3gTo}j8 z;GAmvJW9ES+>dMcyjTz1l^S?5ffRGKdS0~8^TJJ@t>kzaafq8i41M+v&!NbI12iVg za1YPc-dTAAHXFN3p{D87y`9U1FQh*OYOfj!9#u ziqM(pnC{KdGLjSv0Scf5qwItl89@*;_MA zm)#FhTE)GlZ^9e|kGP3Fs<0^A%1Oz_LTq)m)`8izG3S?pH)m|W90+{w-pkwspY=SA zmy_EyU)N<8ylBhih(g>CpzR%;^-`EI!m37U$fmJP7z%vaO%S(lh z%Ic>w>Kv#_2}Li1byf>b2k8g8LCnM3DVv9T?q14Xka5f$rfa0^5TYf$UBiu*!W=XFjldj{jxu{c(kFsxX{gr)IX zaEH~yj+S!_+cE8^UaN2!lfJh7YONqrn6hWG;)zsxX8wlB9)hRcXLd7pOJ2NHa#DcF zf?<>ZDjihm)D%dDsK z+Z|&|F4pTf9^?Xzj!P(K<}SyvPVi`pu^jo)rc{)~}VD*EB%_ z%(bq*6Jxe*kygeN`WP=3pn-&|`Q(RODV7uyZ}Zt5j7u=iv_q>=<(PEUmM?&sln7Av zkBmgoP1(Mf6?AcJ*~fCL5NM{lQ?9WBm#u5@!YzwEZw}fTXT_b@ta!wVJEK$aS7*h2K5dWU2^FBHv+ZhUv>kao z*sEs`s9%gPXZi61nk0`k?M|71r|&aT5TPGTKJvOCTo_5xfG}PlKDAp~H6;!S9_Mr< zUbr2xB9cu0mj&UI8HU-7=|w!sxBzW}jcF^iQE?p)cOibcPz&OqNO1M%?mui?#tlIa zL;+5nw)wDXlo}>Jf9GL<@Wt8=V?>oez07KH6c5i2WqxGSP3Sp%0S$+F_gB+x_}7cK z8fI<__8Go_Cc`R4aN!+>FKBZX>n)5J(+*G7SeP$yl_8ZRTizZ7IgV` zs9YGmI_ESK9_5=AIw*8sCAg6Ur`iZF+(USK(FVdJ9ea}s?$dP-PA4#H>tNhF-o|*2 zzQO5xtKdSo<@8O1hXwXr9fPCQWU6mEB~v@SG~k)-f|VUcDGIAc9r*syOud5R4Adxi zlm->}p|Yphj4gsk$HBIV#=fPjYtU>*YR#0*fvslMP-o!NRjg)-Gq($sv;_{`u~2tZ z!`wodfPzoIqb!>~t|u_$Fn2@Xkp&9GGJA(HhpOnKCPvfqR5##-TLCN1Y|1{s;pWZc zHmElJR3C`62{22J$6;ar?jZD31(0R#s;oV!HDfyfgWxUH{#Pcx+ni=iN|Ex#PTl*L z1;k0{>A4#Jj@}@o!B9bEdf=XJ`D+aWrZQ?}qs5HRq~EV#2@yeGzD~nW%#|Oxxp^DK6OH7r%{M9JW{wlbyM{FQy!zkWBg%Keg66 z-0X8(`%bYPvo!S$jecighymG%9eppLov%k~&)ds)p+>%CN8D%$;W_pCa#MBjEx$c~ z3*UHeIQ-`e^zV)J2*s0TZ{9nEAc%gZ=-fMo5@R<3Ow3t(_6Ck%Ww#ZiA$B-z!``{N z^^QZf&TG{>f^419r&p|zWuWI1A*R&J#@Hsk<0f%lhu)D%oY9{5tAp1ThsP%1Zl}8P zj#3%$anuh9pd2Rw#VATe+u^ho5jXLsVgm^Qoyj?dqNcj^Ybqq~as9s|T; zn>W+DM-s%7Vz3hYUI`YQy|!4bT#Jj1j+f|0QR9NMo9>P-Lf*ovy$tHF30XY6Q?}b( zPJ8W|5S>LVMwK--+FiWMF54>yMW2q$ihQu!99ry-S$go4xxM5CK^)uj=DO7PQO$>$ z?m$>l)mazgENVb=wbhN2aK{b0pSb)`;RGp!X3t8|dRP5UaT0_A)r_YGF-1HgW`ZO95czp;IEt%|@xO?26- z#X9J^|3R?T?Co|7Bq47(*`h*+NQRr=xoV?=d?*8@ zhlCE15l3yd94C4P6hhDQ9kYTUNzBLC*0Lt;^!(>y66!{JFmTM;u%?;y|-;N=F7&mle9%8 zFJ;3mZFe-yx%=7DDD2>X5J0FU32if!PuC%2u2nIVwM2zGPuEWOFX?3KDjC;mjyASs zJ|jx)oIPyY3pKDEJ(vltYcHU0?ZQoK*&lzx#G5Y?3ho7U7EHtt=_&!TiS(t(mIFq7{UrMFkD`LsYy?Fazk2M?^NAr zNAI@+oYYb<=(FlWyLb~?Z-yh4_>2y;qce$4A{ey+Jzp#1u0@98a;1=S%WMLoFngJuI{p-kcPtf?8?p2TGlv5 z)!oz~qLyMF#@No0w#6S6Jg_;YqwK=%WVyGZ@pAq@N4MAnNY*IQFK1~LD`geRguj&~ zh}?!8*Ch5rI>cgVk8cmlZ8*C(?9xXceCq@KulfDo(jE4Hid|xteiUqhvX85`k^SkI zUo7!IwU)iqTx$M9^V`jzKW(l&9qiVdm-Xq|Zl40xBRZaif zt;UAWIL@)jKg%g;4qE%TdHnRn6kToO)=u~3^SAr&L*)15-ni9jmZthL$5O3#c&!gg zl3Cg&00uPs_t$SXZsa#$Cg+}#Et+_jdPg+N^lb`HZ z-;ayvA|7|sJBiqc)daryOYZ7;op91#rsJ@Ux8gR+fl{1mI<6MxMEI`hx2?{8cdc62 z$bSBP?Yws9)wGB8*ks@C_`WezXMjt$v{wAzr)Gzv|5Qu#xLe)6+X{bXtBC9s}3xd>K~ zkAi9GAEw`fiDWK3oD#MxK?*?&@=?!=uVG^vc+K2@0tV!d08KPm~NMV>#Ge6?XxX% z&@u&}Ot4cbOb_}4B8-CJw3=+s==n@{L$02>A%jhG3xg+E!2qFh+|Ltm+rwRAy<%Xa zV0{Z+qw=iU&9UBkwg=q@ZHOFeePe@6fSRExw?LN(BI?tfeQ8Q@x|2 zq6-?)*X)1CE#+TlZfd$=AVr$jDXRFmq>9s<(dP=>+lK z!pW#U*L|9v>=w1bk=R9}`;NkB{l3}>`wdkHnDUQeJU^rGOl$8=-q$Rv-TQq_!8h9f zzR2yqGikeD{R+fFd4W|got>{IpculgjUc#UsN%IpCzRdna7wh~g;(})JW(se{2TU{ zy9Tq9yuYIMw^jFT4FI=A;1SLbca0^i!UM6(%r5S@H+oae>V1hKhC_2aQNvsp*&}E4 zjOlTN;`D9HoM`4X{NzczwQ8&CdlZ~H$(H#dbVlbmb5QfmSmZ=s^OF5?O+dN*-XO0* zu=D~e@=IDWA6gOHK(~FWp0XCe1gcCR3n#y}=A~%d-)QA%7>5)(29o!2zm>OX$RXk6 z?kd`3D8iR9&4;9Jr6{{^czyZK*zK{So(JHDtC_cjj{}!C2dkf-e>hA{DMj=1WTHl) z^6&arBpwdFCQ{^8$=$y)JN^5_%fBZtQc4?N6Wp$sCXyv(l>Ev}Rv&QM`DB~rk!kFI zC))7#>*#_aof z6AAIQm7^vo1;fR8v9|pjJ_lRNttM&zg$<-!K1r@&Qf9Owt2- zHtB#~eZp;rahoZZ>H?c4>Vn(1Oxq{}%nUwI%>s&JWc6A^7Cbxi{O)Qg|G9NTc5tm~ zMrI)hlo)yX*^@i>p3~o&Vx-8akX#|!sUPR`c`{>^Addsf*i};%m(QV44B}J;Q9}c7 zzSqgyna3}CcW-2{HE@J@YGLA+Ak;xyjkL=IK?@?(+q-BBdgPe7NTgaOri;Yd1d;gT zF*}CBkyHsg+PzICm{ma`W;Sm?Y&u z!*t67r^O~8^5>6+oP9a|_hed~U1YqN$dP#0x5x9O7lWgtZm(~*PsOfEwglFDVckVt zLsySctPf*zC0oSO?DYjKJO6Q2UNJ1*whpsk=d5W-MuDFNBj?zg$KpoVdqb(33OiKV z`l|nS6^XZ&ch(3(r4sL&@aoG418}D`Z?N2@PtA$>89#2e4w`NL-~T03_}P{9WN&_= zFJFF|ZrJ5&yTp7~YdGxQb!BZKp{*a63DMISpW#L5Z&a_!q}sRh^*G!&Kp5Gg^04X!5-$tl7n=02A8!P=?523+nT^&Zn6sx zHxMsc8t#+P@HH@mausIfZp{2n=bh!>lbPr|VsD1&1e(@zW;PM8-r}*bvhJ4)@yl{o z{D;YVGe#NWkv~v&%ghs{>ek#cW5VwJ5M*!EsmoW-vFG?kqE5{|sVoRGEl%|HE~-*r zvpnO~rwR4d=j_RQDfeE=NnBpMl!NBVKa+Xb>`L-)&Qg-ya4(h9Mm8FVK3^2Nl{1!| zQ+uagtA{8G+O)wD8U(5anqQJ7kKSSu*j%Sr=0yFY*`WFHJv2fqX((OfUAOnfnj$8^ zKk7rNOId*yOIv+QKTmYskF$plY8Adutr5lumbnJAK`Disz38KNWn0}gY7d2j$=&Uv zRidXH}0vZP^8?-kAR=T7XK#C zL7hxxEb1rr8A^|LzX4&eLh0_T(7b|wiv9=IAilz!X2HoXjWF>s0`UID95|GlNTdHS zlFjh;N=e!NL!|GGkqOSDy^OppvzN`GoqWX9BGcE#DPqBA`|pjKCmhx(YWk2be!op1 zP_N!DpE>1+`Qh;8;EM^Rgh(*mn{ovIA(F_$xk!YA{Nlczy!1tKmM_1eo0(2M&U^pO0dUvjq?jUet2R#5?ndb?>aJz+sQ0FQEv2>8`3s=Q$ z*lW4_QmHx?IpYy9`lhGdXm;uvNv+7it{ymn5A#i4jsO9?2ag?KdukCK#ZX!IO6^Xl zQHiD9VzvSq__5x}yMv*d{fjsN2PA-% z6@uK%x4LvyAH1Mr;rYR;-pAMvZXNGRhK|#09ToE#+Rmg>ymXA1=1V)n>-qhh81qPY z`SwLmDZLl`9IpmH&LtCgE`gM1ovqW(IFk3@e9Z83Xa?7LENTY6uu3=hBfJnSvHUan zJZEQi3|g|gGvfQVhT{9L-(Ei}zJKDE%N6j$UpKl1>81@tSp|G5JG3GjbHu)qGR0Dol!C>x-*^&9PWrNdp+ zkn?Qoq|jAeshEDI*~Z+D(^3BXc2m|F)~`hv&~>wSfQ4#t$&SsMeJF6&69KeE7>I`y zb3tGb6d0^d8K67ZluB}{?RM+E##kwMMh4cJ!Uv1B4U0gN=@>E(`gKE?$s-`x5ZNLd zw}f?7oa^ui`86tVKE1$orDwy>lc|1;wEE=YHbqBS5nfDm^Ua=mio+Lk5(P0_A}!*p zGCNmILq_07(W#gyIa3@jPmX2zS8H>fIm4BICLhdVJaz27p=3>ki9!4%nWH#Sw#I=p z&vr0%Y&fk!t2EC`jo2R4G}Y+^uky;s))`qCNUP`09*`0LT1=Y=Sro+5)Vxo-CFZOnB2>x0x9BqmcCI&@Cqj7;HeVg?S0>EeaT-3;_$=hF|Wt_TZf> zaChtm!s$c_1U#KsdMG38=1PFH$RTS?ZV^olGcOw6B+v3mzXbmUjKxxs$biGgSMj!& z%|WlwkjwGI`j>t46LmG4tE3*eAw64dD$pdv}kd9%ZyXU^CBv3T&fkVFDZi;CL@YHBoX1Q+pmPq zb>9h2UJ<~IU7|QXN@JarIb>)iHW~9P`)(<9MBfIow&nQBAbb+=(J9I_w6M2M=QZAV9PiBFjzOZO0%NE|HJ^5;7y~s5q6^q(v9&d^JgmFO08`itrk^fk(-=ZQd z?$P`=HFE%&Gv3X4b~4VWx>B>?;D0qjsbf@@|F%=E@Zzb9+mk3UOH;lny>kh_{a;5G zGaa{OfJC`DcM5^FHSw9T?`s=87S$bXz3khV%=O~^Jrke#L%3(0V)-Wu`_Y?pp*rTP z&F_8i0VWKfBjTG-8u%8xz}>UKOl>EuEXb!2eis7`7~cQ4bd1^8T`GP-4}2N zH;Or5dq9IUWh2>}pk|V@U_OOnyKBV>8AZpz!ECA`{2bo7M+grJ$7Sr|#8dbQLE(z? zrhb6?7kBd-H6)ZthSso}u@*BkkGg=Ds<_a!iCKP8?2qa0QP?v45nK}W+7y{83zm7J zsA~2$09GrKPiaqqmGcWVO5tsH5{LDUeK|x&A(1>-VytJ==iS zhh`u40{Pxs$wcy3oQHJutTE^*jzIaq{CB11k1I*|2=8cUX_MpKCSX6BwrKqVoO`=1 zuwVk|aap@ZALt%X80pubu(%B>mKjvLl>2yT1L%IfTz3W z$44rMdFg$sTuX!ja@2qT3yN3tfGDhk;<(qv0ZVZeAaYB@)C~0cp&ldTbo2Yak4f7l z?P1A45(EYiA3$3Y3rfKKk55uPFBRpMD_>mcDd#%IL+D`c_cqmGJ+EQ8c8HO zM4fWNX(9q{uKbi99^Sowz4qDN`xOZ^8~fKU4;uTc+6!i3ak8zh@;#)D6#X^B=*x4r z%|LVDH#%8QDz73VTpj4Q6xF6%$qwnA90h-8db2QfOA{}K&s~jV+&uKuj~J+-^OdGz zq#iQ-%1k%uKMIkvT@3G*x}^#(Tm>Om?!;$hCuVSd4DdxnL+nA|%30O3$u%2QLxoP# z!DH%(C=Lc;dZOz=o&p%7DN=nXeV*qk?W;!iglL?5b7WZbt0Dt;2ej=KAB1N7 zl29^$pKR;J4EznUc}U(T_K*W{69=8?(7TV?3b{Ig3+Ov~((bGhK!#pz(UD@SZ^X2u zxAIkITrgEHanI#vF)@fj86B>Q>L-1ya0}idR+Q96@Ud!#gmS_KHLQKVRq(Hk_4S`g z--h&U?S4N^-wT5&gR<4H`R1~ZSXLUa3zre7z^~hEiq`Js1co%kR}XM}y_YB#B2h|R zz<-Du!Od?ETY+PA>wmg%VZ;;?h5E0?%DM^j{VyZ)okx8heW7zaO-jo0^)VRX`7)LV zqt2`?O?2iUI^RoPll{8qe^8Ql0v%3qZ*J|(E3`$56>9#2ILw5pe0Bj>!rmb%uUG39 z{6oA2=c^ffdmQOo=uWdG*S~B6%ZPoid|*7jS3X>Y_+}~}=_Q*aBrn!%=8dR1%HmA} ze7tnV?TqlzE`TK(QhjjTYPT?~fEf?yly-iZj7l>t&B2ZJYu5ERNF^bJaAdR2VleK` z&aXG0Kia(W_}*)OIpNfLJ*nIlbwe*xdp}^SV9^yBXfYPV*rJw z^!6-4(uy9k9@?ea%250O(2rbZ4iW zv(>CJi#@g-4vFGgF^@J>I8s2bp~Y9$H*U%x;N993d%uuZiiOemQw!%k9F;R>hcEwp z*QTH&q*ggiK%=QGU=tkD`JQ8aXBc~Dq!p2 z8fO(xAZ?`E12+^5CGawofhy~1C(#$_RhBS_ux04}BdxL5Z45$>Qap-G2LHY0)WLBT z@-bHRnZ%43vOr3!VAue+Js^qlFc&a#0B1R*21pM%XIKhVISNo)tWV(&{HF&3=?*hV z5--vM|YT96WAP7k9PMu03$?(WM8~@m04%dH#CYHE}l_o*3 zb#WI;kO?&et}K9|LDv+?3T{`*NI`6XDfNu9rNB`_0KK+}$~0;sxDpLe;Z3Oo9Ti}I zd)5i3RL9Se@J?TuG4kxp+8P%}9?T`V>SqvQ4PCncH5SK`9CG1fGwY{Ct9?zacW*5{L^yyks+`s(nwat}=4 zv8hRLgu`NOW8H)K-KAOS<5JlT`b8m*fn3p}_O1?3gmq>+$}pf+o`>;J1rHvqAc5Wh z7ZOa*b0FbFG08D7Y_%rcM>F9|>f*QG>mF8B0P*&KL*vey)4*A`!uaBUut*RGu~e8M z(xI#upmv4U<5Zu9R>}&0kb}t_}pp`vv*z{Dq8JREkGNk#dP;?Q(I|p zyu!=-_4aG~**+n$v7aBPG*km4qx@y^F_YEUL7+v48=GI*RWe5q#M;}coRxO@?koI< z1Sj!rzEkd>8!_yIWC;hAcLwaW`%?KNcz}?Wn!8F0+ftbxVJLE|9~0C8_WrqU2^vS{ME9obPxG?@;1&xM8k7e7wZMs zZCS&zWVhO=xlQhM75X?$kFS)w_MR8#Ujr{rNpCXUEvA{APSq)!THcMRI@i^TW1UnT zx?zk>*qQc`aSQs3?+p7Zhp!P&{C#Z8(FjR9Oy@FwYRzV1=FXH4&5^#tj7+DBZD6)h zNWe31XV2BeCK`xxAfR$kkDllQtOjcob;CZBFA zq9WT;)#7Y9V~2378sQnm>wnHhA7HClQ6fN;l14k3Z);0i%-9dnjgJkk|#IxlzT>sZFTI)bdQ{g{4s zaHST%&Xg6puiCRLIs}W+R8CJ*i>(^B@+J|ouEY>wlUMF~h`x28Hy4h59IMOnItyas z(DYv3!>CHmvkuc&eHdS;WCt8!vURdUaS-a&@$O8G<{AxC64W*s-HV5`NLA6-Gts`t! zGv%Gu%KM(2J_C_pSvEswL;Tea9AnWM6=L(t_Vmmjh&Q?Xr901FEPm#Ar$~X<_w@em zUcXBtHQNn_uk}w9fY)}yQr?BAD)2uYn^p0I6pmk8+Jpqj#wOMNw^DH^H{}B22 z`Uw9XW34{ENWRP46A}97BOHCgByWyPa#$;xBxD#YNh(NQrMSKun#latfF6(5fVMC= z;P|xmO%*K6E&VeC0cfe!wOXtGRaXL>f;HcyH3!HE2U`@{VPgZIZ<~_wd zvTa;QE}z~;m1{`<#BJQYpl#In3v6RrO(NOG@0x;<&YPd()TiCag>(}ws{+hKFe;Ln z{)y9hcR@R;@fX<1w1#Kg$ya?)u~qT-_ga>mobR>i`)5r=)fc6-&%FOZggYb~KJQ z+(DMY-Fx>RJ$>}@(X*#7FberxXHr?qX34|`D(*pRxz*!?8Z;rtS!Iur8y3g0c#Lf8 z+1-0vn@_eeX?F9ZDuss6rn1)6$F^H?wb z8Vna@FPj=MQx8jfEZQr+NtMO&2Xu?4-s3UH{)=$zbFl#JdZjP^zz_ZA&8g=z&zbvM zGJA_1`7G_%?5Wcy{^}b3DuSlo^E2Su8Tnay*pnH~%tHUkhu@l14(!!0;bvB5gzQ=M z9`iy*JI0S|x30})O!An7+DZ*&kwj+#Jd9(9QW~^xTrmLiWYX5r{LLXkjS0`!~$K7A0K)2yDL^e7+hVYM#eM872?cNMC^8{w46`)LzA>AIJ7OT;8Pc5bcL-<|B$lgDT?`Cd1Emo6U!@UVO|0$QkPvrOFzZzDnz{5Ecx zN!x0zAelt0pqx|*zmC@q@7#+=PqrW53+lZ48xXlby5P1XmJ-e>%(`d!+nob~W`t;F z#J~U}dhQ7Ttg6(j=R2wD98r&a^iKGS!J}(TfpY0+4@~dz=AC zL-(l2RsOJrCkkRVn4Cx0PJXnuczQq{inI=Uq5ax?y!~*KF03mc-O=wLO$vJ1ufHXL zNQxQ<#<_5Horpnn8P|K`rDI4bkCe*LTMsv>TE?4aeiETwI& z$VsQy(L$oSAR_g_38Bj zg6Bw#^{2;3*(<~|zGtxS8SE!BG1#dIe#}+;)neRPm!Q&b!ySZkPd%jt?x4SBcB95- zclz=%<^N#9I2ATiuVc*CzUOi&jL%M@lv)UWhAr`40G}&>Q`(y>UT3!({$`@xz#H$V zX-w04!l6TKKYQ`$=}Qk7k73TQKjWj1g~ag%{T$IbVxx%~NPNkbQ+Y81j@ygBCdel( zFh3nD(ZvrTL{C;H?!>E{!Jm8z8(s@RU8kZtS{+Q0P`MvpdQ~)Dm2Zj_mGtqB#ORXx z#Idu^ag6z2A@`|+m0+a=rL%R9h*>}*q$G~iFqLcEuhU#A)KMy<^vTYZ2Oq0$k05x= zr}l{zDf9pii-u1$OB73V#26?+<0;Gls`X&jBn!a4F*Q}zm4$(*n3rk=Q_>0j(iRF( zNvr}&>d3-Epatfi#V`OkVn1LBVJ0Vga_W5wqCy`9*R{S={1C$-^lr_D+(j8k>RP2( zE2}RiBE*VG2DbGMO)5bf)&EKn`?MTq7+xm>%Hl2jQz^w*Hpz;Thh=D$8z*g^d}p;O z=WLV{XX$YQJ#7Xd9{1%)qjC6@4UQIaDZ<9nd|Z zj2O`?CuaKjM46wX3DXGPwP&!+$Cx_Ur;g>8P<33nW(Ql!%VQtk`fNt1U$jHM|?6FAgsj^JW#@Ad# zY0eG6#N|5Ror^{PTeHc?wh7sVunNBOO(<3!@1RYDllBkwiqM+LVe@W@)s z2el2wH?+b9tZtm@7mU;n2<0^2^WEPs-%W)rKS$l;XCv}azO!O6KmpgQn;f5kDTdH(T zCe3A}HSdtXKy1`-D9?EXVk$eKs%N%wV_n`eY!b}n9hEcy)-==ZTqj&QoYz9wxMhP8 zGP)&WY`Azz49Jp|Xq6E>UnTrg){5*J=Ala0y_ywymH`k71n|&FVjFAtU}wwLCso9g zVytReL7gfYU1R3pkd-)LlVq)=`HVgi`npQ-rH-<-ZFFM zuuhI3FRaCrl1+zEtGF#i)T!e!P)7X#1JctnMxAGurat|YI{7)uh`|Vfj=`F@FPd<8 zeWJbpcnn!inC$OHCOe%n&tOT;g}-i?%rv2S^DejyJRTu`ZD+6+zUTL2!cwN#_Xihr zwY0j*kMd{feVs5lKE8mRwl{%j8E4QWw8gWRU4TLG+~@|sS{Bg%o@u~ereYdwVfkm$ z-Je}Q{HHU86ZRsAe|_I!X3A#)$a)KVL*@2E^Lio`2pOhVkfEMDp$}S}0b#)@n3RCz zR=frr`)#WW3K+7_4P@S>x}+GjVhZSE-#an1&fvbPD4D`zEbY=#E3KHOC)-*{c4{*K z#A;LPNy1%e;Q9@lnrdl7h`z`R*(7;U-Lb8{2+2XHBG*ntS5V@g#RPL8pELTqVfS!uSkgVqr zpaP->J*uwRibCr*A+M|{-R`mm4lV<^UL<9`wvf@A#Ic?LxwKc4bVm*fhWf$6-K}SuaRBc0JQ%^sgn_z0T3Z+;_SpoK3 zh6sHQeduw}ECjUP>d3uq)rS_#fCfdo}`l!fQcZzn+aNH8R_^+~K+d_u5x{G;JilBjlmf)6n`k3e^v?_FC3X zLMjFy#wODM$0bH@&2^}7SR^_o*yf&PYju9g6DI7?t&Xg_? zlw3wE6(`sV)RIyJSQT3ivx!0{Ku7Oc!FyH!OOAT{dsgu8h!vEo2R}sZgCFNoGE*n} zZzt*>{>GPP(kTEk(H=bbQXQaTlD-MI9S`!OIN$mCIF($etYV&%RlHhz6pEKh^HoTv z<-Dcumyu^4FnXxI$!Ucp@0~cR^7C=86B+FJIggdL5(*BQZ?yUy>vR647QSdEI?Tev*2Cl+n)piWik!=lG23=BY2P+A^EnX8rzWhj!BKo7&zK#+Q9I&vbH zE^BnUed-vy<&pRH)!xkN^bj7?#i8vf1joQbYDkB=Y?Y8pCEhBL7~n*dOo0yUg9Glw zD0+pe7>p*Cp+0@@@U(;1r8+48GVRi;c$V=kF=j+cJar^liWwQIeL|Ifv%W%&5%HL~ zgVqo_Ey`IVl?EVmy-`$MBSYx^T)VCvDv2M{&)OFsGjE zJOESjHa|g4M$pIYnJZ2LefVwQ>C@aM+{V?~`&;r&xFso3T_ihxH<=y(3=E8nll<8!n>2#56d3JuqR5?QrW2WrK2q8!Tw_st6g?lr#fRoGW|V~+Y_73mJJ!l z@Hb`tnspg2U(Fa!3~-9M*M@h)@B$QI$ueD_ZZso|XIQ0Tfj$w(?kP`MSi04f#}*}m zOP?Biqktm88=(fhbrQ8qZ9_3mH4#zS++@?zljG-jc;BM8Y8nGNhI9RIU*Uc;lW0Nn zH*!yTV$E?eD zukPKrb!~5B{pQuHw{GoUy}7%)d+npE>+88yOkAx6Xg0JR)#)A9u?(w?3F($`jaBBU zYM|F_=AKQ+BNQ04J{1_6+B%IAKQahg8fEZ?Udzl&SyM&8kr+zI?k=ozVaiG`1wY4o z@zW75HHP7Sld6=jj7)bPrux;^DA$Hoob(Uy{>@J)U;h5CE|X3K_m4(d$b>bilY6Rd z%tKA-yX+QgDiX$fGn*c>b1hyIZIofU`zEonbn_>%odw158G&;5hXUoUTfOcZXV>dK z=aF&i`EO@Z5>J$Ya{FnZ+;!FKzHxrN?z0~niDLR2FC)?XdGmYCl~2WtMuV9C5*x;9 z1I1MFZBG+Fzg+h;kz$`Kxdo~DwAL*>O&hi@bWjM+z_;yGP?LK>N%KFip@MqfXSX{f)q2FVRoUm#TOH)NJWg2BDee z8Z}xzwJt%+F%6t6BXmyPt+x7K6O*r=}Jx5p7|LDoqDHrs7Q%w zhGBNf6YQz{Gr2>8JV(RJUVH`1OizrTBNzU1z_(0n0MPzn!6>8qU#THlTN$sk?*q%&GjQjUs(|BM@jz@1Z$dE!1Nm&LjET*e3IMhcGrmq=P0wt zyn}8-Qx-thYp4!r*==5|pQNgea5v>WTB4sDQ;K!5V*cJ~sxSW@Nre{EqFUw3)ucR( zSVX95WMMqm$BuQe7fN^y4_MV8zlR+ zMDnk_7LAPMaa=EQ>#=)fmb(i4Tcw-Vubw^Ek&vaT(xrJvORkeRZHwa#Oz5$bL5(GzU0s6C6#7NQIyVxak>W+dhG#jxCH<6Qi=mxm~f-0;@ol5H4wTbY84{Bw2f>KPboLL zoKYt<^D8GdDyIK>0@qA=I6p@=&W|G!Y>cpda6v4Wm!)F%G#{UOl5>gK^nIDh4NYif zfO@p9OC@3%?vGunOnpLQ$msuX?^?LqD6(`QPb)dj0~pxhF&bEwWbiY#gOjt%nUE)& z$>RhFSq6?QOKnL;mV_R0yeypg8M}XPe#w5{y;a?%R=3sNlAOd*jv`B~?y6gLA9d^2 zec;*Gd{H931@8Cw_Uf(Ci3uPJizc2C>LFMX%-WkyYk{C2Rcm42zScsdQi$9hVpvP4 zyr3nkz2jpbT;@|P+IZA`r4sjeFwCciTp_}U_vOo%aQH5E@i`vBNTmN4CXcMDv>})j> zdbw3dx|iaO!Cs0e84nl9mI}>9auKdegx)K@({jlpUgVD17S@In2aK=2txBy**cooz zs?+!M)^o4aLlz`2_mD}U>D!vhSg;}$CuQgIsM$e|Eg0FLUzuj%4RE7cthKEzPV5!W znssFM_0Sa(1<*{_X(0yyyhVzDpp8P5V%nI?KZb_@%vStqj@w}FYWplQuzy%z(*XcH zJ1(}-_PVgo&Ba22Owm3Rh%@Yif;)B>3blpD_UjkfW9B@R4n(?YOusQj4h&yCF12on zWAkq}5!^?A8hWnOF#0eM5mVv2-HHXl#f1n)B8Hy6;tLnR1|xzN|AQ&PhD)*ppV5jD z!zd_C2SGk;S9m9q0$qN<=XjQgSnckQm3+~=v$VVy#~CpIpFBDGiF>%uyyZrMmfFg& z;+F733uYtm^c;l20H;h@HDHI=lT}^1j_1PhE==h23WKYq$kXy#e*Vk+^13y1OQ9jn z{@!gO?5W+{4Z^d@5rH0nc1zEJf;si8dwC3Bz948(_5V-V6D=Uzsy>v6|8y)&T(*-wmB^ z&W=?bhU!hxlRj_`wZ3wBWmRjCaT+aXQVon<`;o7HXg1H7-KA)I+3;$tA<>53pLf{WrfVLx_#6`gW_P^{5;!>Vna zUz$7DBoU9Mf}8(R^6V561$nrqI#*UCR2fzeq}ox30<&_mnxzJ%1i>zF^8+lK#nR7Q zu(!O;{N<&~@F^0vB&1~_h**0WJ!f<{<^<5|BFs`ow8=o5lo2D&TKdI-4stvBa ze{T*+#b{4M_S8FJ9z5sppiG8~6nwUL!N(9WN3db_pk@-#ILx`41%HXhnT2VSLqs|- z6vaWMW#u(y9kHy8j{!5|iwNhJfZhO#|B9!l@pAgp=Xwlb7f;LR!WACuJIdGCrxvA1 zCzEktCr;Fy8HinTEbWD*@KsZbaj3$gZC9D)fVzE~(J=fpJ; z*L-N@qN(4ZwHzx*p4SF;X?#Iseho$oz!)Uz6K`IONN{2ts^t`g7yJ~rcm&z$Si7?E zyj)*+zJv7=XHAU?G#?X&9G!V&tTMI<8GDdK49@Krwdp(enO{G|i-3%xHU&hIEvH!L zpeSn7=X70K4V`otiR-5{nX)`f>AsFE?~-{ujgNPk(>}Q|GwEZYxQe~C*KRO?kbdAe zTt-q76T7AMQ`k!xzkwW1NUM%bAGdFkri~eBDarevu}31(TovjmRuV~vi`#>*cr@<*52cO91vsDb1V!Rid}2djle!jI>c1WA ze}w!JKa*vOlEiBsebX;jzYogq_MtpcosuDsWEqc(@~VsSq?Jnce<%aW0TC@)5I;12xC|#T!3d!XO+C>#z(7NqU^&PH2PMyydGV;SIXoj3L5U6v z0|uMhq++J$os9RC(i~Ep6l=ETUXMEdd@Ev3eZ=Yqi{AG`=#8)tZH6pF6F>)Ga@gs! ze%nxNe=$S)Bs8RCt2!EUQnwBVLGu<7@NAnB&|ifUb`LElyXm@h2dh{w&EZ4V&WW2qaVm2?xWuq4{DFvm^2^jz`mP zM`mM1uyzg~D_bl#uf{7qxiY0CR0h$lL(iC4M3p-br1h8J;@tHvoPpr91FOm~iRqqZ zEw5@dCfe9d?l}0Kuq=gm3)MPRbVQkNO*NW6B1+^jC^c#bp~O6rH8F>0APsj;;&7gxjoux? zM%WdrfmJd{i+7y*Ctb6?dpDgb&)nxrU6pwX(1usfU4$~?p%6yB+_@xC`9rzMRd7Ui z>MUM0OodfMJm>9ULal)g;UP%hdr?4)ql+o!LO(eLR)3{67!1yYg>f=kI%<$z;TplM$UG6N#kxY92{VeclR>{7J{DgR!s z?R=RtDKxS$CX#QOy$8G#Emxull#>d`nB$n>LAE)Ag(L`(4}_*8)uS6f`*OF4T0uN3 z5!s+ci#mHdn@tpu5;skxpl6A6WF4kSRdh{ zSu5dm2GJmh24Xv?$Ybr9rN(oc*OW44w_WR^6cW2*(M9Aefoy?uF8oPRg}t`fW>y>l z2;HMWRQ>7Zw~Nn;nn8v@-C$1s;F4dS-CB-l!Ss+W1^G+>lvzSCLcyOYf21&)!tSh4 zk0OrcMgQK28Hb>RkriI7m{0UX5$M1GusjU2$HGw357KHtdh3*7tUBjTLVeBJ;m18Q z!8F@I`K2aigF_hT1dTMh#pgm6?8Czw=N-kR`udXcBBn#ZeKaYuqIrRq=>21JoD7-6(X`-lemL=a;iEiicpLc}{K3lnhk0Ie4u^2ts z5F8tp8JjHdA(j>AUt;@640@JzWw2YDDTv^4?YNTOZIPJAlXh=~k7oJsPu-?c@b#5~ zAP4uAoE4wW!els=p{tGz#Y8$ANPK%_(z3mBD~wAL_#96aS)`mZG1N-3F1=i^-DN)I z(kofa5-h#Y8=R#Vu!|gikWCK9t-xq@P(I`0gN59fmt{2Szv9uFUZekXUyUB3g1O4* zi_QFJj@y+uAaU0!Db~RtXh0VbDGu2 zRY^x`L!5(3P?pg!I(wT&WfyfGwl%1%C^w3qwOmt>fFG1xG}{FpqBa}~MY$-bm2fJc ze`-!V)NDmWacHFpLQ)Ar>61z)U<^W1LS!83t8#)m%si(Ru@F|!s+D}7uYpo?;yi9o zZ5g&{DwcC}!5OZa4E~ZFF+Snwhj{XdP}_douoI10!iEFei}7I<@Hm3^vxGe*9!?e^ z7Y78zoe(iAPJoCBdU`8eD1(hv=#GNV=;Ju0a2L1nbedkwtp{RmACH5t`#cU3C43+9 zNV4(t6DpqZolI)3$3fDR@B2UWN_!l{I2S}FiO*jzwqb$zs_pHvcuwx(^{=!;<*uF>U$>;ilm0FaG&f z+p84YlGfR{yUR+;BI|eP9N{QBMkFJZaBoMFF+)L6m4|CH!@sBxuqY*$eZM*pT|w;= zvWtKgq3(r7Jz=>X(W3D~wTVJ+P1vd6tPQ_>3Eqc!6Q^|D94gAzJdG~HFQ~B21O>?Q zEJi8uGQ?$ZF_#Wm#0?3r``yjusSaJpZ=i*yn5`t%U!2AzVREh0_~$?Vk5$}Y*V{wb zO}(|%tIy?3QE@FYj^*EEs4nLbV?$4TReGdkZVkb6$WodOyD+4$Qnih~Y38F0jMAI~x{zK+GTOB}2!TJ`& zc&? zK<+|;-`rOU`TE1;))+wKAaAyREpx%eXAAMoF<{R2Wbz9V45IDU5F=f(#S;xhAm-s* zZrtlBI`Ut3cEamr`W@@teU)h#44{aJ=ogC>JYMvOPI6amaE9P#vJ~hcySuv!Ffa8w z>cg_oY*!ZTUGOy8sZ-a`oJBfe^xUp&0NiA5M^TRoz zGPfk{722^urAW)ve+DY?KQ)x{s33NSC$;rbGgn82&pOq(zQk9!12r?A7vVmOseqm* z<~ey{QA)0tiaV{aS&p7OacJ?WL_b(sDTFvFLbqDaic$3BaP}#S@fb)dAxN^QL~b9# z&6g}U4<$iBWjU5}Vq9fTC{@OQoM7@A2TRcXQ+_QwGsTSff5w2Mv`{%t7#tpjbeh~7 ztLu0m0=2j*X3tlf{V@vv701)*<^K=+%6}MBu#8zjBT)?-BJ*-9moE>M!hyi{{Y>zf ztN?UwsWNw6;K(GV3b^htS6#jZCmNVZ5RY$61276KBP_n%Mr@_=Ut+os&49-YB4Pok zdyNV_!89~p{dj!2Ejv^m>A*n2J|x2r_WVr3WG)p511_m7XJsF8X|=A-9;_yi)iA9* zc>26m;)=*x+Pg`TVLMG2&m@yfuAPAQ7<(~N4!K2E!uXWU4ip0p?iztVPhB0%@)S0gr zTRe{hmF+flIBMjeT}-E{*FZK(L1qrNwF>tIG+kj-Ox=iP(5R{iG-%am#xsk*43?@5 zM@1qtnGgof@__eUDlJlRZIeZ##MKY&l7QeV_5qYO0d+x5;Cbi_-v^tw|yR(C>=&#mJG*9V;4Y&?3LTV7sYNu@QJ zGlX@?CI}IZ?8Fjtg++sgc8Gs0$~3LFD-`jK{GGdD5q~xWhdUYg96uis68@{v2Z1gf z@qW@wN@Ae02zPXn=ghNfiuUx0Y4qVi$&SW8OO6$Hknz)=o(y+m$?)knjseG5ZVq;r zii5>ck?!)3ABsCTyrE3pTI$YFt*S_HLT!u6B~HyBN@^&h4d=dXZq|w&oESo1lbo5V z(!=~>6+`IY9p=Oqq0(gH6}DS%HjzSwT5@iy$3)s{fMEpHjt9L+vIL4UX78jvW>i~5 zF`D3Vr0FtND5zVwR%W~gt9p`>GWo9$SE3G?6#+998gmv7evx(r9f2_t;me_=XpGH& zjZ-}R7B8MW6;GNjK{JGMN26|@);n6ZxTuT!&wu? zJ2#}2rtGL#pBEm8lq|YC6OfRJPNS$OIUs6~(eYMFR}Eh{7>;3NaK&0yRf| zpo)Sqj>|^QB<9N%HJdNbL}b^dKBil=BcoN{UX6w*ss@bXNUo?`*cSGgCEeBr=9jR* zdJo&e$VvAJKtEVAIFjr4*@;jM>b|f40pJVJIZDJA87U=Zu%|+U%_6XpgJe;u#LIzE zMM)Kuy~ItcRZfViKv>D~;2|e$7maZQn_j6xtFdwmzm^cu<4URD_TJcO_|9GIonR6kBbq~>h^dB z5{%{>ihl!XkZdh>q951clZn((m4 zxg#@r!P;f^h3VMks(PGr!gW;~6!et?0>XzOifgtG1_&Pp(S?>%&pw`aU*qMV6yTVh zC5Mw*<6XIm$Ly98A4QPMe8lR!dY3C9UKAfC>lg5zP`wME@Oon&Z{*2M3cAm$PpWhG zab-XK5q0xI;=n9i(^!LFUOuj%KOU$6d>_mqjCXhF`?F9vsO8tjA;-RW5BM%gy^`4 zA~O%%Dp^c)n6M1YXq`oK9;YEQ!Ni+lmXRI%Q=lK>Cn7@i#YTPXPy-Aj=BXOI7uP`y z*l(U5T?+{JDbBA%1wqSrK)1SvhhLPysfo~ZE-0|V(zRN79Utfiv=UeUD%1-b)&tOg%hdK-J?dPD`FkUB~*hB>S-QCIYXC$q_c`QD$&Ewr#w{AO_(b7PO z1U0|T;4B0V|B$=p!f6E(hL6V2=2FgF>a{smwh8~tQh~J*d6xn9I7Zms!;g4f*lISr zuyK2RH{Ii8nccjvS54l)PJx+63KDoAf=M7T z4>B6Tzj#I+{t9(Oo(g*2WXIKF9rhf1={PQ(hxaJ3g2>ulr~jAZWpA@rF<{K@7TeSp za3_2{2s3-00lG^bCjnpdHCt<7-V4kS#|UG+IMeHH&9BcR+E~AT(0@}wigOk8D4STp z>jVc?A_DO`tJn;+dR$u7J3b8EG0^083w(`xXSJ_>_}rF0=)Ym0A+&LhBL+`&kZ!eA z#|$V82&8~xD;OI%ESqa@dJX;YEgs#q%Z0Mn0u9r$;G^mUxOq#aM&`6u2A{#k@Ei|T zPvC8~*y}b6?qytjvt}3}S4L=d!C@LUGAkEr;FmU>KS`audRDFqi<0pAFT<&{S8f(i z;>z584w;G|Rtw=)gicG{!ZY|02TXLf0PhGoJ7e(9Xif$UFXH43CIGfx>6p(E}F_SwD}Hhw?dF77%Pg^A8nl7NosZw>z4sgZ*2pZg5& zvn{Vxuy!4P^3U)pqj?I-+PLvO8?u3)Itwj0)xw{b5kvS5uXp%_fQBauFm{3jx(3~+ z@Z0>SOREOR+4fc`qDx-w@ABVlmpqmwQ~m6<7iwO2OZtTfTx5`v0bm9x8X*VDT`utV zPT}oC@XAiX7dZYP3!Rovow)6srh_b0Yn5sp{|$E?t2Zs9p6S4D-!1&ogWNJQ4bQzL zSM_3{-b4aP7fm0+FNFy`y|&5^U`&v}6M!B?s=j713K7G;)YI#X)@N>E|FYom0!3t} zw;B0FZHG)&Zx#aybIizUw0Vw&LCO$RdjPYFvj!i8cc3Q}e=czEQ!gO-DVH*5nCICi z39aMRx2*8jhmU%VXZQqTCEib|X!Y#+agON|=!;(H7UA&Lbx8O;h5&N!Vg*CHP}%w0 zZ`$UCzTd>{Kll-SY=thJpin3~4V>f+!Ig{E8`Zy}g>#KsvBWgX^9bEyPIX*+KvLoV z?cd?su>C9F@D246?Vmp#!{-n9Rz8lmBHwB!@V3P_+>4@T_77`%Y@g)Y8}OpxRi^U6 zpBX~b-D^po9427GJMU2G>w{pf0swwu=lsjA`IjA=JJ2mZu}l7Chxps8E^70Ct^Uyt zE&NwU`ODx?Wt0~9IA}+$HAe>DAA!AJ;#i1X1F<*;~d1~N;PmXF%Fcu*D1*D zGray2{^NDty>6c|zkz3&$jfJL=drg#KZTy0iRfv@LgqAcp|5vn0&Q}PaN#@Q9{gX4 zgdCP6L~U@9(Q%w+bcym1+sEtV4fl6k_znNJe+Mz#d&AuFSnr%g_ymOT4pccl29m2SCxv`|iC3W!^%5iEZ{a&DUr|T#UfPXWzlt!JP0g8yRs6KT9a* zEW;|AiJYv2W=IS`$L`YL%6Dwh$_x4W#`k$Te`-dwIISu|8h8sk3 z^vsbXorEaH<1C!V}Pdf){0* z7!)4BXEX(DzmG;8%-=uBz3pMZ{eNO$*>Qh|b3HNKKSk>!;acq7g^vDnA@Iuic%`N>ItZGR;BZ$X?=!ITQ7djUA@?PC|1 z$^ti11(GA7X9(^*EVjX;XGhr!9Kq9*TMf>m^^w*B1#jFd!5MlR9tOXlxsh;xX`;Bl zHY)BFym90Hox_6r??%G?RMC+*7R{+P2{Z9@H z_H~9wvH`#B6re*KzxID+N&~(>(CbPAPp33+Ff?%T+=$x$q@=*+VWEJJF~ix{fj{Bt z$?g4?M#a8@H*PJUcUW+LZzSB`oha`AYgF7Tc;m+XuZIQq-H~wr%S3Sxp*<@06~J+0 zAAlVe{OcTNm;Czt{qzI>Ic{W8YEuI$ho5fkzk{{x~saXy1Kdx z{XhTl?`Qt!KmPrd6R(`0Kit0V54+Cb`MlNX4BU?GBMH~}j@usf?LokQ;`0i>`vG6G z_@D8tecv5;dk-!#`!cK(GR*=g%t@%(UG>U^xTZLk@naHFVEB zd*|ed6Z7+CnD537(|0;{%kt*@z-jLu7=~$@DLJf`I|^6^p2r)tJf{s1%}x8+$TvT% zecWs`2mt@PF|hjf4Rc^WANjHv&*}JP$KJDh?$GX-mTy`E(-{P|H?RW79aufn53E7Q z@;YYg!1UV=Xy*8VFF@mwIrQ9Z&+7MW&o@1L=-EEy8El(wwqZAGrgwV+Gbc zBU$qcw{Hu|n$6Fh;EPdV#UyZR2(!k$SSpyj+@b|}sZ#TX$s7id`^cmL<={MkhBf6V(ny=$ZWTCP*e^k~8EEYO!ZJ2I54+3pPP z&vH`Yj$ct}Lz)rMsz?xWNrh)Td&|avAO{L0May^JQ*xhvY(F25Immm4bq{XT>j(Ux zk>%{r0%XeHHSsaiP)4opDasHIQJeU6x`*)w-hiL8P3akwVFFzB3xelUi1L7icTFPE!^RQpM;ja*aHPKX|2v?-5lRSlc3h z_ZQtO-Jheq-8t64ZY^vE4OPf&b?cPWT}nP!VGq{mbJYE)dkLW4?q2Jj?OwlsV$@fkX?iIli4l)T&Ig}gz9f;}Cm-K}zE)Ye8{^))-D?1_S?dpiTDvy#VNKOqwzusGOQP2DtUhq`op+M_} z42vHm+VPs&4zx=$Fm6wi?S^mlk{#B{-(duCtnno9?r*vuk|H9V_6Jbvm&o=CDQ@+W zwf;e^wVOm{U0RrV%?nhfApVxHQ&lKxb8s(Pw5PTx8{?w1LI+V-#2}{D{01Mtm~0m# zN1SpqhP0FLP`zY(r%~|jY{oV9(rJ<%wGQ0NYH(YYFcLhY#0=HNjC?>=kk*N(UJ{`y zx=%64y}>0?R}i2tNV(>-Nu*2=?AP?F3Wd%IFq6xlQc0AsSQl0kvz4K>ZOaL6Xvsce zipzZJcmZZ-CYu|PMiY}ZVb^l?Hn+!f&C$eZPR+$knj0q7Fc&yMkJs}U6G6&l>MGfH zdOfpcn_autF)``;%JSM>a|x4PvVWI@?saMc6`wcn1*YZneM~}W=DUX}yXn)!uw%C! zA5&&F%`~@cyF+FYX2gFS*?xe@b?bnD(1a9|!v1LB1PAlxBL|kF=>#UGrvo=&kN@)L z|Al$3GqAjazx?^%%ogU{K$6pgK=f^!&97(oyAGNu8{cHD=M(Ek_As#f7(dK#Lb|`d zKd;P0=Us2RCWnl0&UxiJwSX#V!Z88P3Eevfsk4^7#9HLr!GSZC5huq%*lyV5#%N2zS)MGBCvLCGuU?tY~P=!`tCXy z^m;I6`V4u$>kN5b^sP0d?qdC5+I`DGhg-d#8_b(G(fKYa^9Y3F`{*y$ZH|XhW?=Vh z&_Wpb3M|&;mM}h*=+a7dyWk~GVmLHglwIzub(*Y(>Mpb?5 zfOxM>S&&!IKUysu627@_qoMfjz@!EVi9A~_P}rwm`?kFs_mB{N`&^6!K^Twm#z_#- ziioY@DkIf;-MQu2fwq1{j?Cgk~MZE(PTnb(znIyGL7_dknwaN_i0RKGdqVZy+y=i`4DKVFv6FPM39Sch zh75D4cnK1zYd0 zVj7~xWrBQCCf7LxMAXBkzcuvZE^&#F9`e+I6p(va6Z!o1k;0jRL=n0kG`_-6hAtu( z8aimt0TIk5Zw*z0oI7?q$ktGi*{>~AW4YVzF}g%*Or|PHv4P`=b(c*^OB1RAjz#2E zv_7&>6WC~Q-5mDdShdU*bh9W$;>tza;_}xc7bMqc*XHzpxzniyho)c(+^c_w=55r- zNch;n7$pA=&082^;5v{A;`@+*Z_Fd$>Up8 z0)L<-1miAdQw-Pwd(6`3zemgFM}BRmwz^nfTd1$EudGU7tZd@r(A>25&EL7+E(f*| zwru5-;eO|%r%yJYe0BTb%G0II&4;(|P6PHOR2T*ljwWk9)p%%r(ODXP|J7p8`DQTe zef#~w29rgBW};Cn;n4i{zy2>qU!n&Qt-caA?cVJhCJ;0ULlY>j@B*A@Y0%QTa|r)Y z8w)F9aX}P63P$@(+q9!%w7Z^TF06$#o5*O3i^w;(NbHu*Xi9gMXSDjbW#t)-HJ^xE z38N{}`6FdCsVSoTR*KOug@`~?G#W9QLbHjCHdUiBuGMR_<<%9)`{L^2G$j;jGzM&} z(bkwoYcH%n|J}mo^M{`Y^=}ulYcv9;h=BFY?(=US_8xxr?VYEOpFGa1(HOLtMq6Gr z2}2Vot}$Xy(T^`)quq}1g#2+-jP?lDN@W@?)}5+GE5>MwMk~)~ibkt|(G=-q8tuo& zXm{aE=t=$xze_P%o$O%c??^S;c(hX)t-iRlxVpN!vXM)p)fd7+z0Nh-o%-{q&p!L| ziL>$S;X-E`u+T<}iNJ2_`_A3Y;G5;m!RDwMjaFYY2}2Vo))}dfvqmHHQQdLyl{28F zM@q(@n8o%*BBhE9X4irnrDfaPqr>)vz?Fqbd}!BCa$Sklj)s67`k|OV=%(53y56X7 z?$gc|?A^gmmkv#bXCZ@8g!pp zM)P=b6vAualhcDHj)YPXr`cuI(MEPX^EC=Lgx`hZ0kdehN-(8{&xQG)#B6gGX+w|v zP;G3Wfx`nnEt=1&1I_M{y9g+~_ z|7g3tQGdV)ho`vdaM#NKt~GbZL5rzbF6+!$Y=r5z{JGJPIhVK_j{J-)wd3xi1{Wo0 zntvTTd;k@+2Uy$@Flq&PrMMI43ZK;{C$R-n2>PM%j_?t+#dV&kc0Bv>koT2 zO{)1$AIc+KzAOXf;lR*X-hEg2gG2c|{MMz+!nIVh!YmTlIDy~kiYD`Lzf?`qj03wS zEuQeZUa+^lPOJF_rZ3k;mGUF6BTc^+vJ<>$Tka_eLV==p1XYz zCYxajQv+0#Jl2W_8!5B(rP@MmLC`tufU)Laek5d!?Z`q(tz$z@uo(^Bpjxwul=z=$ zS!@p%GAeB#|Cp|59G2`&D^NXZH59!iylb_M6+Wp?7EPw`4%k?^%=~S%oIt)F4GPJk z$rKK3uD-Ccu~=VNUt7!G4n44fl9+Ha2?ta2R?qUBErm5SDGx@y-sN#~Qu(Yo&cp5w zO%j!cZwJhQ4Q+R5u5YZW9E6nFI=C#!XHB&%a7b!Ssz?x0o5()9pjI;tu7HsT8Dto;e&`s-c-ZG%$0XsPyqbPPV zj$45huS}fBfyFjPqNo&r^$q5=%>!)Y)7nocRN0D3nuOm%(AmOIt-i3prK%jTxq5wN zd2w}RX>C1?xMBVBMngrSS=Hk75F2zom|R;9t#$&<<^#{(bKH@SB@X&KH2?E|vzzfp zsyt!4@0Rmi%}D!y$G-_${Ey^mSu0P?+jnj~9%qLLki8}uuh!QB8|UYDqB|end(?<> ztu??h&Ug(p53nTHS^--@rR~AAxS0o7l52ftwtjM%Xh&V6qge`?f@|wzuIHT2Cyv}o=4JY;Tda8SUY1Y6et_{$)F`^ zks|3m3-c|C0uUt*u||sZz!vQi;DculMq`5=5Q4O`ze7wqyFj{F#?0E~CW7+wxw;V{QVo`6Lgi%Nvp8+IcPv?14QX4_*9Elaj`@ zD&n=an+I5ZDbBTnEoYnU{G4N5kp~#p+Z*+b(1OAaMYfj^p|#t%%>yh+4`(oUfLQ4{ zfo?fq*p(=JOM~q>=JiTem`LFrkVrP|IfkIsqPXLOl4!bHbL21snrusVIW&DZ=dsrr zb9FAY8m@|?BPAf7erVbq&J*a>7d+#v)IxUp*x1_GwGY_Ljz;0-#3&q3Nl`&bJ2Ytz zCsPuX=6sg4Lz81}G9?9AQlE`SVd)S}rlbH%>a#?~c!G|N)AU)qY!0Ta*W>!E1Tdk` zRyI}^vh#bqzN4{2tDGZx2t1&r9SS6%Ki$%VZn0uT=UkO;Ab89Luq3}HQ&?8zLkz;w z)gqsivO{C5C_q#4`*>+0nIfx}->K$-%pkvWFzxXbC%H;d)!N_c`obFaJJ*kmI3eCl zgfVK~ezC;j$uh-_We6I(p@|rKj6Dx!!o|wRiqWnM>fNG&Vlw6-ElR9ph**)WE{wUt z_^@ojVO2zil?@9MQ7vTm6^#ii84wl?(kc)QhHXUULcwUu6S?MzE%U~KS*3!&N=JZ+ zT`(9#DQt@n$R7SxQS28{PXvCcd*o80z9xly<&O6X=b(jyy^2P9v53noVP2R6m5A{o zRV|fWfdH@k(OpT$4fkB;PB*HH>&jhs!r3ZtK%1(H=&CN9>yU>IR1nLRH2%0*m_Lv! z9a6YM_%X#@v8W(ak{(=>4k>pCS2`%U=Pw?PmlnTOB}08CP4CEe{_W=(7>YJ!X9#jQ zG^>i)N~d@jN5j})yoEh2U@IL`grSt!hP1H2bVyN#iU&4mVgl1ay-0?tDnd&#RQd3% z3>u2D=JeRCbc%-z#UM=&%u0t8GE^*vAuU)Y9nzSg7^vwXS?Qo&BtzYfXeRlixQ3d* zP#MFpGH9q+=c%DFY7AC7#Ul)rApk2KQiP!t4ONz*;u=a5dX?U&7s*gnMO;Y@RX*G* ztA-j6R4PNMu~z96k22KsK&x~}5r$H1sI(}nbV!pmlqSR~9n_0sC_|k!Dv?$3u&T6} zs!9T?N=H*+o|i3@s)%z*6Gv4(h^ll16_(=3;ZQVus&woWJT@{22!T^cqrPAYW{D3f z3Yo%wn2O@1l7gEpB^fMLFfK~!hw%Fv=%fjXDikJlIF5)C_KA|h77=NVnI%RFREaJ+ zqFk{6DeMY~E|JjM4ZXN^9F~EU_@5>PbV}}eD;64sW#WqBq7F^I&R9Mus-To5d^C)o zDhh`JXU00FXe<;U#g_2kO(_%zbvWJ;F4|T!3JPtiC&#d8$}Fo|)hg6Ji5Uc#y?7P_Rf>WalJ>8v_sw{DIgKv;DZMJ!3Hu6(%CL~#js z+QtW6O{q%fWzC9qpb=+Q6QYD6p`!RCvc(X7SV3?Sn{`IIX1wcc9ET)#osCl>Meu_x zC~0Yy4NKBVaH76=g3j_oo09XgctH&x#ZfC zjVk4FIQ=S#F_Pg#QG$9#n+opNb-i zBx{xrC(;cZ#bSwckctHo=^z!0BGN%B7DA+hR4jf-2dP-_P^D_6LX)+cm?52cm<*0c zro_h^y?L074N9iyAVueQ(V;U>sE|%SCF+YO9Qn{$RfJHepGt=Z9Zw#wDk=#6HSuPc zvLQiavPRjZXgpAK34)-G&BJ`bK)TU9+D3vM|I?(vJUo_$rg-5~*#ICWEtN$7R3XAu98rloV|?foOP7aMPA(lg z36RdQL}}$D%h-{7&+rtdR?@!rmmx|MPO&PoizI)D5_J_jDRY)F9)AAKb_{S+uN2wQ z9APb;=Quucja$%in$$F+6xU{uo5Cr_Ms8NZ1AZ^p~`Me#~-aYSCO6YP#t{34iI zs*aZouAJETlEMFW7+f7H!~nSS3Jh-bjN5D@APxHRwBBEa14VLD^OhzMSdlc`rsU8y z_4SEOC0P8p$jDieNEXu=KHN>pmV3VP23qtoZkY!;%d;s#V0GGXEeCy2RJ|mNeh}+- zjm7wBlN|vXt{~(N2@hM%%<$J^(9~ApUN-F4v4&-n9RN_y7H3tBmwFDUA!LJJl?G&V zXJu@AB-`VN+`%F{9$Az->QygEl?>f=OP+&TB0wHh%K;m=7dV*=0Z?rh z?q$crEqDX;~ z8rF^*-i=pwa9f%`KSsZDIHOj!p^6wn)I2UKQuH*`;A=#Vat1gB>%=oW4zIrf+|S+O zM;Jx1R#HP`adQmu%{KbN}HK5-nU|9UAMq!;{hq6bxDooSy&p&_&<>t^g!9AB5 zDGMlOllQ?S8fdVbp|`iN*APT8jil?a{iqUbZQ6rQzn|d@ARVV)J4rau!3i zydb~HKN9`W{ML2*20I8l+;Kegop#qy-w3r>Ut7Q%!&g=f?F$VJ?aK*`d$(_xtLl3O zv1QKp+iu6c!QUK$R`bzsR=Kp00 znFmvkTA8aoa!1Q&ilZg=E>RFqG2q^voHL{}ZX~gB8zXn->265wFF@`eijw<#R&b&T zdkmc{oNPzyW(n)S4LDNo-JLu?p8QlZH3*$53Ri_`Xh(Qe$v^kNKN8u@+!v9$={%&t zb%wp$l-@yz$`yPg=^?_nIfghFQ&Q8(m78%?|B6COHTkGW`HwG%eb~E}>6P0t_EFPy zIG;Zq9p5sue5h~<<1>I#)TU+qe|%U+@wBL{qa^FdI9r;G_d&*A6(!@}vw{=HEuGF` z%%RaaYPt^FPb$Io!*bXj8m$f-0Lg z%XA&KdzE18m&5khu#4hWQHZFd>PU#R(nS1<4^2hM$eWOVTFu#GNk25n1*T(;a|z}- z@}kr)I=2hb+0dGKMBfpPm;41$g1cTa%%3#l&`ZY)2sqX8f;@#(0F@h9eX-T-uj6{* zZ52CBi#uPEC})|EdhhDlPR}CQhh244b@~F36WNs zh!44DFG|LLnNE!~rjff@6ok2-PV9a;))*fb#!);f3LP`-bScd^kIFF)=iLGmA?D)M z>~vAnkBW6F!ugmm&)B=7u+BK~sEGLZ1u~A@(V`&CbdF5d;cT2OYtRwK=K!UUK_>;} zm@tjvVo`{wr0Pg`wKNHzfP}v;O2S{Vf)j1xv_Yz_+2O)YPMfg9#S|GyBGMlp)s^?SE3xy1qj82yD06k;vli_~nqxQo3^WQCOK7aUm zQ2%z}uAx2Hj_vgKCPP5V?QWqNe^6B3IVWe6KH5-*_Hz;7H&aZo+;f?CZ!6A~$$MKS=M3qL z8%b*1#)zHS8x{Jpo^ku5D7kqPrcmt|x>&+?AEA>atOGaTvE%7x;f+)UHa`#j?ytZ@ zI+G+k{uM~58d*)pqwuOyZYsjLn4)6RI?;m5t*BJ*ib6{@Iiw?QBq@J(E~@SGGtakR zo}U0pq3OU|tl&gS=op9DteTxIYPt^Fg-WoUD~IjzVVPp?mItMY_}hp4pgpoq^R8ZkYPYv`sEqvV%9mOU{HojFCMv=|ZwM zG0Bk)B9@~|`kZLrJN zMG5#ND_D$O3hZ=oD#3QE9JYnor9eS$TW2c>_RzXp9_6$?gtO&A&SI#ZyINMKn{XPF zC8MLIzPPlwy1KfuVbu9fmpk?6PoI7E9c)nbHR+ z5?;z|CWdl0aZumpLi2vvoXi8N&}t~kIXZK-32?ki_73T%2+l)|%0DjtMadiO=!g97LJA>8<>9+5}NTh6I- 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 W4F5a)<1#wr+X$!hWG~>grvDG1p;jIM diff --git a/build/.doctrees/niac/NIAC2022_spring_minutes.doctree b/build/.doctrees/niac/NIAC2022_spring_minutes.doctree deleted file mode 100644 index 75ff92d7dbaffbc6a3d6e5e5dcc9a0b81775d83d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125287 zcmeFa>vmh&b>~}7xvE^SN5ygCbUHWh(UtB%0;H6lBHDX5=pM2bK+0{xJjS{ zV#BydqPyKAANv(D#yJmg9->E&aXy?!I1i8)=vO$u|D0>>y#N9v0kB+7Ob=Q`0(-B^ zTyxF)<$wRL|M}kk{$Kx-pLf3Tj{e7QzdPu)+TFLS_1)cWv6~P4`)}4-wcXTznS~z8j7E9HCye@Za?qx`_K8m9{osT4cnc;YBIrx&7wQ3 zx4U_tC;TU!q4nPO_kZV|cUD)k^0`~LvO#+{Z`AuMgJHY*>abSJvTVi^^+quo+5`Sf zf7Ix=n+);talSnoWPiQ(w=Z{gG=Tr_R=0kT-^#lA+tDDt=1;Z<*>3(i?-ad!H>(e_ zdN*r#hk3tSAGV8by^{@w_3m!Hzne7jNQK>)R8k!)M_4iKxK?$Ku5iq*xjwmPCieabYn;m>UbGqQKne zKiA=3ICA=b>t{dvXvfcWxkFv%L>D~H1h1Q4s{=S2f-~4C%w((hQjH>cM zxR-kQ!+yS(!w@2);G^;PTYs87{mmEo+luG#?0a@R{F46sia*3z-tW~JS{`#nvCQ z-qwmOu(eh$L#&F2>#Yra)Vgx?i);494gEW6{Y~qS80rsNKWe?-y7cKgqlO*rhd{6n zcj~ox$bZI9XZ!cLP3KqS2*(r1o%#I5If$kU1tmuLFTdhH7eK)Wtsl1DZT;wR>yqx_ z7+$BS+?v4N`>h`_z~^fR-QikuZ8SidT5II}{eF-n)*AhKx7o@EYj4`G+B+`QuKE3U z;X$GVLd9ji>mz>c9JIT-`>XwdQIJcY)^tHejeN?Qn7S6FPm?YApze2Wa-kaKyIilI zj9(;PXnZZ~@droN@tt%XtScfizkX9P9RE#!;=wiMKRAt8QNB2M>#tgWErKN4_D?|S zFL>-5BH-yyob{j5SzAXpb2Cbs^NJZvmTdg@gS?uKk}ike@wl^L7GgIWWzUVYWsmY)8fH-Dg1j5(-Ab{y!aFNcs6-A| zoE)wkjK5=o&#g?euMFG6&e1hI&j$lk;B4zw_Nd-(wz4ZI!5dd^t*>W4eQ|euZbT?O zyHZ~{(4#9ny0UR~eSKv#Y})3ugX|zbfTRzyr>-O4%AO-$qaxqw7tL3#I(qws=XWk% z(sZw~Pm8?U&6}_C?82i@FJ97o&qjkmb_b@AU3jMF?&RI<3#2^WyYmHq-)-^1KeX!T z-WTrv10Oud`%F00JKe!BccuHn1HJn+M``}M{Gg4(f8puh@yY#uzPsDbv#nQozc}2@ zF5KS=&-EGE27P+h7qV4HS7zDy8%FJC7q&Fw^I_i80`3;boq4CjW_X-6wAsT?ivBO# zEbGBf_~=>v&=luEqv$jHvnLk~MqL1Ca4O+*mw7t%?2`k|c3%_S{e;&A9$@w9sEZ)l z0zCG&uk1zr03*f&q`tu~hwbdbiwC^$qB!8wB753KOz(8`@l&7jMGM(Id!v5_SV1s7 zU7E1O36X0Kly2s5>f`&$p6q1s={n4zBaixGwk@D?jd zzt|l$WkwlfZ&=lC(al%0J70hY7)UtYU52O+HAV~T1du$C1*X}mxBK=2PiW5i&@RCs z?+p!sc;C?9trYbR^WNXmD4N8~HF|5ec+=HzgS^?#hxI-p9uIa4Kxw85)>Mo-n045C zG1_kpS2e_4nXQ^&%okbP_5f%&<6Sp_=+m$*tVOz+VJVrLH)LV4J!S2|V1$`xSZMs+ z_Mi#s=4O2vwBoeAPQA%6j9A!M&7#j_y~20hEIOkDEIwu^I-YB+32WA{Lw%Vyhl91N zhE31!WLSbQ;P~Xa$)_L7m%p~Le&bg5czfsWlSfZK`(!(NYS-S6uglWe8LX){yB~+3R+}l^W)qW|95)--`QbsM=nO7ljNC(u#S}Tr z4o00}TlcUd10|b#`gd9W7Ob%c*q1h7i^1sE=c>pKSnp%M?cb_E#^R8XH+uC!lu;roM zzhWs`@Cnz!V2GWS?XNXDMPu#yM)Pvxa{YR~dHwqJ`qi7w^}K$izSq36xzSkPUEkQf z-e~MzUB9~4eY@LPeLL9w__NFF8!P;?sp&vEwwAxGA8;Cwkz_}#GvAH(oSk$Ixn+j; ztlE~qjxWZE4n;a`QCLaw{2X#1<(Li6*o%g`zlH6Z9a@FqES6TBuRz<**7n3N7Q_lZS?^Pk;K1dk=uwrjG3}`aPt+<;bh44apvFvo*l4t%mhM4eJ z&Fa8yBCg2oYzsGyA4Xuy8UPcaZB@bp5VT8)%wp6WZtvY+`ynvKnm4W!5zLhY4}^=mgbuH0O|W~4ra9-w`V5QaBUN(=M80j?ql zNLnn9%VhLcMAO9fK&)PaMPdTNSGzq(2HkybNjkPJwwqlc8_o|kPOm^3)P8Mb{I8Ow zDtPAuld8lXxrMsV@S9-5wnJnL7>0kZVFsffD|L(u(>t-vr8yKryVdLqEti4p4qfoY zUew#^g1IJI;Pi7uHVH~eeE?NOa(30AWR6JX07V+cp^;5p_}RljxSD8#c^Cz_{_8*g zi}vf>H4xqg`rLk8BU_9*NrInP|G-!Sgb>Yu3OOkn5|p(D{+PZaaICsZ8sO;Kt7CCC z3A#99@M4gepFDr~;u9eP2L)X;u@9~l zB#)aPR%*$cdY4!0*#W{QR|zM3hs{Tn)DRJR0x;T6`#_iq9h00Z-!zX$!9!?-NXh3m zkKPy{VQ3VD9=n*LqrxbzDoZK18kg|~X_F0xyK7tw{(&@{51l*bon04Q?XK$xH2ULh zPIbT>QKEOWh%&S>w;vnx0t#?E2}=+geq2c~kq8)Z837)*Z4a5Kcq3qG6aA5dO~X1V zSoRrI!zrJW__~(y8YeiAh8?R>Ka*qmF)B+P z9WvE=!&-GTQZNTYNw@$WgAqjC@I1a&osP(up4TF|0V9)dC2ZROc0qOi`r4rEhr|?E*7t3qL-B z>&|seuy10J@Nu?K;*-ho_VERa~Q)mKatya87pZ#y%-o!v9-ihCVjHF3o5 zeIke47UhItHbt|6f-S`KazAD*nimBY4gyoAT@S)GIqhip%a7eu2;`GbM+izb%KI#>P^^3Wh1Y4~Z{r$Bd9j+y`X0R6DE@Q2< zWkEA&$WGarO`mHnJGPQ-%sG`_E@v`BesZ9KK(e;1vQ!wik1N{E54Z}%#+A0%NG`y) z*-{)_-AB}Q57soORG$z$Q%jJi#!pR9keynW^zrs!`1ZgrrTAVDL!mkLM9PBgY4Q9Q z;CLXBC}U0HPrx|Ss$F%L6-@i>7YN`oH=u0_$Pzc5v$GyH6vX7HOP2C=wOUrhTHD<{ zNE#GB3PfUO2P1_0Qs0#T7w;5nCqxnM%-NdY&rVFX4i9K4_1)J{0#W_Z(C7;)$gn81 ztwX6F2jD-yk$e$GOb2CpL`Vd{NO!&}SFKp4|2$X5BAbn;l#f*ee3+QW)$4 z!MTCa)9JAZPLV}t^*yBLH&8zK(*r>3vx+Tg5kh1$36FBbz9!p{A%3tF;cXTNR)yCwW zVh`&}8(t<&+%4@`k-=2+M*!z zb{q)J4#pNdm%0uhjz*~FxFqC+f+6nXp+Y&~hSjsc=;3)LdShymO<4k61LZ;^i0&Qk zAPfhCEL3KEvS`HvSO{W_uT`_py|zMktIHtM83e3}(rAy!V^}RuJ`A(}nZ{K2V=|kF zD8;VZvh4x}@FnlE>h1u;r|qd*Tynd_#25#~YnPx4EN2*>s;P1Rj9bGc_Xz}75#lD+ zI52TTDxZ;L*0yg-0Ps4LGJv%Fe6+uBUI@%64bh+j39nEOPNe}ke$NGq`3|yR=X}~RE`Mz zHxl%8loGgYFE3y2Uw-)#F{lmohc&oKKokoNgy&^*$mCFiplQaJF!r6TXLlaHc((QI zXFETA{P4x|moFI~Ya)V=3;?{)f>|MfYSm(V(XRv%wPgqVOZM&lEF1jZ!$+Sye*W;u z%{c-8w@UBirpt6M096dxd-ydn`X{y6bE2{ zHEqz=DIQ=%WPN%+cb!whsKkG<8U_<*kP!sU4Ju?~@P6IAIPviHb_F_Q-&S2CxEs=J zAVw*I)1B9YnR~w|>>ef9!KE-~9lMT*B3tc%(PW))e9)B*OS^;$ZPU9unv2Qup^Wij z3$*U7;Z<=u5<&tDIV~CcpZ?t~8(X9BjBI<{#UPsRB4q$oxeny5LXu@(Zq^;7mFKVU z#mma>z~*q=j$vHYj2Pw-Hu(zu?}gUyOkY02eRCcKQ0!k8|86pb1VgPP@ZtMnXJ8NVe(%%Hdx$Uy0k?qcS2o`uIwh9!Kxal=kPqrjec!I&+)#o~;@$A{cL zsO6Y4&@f9J*-<@lhd40y9!Q2yE1ctL+4G6}cm-R2i!?3UnXZw6fwgKY75xGakzo7y ztj4|iLd__HY6Xy*OHQ`*J`=jpzXD~6lV;Yo(1_r8H=bE;O0Un4S~oT}!o73jZrpx} z&u@x$2(@Vu1p(JK1GHZySauNJ*hop)C3L?eTtrZFkF?NE%X_@t$m<7{-g}B0&_hgE zyLs(q%s#@p0o3>rT?<&P3B%AF;N$Isw-?1~g>j}5I8)#Sts(fxyH5iz0hwH0V-SgN zfdoTiNtc^6d}x45-4k&VqmP>u{i?o=E*^AWvtpK-lxERDk=EbCYKK))rax(1S3n{{ zXu1$!SO5T9!+Q)zG{Jd(Eg=a;q<#9j_0|AAec^@WMURnY`@2oO?Vj zK-E=dn;dZ*rQoPFXzhRt3uP%WS%844@4Q}yp6NkWX-HE(s*OqR(MU`%Qm!83+koZy z8TT{~O+ee`2mp46JQxhS7o5YB&Z32ldKc|*%agO)$%#lRly*NvY}9h1DKR7)I!uJ> z+K*`}L1fYWfiac?2K$A%zj2XhsOq4#7eet6wJMNg7m`Ee>gbi~#4ozBT;m5Tg~o`M zj1W)5>Ya?l7)OI}xg-aLuQPz!Y+FNt7|;e=hD#1j0`M&0Fd*OkFCIJ+xJ3lYcq!xn zBnX6PrM zh6#aMxx3i?6$rdrS`=dD8V5Jlpo1esB-8k801Pj)&8|Kcc~XQ&#NG>jYqEkk$Up}% z!3d=>cPTJSHX@DdG>u5w17fi>jFu!K8DG<90S}cOC5+M|GX2^69eg9J!gQzUj^Qk% zr+8Ff8DI7=Y4<}`svZeY4+c~Xgk0IjIUMa${(|S8@o@s4@?wA+lbTaP&OJX2mhpV8QG*6K}wc? zpSb5oTQ5p+OT#3VZ2g%q!b)Hffw=p_=(XD!>BeK!D_X#bfJcVYC8|Tz^yV5D!Amy)C1)$hNUy+VegM{Q;(fcmyRK9c_jqDn3(G8>mBaV|Ez47wp3@aT*2I2)!`b|QE?}hsi zybXG{bR|0h&}0%Lqf+PB=x&GL8rYg8Kln$}th;xkb@wW0dqM_9Ggxx-nDp4UT%K8b2D;Cop4*OR#2vO zjM<2zWwkZ32OOH`*H@aHlr8%e?P7OrjfnMIRIUDhQ)R1bc6D6_bm47~-6 zM7pbyn>Ts>%7=S8YT%p1578QASJ?@673cA#-pXcB4HRx-T*jEVWFptOJQ6bC0nGaJ zyVzJ?zm!>=VOTBZfjvoCcS}FNY>lR#RuZSO6C}Yqd)J8tnhWTS8!2Hz-VM{%}lIM{uCK93F1~LmtC-D1d{a?lPj{= zZ@)HoA%1Q0JMMjQ_rp}DB*WH&NG;tSy1qoww zFm5e^+#is?w2?@I@On36EWB-|xVV1bpF`OZ-UL7Q>Vih5#ex=YO*gz;6+XM&F~T}- z-xqQ#!!)u>34m~sBCBwt<`LX{jB*0T3O*HYHVxVI&k(pP*{}YVmrI3lU|#h(z`1z? z%4v4hej5j>61L2^65P3o9mc~sOi+-Wi6h4a0AMYI*v&XTQt)FS^5p2D7H}Tp+ML@X zeAS7i2FsFE#tyNeInbWsa|fpAuze!k#-z-St_0cvM>bz7Rg~jAz>Lz&5x*? z>l1=dJ@MKd=FtXkHlc9+qJP|dSE|Nj;eilNxj%xrK7`Q);;N&w!!ax;r${04+BZ1i zKAN3g`)%IYu{<~nBi}KJ5M;8uIX9AD6_N*xVPnpMaoaTG{$$xczn)bq41503EUMgg{dri|&PVQrJztZ#h^{SNU@6&Zv~k%GYD=*#N;olY6`|_~uSKKY1QKV5Z{~6NjBH3HQs7!up@*mzyM(1361XD3 z6ficPDwReEtpX46tzv(3!1z0kiS5DstmeuTSz~i!^Qw7DwhVoyZ?K}@VRLe;ncltg z3i}TTQ{6~2836kj;Uw#!wrO+@VXsIId4V(D*nrWGpT&lTH)QwYFezE*>=!_HI9PV1 ze9MML^q-hRWCvUsY(5yMAms8g+j3p)Q^>o2V{AqHk|>-w9A{~F8bpX;Qkt?73?H4Y z8=sgQr?gK>$5+~*MhGs_eRJQkWI(N*mCyD@1G5;gtkRJQJwT*3Flz{-F`AtaW6Py9 zhb6d0hzvV^h!ai*geKMl#W+CDctycPLEyI2LuoMWxNiX{$_+!mFe5~;H$&e0ha@ti zATXj?pFQ~7$JIi#a2uYr6pg(R#$la;T__?N6 z7HShz+P;m8Im#}(0m9%ydcybtUi1}cbuBD0!WE1PFbzu`AV5#&5ooOW=`H=(f$UmG z1$n{Ek?>yhuuj$e{XHD)I8Tuo4%%`=$lb7-eMVG*2YE^D!ZHTQ%_()%AzB$jC95l+ zmcAxj2}b`BB@Dp>w{-cXQ{(|@Om5e#P7TJS=M=|hhF(2UrZ#kJ0Wx(M1`bdbJieG4 z3`>@Tko2Ow3ANHY(Hj>c_LfOoN7qB3?7LL3N!dkE$1J2{1G^6*eFm)N#DdR)he=FcJ1(FSsvKUfp1L1??1Z z2~Qx$Oo0%P>I zEy8X98Q&!z4;W zKFo{gNKQgEM5I6<+)BHmi31b2KFrbNn*%*-GhZ%5(yC9N_>=eo#NLxqJ@i3<#{CPx-hr8ps?URBe zSDqH5dKA)vq%U|)RV_hKcU%x+#BIi0((0l^K7xB+&xP+bz}U)7Fb}j?%Ctx!iT&nG z59b7D+)MweF##EfFg#syM!K2-sN9xvds0fk$6}!Urf$o%6iqp)7)DVNi zE)%L;sSvYFyZ7*ZKw!Z{+KRpd0l}BBIK5pu&UjhWIFKRFAJ~B#YNKv5ZbIyi?Q>QQLoC?0Bm&taxsx$u3}xNdgjD15ON$$2c?(kaG+4qK z_mC}QqqMMP=cDe=b|RBmkeN}PQ1>J-@l)Et@1=I|6QZ1V6Fc}RqMVa>V^#L)htfVr zW1a;K8Ie;%^fb$PVpt!yYMTjNqfC_lIcmbTLOW#k#g0eT3v;ydy}ZP%L=Ir>oIk7O>BG_?h!kE0 z3(9n0)?9~WxrF{Sy>}4Tz zO>cxjY`3fIPbnm@FOlzLA@D!m7Cpym%hirq{}3ajkTAxhZJvleIV~jYRsvWxmQx|S z(E^|`G_S4$C}d4Wf~}zBIgg%xEC66`yZ_lwx19)t@D{ww6)>YrArfbXCJQ6>XaoqS z2Y^6>OIsvNs|*uByK^u)gb617jDhgysUDU+U2hO+F&Q_)FIyxxa~Hm6Ini5b$Y`=yqcQ$x|$VLUafm{Ud} zEWvUXRKSLOghA6Y5NtOgOo1Dz#RKUB10?)sat?MIqK^qdQN)U!xI|QoL?G!$rX3#z zM(8p%vNfgVTqX?J2%*Y_1!Hqa!(aZV4>f6O0H*fi1|feXvhJo7kQXJd6q*62?G)hU6L$;0&%;(RQeC z@&(!uA$dy=ke1y<7IO*BX-F*3!2yMU=TK8XSeL#JFUP|0MN9X@mi5Wghj*W6Te=AM z;=8-WZM_q>tXmStO#%a4dRp7McNZ~o?eV>*oe|Q+vnLPjs4d?^qbS@c9Zl}Vfrddu zTT!{c!D>F}@2&3jsg1-}Yhm0y47bBI`*){bw6Vgf@&%R;l^xN5PM-xMGbV7T^I^Q|VAKflmIa7+m`hK%h1F zMTkgwigS%&wgFQDxl5UkGiDgNY!ds2J8l-w`{L?ue&bA7VPwJV@qnwK?Z{Cg-I^0o z{4aNkNBLf-urK$&DKDI#|!&55?-aAq{}h4g$|}9@$UQPSoG;@V$nt- zOicfakyLiIZlFSxhk6035S-46g>q5yF=+3in22f^Mms2F436Wf+FWF!Ms-swQ^0#G zyY@MY2y3XkzE}{nYX)Qy>{%XSB4H#gfOZB#P4x6xI9?`>p>2TBNvMb{3wLm8izl4) zmO_q)Qv!CHCmFJD{fzSSwN#8qkjEoE{h=R+YZ(JrYmgU!wCH14Ey`G($`8&@#c*$La~G_7fX+{4knT+iUxlTQU%6A}FYVia+xJynH& z2B8=epp!I1SMI8c8iWv0%@EQiTo*gxoYEy*@w<)s-nG5W&1PdSU%zp6qj_z;*{EOH zymGzKys>#@lwMb^-|BGvkVVcL051N5&%Zm|C=!ZCi zRnHITlVu^@q;!&L6p5AKRcW^sljxcI_GATg60B_ng`a85 zWd@`+I_fn$D)~8)*xh-8i;-}4Xpe2o2(YK^iC?MSNA<3W`Br*FNR$rW!`cNE&do$C z&L>Z$gyZt zV!UKc6 zB`TpRze9J>kr$J3nr3~RO%q_fBbz_L^ARHm3q z8CjRU2)~pQ#8bNp#t!pORt6Kf_hg|DQl6Q4oJIMTQnQOjL4^PTWE$hxpfyq{Q0U3oGPG*%f>bEqyZXC7J!=ckRN`7^Tj$B?(|#RDh)&O$yW zdD1UOMYX+bfomRtCQZGFiFlBtAqkc6C{YL6mXXZt=KH&fMkr}Gl{B5OvTm6HpFK$_ z!x%hu35{b#z;PGNr4u^b8C*M7l|gY8prfd~yG!h@Aj^dFrl=`8rvYzN*FBSS;JaVmuFIp#~Q2*9zS$j(E0W0?=t&SIpD5;)Ss{vw$qt zwBr7<9V;XmLphddS0P$%cURxEKyt>8lu}9wPn~U z#`C~h_{FIE5qepxQV%S&C%Czs45UfgIO9W$iqlAaP^Pj!1^HG+f+`7E-igzU;!B>^ znZhluGPt6@8TnkOEydzJDWW!MJXd}<69fPtuPj?A36QRs_>m}30(EK#{sai{zjEJ<2VOAqy zfI#3Dg>duxDf&t**Hi+j9L-eDs)agA$X=s86ZH^+%glrmg>-a<6WdAH@j-{{!`4E* zBo=BULC`t&o<+MzMEy}ZC%iQ^v9n*}nKjt!BK;#GS3{Q+V+)yI^E8iGqH{#z(@Y$i zUSGp%pCE`u+nv?m#iS@kqRUsayJSrQq`{>LfOAP2(`p!mh7qZi60pzREuyr!E!--? zO!iCmiCCgZL<#^dokYaxM+OZEsoPfL8<7ky^|8bDyST(WMOr_^{MZ;s5-if{z=6u9gq+!Z zA5Luguyn@b?_Ij{c6s4ndsZ5_}9^}4xI<;@V=x6zWt&F<-duTxIq@e}xQ@a`J8L%p`JL?)8O{Af3a z_)g^<6&=#UTARBZxG{<|p4H01R&5qx-Y_%y(Lp6F+GgE_%(}<=IFv&y*uPNz8>i^t5R$hr*w5d-;k3OQ;z_}i@%_gXw7D8LB=4E<>}f1jBeD~_Ht?48KCgym zaa8gT$$Ax&CUuG16UK4Oee=c z&1NyNqb$ueBRJS7SUxz?3qmiK6{9ZIQlX9uHeCo)bV0e6iS7&uMu~D(afzu6FQRIe z0$tz9)(n_1E5XcoEVG$c(o96B>&sw|F5HwM2@58OoZt>S)Uvx@DbH5x^e~g8BLm`z zSkDse7|x;>L%7KzgOh+hRU-!Jl#s1OyD*gIkJ2Dwb`ZtsD49*yKFwn`SE*2|YQX>w zF4up-vJ2oz)4V~mJ1tfQ?K9^?0% zx6i`U*-aLr-SjK!u%K`OJaLc_ORS!^y+UQMT&TAKBGR&r6(spD*Hyu@Lzii(fRSXm zehTuHTUZGrE!a$9=}rnuwo#a?hr&zP`*IBw;27oythz?b*F9m`)(H+R1V8Az95~96 zkQe9_eG`^yny^I2gfeVR!si(qF;LnvJB{_TPwtfvoT7^IKyq2AQ37nuqOW2~ z3G&aJT@sXp?S8UFTOF#|6}Gi#n(gVUa8xi0=r`( zmep8ZuGvBGIxpDipwgklRTLl}HzqPveM`clf)Zsb!IRss^c2;_uSFWYK#zmy^>LcH zSc8M*yBk0W zx)P*D%9D8GSklQfcYe~608o~tC6mT7=HT=^f~q(LA&hEprNHT`A3>uRNP4ly-U7d#1_Z%c-|UPKEp5efb{}Bd zycbJ?#S~{Df6xVEc7}YC#2HMs9!T4Nl;YuO`wmPdrU>H4G#yyD<3O1v>XM44N$dH7 z4wE&OrWrG5HyW5QW=`)iaH27DTA`#QKlV~>Jg)pwHh+Hs4=Z1!xxnc=3mmnFhS-$j z+6q|e#!@{6rZp7!-0E0Mt;ES1MEmSB3mw#l!8aaK{sJ6Ge}29ANoKCZ*uBn7?bl(k%m)=oe6> zhFV%(FciTK~>Rb&1&Y(L$S6S$J46X8P4t<35Vi>$o&Hs52cuK*4udOS}eTr)TIusLv7Ay6CQkOUk zC`tph@bu|*{;TNGqecGb0K~?$3jbi+lI8uk#_P$4&Iz2Z;AY`fMx%sP;^$NYKDn^} z;#K|Ufyc(|lKxw>>iJhhH*83*pLvS;yH0hJsM}fSgdsavUU6IM(KPOF516z#eN-t5k6KiU%7suR+gcTYWzI4 z`aPX<@k0HltkQqaT@*6{xx704l)~a=iGC?ESmczWx=?-ovM`Mxy+Cn(RSNTPQEp_2 zG)xJti^a!O=8pzjE1|SdS^m(%2SLgl!1LDRU#1}c8C2sp>|Ul6KZq_@sOl?v&c|GJ z_^qs+H`K5pEPiahBK*P}4deYSxu`l)2?g*e3tKs%0{_zG_rbg=S44#C6t(x4ExZr- zJ;HwRs{1jzihV3laz7<>Vi@z)+n1Xio980M_K|s(th6uXZSgYu6E*e&CA9=`JnQoo z*k87~{t~72E1`a&y831y=PcCKa{i+F!y;DHS6pyxc)dtD{o%5;^r07v7t$v}fX*n> ztLUG`ygR#o{)BmVdhz_}=H0RyNo?5qca(6ecc)a&KZCOQbJom1VyLav7Os{*kJPg0>_nP3hM#Zs~J70HKmB1*wC@F=P{*kTp(mnn}Q3-ekzGz%rG8V8h#V#n6T zH-Vk1LkkziPs_6*R?b}&-->9Z_N@6z;xAnff9YcQ3dpkDFvkUxA5!u9q)PaN;!G`r zfA91)@aMTp69w>>sD2-3osr#gLg{-%zykvtkw^>Hy*Cq`3$Tk7y+2a%K9)Y8ulRCW z?p{GuSS1#&bzjE&5sN%`q5JryRy9XWLf*=YuZai33gTm(k)WZ9^6&batumY`n*M~k^h*_`w_rVaGUmBqUs*YNlSJjuavAhAwdm0# z(<(Xh7NVb4g??H@&M_tECv>){_2-k|n(>OKcwJ8_K3|3unVpM!JZI(kSU{V;Pm7kF zU$W+WEI5A#)#hEu_e>|H9nW8C9y`!tb>_#z_GT5CM+UJv1TNHz?8<0*nhNu0P+lIn zK(<*gL;=yAx3+v-szX_ePs1}y`~B3y@`1I%wy9U4SIv=F)|)-Cs{F%cO3H_fc+_$- zbY|6){{rTrcgXd`etD=Hx0nwtn=ub?Nb_QE#pI zH)}ulNB;|rX|$x3VsC}Lt*B|Gmb5akC9Q-S**sitZG?AfQVUk-`_{?r^D7ICbxrTI zZs^}p>u*|r)bgeNsP%s9(x>l?8dIS6=g-xg9Bw+jRK3Rgz(y6+PJWn&%Aa5H+l8=% z(*0cYpM_AfkpA|S=nKL=5E z;lWQXTA%G&(vP6TcK_v6IPZ7f@wqjDtM^+!YJJXa{efQ`?(77vG7mkQx+{jRC7Omr zq_b~{w>B^F(1Nvarp4GU)4^d}t6m+wLWQpv9MgKv$8RC{PWgD z+x4iCk4dq!M$tQwN3G7Jq|CthWEG!xUcnYcZ&~HsD3s#P7q@C(OXn3%#PQJY+#gOq z8=gvk;s`;qo<#JvYpWb+8x#B9e{9D%+&!XJve@!g<W42O2P*n-WIhv$IH_;#F{}mwgBP@GTW;YWVSTE zVOf+e57;={uX*MaM3J;UoPf_FZ1GdZh|;3qEw<=$)$nE#?G@Te{5G@>OJU6K5zLcl zI6nuwHIsw=9=}^zHMzCK=H1N4OIt#`C*&e%JB?&%X|w=ytXhB9+Kf^R(?+ zj3ZDq&g{FEa?r>=8w*J(sWs}8ne4L%`#f(*NUV-k^P4ODX<7xt^M-`o{Z4*ytalBe zW-_!>ouU&XUlOIFY~b?S(~z)asnT=JV13>ZG+w}z{_%SxfxQV5IK|3({{%(WoDb1Z zI{WUHhhtjY*$tX*Ebi*<#I6=mKYuBeGdL>*C9}%@0Hfa69faYWcSSuXLRGny)f69( zxoGpN>Mv%=8a^YKhzC%C$^Q;}v9iUeEd6%u)_3XuMykeN3(>VyVBMXCMB9uGagzXj z-tzXm5ae|Uo6 zJifLlYw}`{Hu>#G3QVslHU8vI)xMDO-`V?{0`lvNwYg@pge`w7l7n&${>$u@ECT6t z76bENo&e@#Ra0U7PhUCZO5rgZ81qYn?c&l4}PN>#yfuekpH}6|BDQ6>J2_W#!%Q@hUnkGV=OQGY_>c9 zP5wH0IB+{D zbYvw~%UGC<0(Skp7K#AZv%UO{*W#;_H&4>#@UW-(_R;}NZwsSm)+eQ2V|neSYWZ54 zo>v_?sJ~KarYz?>^_L|CfX-&t8_K9y)hJ$SN$rhw+iiC-kG{r9L0MJ00a6@iuigwz zP_>MFdql;Ykq0Zo82qjJ-X5^1bqeoy?f&4^+DqyLzrx*7uN2c6wbDY}gSEsrGFXdm z6Zw14vEGqZp4OWKSlc=EFSJ?gcuMVe&PnugIme|jb1_>^mZU-*bci2XkJV%?yZHf~ zA}OCru%zsXmFD|@BvPICsW?ZlGeoeGT=*}uiN+Ka>gicyXL<0Z$$l$h@2S^#I>N?q zi5i>EV#?K4RIcW{19naA5-`D3wd)US3C35q@6_9yas-cc1ZQ`3SxRL7{Q5x{d&UC4 z3+YcILKlI4GKB&E#|r|#BtWcnD(tt;f-0qen0-^`*J>GeCWGa>aTZH7)pUZIsY#~M zS5nbNongC2eQm-K`jls0t*Op({jii>z(js_Rjn4My4P;Kl&P+v%r14W?q|)edBTde z(asmb&ZGA}^SU&CKbUdQ?6(^*S?lWwZy6L_t1`ket%*cVA5liGRo#JE31*%{<8q;L zZo65!@2hpP7A>?(EfkvQ!|6Y1!8>zzy?LcCkps4A6arO_3>+C=(kz)i(xtxu>Z zPxgxu*$8}8gDI=>_^Ukc>1jr=HuTjp!V24cph*Q64by7(Y_6QPAhm)8_bWzC@WDBr zp5y6nFrH2$-9K80fu$CZlyDy{nNrsAxN|F`(mEvTN`E)IeEHV;diK*7clGj=q8~FK zp0^dro(tyg)!INYUOC^V?(*Y40!=T)l?;p=-j`z%(opDbQK*{SqF-lxdO zuyzMxNfK6@0{BT~{73cSV02JG`d-vu)m!a;!77vU_&2j=7Fzy9q2%GQXmOgPV*$g; z+DuJ<-i3#trr3`L*~BKUdRbdSx0?F2wXOlu=}vc~0zwk05JZxm*q0>ZAn?-G zZBLS{)l#GWFa@4DpWqiGq`EUeuA>4;13{)H8ToLhy~}^8sK&68e$r`Fy)7hhV(4OU zt(Wbo`JM?!5~zlGOW{ar|7G8+WLUE8OUfO=%w;_z>Pb&VNtnC4wa~=X;g!6|V!Hzh zrPx-w#U)H<9farc0S=1Sc};TQh@Mx~q^lXV6RQ+z$!tiH{QoM;m{{GQs9D=2l?P;` z{X)_u06Mh)u4d1@NsA6()R5qM&>jwRL|4wBfzbboZc>BVLH)3i-zNV)Hg(~7@6eJR zwD(&>?~R0zZVCeP02JBI%$%nB+zwy9fH=djFyTp2h>`Eep`_7*q`ZKzvD;@Cun!%a zDpeM>moN7(zkG>Juno6G=2fIXVYMICr|M0nZc%0u#3IPUB%5zNyYukHv#n=8+xh9^ zhcBMLe96eg8~SsC25gQh?Wi$%*F<0GLv%*%%0!6$Za}J!9ZRT;t-Tf!(K8$Q-orYyHd2Zu!zpMacc_OSpayJ#pc2rT7g{x?3fnuWsVgQ4A5QsX?m`SuM6Ud3& z3DEKyxQ86ds6(lA=6`VSe)hWEAC5qJQ!55J+KjMPz}ER-tfYu1JXaS*2R{l>x^fQ; z>8sfwYuOzcG62FsTZnN$&?_se(fG<0B;6DYo#-Kqq?wo~>w^j)h6Vs0_18sP>W&|B zt%4Pop;g!Gh9G8D^_w3$2=cDkf~jI#6uW8VcCcMLp{8w#4Uay(g??+(gmc$L42!zN z#j8;aR^U+yboAuM+wrankhe^$1Ya05>({v&(#1?CvfS-kHn7Y$Rz)+G+~=x+8loGQ z0Dh-~1(zAQGI!8dpT9bEh1#LZQJ_Hkkh(J*(KVe21VrjIL%aSbwQye@AmaA-FH4(i z^1h6tQFqKBS9R?)U>qfOVYWKqL5pi+*kc8U6ELvTqSouMdw(w=ldANFL#Q-5uV3*e z$FPKyM{yI}A z+&c^TWyV@h3!*=mCjT&I0-)~#pfLey#*}9bok>X8WtF!f&{ik=|d1t)R;m4ad5%;6azN5AU-MoXn z!Q3G(u-`*;N7mS>%(y37;RyJ>3zJBBK&Fj}{FVIHfy5j=8tW>qO5V2C$<(3w)n%$MI zK*JcL*QBTQEZ9>+<~`(YAQ#asdU}9QTw9e0h&xkr@!zH3JveOOVK@wvaLuz z3aDREX$BjZgH`S6vI-YHvRn{t1 z8f^)GTfZK(;!^*Y;$_;LFHT^;Q60{%Is7+{2rrrgT{ z_;X`})~4oAq~}JQFJcSPMQv%lAVDkd^wcF%MxaSO@4tSHHzp+!{2r;qQI0r8ll<%~ zuNyNa0?Jtroo;jX9v9IQ9a2$K41cMhBEJ$mbxuVrF5$O|iloTK@3Zl3%ALA4|DA#a zF-vlJ79JyA`0Q1mKFZbGSCAbU@ z4;n>B5<%_pb|bGJRKcS&swt;pNo<;F;i4Ce^TIG?7!9I^2h-ZPFj@6ux+rTrZUxNY zJnEKYUa0v(vhLGhdWO%t--gA?zY?ssm}gsr#n>Dc%Vr*=BwR=)ZFvFW#>DQbU?Q9k zm{t)nOqA$XAvv0&7TpE++AJSO5Vg7#w{wN(4|+%~_!2H<+n2JRT{0}#{#mfb63-jk zyur!Y=-r3+pW7pB(ey_ooep0iN;LZz$Z-bcv3)nDZ8tX~Nc0Xp#2A1OPLn{|IKS7) zvQApI|3UkgblsA~BTo%>ct+^s8e^#n)s@ttuXd~5RQu4ET1{L99<+`GR2>D-Y39A5 zhMruo1yJiDPEdz}te{}1>;OlEf}lX7YP!`dHkmYuGjh~wb^p03Q=Iui~~utN}4 z^i+Q^to$dp5xG1fjdwi;nu+xw>oepiMJ??|z7W~pM*}mY`)K7+nFr&I+$90wn<^_Xv!77wsI&LkgYDguXx!gFL$ciwUk~wdXT_t({X-?&LW&t?u_ZHT{jGrd-$ZXBLe-Tfy#I zC~6^c%9&!xPMm=`j|tq-QU`|OiZH|wuZ%~miKLLq2=~8u@JJj|d_6e7;jp;1iD-~r zNj8?Ag#%w8^9JDpF^&ooRrEDn?UU!v?u!>5X8Uz=nzVpss~`?Xf`lhqA+fcac-I*e zNve!re$yU07cFcKe;&(-w~~CoJRVSjFhwjv--_;m-|QR?njiBj9&Gg{YZqlHNm+n4Eh z*dl0%7)ueDN(Dr2H&rj39FoK1?fqQwQT;;;gdv#6#fit;m}t8LkEcN$E?*=(XRuRr zEeAqoS4{l%c3+V=^*t$-yOu6OKS&fR4?)rr^0!i!f?BN)+6M$_1xa5P>{=t2NnO)h zmWlA2aJ5&`A=r~ASfWhCCdx()2|-g&Wf{0#Z@2CG&?)|%LueL+rXlO!f2GL!9Zx?M zqP~37SI8rNh2jlfAJ9-9hI$)IOF!R7PlU3JrM{Ngv@@(OCzg@CwtjPCW7G3?vGAA{ z3Q{F{JwBPkkWyT!yef`lO0Qv^-HA?(u&@0QNW7ZeCz{o0tgt^gowzSZ32*Waf9Kf+ zGRGji*0Cf|VsvjRcwem0)C0smKwuDT(u3jmNJw@j&Sr{Y`QN@yu(H%d1znr-fM;xa ze`3?8W5^7aXr`xG3WgPAyEaCOrj=Hg!n$;kQAasOiaM;0P&%w{RvCc5DR}5B@_%O` z+}TR$H6nFD_|p6;&hRo?2~CnH4W0M59zJ`t^+Ik(^99zDoJ~ZLDha+M65>nPo>r>3 z_j+eFP>y!7W&xfn@gX0!-dWq-xO};OeY2UbH#e_cxw(EVzrJ3-e*JR3dF|$Uo?mWW ztzX}(=Qq~c#Hqe5bM&#uA>CtJ>WokXj1Pt2cx;=U;*EqP?M~!DG1G@41NhCA&1hbap92)5y#dV+SUw;ddvIBSleuk66mD6EtE9VdSBIo4Cco6QcUJ%iRwKOMhlV za1knd%C*hF#DO*{qWg~)?g&t%Gv?skZVA^3>g5i~JANuYZ4 z%hN6L)WD2Zjz{l)qcn0Hld5|+rs`hBe6?})_*C7Q4==I@-YJuHn;}`3MXYRGJvmu- z=JQ`svaaXmW;1hhYm>RSca_%i4{~!}!d2WxWcW#u_kY>8KP^o+OVf05dwTPC(tw9~ zPcPpshC^x*bS`CIi0uHjz z*NHjG|6aDe2zs6(Y538%sw;Lh3H-{@oZ&J>IBzLOxJ(|-p33WqEI58d3y$zr?Y4H@ zZeM&M`}fAx@vLFXRWutt_Wh9D_KQ)`A03pU^lsj4i%t$y>jY!H9O*JG?YAdM=T|kw zR|T)%Jq}(!`5e=jTOkN$32IOFnH4yZX+o+5fudO3ULb^HR+EN;ouge4V4xV(oEmcZ zs|oIMhNFH}Q2E|WsBHfn+tbrggF1F09Tb{p)#FfRicYbAs4{v_fBKAiJX@n7k+vjA zTiAu?J1bkziraa~9z7VrsIYhn-BA^RqBvFJvnLSx92kdc;UT5L%2P>A85F^03)&j> z!-@6SNub>kPs<5WXa)tW=Q}VRZQ}8;{974^uMr9Hh@$iPSR>9X^(jqJPd_=6 zlVZ+97(BBv({05)eScz4r;{KVDM`uv4~!8NFTp4n#xBf(aMPAH3GTTi@JHXDO+~Ik zMNB->4O7CxPDof#P+JwDE(U~qc(0#(y)W~P$caY`T~65EsxGN0G#T;7=Qxa+wb$1# zWt+8d7YW1PlSA+>?2YgzE~e#(E4aUMQ1|oKR=Cq$CNW=JR~Jh*9MRM;C0pZfq>@)- zM43%O>@2rEw+)sV8PG+jm@Yq_8Y?;}HzS*YZ#2gqwcS$3L+R_3favTFDo)~-?#E{f z!xRnpJtFDq1d>jk`&VRZ8boS-G&*gqb9fW=e&gk{quVtadM2)XJyZ6c67tbC(FK-8S+MYr? z!{>NK<<+@057*t;SPx;B{kj*}RiLlOa_Ewp`6*0~pA0dhOp{R%W0T7l8nne#wfkhu z__F=#xgXYL1*1`3aS$qD(XtlAB5SX?q?|4x=>!50x9m%}m608@J1PqzL?eV(TsTG+ zxO)arO|gOB53j|m9#%W$jm-dOOs#b|qQ7o3})x1f9(dpx)_&&A)ofqrgvO8RYTQxX-u zw}(3rv7ye8gXYN0dnzY`Zfi~?RW!j_M5r?)Kv$4}4<(=ZFe+bwBP=IS+v?`j5jOZb zc+Bv9sd^`h9-(GLT12N5Y2$YvY(2vXNp8c=$@9`4#CN9yGtG+S^JKwxfF4-KibHAG|Gp_ON#2Od5 z=)X)Zy7pXM^nZsqGYyE72R;8CzcBlbGaxS&ZDMJX?!(~M8g@KjQ~;`ewz`E}xkPN5=aovoUv3}-!b zy3N^pT!acaq@sQv{whOPe)|yhbda8(RISb=RX(Hf(P7a;$2MvJ8~0jtJH7VXyt88& zZB1F@b}YsN{%?Z+eB#Jev6dhqFb!8;A@B;@gbvDJi4Cyi{d-iQ8xiH6lsR;XqCL;jc$ zWPEuYl!8ITNOINDh~da)Kq{-JBAXr`j~t9lVl2|fRije(!Kz}K;;Vi%#8q|b6fwk{ zuH~4zD@Jz`{~kBMZ3Yp{7@_WCp=3~%E_Fr?g9{0eXzHW=d>^lXqN4Xy&d@C96(5CX z3ka*VEtU4igzl<(ylImXHD~u54aXF>_q+1>~)^;<$d+* zMV-^_asI1*Yvxt=8HJwt$_WBDhT($>un%u5T@pNr&Y+k)q+cK7S(nTD7En7^_liz2f z?Ud^^Um){L_%Lm9?apq{bZfKsb;j56kB&L*(=BNJyR&t|-KlIQ;ohjeuBEi>ydrB5 zZdoaBWg`-guC?j_-cknVb&)W+d3oH%2A-aAj92~{p>4SZ+Zay9+Bev@15vL zor@VvR$7_=<#eHOm47y|%0&?O2aFMQFYP+mfd1ogM>B0LlMtI9XYbF%*=-fkx5ykx zJ+2){^AAK_$ut-usQb{D3>2-J=o6$WlHQ6*Qia787B1;$P<|XO5OrBElZwkTB8OcS zwJ-$2p5nz(yn@*}CkH9(P$*%CiW?L)$qO}i+PAvhtdwh}4V4e}MuS$cos`wAQILob zv0GL%bxZT^76nbsN`7b==Jg%14tEss2_Y?IDyrW<{PN06|HR@w2+G2W^#0QeC9g>@%W3XlSMYKd1)kbH1-W z9oVXkCYO&Y?nJZ?O;yxo)K(#X8N128B+5Dt1a`vKuq0&XVwer!5M~^eooFS0KsWXh@SlW2Qvu(tntY^zd{@s*}6bxL(W= z=5KUG>!UFR(2|3vToLhTb6K=<(2{aiguu7e$&iaw?V9)t<;sB+R_av2(=48l5S^ZJ zD&RXTXi;H)62mZ@NrX-~#~1h&T`QDYX?ItYk-tA`ujmet&sXdXX+)^R^^om1!rcVG zmA~KXd6x?`;Q_~DzyY~l2|YA3%?<4{!Pm}4_c(SrhR-V#k{iqdN}dj{pa_Z1Mgk4q zqaab(vi;EBI%;DUh6oeNNJ*+6-XiF5<4?5QCOX5jun%!>;th^ zu^Xy**?5#+?ZW6t^Drqwbs%~K z`8iyXJxT%hw`wNqg)9{n%V!Ce)nBzWi;BBf{_H3t5b+{cB`_xUzQ-v$JO}4lfOFa{ zc((K{IGA}0e7>|+YC~a4!nsjTQW!qYSxRFmW!Jocpn~~n#My1?ZC*8X5v=8MHB6Sn zx+80mvd0j8W8V*=50!;PpFxxGT8McRV`TSYtj3*73pDOsUY~DQC?zyI1;4Deqo|bE!w2K~3 z0=IN?T1Dq?#1pd%TX!zvx(lvBU|s#eOl)mqi1?%U*pVbs|nX?9pnI^M&r z^}Zkcg_d6UP*3h)lscI4I3E|EVSTZ}9i-x~RSkkRLTpw-44F-bh{zpN!wE(0I=3x(+E7*4f$X zjNZcXX4gQTSfsXCMPCL<*Oc6NAM(UdD=-m@P|GH3Y3_tJwpKiMwrWK;%t@|~_ z*xahE1G5-@YqITSpV0}uIRa-=<{e>6E&G?%tdAOn24qFAOS6@=J^l?aip<@{kGHLP zH~!_awZm?K7g=qk%QH7qIT}FeNuo-Eqeg_HEk`}I8+naWR6{H~M`3HGQ&_EWJEl|L zbM*FeKSyu;FIFD--ynLI*zNqBKCBesPUsZhr$4iq;1p&(S4jHxawYTUvgzIQXZ9*j z$Kn_(sq(;IVvqR0|2*M%-cXJBp>qy(&Y`|m4wYg)zt2YguTwxg-Q2o(uCe*1zOll8 z6M^$btS8HcH)YNtQ%Ejjfe=KjM6I6=A%%oezoZD zuhIUrvm@^?8p}cFW7`BHsCYg0NX5z>n3RLLbaHfdSSPN5!re6AP@@hL!6ZakiTZwi zpgawRAaF#YwdA~RyWaFj0h8cjsU&+nINOu;o19qt{K<&F>S?$vge$K%- z8~M>3C*UVt{u|M^_Wl`1%Bt^tV&a)g8QhrFwEp`Ot6YS?{0GK}+(o+%k+KiY3fW4~ z`Y&?;_;O4}KRup~19`Cl(gnxWUN{3l|8P2>nNIifH~V%?gURF-IUS7^s>MJ)Mx9Mb zfAa1-?>ye7mw|jL5fe^RWoYB3H&9jwK5N@Z2Eac366JM~b`^$1gO_54#y-4_`g%*v zGO9L?1mUR)BL0@p{F!g@ST+g0@qirHz7>(Hm@Q7wn@kfu{G})ASpQ>x8J8oW&R?`d z^{nOcCr=;VeV%Pe$GjI`+%0aGW;$t~am1wRx;t6dw(i{}SZM9>y{DZK-m7O%9vY#} zwxso|M^ZVCs`U*t01n)h9`Qzl)qK$3Tixrg*;i{}#67aihimrlPQPfA6H6XEVN5n| zFk%QIa;hp^tse4^%86#2OA>aurdTQVwYGWn>I!KYEAeb=a3l|E%bq?{K`#h@==Qjp zJ$s@?*mBs$**!+f9oF4X|&kEGto&92%<)y{$v26wN(VEd(osy-#ln zSc*7OT7T@e_bj*gd%`j0k`C@__i*o#E&@1j)1rz-j`I5vB8i1XC#>}=e0*PdSVYmq z`T}MvX|rA)OaLQmhj(eLcQ7{GX_yQ z?2&A3H&H#$ndz^CnNB;}N&0%m(lAqUyj3q{W9$epgtH-~&T$7~W8mPXkR>5;IMEhI z&L-SbO8MA7-0{K@d0##%&(p&jcq`QZl3}Fui84N==fZ zp`9`s)3Z+%j-@K3r9~(ak)>#sr_Uy(u|Jx1s4155`)nFAMLb)uRdm9@7aSp7^z0Qc zBC0WR!dSvzxU9E-$;C)8DMg}lY>u9xuM(S2cjjkH5Pi-q?rvH0rmY_IBzMVPz-@Cv zbP{PCx3FH5?ewHqDy3^sDYcict#scu2*X*4>#1!~m$DD}ip3}|8F5mJQMv@kB|aW) zth7HAV5^b;^e+4J%jhcG$EVn7dJOzN`}R$t7xSre*UHtIvuysC)1}T{=UGw-W_-^M zH=UZ_XU{$bN+(t9I3;EL6Da|eHmKaQRhQ$KSy%R;bKOW%8S%!ZTv-xbrD4ei6TACBi8X^uUueHX z+45GzQSu|G@~wbnsCSDFJ2G9xf{BDagV7|y#u6pM+SQDU0I#6kfV^tv>7xP+K4p0y zt(+;0PFtah!a;8=AMYF{6-=ff_0F+KeVQC0Mx7Z+;4^acr6wNa5wkAldvz6XDTB0< z_-(^3ytb4B8zIGny6gn7PkqtSn#t3o(IU8)KGGvy9NT1mP?P&s&G>-FAe<2xt zIWT^)qC~j+{TwMNh-hMOg^pHQM$FY`YUD;T z8Nz}W{9&jjX(y}(gwas;snIJn4=`fI3awysKuxP~q@}uGu9w5tri}>o=ABOdyWyai}m;?V&)HNA8PEM7xh~ZeG6>KBx>hV^O67woM)*N$L!|%VWaaGZH`i}$+`L(3iem2H z{@@(C;;DjeirxGkwceu$KE>d1l3{(`qcO4S>;_G@HhW)-7#$osiRlnxFlwBwWk8&j z>?5vILIjk(wNqtpUCKV*yy-W_g`^2}EeO;jD`{ILg{owxs^kSvzvcJ2QOz%3np&!? zNeHm=dLb$Z*NXpC8A|)pr3!D|s07w_S9S2Y;N@gi``8yZPXvOeW^VNq(5h;DN?)L0 zpZtHSsn3$E>I*6)Tmq8_O&nLEoRnA3!QGvXvDRBs@a(FxiHPQCGf9h@$&5 zd1hB>$6i||dxNCL$V$bqB225<6Mik5TT-^u>W3yE87T1@BKvSpUmHJFMs%~^ zCO?sq1#I09gM=6lTxsN&UA+}MMWaw|uv($5}CyO*nCr=r8nqU$lUN4b7fzEZ`}IMMExbnhYDH|6x__rcn* zoZkmml2GSLwEwNT4`<2MX4+mSlkVPw6TJ}49B-S#C&6GBsz5_2JSrs12R)UFCkhO@ zNzDM+^#Z9)S`%h39=PJ`y7R|3uaR1!i7LI7@Hvn43Zm&$Mwh7B2RSKgXbyq7QFiYY zC8yIly|9n<_bzpmB1+aQS0x6XJxSSaMasnF+$>Zn=~n%&n~$vAwa8(IV#ahG1tw5` zt;LIzaev`rosl{0*tX1?j8&%I8CQ};H8}4SKIh333VJg*sts}}MC*^pw!ff14X0yk z2!)6n907Z0{MR@Ik?*Pd0Q0t@_Mv=DIFLFHghT2E3iQP1p`pQuy1Vth*H^;^7Uvuz z$md8A_}e*B{Lin0Dluo{kr(IV_7+0zP>2#4PyHICL{d^jGz)>ZhngGw5%>tc(Kr`HnViw~58 zg~WdR2=C4x7r}t<50DC*=H2|9KmWiYr;)G`U3VZ*SepjQQ#MtP|GsB>62E-<4*yVD zxZWK|9^bW(M&f#Y*--_lEe&^@+y%_5e9;t;Fy{%#R@H=Xv)~95fngjFMr@zBL zXgZzbqxbme_wu*x;SQW=I2u$B>zns>a{|2hMa%ez;;~}*Jc<8YYu2Y9s`_p&An=F( zeAMm&_Z{_PkXGX#emENLt=wE0w8P(jI{wfO?aGV(j!KPoa-9l4?`u=dP;Ksa{WK>= zea}Yq$Ny~Ni6cXP`TcLbBMkk>=NeyMI?|txKX7Cq#`vyw43-aCq3MIK0X?+4KjLC@ zhP%QxetswK`Y*pvv_6U+^$3(A&GcxFd?P5nFW;Pj#$ejs<(`oc`IfI*@AJ<`_0h1{ zNk8Vp-)V=7P}?0H^mdXXTb1&#-O2|2Ex$KnYE1)J9k9_e4p+VCI5cZ z%X>Qj7M&XBP~7}?^r;0<`PJsZKZ@~1d^K3@9n$5ZYXv3vj-T)A4O<#->|i;k?}tT$ z@ZGogZsk9(Uk!`=sK3{oGNnEppYp%NDdi5+rFxb3SKIk;&*p^$uBn8@nlIo(3@p%r z-Jy8Ir{ChAKjW?(?34tj+~m%n$NluT`1iZ2U0r{>qc$KWJ^MG`>=f~$erIq%mzbSj zjG$YBkpKL?ed-_XbP9S$*_Yv%{tQPjD@F)+`oW3WAu!Ubkw~ile8et{43|{TKbKEf zA@AkKMhw3v5;+((roQ2w@H$1kqA=eKw3;!$n`5Nfg;3GCWza%$DVOklx9->OcR8Y4yvW$-c@5A8K4{%EKR8EF<%8>;L^9t^eM zh6}$jhJMp9{CCt^^Vfdd`r~vl`rX&EIdefO&1)<9QXxWG4!uAEBLx7-_G?Ytymnp_ zpNm|^cha*+Ki92HzT;*bGzuy!hN+UT{$S#(i8nu-^2&#CWyvt#8=D<|`~R;9lrF(( zT@>90xGcCy1uXcX=NJGr01-FrjCtT#B1DAU8FJ16ga;%+p$|bp5Q-1jGY1ysz}u5R u+x?N91+NXTNOHp^;c1;4aw!Y2h|LGp<*^XsfgAXNl^eWF2ems(lk@;eHo+bM diff --git a/build/.doctrees/niac/NIAC2024.doctree b/build/.doctrees/niac/NIAC2024.doctree deleted file mode 100644 index 265a465d8ad25987e376c69d444766eab2c1223f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100244 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 diff --git a/build/.doctrees/niac/NIACAPI.doctree b/build/.doctrees/niac/NIACAPI.doctree deleted file mode 100644 index acc6297a00987f06341673ba4f5dbcb1f1779df0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11313 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 diff --git a/build/.doctrees/niac/NIACActionItems.doctree b/build/.doctrees/niac/NIACActionItems.doctree deleted file mode 100644 index f3c2a86929174ae79a14bcd1e606150b6f738acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41966 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 A82|tP diff --git a/build/.doctrees/niac/NIACClasses.doctree b/build/.doctrees/niac/NIACClasses.doctree deleted file mode 100644 index 3425b5d32d7538a48a7644eb808335b96e14718b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46237 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 J`;y`2{{ihH|GoeK diff --git a/build/.doctrees/niac/NIACDesign.doctree b/build/.doctrees/niac/NIACDesign.doctree deleted file mode 100644 index ea942a3a96a5cc000adf594ad673df5298b1b8c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31192 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 S*@4$MLP?5#7AY0d_4^-*P!7KU diff --git a/common/NeXus_Logo_dark.png b/common/NeXus_Logo_dark.png deleted file mode 100644 index 223cde5efda15a92db0d63f927602eceaff240c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28878 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 D`YR{e diff --git a/common/NeXus_Logo_dark_square.png b/common/NeXus_Logo_dark_square.png deleted file mode 100644 index fe0d5ecbbe8b977b6464cf0fc06bd25596b69b49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1295 zcmV+q1@QWbP)v?m6i1~f*~Kt;!gnpg#IqY$N~f_^&<-)H8`PgES)#*;%IY4&1vG)lx{3U z6#EJE22kph$mKGszOBR6;dyKT$vu#}ESu$9izO3$Eb`R1x& z6^{v^Ptsz|%V6q~teA-{muvvEHQLZ8>oAz~=n^y}rN<+vBaJm$3~1vu7)*MS(&I6h z2HP�$qX@fEPYl!1XiD_+0)dP0$wv;O-qKIi(YrvnrRQj06CVY&pfb{eOkEQ%c5@ zIVYX$A}auOdmA{q^>l0pwDB66YW~KMtYh)Id`Sla{s91ctCQM27ufU0A;i$Yp_;WI zGeTRpw}C%?x(q;fvz^LsYQuAq02-r;U(2cp_=3z@nM>;AQBj%)#hmSK0DA5?xK@1& zfXvxxsI0Ca39iPjO!K5c|^>oswrSi+i74*lr^d%h#1ws*H zC$`t%vU!-cEStVt=s_+K!2Q4MkN}M4NCyD?o<5F# zbsB(WWkm=o1==_@P6-D9uAIC9fV;~}*UcVDO>6**9+^xQC2Xu{;@at3n8qejuy!VD zgIe4&@%wC!MXn=+9%x3wQ#W>nrcq%a?Zea43&7}!W?tS_ zO6w&X4Tl@U+Qy0j7xG@67SmPPr&-&F^(>E1G2(1@W3(7}>%dA9QjF|ceURq**09Dj zE|K-WtpT8XQzi8WFGa00>_@4m%ggwJF|6Iaf`k+!eor4_Ktz|Q4Qsk@+r#ZDT9?m^ z6_YWION>}Y+Ls}Opbn|1x?C@DE+Qo~?~Ch^znr002ovPDHLk FV1lmtWNH8a diff --git a/common/NeXus_Logo_dark_square_nogrey.png b/common/NeXus_Logo_dark_square_nogrey.png deleted file mode 100644 index f86cd9e0849e53364b80884d49c344d3655741e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1270 zcmV3Be$0G)4mk#drfG z;tP?OAkhb7KnMwF1SB9WEv=zxAr-1XA#J%-(%baH+{;X-bLvCk;4o*jG$y=sJ?{Ol zy}t9WefHjpk27}<@dQKpB#Vy$i~#@$a)VO}CenT5F3t{j#GEchOYxQhL~)2UEaqAkaZxZG>cU`SI8##-2sk%at3#ohrIRAkeWT7H#E!FEIP|Baol!KIj0I_A71{u( zJJ7(%oz>AD(8ua%srd_2qJiZb^JEnjBK5kBiVeDCX+)0MK{GNmJD=05ayMqS33v z^ow4dOTah4p|?*E@C`%<(3!QU1Qm`p7gc-Dqf{w){ErF5*iEvQ1ksoIx6yuecymr&YLh;w_=5r}_tbH{^5&!EA^~EoCd8l!fEW@vzO4c=G(^$n ze9TD?cduHn#@pjV42fa+=MVk?K<46!D3l6{-pi-;Vh6u{dm*Cuzc}!4(YDK7)E~Z# z)}*26{Y7C8IJ-QLrgQalGk$jflf_8xy4j@7O5x`Z%NUAs>B~A03WmbQ%6He`wtJaX znnlKfGyt?FjkE#(8A1ObmrpeTuzXVd}#c>k9j5r8=<+yQ`qcYu>$R0B}Dy%0g8 zLLZ~WCF20VwKF#W@bviTx!EVHi4I^jqEILzgpFk_G*#ciGBKX~4Rg_&w6e#qpcPp5 zPA;BqFNx`Kq|Z)yJb?JrSOkqqR(xVd6$AZ27QZ=<+P2i4kY{gK&1ZIlHG0wNAj6n;vmn7QFr}QcHO8i`J-N{+gWs z23Y#md{%wF0%wOCpW_~D_pW5&D{~?e#E{6btrY}(19iDN|lo2X;y-PLHZr{Bwf`v7f8(>kF(Q*Ql%s*BZ1!A4rzYWE%?9U giNA`+0LB3R2CprcRUI7crT_o{07*qoM6N<$f=+);_W%F@ diff --git a/common/NeXus_Logo_square.png b/common/NeXus_Logo_square.png deleted file mode 100644 index 61b297c2e2ba09723e3c6354a8b2444e7207db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1301 zcmV+w1?u{VP))MWP?N&D!4j2Ix-9YEKM8H9~2wre3geZz!l!Rc&&={k{ z5BS9pVn|3pGKs;7ICTa=gbWZJ8}}B33ERRL+bC?5wd;C&+wPqoCNGx0jX;e1!ufd4 z|9Q@@=bZQCsmkGS^f7=Y3}o_$005e3a9|lU{?_Dy1yFLHID3`cA?etxrns2TFS4bg z20;)=)+G@VBS@0OlF|ueq#N%WK(YSSHJA8w>p{f>MuU#`-kw2*#mIO299+EILD}-@ z50pG1fX5reexZ#+wG9amjviqHVAQY-+};3Po&esS5YEnS!jWi<*5&r&^@((O0ysOn z>GA~Rm|_dOz7PPLchpc+kc-ivi__?m)Bt4L%p5t^MAdsU` zvtNnPmdq|-Uh(4q*t)YC#1+rlo&S2R~wF z(o?wrIO?wv5@Xx2Ymc22y_WTB=aHh_1f7!1+r~K3p}E+#%^P_rw9X+EU;$iwC&n_M=hv513l5 zV(s!`1VLci&RTAH{Qm%mU@@nlR;yyp&!3eKz;QE4LZ6!0jhpEM}6aU-d{Nbl}Z(-O$d;r ziFL17Gzn|Ek?NWT?Dg#c1cG5QE%D1or`1qAX(RyU-`272omnL7k`$9G0(7~3@(kQI zgI>$(H~PQZ&&m%IiS*(Ni1HV3w>?`p0su>zkw*uoD{2w~xZHmF`r;o+Q;YJLIDQyy z*FEgoYsVi5E3V&gB+8fHpTwGG;Mxrj^^G^~58!&ImvBT<(z0ghH1x?yRQz~~rk0zE zE!edE2*YzM@-XiI{o=g?NRmWLdso~pzil?Fi6sk)5W`XI7uv98q{hT|{&a@gGgnx# zXfjiZ@&Gto*ND$A-WxzmyBjeaB_u}a?NxrOE|@cpk+~TFSkn!%zxH%9<=@n?^3}_1 zxP<&MgJn&d)6L?tuK-xPqL>$^k4;>G`?Yklfm7#NDO+DfhpPvJUW-O8(A^W1H96U7 za=W%y9%tXLf70f3$K0d%9=I11!%^CAxG9}G4z(cAD@io9+(f6W1O-^>29Dm>z{8y$i3=Iurel!}r^3wUgY{35+Jp}j*@EEh$ofQ&w00000 LNkvXXu0mjfA)0OA diff --git a/common/NeXus_Logo_square_nogrey.png b/common/NeXus_Logo_square_nogrey.png deleted file mode 100644 index 7e74035d8909e8dacd2c8d287abbbd42d0ff5a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1275 zcmVvf*LHMm*Sf)UzzCq|20F(j0uI7O@PcC@L{a3TBm_f-#uz1j zz%PanLqY!#kV$c!(xE%;Wk%bh0c4zTexxg-e~3FPrv2$x{M&eIXp@ z+c{X*l=9%H;dTH<4$Z>j3)1Bc;_C_HbafMr#S^q{PXM1kLYFs))74FvHz>tqTj2AD z0ob&?mg2%Z40>&nMypl=kYhJ-_-G5&`_JO+>;_=(z&~%n_UP% zG#2O7pI0US!MY~SU3Bu%${FMhF(=%U1mN}rP$~P}3+9X?KQD`>Ru{VuHYVu8kvM`N zU@_eRD0qAbBZt`lsCTqVAGEph2yc}YGwGROcc)7RxaA3;QuYs+QmJ6gvJwPAVC#-L zZg~U$0*GNTrK40T63)+?SpdMXhBm~$KEBvd&y%Baczs?`Qu34)P^#{@N9WslY5Euf zp(tCvIU@N(;TSfVhwAwWBQWT-ba{hR|9Y0j=Iea0VmboqHSvf>GJ$ zHyVrc)ek4IX6m_i!%JiHjr#+*?(z|hiE>(2FPVxiO-{%HJ@f|;(rtb7*mM@&dsj&IBr*(IauRmFp@<*r*j*epieo&YP?R?+G1VdE#I6pS7$Y1*A07L|Vu zz?$VHyf|%4>I&SinN505p1n%>x@tPzJ?M2BR7!#Fo{*%;&B>J7wXNzHdw=_jcBd!d z9@%~1UMv!g({aN?*_^Q`1%X~sq^0d9T8)Z9MxCTv^lA|oFS)Q=jr58lSDhYmb26p) l1GnJ+vWLDE4*(1R{0;7+t)!8(g$Dot002ovPDHLkV1fe?Plf;h diff --git a/common/favicon.ico b/common/favicon.ico deleted file mode 100644 index c8e69d204bec19a03aa349dc8512300568c042ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmeH{TTqQr6vux_H}`9~E0>CpTjW~qLaK8*s8ocGv#AI%lIxHcM((Bu4-6?YYN~Pf zkQu6R_mFCsW|GSoHRMc8OBYH>UN?+TULP-(G9)Z|#{6?BsEGM@DC|oWT|F z78i*?aZUe|g%HY8yAVR`LJ74GBdomvgM$%+qY#47+$NI&J^{bVJZw)k98~E}42aS!5G&MER+}un{OUs|G zuuX64z+ZR3?yocdkHnEmvu^sw1S&lBP&doMDUZ@V5J?|U!q0yUpLKG zpr6EQmKKarJz<#a726f2s)?HB7RAf34IiwAsJhfuE4935);$ diff --git a/source/Makefile b/source/Makefile index 846a9cfb..4658263e 100644 --- a/source/Makefile +++ b/source/Makefile @@ -12,11 +12,14 @@ BUILDDIR = _build help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -# fetch-logo: -# wget -O _static/RUSS_logo.png https://raw.githubusercontent.com/nexusformat/definitions/main/manual/source/img/NeXus-logo.png - -#html: fetch-logo -html: +fetch-logo: +# wget -O ../common/NeXus-logo.png https://raw.githubusercontent.com/nexusformat/definitions/main/manual/source/img/NeXus-logo.png + wget -O ../common/NeXus_Logo.svg https://raw.githubusercontent.com/nexusformat/NIAC/master/NeXus_Logo/NeXus_Logo.svg + wget -O ../common/NeXus_Logo_dark.svg https://raw.githubusercontent.com/nexusformat/NIAC/master/NeXus_Logo/NeXus_Logo_dark.svg + wget -O ../common/NeXus_Logo_dark_square.svg https://raw.githubusercontent.com/nexusformat/NIAC/master/NeXus_Logo/NeXus_Logo_dark_square.svg + wget -O ../common/NeXus_Logo_square.svg https://raw.githubusercontent.com/nexusformat/NIAC/master/NeXus_Logo/NeXus_Logo_square.svg + +html: fetch-logo # sphinx-build -b html source build/html @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/source/conf.py b/source/conf.py index 136fed10..c8d76f27 100644 --- a/source/conf.py +++ b/source/conf.py @@ -109,7 +109,9 @@ def do_copy(): # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -html_favicon = "../common/NeXus_Logo_square.png" +#html_favicon = "../common/NeXus_Logo_square.svg" +html_favicon = "../common/NeXus_Logo_dark_square_256.png" + # Output file base name for HTML help builder. htmlhelp_basename = 'NeXusManualdoc' diff --git a/source/content/2014_How_to_find_default_data.rst b/source/content/2014_How_to_find_default_data.rst index 004a5bc8..035fcf5c 100644 --- a/source/content/2014_How_to_find_default_data.rst +++ b/source/content/2014_How_to_find_default_data.rst @@ -1,42 +1,39 @@ ============================= -2014 How to find default data +2014 How to Find Default Data ============================= +*Written for [NIAC2014 Meeting](NIAC2014_Meeting.html "wikilink").* ---- title: 2014 How to find default data permalink: -2014_How_to_find_default_data.html layout: wiki --- (written for -[NIAC2014\\_Meeting](NIAC2014_Meeting.html "wikilink")) One of the -[motivations](https://manual.nexusformat.org/motivations.html) for NeXus -is [simple -plotting](https://manual.nexusformat.org/motivations.html#simpleplotting). -The [procedure to find the default data to be -plotted](https://manual.nexusformat.org/datarules.html#find-plottable-data) -is convoluted. In some cases (files with multiple NXentry and/or NXdata -groups), it is not certain which data will be found. This proposal is to -add a new and simpler mechanism to manage (both set and determine) the -path to the default data. The intent is that this addition to NeXus -preserves backwards compatibility and becomes the standard way for new -data files to identify the default data to be plotted. Proposal -------- -It is proposed to add a deterministic method to identify the default -data for visualization in a data file. It is expected that this will -become the preferred method from now on. - add \**default\\_NXentry*\* -attribute to the root of the file that states which NXentry is the -default. The value is the name of the NXentry group. - add -\**default\\_NXdata*\* attribute to each NXentry that states which -NXdata is the default. The value is the name of the NXdata group. - add -\**signal*\* attribute to each NXdata that states which dataset is the -default. The value is the name of the dataset to be plotted. These -default attributes only describe child elements, not child/object or -../object or other hierarchy. The procedure to identify the default data -to be plotted is quite simple, given any NeXus file, any NXentry, or any -NXdata. Follow the chain as it is described from that point. Conclusion ----------- Ratified in a slightly modified form at NIAC 2014. See Niac -2014 minutes Summary of that modification: - add \**default*\* attribute -to the root of the file that states which NXentry is the default and -only to resolve ambiguity when more than one NXentry exists. The value -is the name of the NXentry group. - add \**default*\* attribute to each -NXentry that states which NXdata is the default and only to resolve -ambiguity when more than one NXdata exists. The value is the name of the -NXdata group. - add \**signal*\* attribute to each NXdata that states -which dataset is the default. The value is the name of the dataset to be -plotted. +One of the [motivations](https://manual.nexusformat.org/motivations.html) for NeXus is +[simple plotting](https://manual.nexusformat.org/motivations.html#simpleplotting). The [procedure to find the default +data to be plotted](https://manual.nexusformat.org/datarules.html#find-plottable-data) is convoluted. In some cases +(e.g., files with multiple NXentry and/or NXdata groups), it is not certain which data will be found. + +This proposal introduces a new and simpler mechanism to manage (both set and determine) the path to the default data. +The intent is to preserve backward compatibility while making this mechanism the standard way for new data files to +identify the default data to be plotted. + +Proposal +-------- + +It is proposed to add a deterministic method to identify the default data for visualization in a data file. This is +expected to become the preferred method moving forward: + +- Add a **default_NXentry** attribute to the root of the file that specifies which NXentry is the default. The value is the name of the NXentry group. +- Add a **default_NXdata** attribute to each NXentry that specifies which NXdata is the default. The value is the name of the NXdata group. +- Add a **signal** attribute to each NXdata that specifies which dataset is the default. The value is the name of the dataset to be plotted. + +These default attributes describe only child elements, not child/object, ../object, or other hierarchy. The procedure +to identify the default data to be plotted is straightforward: starting from any NeXus file, NXentry, or NXdata, follow +the chain as described. + +Conclusion +---------- + +Ratified in a slightly modified form at NIAC 2014. See the `[NIAC 2014 Minutes] <../niac/NIAC2014_Meeting.html#minutes>`__. + +### Summary of Modifications: + +- Add a **default** attribute to the root of the file to specify which NXentry is the default. This resolves ambiguity when more than one NXentry exists. The value is the name of the NXentry group. +- Add a **default** attribute to each NXentry to specify which NXdata is the default. This resolves ambiguity when more than one NXdata exists. The value is the name of the NXdata group. +- Add a **signal** attribute to each NXdata to specify which dataset is the default. The value is the name of the dataset to be plotted. diff --git a/source/content/Archive_Definition.rst b/source/content/Archive_Definition.rst index a46d9332..b1f9ae46 100644 --- a/source/content/Archive_Definition.rst +++ b/source/content/Archive_Definition.rst @@ -2,86 +2,88 @@ Archive Definition ================== +*Title: Archive Definition* +*Permalink: Archive_Definition.html* +*Layout: wiki* ---- title: Archive Definition permalink: Archive_Definition.html layout: -wiki --- Introduction ------------ This 'NeXus Archive Definition' -proposal is similar to an 'Instrument Definition' but it describe the -required information for neXus files that are meant to be centrally -archived. It contains important information that will not be found in -the instrument definition as they are not needed for data analysis. The -Instrument Definitions should allow the creation of archiving software -that are common among several instruments and/or facilities. With the -Archive Definition, the aim is to allow shared data management tools. It -also emphasize important information that will be useful for search and -retrieve of the data once stored in the archive. The Instrument -Definitions and the Archive definition should not interfere with each -other. To analyze the data of an instrument, you don't need to know the -owner of the data or the name of the sample. Before archiving and -indexing the data, we need to define the granularity with which to do -it. HDF 5 should allow a user to extract only one group from a file -stored in a SRB system. I doubt that it would be very practical to -catalogue the data so finely, at least not at a facility level. This -definition assumes an indexing at the file level. Part of the definition -are optional parameters for information that are highly recommended but -not required . It is build with RAW file in mind. other parameters may -be needed for processed / result or simulation files Multiple NXentry -issue ---------------------- A NeXus file may contain several NXentry -that needs to be indexed separately. But it may also occur that not all -NXentry has to be indexed (e.g. when one entry contains the events data -and the other the histograms for the same measurement. ) The entry that -has to be indexed will have the attribute 'index' with the value 'yes'. -The one which doesn't have to be indexed, will have the value 'no'. If -some of the NXentry doesn't have to be indexed, they will have the value -'no'. Those NXentry may be associated to one of the indexed NXentry with -the attribute 'index\\_group'. If there is only one entry or if it does -not matter which entry will be indexed (all metadata are the same in all -entries) then there is no need to put the attribute 'index' or -'index\\_group'. Parameter Names --------------- When extracting the -metadata, we will not be limited to the one in this list. Facility, -Instrument, Sample specific information may be extracted. It would then -be useful to chose names that are descriptive and have a constant -meaning between experiments. It is preferable to use temp\\_control and -temp\\_sample than temp\\_1 and temp\\_2 with the sample temperature -being sometimes temp\\_1, sometimes temp\\_2. Too much metadata is -better than too little ------------------------------------------- You -can't extract information that are not there. DTD definition +Introduction +------------ + +The **NeXus Archive Definition** proposal is similar to an **Instrument Definition** but describes the required information for NeXus files intended for central archival. It includes essential information not found in the instrument definition, as it is not required for data analysis. + +The Instrument Definitions should enable the creation of archiving software shared among multiple instruments or facilities. The Archive Definition aims to facilitate shared data management tools and emphasizes information useful for data search and retrieval from the archive. The Instrument Definitions and Archive Definition are complementary and do not interfere with each other. + +For data analysis, information such as the data owner's name or the sample's name is not necessary. However, before archiving and indexing data, it is essential to define the granularity for indexing. While HDF5 allows extracting a single group from a file in an SRB system, cataloging data at such a fine level may not be practical at a facility level. This definition assumes indexing occurs at the file level. + +Optional parameters are provided for highly recommended but not required information. The definition is primarily designed for **RAW files**, though additional parameters may be necessary for **processed/result** or **simulation files**. + +Multiple NXentry Issue +---------------------- + +A NeXus file may contain several NXentry groups, each requiring separate indexing. However, not all NXentry groups need to be indexed. For instance, one entry may contain event data while another holds histograms for the same measurement. + +- NXentry groups requiring indexing will have the attribute `index="yes"`. +- NXentry groups not requiring indexing will have `index="no"`. +- Non-indexed NXentry groups can be associated with an indexed NXentry group using the attribute `index_group`. + +If there is only one NXentry group, or if all metadata are identical across entries, the `index` or `index_group` attribute is unnecessary. + +Parameter Names +--------------- + +When extracting metadata, users are not limited to the parameters listed here. Facility, instrument, or sample-specific information may also be extracted. + +Descriptive and consistently meaningful parameter names are preferable. For example, use `temp_control` and `temp_sample` rather than `temp_1` and `temp_2`, which may vary in meaning across experiments. + +Too Much Metadata Is Better Than Too Little +------------------------------------------- + +Missing information cannot be extracted later. Providing as much metadata as possible ensures future usability. + +DTD Definition -------------- -+ -{Extended title for file} -{unique identifier for the experiment, defined by the facility, possibly -linked to the proposals (see : proposal_identifier below)} {Brief -summary of the experiment, including key objectives.} {Description of -the full experiment (document in pdf, latex, )}? {User or Data -Acquisition defined group of NeXus files or NXentry}? {Brief summary of -the collection, including grouping criteria.}? {unique identifier for -the measurement, defined by the facility.}? {Starting time of -measurement} {Ending time of measurement} {Duration of measurement -(end_time - start_time)}? {Time transpired actually collecting data i.e. -taking out time when collection was suspended due to e.g. temperature -out of range}? {}? { Revision id of the file due to re-calibration, -reprocessing, new analysis, new instrument definition format, ... } -{Name of entry DTD} {Name of entry DTD}? {Name of program used to -generate this file} + {Name of user responsible for this entry} {role of -user responsible for this entry, comma separated list} {Suggested roles -are "local_contact", "principal_investigator", "proposer", -"experimenter", "funding_agency"} {Facility based unique identifier for -this person e.g. their identification code on the facility -address/contact database, should allow owner identification by the -archive system.} {Name of instrument} {Brief description of the -instrument}? {Name of source} {"Spallation Neutron Source"\|"Pulsed -Reactor Neutron Source"\| "Reactor Neutron Source"\|"Synchrotron X-ray -Source"\| "Pulsed Muon Source"\|"Rotating Anode X-ray"\|"Fixed Tube -X-ray"} neutron|x-ray|muon|electron {Descriptive name of sample} {Unique -identifier for the sample in the experiment.} {Description of the -sample}? { sample \| sample+can \| can \| calibration sample \| -normalisation sample \| simulated data \| none \| sample environment } -{The chemical formula specified using CIF conventions.}? {Date of -preparation of the sample}? { air \| vacuum \| inert atmosphere \| -oxidising atmosphere \| reducing atmosphere \| sealed can \| other } -{The atmosphere will be one of the components, which is where its -details will be stored; the relevant components will be indicated by the -entry in the sample_component member.}? {Sample temperature. }? {Applied -electric field}? {Applied magnetic field}? {External stress}? {Applied -pressure}? {Sample temperature. }? {Sample magnetic_field. }? {Sample -electric_field. }? {Sample stress_field. }? {Sample pressure. }? { Date -of the public release of the data. (file_time + X years)}? + +- `{Extended title for file}` +- `{Unique identifier for the experiment, defined by the facility, possibly linked to proposals (see: proposal_identifier below)}` +- `{Brief summary of the experiment, including key objectives.}` +- `{Description of the full experiment (document in PDF, LaTeX, etc.)}?` +- `{User or Data Acquisition-defined group of NeXus files or NXentry}?` +- `{Brief summary of the collection, including grouping criteria.}?` +- `{Unique identifier for the measurement, defined by the facility.}?` +- `{Starting time of measurement}` +- `{Ending time of measurement}` +- `{Duration of measurement (end_time - start_time)}?` +- `{Actual data collection time, excluding suspensions (e.g., temperature out of range)}?` +- `{Revision ID of the file (e.g., due to re-calibration, reprocessing, new analysis, new instrument definition format)}` +- `{Name of entry DTD}` +- `{Name of entry DTD}?` +- `{Name of program used to generate this file}` + +### User Information +- `{Name of user responsible for this entry}` +- `{Role of user (comma-separated list, e.g., "local_contact", "principal_investigator", "proposer", "experimenter", "funding_agency")}` +- `{Facility-based unique identifier for this person (e.g., identification code in the facility's address/contact database)}` + +### Instrument Information +- `{Name of instrument}` +- `{Brief description of the instrument}?` +- `{Name of source}` +- `{Source type: "Spallation Neutron Source" | "Pulsed Reactor Neutron Source" | "Reactor Neutron Source" | "Synchrotron X-ray Source" | "Pulsed Muon Source" | "Rotating Anode X-ray" | "Fixed Tube X-ray"}` +- `{Radiation type: neutron | x-ray | muon | electron}` + +### Sample Information +- `{Descriptive name of the sample}` +- `{Unique identifier for the sample in the experiment}` +- `{Description of the sample}?` +- `{Sample type: sample | sample+can | can | calibration sample | normalization sample | simulated data | none | sample environment}` +- `{Chemical formula (using CIF conventions)}?` +- `{Date of sample preparation}?` +- `{Atmosphere during experiment: air | vacuum | inert atmosphere | oxidizing atmosphere | reducing atmosphere | sealed can | other}` +- `{Sample temperature}?` +- `{Applied electric field}?` +- `{Applied magnetic field}?` +- `{External stress}?` +- `{Applied pressure}?` + +### Additional Metadata +- `{Public release date of the data (e.g., file_time + X years)}?` diff --git a/source/content/Associating_Axes_with_Data.rst b/source/content/Associating_Axes_with_Data.rst index 29683138..09544407 100644 --- a/source/content/Associating_Axes_with_Data.rst +++ b/source/content/Associating_Axes_with_Data.rst @@ -2,32 +2,36 @@ Associating Axes with Data ========================== +--- +title: Associating Axes with Data +permalink: Associating_Axes_with_Data.html +layout: wiki +--- ---- title: Associating Axes with Data permalink: -Associating_Axes_with_Data.html layout: wiki --- Associating Axes with -Data -------------------------- The current scheme we use in NeXus for -associating axes with data was mainly devised as a means to work around -a limitation of HDF-4. Namely the fact that there was one global -namespace for dimension scales. Dimension scales are HDF way of -associating axes with data by storing them as properties of the data. -Now, this limitation of HDF has since long fallen. Moreover there are a -number of use cases which are not well covered by what we do today. Thus -this page describes how to improve. Discussion comments should be placed -on the [ discussion](Talk:Associating_Axes_with_Data.html "wikilink") -page. ### Requirements This is a recapitulation of what we have to -achieve for a multidimensional dataset: - The axes give a plot meaning - -For data reduction or analysis we need to know exactly data was measured -in either the instrument or another coordinate system - There may be -different sets of axes for the same data in different coordinate -schemes. An example: raw time of flight binning versus the same axis -converted to energy transfer or d-spacing. - With multidimensional -scans, we may have scan intent axes (describing how the scan was -planned) and axes describing what really happened. Giving motor read -backs for each motor for each point in the multi dimensional dataset. -This situation can cause multiple axis fields for the data, one for each -variable varied in the multi dimensional scan. - Axes may or may not be -regular. Solution -------- See -[2014\\_axes\\_and\\_uncertainties](2014_axes_and_uncertainties.html -"wikilink") This proposal has been accepted by NIAC at NIAC 2014 with a -few modification. There is still some resistance to the new scheme, thus -this page stays in place. This update: 01/2015 +Associating Axes with Data +-------------------------- + +The current scheme we use in NeXus for associating axes with data was mainly devised as a means to work around a +limitation of HDF-4. Namely the fact that there was one global namespace for dimension scales. Dimension scales are +HDF's way of associating axes with data by storing them as properties of the data. Now, this limitation of HDF has +since long fallen. Moreover, there are a number of use cases which are not well covered by what we do today. Thus, +this page describes how to improve. Discussion comments should be placed on the discussion page. + +### Requirements + +This is a recapitulation of what we have to achieve for a multidimensional dataset: +- The axes give a plot meaning. +- For data reduction or analysis, we need to know exactly how data was measured in either the instrument or another +coordinate system. +- There may be different sets of axes for the same data in different coordinate schemes. An example: raw time of flight +binning versus the same axis converted to energy transfer or d-spacing. +- With multidimensional scans, we may have scan intent axes (describing how the scan was planned) and axes describing +what really happened. Giving motor readbacks for each motor for each point in the multidimensional dataset. This +situation can cause multiple axis fields for the data, one for each variable varied in the multidimensional scan. +- Axes may or may not be regular. + +Solution +-------- + +See 2014_axes_and_uncertainties. This proposal has been accepted by NIAC at NIAC 2014 with a few modifications. There +is still some resistance to the new scheme, thus this page stays in place. This update: 01/2015 \ No newline at end of file diff --git a/source/content/ConcordanceDiscussion.rst b/source/content/ConcordanceDiscussion.rst index 47c03520..f359d5f1 100644 --- a/source/content/ConcordanceDiscussion.rst +++ b/source/content/ConcordanceDiscussion.rst @@ -1,104 +1,128 @@ -===================== -ConcordanceDiscussion -===================== - - ---- title: ConcordanceDiscussion permalink: ConcordanceDiscussion.html -layout: wiki --- Concordance Summary =================== Last update: -July, 10, 2013, Mark Koennecke This document summarizes the problems -occurring when mapping CBF to NeXus how I see them from the discussion -with Herbert. In the following discussion all groups which are not NeXus -yet will be prefixed with TBD for To Be Discussed. This is the version -updated after the July, 10 teleconference. Further details on -[NeXus/HDF5/CBF Integration](https://sites.google.com/site/nexuscbf/) -The Variant Issue ================= CBF has the concept of variants for -fields. For example there is a field beam\\_center\\_x. This has somehow -been determined and written to file. Later this is refined in another -way. CBF stores this then as beam\\_center\\_x\\_variant. This concept -of variants is missing in NeXus. Another way to understand this is to -see it as a version control for values. However, as this is rarely used, -a complicated solution is not desirable. Another requirement is that it -must be possible to put similar tags on variables which change at the -same time. So far there are three options to remedy this: - A TBDvariant -group which can occur in all other groups and contains the variant -values with the same field names as in the parent group. This is felt to -be overkill. - Simply append \\_variant to the existing NeXus name. If -there is more then one variant append another qualifier to \\_variant. -For example: beam\\_center\\_x\\_variant\\_refined - As the request can -rather be understood as a means to keep track of old versions of values, -another option is this rule: When updating a value, update the value -with the NeXus name. Store the old value in a new field labelled with -nexusname\\_old\\_timestamp. Where nexusname is the original name of the -field, for example beam\\_center\\_x, and timestamp is a: timestamp like -2013-05-23. Great care has to be taken to create a timestamp format -which does not break the usability of the name as a field name in a -programming language. - Another idea is to append \\_var\\_N where N is -a number to the original NeXus field name and store the time stamp as an -attribute to the field. - Yet another idea: do not create new fields but -rather store the old values as variant attributes to the original field. -The Axisset Issue ================= NeXus chooses to document axis names -with a predefined meanings. The CBF people learned that this did not -work for them as people were using axes differently, could not be -bothered to even look which conventions others used etc. Thus they -choose rather to document axes by the way how they operate. And a given -component may even have more then one axes description associated with -it. NeXus goes a long way to support this with the recently added -offset, type, vector and depends\\_on attributes. But mapping the full -CBF scheme would require a TBDaxisset group which can occur in any -component which we care to place (sample, detector,...) This group could -look like this: TBDaxisset axis-name-or-id[NA] offset[3,NA] type[NA] -vector[3,NA] depends_on[NA] with NA being the number of axes. I can see -that such a scheme would also allow NeXus to neatly describe a given -data set in terms of different axis types: instrument coordinates, q -coordinates or whatever. At the Telco the agreement was that the current -NeXus scheme is sufficient to do the CBF mapping. But for further use, -it might be a good idea to reserve the namespace for axisset. It was -also felt that there to many ways to describe axes in NeXus and we -should discuss and aggree on a preferred way to do axes in an upcoming -NIAC meeting. The Scan Issue ============== NeXus chooses to store scans -as it is done, with the positions of components as read from the -hardware in arrays. CBF chooses to rather store the intent of the scan: -i.e. the axis moved, their start and increments etc. NeXus lacks such a -intent description. This already caused us problems because the intent -axes are nice for plotting and the actual positions as read are -necessary for detailed DA. Thus to capture the CBF description a new -group may be required: TBDscan_intent axis-name-or-id[NSA] start[NSA] -increment[NSA] NP with NSA being the Number of Scan Axes and NP the -number of points in the scan. May be some more fields. The agreement on -the NeXus Telco was that the recently aggreed upon axes scheme with the -attributes on the NX group is sufficient to do the CBF mapping. Again, -it might be worth to reserve the namespace. New Fields ========== This -may be a bit easier: the CBF mapping asks for a couple of fields to be -added to the NeXus base classes: NXxray_tube radiation_type -radiation_xray_symbol Radiation\\_type is different to probe. Probe -gives a very general description like neutrons, x-ray etc. This gives -the type of radiation like Cu Kalpha, Mo etc. The situation is further -complicated by the fact that even at synchrotrons wavelengths are -selected which match the characteristics of well known x-ray tube anode -materials. Thus, a NXxray\\_tube group may not be the appropriate place. -NXcollimator div_x_y_source radiation_filter_edge # May belong into a -NXfilter radiation_inhomegeneity # May belong into NXsource or -NXmonochromator CBF stores polarisation information of the beam in -NXmonochromator. It is an open question where this belongs: NXbeam, -NXpolariser or NXmonochromator being candidates. The fields: -polarisation_norm polarisation_ratio polarisation_source_norm -polarisation_source_ratio NXdetector gain gain_esd linerarity offset -scaling overload undefined_value Some of these fields address the -computed data value issue which we discussed some time ago. The last -state on this was that Armando was to make a proposal for calculated -data. Which, as far as I am aware, did not happen. CBF also has a -structure to describe the elements of a multi component detector. We -discussed something similar recently with the DECTRIS module . This was -then added a s a non NeXus standard group. May be we need to revise this -with input from CBF? The good news is that the proposed fields come with -documentation which we may directly copy from the CBF documents. -NXgoniometer ============ Consider the situaton when a sample is mounted -on some sort of positioning device: x-y tables, eulerian cradle -goniometer or such. The current NeXus convention is to store the values -coming from such positioning devices in the NXsample group. The -rationale is that their purpose is to position the sample. Now, the -suggestion is to separate such values out into a NXgoniometer group. -This unloads the sample group somewhat and makes for a cleaner -separation. Where in the NeXus hierarchy a NXgoniometer will be -positioned is another question to be discussed: NXsample or NXinstrument -both being good candidates. +ConcordanceDiscussion +===================== + +--- +title: ConcordanceDiscussion +permalink: ConcordanceDiscussion.html +layout: wiki +--- + +Concordance Summary +=================== +Last update: July, 10, 2013, Mark Koennecke + +This document summarizes the problems occurring when mapping CBF to NeXus how I see them from the discussion with +Herbert. In the following discussion all groups which are not NeXus yet will be prefixed with TBD for To Be Discussed. +This is the version updated after the July, 10 teleconference. Further details +on `NeXus/HDF5/CBF Integration `_ + +The Variant Issue +================= +CBF has the concept of variants for fields. For example there is a field `beam_center_x`. This has somehow been +determined and written to file. Later this is refined in another way. CBF stores this then as `beam_center_x_variant`. +This concept of variants is missing in NeXus. Another way to understand this is to see it as a version control for +values. However, as this is rarely used, a complicated solution is not desirable. Another requirement is that it must +be possible to put similar tags on variables which change at the same time. + +So far there are three options to remedy this: + +- A TBDvariant group which can occur in all other groups and contains the variant values with the same field names as in the parent group. This is felt to be overkill. +- Simply append `_variant` to the existing NeXus name. If there is more then one variant append another qualifier to `_variant`. For example: `beam_center_x_variant_refined` +- As the request can rather be understood as a means to keep track of old versions of values, another option is this rule: When updating a value, update the value with the NeXus name. Store the old value in a new field labelled with `nexusname_old_timestamp`. Where nexusname is the original name of the field, for example `beam_center_x`, and timestamp is a timestamp like 2013-05-23. Great care has to be taken to create a timestamp format which does not break the usability of the name as a field name in a programming language. +- Another idea is to append `_var_N` where N is a number to the original NeXus field name and store the time stamp as an attribute to the field. +- Yet another idea: do not create new fields but rather store the old values as variant attributes to the original field. + +The Axisset Issue +================= +NeXus chooses to document axis names with a predefined meanings. The CBF people learned that this did not work for them +as people were using axes differently, could not be bothered to even look which conventions others used etc. Thus they +choose rather to document axes by the way how they operate. And a given component may even have more then one axes +description associated with it. + +NeXus goes a long way to support this with the recently added `offset`, `type`, `vector` and `depends_on` attributes. +But mapping the full CBF scheme would require a TBDaxisset group which can occur in any component which we care to place +(sample, detector,...) + +This group could look like this: + + TBDaxisset + axis-name-or-id[NA] + offset[3,NA] + type[NA] + vector[3,NA] + depends_on[NA] + +with NA being the number of axes. I can see that such a scheme would also allow NeXus to neatly describe a given data +set in terms of different axis types: instrument coordinates, q coordinates or whatever. At the Telco the agreement was +that the current NeXus scheme is sufficient to do the CBF mapping. But for further use, it might be a good idea to +reserve the namespace for axisset. It was also felt that there to many ways to describe axes in NeXus and we should +discuss and agree on a preferred way to do axes in an upcoming NIAC meeting. + +The Scan Issue +============== +NeXus chooses to store scans as it is done, with the positions of components as read from the hardware in arrays. CBF +chooses to rather store the intent of the scan: i.e. the axis moved, their start and increments etc. NeXus lacks such a +intent description. This already caused us problems because the intent axes are nice for plotting and the actual +positions as read are necessary for detailed DA. Thus to capture the CBF description a new group may be required: + + TBDscan_intent + axis-name-or-id[NSA] + start[NSA] + increment[NSA] + NP + +with NSA being the Number of Scan Axes and NP the number of points in the scan. May be some more fields. The agreement +on the NeXus Telco was that the recently agreed upon axes scheme with the attributes on the NX group is sufficient to +do the CBF mapping. Again, it might be worth to reserve the namespace. + +New Fields +========== +This may be a bit easier: the CBF mapping asks for a couple of fields to be added to the NeXus base classes: + + NXxray_tube + radiation_type + radiation_xray_symbol + +Radiation_type is different to probe. Probe gives a very general description like neutrons, x-ray etc. This gives the +type of radiation like Cu Kalpha, Mo etc. The situation is further complicated by the fact that even at synchrotrons +wavelengths are selected which match the characteristics of well known x-ray tube anode materials. Thus, a NXxray_tube +group may not be the appropriate place. + + NXcollimator + div_x_y_source + radiation_filter_edge # May belong into a NXfilter + radiation_inhomegeneity # May belong into NXsource or NXmonochromator + +CBF stores polarisation information of the beam in NXmonochromator. It is an open question where this belongs: NXbeam, +NXpolariser or NXmonochromator being candidates. + +The fields: +- polarisation_norm +- polarisation_ratio +- polarisation_source_norm +- polarisation_source_ratio + + NXdetector + gain + gain_esd + linearity + offset + scaling + overload + undefined_value + +Some of these fields address the computed data value issue which we discussed some time ago. The last state on this was +that Armando was to make a proposal for calculated data. Which, as far as I am aware, did not happen. CBF also has a +structure to describe the elements of a multi component detector. We discussed something similar recently with the +DECTRIS module . This was then added as a non NeXus standard group. May be we need to revise this with input from CBF? +The good news is that the proposed fields come with documentation which we may directly copy from the CBF documents. + +NXgoniometer +============ +Consider the situation when a sample is mounted on some sort of positioning device: x-y tables, eulerian cradle +goniometer or such. The current NeXus convention is to store the values coming from such positioning devices in the +NXsample group. The rationale is that their purpose is to position the sample. + +Now, the suggestion is to separate such values out into a NXgoniometer group. This unloads the sample group somewhat +and makes for a cleaner separation. Where in the NeXus hierarchy a NXgoniometer will be positioned is another question +to be discussed: NXsample or NXinstrument both being good candidates. diff --git a/source/content/Connecting_NXdata_to_NXdetector.rst b/source/content/Connecting_NXdata_to_NXdetector.rst index f1a2ff39..158d258b 100644 --- a/source/content/Connecting_NXdata_to_NXdetector.rst +++ b/source/content/Connecting_NXdata_to_NXdetector.rst @@ -1,52 +1,62 @@ -=============================== Connecting NXdata to NXdetector =============================== +--- +title: Connecting NXdata to NXdetector +permalink: Connecting_NXdata_to_NXdetector.html +layout: wiki +--- + +This is an attempt to summarize the various proposals that have been discussed on this page. Proposal 1 is, I believe +(`Ray Osborn `_), the original proposal when NeXus was first designed (although we didn't link the +data item itself as Freddie has sensibly suggested). If anyone thinks that the remaining proposals have been incorrectly +summarized, please let the NeXus committee mailing list know as soon as possible. + +Proposal 1 +---------- +All the items within an NXdata group (data, errors, and axes) are stored as links to parent items stored in their logical +location (NXdetector, NXsample, etc). The absolute address of the parent item is stored as an attribute on the data, so +that other information can be conveniently located. + +This is the only proposal that addresses the issue of non-NXdetector axes. This method implies a one-to-one correspondence +of NXdata and NXdetector groups; the names do not need to match, though they could. Example: + +Proposal 2 +---------- +There is a one-to-one correspondence between NXdata groups and the corresponding NXdetector group, which should have the +same name to provide a logical association. Example: + +Proposal 3 +---------- +There is a one-to-one correspondence between NXdata groups and the corresponding NXdetector group. The NXdata group is +stored within its respective NXdetector group and linked to the NXentry. Example: + +Proposal 4 +---------- +There can be multiple NXdata groups for a single NXdetector group or multiple NXdetector groups for a single NXdata item +(e.g. to cope with groups of different types of detectors). Detector ID's are used to provide the link between the two. +Example: + +or + +Criteria of a Good Solution +--------------------------- +A proper solution should address the following: + +- Linking - should it be used as a method of saving space or carry relational information (associating things). +- Grouping information into NXdetectors in a logical manner. For example, an instrument may want to have a NXdetector for + each bank, or one for each panel, irrespective of how the NXdata is grouped. +- NXdata must be rectangular (lxm or lxmxn) so data that would be grouped together in the analysis needs to be split up to + conform to the standard. How should the data be associated with each other. +- How do you properly deal with multi-dimensional detectors, i.e. single-ended tubes AND linear position sensitive + detectors AND area detectors all used in the same measurement. + +Update 01/2015 +-------------- +This page is very old. I cannot remember that this has been decided upon. The current usage though is along the lines of +proposal 2: Multiple detectors give rise to multiple NXdetector and NXdata groups with preferably the same name. NXdata +is supposed to contain links to the relevant data items required for a default plot. There can be additional NXdata groups +for special purposes. See also the description of NXsubentry in the NeXus manual. ---- title: Connecting NXdata to NXdetector permalink: -Connecting_NXdata_to_NXdetector.html layout: wiki --- This is an attempt -to summarize the various proposals that have been discussed on this -page. Proposal 1 is, I believe ([Ray Osborn](User%3ARay_Osborn.html -"wikilink")), the original proposal when NeXus was first designed -(although we didn't link the data item itself as Freddie has sensibly -suggested). If anyone thinks that the remaining proposals have been -incorrectly summarized, please let the NeXus committee mailing list know -as soon as possible. Proposal 1 ---------- All the items within an -NXdata group (data, errors, and axes) are stored as links to parent -items stored in their logical location (NXdetector, NXsample, etc). The -absolute address of the parent item is stored as an attribute on the -data, so that other information can be conveniently located. This is the -only proposal that addresses the issue of non-NXdetector axes. This -method implies a one-to-one correspondence of NXdata and NXdetector -groups; the names do not need to match, though they could. Example: -Proposal 2 ---------- There is a one-to-one correspondence between -NXdata groups and the corresponding NXdetector group, which should have -the same name to provide a logical association. Example: Proposal 3 ----------- There is a one-to-one correspondence between NXdata groups -and the corresponding NXdetector group. The NXdata group is stored -within its respective NXdetector group and linked to the NXentry. -Example: Proposal 4 ---------- There can be multiple NXdata groups for a -single NXdetector group or multiple NXdetector groups for a single -NXdata item (e.g. to cope with groups of different types of detectors). -Detector ID's are used to provide the link between the two. Example: or -Criteria of a Good Solution --------------------------- A proper -solution should address the following: - Linking - should it be used as -a method of saving space or carry relational information (associating -things). - Grouping information into NXdetectors in a logical manner. -For example, an instrument may want to have a NXdetector for each bank, -or one for each panel, irrespective of how the NXdata is grouped. - -NXdata must be rectangular ( lxm or lxmxn so data that would be grouped -together in the analysis needs to be split up to conform to the -standard. How should the data be associated with each other. - How do -you properly deal with multi-dimensional detectors, i.e. single ended -tubes AND linear position sensitive detectors AND area detectors all -used in the same measurement. Update 01/2015 -------------- This page is -very old. I cannot remember that this has been decided upon. The current -usage though is along the lines of proposal 2: Multiple detectors give -rise to multiple NXdetector and NXdata groups with preferably the same -name. NXdata is supposed to contain links to the relevant data items -required for a default plot. There can be additional NXdata groups for -special purposes. See also the description of NXsubentry in the NeXus -manual. The above is valid for raw data NeXus files. In processed data -NeXus files NXdata has a different meaning and contains the actual -resulting processed data. +The above is valid for raw data NeXus files. In processed data NeXus files, NXdata has a different meaning and contains +the actual resulting processed data. diff --git a/source/content/Containers_and_Inheritance.rst b/source/content/Containers_and_Inheritance.rst index eee6e37a..61311e11 100644 --- a/source/content/Containers_and_Inheritance.rst +++ b/source/content/Containers_and_Inheritance.rst @@ -2,53 +2,58 @@ Containers and Inheritance ========================== +--- title: Containers and Inheritance permalink: Containers_and_Inheritance.html layout: wiki --- +*Currently Under Construction - will be linked to the discussion page when reviewed and completed* +This page presents how neXus could benefit from an object/container-orientated approach to its user +defined instrument definitions. By allowing base user definitions for components, datasets from full +datasets can be expressed as a sum of components. The XSLT standard and XQuery are methods that can +possibly realize the extraction of data from one or more XML based neXus definition and create a new +neXus XML document as desired. ---- title: Containers and Inheritance permalink: -Containers_and_Inheritance.html layout: wiki --- \*Currently Under -Construction - will be linked to the discussion page when reviewed and -completed\* This page presents how neXus could benefit from an -object/container-orientated approach to its user defined instrument -definitions. By allowing base user definitions for components, datasets -from from full datasets can be expressed as a sum of components. The -XSLT standard and XQuery are methods that can possibly realize the -extraction of data from one or more XML based neXus definition and -create a new neXus XML document as desired. Relationship between -Inheritance and Containers in a neXus dataset +Relationship between Inheritance and Containers in a neXus dataset ------------------------------------------------------------------ -![](COP_neXus_slide1.PNG "COP_neXus_slide1.PNG") Instrument -definitions can be assembled in a multitude of ways using the neXus -predefined classes. An instrument definitions are most often is a -superset of discrete components, with additional information which that -is general to all instrument definitions. The data contained in a data -set can be described via the has a/is a relationship encountered in -object orientated programming. Traits that are inherent to all data sets -in the neXus format can be inherited from a parent class. This would be -an is a relation, as the data set is a set of neXus data, and has -such properties. A dataset is also a container, and thus contain small -data subsets, usually base neXus classes. This is a has a + +.. image:: ../extra_files/COP_neXus_slide1.PNG + :alt: ../extra_files/COP_neXus_slide1.PNG + +Instrument definitions can be assembled in a multitude of ways using the neXus predefined classes. +An instrument definitions are most often is a superset of discrete components, with additional +information which that is general to all instrument definitions. The data contained in a data set can +be described via the has a/is a relationship encountered in object orientated programming. Traits that +are inherent to all data sets in the neXus format can be inherited from a parent class. This would be +an is a relation, as the data set is a set of neXus data, and has such properties. A dataset is also +a container, and thus contain small data subsets, usually base neXus classes. This is a has a relationship, as a container has a data subset. + ------------------------------------------------------------------------ -![](COP_neXus_slide2.PNG "COP_neXus_slide2.PNG") What is of interest in -this discussion is the has a relationship. A parent data set acts as a -container for many simpler datasets. If these subsets are specified -independently, a greater deal of compatibility and standardization can -be achieved between software written by vendors, scientists and -engineers working on different aspects of a project. XLST, Xquery, or a -similar XML transform standard can be used to realize this type of -conversion in practice. user-defined component types can be shared -amoung multiple experiment types + +.. image:: ../extra_files/COP_neXus_slide2.PNG + :alt: ../extra_files/COP_neXus_slide2.PNG + +What is of interest in this discussion is the has a relationship. A parent data set acts as a +container for many simpler datasets. If these subsets are specified independently, a greater deal of +compatibility and standardization can be achieved between software written by vendors, scientists +and engineers working on different aspects of a project. XLST, Xquery, or a similar XML transform +standard can be used to realize this type of conversion in practice. user-defined component types +can be shared amoung multiple experiment types. + --------------------------------------------------------------------------- -![](COP_neXus_slide3.PNG "COP_neXus_slide3.PNG") Independent component -definitions allow vastly different experiments to share common equipment -or data, without having to redefine the data type for each experiment. -An equpiment or data library can have, in itself, a standard format. -User-defined components can be inherited by more specific user -components + +.. image:: ../extra_files/COP_neXus_slide3.PNG + :alt: ../extra_files/COP_neXus_slide3.PNG + +Independent component definitions allow vastly different experiments to share common equipment or +data, without having to redefine the data type for each experiment. An equipment or data library +can have, in itself, a standard format. User-defined components can be inherited by more specific +user components. + ------------------------------------------------------------------------- -![](COP_neXus_slide4.PNG "COP_neXus_slide4.PNG") Should additional data -be needed for a more complicated equipment or data library, it can -inherent the previous definition, and add additional information. This -allows experiments that only require a basic component definition to -also use datasets that have additional data appended. --[Greg -Sonnenfeld](User%3AGreg_Sonnenfeld.html "wikilink") 15:22, 27 January -2007 (UTC) + +.. image:: ../extra_files/COP_neXus_slide4.PNG + :alt: ../extra_files/COP_neXus_slide4.PNG + +Should additional data be needed for a more complicated equipment or data library, it can inherit +the previous definition, and add additional information. This allows experiments that only require +a basic component definition to also use datasets that have additional data appended. + +--[Greg Sonnenfeld](User%3AGreg_Sonnenfeld.html "wikilink") 15:22, 27 January 2007 (UTC) diff --git a/source/content/DLSraw.rst b/source/content/DLSraw.rst index 7b420a85..5167588d 100644 --- a/source/content/DLSraw.rst +++ b/source/content/DLSraw.rst @@ -1,101 +1,520 @@ -====== DLSraw ====== +.. code-block:: xml + + + + + + + + + {Extended title for entry}? + + {unique identifier for the experiment, defined by the facility, possibly + linked to the proposals}? + + + {Number of run or scan stored in this entry}? + + + {}? + + + + + { Date of the public release of the data. (file_time + X years)} + + + { Revision id of the file due to re-calibration, reprocessing + new analysis, new instrument definition format, ... } + + + { Reason for the new revision. (e.g. first revision, re-calibration, ) } + + + + + {Name of entry DTD}? + + + {Name of entry DTD}? + + + {Name of entry DTD}? + + + + + {Starting time of measurement}? + + + {Ending time of measurement}? + + + {Duration of measurement (end_time - start_time)}? + + + {Time transpired actually collecting data i.e. taking out time when + collection was suspended due to e.g. temperature out of range}? + + + + + {information on the reliability/source of the information provided by + the experimenter. (e.g.: From proposal, updated at experiment time, ...} + + + + + {Keyword domain (e.g. chemistry, astronomy, ecology, ...)}? + + + {Keywords defined for this study}? + + + {A pointer to a reference work providing the definition of the + restricted vocabulary of which the keyword list is a subset}? + + + {Subject categorisations for this study}? + + + {Brief summary of the experiment, including key objectives}? + + + {Description of the full experiment (document in pdf, latex, ...)}? + + + {Special requirements of instrument}? + + + {List of publications related to the proposal}? + + + {Facility access type (normal, rapid access, program access, ...)}? + + + {Identifier of the funding grant}? + + + + + + {Name of program used to generate this file}? + + + {Name of command line used to generate this file}? + + + + + + + + {Descriptive name of the input data} + + + {Uniform Resource Identifier of the input data} + + + + + {Notes describing entry}? + + + {An small image that is representative of the entry.} {An example of + this is a 640x480 jpeg image automatically produced by a low resolution + plot of the NXdata.}? + + + + + 1+ + + {Name of user responsible for this entry} + + + {role of user responsible for this entry, comma separated list} + {Suggested roles are "local_contact", "principal_investigator", + "proposer", "experimenter", "funding_agency"} + + + {Affiliation of user}? + +