diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt index d4f84091f1df6f8075374ddf7d9f686b262d42fb..b19bc5756d7283c1e0015f7bb9f1f78483055034 100644 --- a/bin/CMakeLists.txt +++ b/bin/CMakeLists.txt @@ -1,3 +1,3 @@ # $Id$ -lofar_add_bin_scripts(generatesip feedback2sip) +lofar_add_bin_scripts(generatesip feedback2sip validatesip) diff --git a/bin/validatesip b/bin/validatesip new file mode 100644 index 0000000000000000000000000000000000000000..b2548323b6f33ad37bb9227a2210584ab598e6f2 --- /dev/null +++ b/bin/validatesip @@ -0,0 +1,10 @@ +#!/usr/bin/python + +from lofar.lta.sip.validator import main +import sys + + +XSD_PATH = "/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd" # # todo fix path for distribution + +if __name__ == '__main__': + main(sys.argv[1], XSD_PATH) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 00dedb6b092d2fff6320ff6e3cb3e205a3cf78ad..a40a5282bdc2c7d2bc16a85fe6b74639e61096cf 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -6,8 +6,11 @@ include(PythonInstall) set(_py_files __init__.py siplib.py + ltasip.py feedback.py validator.py + constants.py + station_coordinates.conf ) python_install(${_py_files} diff --git a/lib/ltasip.py b/lib/ltasip.py index 1666f3aa34db18a3d5676eb5a9e4f7af9f8af657..cbd5ac8415d540e1fff40208f6791f0ec6c0e59a 100644 --- a/lib/ltasip.py +++ b/lib/ltasip.py @@ -1,7 +1,7 @@ # ./ltasip.py # -*- coding: utf-8 -*- # PyXB bindings for NM:4d7a8ef1458fc65d34d2aea044869f9c907a2072 -# Generated 2016-06-09 09:18:35.117957 by PyXB version 1.2.4 using Python 2.7.6.final.0 +# Generated 2016-06-28 17:11:54.444316 by PyXB version 1.2.5-DEV using Python 2.7.6.final.0 # Namespace http://www.astron.nl/SIP-Lofar from __future__ import unicode_literals @@ -13,16 +13,19 @@ import pyxb.utils.utility import pyxb.utils.domutils import sys import pyxb.utils.six as _six - # Unique identifier for bindings created at the same time -_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:60ae2b16-2e12-11e6-a2c3-28d2444d27e5') +_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:a5eb6646-3d42-11e6-961f-28d2444d27e5') # Version of PyXB used to generate the bindings -_PyXBVersion = '1.2.4' +_PyXBVersion = '1.2.5-DEV' # Generated bindings are not compatible across PyXB versions if pyxb.__version__ != _PyXBVersion: raise pyxb.PyXBVersionError(_PyXBVersion) +# A holder for module-level binding classes so we can access them from +# inside class definitions where property names may conflict. +_module_typeBindings = pyxb.utils.utility.Object() + # Import bindings for namespaces imported into schema import pyxb.binding.datatypes @@ -88,6 +91,7 @@ FrequencyUnit.MHz = FrequencyUnit._CF_enumeration.addEnumeration(unicode_value=' FrequencyUnit.GHz = FrequencyUnit._CF_enumeration.addEnumeration(unicode_value='GHz', tag='GHz') FrequencyUnit._InitializeFacetMap(FrequencyUnit._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'FrequencyUnit', FrequencyUnit) +_module_typeBindings.FrequencyUnit = FrequencyUnit # Atomic simple type: {http://www.astron.nl/SIP-Lofar}LengthUnit class LengthUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -102,6 +106,7 @@ LengthUnit.m = LengthUnit._CF_enumeration.addEnumeration(unicode_value='m', tag= LengthUnit.km = LengthUnit._CF_enumeration.addEnumeration(unicode_value='km', tag='km') LengthUnit._InitializeFacetMap(LengthUnit._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'LengthUnit', LengthUnit) +_module_typeBindings.LengthUnit = LengthUnit # Atomic simple type: {http://www.astron.nl/SIP-Lofar}TimeUnit class TimeUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -118,6 +123,7 @@ TimeUnit.us = TimeUnit._CF_enumeration.addEnumeration(unicode_value='us', tag='u TimeUnit.ns = TimeUnit._CF_enumeration.addEnumeration(unicode_value='ns', tag='ns') TimeUnit._InitializeFacetMap(TimeUnit._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'TimeUnit', TimeUnit) +_module_typeBindings.TimeUnit = TimeUnit # Atomic simple type: {http://www.astron.nl/SIP-Lofar}AngleUnit class AngleUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -133,6 +139,7 @@ AngleUnit.degrees = AngleUnit._CF_enumeration.addEnumeration(unicode_value='degr AngleUnit.arcsec = AngleUnit._CF_enumeration.addEnumeration(unicode_value='arcsec', tag='arcsec') AngleUnit._InitializeFacetMap(AngleUnit._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'AngleUnit', AngleUnit) +_module_typeBindings.AngleUnit = AngleUnit # Atomic simple type: {http://www.astron.nl/SIP-Lofar}PixelUnit class PixelUnit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -146,6 +153,7 @@ PixelUnit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=Pi PixelUnit.Jybeam = PixelUnit._CF_enumeration.addEnumeration(unicode_value='Jy/beam', tag='Jybeam') PixelUnit._InitializeFacetMap(PixelUnit._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'PixelUnit', PixelUnit) +_module_typeBindings.PixelUnit = PixelUnit # List simple type: {http://www.astron.nl/SIP-Lofar}ListOfDouble # superclasses pyxb.binding.datatypes.anySimpleType @@ -160,6 +168,7 @@ class ListOfDouble (pyxb.binding.basis.STD_list): _ItemType = pyxb.binding.datatypes.double ListOfDouble._InitializeFacetMap() Namespace.addCategoryObject('typeBinding', 'ListOfDouble', ListOfDouble) +_module_typeBindings.ListOfDouble = ListOfDouble # List simple type: {http://www.astron.nl/SIP-Lofar}ListOfString # superclasses pyxb.binding.datatypes.anySimpleType @@ -174,6 +183,7 @@ class ListOfString (pyxb.binding.basis.STD_list): _ItemType = pyxb.binding.datatypes.string ListOfString._InitializeFacetMap() Namespace.addCategoryObject('typeBinding', 'ListOfString', ListOfString) +_module_typeBindings.ListOfString = ListOfString # List simple type: {http://www.astron.nl/SIP-Lofar}ListOfSubbands # superclasses pyxb.binding.datatypes.anySimpleType @@ -188,6 +198,7 @@ class ListOfSubbands (pyxb.binding.basis.STD_list): _ItemType = pyxb.binding.datatypes.unsignedShort ListOfSubbands._InitializeFacetMap() Namespace.addCategoryObject('typeBinding', 'ListOfSubbands', ListOfSubbands) +_module_typeBindings.ListOfSubbands = ListOfSubbands # Atomic simple type: {http://www.astron.nl/SIP-Lofar}EquinoxType class EquinoxType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -204,6 +215,7 @@ EquinoxType.SUN = EquinoxType._CF_enumeration.addEnumeration(unicode_value='SUN' EquinoxType.JUPITER = EquinoxType._CF_enumeration.addEnumeration(unicode_value='JUPITER', tag='JUPITER') EquinoxType._InitializeFacetMap(EquinoxType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'EquinoxType', EquinoxType) +_module_typeBindings.EquinoxType = EquinoxType # Atomic simple type: [anonymous] class STD_ANON (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -218,6 +230,7 @@ STD_ANON.WGS84 = STD_ANON._CF_enumeration.addEnumeration(unicode_value='WGS84', STD_ANON.ITRF2000 = STD_ANON._CF_enumeration.addEnumeration(unicode_value='ITRF2000', tag='ITRF2000') STD_ANON.ITRF2005 = STD_ANON._CF_enumeration.addEnumeration(unicode_value='ITRF2005', tag='ITRF2005') STD_ANON._InitializeFacetMap(STD_ANON._CF_enumeration) +_module_typeBindings.STD_ANON = STD_ANON # Atomic simple type: {http://www.astron.nl/SIP-Lofar}AntennaFieldType class AntennaFieldType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -234,6 +247,7 @@ AntennaFieldType.HBA = AntennaFieldType._CF_enumeration.addEnumeration(unicode_v AntennaFieldType.LBA = AntennaFieldType._CF_enumeration.addEnumeration(unicode_value='LBA', tag='LBA') AntennaFieldType._InitializeFacetMap(AntennaFieldType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'AntennaFieldType', AntennaFieldType) +_module_typeBindings.AntennaFieldType = AntennaFieldType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}StationTypeType class StationTypeType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -249,6 +263,7 @@ StationTypeType.Remote = StationTypeType._CF_enumeration.addEnumeration(unicode_ StationTypeType.International = StationTypeType._CF_enumeration.addEnumeration(unicode_value='International', tag='International') StationTypeType._InitializeFacetMap(StationTypeType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'StationTypeType', StationTypeType) +_module_typeBindings.StationTypeType = StationTypeType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}ProcessRelationType class ProcessRelationType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -262,6 +277,7 @@ ProcessRelationType._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_d ProcessRelationType.GroupID = ProcessRelationType._CF_enumeration.addEnumeration(unicode_value='GroupID', tag='GroupID') ProcessRelationType._InitializeFacetMap(ProcessRelationType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'ProcessRelationType', ProcessRelationType) +_module_typeBindings.ProcessRelationType = ProcessRelationType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}FilterSelectionType class FilterSelectionType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -281,6 +297,7 @@ FilterSelectionType.n170_230_MHz = FilterSelectionType._CF_enumeration.addEnumer FilterSelectionType.n210_250_MHz = FilterSelectionType._CF_enumeration.addEnumeration(unicode_value='210-250 MHz', tag='n210_250_MHz') FilterSelectionType._InitializeFacetMap(FilterSelectionType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'FilterSelectionType', FilterSelectionType) +_module_typeBindings.FilterSelectionType = FilterSelectionType # Atomic simple type: [anonymous] class STD_ANON_ (pyxb.binding.datatypes.double, pyxb.binding.basis.enumeration_mixin): @@ -294,6 +311,7 @@ STD_ANON_._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=ST STD_ANON_._CF_enumeration.addEnumeration(unicode_value='160', tag=None) STD_ANON_._CF_enumeration.addEnumeration(unicode_value='200', tag=None) STD_ANON_._InitializeFacetMap(STD_ANON_._CF_enumeration) +_module_typeBindings.STD_ANON_ = STD_ANON_ # Atomic simple type: {http://www.astron.nl/SIP-Lofar}AntennaSetType class AntennaSetType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -320,6 +338,7 @@ AntennaSetType.HBA_Dual_Inner = AntennaSetType._CF_enumeration.addEnumeration(un AntennaSetType.HBA_Joined_Inner = AntennaSetType._CF_enumeration.addEnumeration(unicode_value='HBA Joined Inner', tag='HBA_Joined_Inner') AntennaSetType._InitializeFacetMap(AntennaSetType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'AntennaSetType', AntennaSetType) +_module_typeBindings.AntennaSetType = AntennaSetType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}StationSelectionType class StationSelectionType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -337,6 +356,7 @@ StationSelectionType.International = StationSelectionType._CF_enumeration.addEnu StationSelectionType.Custom = StationSelectionType._CF_enumeration.addEnumeration(unicode_value='Custom', tag='Custom') StationSelectionType._InitializeFacetMap(StationSelectionType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'StationSelectionType', StationSelectionType) +_module_typeBindings.StationSelectionType = StationSelectionType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}ObservingModeType class ObservingModeType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -356,6 +376,7 @@ ObservingModeType.Non_Standard = ObservingModeType._CF_enumeration.addEnumeratio ObservingModeType.Unknown = ObservingModeType._CF_enumeration.addEnumeration(unicode_value='Unknown', tag='Unknown') ObservingModeType._InitializeFacetMap(ObservingModeType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'ObservingModeType', ObservingModeType) +_module_typeBindings.ObservingModeType = ObservingModeType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}TimeSystemType class TimeSystemType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -370,6 +391,7 @@ TimeSystemType.UTC = TimeSystemType._CF_enumeration.addEnumeration(unicode_value TimeSystemType.LST = TimeSystemType._CF_enumeration.addEnumeration(unicode_value='LST', tag='LST') TimeSystemType._InitializeFacetMap(TimeSystemType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'TimeSystemType', TimeSystemType) +_module_typeBindings.TimeSystemType = TimeSystemType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}ProcessingType class ProcessingType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -387,6 +409,7 @@ ProcessingType.Flys_Eye = ProcessingType._CF_enumeration.addEnumeration(unicode_ ProcessingType.Non_Standard = ProcessingType._CF_enumeration.addEnumeration(unicode_value='Non Standard', tag='Non_Standard') ProcessingType._InitializeFacetMap(ProcessingType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'ProcessingType', ProcessingType) +_module_typeBindings.ProcessingType = ProcessingType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}MeasurementType class MeasurementType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -405,6 +428,7 @@ MeasurementType.All_Sky = MeasurementType._CF_enumeration.addEnumeration(unicode MeasurementType.Miscellaneous = MeasurementType._CF_enumeration.addEnumeration(unicode_value='Miscellaneous', tag='Miscellaneous') MeasurementType._InitializeFacetMap(MeasurementType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'MeasurementType', MeasurementType) +_module_typeBindings.MeasurementType = MeasurementType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}PulsarSelectionType class PulsarSelectionType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -425,6 +449,7 @@ PulsarSelectionType.Pulsars_in_observation_specs_file_and_brightest_in_SAP_and_T PulsarSelectionType.Specified_pulsar_list = PulsarSelectionType._CF_enumeration.addEnumeration(unicode_value='Specified pulsar list', tag='Specified_pulsar_list') PulsarSelectionType._InitializeFacetMap(PulsarSelectionType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'PulsarSelectionType', PulsarSelectionType) +_module_typeBindings.PulsarSelectionType = PulsarSelectionType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}DataProductType class DataProductType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -450,6 +475,7 @@ DataProductType.Non_Standard = DataProductType._CF_enumeration.addEnumeration(un DataProductType.Unknown = DataProductType._CF_enumeration.addEnumeration(unicode_value='Unknown', tag='Unknown') DataProductType._InitializeFacetMap(DataProductType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'DataProductType', DataProductType) +_module_typeBindings.DataProductType = DataProductType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}ChecksumAlgorithm class ChecksumAlgorithm (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -464,6 +490,7 @@ ChecksumAlgorithm.MD5 = ChecksumAlgorithm._CF_enumeration.addEnumeration(unicode ChecksumAlgorithm.Adler32 = ChecksumAlgorithm._CF_enumeration.addEnumeration(unicode_value='Adler32', tag='Adler32') ChecksumAlgorithm._InitializeFacetMap(ChecksumAlgorithm._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'ChecksumAlgorithm', ChecksumAlgorithm) +_module_typeBindings.ChecksumAlgorithm = ChecksumAlgorithm # Atomic simple type: {http://www.astron.nl/SIP-Lofar}FileFormatType class FileFormatType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -480,6 +507,7 @@ FileFormatType.HDF5 = FileFormatType._CF_enumeration.addEnumeration(unicode_valu FileFormatType.PULP = FileFormatType._CF_enumeration.addEnumeration(unicode_value='PULP', tag='PULP') FileFormatType._InitializeFacetMap(FileFormatType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'FileFormatType', FileFormatType) +_module_typeBindings.FileFormatType = FileFormatType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}PolarizationType class PolarizationType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -509,6 +537,7 @@ PolarizationType.Yre = PolarizationType._CF_enumeration.addEnumeration(unicode_v PolarizationType.Yim = PolarizationType._CF_enumeration.addEnumeration(unicode_value='Yim', tag='Yim') PolarizationType._InitializeFacetMap(PolarizationType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'PolarizationType', PolarizationType) +_module_typeBindings.PolarizationType = PolarizationType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}PulsarPipelineDataType class PulsarPipelineDataType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -527,6 +556,7 @@ PulsarPipelineDataType.SummaryIncoherentStokes = PulsarPipelineDataType._CF_enum PulsarPipelineDataType.SummaryComplexVoltages = PulsarPipelineDataType._CF_enumeration.addEnumeration(unicode_value='SummaryComplexVoltages', tag='SummaryComplexVoltages') PulsarPipelineDataType._InitializeFacetMap(PulsarPipelineDataType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'PulsarPipelineDataType', PulsarPipelineDataType) +_module_typeBindings.PulsarPipelineDataType = PulsarPipelineDataType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}RaDecSystem class RaDecSystem (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -544,6 +574,7 @@ RaDecSystem.FK4_NO_E = RaDecSystem._CF_enumeration.addEnumeration(unicode_value= RaDecSystem.GAPPT = RaDecSystem._CF_enumeration.addEnumeration(unicode_value='GAPPT', tag='GAPPT') RaDecSystem._InitializeFacetMap(RaDecSystem._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'RaDecSystem', RaDecSystem) +_module_typeBindings.RaDecSystem = RaDecSystem # Atomic simple type: {http://www.astron.nl/SIP-Lofar}LocationFrame class LocationFrame (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -565,6 +596,7 @@ LocationFrame.LOCAL_GROUP = LocationFrame._CF_enumeration.addEnumeration(unicode LocationFrame.RELOCATABLE = LocationFrame._CF_enumeration.addEnumeration(unicode_value='RELOCATABLE', tag='RELOCATABLE') LocationFrame._InitializeFacetMap(LocationFrame._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'LocationFrame', LocationFrame) +_module_typeBindings.LocationFrame = LocationFrame # Atomic simple type: {http://www.astron.nl/SIP-Lofar}SpectralQuantityType class SpectralQuantityType (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -587,6 +619,7 @@ SpectralQuantityType.WaveLengthAir = SpectralQuantityType._CF_enumeration.addEnu SpectralQuantityType.BetaFactor = SpectralQuantityType._CF_enumeration.addEnumeration(unicode_value='BetaFactor', tag='BetaFactor') SpectralQuantityType._InitializeFacetMap(SpectralQuantityType._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'SpectralQuantityType', SpectralQuantityType) +_module_typeBindings.SpectralQuantityType = SpectralQuantityType # Atomic simple type: {http://www.astron.nl/SIP-Lofar}Telescope class Telescope (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin): @@ -600,6 +633,7 @@ Telescope._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=Te Telescope.LOFAR = Telescope._CF_enumeration.addEnumeration(unicode_value='LOFAR', tag='LOFAR') Telescope._InitializeFacetMap(Telescope._CF_enumeration) Namespace.addCategoryObject('typeBinding', 'Telescope', Telescope) +_module_typeBindings.Telescope = Telescope # Complex type {http://www.astron.nl/SIP-Lofar}ListOfFrequencies with content type ELEMENT_ONLY class ListOfFrequencies (pyxb.binding.basis.complexTypeDefinition): @@ -633,6 +667,7 @@ class ListOfFrequencies (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.ListOfFrequencies = ListOfFrequencies Namespace.addCategoryObject('typeBinding', 'ListOfFrequencies', ListOfFrequencies) @@ -676,6 +711,7 @@ class IdentifierType (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.IdentifierType = IdentifierType Namespace.addCategoryObject('typeBinding', 'IdentifierType', IdentifierType) @@ -735,6 +771,7 @@ class Pointing (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Pointing = Pointing Namespace.addCategoryObject('typeBinding', 'Pointing', Pointing) @@ -810,6 +847,7 @@ class Coordinates (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Coordinates = Coordinates Namespace.addCategoryObject('typeBinding', 'Coordinates', Coordinates) @@ -845,6 +883,7 @@ class AntennaField (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.AntennaField = AntennaField Namespace.addCategoryObject('typeBinding', 'AntennaField', AntennaField) @@ -872,6 +911,7 @@ class Stations (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Stations = Stations Namespace.addCategoryObject('typeBinding', 'Stations', Stations) @@ -915,6 +955,7 @@ class Station (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Station = Station Namespace.addCategoryObject('typeBinding', 'Station', Station) @@ -958,6 +999,7 @@ class ProcessRelation (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.ProcessRelation = ProcessRelation Namespace.addCategoryObject('typeBinding', 'ProcessRelation', ProcessRelation) @@ -985,6 +1027,7 @@ class ProcessRelations (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.ProcessRelations = ProcessRelations Namespace.addCategoryObject('typeBinding', 'ProcessRelations', ProcessRelations) @@ -1068,6 +1111,7 @@ class Process (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Process = Process Namespace.addCategoryObject('typeBinding', 'Process', Process) @@ -1127,6 +1171,7 @@ class Processing (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Processing = Processing Namespace.addCategoryObject('typeBinding', 'Processing', Processing) @@ -1154,6 +1199,7 @@ class RealTimeProcess (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.RealTimeProcess = RealTimeProcess Namespace.addCategoryObject('typeBinding', 'RealTimeProcess', RealTimeProcess) @@ -1181,6 +1227,7 @@ class TransientBufferBoardEvents (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.TransientBufferBoardEvents = TransientBufferBoardEvents Namespace.addCategoryObject('typeBinding', 'TransientBufferBoardEvents', TransientBufferBoardEvents) @@ -1208,6 +1255,7 @@ class TransientBufferBoardEvent (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.TransientBufferBoardEvent = TransientBufferBoardEvent Namespace.addCategoryObject('typeBinding', 'TransientBufferBoardEvent', TransientBufferBoardEvent) @@ -1235,6 +1283,7 @@ class SubArrayPointings (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.SubArrayPointings = SubArrayPointings Namespace.addCategoryObject('typeBinding', 'SubArrayPointings', SubArrayPointings) @@ -1358,6 +1407,7 @@ class SubArrayPointing (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.SubArrayPointing = SubArrayPointing Namespace.addCategoryObject('typeBinding', 'SubArrayPointing', SubArrayPointing) @@ -1388,6 +1438,7 @@ class DataSources (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.DataSources = DataSources Namespace.addCategoryObject('typeBinding', 'DataSources', DataSources) @@ -1423,6 +1474,7 @@ class ChecksumType (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.ChecksumType = ChecksumType Namespace.addCategoryObject('typeBinding', 'ChecksumType', ChecksumType) @@ -1458,6 +1510,7 @@ class TBBTrigger (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.TBBTrigger = TBBTrigger Namespace.addCategoryObject('typeBinding', 'TBBTrigger', TBBTrigger) @@ -1541,6 +1594,7 @@ class DataProduct (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.DataProduct = DataProduct Namespace.addCategoryObject('typeBinding', 'DataProduct', DataProduct) @@ -1568,6 +1622,7 @@ class ArrayBeams (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.ArrayBeams = ArrayBeams Namespace.addCategoryObject('typeBinding', 'ArrayBeams', ArrayBeams) @@ -1667,6 +1722,7 @@ class ArrayBeam (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.ArrayBeam = ArrayBeam Namespace.addCategoryObject('typeBinding', 'ArrayBeam', ArrayBeam) @@ -1718,6 +1774,7 @@ class Axis (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Axis = Axis Namespace.addCategoryObject('typeBinding', 'Axis', Axis) @@ -1738,6 +1795,7 @@ class Coordinate (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Coordinate = Coordinate Namespace.addCategoryObject('typeBinding', 'Coordinate', Coordinate) @@ -1773,6 +1831,7 @@ class SpectralQuantity (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.SpectralQuantity = SpectralQuantity Namespace.addCategoryObject('typeBinding', 'SpectralQuantity', SpectralQuantity) @@ -1808,6 +1867,7 @@ class Parset (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Parset = Parset Namespace.addCategoryObject('typeBinding', 'Parset', Parset) @@ -1875,6 +1935,7 @@ class Project (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.Project = Project Namespace.addCategoryObject('typeBinding', 'Project', Project) @@ -1958,6 +2019,7 @@ class LTASip (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ }) +_module_typeBindings.LTASip = LTASip Namespace.addCategoryObject('typeBinding', 'LTASip', LTASip) @@ -1974,7 +2036,7 @@ class Frequency (pyxb.binding.basis.complexTypeDefinition): # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units - __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Frequency_units', FrequencyUnit, required=True) + __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Frequency_units', _module_typeBindings.FrequencyUnit, required=True) __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 35, 4) __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 35, 4) @@ -1986,6 +2048,7 @@ class Frequency (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ __units.name() : __units }) +_module_typeBindings.Frequency = Frequency Namespace.addCategoryObject('typeBinding', 'Frequency', Frequency) @@ -2002,7 +2065,7 @@ class Length (pyxb.binding.basis.complexTypeDefinition): # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units - __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Length_units', LengthUnit, required=True) + __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Length_units', _module_typeBindings.LengthUnit, required=True) __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 48, 4) __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 48, 4) @@ -2014,6 +2077,7 @@ class Length (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ __units.name() : __units }) +_module_typeBindings.Length = Length Namespace.addCategoryObject('typeBinding', 'Length', Length) @@ -2030,7 +2094,7 @@ class Time (pyxb.binding.basis.complexTypeDefinition): # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units - __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Time_units', TimeUnit, required=True) + __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Time_units', _module_typeBindings.TimeUnit, required=True) __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 63, 4) __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 63, 4) @@ -2042,6 +2106,7 @@ class Time (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ __units.name() : __units }) +_module_typeBindings.Time = Time Namespace.addCategoryObject('typeBinding', 'Time', Time) @@ -2058,7 +2123,7 @@ class Angle (pyxb.binding.basis.complexTypeDefinition): # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units - __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Angle_units', AngleUnit, required=True) + __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Angle_units', _module_typeBindings.AngleUnit, required=True) __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 77, 4) __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 77, 4) @@ -2070,6 +2135,7 @@ class Angle (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ __units.name() : __units }) +_module_typeBindings.Angle = Angle Namespace.addCategoryObject('typeBinding', 'Angle', Angle) @@ -2086,7 +2152,7 @@ class Pixel (pyxb.binding.basis.complexTypeDefinition): # Base type is pyxb.binding.datatypes.double # Attribute units uses Python identifier units - __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Pixel_units', PixelUnit, required=True) + __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Pixel_units', _module_typeBindings.PixelUnit, required=True) __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 89, 4) __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 89, 4) @@ -2098,6 +2164,7 @@ class Pixel (pyxb.binding.basis.complexTypeDefinition): _AttributeMap.update({ __units.name() : __units }) +_module_typeBindings.Pixel = Pixel Namespace.addCategoryObject('typeBinding', 'Pixel', Pixel) @@ -2277,6 +2344,7 @@ class Observation (Process): _AttributeMap.update({ }) +_module_typeBindings.Observation = Observation Namespace.addCategoryObject('typeBinding', 'Observation', Observation) @@ -2328,6 +2396,7 @@ class DirectDataMeasurement (Process): _AttributeMap.update({ }) +_module_typeBindings.DirectDataMeasurement = DirectDataMeasurement Namespace.addCategoryObject('typeBinding', 'DirectDataMeasurement', DirectDataMeasurement) @@ -2379,6 +2448,7 @@ class GenericMeasurement (Process): _AttributeMap.update({ }) +_module_typeBindings.GenericMeasurement = GenericMeasurement Namespace.addCategoryObject('typeBinding', 'GenericMeasurement', GenericMeasurement) @@ -2430,6 +2500,7 @@ class UnspecifiedProcess (Process): _AttributeMap.update({ }) +_module_typeBindings.UnspecifiedProcess = UnspecifiedProcess Namespace.addCategoryObject('typeBinding', 'UnspecifiedProcess', UnspecifiedProcess) @@ -2475,6 +2546,7 @@ class Correlator (RealTimeProcess): _AttributeMap.update({ }) +_module_typeBindings.Correlator = Correlator Namespace.addCategoryObject('typeBinding', 'Correlator', Correlator) @@ -2576,6 +2648,7 @@ class CoherentStokes (RealTimeProcess): _AttributeMap.update({ }) +_module_typeBindings.CoherentStokes = CoherentStokes Namespace.addCategoryObject('typeBinding', 'CoherentStokes', CoherentStokes) @@ -2677,6 +2750,7 @@ class IncoherentStokes (RealTimeProcess): _AttributeMap.update({ }) +_module_typeBindings.IncoherentStokes = IncoherentStokes Namespace.addCategoryObject('typeBinding', 'IncoherentStokes', IncoherentStokes) @@ -2746,6 +2820,7 @@ class FlysEye (RealTimeProcess): _AttributeMap.update({ }) +_module_typeBindings.FlysEye = FlysEye Namespace.addCategoryObject('typeBinding', 'FlysEye', FlysEye) @@ -2783,6 +2858,7 @@ class NonStandard (RealTimeProcess): _AttributeMap.update({ }) +_module_typeBindings.NonStandard = NonStandard Namespace.addCategoryObject('typeBinding', 'NonStandard', NonStandard) @@ -2842,6 +2918,7 @@ class PipelineRun (Process): _AttributeMap.update({ }) +_module_typeBindings.PipelineRun = PipelineRun Namespace.addCategoryObject('typeBinding', 'PipelineRun', PipelineRun) @@ -2949,6 +3026,7 @@ class CorrelatedDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.CorrelatedDataProduct = CorrelatedDataProduct Namespace.addCategoryObject('typeBinding', 'CorrelatedDataProduct', CorrelatedDataProduct) @@ -2985,6 +3063,7 @@ class InstrumentModelDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.InstrumentModelDataProduct = InstrumentModelDataProduct Namespace.addCategoryObject('typeBinding', 'InstrumentModelDataProduct', InstrumentModelDataProduct) @@ -3021,6 +3100,7 @@ class SkyModelDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.SkyModelDataProduct = SkyModelDataProduct Namespace.addCategoryObject('typeBinding', 'SkyModelDataProduct', SkyModelDataProduct) @@ -3080,6 +3160,7 @@ class TransientBufferBoardDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.TransientBufferBoardDataProduct = TransientBufferBoardDataProduct Namespace.addCategoryObject('typeBinding', 'TransientBufferBoardDataProduct', TransientBufferBoardDataProduct) @@ -3135,6 +3216,7 @@ class CoherentStokesBeam (ArrayBeam): _AttributeMap.update({ }) +_module_typeBindings.CoherentStokesBeam = CoherentStokesBeam Namespace.addCategoryObject('typeBinding', 'CoherentStokesBeam', CoherentStokesBeam) @@ -3175,6 +3257,7 @@ class IncoherentStokesBeam (ArrayBeam): _AttributeMap.update({ }) +_module_typeBindings.IncoherentStokesBeam = IncoherentStokesBeam Namespace.addCategoryObject('typeBinding', 'IncoherentStokesBeam', IncoherentStokesBeam) @@ -3222,6 +3305,7 @@ class FlysEyeBeam (ArrayBeam): _AttributeMap.update({ }) +_module_typeBindings.FlysEyeBeam = FlysEyeBeam Namespace.addCategoryObject('typeBinding', 'FlysEyeBeam', FlysEyeBeam) @@ -3273,6 +3357,7 @@ class BeamFormedDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.BeamFormedDataProduct = BeamFormedDataProduct Namespace.addCategoryObject('typeBinding', 'BeamFormedDataProduct', BeamFormedDataProduct) @@ -3324,6 +3409,7 @@ class PulpSummaryDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.PulpSummaryDataProduct = PulpSummaryDataProduct Namespace.addCategoryObject('typeBinding', 'PulpSummaryDataProduct', PulpSummaryDataProduct) @@ -3383,6 +3469,7 @@ class PulpDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.PulpDataProduct = PulpDataProduct Namespace.addCategoryObject('typeBinding', 'PulpDataProduct', PulpDataProduct) @@ -3419,6 +3506,7 @@ class GenericDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.GenericDataProduct = GenericDataProduct Namespace.addCategoryObject('typeBinding', 'GenericDataProduct', GenericDataProduct) @@ -3455,6 +3543,7 @@ class UnspecifiedDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.UnspecifiedDataProduct = UnspecifiedDataProduct Namespace.addCategoryObject('typeBinding', 'UnspecifiedDataProduct', UnspecifiedDataProduct) @@ -3506,6 +3595,7 @@ class LinearAxis (Axis): _AttributeMap.update({ }) +_module_typeBindings.LinearAxis = LinearAxis Namespace.addCategoryObject('typeBinding', 'LinearAxis', LinearAxis) @@ -3534,6 +3624,7 @@ class TabularAxis (Axis): _AttributeMap.update({ }) +_module_typeBindings.TabularAxis = TabularAxis Namespace.addCategoryObject('typeBinding', 'TabularAxis', TabularAxis) @@ -3641,6 +3732,7 @@ class DirectionCoordinate (Coordinate): _AttributeMap.update({ }) +_module_typeBindings.DirectionCoordinate = DirectionCoordinate Namespace.addCategoryObject('typeBinding', 'DirectionCoordinate', DirectionCoordinate) @@ -3684,6 +3776,7 @@ class SpectralCoordinate (Coordinate): _AttributeMap.update({ }) +_module_typeBindings.SpectralCoordinate = SpectralCoordinate Namespace.addCategoryObject('typeBinding', 'SpectralCoordinate', SpectralCoordinate) @@ -3727,6 +3820,7 @@ class TimeCoordinate (Coordinate): _AttributeMap.update({ }) +_module_typeBindings.TimeCoordinate = TimeCoordinate Namespace.addCategoryObject('typeBinding', 'TimeCoordinate', TimeCoordinate) @@ -3762,6 +3856,7 @@ class PolarizationCoordinate (Coordinate): _AttributeMap.update({ }) +_module_typeBindings.PolarizationCoordinate = PolarizationCoordinate Namespace.addCategoryObject('typeBinding', 'PolarizationCoordinate', PolarizationCoordinate) @@ -3821,6 +3916,7 @@ class PixelMapDataProduct (DataProduct): _AttributeMap.update({ }) +_module_typeBindings.PixelMapDataProduct = PixelMapDataProduct Namespace.addCategoryObject('typeBinding', 'PixelMapDataProduct', PixelMapDataProduct) @@ -3839,7 +3935,7 @@ class ClockType (Frequency): # Attribute units is restricted from parent # Attribute units uses Python identifier units - __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Frequency_units', FrequencyUnit, fixed=True, unicode_default='MHz', required=True) + __units = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, 'units'), 'units', '__httpwww_astron_nlSIP_Lofar_Frequency_units', _module_typeBindings.FrequencyUnit, fixed=True, unicode_default='MHz', required=True) __units._DeclarationLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 289, 4) __units._UseLocation = pyxb.utils.utility.Location('/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd', 289, 4) @@ -3851,6 +3947,7 @@ class ClockType (Frequency): _AttributeMap.update({ __units.name() : __units }) +_module_typeBindings.ClockType = ClockType Namespace.addCategoryObject('typeBinding', 'ClockType', ClockType) @@ -3964,6 +4061,7 @@ class ImagingPipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.ImagingPipeline = ImagingPipeline Namespace.addCategoryObject('typeBinding', 'ImagingPipeline', ImagingPipeline) @@ -4061,6 +4159,7 @@ class CalibrationPipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.CalibrationPipeline = CalibrationPipeline Namespace.addCategoryObject('typeBinding', 'CalibrationPipeline', CalibrationPipeline) @@ -4142,6 +4241,7 @@ class AveragingPipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.AveragingPipeline = AveragingPipeline Namespace.addCategoryObject('typeBinding', 'AveragingPipeline', AveragingPipeline) @@ -4279,6 +4379,7 @@ class PulsarPipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.PulsarPipeline = PulsarPipeline Namespace.addCategoryObject('typeBinding', 'PulsarPipeline', PulsarPipeline) @@ -4321,6 +4422,7 @@ class CosmicRayPipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.CosmicRayPipeline = CosmicRayPipeline Namespace.addCategoryObject('typeBinding', 'CosmicRayPipeline', CosmicRayPipeline) @@ -4378,6 +4480,7 @@ class LongBaselinePipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.LongBaselinePipeline = LongBaselinePipeline Namespace.addCategoryObject('typeBinding', 'LongBaselinePipeline', LongBaselinePipeline) @@ -4420,6 +4523,7 @@ class GenericPipeline (PipelineRun): _AttributeMap.update({ }) +_module_typeBindings.GenericPipeline = GenericPipeline Namespace.addCategoryObject('typeBinding', 'GenericPipeline', GenericPipeline) @@ -4509,6 +4613,7 @@ class SkyImageDataProduct (PixelMapDataProduct): _AttributeMap.update({ }) +_module_typeBindings.SkyImageDataProduct = SkyImageDataProduct Namespace.addCategoryObject('typeBinding', 'SkyImageDataProduct', SkyImageDataProduct) diff --git a/lib/siplib.py b/lib/siplib.py index 2d17ade5728e90e3aa59eabae5d0368c021b75f7..7c2d6afdf8416e31465dbd0280d2744bea677ea3 100644 --- a/lib/siplib.py +++ b/lib/siplib.py @@ -28,12 +28,11 @@ import ltasip import pyxb import constants +import os VERSION = "SIPlib 0.1" -STATION_CONFIG_PATH = "station_coordinates.conf" - -# todo: find a nice way to define the different stations -# -> how to define a full set of existing stations and their different antennafield options without redundancy? +STATION_CONFIG_PATH = "/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/lib/station_coordinates.conf" # todo fix path for cmake tests +# STATION_CONFIG_PATH = os.path.expanduser("station_coordinates.conf") # todo: create docstrings for everything. # specify types and explain purpose of the field (-> ask someone with more astronomical background) @@ -268,6 +267,7 @@ class AveragingPipeline(): numberOfCorrelatedDataProducts=numberofcorrelateddataproducts, **pipeline_map.get_dict() ) + #self.__pyxb_pipeline._setAttribute("xsi:type","ns1:AveragingPipeline") def get_pyxb_pipeline(self): return self.__pyxb_pipeline @@ -1102,8 +1102,6 @@ class Sip(): print VERSION print "################\n" - sip = ltasip.ltaSip() - #----------- # Base document #--- @@ -1118,6 +1116,8 @@ class Sip(): project_coinvestigators=None, ): + self.sip = ltasip.ltaSip() + self.sip.sipGeneratorVersion = VERSION self.sip.project = ltasip.Project( @@ -1263,819 +1263,8 @@ class Sip(): print self.get_prettyxml() - -# ########################################################## end SIP class - - - - - - - - - - - - -# ############################################################################ - - -def main(): - - # todo: This should be moved to testing, but makes it easier for me now. - print "===\nCreating base document...\n" - # create example doc with mandatory attributes - mysip = Sip(project_code="code", - project_primaryinvestigator="pi", - project_contactauthor="coauthor", - #project_telescope="LOFAR", - project_description="awesome project", - project_coinvestigators=["sidekick1", "sidekick2"], - dataproduct=SimpleDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="42", - size=1024, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1", - checksum_md5="hash1", - checksum_adler32= "hash2", - storageticket="ticket" - ) - ) - ) - mysip.prettyprint() - - print "===\nAdding related generic dataproduct:\n" - # add optional dataproduct item - print mysip.add_related_dataproduct( - GenericDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ) - ) - ) - - - # add optional dataproduct item - print "===\nAdding related pulp summary dataproduct:\n" - print mysip.add_related_dataproduct( - PulpSummaryDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - filecontent=["content_a","content_b"], - datatype="CoherentStokes" - ) - ) - - - - # add optional dataproduct item - print "===\nAdding related pulp dataproduct:\n" - print mysip.add_related_dataproduct( - PulpDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - filecontent=["content_a","content_b"], - datatype="CoherentStokes", - arraybeam=SimpleArrayBeam(ArrayBeamMap( - subarraypointingidentifier_source="source", - subarraypointingidentifier="id", - beamnumber=4, - dispersionmeasure=16, - numberofsubbands=3, - stationsubbands=[1,2,3], - samplingtime=3, - samplingtimeunit="ms", - centralfrequencies="", - centralfrequencies_unit="MHz", - channelwidth_frequency=160, - channelwidth_frequencyunit="MHz", - channelspersubband=5, - stokes=["I","Q"] - )) - ) - ) - - # add optional dataproduct item - print "===\nAdding related beamformed dataproduct:\n" - print mysip.add_related_dataproduct( - BeamFormedDataProduct( - dataproduct_map=DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - beams=[FlysEyeBeam( - arraybeam_map=ArrayBeamMap( - subarraypointingidentifier_source="source", - subarraypointingidentifier="id", - beamnumber=4, - dispersionmeasure=16, - numberofsubbands=3, - stationsubbands=[1,2,3], - samplingtime=3, - samplingtimeunit="ms", - centralfrequencies="", - centralfrequencies_unit="MHz", - channelwidth_frequency=160, - channelwidth_frequencyunit="MHz", - channelspersubband=5, - stokes=["I","Q"]), - station=Station.preconfigured("CS001",["HBA0","HBA1"]) - )] - ) - ) - - - # add optional dataproduct item - print "===\nAdding related sky image dataproduct:\n" - print mysip.add_related_dataproduct( - SkyImageDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - numberofaxes=2, - coordinates=[ - SpectralCoordinate( - quantity_type="Frequency", - quantity_value=20.0, - axis=LinearAxis( - number=5, - name="bla", - units="parsec", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4)), - SpectralCoordinate( - quantity_type="Frequency", - quantity_value=20.0, - axis=TabularAxis( - number=5, - name="bla", - units="parsec", - length=5, - )), - DirectionCoordinate( - linearaxis_a=LinearAxis( - number=5, - name="bla", - units="parsec", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4), - linearaxis_b=LinearAxis( - number=5, - name="bla", - units="parsec", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4), - pc0_0=0.0, - pc0_1=0.1, - pc1_0=1.0, - pc1_1=1.1, - equinox="SUN", - radecsystem="ICRS", - projection="rear", - projectionparameters=[1.0,1.0,1.0], - longitudepole_angle=1.0, - longitudepole_angleunit="degrees", - latitudepole_angle=2.0, - latitudepole_angleunit="degrees", - ), - PolarizationCoordinate( - tabularaxis=TabularAxis( - number=5, - name="bla", - units="parsec", - length=5, - ), - polarizations=["I","YY","XX","Q"] - ), - TimeCoordinate( - equinox="SUN", - axis=TabularAxis( - number=5, - name="timetabular", - units="parsec", - length=5, - ), - ) - ], - locationframe="GEOCENTER", - timeframe="timeframe", - observationpointing=PointingRaDec( - ra_angle=1.0, - ra_angleunit="degrees", - dec_angle=42.0, - dec_angleunit="degrees", - equinox="SUN" - ), - restoringbeammajor_angle=1.0, - restoringbeammajor_angleunit="degrees", - restoringbeamminor_angle=2.0, - restoringbeamminor_angleunit="degrees", - rmsnoise=1.0 - ) - ) - - - # add optional dataproduct item - print "===\nAdded related correlated dataproduct:\n" - print mysip.add_related_dataproduct( - CorrelatedDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - subarraypointing_source="source", - subarraypointing_identifier="id", - subband="1", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - integrationinterval=10, - integrationintervalunit="ms", - central_frequency=160, - central_frequencyunit="MHz", - channelwidth_frequency=200, - channelwidth_frequencyunit="MHz", - channelspersubband=122, - stationsubband=2, - ) - ) - - # add optional dataproduct item - print "===\nAdding related pixelmap dataproduct:\n" - print mysip.add_related_dataproduct( - PixelMapDataProduct( - DataProductMap( - type="Unknown", - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat="HDF5", - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - numberofaxes=5, - coordinates=[SpectralCoordinate( - quantity_type="Frequency", - quantity_value=20.0, - axis=LinearAxis( - number=5, - name="bla", - units="parsec", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4))] - ) - ) - - - - # add optional observation item - print "===\nAdding observation:\n" - print mysip.add_observation(observingmode="Interferometer", - instrumentfilter="10-70 MHz", - clock_frequency='160', - clock_frequencyunit="MHz", - stationselection="Core", - antennaset="HBA Zero", - timesystem="UTC", - stations=[Station.preconfigured("RS106",["LBA"]), - Station.preconfigured("DE609",["HBA"])], - numberofstations=5, - numberofsubarraypointings=5, - numberoftbbevents=5, - numberofcorrelateddataproducts=5, - numberofbeamformeddataproducts=5, - numberofbitspersample=5, - process_map= - ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ProcessRelation( - identifier_source="source", - identifier="90")] - ), - observationdescription="description", - channelwidth_frequency=160, - channelwidth_frequencyunit="MHz", - channelspersubband=5, - subarraypointings=[SubArrayPointing( - pointing=PointingAltAz( - az_angle=20, - az_angleunit="degrees", - alt_angle=30, - alt_angleunit="degrees", - equinox="SUN" - ), - beamnumber=5, - subarraypointingidentifier="id", - subarraypointingidentifier_source="idsource", - measurementtype="All Sky", - targetname="Sun", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - numberofprocessing=1, - numberofcorrelateddataproducts=2, - numberofbeamformeddataproducts=1, - relations=[ProcessRelation( - identifier_source="source", - identifier="90")], - #correlatorprocessing=CorrelatorProcessing( - # integrationinterval=0.5, - # integrationinterval_unit="ns", - # channelwidth_frequency=160, - # channelwidth_frequencyunit="MHz" - # ), - coherentstokesprocessing=CoherentStokesProcessing( - rawsamplingtime=20, - rawsamplingtime_unit="ns", - timesamplingdownfactor=2, - samplingtime=10, - samplingtime_unit="ns", - stokes=["XX"], - numberofstations=1, - stations=[Station.preconfigured("CS002",["HBA0","HBA1"])], - frequencydownsamplingfactor=2, - numberofcollapsedchannels=2, - channelwidth_frequency=160, - channelwidth_frequencyunit="MHz", - channelspersubband=122 - ), - incoherentstokesprocessing=IncoherentStokesProcessing( - rawsamplingtime=20, - rawsamplingtime_unit="ns", - timesamplingdownfactor=2, - samplingtime=10, - samplingtime_unit="ns", - stokes=["XX"], - numberofstations=1, - stations=[Station.preconfigured("CS003",["HBA0","HBA1"])], - frequencydownsamplingfactor=2, - numberofcollapsedchannels=2, - channelwidth_frequency=160, - channelwidth_frequencyunit="MHz", - channelspersubband=122 - ), - flyseyeprocessing=FlysEyeProcessing( - rawsamplingtime=10, - rawsamplingtime_unit="ms", - timesamplingdownfactor=2, - samplingtime=2, - samplingtime_unit="ms", - stokes=["I"], - ), - nonstandardprocessing=NonStandardProcessing( - channelwidth_frequency=160, - channelwidth_frequencyunit="MHz", - channelspersubband=122 - ) - )], - transientbufferboardevents=["event1","event2"] - ) - - print "===\nAdding parset:\n" - print mysip.add_parset( - source="Unknkown", - identifier="Parset1", - contents="blabla") - - print "===\nAdding unspecified process:\n" - print mysip.add_unspecifiedprocess( - observingmode="Interferometer", - description="unspecified", - process_map= - ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ProcessRelation( - identifier_source="source", - identifier="90", - name="name"), - ProcessRelation( - identifier_source="sourceB", - identifier="7", - name="another name") - ] - ) - ) - - print "===\nAdding simple pipelinerun:\n" - print mysip.add_pipelinerun( - SimplePipeline( - PipelineMap( - name="simple", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ) - ) - ) - - - print "===\nAdding generic pipelinerun:\n" - print mysip.add_pipelinerun( - GenericPipeline( - PipelineMap( - name="generic", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ) - ) - ) - - print "===\nAdding cosmic ray pipelinerun:\n" - print mysip.add_pipelinerun( - CosmicRayPipeline( - PipelineMap( - name="cosmic ray", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ) - ) - ) - - - print "===\nAdding long baseline pipelinerun:\n" - print mysip.add_pipelinerun( - LongBaselinePipeline( - PipelineMap( - name="long baseline", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ), - subbandspersubbandgroup=5, - subbandgroupspermS=5 - - ) - ) - - - print "===\nAdding imaging pipelinerun:\n" - print mysip.add_pipelinerun(ImagingPipeline( - PipelineMap( - name="long baseline", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ), - imagerintegrationtime=10, - imagerintegrationtime_unit="ms", - numberofmajorcycles=5, - numberofinstrumentmodels=5, - numberofcorrelateddataproducts=1, - numberofskyimages=1, - ) - ) - - print "===\nAdding calibration pipelinerun:\n" - print mysip.add_pipelinerun( - CalibrationPipeline( - PipelineMap( - name="long baseline", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ), - skymodeldatabase="db", - numberofinstrumentmodels=1, - numberofcorrelateddataproducts=1, - frequencyintegrationstep=1, - timeintegrationstep=1, - flagautocorrelations=True, - demixing=False - )) - - - print "===\nAdding averaging pipelinerun:\n" - print mysip.add_pipelinerun( - AveragingPipeline( - PipelineMap( - name="long baseline", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ), - numberofcorrelateddataproducts=1, - frequencyintegrationstep=1, - timeintegrationstep=1, - flagautocorrelations=True, - demixing=False - )) - - print "===\nAdding pulsar pipelinerun:\n" - print mysip.add_pipelinerun( - PulsarPipeline( - PipelineMap( - name="long baseline", - version="version", - sourcedata_identifiers=["ID1","ID2"], - sourcedata_source="space", - process_map=ProcessMap( - strategyname="strategy1", - strategydescription="awesome strategy", - starttime="1980-03-23T10:20:15", - duration= "P6Y3M10DT15H", - observation_source="SAS", - observation_id="SAS VIC Tree Id", - process_source="MoM", - process_id="MoM Id", - parset_source="parsource", - parset_id="parid", - relations=[ - ProcessRelation( - identifier_source="source", - identifier="90")] - ), - ), - pulsarselection="Pulsars in observation specs, file and brightest in SAP and TAB", - pulsars=["J1234+67"], - dosinglepulseanalysis=False, - convertRawTo8bit=True, - subintegrationlength=10, - subintegrationlength_unit='ns', - skiprfiexcision=False, - skipdatafolding=False, - skipoptimizepulsarprofile=True, - skipconvertrawintofoldedpsrfits=False, - runrotationalradiotransientsanalysis=True, - skipdynamicspectrum=False, - skipprefold=True - ) - ) - - # add optional dataproduct item - print "===\nAdding related sky image dataproduct using predefined constants:\n" - print mysip.add_related_dataproduct( - SkyImageDataProduct( - DataProductMap( - type=constants.DATAPRODUCTTYPE_BEAM_FORMED_DATA, - source="space", - identifier="fourtytwo", - size=2048, - filename="/home/paulus/test.h5", - fileformat=constants.FILEFORMATTYPE_AIPS___CASA, - processsource="someone gave it to me", - processid="SIPlib 0.1" - ), - numberofaxes=2, - coordinates=[ - SpectralCoordinate( - quantity_type=constants.SPECTRALQUANTITYTYPE_VELOCITYAPPRADIAL, - quantity_value=20.0, - axis=LinearAxis( - number=5, - name="bla", - units="unit", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4)), - DirectionCoordinate( - linearaxis_a=LinearAxis( - number=5, - name="bla", - units="unit", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4), - linearaxis_b=LinearAxis( - number=5, - name="blb", - units="unit", - length=5, - increment=5, - referencepixel=7.5, - referencevalue=7.4), - pc0_0=0.0, - pc0_1=0.1, - pc1_0=1.0, - pc1_1=1.1, - equinox=constants.EQUINOXTYPE_JUPITER, - radecsystem=constants.RADECSYSTEM_FK4_NO_E, - projection="rear", - projectionparameters=[1.0,1.0,1.0], - longitudepole_angle=1.0, - longitudepole_angleunit=constants.ANGLEUNIT_RADIANS, - latitudepole_angle=2.0, - latitudepole_angleunit=constants.ANGLEUNIT_ARCSEC, - ), - PolarizationCoordinate( - tabularaxis=TabularAxis( - number=5, - name="bla", - units="someunit", - length=5, - ), - polarizations=[constants.POLARIZATIONTYPE_LR,constants.POLARIZATIONTYPE_XRE] - ), - ], - locationframe=constants.LOCATIONFRAME_LOCAL_GROUP, - timeframe="timeframe", - observationpointing=PointingRaDec( - ra_angle=1.0, - ra_angleunit=constants.ANGLEUNIT_DEGREES, - dec_angle=42.0, - dec_angleunit=constants.ANGLEUNIT_DEGREES, - equinox=constants.EQUINOXTYPE_B1950 - ), - restoringbeammajor_angle=1.0, - restoringbeammajor_angleunit=constants.ANGLEUNIT_DEGREES, - restoringbeamminor_angle=2.0, - restoringbeamminor_angleunit=constants.ANGLEUNIT_DEGREES, - rmsnoise=1.0 - ) - ) - - #path = os.path.expanduser("~/sip9091.xml") - #with open(path, 'w+') as f: - # f.write(mysip.get_prettyxml()) - - -if __name__ == '__main__': - main() + def save_to_file(self, path): + path = os.path.expanduser(path) + with open(path, 'w+') as f: + f.write(self.get_prettyxml()) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 01e87de6603244b2077144b3af8f8fe25b0667ce..29e9e7fce3518aa18568356aca6328fd3b981f30 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,4 +2,3 @@ include(LofarCTest) lofar_add_test(test_siplib) - diff --git a/test/test_siplib.py b/test/test_siplib.py index d336dba5c411e10c7aad0de7ce81d0b10b550eda..7ebd4932b8e13179da51c9876e0c131ae3999a3b 100755 --- a/test/test_siplib.py +++ b/test/test_siplib.py @@ -21,11 +21,840 @@ import unittest from lofar.lta.sip import siplib +from lofar.lta.sip import validator +from lofar.lta.sip import constants + +TMPFILE_PATH = "/tmp/test_siplib.xml" +VALIDFILE_PATH ="/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/sip/test/valid_sip.xml" # todo fix path for cmake tests +XSD_PATH="/home/jkuensem/dev/SIP-lib/SIPlib-Task9091/LTA/LTAIngest/doc/LTA-SIP.xsd" # todo fix path for cmake tests + + +def create_basicdoc(): + return siplib.Sip( + project_code="code", + project_primaryinvestigator="pi", + project_contactauthor="coauthor", + #project_telescope="LOFAR", + project_description="awesome project", + project_coinvestigators=["sidekick1", "sidekick2"], + dataproduct=siplib.SimpleDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="42", + size=1024, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1", + checksum_md5="hash1", + checksum_adler32= "hash2", + storageticket="ticket" + ) + ) + ) + +class TestSIPvalidator(unittest.TestCase): + def test_validate(self): + self.assertTrue(validator.validate(VALIDFILE_PATH, XSD_PATH)) class TestSIPlib(unittest.TestCase): - def testFoo(self): - self.assertTrue(siplib.foo()) + + def test_basic_doc(self): + # create example doc with mandatory attributes + print "===\nCreating basic document:\n" + mysip = create_basicdoc() + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH, XSD_PATH)) + + def test_dataproducts(self): + mysip = create_basicdoc() + print "===\nAdding related generic dataproduct:\n" + # add optional dataproduct item + print mysip.add_related_dataproduct( + siplib.GenericDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ) + ) + ) + + # add optional dataproduct item + print "===\nAdding related pulp summary dataproduct:\n" + print mysip.add_related_dataproduct( + siplib.PulpSummaryDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + filecontent=["content_a","content_b"], + datatype="CoherentStokes" + ) + ) + + + + # add optional dataproduct item + print "===\nAdding related pulp dataproduct:\n" + print mysip.add_related_dataproduct( + siplib.PulpDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + filecontent=["content_a","content_b"], + datatype="CoherentStokes", + arraybeam=siplib.SimpleArrayBeam(siplib.ArrayBeamMap( + subarraypointingidentifier_source="source", + subarraypointingidentifier="id", + beamnumber=4, + dispersionmeasure=16, + numberofsubbands=3, + stationsubbands=[1,2,3], + samplingtime=3, + samplingtimeunit="ms", + centralfrequencies="", + centralfrequencies_unit="MHz", + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz", + channelspersubband=5, + stokes=["I","Q"] + )) + ) + ) + + # add optional dataproduct item + print "===\nAdding related beamformed dataproduct:\n" + print mysip.add_related_dataproduct( + siplib.BeamFormedDataProduct( + dataproduct_map=siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + beams=[siplib.FlysEyeBeam( + arraybeam_map=siplib.ArrayBeamMap( + subarraypointingidentifier_source="source", + subarraypointingidentifier="id", + beamnumber=4, + dispersionmeasure=16, + numberofsubbands=3, + stationsubbands=[1,2,3], + samplingtime=3, + samplingtimeunit="ms", + centralfrequencies="", + centralfrequencies_unit="MHz", + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz", + channelspersubband=5, + stokes=["I","Q"]), + station=siplib.Station.preconfigured("CS001",["HBA0","HBA1"]) + )] + ) + ) + + + # add optional dataproduct item + print "===\nAdding related sky image dataproduct:\n" + print mysip.add_related_dataproduct( + siplib.SkyImageDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + numberofaxes=2, + coordinates=[ + siplib.SpectralCoordinate( + quantity_type="Frequency", + quantity_value=20.0, + axis=siplib.LinearAxis( + number=5, + name="bla", + units="parsec", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4)), + siplib.SpectralCoordinate( + quantity_type="Frequency", + quantity_value=20.0, + axis=siplib.TabularAxis( + number=5, + name="bla", + units="parsec", + length=5, + )), + siplib.DirectionCoordinate( + linearaxis_a=siplib.LinearAxis( + number=5, + name="bla", + units="parsec", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4), + linearaxis_b=siplib.LinearAxis( + number=5, + name="bla", + units="parsec", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4), + pc0_0=0.0, + pc0_1=0.1, + pc1_0=1.0, + pc1_1=1.1, + equinox="SUN", + radecsystem="ICRS", + projection="rear", + projectionparameters=[1.0,1.0,1.0], + longitudepole_angle=1.0, + longitudepole_angleunit="degrees", + latitudepole_angle=2.0, + latitudepole_angleunit="degrees", + ), + siplib.PolarizationCoordinate( + tabularaxis=siplib.TabularAxis( + number=5, + name="bla", + units="parsec", + length=5, + ), + polarizations=["I","YY","XX","Q"] + ), + siplib.TimeCoordinate( + equinox="SUN", + axis=siplib.TabularAxis( + number=5, + name="timetabular", + units="parsec", + length=5, + ), + ) + ], + locationframe="GEOCENTER", + timeframe="timeframe", + observationpointing=siplib.PointingRaDec( + ra_angle=1.0, + ra_angleunit="degrees", + dec_angle=42.0, + dec_angleunit="degrees", + equinox="SUN" + ), + restoringbeammajor_angle=1.0, + restoringbeammajor_angleunit="degrees", + restoringbeamminor_angle=2.0, + restoringbeamminor_angleunit="degrees", + rmsnoise=1.0 + ) + ) + + + # add optional dataproduct item + print "===\nAdded related correlated dataproduct:\n" + print mysip.add_related_dataproduct( + siplib.CorrelatedDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + subarraypointing_source="source", + subarraypointing_identifier="id", + subband="1", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + integrationinterval=10, + integrationintervalunit="ms", + central_frequency=160, + central_frequencyunit="MHz", + channelwidth_frequency=200, + channelwidth_frequencyunit="MHz", + channelspersubband=122, + stationsubband=2, + ) + ) + + # add optional dataproduct item + print "===\nAdding related pixelmap dataproduct:\n" + print mysip.add_related_dataproduct( + siplib.PixelMapDataProduct( + siplib.DataProductMap( + type="Unknown", + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat="HDF5", + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + numberofaxes=5, + coordinates=[siplib.SpectralCoordinate( + quantity_type="Frequency", + quantity_value=20.0, + axis=siplib.LinearAxis( + number=5, + name="bla", + units="parsec", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4))] + ) + ) + + + # add optional dataproduct item + print "===\nAdding related pixelmap dataproduct using predefined constants:\n" + print mysip.add_related_dataproduct( + siplib.SkyImageDataProduct( + siplib.DataProductMap( + type=constants.DATAPRODUCTTYPE_BEAM_FORMED_DATA, + source="space", + identifier="fourtytwo", + size=2048, + filename="/home/paulus/test.h5", + fileformat=constants.FILEFORMATTYPE_AIPS___CASA, + processsource="someone gave it to me", + processid="SIPlib 0.1" + ), + numberofaxes=2, + coordinates=[ + siplib.SpectralCoordinate( + quantity_type=constants.SPECTRALQUANTITYTYPE_VELOCITYAPPRADIAL, + quantity_value=20.0, + axis=siplib.LinearAxis( + number=5, + name="bla", + units="unit", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4)), + siplib.DirectionCoordinate( + linearaxis_a=siplib.LinearAxis( + number=5, + name="bla", + units="unit", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4), + linearaxis_b=siplib.LinearAxis( + number=5, + name="blb", + units="unit", + length=5, + increment=5, + referencepixel=7.5, + referencevalue=7.4), + pc0_0=0.0, + pc0_1=0.1, + pc1_0=1.0, + pc1_1=1.1, + equinox=constants.EQUINOXTYPE_JUPITER, + radecsystem=constants.RADECSYSTEM_FK4_NO_E, + projection="rear", + projectionparameters=[1.0,1.0,1.0], + longitudepole_angle=1.0, + longitudepole_angleunit=constants.ANGLEUNIT_RADIANS, + latitudepole_angle=2.0, + latitudepole_angleunit=constants.ANGLEUNIT_ARCSEC, + ), + siplib.PolarizationCoordinate( + tabularaxis=siplib.TabularAxis( + number=5, + name="bla", + units="someunit", + length=5, + ), + polarizations=[constants.POLARIZATIONTYPE_LR,constants.POLARIZATIONTYPE_XRE] + ), + ], + locationframe=constants.LOCATIONFRAME_LOCAL_GROUP, + timeframe="timeframe", + observationpointing=siplib.PointingRaDec( + ra_angle=1.0, + ra_angleunit=constants.ANGLEUNIT_DEGREES, + dec_angle=42.0, + dec_angleunit=constants.ANGLEUNIT_DEGREES, + equinox=constants.EQUINOXTYPE_B1950 + ), + restoringbeammajor_angle=1.0, + restoringbeammajor_angleunit=constants.ANGLEUNIT_DEGREES, + restoringbeamminor_angle=2.0, + restoringbeamminor_angleunit=constants.ANGLEUNIT_DEGREES, + rmsnoise=1.0 + ) + ) + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH, XSD_PATH)) + + + def test_observation(self): + mysip = create_basicdoc() + # add optional observation item + print "===\nAdding observation:\n" + print mysip.add_observation(observingmode="Interferometer", + instrumentfilter="10-70 MHz", + clock_frequency='160', + clock_frequencyunit="MHz", + stationselection="Core", + antennaset="HBA Zero", + timesystem="UTC", + stations=[siplib.Station.preconfigured("RS106",["LBA"]), + siplib.Station.preconfigured("DE609",["HBA"])], + numberofstations=5, + numberofsubarraypointings=5, + numberoftbbevents=5, + numberofcorrelateddataproducts=5, + numberofbeamformeddataproducts=5, + numberofbitspersample=5, + process_map= + siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + observationdescription="description", + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz", + channelspersubband=5, + subarraypointings=[siplib.SubArrayPointing( + pointing=siplib.PointingAltAz( + az_angle=20, + az_angleunit="degrees", + alt_angle=30, + alt_angleunit="degrees", + equinox="SUN" + ), + beamnumber=5, + subarraypointingidentifier="id", + subarraypointingidentifier_source="idsource", + measurementtype="All Sky", + targetname="Sun", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + numberofprocessing=1, + numberofcorrelateddataproducts=2, + numberofbeamformeddataproducts=1, + relations=[siplib.ProcessRelation( + identifier_source="source", + identifier="90")], + correlatorprocessing=siplib.CorrelatorProcessing( + integrationinterval=0.5, + integrationinterval_unit="ns", + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz" + ), + coherentstokesprocessing=siplib.CoherentStokesProcessing( + rawsamplingtime=20, + rawsamplingtime_unit="ns", + timesamplingdownfactor=2, + samplingtime=10, + samplingtime_unit="ns", + stokes=["XX"], + numberofstations=1, + stations=[siplib.Station.preconfigured("CS002",["HBA0","HBA1"])], + frequencydownsamplingfactor=2, + numberofcollapsedchannels=2, + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz", + channelspersubband=122 + ), + incoherentstokesprocessing=siplib.IncoherentStokesProcessing( + rawsamplingtime=20, + rawsamplingtime_unit="ns", + timesamplingdownfactor=2, + samplingtime=10, + samplingtime_unit="ns", + stokes=["XX"], + numberofstations=1, + stations=[siplib.Station.preconfigured("CS003",["HBA0","HBA1"])], + frequencydownsamplingfactor=2, + numberofcollapsedchannels=2, + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz", + channelspersubband=122 + ), + flyseyeprocessing=siplib.FlysEyeProcessing( + rawsamplingtime=10, + rawsamplingtime_unit="ms", + timesamplingdownfactor=2, + samplingtime=2, + samplingtime_unit="ms", + stokes=["I"], + ), + nonstandardprocessing=siplib.NonStandardProcessing( + channelwidth_frequency=160, + channelwidth_frequencyunit="MHz", + channelspersubband=122 + ) + )], + transientbufferboardevents=["event1","event2"] + ) + + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH, XSD_PATH)) + + + + def test_parset(self): + mysip = create_basicdoc() + print "===\nAdding parset:\n" + print mysip.add_parset( + source="Unknkown", + identifier="Parset1", + contents="blabla") + + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH, XSD_PATH)) + + def test_unspecifiedprocess(self): + mysip = create_basicdoc() + print "===\nAdding unspecified process:\n" + print mysip.add_unspecifiedprocess( + observingmode="Interferometer", + description="unspecified", + process_map= + siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[siplib.ProcessRelation( + identifier_source="source", + identifier="90", + name="name"), + siplib.ProcessRelation( + identifier_source="sourceB", + identifier="7", + name="another name") + ] + ) + ) + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH, XSD_PATH)) + + + def test_pipelines(self): + mysip = create_basicdoc() + print "===\nAdding simple pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.SimplePipeline( + siplib.PipelineMap( + name="simple", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ) + ) + ) + + + print "===\nAdding generic pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.GenericPipeline( + siplib.PipelineMap( + name="generic", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ) + ) + ) + + print "===\nAdding cosmic ray pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.CosmicRayPipeline( + siplib.PipelineMap( + name="cosmic ray", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ) + ) + ) + + + print "===\nAdding long baseline pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.LongBaselinePipeline( + siplib.PipelineMap( + name="long baseline", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ), + subbandspersubbandgroup=5, + subbandgroupspermS=5 + + ) + ) + + + print "===\nAdding imaging pipelinerun:\n" + print mysip.add_pipelinerun(siplib.ImagingPipeline( + siplib.PipelineMap( + name="long baseline", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ), + imagerintegrationtime=10, + imagerintegrationtime_unit="ms", + numberofmajorcycles=5, + numberofinstrumentmodels=5, + numberofcorrelateddataproducts=1, + numberofskyimages=1, + ) + ) + + print "===\nAdding calibration pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.CalibrationPipeline( + siplib.PipelineMap( + name="long baseline", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ), + skymodeldatabase="db", + numberofinstrumentmodels=1, + numberofcorrelateddataproducts=1, + frequencyintegrationstep=1, + timeintegrationstep=1, + flagautocorrelations=True, + demixing=False + )) + + + print "===\nAdding averaging pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.AveragingPipeline( + siplib.PipelineMap( + name="long baseline", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ), + numberofcorrelateddataproducts=1, + frequencyintegrationstep=1, + timeintegrationstep=1, + flagautocorrelations=True, + demixing=False + )) + + print "===\nAdding pulsar pipelinerun:\n" + print mysip.add_pipelinerun( + siplib.PulsarPipeline( + siplib.PipelineMap( + name="long baseline", + version="version", + sourcedata_identifiers=["ID1","ID2"], + sourcedata_source="space", + process_map=siplib.ProcessMap( + strategyname="strategy1", + strategydescription="awesome strategy", + starttime="1980-03-23T10:20:15", + duration= "P6Y3M10DT15H", + observation_source="SAS", + observation_id="SAS VIC Tree Id", + process_source="MoM", + process_id="MoM Id", + parset_source="parsource", + parset_id="parid", + relations=[ + siplib.ProcessRelation( + identifier_source="source", + identifier="90")] + ), + ), + pulsarselection="Pulsars in observation specs, file and brightest in SAP and TAB", + pulsars=["J1234+67"], + dosinglepulseanalysis=False, + convertRawTo8bit=True, + subintegrationlength=10, + subintegrationlength_unit='ns', + skiprfiexcision=False, + skipdatafolding=False, + skipoptimizepulsarprofile=True, + skipconvertrawintofoldedpsrfits=False, + runrotationalradiotransientsanalysis=True, + skipdynamicspectrum=False, + skipprefold=True + ) + ) + + mysip.save_to_file(TMPFILE_PATH) + self.assertTrue(validator.validate(TMPFILE_PATH, XSD_PATH)) + # run tests if main if __name__ == '__main__': diff --git a/test/test_siplib.run b/test/test_siplib.run index 436e049b5f7d9bdebddde7676bf19ac59a1c319d..1b2b009a27dc8b627e6557cb1d9737ee7c7b9210 100755 --- a/test/test_siplib.run +++ b/test/test_siplib.run @@ -4,3 +4,4 @@ source python-coverage.sh python_coverage_test "sip.*" test_siplib.py + diff --git a/test/valid_sip.xml b/test/valid_sip.xml new file mode 100644 index 0000000000000000000000000000000000000000..b7b2132b167266e53672c4b1f667aa854bc5b24b --- /dev/null +++ b/test/valid_sip.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" ?> +<ns1:ltaSip xmlns:ns1="http://www.astron.nl/SIP-Lofar"> + <sipGeneratorVersion>SIPlib 0.1</sipGeneratorVersion> + <project> + <projectCode>code</projectCode> + <primaryInvestigator>pi</primaryInvestigator> + <coInvestigator>sidekick1</coInvestigator> + <coInvestigator>sidekick2</coInvestigator> + <contactAuthor>coauthor</contactAuthor> + <telescope>LOFAR</telescope> + <projectDescription>awesome project</projectDescription> + </project> + <dataProduct> + <dataProductType>Unknown</dataProductType> + <dataProductIdentifier> + <source>space</source> + <identifier>42</identifier> + </dataProductIdentifier> + <storageTicket>ticket</storageTicket> + <size>1024</size> + <checksum> + <algorithm>MD5</algorithm> + <value>hash1</value> + </checksum> + <checksum> + <algorithm>Adler32</algorithm> + <value>hash2</value> + </checksum> + <fileName>/home/paulus/test.h5</fileName> + <fileFormat>HDF5</fileFormat> + <processIdentifier> + <source>someone gave it to me</source> + <identifier>SIPlib 0.1</identifier> + </processIdentifier> + </dataProduct> +</ns1:ltaSip>