From 8d7cd9469e565f4d6b987e14245ce23618dc4cd5 Mon Sep 17 00:00:00 2001 From: perezgonzalez-irene <iregon@noc.ac.uk> Date: Thu, 16 Jan 2020 15:44:33 +0000 Subject: [PATCH] First commit new architecture --- docs/User_manual.docx | Bin 7392090 -> 7392033 bytes properties.py | 5 +- read.py | 34 +- read.py.old | 107 + reader/get_sections.py | 222 ++ reader/import_data.py | 44 + reader/meta_formats/delimited.py | 52 +- reader/meta_formats/fixed_width.py | 48 +- reader/read_sections.py | 113 + reader/reader.py | 180 +- reader/reader.py.old | 173 ++ .../lib/imma.old/code_tables/ICOADS.C0.A.json | 11 + .../imma.old/code_tables/ICOADS.C0.C1.json | 259 ++ .../imma.old/code_tables/ICOADS.C0.CH.json | 13 + .../imma.old/code_tables/ICOADS.C0.CL.json | 13 + .../imma.old/code_tables/ICOADS.C0.CM.json | 13 + .../imma.old/code_tables/ICOADS.C0.DI.json | 9 + .../imma.old/code_tables/ICOADS.C0.DPTI.json | 6 + .../imma.old/code_tables/ICOADS.C0.DS.json | 12 + .../lib/imma.old/code_tables/ICOADS.C0.H.json | 13 + .../imma.old/code_tables/ICOADS.C0.HI.json | 4 + .../imma.old/code_tables/ICOADS.C0.II.json | 14 + .../imma.old/code_tables/ICOADS.C0.IM.json | 4 + .../imma.old/code_tables/ICOADS.C0.IT.json | 12 + .../imma.old/code_tables/ICOADS.C0.LI.json | 9 + .../imma.old/code_tables/ICOADS.C0.NID.json | 102 + .../imma.old/code_tables/ICOADS.C0.SD.json | 41 + .../imma.old/code_tables/ICOADS.C0.SI.json | 14 + .../imma.old/code_tables/ICOADS.C0.TI.json | 7 + .../imma.old/code_tables/ICOADS.C0.VI.json | 7 + .../imma.old/code_tables/ICOADS.C0.VS.json | 28 + .../imma.old/code_tables/ICOADS.C0.VS.keys | 3 + .../imma.old/code_tables/ICOADS.C0.VV.json | 12 + .../imma.old/code_tables/ICOADS.C0.W1.json | 12 + .../imma.old/code_tables/ICOADS.C0.WBTI.json | 6 + .../imma.old/code_tables/ICOADS.C0.WD.json | 41 + .../imma.old/code_tables/ICOADS.C0.WI.json | 11 + .../imma.old/code_tables/ICOADS.C0.WW.json | 102 + .../imma.old/code_tables/ICOADS.C1.DCK.json | 147 ++ .../imma.old/code_tables/ICOADS.C1.DUPC.json | 5 + .../imma.old/code_tables/ICOADS.C1.DUPS.json | 17 + .../imma.old/code_tables/ICOADS.C1.LZ.json | 3 + .../imma.old/code_tables/ICOADS.C1.NCDC.json | 12 + .../imma.old/code_tables/ICOADS.C1.ND.json | 4 + .../imma.old/code_tables/ICOADS.C1.PB.json | 5 + .../imma.old/code_tables/ICOADS.C1.PT.json | 26 + .../imma.old/code_tables/ICOADS.C1.SID.json | 165 ++ .../imma.old/code_tables/ICOADS.C1.SX.json | 3 + .../imma.old/code_tables/ICOADS.C1.TC.json | 5 + .../imma.old/code_tables/ICOADS.C1.TRIM.json | 14 + .../imma.old/code_tables/ICOADS.C1.WX.json | 3 + .../imma.old/code_tables/ICOADS.C5.AWSI.json | 5 + .../imma.old/code_tables/ICOADS.C5.FM.json | 15 + .../imma.old/code_tables/ICOADS.C5.IC1.json | 13 + .../imma.old/code_tables/ICOADS.C5.IC2.json | 13 + .../imma.old/code_tables/ICOADS.C5.IC3.json | 13 + .../imma.old/code_tables/ICOADS.C5.IC4.json | 13 + .../imma.old/code_tables/ICOADS.C5.IC5.json | 13 + .../imma.old/code_tables/ICOADS.C5.IMMV.json | 8 + .../imma.old/code_tables/ICOADS.C5.IR.json | 7 + .../imma.old/code_tables/ICOADS.C5.IS.json | 7 + .../imma.old/code_tables/ICOADS.C5.IX.json | 9 + .../imma.old/code_tables/ICOADS.C5.MQCS.json | 12 + .../imma.old/code_tables/ICOADS.C5.MQCSv.json | 9 + .../imma.old/code_tables/ICOADS.C5.OP.json | 12 + .../imma.old/code_tables/ICOADS.C5.OS.json | 9 + .../imma.old/code_tables/ICOADS.C5.RHI.json | 7 + .../imma.old/code_tables/ICOADS.C5.RRR.json | 1002 ++++++++ .../imma.old/code_tables/ICOADS.C5.RS.json | 7 + .../imma.old/code_tables/ICOADS.C5.TR.json | 12 + .../imma.old/code_tables/ICOADS.C5.W2.json | 12 + .../imma.old/code_tables/ICOADS.C5.WMI.json | 12 + .../code_tables/ICOADS.C7.COUNTRY.json | 259 ++ .../imma.old/code_tables/ICOADS.C7.EOH.json | 12 + .../imma.old/code_tables/ICOADS.C7.EOT.json | 12 + .../imma.old/code_tables/ICOADS.C7.KOV.json | 34 + .../imma.old/code_tables/ICOADS.C7.LOT.json | 18 + .../imma.old/code_tables/ICOADS.C7.OPM.json | 11 + .../imma.old/code_tables/ICOADS.C7.SIM.json | 10 + .../imma.old/code_tables/ICOADS.C7.SMV.json | 12 + .../imma.old/code_tables/ICOADS.C7.TOB.json | 8 + .../imma.old/code_tables/ICOADS.C7.TOH.json | 11 + .../imma.old/code_tables/ICOADS.C7.TOT.json | 5 + .../imma.old/code_tables/ICOADS.C95.ASIR.json | 4 + .../imma.old/code_tables/ICOADS.C95.DPRO.json | 6 + .../imma.old/code_tables/ICOADS.C95.DPRP.json | 6 + .../imma.old/code_tables/ICOADS.C95.UFR.json | 8 + .../imma.old/code_tables/ICOADS.C96.ASII.json | 4 + .../imma.old/code_tables/ICOADS.C97.ASIE.json | 4 + .../imma.old/code_tables/ICOADS.C98.IRF.json | 5 + .../imma.old/code_tables/ICOADS.C98.RSA.json | 5 + .../code_tables/icoads_3_0.MQCIndicator | 12 + .../icoads_3_0.MQCIndicatorGeneral | 12 + .../code_tables/icoads_3_0.MQCversion | 9 + .../code_tables/icoads_3_0.SUPDEncoding | 5 + .../lib/imma.old/code_tables/icoads_3_0.awsi | 5 + .../lib/imma.old/code_tables/icoads_3_0.bsi | 3 + .../lib/imma.old/code_tables/icoads_3_0.fm | 15 + .../lib/imma.old/code_tables/icoads_3_0.immv | 8 + .../lib/imma.old/code_tables/icoads_3_0.is | 7 + .../lib/imma.old/code_tables/icoads_3_0.it | 12 + .../lib/imma.old/code_tables/icoads_3_0.ix | 9 + .../lib/imma.old/code_tables/icoads_3_0.kov | 34 + .../lib/imma.old/code_tables/icoads_3_0.lot | 18 + .../lib/imma.old/code_tables/icoads_3_0.mds | 4 + .../lib/imma.old/code_tables/icoads_3_0.op | 12 + .../lib/imma.old/code_tables/icoads_3_0.opm | 11 + .../lib/imma.old/code_tables/icoads_3_0.os | 9 + .../lib/imma.old/code_tables/icoads_3_0.rhi | 7 + .../lib/imma.old/code_tables/icoads_3_0.rs | 7 + .../lib/imma.old/code_tables/icoads_3_0.smv | 12 + .../code_tables/icoads_3_0.sstMethod_c7 | 14 + .../code_tables/icoads_3_0.thermometerHousing | 12 + .../lib/imma.old/code_tables/icoads_3_0.tob | 8 + .../lib/imma.old/code_tables/icoads_3_0.toh | 11 + .../lib/imma.old/code_tables/icoads_3_0.tot | 5 + .../lib/imma.old/code_tables/icoads_3_0.tr | 12 + .../lib/imma.old/code_tables/icoads_3_0.vi | 5 + .../lib/imma.old/code_tables/icoads_3_0.vs | 22 + .../lib/imma.old/code_tables/icoads_3_0.wmi | 12 + schemas/lib/imma.old/imma1.json | 2240 +++++++++++++++++ schemas/lib/imma1/imma1.json | 28 +- .../code_tables/barometric_tendency.json | 11 + .../td11.old/code_tables/card_indicator.json | 10 + .../code_tables/cloud_amount_oktas.json | 12 + .../cloud_amount_oktas_significant.json | 12 + .../code_tables/cloud_height_ind.json | 4 + .../code_tables/cloud_height_metres.json | 12 + .../code_tables/cloud_height_significant.json | 12 + .../td11.old/code_tables/cloud_type_high.json | 13 + .../td11.old/code_tables/cloud_type_low.json | 13 + .../code_tables/cloud_type_middle.json | 13 + .../code_tables/cloud_type_significant.json | 13 + .../code_tables/coordinates_quadrants.json | 6 + .../code_tables/ice_accretion_rate.json | 7 + .../lib/td11.old/code_tables/ice_type.json | 7 + .../code_tables/ocean_weather_station.json | 5 + .../code_tables/osv_ship_indicator.json | 7 + .../td11.old/code_tables/ship_direction.json | 12 + .../code_tables/ship_speed_knots.json | 28 + .../code_tables/ship_speed_knots.keys | 3 + .../td11.old/code_tables/swell_period.json | 30 + .../td11.old/code_tables/swell_period.keys | 3 + .../code_tables/temperatures_ind.json | 5 + .../lib/td11.old/code_tables/visibility.json | 6 + .../lib/td11.old/code_tables/visibility.keys | 3 + .../td11.old/code_tables/visibility_ind.json | 5 + .../code_tables/wave_direction_from.json | 6 + .../lib/td11.old/code_tables/wave_height.json | 12 + .../lib/td11.old/code_tables/wave_period.json | 13 + .../td11.old/code_tables/weather_past.json | 12 + .../td11.old/code_tables/weather_present.json | 12 + .../td11.old/code_tables/wind_direction.json | 22 + .../td11.old/code_tables/wind_direction.keys | 3 + .../code_tables/wind_direction_ind.json | 6 + .../td11.old/code_tables/wind_speed_ind.json | 4 + schemas/lib/td11.old/td11.json | 468 ++++ schemas/schemas.py | 41 +- 158 files changed, 6992 insertions(+), 248 deletions(-) create mode 100644 read.py.old create mode 100644 reader/get_sections.py create mode 100644 reader/import_data.py create mode 100644 reader/read_sections.py create mode 100644 reader/reader.py.old create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.A.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.C1.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.CH.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.CL.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.CM.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.DI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.DPTI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.DS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.H.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.HI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.II.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.IM.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.IT.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.LI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.NID.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.SD.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.SI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.TI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.VI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.VS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.VS.keys create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.VV.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.W1.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.WBTI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.WD.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.WI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C0.WW.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.DCK.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.DUPC.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.DUPS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.LZ.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.NCDC.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.ND.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.PB.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.PT.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.SID.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.SX.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.TC.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.TRIM.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C1.WX.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.AWSI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.FM.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IC1.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IC2.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IC3.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IC4.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IC5.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IMMV.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IR.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.IX.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.MQCS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.MQCSv.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.OP.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.OS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.RHI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.RRR.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.RS.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.TR.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.W2.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C5.WMI.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.COUNTRY.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.EOH.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.EOT.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.KOV.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.LOT.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.OPM.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.SIM.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.SMV.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.TOB.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.TOH.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C7.TOT.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C95.ASIR.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C95.DPRO.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C95.DPRP.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C95.UFR.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C96.ASII.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C97.ASIE.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C98.IRF.json create mode 100644 schemas/lib/imma.old/code_tables/ICOADS.C98.RSA.json create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicator create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicatorGeneral create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.MQCversion create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.SUPDEncoding create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.awsi create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.bsi create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.fm create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.immv create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.is create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.it create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.ix create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.kov create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.lot create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.mds create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.op create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.opm create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.os create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.rhi create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.rs create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.smv create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.sstMethod_c7 create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.thermometerHousing create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.tob create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.toh create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.tot create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.tr create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.vi create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.vs create mode 100644 schemas/lib/imma.old/code_tables/icoads_3_0.wmi create mode 100644 schemas/lib/imma.old/imma1.json create mode 100644 schemas/lib/td11.old/code_tables/barometric_tendency.json create mode 100644 schemas/lib/td11.old/code_tables/card_indicator.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_amount_oktas.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_amount_oktas_significant.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_height_ind.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_height_metres.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_height_significant.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_type_high.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_type_low.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_type_middle.json create mode 100644 schemas/lib/td11.old/code_tables/cloud_type_significant.json create mode 100644 schemas/lib/td11.old/code_tables/coordinates_quadrants.json create mode 100644 schemas/lib/td11.old/code_tables/ice_accretion_rate.json create mode 100644 schemas/lib/td11.old/code_tables/ice_type.json create mode 100644 schemas/lib/td11.old/code_tables/ocean_weather_station.json create mode 100644 schemas/lib/td11.old/code_tables/osv_ship_indicator.json create mode 100644 schemas/lib/td11.old/code_tables/ship_direction.json create mode 100644 schemas/lib/td11.old/code_tables/ship_speed_knots.json create mode 100644 schemas/lib/td11.old/code_tables/ship_speed_knots.keys create mode 100644 schemas/lib/td11.old/code_tables/swell_period.json create mode 100644 schemas/lib/td11.old/code_tables/swell_period.keys create mode 100644 schemas/lib/td11.old/code_tables/temperatures_ind.json create mode 100644 schemas/lib/td11.old/code_tables/visibility.json create mode 100644 schemas/lib/td11.old/code_tables/visibility.keys create mode 100644 schemas/lib/td11.old/code_tables/visibility_ind.json create mode 100644 schemas/lib/td11.old/code_tables/wave_direction_from.json create mode 100644 schemas/lib/td11.old/code_tables/wave_height.json create mode 100644 schemas/lib/td11.old/code_tables/wave_period.json create mode 100644 schemas/lib/td11.old/code_tables/weather_past.json create mode 100644 schemas/lib/td11.old/code_tables/weather_present.json create mode 100644 schemas/lib/td11.old/code_tables/wind_direction.json create mode 100644 schemas/lib/td11.old/code_tables/wind_direction.keys create mode 100644 schemas/lib/td11.old/code_tables/wind_direction_ind.json create mode 100644 schemas/lib/td11.old/code_tables/wind_speed_ind.json create mode 100644 schemas/lib/td11.old/td11.json diff --git a/docs/User_manual.docx b/docs/User_manual.docx index 3599eb41ac21ac96a0f5f0d7fa986dd5e329de68..72f552bbf3ab5d02d3cc833478036302a667ec59 100644 GIT binary patch delta 143908 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 a!DMfMpdkVqAdCprAqWXJPZI>l<$nP_eoX5C delta 143987 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%0AHR7Do!T8s~eLz!UQtqAE;ic*Je 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νz31?Zj8h^D0>^<_eks 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 XC3I8hm%lSB=-x0$1joJ=1jPP-N~6w~ diff --git a/properties.py b/properties.py index 55afa40..d00f4f7 100644 --- a/properties.py +++ b/properties.py @@ -11,7 +11,6 @@ import pandas as pd # Supported formats, sources and internal data models ------------------------- -supported_meta_file_formats = ['fixed_width','delimited'] schema_path = os.path.join(os.path.dirname(__file__),'schemas','lib') supported_file_formats = [ os.path.basename(x).split(".")[0] for x in glob.glob(schema_path + '/*/*.json') if os.path.basename(x).split(".")[0] == os.path.dirname(x).split("/")[-1]] supported_sources = [pd.DataFrame, pd.io.parsers.TextFileReader, io.StringIO] @@ -44,4 +43,6 @@ data_type_conversion_args['datetime'] = ['datetime_format'] # Misc ------------------------------------------------------------------------ tol = 1E-10 -dummy_level = '_section' \ No newline at end of file +dummy_level = 'SECTION__' +# Length of reports in initial read +MAX_FULL_REPORT_WIDTH = 100000 \ No newline at end of file diff --git a/read.py b/read.py index 20b88ba..1533d0d 100644 --- a/read.py +++ b/read.py @@ -3,8 +3,8 @@ """ Created on Tue Apr 30 09:38:17 2019 -Reads source data (file, pandas DataFrame or pd.io.parsers.TextFileReader) to -a pandas DataFrame. The source data model needs to be input to the module as +Reads source data (file, pandas DataFrame or pd.io.parsers.TextFileReader) to +a pandas DataFrame. The source data model needs to be input to the module as a named model (included in the module) or as the path to a data model. Data is validated against its data model after reading, producing a boolean mask. @@ -26,7 +26,6 @@ import logging import json def read(source, data_model = None, data_model_path = None, sections = None,chunksize = None, - supp_section = None, supp_model = None, supp_model_path = None, skiprows = None, out_path = None ): logging.basicConfig(format='%(levelname)s\t[%(asctime)s](%(filename)s)\t%(message)s', @@ -50,39 +49,24 @@ def read(source, data_model = None, data_model_path = None, sections = None,chun schema = schemas.read_schema( schema_name = data_model, ext_schema_path = data_model_path) if not schema: return - if supp_section: - logging.info("READING SUPPLEMENTAL DATA MODEL SCHEMA FILE...") - supp_schema = schemas.read_schema( schema_name = supp_model, ext_schema_path = supp_model_path) - if not supp_schema: - return - else: - supp_schema = None + # 2. Read data imodel = data_model if data_model else data_model_path logging.info("EXTRACTING DATA FROM MODEL: {}".format(imodel)) data, valid = reader.read_model(source,schema, sections = sections, chunksize = chunksize, skiprows = skiprows) - # 3. Read additional format: on error, return what's been read so far... - # Mmmmm, make sure we can mix meta_file_formats: eg. core('FIXED_WIDTH')-supp("DELIMITED") - if supp_section: - i_suppmodel = supp_model if supp_model else supp_model_path - logging.info("EXTRACTING SUPPLEMENTAL DATA FROM MODEL: {}".format(i_suppmodel)) - data, valid = reader.add_supplemental(data, supp_section, supp_schema, valid) - if isinstance(data,pd.io.parsers.TextFileReader): - logging.info('...RESTORING DATA PARSER') - data = pandas_TextParser_hdlr.restore(data.f,data.orig_options) # 4. Create out data attributes logging.info("CREATING OUTPUT DATA ATTRIBUTES FROM DATA MODEL(S)") data_columns = [ x for x in data ] if isinstance(data,pd.DataFrame) else data.orig_options['names'] - out_atts = schemas.df_schema(data_columns, schema, data_model, supp_section = supp_section, supp_schema = supp_schema, supp_model = supp_model ) + out_atts = schemas.df_schema(data_columns, schema, data_model) # 5. Complete data validation logging.info("VALIDATING DATA") - valid = validate.validate(data, out_atts, valid, data_model = data_model, data_model_path = data_model_path, supp_section = supp_section, supp_model = supp_model, supp_model_path = supp_model_path) + valid = validate.validate(data, out_atts, valid, data_model = data_model, data_model_path = data_model_path) if isinstance(data,pd.io.parsers.TextFileReader): logging.info('...RESTORING DATA PARSER') data = pandas_TextParser_hdlr.restore(data.f,data.orig_options) - + if out_path: logging.info('WRITING DATA TO FILES IN: {}'.format(out_path)) cols = [ x for x in data ] @@ -96,12 +80,12 @@ def read(source, data_model = None, data_model_path = None, sections = None,chun valid.to_csv(os.path.join(out_path,'valid_mask.csv'), header = header, encoding = 'utf-8',index = True, index_label='index') with open(os.path.join(out_path,'atts.json'),'w') as fileObj: json.dump(out_atts_json,fileObj,indent=4) - + return {'data':data,'atts':out_atts,'valid_mask':valid} if __name__=='__main__': kwargs = dict(arg.split('=') for arg in sys.argv[2:]) if 'sections' in kwargs.keys(): kwargs.update({ 'sections': [ x.strip() for x in kwargs.get('sections').split(",")] }) - read(sys.argv[1], - **kwargs) # kwargs \ No newline at end of file + read(sys.argv[1], + **kwargs) # kwargs diff --git a/read.py.old b/read.py.old new file mode 100644 index 0000000..20b88ba --- /dev/null +++ b/read.py.old @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Apr 30 09:38:17 2019 + +Reads source data (file, pandas DataFrame or pd.io.parsers.TextFileReader) to +a pandas DataFrame. The source data model needs to be input to the module as +a named model (included in the module) or as the path to a data model. + +Data is validated against its data model after reading, producing a boolean mask. + +Calls the schemas, reader and valiate modules in the tool to access the data models, +read the data and validate it. + +@author: iregon +""" +import os +import sys +import pandas as pd +from mdf_reader.reader import reader as reader +from mdf_reader.validate import validate as validate +import mdf_reader.schemas as schemas +import mdf_reader.properties as properties +import mdf_reader.common.pandas_TextParser_hdlr as pandas_TextParser_hdlr +import logging +import json + +def read(source, data_model = None, data_model_path = None, sections = None,chunksize = None, + supp_section = None, supp_model = None, supp_model_path = None, + skiprows = None, out_path = None ): + + logging.basicConfig(format='%(levelname)s\t[%(asctime)s](%(filename)s)\t%(message)s', + level=logging.INFO,datefmt='%Y%m%d %H:%M:%S',filename=None) + + # 0. Make sure min info is available + if not data_model and not data_model_path: + logging.error('A valid data model name or path to data model must be provided') + return + if not isinstance(source,tuple(properties.supported_sources)): + if not source: + logging.error('Data source is empty (first argument to read()) ') + return + elif not os.path.isfile(source): + logging.error('Can\'t reach data source {} as a file'.format(source)) + logging.info('Supported in-memory data sources are {}'.format(",".join(properties.supported_sources))) + return + + # 1. Read schema(s) and get file format + logging.info("READING DATA MODEL SCHEMA FILE...") + schema = schemas.read_schema( schema_name = data_model, ext_schema_path = data_model_path) + if not schema: + return + if supp_section: + logging.info("READING SUPPLEMENTAL DATA MODEL SCHEMA FILE...") + supp_schema = schemas.read_schema( schema_name = supp_model, ext_schema_path = supp_model_path) + if not supp_schema: + return + else: + supp_schema = None + # 2. Read data + imodel = data_model if data_model else data_model_path + logging.info("EXTRACTING DATA FROM MODEL: {}".format(imodel)) + data, valid = reader.read_model(source,schema, sections = sections, chunksize = chunksize, skiprows = skiprows) + # 3. Read additional format: on error, return what's been read so far... + # Mmmmm, make sure we can mix meta_file_formats: eg. core('FIXED_WIDTH')-supp("DELIMITED") + if supp_section: + i_suppmodel = supp_model if supp_model else supp_model_path + logging.info("EXTRACTING SUPPLEMENTAL DATA FROM MODEL: {}".format(i_suppmodel)) + data, valid = reader.add_supplemental(data, supp_section, supp_schema, valid) + if isinstance(data,pd.io.parsers.TextFileReader): + logging.info('...RESTORING DATA PARSER') + data = pandas_TextParser_hdlr.restore(data.f,data.orig_options) + + # 4. Create out data attributes + logging.info("CREATING OUTPUT DATA ATTRIBUTES FROM DATA MODEL(S)") + data_columns = [ x for x in data ] if isinstance(data,pd.DataFrame) else data.orig_options['names'] + out_atts = schemas.df_schema(data_columns, schema, data_model, supp_section = supp_section, supp_schema = supp_schema, supp_model = supp_model ) + + # 5. Complete data validation + logging.info("VALIDATING DATA") + valid = validate.validate(data, out_atts, valid, data_model = data_model, data_model_path = data_model_path, supp_section = supp_section, supp_model = supp_model, supp_model_path = supp_model_path) + if isinstance(data,pd.io.parsers.TextFileReader): + logging.info('...RESTORING DATA PARSER') + data = pandas_TextParser_hdlr.restore(data.f,data.orig_options) + + if out_path: + logging.info('WRITING DATA TO FILES IN: {}'.format(out_path)) + cols = [ x for x in data ] + if isinstance(cols[0],tuple): + header = [":".join(x) for x in cols] + out_atts_json = { ":".join(x):out_atts.get(x) for x in out_atts.keys() } + else: + header = cols + out_atts_json = out_atts + data.to_csv(os.path.join(out_path,'data.csv'), header = header, encoding = 'utf-8',index = True, index_label='index') + valid.to_csv(os.path.join(out_path,'valid_mask.csv'), header = header, encoding = 'utf-8',index = True, index_label='index') + with open(os.path.join(out_path,'atts.json'),'w') as fileObj: + json.dump(out_atts_json,fileObj,indent=4) + + return {'data':data,'atts':out_atts,'valid_mask':valid} + +if __name__=='__main__': + kwargs = dict(arg.split('=') for arg in sys.argv[2:]) + if 'sections' in kwargs.keys(): + kwargs.update({ 'sections': [ x.strip() for x in kwargs.get('sections').split(",")] }) + read(sys.argv[1], + **kwargs) # kwargs \ No newline at end of file diff --git a/reader/get_sections.py b/reader/get_sections.py new file mode 100644 index 0000000..4d8a569 --- /dev/null +++ b/reader/get_sections.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Apr 30 09:38:17 2019 + +Splits string reports in sections using a data model layout + +Input and output are simple pandas dataframes, with the output DF column names +as the section names + +To work with a pandas TextParser, loop through this module. + +Internally works assuming highest complexity in the input data model: +multiple non sequential sections + +DEV NOTES: + +1) make sure we use Series when working with Series, DataFrames otherwise... +like now: + threads[thread_id]['data'] = pd.Series(threads[thread_id]['parent_data'][0].str[0:section_len]) +instead of: + threads[thread_id]['data'] = pd.DataFrame(threads[thread_id]['parent_data'][0].str[0:section_len]) + +on data import in import_data.py, we use pd.read_fwf because is more general +use, also support to chunking would make converting to series a bit dirty... + +2) Can we extend (do we need to?) this to reading sequential sections with + no sentinals? apparently (see td11) we are already able to do that: + provided the section is in a sequential parsing_order group + +@author: iregon +""" + +import pandas as pd +from copy import deepcopy +import logging +import mdf_reader.properties as properties + + +# --------------------------------------------------------------------------- +# FUNCTIONS TO PERFORM INITIAL SEPARATION OF SECTIONS: MAIN IS GET_SECTIONS() +# --------------------------------------------------------------------------- +def extract_data(): + section_len = section_lens.get(threads[thread_id]['section']) + if section_len: + threads[thread_id]['data'] = pd.Series(threads[thread_id]['parent_data'][0].str[0:section_len]) # object consistency needed here + threads[thread_id]['modulo'] = pd.DataFrame(threads[thread_id]['parent_data'][0].str[section_len:]) # object consistency needed here + else: + threads[thread_id]['data'] = pd.Series(threads[thread_id]['parent_data'][0].str[0:]) #threads[thread_id]['parent_data'].copy() + # Could even be like with section_len (None in section_len will read to the end) + threads[thread_id]['modulo'] = pd.DataFrame(columns = [0]) # Just for consistency + del threads[thread_id]['parent_data'] + +def add_next_children(): + global children_parsing_order, branch_parsing_order, children_group_type, children_group_number + children_parsing_order = deepcopy(threads[thread_id]['parsing_order']) + branch_parsing_order = deepcopy(threads[thread_id]['parsing_order']) + children_group_type = list(children_parsing_order[0])[0] + children_group_number = threads[thread_id]['children_group_number'] + threads[thread_id]['children_no'] = 0 + threads[thread_id]['children'] = [] + add_children() + +def add_higher_group_children(): + global children_parsing_order, branch_parsing_order, children_group_type, children_group_number + children_parsing_order = deepcopy(threads[thread_id]['parsing_order']) + children_parsing_order.pop(0) # Move to next group of sections + if len(children_parsing_order) > 0: + branch_parsing_order = deepcopy(threads[thread_id]['parsing_order']) + branch_parsing_order.pop(0) + children_group_type = list(children_parsing_order[0])[0] + children_group_number = threads[thread_id]['children_group_number'] + 1 + add_children() + +def add_children(): + if children_group_type == 's': + add_static_children() + else: + add_dynamic_children() + +def add_static_children(): + threads[thread_id]['children_no'] += 1 + children_thread_id = str(children_group_number) + str(0) + thread_id + threads[thread_id]['children'].append(children_thread_id) + # Now build children's thread + children_section = children_parsing_order[0][children_group_type].pop(0) + grandchildren_group_number = children_group_number + if len(children_parsing_order[0][children_group_type]) == 0: + children_parsing_order.pop(0) + if len(children_parsing_order) > 0: + grandchildren_group_number += 1 + else: + grandchildren_group_number = None + threads[children_thread_id] = {'parsing_order':children_parsing_order} + threads[children_thread_id]['group_number'] = children_group_number + threads[children_thread_id]['group_type'] = children_group_type + threads[children_thread_id]['section'] = children_section + threads[children_thread_id]['parent_data'] = threads[thread_id]['modulo'] + threads[thread_id]['modulo'].iloc[0:0] # Remove reports from modulo + threads[children_thread_id]['children_group_number'] = grandchildren_group_number + +def add_dynamic_children(): + for i in range(0,len(children_parsing_order[0][children_group_type])): + branch_i_parsing_order = deepcopy(branch_parsing_order) + children_thread_id = str(children_group_number) + str(i+1) + thread_id + # Now build children's thread + children_section = children_parsing_order[0][children_group_type].pop(0) + children_idx = threads[thread_id]['modulo'].loc[threads[thread_id]['modulo'][0].str[0:sentinals_lens.get(children_section)] == sentinals.get(children_section)].index + if len(children_idx) == 0: + continue + threads[thread_id]['children'].append(children_thread_id) + threads[thread_id]['children_no'] += 1 + branch_i_parsing_order[0][children_group_type].remove(children_section) + grandchildren_group_number = children_group_number + if len(branch_i_parsing_order[0][children_group_type]) == 0 or children_group_type == 'e': + branch_i_parsing_order.pop(0) + if len(children_parsing_order) > 0: + grandchildren_group_number += 1 + else: + grandchildren_group_number = None + threads[children_thread_id] = {'parsing_order':branch_i_parsing_order} + threads[children_thread_id]['group_number'] = children_group_number + threads[children_thread_id]['group_type'] = children_group_type + threads[children_thread_id]['section'] = children_section + threads[children_thread_id]['parent_data'] = threads[thread_id]['modulo'].loc[children_idx] + threads[thread_id]['modulo'].drop(children_idx,inplace = True) + threads[children_thread_id]['children_group_number'] = grandchildren_group_number + if (len(threads[thread_id]['modulo'])) > 0: + add_higher_group_children() + +def extract_sections(df_in): + # threads elements: + # 'parsing_order' What needs to be applied to current parent data + # 'group_number' Order in the global parsing order + # 'group_type' Is it sequential, exclusive or optional + # 'section' Section name to be extracted from parent_data to data + # 'parent_data' Inital data from which section must be extracted + # 'data' Section data extracted from parent_data + # 'modulo' Reminder of parent_data after extracting section (data) + # 'children_no' Number of children threads to build, based on next parsing order list element. Resets to number of active children + # 'children' Thread id for every child + # 'children_group_number' Group number (in the global parsing order, of the children) + global sentinals, section_lens, sentinal_lens, parsing_order + global children_group_type + global threads + global thread_id + global group_type + + # Initial "node': input data + threads = dict() + thread_id = '00' + threads_queue = [thread_id] + threads[thread_id] = {'parsing_order':parsing_order} + threads[thread_id]['group_number'] = 0 + threads[thread_id]['group_type'] = None + threads[thread_id]['section'] = None + threads[thread_id]['parent_data'] = df_in + threads[thread_id]['data'] = None + threads[thread_id]['modulo'] = threads[thread_id]['parent_data'] + del threads[thread_id]['parent_data'] + threads[thread_id]['children_group_number'] = 1 + add_next_children() + threads_queue.extend(threads[thread_id]['children']) + threads_queue.remove(thread_id) + # And now, once initialized, let it grow: + logging.info('Processing section partitioning threads') + while threads_queue: + thread_id = threads_queue[0] + logging.info('{} ...'.format(thread_id)) + group_type = threads[thread_id]['group_type'] + # get section data + extract_data() + # kill thread if nothing there + if len(threads[thread_id]['data']) == 0: + del threads[thread_id] + logging.info('{} deleted: no data'.format(thread_id)) + threads_queue.pop(0) + continue + # build children threads + if len(threads[thread_id]['parsing_order']) > 0 and len(threads[thread_id]['modulo']) > 0: + add_next_children() + threads_queue.extend(threads[thread_id]['children']) + #del threads[thread_id]['modulo'] # not until we control what to do whit leftovers.... + threads_queue.pop(0) + logging.info('done') + section_dict = dict() + section_groups = [ d[x] for d in parsing_order for x in d.keys() ] + sections = [item for sublist in section_groups for item in sublist] + for section in sections: + #section_dict[section] = pd.DataFrame() # Index as initial size to help final merging + section_dict[section] = pd.Series() + thread_ids = [ x for x in threads.keys() if threads[x]['section'] == section ] + for thread_id in thread_ids: + section_dict[section] = section_dict[section].append(threads[thread_id]['data'],ignore_index=False) + section_dict[section].sort_index(inplace=True) + return section_dict + +# --------------------------------------------------------------------------- +# MAIN +# --------------------------------------------------------------------------- +def get_sections(StringDf, schema, read_sections): + global sentinals, section_lens, sentinals_lens + global parsing_order + + if len(schema['sections'].keys())> 1: + section_lens = { section: schema['sections'][section]['header'].get('length') for section in schema['sections'].keys()} + sentinals = { section: schema['sections'][section]['header'].get('sentinal') for section in schema['sections'].keys()} + sentinals_lens = { section: len(sentinals.get(section)) if sentinals.get(section) else 0 for section in sentinals.keys()} + parsing_order = schema['header']['parsing_order'] + # Get sections separated + section_strings = extract_sections(StringDf) + # Paste in order in a single dataframe with columns named as sections + # Do not include sections not asked for + df_out = pd.DataFrame() + for section in read_sections: + df_out = pd.concat([df_out,section_strings[section].rename(section)],sort = False,axis=1) + else: + df_out = StringDf + df_out.columns = read_sections + + + return df_out diff --git a/reader/import_data.py b/reader/import_data.py new file mode 100644 index 0000000..a98a184 --- /dev/null +++ b/reader/import_data.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Jan 10 13:17:43 2020 + +FUNCTION TO PREPARE SOURCE DATA TO WHAT GET_SECTIONS() EXPECTS, AN ITERABLE: +EITHER A PD.IO.PARSERS.TEXTFILEREADER OR A LIST, DEPENDING ON +SOURCE TYPE AND CHUNKSIZE ARGUMENT +BASICALLY 1 RECORD (ONE OR MULTIPLE REPORTS) IN ONE LINE + +delimiter="\t" option in pandas.read_fwf avoids white spaces at taild +to be stripped + +@author: iregon + +OPTIONS IN OLD DEVELOPMENT: + 1. DLMT: delimiter = ',' default + names = [ (x,y) for x in schema['sections'].keys() for y in schema['sections'][x]['elements'].keys()] + missing = { x:schema['sections'][x[0]]['elements'][x[1]].get('missing_value') for x in names } + TextParser = pd.read_csv(source,header = None, delimiter = delimiter, encoding = 'utf-8', + dtype = 'object', skip_blank_lines = False, chunksize = chunksize, + skiprows = skiprows, names = names, na_values = missing) + + 2. FWF:# delimiter = '\t' so that it reads blanks as blanks, otherwise reads as empty: NaN + this applies mainly when reading elements from sections, but we leave it also here + TextParser = pd.read_fwf(source,widths=[FULL_WIDTH],header = None, skiprows = skiprows, delimiter="\t", chunksize = chunksize) + +""" + +import pandas as pd +import os +from mdf_reader import properties + +def import_data(source,chunksize = None, skiprows = None): + + if isinstance(source,pd.io.parsers.TextFileReader): + TextParser = source + elif os.path.isfile(source): + TextParser = pd.read_fwf(source,widths=[properties.MAX_FULL_REPORT_WIDTH],header = None, delimiter="\t", skiprows = skiprows, chunksize = chunksize) + if not chunksize: + TextParser = [TextParser] + else: + print('Error') + return TextParser diff --git a/reader/meta_formats/delimited.py b/reader/meta_formats/delimited.py index 5aebbb1..f38fe19 100644 --- a/reader/meta_formats/delimited.py +++ b/reader/meta_formats/delimited.py @@ -8,8 +8,8 @@ DataFrame. Assumes source data as data model layout and all sections and elements in data. Reads in full data content, then decodes and converts the elements. - -Internally works assuming highest complexity in the input data model: + +Internally works assuming highest complexity in the input data model: multiple sequential sections @author: iregon @@ -44,36 +44,10 @@ else: from io import BytesIO as BytesIO # --------------------------------------------------------------------------- -# FUNCTION TO PREPARE SOURCE DATA TO WHAT GET_SECTIONS() EXPECTS, AN ITERABLE: -# EITHER A PD.IO.PARSERS.TEXTFILEREADER OR A LIST, DEPENDING ON -# SOURCE TYPE AND CHUNKSIZE ARGUMENT -# BASICALLY 1 RECORD (ONE OR MULTIPLE REPORTS) IN ONE LINE -# --------------------------------------------------------------------------- -def source_11(source, schema, chunksize = None, skiprows = None, delimiter = ',' ): - # 11: 1 REPORT PER RECORD IN ONE LINE - if isinstance(source,pd.DataFrame): - TextParser = source - TextParser = [TextParser] - elif isinstance(source,pd.io.parsers.TextFileReader): - TextParser = source - else: - names = [ (x,y) for x in schema['sections'].keys() for y in schema['sections'][x]['elements'].keys()] - missing = { x:schema['sections'][x[0]]['elements'][x[1]].get('missing_value') for x in names } - TextParser = pd.read_csv(source,header = None, delimiter = delimiter, encoding = 'utf-8', - dtype = 'object', skip_blank_lines = False, chunksize = chunksize, - skiprows = skiprows, names = names, na_values = missing) - if not chunksize: - TextParser = [TextParser] - return TextParser - -def source_1x(source,schema, chunksize = None, skiprows = None, delimiter = ',' ): - # 1X: MULTIPLE REPORTS PER RECORD IN ONE LINE - return source_11(source,schema, chunksize = chunksize, skiprows = skiprows, delimiter = ',' ) -# --------------------------------------------------------------------------- # MAIN FUNCTIONS # --------------------------------------------------------------------------- def source_to_df(source, schema, read_sections, idx_offset = 0): - + column_names = [] for section in schema['sections']: column_names.extend([ (section,i) for i in schema['sections'][section]['elements'] ]) @@ -102,11 +76,11 @@ def source_to_df(source, schema, read_sections, idx_offset = 0): for element in dtypes.keys(): missing = df[element].isna() if element in encoded: - df[element] = decoders.get(encodings.get(element)).get(dtypes.get(element))(df[element]) - + df[element] = decoders.get(encodings.get(element)).get(dtypes.get(element))(df[element]) + kwargs = { converter_arg:schema['sections'][element[0]]['elements'][element[1]].get(converter_arg) for converter_arg in properties.data_type_conversion_args.get(dtypes.get(element)) } - df[element] = converters.get(dtypes.get(element))(df[element], **kwargs) - + df[element] = converters.get(dtypes.get(element))(df[element], **kwargs) + valid[element] = missing | df[element].notna() # Add _datetime section: watch this if we mean to do multiple reports in record!!! # for this to be valid, would have to assume that same day reports and that date in common report section.... @@ -118,11 +92,11 @@ def source_to_df(source, schema, read_sections, idx_offset = 0): out_dtypes.update({ date_name: 'object' }) df = functions.df_prepend_datetime(df, date_elements, date_parser['format'], date_name = date_name ) valid = pd.concat([pd.DataFrame(index = valid.index, data = True,columns = [date_name]),valid],sort = False,axis=1) - - out_dtypes.update({ i:df[i].dtype.name for i in df if df[i].dtype.name in properties.numpy_floats}) - if idx_offset > 0: + + out_dtypes.update({ i:df[i].dtype.name for i in df if df[i].dtype.name in properties.numpy_floats}) + if idx_offset > 0: df.index = df.index + idx_offset - # If I get into the section: is it really only removing that named element from that section???? have to check + # If I get into the section: is it really only removing that named element from that section???? have to check #element[section].drop([element],axis=1,level=1,inplace = True) # Drop level 0 in multilevel if len(read_sections)==1 or section is dummy # 3. Add chunk data to output @@ -130,5 +104,5 @@ def source_to_df(source, schema, read_sections, idx_offset = 0): df.to_csv(output_buffer,header = header, mode = 'a', encoding = 'utf-8',index = False) valid.to_csv(valid_buffer,header=header, mode = 'a', encoding = 'utf-8',index = False) I_CHUNK += 1 - - return output_buffer, valid_buffer, out_dtypes \ No newline at end of file + + return output_buffer, valid_buffer, out_dtypes diff --git a/reader/meta_formats/fixed_width.py b/reader/meta_formats/fixed_width.py index 17b7c9c..29a6fe5 100644 --- a/reader/meta_formats/fixed_width.py +++ b/reader/meta_formats/fixed_width.py @@ -10,8 +10,8 @@ Uses the data model layout to first find sections in the data and internally store the data in sections, then reads in, decodes and converts the elements on a section by section basis and finally merges that together in the output dataframe. - -Internally works assuming highest complexity in the input data model: + +Internally works assuming highest complexity in the input data model: multiple non sequential sections @author: iregon @@ -41,7 +41,7 @@ if sys.version_info[0] >= 3: else: py3 = False from io import BytesIO as BytesIO - + FULL_WIDTH = 100000 @@ -147,13 +147,13 @@ def get_sections(df_in): # 'modulo' Reminder of parent_data after extracting section (data) # 'children_no' Number of children threads to build, based on next parsing order list element. Resets to number of active children # 'children' Thread id for every child - # 'children_group_number' Group number (in the global parsing order, of the children) + # 'children_group_number' Group number (in the global parsing order, of the children) global sentinals, section_lens, sentinal_lens, parsing_order global children_group_type global threads global thread_id global group_type - + # Initial "node': input data threads = dict() thread_id = '00' @@ -202,39 +202,13 @@ def get_sections(df_in): section_dict[section].sort_index(inplace=True) return section_dict -# --------------------------------------------------------------------------- -# FUNCTION TO PREPARE SOURCE DATA TO WHAT GET_SECTIONS() EXPECTS, AN ITERABLE: -# EITHER A PD.IO.PARSERS.TEXTFILEREADER OR A LIST, DEPENDING ON -# SOURCE TYPE AND CHUNKSIZE ARGUMENT -# BASICALLY 1 RECORD (ONE OR MULTIPLE REPORTS) IN ONE LINE -# --------------------------------------------------------------------------- -def source_11(source,schema, chunksize = None, skiprows = None, delimiter = None ): - # 11: 1 REPORT PER RECORD IN ONE LINE - # delimiter = '\t' so that it reads blanks as blanks, otherwise reads as empty: NaN - # this applies mainly when reading elements from sections, but we leave it also here - if isinstance(source,pd.DataFrame): - TextParser = source - TextParser.columns = [0] - TextParser = [TextParser] - elif isinstance(source,pd.io.parsers.TextFileReader): - TextParser = source - else: - TextParser = pd.read_fwf(source,widths=[FULL_WIDTH],header = None, skiprows = skiprows, delimiter="\t", chunksize = chunksize) - if not chunksize: - TextParser = [TextParser] - return TextParser - -def source_1x(source,schema, chunksize = None, skiprows = None, delimiter = None ): - # 1X: MULTIPLE REPORTS PER RECORD IN ONE LINE - return source_11(source,schema, chunksize = chunksize, skiprows = skiprows, delimiter = delimiter ) - # --------------------------------------------------------------------------- # MAIN FUNCTIONS # --------------------------------------------------------------------------- def source_to_df(TextParser, schema, read_sections, idx_offset = 0): global sentinals, section_lens, sentinals_lens global parsing_order - + section_lens = { section: schema['sections'][section]['header'].get('length') for section in schema['sections'].keys()} sentinals = { section: schema['sections'][section]['header'].get('sentinal') for section in schema['sections'].keys()} sentinals_lens = { section: schema['sections'][section]['header'].get('sentinal_length') for section in schema['sections'].keys()} @@ -247,7 +221,7 @@ def source_to_df(TextParser, schema, read_sections, idx_offset = 0): out_dtypes.update({ (section,i):properties.pandas_dtypes.get(schema['sections'][section]['elements'][i].get('column_type')) for i in schema['sections'][section]['elements'].keys() } ) else: for section in read_sections: - out_dtypes.update({ i:properties.pandas_dtypes.get(schema['sections'][section]['elements'][i].get('column_type')) for i in schema['sections'][section]['elements'].keys() } ) + out_dtypes.update({ i:properties.pandas_dtypes.get(schema['sections'][section]['elements'][i].get('column_type')) for i in schema['sections'][section]['elements'].keys() } ) I_CHUNK = 0 output_buffer = StringIO() if py3 else BytesIO() valid_buffer = StringIO() if py3 else BytesIO() @@ -297,12 +271,12 @@ def source_to_df(TextParser, schema, read_sections, idx_offset = 0): missing = section_elements[element].isna() if element in encoded: section_elements[element] = decoders.get(section_encoding.get(element)).get(section_dtypes.get(element))(section_elements[element]) - + kwargs = { converter_arg:schema['sections'][section]['elements'][element].get(converter_arg) for converter_arg in properties.data_type_conversion_args.get(section_dtypes.get(element)) } section_elements[element] = converters.get(section_dtypes.get(element))(section_elements[element], **kwargs) - + section_valid[element] = missing | section_elements[element].notna() - + # 3.1.3. Format section: # - Put data in its rightfull place of the original data (indexing!) and remove section elements not desired # - Name columns: tuples (section, element_name) for multisection, element_name if one section @@ -338,4 +312,4 @@ def source_to_df(TextParser, schema, read_sections, idx_offset = 0): valid_out.to_csv(valid_buffer,header=header, mode = 'a', encoding = 'utf-8',index = False) I_CHUNK += 1 - return output_buffer,valid_buffer,out_dtypes \ No newline at end of file + return output_buffer,valid_buffer,out_dtypes diff --git a/reader/read_sections.py b/reader/read_sections.py new file mode 100644 index 0000000..9bdd361 --- /dev/null +++ b/reader/read_sections.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Jan 10 13:17:43 2020 + +@author: iregon +""" + +import pandas as pd +from io import StringIO as StringIO +import mdf_reader.properties as properties +import csv # To disable quoting +from mdf_reader.common.converters import converters +from mdf_reader.common.decoders import decoders + +def extract_fixed_width(section_serie_bf,section_schema): + # Read section elements descriptors + section_names = section_schema['elements'].keys() + section_widths = list(map(lambda x: x if x else properties.MAX_FULL_REPORT_WIDTH, [ section_schema['elements'][i].get('field_length') for i in section_names ])) + section_missing = { i:section_schema['elements'][i].get('missing_value') if section_schema['elements'][i].get('disable_white_strip') == True + else [section_schema['elements'][i].get('missing_value')," "*section_schema['elements'][i].get('field_length', properties.MAX_FULL_REPORT_WIDTH)] + for i in section_names } + section_elements = pd.read_fwf(section_serie_bf, widths = section_widths, header = None, names = section_names , na_values = section_missing, delimiter="\t", encoding = 'utf-8', dtype = 'object', skip_blank_lines = False ) + return section_elements + +def extract_delimited(section_serie_bf,section_schema): + delimiter = section_schema['header'].get('delimiter') + section_names = section_schema['elements'].keys() + section_missing = { x:section_schema['elements'][x].get('missing_value') for x in section_names } + section_elements = pd.read_csv(section_serie_bf,header = None, delimiter = delimiter, encoding = 'utf-8', + dtype = 'object', skip_blank_lines = False, + names = section_names, na_values = section_missing) + + return section_elements + +def read_data(section_df,section_schema): + section_names = section_df.columns + section_dtypes = { i:section_schema['elements'][i]['column_type'] for i in section_names } + encoded = [ (x) for x in section_names if 'encoding' in section_schema['elements'][x]] + section_encoding = { i:section_schema['elements'][i]['encoding'] for i in encoded } + + for element in section_dtypes.keys(): + #missing = section_elements[element].isna() + if element in encoded: + section_df[element] = decoders.get(section_encoding.get(element)).get(section_dtypes.get(element))(section_df[element]) + + kwargs = { converter_arg:section_schema['elements'][element].get(converter_arg) for converter_arg in properties.data_type_conversion_args.get(section_dtypes.get(element)) } + section_df[element] = converters.get(section_dtypes.get(element))(section_df[element], **kwargs) + +# section_valid[element] = missing | section_elements[element].notna() + + return section_df + +def read_sections(sections_df, schema): + + multiindex = True if len(sections_df.columns) > 1 or sections_df.columns[0] != properties.dummy_level else False + data_df = pd.DataFrame() + + out_dtypes = dict() + + for section in sections_df.columns: + print('Reading section {}'.format(section)) + section_schema = schema['sections'].get(section) + disable_read = section_schema.get('header').get('disable_read') + + if not disable_read: + field_layout = section_schema.get('header').get('field_layout') + ignore = [ i for i in section_schema['elements'].keys() if section_schema['elements'][i].get('ignore') ] # evals to True if set and true, evals to False if not set or set and false + # Get rid of false delimiters in fixed_width + delimiter = section_schema['header'].get('delimiter') + if delimiter and field_layout == 'fixed_width': + sections_df[section] = sections_df[section].str.replace(delimiter,'') + + section_buffer = StringIO() + # Writing options from quoting on to prevent supp buoy data to be quoted: + # maybe this happenned because buoy data has commas, and pandas makes its own decission about + # how to write that..... + #https://stackoverflow.com/questions/21147058/pandas-to-csv-output-quoting-issue + # quoting=csv.QUOTE_NONE was failing when a section is empty (or just one record in a section,...) + # Here indices are lost, have to give the real ones, those in section_strings: + # we'll see if we do that in the caller module or here.... + sections_df[section].to_csv(section_buffer,header=False, encoding = 'utf-8',index = False)#,quoting=csv.QUOTE_NONE,escapechar="\\",sep="\t") + ssshh = section_buffer.seek(0) + # Get the individual elements as objects + if field_layout == 'fixed_width': + section_elements_obj = extract_fixed_width(section_buffer,section_schema) + elif field_layout == 'delimited': + section_elements_obj = extract_delimited(section_buffer,section_schema) + + section_elements_obj.drop(ignore, axis = 1, inplace = True) + # Read the objects to their data types and apply decoding, scaling and so on... + section_elements = read_data(section_elements_obj,section_schema) + section_elements.index = sections_df[section].index + else: + section_elements = pd.DataFrame(sections_df[section],columns = [section]) + + if not disable_read: + if multiindex: + out_dtypes.update({ (section,i):properties.pandas_dtypes.get(section_schema['elements'][i].get('column_type')) for i in section_elements.columns } ) + out_dtypes.update({ (section,i):section_elements[i].dtype.name for i in section_elements if section_elements[i].dtype.name in properties.numpy_floats}) + else: + out_dtypes.update({ i:properties.pandas_dtypes.get(section_schema['elements'][i].get('column_type')) for i in section_elements.columns } ) + out_dtypes.update({ i:section_elements[i].dtype.name for i in section_elements if section_elements[i].dtype.name in properties.numpy_floats}) + else: + if multiindex: + out_dtypes.update({ (section,section):'object' } ) + else: + out_dtypes.update({ section:'object' } ) + + section_elements.columns = [ (section, x) for x in section_elements.columns] if multiindex else section_elements.columns + data_df = pd.concat([data_df,section_elements],sort = False,axis=1) + + return data_df,out_dtypes diff --git a/reader/reader.py b/reader/reader.py index 4309c8f..db2a381 100644 --- a/reader/reader.py +++ b/reader/reader.py @@ -27,7 +27,13 @@ import pandas as pd import numpy as np import logging from . import meta_formats + from .. import properties +from . import import_data +from . import get_sections +from . import read_sections + +import copy if sys.version_info[0] >= 3: py3 = True @@ -38,136 +44,70 @@ else: # Get pandas dtype for time_stamps pandas_timestamp_dtype = pd.to_datetime(pd.DataFrame(['20000101'])[0],format='%Y%m%d').dtypes -def add_supplemental(data, supp_section, supp_schema, valid): - # Supplemental data needs to have no sectioning: cannot merge dfs with different level depths in the columns... - try: - - supp_format = supp_schema['header'].get('format') - - if supp_format in properties.supported_meta_file_formats: - TextParser = data if isinstance(data, pd.io.parsers.TextFileReader) else [data] - TextParser_valid = valid if isinstance(valid, pd.io.parsers.TextFileReader) else [valid] - chunksize = data.orig_options['chunksize'] if isinstance(TextParser,pd.io.parsers.TextFileReader) else None - iidx_offset = chunksize if chunksize else 0 - output_buffer = StringIO() if py3 else BytesIO() - output_buffer_valid = StringIO() if py3 else BytesIO() - I_CHUNK = 0 - for idata,ivalid in zip(TextParser,TextParser_valid): - date_columns = list(np.where(idata.dtypes == pandas_timestamp_dtype)[0]) - dtypes = idata.dtypes.to_dict() - supp, supp_valid = read_model(idata[supp_section],supp_schema, idx_offset = I_CHUNK*iidx_offset ) - supp_date_columns = list(np.where(supp.dtypes == pandas_timestamp_dtype)[0] + len(idata.columns) - 1 ) - date_columns.extend(supp_date_columns) - date_columns = [ int(x) for x in date_columns ] # reader date parser won't take numpy.int64 from np.where as col index - if I_CHUNK == 0: - o_supp_dtypes = supp.dtypes.to_dict() - else: - o_supp_dtypes.update({ i:supp[i].dtype for i in supp if supp[i].dtype in properties.numpy_floats}) - supp_elements = supp.columns.to_list() - supp_dtypes = {} - for element in supp_elements: - supp_dtypes[(supp_section,element)] = o_supp_dtypes.get(element) - dtypes.pop((supp_section,idata[supp_section].columns.to_list()[0]), None) - idata.drop(supp_section, axis = 1, inplace = True, level = 0)# OMG: apparently, with multiindex, this does not drop the columns from idata.columns - ivalid.drop(supp_section, axis = 1, inplace = True, level = 0) - supp.columns = [ (supp_section,x) for x in supp.columns ] - supp_valid.columns = [ (supp_section,x) for x in supp_valid.columns ] - dtypes.update(supp_dtypes) - supp.index = idata.index - supp_valid.index = ivalid.index - column_names = [ x for x in idata if x[0] != supp_section ] - column_names.extend([ x for x in supp ]) - new_dtypes = { x:dtypes.get(x) for x in column_names } - idata = pd.concat([idata,supp],sort = False,axis=1) - ivalid = pd.concat([ivalid,supp_valid],sort = False,axis=1) - idata.to_csv(output_buffer,header=False, mode = 'a', encoding = 'utf-8',index = False) - ivalid.to_csv(output_buffer_valid,header=False, mode = 'a', encoding = 'utf-8',index = False) - I_CHUNK += 1 - - output_buffer.seek(0) - output_buffer_valid.seek(0) - for element in list(dtypes): - if new_dtypes.get(element) == pandas_timestamp_dtype: - new_dtypes[element] = 'object' # Only on output (on reading) will be then converted to datetime64[ns] type, cannot specify 'datetime' here: have to go through parser - data = pd.read_csv(output_buffer,names = idata.columns, dtype = new_dtypes, chunksize = chunksize, parse_dates = date_columns ) - valid = pd.read_csv(output_buffer_valid,names = ivalid.columns, chunksize = chunksize) - return data, valid - else: - logging.error('Supplemental file format not supported: {}'.format(supp_format)) - logging.warning('Supplemental data not extracted from supplemental section') - return data, valid - except Exception as e: - logging.warning('Supplemental data not extracted from supplemental section', exc_info=True) - return data, valid - - -def read_model(source,schema, sections = None, chunksize = None, skiprows = None, idx_offset = 0): - - meta_format = schema['header'].get('format') - if meta_format not in properties.supported_meta_file_formats: - logging.error('File format read from input schema not supported: {}'.format(meta_format)) - return - meta_reader = ".".join(['meta_formats',meta_format]) +def read_model(source,schema, sections = None, chunksize = None, skiprows = None): # 0. GET META FORMAT SUBCLASS --------------------------------------------- - if schema['header'].get('multiple_reports_per_line'): # needs to eval to True if set and True and to false if not set or false, without breaking - format_subclass = '1x' - else: - format_subclass = '11' + # For future use: some work already done in schema reading + if schema['header'].get('multiple_reports_per_line'): + logging.error('File format not yet supported') + sys.exit(1) # 1. PARSE SCHEMA --------------------------------------------------------- - delimiter = schema['header'].get('delimiter') parsing_order = schema['header'].get('parsing_order') # 2. DEFINE OUTPUT -------------------------------------------------------- # 2.1 Sections to read if not sections: sections = [ x.get(y) for x in parsing_order for y in x ] - read_sections = [y for x in sections for y in x] + read_sections_list = [y for x in sections for y in x] else: - read_sections = sections - multiindex = True if len(read_sections) > 1 or read_sections[0] != properties.dummy_level else False + read_sections_list = sections + + + # 3. HOMOGENEIZE INPUT DATA (FILE OR TEXTREADER) TO AN ITERABLE TEXTREADER + logging.info("Getting data string from source...") + TextParser = import_data.import_data(source, chunksize = chunksize, skiprows = skiprows) + + # 4. EXTRACT SECTIONS IN A PARSER; EXTRACT SECTIONS HERE AND READ DATA IN + # SAME LOOP? SHOULD DO.... + logging.info("Extracting sections...") + data_buffer = StringIO() - if format_subclass == '1x': - return schema - # 2.1 Elements names: same order as declared in schema, which is the order in which the readers read them... - names = [] - if schema['header'].get('date_parser'): - if multiindex: - names.extend([('_datetime','_datetime')]) - else: - names.extend(['_datetime']) - - for section in read_sections: - if multiindex: - names.extend([ (section,x) for x in schema['sections'][section]['elements'].keys() if not schema['sections'][section]['elements'][x].get('ignore') ]) - else: - names.extend([ x for x in schema['sections'][section]['elements'].keys() if not schema['sections'][section]['elements'][x].get('ignore') ]) - - # 3. GET DATA FROM SOURCE (DF, FILE OR TEXTREADER):------------------------ - # SIMPLE STRING PER REPORT/LINE - logging.info("Getting input data from source...") - source_function = eval(meta_reader + "." + "_".join(['source',format_subclass])) - TextParser = source_function(source,schema, chunksize = chunksize, skiprows = skiprows, delimiter = delimiter) - # 4. DO THE ACTUAL READING - reader_function = eval(meta_reader + "." + 'source_to_df') - logging.info("Reading data...") - [output_buffer,valid_buffer,dtypes] = reader_function(TextParser, schema, read_sections = read_sections, idx_offset = idx_offset ) - # 5. OUTPUT DATA:---------------------------------------------------------- - # WE'LL NEED TO POSPROCESS THIS WHEN READING MULTIPLE REPORTS PER LINE - output_buffer.seek(0) - valid_buffer.seek(0) - logging.info("Wrapping output....") - chunksize = TextParser.orig_options['chunksize'] if isinstance(TextParser,pd.io.parsers.TextFileReader) else None - logging.info('Data') - # 'datetime' is not a valid pandas dtype: Only on output (on reading) will be then converted (via parse_dates) to datetime64[ns] type, cannot specify 'datetime' (of any kind) here: will fail - date_columns = [] # Needs to be the numeric index of the column, as seems not to be able to work with tupples.... - for i,element in enumerate(list(dtypes)): - if dtypes.get(element) == 'datetime': - date_columns.append(i) - df_reader = pd.read_csv(output_buffer,names = names, chunksize = chunksize, dtype = dtypes, parse_dates = date_columns) - logging.info('Mask') - valid_reader = pd.read_csv(valid_buffer,names = names, chunksize = chunksize) - - return df_reader, valid_reader + +# valid_buffer = ... + for i,string_df in enumerate(TextParser): + # Get sections separated in a dataframe: one per column, only requested + # sections, ignore rest. + sections_df = get_sections.get_sections(string_df, schema, read_sections_list) + # Read elements from sections: along data chunks, resulting data types + # may vary if gaps + [data_df,out_dtypesi ] = read_sections.read_sections(sections_df, schema) + if i == 0: + out_dtypes = copy.deepcopy(out_dtypesi) + + for k in out_dtypesi: + if out_dtypesi in properties.numpy_floats: + out_dtypes.update({ k:out_dtypesi.get(k) }) + + data_df.to_csv(data_buffer,header = False, mode = 'a', encoding = 'utf-8',index = False) +# [output_buffer,valid_buffer,dtypes] = reader_function(TextParser, schema, read_sections = read_sections, idx_offset = idx_offset ) +# +# # 5. OUTPUT DATA:---------------------------------------------------------- +# # WE'LL NEED TO POSPROCESS THIS WHEN READING MULTIPLE REPORTS PER LINE + data_buffer.seek(0) +# valid_buffer.seek(0) +# logging.info("Wrapping output....") +# chunksize = TextParser.orig_options['chunksize'] if isinstance(TextParser,pd.io.parsers.TextFileReader) else None +# logging.info('Data') +# # 'datetime' is not a valid pandas dtype: Only on output (on reading) will be then converted (via parse_dates) to datetime64[ns] type, cannot specify 'datetime' (of any kind) here: will fail +# date_columns = [] # Needs to be the numeric index of the column, as seems not to be able to work with tupples.... +# for i,element in enumerate(list(dtypes)): +# if dtypes.get(element) == 'datetime': +# date_columns.append(i) + data_reader = pd.read_csv(data_buffer,names = data_df.columns, chunksize = chunksize, dtype = out_dtypes)#, parse_dates = date_columns) +# logging.info('Mask') +# valid_reader = pd.read_csv(valid_buffer,names = out_names, chunksize = chunksize) + +# return data_reader, valid_reader + return data_reader diff --git a/reader/reader.py.old b/reader/reader.py.old new file mode 100644 index 0000000..5c5054e --- /dev/null +++ b/reader/reader.py.old @@ -0,0 +1,173 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Apr 30 09:38:17 2019 + +Reads source data from a data model to a pandas DataFrame. + +Optionally, it reads supplemental data from the same source (from a different + data model) and pastes that to the output DataFrame + +Uses the meta_formats generic submodules ('delimited' and 'fixed_width') to +pre-format data source and read either generic type of data model. + +@author: iregon +""" + +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import absolute_import +# CAREFULL HERE: +# Note that in Python 3, the io.open function is an alias for the built-in open function. +# The built-in open function only supports the encoding argument in Python 3, not Python 2. +# https://docs.python.org/3.4/library/io.html?highlight=io +from io import StringIO as StringIO +import sys +import pandas as pd +import numpy as np +import logging +from . import meta_formats +from .. import properties + +if sys.version_info[0] >= 3: + py3 = True +else: + py3 = False + from io import BytesIO as BytesIO + +# Get pandas dtype for time_stamps +pandas_timestamp_dtype = pd.to_datetime(pd.DataFrame(['20000101'])[0],format='%Y%m%d').dtypes + +def add_supplemental(data, supp_section, supp_schema, valid): + # Supplemental data needs to have no sectioning: cannot merge dfs with different level depths in the columns... + try: + + supp_format = supp_schema['header'].get('format') + + if supp_format in properties.supported_meta_file_formats: + TextParser = data if isinstance(data, pd.io.parsers.TextFileReader) else [data] + TextParser_valid = valid if isinstance(valid, pd.io.parsers.TextFileReader) else [valid] + chunksize = data.orig_options['chunksize'] if isinstance(TextParser,pd.io.parsers.TextFileReader) else None + iidx_offset = chunksize if chunksize else 0 + output_buffer = StringIO() if py3 else BytesIO() + output_buffer_valid = StringIO() if py3 else BytesIO() + I_CHUNK = 0 + for idata,ivalid in zip(TextParser,TextParser_valid): + date_columns = list(np.where(idata.dtypes == pandas_timestamp_dtype)[0]) + dtypes = idata.dtypes.to_dict() + supp, supp_valid = read_model(idata[supp_section],supp_schema, idx_offset = I_CHUNK*iidx_offset ) + supp_date_columns = list(np.where(supp.dtypes == pandas_timestamp_dtype)[0] + len(idata.columns) - 1 ) + date_columns.extend(supp_date_columns) + date_columns = [ int(x) for x in date_columns ] # reader date parser won't take numpy.int64 from np.where as col index + if I_CHUNK == 0: + o_supp_dtypes = supp.dtypes.to_dict() + else: + o_supp_dtypes.update({ i:supp[i].dtype for i in supp if supp[i].dtype in properties.numpy_floats}) + supp_elements = supp.columns.to_list() + supp_dtypes = {} + for element in supp_elements: + supp_dtypes[(supp_section,element)] = o_supp_dtypes.get(element) + dtypes.pop((supp_section,idata[supp_section].columns.to_list()[0]), None) + idata.drop(supp_section, axis = 1, inplace = True, level = 0)# OMG: apparently, with multiindex, this does not drop the columns from idata.columns + ivalid.drop(supp_section, axis = 1, inplace = True, level = 0) + supp.columns = [ (supp_section,x) for x in supp.columns ] + supp_valid.columns = [ (supp_section,x) for x in supp_valid.columns ] + dtypes.update(supp_dtypes) + supp.index = idata.index + supp_valid.index = ivalid.index + column_names = [ x for x in idata if x[0] != supp_section ] + column_names.extend([ x for x in supp ]) + new_dtypes = { x:dtypes.get(x) for x in column_names } + idata = pd.concat([idata,supp],sort = False,axis=1) + ivalid = pd.concat([ivalid,supp_valid],sort = False,axis=1) + idata.to_csv(output_buffer,header=False, mode = 'a', encoding = 'utf-8',index = False) + ivalid.to_csv(output_buffer_valid,header=False, mode = 'a', encoding = 'utf-8',index = False) + I_CHUNK += 1 + + output_buffer.seek(0) + output_buffer_valid.seek(0) + for element in list(dtypes): + if new_dtypes.get(element) == pandas_timestamp_dtype: + new_dtypes[element] = 'object' # Only on output (on reading) will be then converted to datetime64[ns] type, cannot specify 'datetime' here: have to go through parser + data = pd.read_csv(output_buffer,names = idata.columns, dtype = new_dtypes, chunksize = chunksize, parse_dates = date_columns ) + valid = pd.read_csv(output_buffer_valid,names = ivalid.columns, chunksize = chunksize) + return data, valid + else: + logging.error('Supplemental file format not supported: {}'.format(supp_format)) + logging.warning('Supplemental data not extracted from supplemental section') + return data, valid + except Exception as e: + logging.warning('Supplemental data not extracted from supplemental section', exc_info=True) + return data, valid + + +def read_model(source,schema, sections = None, chunksize = None, skiprows = None, idx_offset = 0): + + meta_format = schema['header'].get('format') + if meta_format not in properties.supported_meta_file_formats: + logging.error('File format read from input schema not supported: {}'.format(meta_format)) + return + meta_reader = ".".join(['meta_formats',meta_format]) + + # 0. GET META FORMAT SUBCLASS --------------------------------------------- + if schema['header'].get('multiple_reports_per_line'): # needs to eval to True if set and True and to false if not set or false, without breaking + format_subclass = '1x' + else: + format_subclass = '11' + + # 1. PARSE SCHEMA --------------------------------------------------------- + + delimiter = schema['header'].get('delimiter') + parsing_order = schema['header'].get('parsing_order') + + # 2. DEFINE OUTPUT -------------------------------------------------------- + # 2.1 Sections to read + if not sections: + sections = [ x.get(y) for x in parsing_order for y in x ] + read_sections = [y for x in sections for y in x] + else: + read_sections = sections + multiindex = True if len(read_sections) > 1 or read_sections[0] != properties.dummy_level else False + + if format_subclass == '1x': + return schema + # 2.1 Elements names: same order as declared in schema, which is the order in which the readers read them... + names = [] + if schema['header'].get('date_parser'): + if multiindex: + names.extend([('_datetime','_datetime')]) + else: + names.extend(['_datetime']) + + for section in read_sections: + if multiindex: + names.extend([ (section,x) for x in schema['sections'][section]['elements'].keys() if not schema['sections'][section]['elements'][x].get('ignore') ]) + else: + names.extend([ x for x in schema['sections'][section]['elements'].keys() if not schema['sections'][section]['elements'][x].get('ignore') ]) + + # 3. GET DATA FROM SOURCE (DF, FILE OR TEXTREADER):------------------------ + # SIMPLE STRING PER REPORT/LINE + logging.info("Getting input data from source...") + source_function = eval(meta_reader + "." + "_".join(['source',format_subclass])) + TextParser = source_function(source,schema, chunksize = chunksize, skiprows = skiprows, delimiter = delimiter) + # 4. DO THE ACTUAL READING + reader_function = eval(meta_reader + "." + 'source_to_df') + logging.info("Reading data...") + [output_buffer,valid_buffer,dtypes] = reader_function(TextParser, schema, read_sections = read_sections, idx_offset = idx_offset ) + # 5. OUTPUT DATA:---------------------------------------------------------- + # WE'LL NEED TO POSPROCESS THIS WHEN READING MULTIPLE REPORTS PER LINE + output_buffer.seek(0) + valid_buffer.seek(0) + logging.info("Wrapping output....") + chunksize = TextParser.orig_options['chunksize'] if isinstance(TextParser,pd.io.parsers.TextFileReader) else None + logging.info('Data') + # 'datetime' is not a valid pandas dtype: Only on output (on reading) will be then converted (via parse_dates) to datetime64[ns] type, cannot specify 'datetime' (of any kind) here: will fail + date_columns = [] # Needs to be the numeric index of the column, as seems not to be able to work with tupples.... + for i,element in enumerate(list(dtypes)): + if dtypes.get(element) == 'datetime': + date_columns.append(i) + df_reader = pd.read_csv(output_buffer,names = names, chunksize = chunksize, dtype = dtypes, parse_dates = date_columns) + logging.info('Mask') + valid_reader = pd.read_csv(valid_buffer,names = names, chunksize = chunksize) + + return df_reader, valid_reader diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.A.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.A.json new file mode 100644 index 0000000..2a8daf9 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.A.json @@ -0,0 +1,11 @@ +{ + "0":"Increasing, then decreasing; atmopsheric pressure the same or higher than three hours ago", + "1":"Increasing, then steady; or increasing, then increasing more slowly - Atmospheric pressure now higher than three hours ago", + "2":"Increasing (steadily or unsteadily) - Atmospheric pressure now higher than three hours ago", + "3":"Decreasing or steady, then increasing; or increasing, then increasing more rapidly - Atmospheric pressure now higher than three hours ago", + "4":"Steady; atmopsheric pressure the same as three hours ago", + "5":"Decreasing, then increasing; atmospheric pressure the same ot lower than three hours ago", + "6":"Decreasing, then steady; or decreasing, then decreasing more slowly - Atmospheric pressure now lower than three hours ago", + "7":"Decreasing (steadily or unsteadily) - Atmospheric pressure now lower than three hours ago", + "8":"Steady or increasing, then decreasing; or decreasing, then decreasing more rapidly - Atmospheric pressure now lower than three hours ago" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.C1.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.C1.json new file mode 100644 index 0000000..d9ec138 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.C1.json @@ -0,0 +1,259 @@ +{ + "0":"Netherlands", + "1":"Norway", + "2":"US", + "3":"UK", + "4":"France", + "5":"Denmark", + "6":"Italy", + "7":"India", + "8":"Hong Kong", + "9":"New Zealand", + "00":"Netherlands", + "01":"Norway", + "02":"US", + "03":"UK", + "04":"France", + "05":"Denmark", + "06":"Italy", + "07":"India", + "08":"Hong Kong", + "09":"New Zealand", + "10":"Ireland", + "11":"Philippines", + "12":"Egypt", + "13":"Canada", + "14":"Belgium", + "15":"South Africa", + "16":"Australia", + "17":"Japan", + "18":"Pakistan", + "19":"Argentina", + "20":"Sweden", + "21":"Federal Republic of Germany", + "22":"Iceland", + "23":"Israel", + "24":"Malaysia", + "25":"USSR", + "26":"Finland", + "27":"Rep. of Korea", + "28":"New Caledonia", + "29":"Portugal", + "30":"Spain", + "31":"Thailand", + "32":"Yugoslavia", + "33":"Poland", + "34":"Brazil", + "35":"Singapore", + "36":"Kenya", + "37":"Tanzania", + "38":"Uganda", + "39":"Mexico", + "40":"German Democractic Republic", + "AF":"Afghanistan", + "AL":"Albania", + "DZ":"Algeria", + "AD":"Andorra", + "AO":"Angola", + "AG":"Antigua and Barbuda", + "AR":"Argentina", + "AM":"Armenia", + "AW":"Aruba", + "AU":"Australia", + "AT":"Austria", + "AZ":"Azerbaijan", + "BS":"Bahamas", + "BH":"Bahrain", + "BD":"Bangladesh", + "BB":"Barbados", + "BY":"Belarus", + "BE":"Belgium", + "BZ":"Belize", + "BJ":"Benin", + "BT":"Bhutan", + "BO":"Bolivia", + "BA":"Bosnia and Herzegovina", + "BW":"Botswana", + "BR":"Brazil", + "BN":"Brunei Darussalam", + "BG":"Bulgaria", + "BF":"Burkina Faso", + "BI":"Burundi", + "KH":"Cambodia", + "CM":"Cameroon", + "CA":"Canada", + "CV":"Cape Verde", + "CF":"Central African Republic", + "TD":"Chad", + "CL":"Chile", + "CN":"China", + "CO":"Columbia", + "KM":"Comoros", + "CG":"Congo", + "CD":"The Democratic Republic of the Congo", + "CR":"Costa Rica", + "CI":"Cote d'Ivoire", + "HR":"Croatia", + "CU":"Cuba", + "CY":"Cyprus", + "CZ":"Czech Republic", + "DK":"Denmark", + "DJ":"Djibouti", + "DM":"Dominica", + "DO":"Dominican Republic", + "EC":"Ecuador", + "EG":"Egypt", + "SV":"El Salvador", + "GQ":"Equatorial Guinea", + "ER":"Eritrea", + "EE":"Estonia", + "ET":"Ethiopia", + "FJ":"Fiji", + "FI":"Finland", + "FR":"France", + "GA":"Gabon", + "GM":"Gambia", + "GE":"Georgia", + "DE":"Germany", + "GH":"Ghana", + "GR":"Greece", + "GD":"Grenada", + "GT":"Guatemala", + "GN":"Guinea", + "GW":"Guinea Bissau", + "GY":"Guyana", + "HT":"Haiti", + "HN":"Honduras", + "HK":"Hong Kong", + "HU":"Hungary", + "IS":"Iceland", + "IN":"India", + "ID":"Indonesia", + "IR":"Islamic Republic of Iran", + "IQ":"Iraq", + "IE":"Ireland", + "IL":"Israel", + "IT":"Italy", + "JM":"Jamaica", + "JP":"Japan", + "JO":"Jordan", + "KZ":"Kazakhstan", + "KE":"Kenya", + "KI":"Kiribati", + "KR":"Republic of Korea", + "KW":"Kuwait", + "KG":"Kyrgyzstan", + "LA":"Lao Peoples Democratic Republic", + "LV":"Latvia", + "LB":"Lebanon", + "LS":"Lesotho", + "LR":"Liberia", + "LY":"Libyan Arab Jamahiriya", + "LT":"Lithuania", + "LU":"Luxembourg", + "MK":"The Former Yugoslav Republic of Macedonia", + "MG":"Madagascar", + "MW":"Malawi", + "MY":"Malaysia", + "MV":"Maldives", + "ML":"Mali", + "MT":"Malta", + "MH":"Marshal Islands", + "MR":"Mauritania", + "MU":"Mauritius", + "MX":"Mexico", + "FM":"Federated States of Micronesia", + "MD":"Republic of Moldova", + "MC":"Monaco", + "MN":"Mongolia", + "MA":"Morocco", + "MZ":"Mozambique", + "MM":"Myanmar", + "NA":"Namibia", + "NR":"Nauru", + "NP":"Nepal", + "NL":"Netherlands", + "AN":"Netherlands Antilles", + "NZ":"New Zealand", + "NI":"Nicaragua", + "NE":"Niger", + "NG":"Nigeria", + "KP":"Democratic People's Republic of Korea", + "NO":"Norway", + "OM":"Oman", + "PK":"Pakistan", + "PW":"Palau", + "PS":"Occupied Palestinian Territory", + "PA":"Panama", + "PG":"Papua New Guinea", + "PY":"Paraguay", + "PE":"Peru", + "PH":"Philippines", + "PL":"Poland", + "PT":"Portugal", + "QA":"Qatar", + "RO":"Romania", + "RU":"Russian Federation", + "RW":"Rwanda", + "KN":"Saint Kitts and Nevis", + "LC":"Saint Lucia", + "VC":"Saint Vincent and the Grenadines", + "WS":"Samoa", + "SM":"San Marino", + "ST":"Sao Tome And Principe", + "SA":"Saudi Arabia", + "SN":"Senegal", + "CS":"Serbia and Montenegro", + "SC":"Seychelles", + "SL":"Sierra Leone", + "SG":"Singapore", + "SK":"Slovakia", + "SI":"Slovenia", + "SB":"Solomon Islands", + "SO":"Somalia", + "ZA":"South Africa", + "ES":"Spain", + "LK":"Sri Lanka", + "SD":"Sudan", + "SR":"Surinam", + "SZ":"Swaziland", + "SE":"Sweden", + "CH":"Switzerland", + "SY":"Syrian Arab Republic", + "TJ":"Tajikistan", + "TZ":"United Republic of Tanzania", + "TH":"Thailand", + "TL":"Timor - Leste", + "TG":"Togo", + "TO":"Tonga", + "TT":"Trinidad and Tobago", + "TN":"Tunisia", + "TR":"Turkey", + "TM":"Turkmenistan", + "TV":"Tuvala", + "UG":"Uganda", + "UA":"Ukraine", + "AE":"United Arab Emirates", + "GB":"United Kingdom", + "US":"United States", + "UY":"Uruguay", + "UZ":"Uzbekistan", + "VU":"Vanuatu", + "VA":"Vatican City", + "VE":"Venezuela", + "VN":"Viet Nam", + "YE":"Yemen", + "ZM":"Zambia", + "ZW":"Zimbabwe", + "DD":"East Germany", + "CS":"Serbia and Montenegro", + "RU":"Soviet Union", + "NC":"New Caledonia", + "ZY":"None (self recruited)", + "ZZ":"None (third party support)", + "TW":"Taiwan (Province of China)", + "SU":"Soviet Union", + "YU":"Yugoslavia", + "XX":"Multiple recruitment", + "EU":"European Union" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.CH.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.CH.json new file mode 100644 index 0000000..173f07f --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.CH.json @@ -0,0 +1,13 @@ +{ + "0":"No Cirrus, Cirrocumulus or Cirrostratus", + "1":"Cirrus in the form of filaments, strands or hooks, not progressively invading the sky", + "2":"Dense Cirrus, in patches or entangled sheaves, which usually do not increase and sometimes seem to be the remains of the upper part of a Cumulonimbus, or Cirrus with sproutings in the form of small turrets or battlements, or Cirrus having the appearance of cumuliform tufts", + "3":"Dense Cirrus, often in the form of an anvil, being the remains of the upper parts of Cumulonimbus", + "4":"Cirrus in the form of hooks or of filaments, or both, progressively invading the sky; they generally become denser as a whole", + "5":"Cirrus (often in bands converging towards one point or two opposite points of the horizon) and Cirrostratus, or Cirrostratus alone; in either case, they are progressively invading the sky, and generally growing denser as a whole, but the continuous veil does not reach 45 degrees above the horizon.", + "6":"Cirrus (often in bands converging towards one point or two opposite points of the horizon) and Cirrostratus, or Cirrostratus alone; in either case, they are progressively invading the sky, and generally growing denser as a whole; the continuous veil extends more than 45 degrees above the horizon, without the sky being totally covered", + "7":"Veil of Cirrostratus covering the celestial dome", + "8":"Cirrostratus not progressively invading the sky and not completely covering the celestial dome", + "9":"Cirrocumulus alone, or Cirrocumulus accompanied by Cirrus or Cirrostratus, or both, but Cirrocumulus is predominant", + "10":"Cirrus, Cirrocumulus and Cirrostratus invisible owing to darkness, fog, blowing dust or sand, or other similar phenomena, or more often because of the presence of a continuous layer of lower clouds" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.CL.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.CL.json new file mode 100644 index 0000000..173f07f --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.CL.json @@ -0,0 +1,13 @@ +{ + "0":"No Cirrus, Cirrocumulus or Cirrostratus", + "1":"Cirrus in the form of filaments, strands or hooks, not progressively invading the sky", + "2":"Dense Cirrus, in patches or entangled sheaves, which usually do not increase and sometimes seem to be the remains of the upper part of a Cumulonimbus, or Cirrus with sproutings in the form of small turrets or battlements, or Cirrus having the appearance of cumuliform tufts", + "3":"Dense Cirrus, often in the form of an anvil, being the remains of the upper parts of Cumulonimbus", + "4":"Cirrus in the form of hooks or of filaments, or both, progressively invading the sky; they generally become denser as a whole", + "5":"Cirrus (often in bands converging towards one point or two opposite points of the horizon) and Cirrostratus, or Cirrostratus alone; in either case, they are progressively invading the sky, and generally growing denser as a whole, but the continuous veil does not reach 45 degrees above the horizon.", + "6":"Cirrus (often in bands converging towards one point or two opposite points of the horizon) and Cirrostratus, or Cirrostratus alone; in either case, they are progressively invading the sky, and generally growing denser as a whole; the continuous veil extends more than 45 degrees above the horizon, without the sky being totally covered", + "7":"Veil of Cirrostratus covering the celestial dome", + "8":"Cirrostratus not progressively invading the sky and not completely covering the celestial dome", + "9":"Cirrocumulus alone, or Cirrocumulus accompanied by Cirrus or Cirrostratus, or both, but Cirrocumulus is predominant", + "10":"Cirrus, Cirrocumulus and Cirrostratus invisible owing to darkness, fog, blowing dust or sand, or other similar phenomena, or more often because of the presence of a continuous layer of lower clouds" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.CM.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.CM.json new file mode 100644 index 0000000..5be2e93 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.CM.json @@ -0,0 +1,13 @@ +{ + "0":"No Altocumulus, Altostratus or Nimbostratus", + "1":"Altostratus, the greater part of which is semitransparent; through this part the sun or moon may be weakly visible, as through ground glass", + "2":"Altostratus, the greater part of which is sufficiently dense to hide the sun or moon, or Nimbostratus", + "3":"Altocumulus, the greater part of which is semitransparent; the various elements of the cloud change only slowly and are all at a single level", + "4":"Patches (often in the form of almonds or fish) of Altocumulus, the greater part of which is semi-transparent; the clouds occur at one or more levels and the elements are continually changing in appearance", + "5":"Altocumulus clouds generally thicken as a whole; Semi-transparent Altocumulus in bands, or Altocumulus, in one or more fairly continuous layer (semi-transparent or opaque), progresively invading the sky; these Altocumulus clouds generally thicken as a whole", + "6":"Altocumulus resulting from the spreading out of Cumulus (or Cumulonimbus)", + "7":"Altocumulus in two or more layers, usually opaque in places, and not progressively invading the sky; or opaque layer of Altocumulus, not progressively invading the sky; or Altocumulus together with Altostratus or Nimbostratus", + "8":"Altocumulus with sproutings in the form of small towers or battlements, or Altocumulus having the appearance of cumuliform tufts", + "9":"Altocumulus of a chaotic sky, generally at several levels", + "10":"Altocumulus, Altostratus and Nimbostratus invisible owing to darkness, fog, blowing dust or sand, or other similar phenomena, or more often because of the presence of a continuous layer of lower clouds" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.DI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.DI.json new file mode 100644 index 0000000..602e98c --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.DI.json @@ -0,0 +1,9 @@ +{ + "0":"36-point compass", + "1":"32-point compass", + "2":"16 of 36-point compass", + "3":"16 of 32-point compass", + "4":"8-point compass", + "5":"360-point compass", + "6":"high resolution data (e.g., tenths of degrees)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.DPTI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.DPTI.json new file mode 100644 index 0000000..d4c202d --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.DPTI.json @@ -0,0 +1,6 @@ +{ + "0":"measured", + "1":"computed", + "2":"iced measured", + "3":"iced computed" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.DS.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.DS.json new file mode 100644 index 0000000..641395c --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.DS.json @@ -0,0 +1,12 @@ +{ + "0":"0", + "1":"45", + "2":"90", + "3":"135", + "4":"180", + "5":"225", + "6":"270", + "7":"315", + "8":"360", + "9":"NULL" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.H.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.H.json new file mode 100644 index 0000000..3da316f --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.H.json @@ -0,0 +1,13 @@ +{ + "0":"0", + "1":"50", + "2":"100", + "3":"200", + "4":"300", + "5":"600", + "6":"1000", + "7":"1500", + "8":"2000", + "9":"2500", + "10":"NULL" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.HI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.HI.json new file mode 100644 index 0000000..a753ac9 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.HI.json @@ -0,0 +1,4 @@ +{ + "0":"estimated", + "1":"measured" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.II.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.II.json new file mode 100644 index 0000000..aaa4b30 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.II.json @@ -0,0 +1,14 @@ +{ + "0":"ID present, but unknown type", + "1":"ship, Ocean Station Vessel (OSV), or ice station callsign", + "2":"generic ID (e.g., SHIP, BUOY, RIGG, PLAT)", + "3":"WMO 5-digit buoy number", + "4":"other buoy number (e.g., Argos or national buoy number)", + "5":"Coastal-Marine Automated Network (C-MAN) ID (assigned by US NDBC or other organizations)", + "6":"station name or number", + "7":"oceanographic platform/cruise number", + "8":"fishing vessel psuedo-ID", + "9":"national ship number", + "10":"composite information from early ship data", + "11":"7-digit buoy ID (proposed)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.IM.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.IM.json new file mode 100644 index 0000000..cb82348 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.IM.json @@ -0,0 +1,4 @@ +{ + "0":"version 0 (2010, http://icoads.noaa.gov/e-doc/imma/R2.5-imma.pdf)", + "1":"version 1 (2016)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.IT.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.IT.json new file mode 100644 index 0000000..8f315be --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.IT.json @@ -0,0 +1,12 @@ +{ + "0":"tenths degC", + "1":"half degC", + "2":"whole degC", + "3":"whole or tenths degC (mixed precision among temperature fields)", + "4":"tenths degF", + "5":"half degF", + "6":"whole degF", + "7":"whole or tenths degF (mixed precision among temperature fields)", + "8":"high resolution data (e.g., hundredths degC)", + "9":"other" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.LI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.LI.json new file mode 100644 index 0000000..7d57a7b --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.LI.json @@ -0,0 +1,9 @@ +{ + "0":"degrees and tenths", + "1":"whole degrees", + "2":"mixed precision", + "3":"interpolated", + "4":"degrees and minutes", + "5":"high resolution data (e.g., degrees to seconds)", + "6":"other" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.NID.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.NID.json new file mode 100644 index 0000000..4644e21 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.NID.json @@ -0,0 +1,102 @@ +{ + "0": "", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", + "8": "", + "9": "", + "10": "", + "11": "", + "12": "", + "13": "", + "14": "", + "15": "", + "16": "", + "17": "", + "18": "", + "19": "", + "20": "", + "21": "", + "22": "", + "23": "", + "24": "", + "25": "", + "26": "", + "27": "", + "28": "", + "29": "", + "30": "", + "31": "", + "32": "", + "33": "", + "34": "", + "35": "", + "36": "", + "37": "", + "38": "", + "39": "", + "40": "", + "41": "", + "42": "", + "43": "", + "44": "", + "45": "", + "46": "", + "47": "", + "48": "", + "49": "", + "50": "", + "51": "", + "52": "", + "53": "", + "54": "", + "55": "", + "56": "", + "57": "", + "58": "", + "59": "", + "60": "", + "61": "", + "62": "", + "63": "", + "64": "", + "65": "", + "66": "", + "67": "", + "68": "", + "69": "", + "70": "", + "71": "", + "72": "", + "73": "", + "74": "", + "75": "", + "76": "", + "77": "", + "78": "", + "79": "", + "80": "", + "81": "", + "82": "", + "83": "", + "84": "", + "85": "", + "86": "", + "87": "", + "88": "", + "89": "", + "90": "", + "91": "", + "92": "", + "93": "", + "94": "", + "95": "", + "96": "", + "97": "", + "98": "", + "99": "" +} \ No newline at end of file diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.SD.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.SD.json new file mode 100644 index 0000000..1ba7eee --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.SD.json @@ -0,0 +1,41 @@ +{ + "0":"waves from 0 degrees", + "1":"waves from 10", + "2":"waves from 20 degrees", + "3":"waves from 30 degrees", + "4":"waves from 40 degrees", + "5":"waves from 50 degrees", + "6":"waves from 60 degrees", + "7":"waves from 70 degrees", + "8":"waves from 80 degrees", + "9":"waves from 90 degrees", + "10":"waves from 100 degrees", + "11":"waves from 110 degrees", + "12":"waves from 120 degrees", + "13":"waves from 130 degrees", + "14":"waves from 140 degrees", + "15":"waves from 150 degrees", + "16":"waves from 160 degrees", + "17":"waves from 170 degrees", + "18":"waves from 180 degrees", + "19":"waves from 190 degrees", + "20":"waves from 200 degrees", + "21":"waves from 210 degrees", + "22":"waves from 220 degrees", + "23":"waves from 230 degrees", + "24":"waves from 240 degrees", + "25":"waves from 250 degrees", + "26":"waves from 260 degrees", + "27":"waves from 270 degrees", + "28":"waves from 280 degrees", + "29":"waves from 290 degrees", + "30":"waves from 300 degrees", + "31":"waves from 310 degrees", + "32":"waves from 320 degrees", + "33":"waves from 330 degrees", + "34":"waves from 340 degrees", + "35":"waves from 350 degrees", + "36":"waves from 360 degrees", + "37":"waves confused, direction indeterminate (WH ≤ 4.75 m)", + "38":"waves confused, direction indeterminate (WH > 4.75 m; or irrespective of wave height, corresponding to 99 in WMO Code 0877" + } diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.SI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.SI.json new file mode 100644 index 0000000..ffb99e7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.SI.json @@ -0,0 +1,14 @@ +{ + "0":"BU", + "1":"C", + "2":"TT", + "3":"HC", + "4":"HT", + "5":"RAD", + "6":"BTT", + "7":"OT", + "9":"NULL", + "10":"NULL", + "11":"NULL", + "12":"NULL" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.TI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.TI.json new file mode 100644 index 0000000..58bece4 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.TI.json @@ -0,0 +1,7 @@ +{ + "0":"nearest whole hour", + "1":"hour to tenths", + "2":"hour plus minutes", + "3":"high resolution (e.g., hour to hundredths)", + "4":"Daily (assumed local solar midday)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.VI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.VI.json new file mode 100644 index 0000000..58bece4 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.VI.json @@ -0,0 +1,7 @@ +{ + "0":"nearest whole hour", + "1":"hour to tenths", + "2":"hour plus minutes", + "3":"high resolution (e.g., hour to hundredths)", + "4":"Daily (assumed local solar midday)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.VS.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.VS.json new file mode 100644 index 0000000..ff88b16 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.VS.json @@ -0,0 +1,28 @@ +{ + "range_key(1750,1967)": + { + "0":"0 knots;[0.0,0.0,0.0] ms-1", + "1":"1-3 knots;[0.51444,1.02888,1.54332] ms-1", + "2":"4-6 knots;[2.05776,2.5722,3.08664] ms-1", + "3":"7-9 knots;[3.60108,4.11552,4.62996] ms-1", + "4":"10-12 knots;[5.1444,5.65884,6.17328] ms-1", + "5":"13-15 knots;[6.68772,7.20216,7.7166] ms-1", + "6":"16-18 knots;[8.23104,8.74548,9.25992] ms-1", + "7":"19-21 knots;[9.77436,10.2888,10.8032] ms-1", + "8":"22-24 knots;[11.3177,11.8321,12.3466] ms-1", + "9":"over 24 knots;[12.3466,12.861,null] ms-1" + }, + "range_key(1968,yyyy)": + { + "0":"0 knots;[0.0,0.0,0.0] ms-1", + "1":"1-5 knots;[0.51444,1.54332,2.5722] ms-1", + "2":"6-10 knots;[3.08664,4.11552,5.1444] ms-1", + "3":"11-15 knots;[5.65884,6.68772,7.7166] ms-1", + "4":"16-20 knots;[8.23104,9.25992,10.2888] ms-1", + "5":"21-25 knots;[10.8032,11.8321,12.861] ms-1", + "6":"26-30 knots;[13.3754,14.4043,15.4332] ms-1", + "7":"31-35 knots;[15.9476,16.9765,18.0054] ms-1", + "8":"36-40 knots;[18.5198,19.5487,20.5776] ms-1", + "9":"over 40 knots;[21.092,22.1209,null] ms-1" + } +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.VS.keys b/schemas/lib/imma.old/code_tables/ICOADS.C0.VS.keys new file mode 100644 index 0000000..a64ecc5 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.VS.keys @@ -0,0 +1,3 @@ +{ + "('core','VS')" : ["('core','YR')","('core','VS')"] +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.VV.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.VV.json new file mode 100644 index 0000000..09d127f --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.VV.json @@ -0,0 +1,12 @@ +{ + "90":"50", + "91":"50", + "92":"200", + "93":"500", + "94":"1000", + "95":"2000", + "96":"4000", + "97":"10000", + "98":"20000", + "99":"50000" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.W1.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.W1.json new file mode 100644 index 0000000..270266e --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.W1.json @@ -0,0 +1,12 @@ +{ + "0":"cloud covering one half or less of the sky throughout the period", + "1":"cloud covering more than one half of the sky during part of the period and covering one half or less during part of the period", + "2":"cloud covering more than one half of the sky throughout the period", + "3":"sandstorm, dust storm or blowing snow", + "4":"fog, ice fog, or thick haze (US includes thick smoke)", + "5":"drizzle", + "6":"rain", + "7":"snow, or rain and snow mixed", + "8":"shower", + "9":"thunderstorm with or without precipitation" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.WBTI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.WBTI.json new file mode 100644 index 0000000..d4c202d --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.WBTI.json @@ -0,0 +1,6 @@ +{ + "0":"measured", + "1":"computed", + "2":"iced measured", + "3":"iced computed" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.WD.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.WD.json new file mode 100644 index 0000000..3b4f1db --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.WD.json @@ -0,0 +1,41 @@ +{ + "0":"waves from 0 degrees", + "1":"waves from 10", + "2":"waves from 20 degrees", + "3":"waves from 30 degrees", + "4":"waves from 40 degrees", + "5":"waves from 50 degrees", + "6":"waves from 60 degrees", + "7":"waves from 70 degrees", + "8":"waves from 80 degrees", + "9":"waves from 90 degrees", + "10":"waves from 100 degrees", + "11":"waves from 110 degrees", + "12":"waves from 120 degrees", + "13":"waves from 130 degrees", + "14":"waves from 140 degrees", + "15":"waves from 150 degrees", + "16":"waves from 160 degrees", + "17":"waves from 170 degrees", + "18":"waves from 180 degrees", + "19":"waves from 190 degrees", + "20":"waves from 200 degrees", + "21":"waves from 210 degrees", + "22":"waves from 220 degrees", + "23":"waves from 230 degrees", + "24":"waves from 240 degrees", + "25":"waves from 250 degrees", + "26":"waves from 260 degrees", + "27":"waves from 270 degrees", + "28":"waves from 280 degrees", + "29":"waves from 290 degrees", + "30":"waves from 300 degrees", + "31":"waves from 310 degrees", + "32":"waves from 320 degrees", + "33":"waves from 330 degrees", + "34":"waves from 340 degrees", + "35":"waves from 350 degrees", + "36":"waves from 360 degrees", + "37":"waves confused, direction indeterminate (WH ≤ 4.75 m)", + "38":"waves confused, direction indeterminate (WH > 4.75 m; or irrespective of wave height, corresponding to 99 in WMO Code 0877" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.WI.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.WI.json new file mode 100644 index 0000000..af5258b --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.WI.json @@ -0,0 +1,11 @@ +{ + "0":"meter per second, estimated", + "1":"meter per second, obtained from anemometer (measured)", + "2":"estimated (original units unknown)", + "3":"knot, estimated", + "4":"knot, obtained from anemometer (measured)", + "5":"Beaufort force (based on documentation)", + "6":"estimated (original units unknown) or unknown method ", + "7":"measured (original units unknown)", + "8":"high-resolution measurement (e.g., hundredths of a meter per second)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C0.WW.json b/schemas/lib/imma.old/code_tables/ICOADS.C0.WW.json new file mode 100644 index 0000000..6786a95 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C0.WW.json @@ -0,0 +1,102 @@ +{ + "0":"Cloud development not observed or not observable - Characteristic change of the state of sky during the past hour", + "1":"Clouds generally dissolving or becoming less developed - Characteristic change of the state of sky during the past hour", + "2":"State of sky on the whole unchanged - Characteristic change of the state of sky during the past hour", + "3":"Clouds generally forming or developing - Characteristic change of the state of sky during the past hour", + "4":"Visibility reduced by smoke, e.g. veldt or forest fires, industrial smoke or volcanic ashes", + "5":"Haze", + "6":"Widespread dust in suspension in the air, not raised by wind at or near the station at the time of observation", + "7":"Dust or sand raised by wind at or near the station at the time of observation, but no welldeveloped dust whirl(s) or sand whirl(s), and no duststorm or sandstorm seen; or, in the case of sea stations and coastal stations, blowing spray at the station", + "8":"Well-developed dust whirl(s) or sand whirl(s) seen at or near the station during the preceding hour or at the same time of observation, but no duststorm or sandstorm", + "9":"Duststorm or sandstorm within sight at the time of observation, or at the station during the preceding hour", + "10":"Mist", + "11":"Patches - shallow fog or ice fog at the station, whether on land or sea, not deeper than about 2 metres on land or 10 metres at sea", + "12":"More or less continuous - shallow fog or ice fog at the station, whether on land or sea, not deeper than about 2 metres on land or 10 metres at sea", + "13":"Lightning visible, no thunder heard", + "14":"Precipitation within sight, not reaching the ground or the surface of the sea", + "15":"Precipitation within sight, reaching the ground or the surface of the sea, but distant, i.e. estimated to be more than 5 km from the station", + "16":"Precipitation within sight, reaching the ground or the surface of the sea, near to, but not at the station", + "17":"Thunderstorm, but no precipitation at the time of observation", + "18":"Squalls - at or within sight of the station during the preceding hour but not at the time of observation", + "19":"Funnel cloud(s)2 - at or within sight of the station during the preceding hour but not at the time of observation", + "20":"Drizzle (not freezing) or snow grains - not falling as showers", + "21":"Rain (not freezing) - not falling as showers", + "22":"Snow - not falling as showers", + "23":"Rain and snow or ice pellets - not falling as showers", + "24":"Freezing drizzle or freezing rain - not falling as showers", + "25":"Shower(s) of rain - not falling as showers", + "26":"Shower(s) of snow, or of rain and snow ", + "27":"Shower(s) of hail, or of rain and hail", + "28":"Fog or ice fog", + "29":"Thunderstorm (with or without precipitation", + "30":"Slight or moderate duststorm or sandstorm - has decreased during the preceding hour", + "31":"Slight or moderate duststorm or sandstorm - no appreciable change during the preceeding hour", + "32":"Slight or moderate duststorm or sandstorm - has begun or increased during the preceding hour", + "33":"Severe duststorm or sandstorm - has decreased during the preceding hour", + "34":"Severe duststorm or sandstorm - no appreciable change during the preceding hour", + "35":"Severe duststorm or sandstorm - has begun or has increased during the preceding hour", + "36":"Slight or moderate drifting snow - generally low (below eye level)", + "37":"Heavy drifting snow - generally low (below eye level)", + "38":"Slight or moderate drifting snow - generally high (above eye level)", + "39":"Heavy drifting snow - generally high (above eye level)", + "40":"Fog or ice fog at a distance at the time of observation, but not at the station during the preceding hour, the fog or ice fog extending to a level above that of the observer", + "41":"Fog or ice fog in patches", + "42":"Fog or ice fog, sky visible - has become thinner during the preceding hour", + "43":"Fog or ice fog, sky invisible - has become thinner during the preceding hour", + "44":"Fog or ice fog, sky visible - no appreciable change during the preceding hour", + "45":"Fog or ice fog, sky invisible - no appreciable change during the preceding hour", + "46":"Fog or ice fog, sky visible - has begun or has become thicker during the preceding hour", + "47":"Fog or ice fog, sky invisible", + "48":"Fog, depositing rime, sky visible", + "49":"Fog, depositing rime, sky invisible", + "50":"Drizzle, not freezing, intermittent - slight at the time of observation", + "51":"Drizzle, not freezing, continuous - slight at the time of observation", + "52":"Drizzle, not freezing, intermittent - moderate at the time of observation", + "53":"Drizzle, not freezing, continuous - moderate at the time of observation", + "54":"Drizzle, not freezing, intermittent - heavy (dense) at the time of observation", + "55":"Drizzle, not freezing, continuous - heavy (dense) at the time of observation", + "56":"Drizzle, freezing, slight", + "57":"Drizzle, freezing, moderate or heavy (dense)", + "58":"Drizzle and rain, slight", + "59":"Drizzle and rain, moderate or heavy", + "60":"Rain, not freezing, intermittent - slight at time of observation", + "61":"Rain, not freezing, continuous - slight at time of observation", + "62":"Rain, not freezing, intermittent - moderate at time of observation", + "63":"Rain, not freezing, continuous - moderate at time of observation", + "64":"Rain, not freezing, intermittent - heavy at time of observation", + "65":"Rain, not freezing, continuous - heavy at time of observation", + "66":"Rain, freezing, slight", + "67":"Rain, freezing, moderate or heavy", + "68":"Rain or drizzle and snow, slight", + "69":"Rain or drizzle and snow, moderate or heavy", + "70":"Intermittent fall of snowflakes - slight at time of observation", + "71":"Continuous fall of snowflakes - slight at time of observation", + "72":"Intermittent fall of snowflakes - moderate at time of observation", + "73":"Continuous fall of snowflakes - moderate at time of observation", + "74":"Intermittent fall of snowflakes - heavy at time of observation", + "75":"Continuous fall of snowflakes - heavy at time of observation", + "76":"Diamond dust (with or without fog)", + "77":"Snow grains (with or without fog)", + "78":"Isolated star-like snow crystals (with or without fog)", + "79":"Ice pellets", + "80":"Rain shower(s), slight", + "81":"Rain shower(s), moderate or heavy", + "82":"Rain shower(s), violent", + "83":"Shower(s) of rain and snow mixed, slight", + "84":"Shower(s) of rain and snow mixed, moderate or heavy", + "85":"Snow shower(s), slight", + "86":"Snow shower(s), moderate or heavy", + "87":"Shower(s) of snow pellets or small hail, with or without rain or rain and snow mixed - slight", + "88":"Shower(s) of snow pellets or small hail, with or without rain or rain and snow mixed - moderate or heavy", + "89":"Shower(s) of hail, with or without rain or rain and snow mixed, not associated with thunder - slight", + "90":"Shower(s) of hail, with or without rain or rain and snow mixed, not associated with thunder - moderate", + "91":"Slight rain at time of observation - Thunderstorm during the preceding hour but not at time of observation", + "92":"Moderate or heavy rain at time of observation - Thunderstorm during the preceding hour but not at time of observation", + "93":"Slight snow, or rain and snow mixed or hail3 at time of observation - Thunderstorm during the preceding hour but not at time of observation", + "94":"Moderate or heavy snow, or rain and snow mixed or hail3 at time of observation of observation - Thunderstorm during the preceding hour but not at time of observation", + "95":"Thunderstorm, slight or moderate, without hail3, but with rain and/or snow at time of observation - Thunderstorm at time of observation", + "96":"Thunderstorm, slight or moderate, with hail3 at time of observation - Thunderstorm at time of observation", + "97":"Thunderstorm, heavy, without hail3, but with rain and/or snow at time of observation - Thunderstorm at time of observation", + "98":"Thunderstorm combined with duststorm or sandstorm at time of observation - Thunderstorm at time of observation", + "99":"Thunderstorm, heavy, with hail3 at time of observation - Thunderstorm at time of observation" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.DCK.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.DCK.json new file mode 100644 index 0000000..542a60c --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.DCK.json @@ -0,0 +1,147 @@ +{ + "110":"US Navy Marine", + "116":"US Merchant Marine", + "117":"US Navy Hourlies", + "118":"Japanese Ships No. 1 (Kobe Collection Data keyed in 1961)", + "119":"Japanese Ships No. 2 (Kobe Collection Data keyed in 1961)", + "128":"International Marine (US- or foreign-keyed ship data)", + "143":"Pacific Marine Environmental Laboratory (PMEL) Buoys", + "144":"TAO/TRITON and PIRATA Buoys (from PMEL and JAMSTEC)", + "145":"PMEL (Daily) Equatorial Moorings and Island Stations", + "146":"Global Tropical Moored Buoy Array (GTMBA) from PMEL via NOC", + "150":"Pacific (US Responsibility) HSST Netherlands Receipts", + "151":"Pacific (US Responsibility) HSST German Receipts", + "152":"Pacific (US Responsibility) HSST UK Receipts", + "155":"Indian (Netherlands Responsibility) HSST", + "156":"Atlantic (German Responsibility) HSST", + "184":"Great Britain Marine (194 extension)", + "185":"USSR Marine IGY", + "186":"USSR Ice Stations", + "187":"Japanese Whaling Fleet", + "188":"Norwegian Antarctic Whaling Factory Ships", + "189":"Netherlands Marine", + "192":"Deutsche Seewarte Marine", + "193":"Netherlands Marine", + "194":"Great Britain Marine", + "195":"US Navy Ships Logs", + "196":"Deutsche Seewarte Marine (192 extension)", + "197":"Danish (and Other) Marine (Polar)", + "201":"All Ships (1930 code)", + "202":"All Ships (1921 code)", + "203":"Selected Ships (1930 code)", + "204":"British Navy (HM) Ships (1930 code)", + "205":"Scottish Fishery Cruisers MARIDS (1930 code)", + "206":"Ocean Weather Stations (OWS) (1930 code)", + "207":"Selected Ships (1930 code)", + "208":"Light Vessels", + "209":"Selected Ships (including some foreign ships)", + "210":"OWS (including Dutch 'J')", + "211":"Scottish Fishery Cruisers MARIDS", + "212":"Light Vessels", + "213":"Selected Ships", + "214":"OWS", + "215":"German Marine", + "216":"UK Merchant Ship Logbooks (METFORMS; keyed in 1996)", + "218":"US OWS", + "221":"MARIDS and Trawlers", + "222":"Light Vessels", + "223":"Selected Ships", + "224":"OWS", + "225":"Norwegian Format", + "226":"OWS (1949 code)", + "227":"Selected Ships", + "229":"British Navy (HM) Ships", + "230":"International Maritime Met. Punched Card (IMMPC) Data", + "233":"Selected Ships", + "234":"OWS", + "235":"RIGG, PLAT, Automatic Weather-Observing System (AWS; buoy)", + "239":"British Navy (HM) Ships", + "241":"MetO GTS Receipts (primarily SHIP code; from MDB format)", + "242":"MetO GTS Receipts (SHIP code; raw messages from MetDb)", + "245":"Royal Navy Ship's Logs 1938-47 (keyed by 2007)", + "246":"Atmospheric Circ. Reconstrucitons over the Earth (ACRE) digitized Date: Print or Published Expeditions (held at Met Office)", + "247":"Atmospheric Circ. Reconstructions over the Earth (ACRE) digitized data: Challenger Expedition", + "248":"English East India Co. (EEIC) Ship Logs", + "249":"Extended WW1 UK Royal Navy Ship's Logs (OldWeather)", + "254":"Int. Maritime Met. (IMM) Data (foreign or unknown origin)", + "255":"Undocumented TDF-11 Decks or MDB Series", + "281":"US Navy Monthly Aerological Record (MAR)", + "500":"Gulf Offshore Weather Observing Network (GOWON) (plat data)", + "555":"US Navy Fleet Num. Met. and Oceano. Center (FNMOC; Monterey) Telecom.", + "666":"Tuna Boats", + "667":"Inter-American Tropical Tuna Commission (IATTC)", + "700":"UK Met. Office GTS BUFR Data", + "701":"US Maury Collection", + "702":"Norwegian Logbook Collection", + "703":"US Lightship Collections", + "704":"US Marine Meteorological Journals Collection (1878-94)", + "705":"US Merchant Marine Collection (1912-46) (500 series)", + "706":"US Merchant Marine Collection (1912-46) (600 series)", + "707":"US Merchant Marine Collection (1912-46) (700 series)", + "708":"US Navy Marine (US keyed ship data; hourly METAR format", + "709":"US Navy Marine (IMMA formatted by US Navy)", + "710":"US Arctic Logbooks (OldWeather", + "711":"Weather Detective Crowdsourcing", + "714":"Canadian Oceanography and Scientific Data (OSD; formerly ISDM/MEDS) Buoys", + "715":"German Deep Drifter Data (via ISDM; originally from IfM/Univ. Kiel)", + "720":"Deutscher Wetterdienst (DWD) Marine Meteorological Archive", + "721":"German Maury collection", + "730":"Climatological Database for the World's Oceans (CLIWOC)", + "731":"Russian S.O. Makarov Collection", + "732":"Russian Marine Met. Data Set (MORMET) (received at NCAR)", + "733":"Russian AARI North Pole (NP) Stations", + "734":"Arctic Drift Stations", + "735":"Russian Research Vessel (R/V) Digitization", + "736":"Byrd Antarctic Expedition (keyed by Hollings Scholars)", + "740":"Research Vessel (R/V) Data Quality-Evaluated by FSU/COAPS", + "749":"First GARP Global Experiment (FGGE) Level IIb", + "750":"Australian Navy Vessels: SST data (1972 - 77)", + "761":"Japanese Whaling Ship Data (CDMP/MIT digitization)", + "762":"Japanese Kobe Collection Data (keyed after decks 118-119)", + "780":"NOAA / NCEI World Ocean Database (WOD) (and formerly Atlas, WOA)", + "781":"Chinese/Global Ocean Data Archeology and Rescue (GODAR) Ships", + "782":"Global Ocean Suface Underway Data (GOSUD)", + "792":"US Natl. Cntrs. for Environ. Pred. (NCEP) BUFR GTS: Ship Data", + "793":"NCEP BUFR GTS: Buoy Data (transmitted in FM 13 'SHIP' code)", + "794":"NCEP BUFR GTS: Buoy Data (transmitted in FM 18 'BUOY' code)", + "795":"NCEP BUFR GTS: Coastal-Marine Automated Network (C-MAN code) Data", + "796":"NCEP BUFR GTS: Miscellaneous (OSV, plat, and rig) Data", + "797":"NCEP BUFR GTS: CREX code", + "849":"First GARP Global Experiment (FGGE)", + "850":"German FGGE", + "874":"Shipboard Environmental (Data) Acquisition System (SEAS)", + "875":"US TurboWin (e-Logbook) Voluntary Observing Ship (VOS) Receipts", + "876":"NDBC Data (High Capability Buoy; HCB)", + "877":"NDBC Data (Limited Capability Buoy; LCB)", + "878":"NDBC Data (Prototype Environmental Buoy; PEB)", + "879":"NDBC Data (5-meter Continental Shelf Buoys)", + "880":"NDBC Data (10-meter Continental Shelf Buoys)", + "881":"NDBC Data (Offshore Platforms)", + "882":"NDBC Data", + "883":"US National Data Buoy Center (NDBC) Data (latest version from NCDC)", + "888":"US Air Force Global Weather Central (GWC)", + "889":"Autodin (US Dept. of Defense Automated Digital Network)", + "890":"US National Meteorological Center (NMC, now NCEP) Data (obsolete)", + "891":"US National Oceanographic Data Center (NODC) Surface Data", + "892":"US Natl. Cntrs. for Environ. Pred. (NCEP) Ship Data", + "893":"NCEP Moored Buoy Data", + "894":"NCEP Drifting Buoy Data", + "895":"NCEP Coastal-Marine Automated Network (C-MAN) Data", + "896":"NCEP Miscellaneous (OSV, plat, and rig) Data", + "897":"Eltanin", + "898":"Japanese", + "899":"South African Whaling", + "900":"Australian", + "901":"FOSDIC Reconstructions (card images from 16mm film)", + "902":"Great Britain Marine (184 extension)", + "926":"International Maritime Meteorological (IMM) Data", + "927":"International Marine (US- or foreign-keyed ship data)", + "928":"Same as 927 including Ocean Station Vessels (OSV)", + "992":"NCEI GTS: Ship Data", + "993":"NCEI GTS: Buoy Data (transmitted in FM 13 'SHIP' code)", + "994":"NCEI GTS: Buoy Data (transmitted in FM 18 'BUOY' code)", + "995":"NCEI GTS: Coastal-Marine Automated Network (C-MAN code) Data", + "996":"NCEI GTS: Miscellaneous (OSV, plat, and rig) Data", + "997":"NCEI GTS: CREX code", + "999":"US Air Force Environ. Technical Applications Center (ETAC)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.DUPC.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.DUPC.json new file mode 100644 index 0000000..2f8197a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.DUPC.json @@ -0,0 +1,5 @@ +{ + "0":"GTS and logbook match with SLP and SST match", + "1":"GTS and logbook match without SLP and SST match", + "2":"no GTS and logbook match was encountered" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.DUPS.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.DUPS.json new file mode 100644 index 0000000..b2547c9 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.DUPS.json @@ -0,0 +1,17 @@ +{ + "0":"Unique", + "1":"Best duplicate", + "2":"Best duplicate with substitution", + "3":"Worse duplicate, uncertain: uncertain weather element match with hour cross", + "4":"Worse duplicate, uncertain: uncertain weather element match with no cross", + "5":"Worse duplicate, uncertain: uncertain weather element match with day cross", + "6":"Worse duplicate, uncertain: uncertain time / space with ID mismatch (unused until 1950)", + "7":"Worse duplicate, uncertain: certain weather element match with hour cross", + "8":"Worse duplicate, certain: certain weather element match with no cross", + "9":"Worse duplicate, certain: combined DUPS 4 and 6", + "10":"Worse duplicate, certain: combined DUPS 6 and 8", + "11":"Worse duplicate, certain: time / space / ID match", + "12":"Worse duplicate, certain: combined DUPS 4 and 11", + "13":"Worse duplicate, certain: combined DUPS 8 and 11", + "14":"Automatic data rejection" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.LZ.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.LZ.json new file mode 100644 index 0000000..876928a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.LZ.json @@ -0,0 +1,3 @@ +{ + "1":"landlocked" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.NCDC.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.NCDC.json new file mode 100644 index 0000000..cab1e50 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.NCDC.json @@ -0,0 +1,12 @@ +{ + "1":"0", + "2":"1", + "3":"1", + "4":"2", + "5":"2", + "6":"2", + "7":"3", + "8":"3", + "9":"3", + "10":"3" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.ND.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.ND.json new file mode 100644 index 0000000..7a9ad99 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.ND.json @@ -0,0 +1,4 @@ +{ + "1":"Report time is local nighttime", + "2":"Report time is local daytime" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.PB.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.PB.json new file mode 100644 index 0000000..6f9b80d --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.PB.json @@ -0,0 +1,5 @@ +{ + "0":"questionable SLP: level 0: individual platform (unused)", + "1":"questionable SLP: level 1: deck", + "2":"questionable SLP: level 2: deck" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.PT.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.PT.json new file mode 100644 index 0000000..25537ea --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.PT.json @@ -0,0 +1,26 @@ +{ + "0":"US Navy or deck log, or unknown", + "1":"merchant ship or foreign military", + "2":"ocean station vessel - off station or station proximity unknown", + "3":"ocean station vessel - on station", + "4":"lightship", + "5":"ship", + "6":"moored buoy", + "7":"drifting buoy", + "8":"ice buoy [note: currently unused]", + "9":"ice station (manned, including ships overwintering in ice)", + "10":"oceanographic station data (bottle and low-resolution CTD/XCTD data)", + "11":"mechanical/digital/micro bathythermograph (MBT)", + "12":"expendable bathythermograph (XBT)", + "13":"Coastal-Marine Automated Network (C-MAN) (NDBC operated)", + "14":"other coastal/island station", + "15":"fixed (or mobile) ocean platform (plat, rig)", + "16":"tide gauge", + "17":"high-resolution Conductivity-Temp.-Depth (CTD)/Expendable CTD (XCTD)", + "18":"profiling float", + "19":"undulating oceanographic recorder", + "20":"autonomous pinneped bathythermograph", + "21":"glider", + "30":"sledge", + "31":"CREX CMAN/Tide gauge" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.SID.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.SID.json new file mode 100644 index 0000000..8d1716e --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.SID.json @@ -0,0 +1,165 @@ +{ + "0":"Reserved", + "1":"Atlas", + "2":"HSST Pacific", + "3":"HSST Indian", + "4":"HSST Atlantic", + "5":"Old TDF-11 Supplement B", + "6":"Old TDF-11 Supplement C", + "7":"Monterey Telecommunications", + "8":"Ocean Station Vessels (OSV)", + "9":"OSV Supplement", + "10":"MSQ 486 and 105 Omissions", + "11":"National Oceanographic Data Center (NODC) Surface", + "12":"NODC Surface Supplement", + "13":"Eltanin", + "14":"Japanese", + "15":"South African Whaling", + "16":"Australian", + "17":"International Maritime Meteorological (IMM) Data", + "18":"1970s Decade", + "19":"IMM 1970s", + "20":"OSV Z (1970s)", + "21":"Australian (1970s)", + "22":"NCDC: 1980-84 Annual Receipts", + "23":"1970s Mislocated Data", + "24":"Buoy Data", + "25":"NCDC: 1980-84 Annual Receipts (delayed data)", + "26":"NCDC: 1980-84 Annual Receipts (corrections; 1975)", + "27":"NCDC: 1985 Receipts (annual + delayed)", + "28":"NCDC: 1985 Receipts (duplicates)", + "29":"NCDC: US Nat. Met. Center (NMC, now NCEP) Reconversion (1980-92)", + "30":"NCDC: 1980-84 Period of Record", + "31":"Corrected Canadian Data", + "32":"NCDC: Annual Receipts (starting in 1986)", + "33":"NCDC: Annual Receipts (duplicates; starting in 1986)", + "34":"NCDC: 1986 Receipts (delayed)", + "35":"NCDC: 1987 Receipts (delayed)", + "36":"NCDC: 1988 Receipts (delayed)", + "37":"NCDC: 1989 Receipts (delayed)", + "38":"NCDC: 1990 Receipts (delayed)", + "39":"NCDC: 1991 Receipts (delayed)", + "40":"NCDC: 1992 Receipts (delayed)", + "41":"NCDC: 1993 Receipts (delayed)", + "42":"NCDC: 1994 Receipts (delayed)", + "43":"NCDC: 1995 Receipts (delayed)", + "44":"NCDC: 1996 Receipts (delayed)", + "45":"NCDC: 1997 Receipts (delayed)", + "46":"International Maritime Met. (IMM) Tape Archive (1982-): ebcdic", + "47":"International Maritime Met. (IMM) Tape Archive (1982-): ascii", + "48":"NODC/OCL 1994 World Ocean Atlas (WOA94; Mar. 93 NODC archive data)", + "49":"NODC/OCL 1994 World Ocean Atlas (WOA94; non-NODC archive)", + "50":"US National Data Buoy Center (NDBC) Data", + "51":"Russian AARI North Pole (NP) Stations (revised; from EWG CD-ROM)", + "52":"Russian AARI North Pole (NP) Stations (earlier; from Polar Science Cntr)", + "53":"First GARP Global Experiment (FGGE) Level IIb: Surface Marine Data", + "54":"FGGE Level IIb: Oceanographic Data", + "55":"FGGE Level IIb: Drifting Buoy Data", + "56":"Russian S.O. Makarov Collection", + "57":"Russian Marine Meteorological Data Set (MORMET) (rec'd at NCAR)", + "58":"French International Maritime Met. (IMM) Uncorrected (1954-88)", + "59":"UK IMM Corrections (1982-89)", + "60":"French International Maritime Met. (IMM) Corrected (1954-88)", + "61":"Canadian Oceanography and Scientific Data (OSD; formerly ISDM/MEDS) Buoys", + "62":"OSD (formerly ISDM/MEDS) World Ocean Circulation Experiment (WOCE) Buoys", + "63":"Canadian ISDM (formerly MEDS) Buoys (July 2005 archive extended Dec. 2008)", + "64":"Russian Research Vessel (R/V) Digitization: Marine Surface", + "65":"Russian Research Vessel (R/V) Digitization: Marine Actinometric", + "66":"Pacific Marine Environmental Lab. (PMEL) TOGA/TAO Buoys", + "67":"PMEL (Daily) Equatorial Moorings and Island Stations", + "68":"Arctic Drift Stations", + "69":"US Maury Collection", + "70":"Inter-American Tropical Tuna Comm. (IATTC) Porpoise Obs. Logs", + "71":"IATTC Fishing Logs", + "72":"IMM Tape Archive from WMO Global Collecting Centre (GCC) (1994 format)", + "73":"NCDC Marine Obs. Processing System (MOPS): Pre-MOPS (TD-9973)", + "74":"NCDC MOPS: Duplicate File (TD-9974)", + "75":"NCDC MOPS: Original Observations (TD-9980)", + "76":"NCDC MOPS: Supplementary or Correction Data", + "77":"NCDC: US National Cntrs. for Environ. Pred. (NCEP) Reconversion (1994-97)", + "78":"NCDC: US-keyed Logbook Data Reconversion (TD-9972; keyed during 1996-97)", + "79":"US Air Force Global Weather Central (GWC): DATSAV2 format", + "80":"US Navy FNMOC Monterey Telecom: NCAR: Kunia (OPCON) format", + "81":"US Navy FNMOC Monterey Telecom: NCAR: NEDN format", + "82":"US Navy FNMOC Monterey Telecom: NCAR: Surface Ship (SPOT) format", + "83":"US Navy FNMOC Monterey Telecom: NCDC: Surface Ship (SPOT) format (TD-9769)", + "84":"US Merchant Marine Collection (1912-46): Full Quality Control (QC)", + "85":"US Merchant Marine Collection (1912-46): Partial QC", + "86":"Pacific Marine Environ. Lab. (PMEL) TOGA/TAO Buoys: RAM Data", + "87":"Pacific Marine Environ. Lab. (PMEL) TOGA/TAO Buoys: SPOT Data", + "88":"NODC/OCL 1998 World Ocean Database (WOD98; Mar. 94 NODC archive data)", + "89":"NODC/OCL 1998 World Ocean Database (WOD98; non-NODC archive)", + "90":"UK Met. Ofc. (MetO) Main Marine Data Bank (MDB): Flatfile 1 (no cardimage)", + "91":"MetO MDB: Flatfile 1A (Flatfile plus cardimage data)", + "92":"MetO MDB: Flatfile 1B (no Flatfile match; data derived from cardimage)", + "93":"MetO Historical Metforms (1935-39): Flatfile 1C (data from cardimage)", + "94":"MetO GTS Receipts (primarily SHIP code; from MDB format)", + "95":"Japanese Kobe Collection Data (IMMT format; 2003 Edition)", + "96":"Norwegian Logbook Collection", + "97":"Japanese Kobe Collection Data (IMMT format; 1998 Edition)", + "98":"US Merchant Marine Collection (1912-46): Full QC (CLICOM system)", + "99":"Japanese Kobe Collection Data (IMMT format; 2001 Edition)", + "100":"NCEP BUFR GTS: Operational Tanks: Converted from Original Message", + "101":"NCEP BUFR GTS: Operational Tanks: Converted from BUFR", + "102":"NCEP BUFR GTS: Dumped Data: Converted from Original Message", + "103":"NCEP BUFR GTS: Dumped Data: Converted from BUFR", + "109":"US Navy Marine (US-keyed ship data; hourly METAR format", + "110":"UK Met. Office VOSClim GTS BUFR Data", + "111":"Shipboard Environmental (Data) Acquisition System (SEAS)", + "112":"IMM Tape Archive from WMO GCC (IMMT-2 or IMMT-3 format)", + "113":"International Marine (US-keyed ship data)", + "114":"NCEI GTS", + "115":"Japanese Whaling Ship Data (CDMP digitization)", + "116":"Japanese Whaling Ship Data (MIT digitization)", + "117":"PMEL TAO/TRITON and PIRATA Research Archive Hourly Average Data", + "118":"PMEL TAO/TRITON and PIRATA Research Archive 10-Minute Average Data", + "119":"JAMSTEC TRITON Hourly Average Data", + "120":"PMEL TAO/TRITON and PIRATA Research Archive Hourly Average SLP Data", + "121":"US National Data Buoy Center (NDBC) Data (obtained from NCDC 2005-2012)", + "122":"US NDBC data (NODC f291 archive version translated by NCDC 2008)", + "124":"Climatological Database for the World's Oceans (CLIWOC; Release 2.0)", + "125":"US Marine Meteorological Journals Collection (1878-94)", + "126":"Royal Navy Ship's Logs 1938-47 (keyed by 2007)", + "127":"Antarctic Expeditions: Print./Published (held at Met Office)", + "128":"North Polar Expedition of the Fram Strait (digitised by Environment Canada", + "129":"Byrd Antarctic Expedition (keyed by Hollings Scholars)", + "130":"Research Vessel (R/V) Data Quality-Evaluated by FSU/COAPS: WOCE ver.3.0", + "131":"Research Vessel (R/V) Data Quality-Evaluated by FSU/COAPS: SAMOS", + "132":"Research Vessel (R/V) Data Quality-Evaluated by FSU/COAPS: Other", + "133":"Climatological Database for the World's Oceans (CLIWOC; Release 2.1)", + "134":"Deutscher Wetterdienst (DWD) Marine Meteorological Archive: Compo Subset", + "135":"DWD Marine Meteorological Archive: Newly Digitized Data", + "136":"DWD Marine Meteorological Archive: HISTOR Data", + "137":"NODC/OCL 2005 World Ocean Database (WOD05) updated through 13 Dec. 2007", + "138":"ACRE Data: Challenger Expedition", + "139":"German Deep Drifter Data (via ISDM; originally from IfM/Univ. Kiel)", + "140":"US Navy Hourlies: Deck 117 in TD-1100 format", + "141":"US Navy Hourlies: Original card deck 117 format (from FOSDIC)", + "142":"US Navy Hourlies: Original card deck 117 format (from DSI1117)", + "143":"Chinese/Global Ocean Data Archeology and Rescue (GODAR) Ships", + "144":"US Lightship collection: Woods Hole Oceanographic Institution", + "145":"US Lightship Collection: National Archives and Records Administration", + "146":"UK Met Office and NOC: VOSClim-compliant GTS BUFR Data: Historical ship/buoy (FM13)", + "147":"UK Met Office and NOC: VOSClim-compliant GTS BUFR Data: Historical buoy (FM18)", + "148":"English East India Company (EEIC) Ship Logs (containing insturmental data)", + "149":"NOAA/NCEI 2013 World Ocean Database (WOD13) updated through 24-02-2015", + "150":"Shipboard Environmental (data) Acquisition System (SEAS9.1): IMMT5 format", + "151":"US TurboWin (TurboWin 5.0)(e-Logbook) VOS Receipts: IMMT-4 format", + "152":"German Maury Collection", + "156":"Australian Navy Vssels: SST Data (1972 0 1977)", + "157":"US Navy Marine (IMMA formatted by US Navy)", + "158":"US TurboWin+ (e-logbook) VOS Receipts: IMMT-5", + "159":"Global Ocean Surface Underway Data (GOSUD v2) from NCEI in WOD format received 19 May 2015", + "160":"DWD Marine Meteorological Archive: HISTOR Data (receipts in 2015)", + "161":"DWD German Light Vessels (receipts in 2014)", + "162":"GOSUDv3 real-time data from NCEI in WOD format received 30 April 2015", + "163":"GOSUD v3 near real time data from NCEI in WOD format received 30 April 2015", + "164":"GOSUD delayed-mode French research vessels and sailing ship data from NCEI in WOD format received 30 April 2015", + "165":"World War I (WW1) UK Royal Navy Logbooks (OldWeather) (1914-1923)(Accessed 29 May 2015)", + "166":"US Navy Arctic Logbooks (OldWeather) (Accessed 29 May 2015)", + "167":"ACRE Historical Digitised (expeditionary and other spreadsheets) - Translated by UK Met Office", + "168":"ACRE Historical Digitised (expeditionary and other spreadsheets) - Translated by NCEI", + "169":"Global Tropical Moored Buoy Array (GTMBA) from PMEL RT via NOC", + "170":"Global Tropicak Moored Buoy Arrat (GTMBA) from PMEL DM via NOC", + "171":"Australian Abstract Logs (Wragge Collection) from Weather Detective Crowdsourcing (accessed 29 May 2015)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.SX.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.SX.json new file mode 100644 index 0000000..c17f220 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.SX.json @@ -0,0 +1,3 @@ +{ + "1":"period converted from code into whole seconds" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.TC.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.TC.json new file mode 100644 index 0000000..91dcab7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.TC.json @@ -0,0 +1,5 @@ +{ + "0":"not track checked", + "1":"track checked", + "2":"Unknown" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.TRIM.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.TRIM.json new file mode 100644 index 0000000..6cc6229 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.TRIM.json @@ -0,0 +1,14 @@ +{ + "1":"Within 2.8 sigma limits (g - 2.8*s1 <= a1 <= g + 2.8*s5)", + "2":"Less than 2.8 sigma lower limit (g - 3.5*s1 <= a1 < g - 2.8*s1)", + "3":"Greater than 2.8 sigma upper limit (g + 2.8*s5 < a1 <= g + 3.5*s5)", + "4":"Less than 3.5 sigma lower limit (g - 4.5*s1 <= a1 < g - 3.5*s1)", + "5":"Greater than 3.5 sigma upper limit (g + 3.5*s5 < a1 <= g + 4.5*s5)", + "6":"Less than 4.5 sigma lower limit (a1 < g - 4.5*s1)", + "7":"Greater than 4.5 sigma upper limit (a1 > g + 4.5*s5)", + "11":"Limits missing (ocean/coastal box); MEDS data correct (SF/PF only)", + "12":"Limits missing (ocean/coastal box) ", + "13":"Landlocked 2-degree box", + "14":"Data unusable (SF, AF, and PF, only; see Table 2)", + "15":"Data missing or not computable (see Table 2)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C1.WX.json b/schemas/lib/imma.old/code_tables/ICOADS.C1.WX.json new file mode 100644 index 0000000..c17f220 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C1.WX.json @@ -0,0 +1,3 @@ +{ + "1":"period converted from code into whole seconds" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.AWSI.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.AWSI.json new file mode 100644 index 0000000..7942a49 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.AWSI.json @@ -0,0 +1,5 @@ +{ + "0":"No AWS", + "1":"AWS", + "2":"AWS plus manual observations" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.FM.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.FM.json new file mode 100644 index 0000000..09ad7f2 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.FM.json @@ -0,0 +1,15 @@ +{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7", + "8":"8", + "9":"9", + "10":"A", + "11":"B", + "12":"C" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IC1.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC1.json new file mode 100644 index 0000000..656f8ee --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC1.json @@ -0,0 +1,13 @@ +{ + "2":"0", + "2":"1", + "2":"2", + "2":"3 ", + "2":"4 ", + "2":"5 ", + "2":"6", + "2":"7", + "2":"8 ", + "2":"9", + "2":"10" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IC2.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC2.json new file mode 100644 index 0000000..1f38dcb --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC2.json @@ -0,0 +1,13 @@ +{ + "2":"0", + "2":"1", + "2":"2", + "2":"3", + "2":"4", + "2":"5", + "2":"6", + "2":"7", + "2":"8", + "2":"9", + "2":"10" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IC3.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC3.json new file mode 100644 index 0000000..1f38dcb --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC3.json @@ -0,0 +1,13 @@ +{ + "2":"0", + "2":"1", + "2":"2", + "2":"3", + "2":"4", + "2":"5", + "2":"6", + "2":"7", + "2":"8", + "2":"9", + "2":"10" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IC4.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC4.json new file mode 100644 index 0000000..1f38dcb --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC4.json @@ -0,0 +1,13 @@ +{ + "2":"0", + "2":"1", + "2":"2", + "2":"3", + "2":"4", + "2":"5", + "2":"6", + "2":"7", + "2":"8", + "2":"9", + "2":"10" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IC5.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC5.json new file mode 100644 index 0000000..1f38dcb --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IC5.json @@ -0,0 +1,13 @@ +{ + "2":"0", + "2":"1", + "2":"2", + "2":"3", + "2":"4", + "2":"5", + "2":"6", + "2":"7", + "2":"8", + "2":"9", + "2":"10" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IMMV.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IMMV.json new file mode 100644 index 0000000..fd4c0c1 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IMMV.json @@ -0,0 +1,8 @@ +{ + "0":"IMMT version just prior to version number being included", + "1":"IMMT-1 (in effect from 2 Nov. 1994)", + "2":"IMMT-2 (in effect from Jan. 2003)", + "3":"IMMT-3 (in effect from Jan. 2007)", + "4":"IMMT-4 (in effect from Jan. 2011)", + "5":"IMMT-5 (in effect from June 2012)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IR.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IR.json new file mode 100644 index 0000000..9914572 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IR.json @@ -0,0 +1,7 @@ +{ + "0":"Precipitation data are reported in Sections 1 and 3; Group 6RRRtr is included in both sections", + "1":"Precipitation data are reported in Section 1; Group 6RRRtr is included", + "2":"Precipitation data are reported in Section 3; Group 6RRRtr is included", + "3":"Precipitation data are reported in none of the two Sections 1 and 3; Group 6RRRtr is omitted (precipitation amount = 0)", + "4":"Precipitation data are reported in none of the two Sections 1 and 3; Group 6RRRtr is omitted (precipitation amount not available)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IS.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IS.json new file mode 100644 index 0000000..4b98268 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IS.json @@ -0,0 +1,7 @@ +{ + "1":"icing from ocean spray", + "2":"icing from fog", + "3":"icing from spray and fog", + "4":"icing from rain", + "5":"icing from spray and rain" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.IX.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.IX.json new file mode 100644 index 0000000..5c81259 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.IX.json @@ -0,0 +1,9 @@ +{ + "1":"manned included", + "2":"manned omitted (no significant phenomenon to report)", + "3":"manned omitted (no observation, data not available)", + "4":"automatic included [using WMO Codes 4677 and 4561]", + "5":"automatic omitted (no significant phenomenon to report)", + "6":"automatic omitted (no observation, data not available)", + "7":"automatic included using WMO Codes 4680 and 4531" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.MQCS.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.MQCS.json new file mode 100644 index 0000000..56bde50 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.MQCS.json @@ -0,0 +1,12 @@ +{ + "0":"No quality control (QC) has been performed on this element", + "1":"QC has been performed; element appears to be correct", + "2":"QC has been performed; element appears to be inconsistent with other elements", + "3":"QC has been performed; element appears to be doubtful", + "4":"QC has been performed; element appears to be erroneous", + "5":"The value has been changed as a result of QC", + "6":"The original flag is set (1) (correct) and the value will be classified by MQCS as inconsistent, dubious, erroneous or missing", + "7":"The original flag is set (5) (amended) and the value will be classified by MQCS as inconsistent, dubious, erroneous or missing", + "8":"[reserved]", + "9":"The value of the element is missing" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.MQCSv.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.MQCSv.json new file mode 100644 index 0000000..2a7d303 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.MQCSv.json @@ -0,0 +1,9 @@ +{ + "1":"MQCS- I (Original version, Feb. 1989): CMM-X", + "2":"MQCS-II (Version 2, March 1997) CMM-XII", + "3":"MQCS-III (Version 3, April 2000) SGMC-VIII", + "4":"MQCS-IV (Version 4, June 2001): JCOMM-I", + "5":"MQCS-V (Version 5, July 2004): ETMC-I", + "6":"MQCS-VI (Version 6, January 2011): JCOMM-III", + "7":"MQCS-VII (Version 7, June 2012): JCOMM-IV" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.OP.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.OP.json new file mode 100644 index 0000000..b076ab7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.OP.json @@ -0,0 +1,12 @@ +{ + "0":"unknown", + "1":"selected ship", + "2":"supplementary ship", + "3":"auxiliary ship", + "4":"registered VOSClim ship", + "5":"fixed sea station (e.g., rig or platform)", + "6":"coastal station", + "7":"[reserved]", + "8":"[reserved]", + "9":"others / data buoy" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.OS.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.OS.json new file mode 100644 index 0000000..f10e38b --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.OS.json @@ -0,0 +1,9 @@ +{ + "0":"unknown", + "1":"logbook (paper)", + "2":"national telecommunication channels", + "3":"national publications", + "4":"logbook (electronic)", + "5":"global telecommunication channels (GTS)", + "6":"international publications" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.RHI.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.RHI.json new file mode 100644 index 0000000..5a97d17 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.RHI.json @@ -0,0 +1,7 @@ +{ + "0":"Relative humidity in tenths of Percentage, measured and originally reported", + "1":"Relative humidity in whole Percentage, measured and originally reported", + "2":"[Reserved]", + "3":"Relative humidity in tenths of Percentage, computed", + "4":"Relative humidity in whole Percentage, computed" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.RRR.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.RRR.json new file mode 100644 index 0000000..efb1ed3 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.RRR.json @@ -0,0 +1,1002 @@ +{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7", + "8":"8", + "9":"9", + "10":"10", + "11":"11", + "12":"12", + "13":"13", + "14":"14", + "15":"15", + "16":"16", + "17":"17", + "18":"18", + "19":"19", + "20":"20", + "21":"21", + "22":"22", + "23":"23", + "24":"24", + "25":"25", + "26":"26", + "27":"27", + "28":"28", + "29":"29", + "30":"30", + "31":"31", + "32":"32", + "33":"33", + "34":"34", + "35":"35", + "36":"36", + "37":"37", + "38":"38", + "39":"39", + "40":"40", + "41":"41", + "42":"42", + "43":"43", + "44":"44", + "45":"45", + "46":"46", + "47":"47", + "48":"48", + "49":"49", + "50":"50", + "51":"51", + "52":"52", + "53":"53", + "54":"54", + "55":"55", + "56":"56", + "57":"57", + "58":"58", + "59":"59", + "60":"60", + "61":"61", + "62":"62", + "63":"63", + "64":"64", + "65":"65", + "66":"66", + "67":"67", + "68":"68", + "69":"69", + "70":"70", + "71":"71", + "72":"72", + "73":"73", + "74":"74", + "75":"75", + "76":"76", + "77":"77", + "78":"78", + "79":"79", + "80":"80", + "81":"81", + "82":"82", + "83":"83", + "84":"84", + "85":"85", + "86":"86", + "87":"87", + "88":"88", + "89":"89", + "90":"90", + "91":"91", + "92":"92", + "93":"93", + "94":"94", + "95":"95", + "96":"96", + "97":"97", + "98":"98", + "99":"99", + "100":"100", + "101":"101", + "102":"102", + "103":"103", + "104":"104", + "105":"105", + "106":"106", + "107":"107", + "108":"108", + "109":"109", + "110":"110", + "111":"111", + "112":"112", + "113":"113", + "114":"114", + "115":"115", + "116":"116", + "117":"117", + "118":"118", + "119":"119", + "120":"120", + "121":"121", + "122":"122", + "123":"123", + "124":"124", + "125":"125", + "126":"126", + "127":"127", + "128":"128", + "129":"129", + "130":"130", + "131":"131", + "132":"132", + "133":"133", + "134":"134", + "135":"135", + "136":"136", + "137":"137", + "138":"138", + "139":"139", + "140":"140", + "141":"141", + "142":"142", + "143":"143", + "144":"144", + "145":"145", + "146":"146", + "147":"147", + "148":"148", + "149":"149", + "150":"150", + "151":"151", + "152":"152", + "153":"153", + "154":"154", + "155":"155", + "156":"156", + "157":"157", + "158":"158", + "159":"159", + "160":"160", + "161":"161", + "162":"162", + "163":"163", + "164":"164", + "165":"165", + "166":"166", + "167":"167", + "168":"168", + "169":"169", + "170":"170", + "171":"171", + "172":"172", + "173":"173", + "174":"174", + "175":"175", + "176":"176", + "177":"177", + "178":"178", + "179":"179", + "180":"180", + "181":"181", + "182":"182", + "183":"183", + "184":"184", + "185":"185", + "186":"186", + "187":"187", + "188":"188", + "189":"189", + "190":"190", + "191":"191", + "192":"192", + "193":"193", + "194":"194", + "195":"195", + "196":"196", + "197":"197", + "198":"198", + "199":"199", + "200":"200", + "201":"201", + "202":"202", + "203":"203", + "204":"204", + "205":"205", + "206":"206", + "207":"207", + "208":"208", + "209":"209", + "210":"210", + "211":"211", + "212":"212", + "213":"213", + "214":"214", + "215":"215", + "216":"216", + "217":"217", + "218":"218", + "219":"219", + "220":"220", + "221":"221", + "222":"222", + "223":"223", + "224":"224", + "225":"225", + "226":"226", + "227":"227", + "228":"228", + "229":"229", + "230":"230", + "231":"231", + "232":"232", + "233":"233", + "234":"234", + "235":"235", + "236":"236", + "237":"237", + "238":"238", + "239":"239", + "240":"240", + "241":"241", + "242":"242", + "243":"243", + "244":"244", + "245":"245", + "246":"246", + "247":"247", + "248":"248", + "249":"249", + "250":"250", + "251":"251", + "252":"252", + "253":"253", + "254":"254", + "255":"255", + "256":"256", + "257":"257", + "258":"258", + "259":"259", + "260":"260", + "261":"261", + "262":"262", + "263":"263", + "264":"264", + "265":"265", + "266":"266", + "267":"267", + "268":"268", + "269":"269", + "270":"270", + "271":"271", + "272":"272", + "273":"273", + "274":"274", + "275":"275", + "276":"276", + "277":"277", + "278":"278", + "279":"279", + "280":"280", + "281":"281", + "282":"282", + "283":"283", + "284":"284", + "285":"285", + "286":"286", + "287":"287", + "288":"288", + "289":"289", + "290":"290", + "291":"291", + "292":"292", + "293":"293", + "294":"294", + "295":"295", + "296":"296", + "297":"297", + "298":"298", + "299":"299", + "300":"300", + "301":"301", + "302":"302", + "303":"303", + "304":"304", + "305":"305", + "306":"306", + "307":"307", + "308":"308", + "309":"309", + "310":"310", + "311":"311", + "312":"312", + "313":"313", + "314":"314", + "315":"315", + "316":"316", + "317":"317", + "318":"318", + "319":"319", + "320":"320", + "321":"321", + "322":"322", + "323":"323", + "324":"324", + "325":"325", + "326":"326", + "327":"327", + "328":"328", + "329":"329", + "330":"330", + "331":"331", + "332":"332", + "333":"333", + "334":"334", + "335":"335", + "336":"336", + "337":"337", + "338":"338", + "339":"339", + "340":"340", + "341":"341", + "342":"342", + "343":"343", + "344":"344", + "345":"345", + "346":"346", + "347":"347", + "348":"348", + "349":"349", + "350":"350", + "351":"351", + "352":"352", + "353":"353", + "354":"354", + "355":"355", + "356":"356", + "357":"357", + "358":"358", + "359":"359", + "360":"360", + "361":"361", + "362":"362", + "363":"363", + "364":"364", + "365":"365", + "366":"366", + "367":"367", + "368":"368", + "369":"369", + "370":"370", + "371":"371", + "372":"372", + "373":"373", + "374":"374", + "375":"375", + "376":"376", + "377":"377", + "378":"378", + "379":"379", + "380":"380", + "381":"381", + "382":"382", + "383":"383", + "384":"384", + "385":"385", + "386":"386", + "387":"387", + "388":"388", + "389":"389", + "390":"390", + "391":"391", + "392":"392", + "393":"393", + "394":"394", + "395":"395", + "396":"396", + "397":"397", + "398":"398", + "399":"399", + "400":"400", + "401":"401", + "402":"402", + "403":"403", + "404":"404", + "405":"405", + "406":"406", + "407":"407", + "408":"408", + "409":"409", + "410":"410", + "411":"411", + "412":"412", + "413":"413", + "414":"414", + "415":"415", + "416":"416", + "417":"417", + "418":"418", + "419":"419", + "420":"420", + "421":"421", + "422":"422", + "423":"423", + "424":"424", + "425":"425", + "426":"426", + "427":"427", + "428":"428", + "429":"429", + "430":"430", + "431":"431", + "432":"432", + "433":"433", + "434":"434", + "435":"435", + "436":"436", + "437":"437", + "438":"438", + "439":"439", + "440":"440", + "441":"441", + "442":"442", + "443":"443", + "444":"444", + "445":"445", + "446":"446", + "447":"447", + "448":"448", + "449":"449", + "450":"450", + "451":"451", + "452":"452", + "453":"453", + "454":"454", + "455":"455", + "456":"456", + "457":"457", + "458":"458", + "459":"459", + "460":"460", + "461":"461", + "462":"462", + "463":"463", + "464":"464", + "465":"465", + "466":"466", + "467":"467", + "468":"468", + "469":"469", + "470":"470", + "471":"471", + "472":"472", + "473":"473", + "474":"474", + "475":"475", + "476":"476", + "477":"477", + "478":"478", + "479":"479", + "480":"480", + "481":"481", + "482":"482", + "483":"483", + "484":"484", + "485":"485", + "486":"486", + "487":"487", + "488":"488", + "489":"489", + "490":"490", + "491":"491", + "492":"492", + "493":"493", + "494":"494", + "495":"495", + "496":"496", + "497":"497", + "498":"498", + "499":"499", + "500":"500", + "501":"501", + "502":"502", + "503":"503", + "504":"504", + "505":"505", + "506":"506", + "507":"507", + "508":"508", + "509":"509", + "510":"510", + "511":"511", + "512":"512", + "513":"513", + "514":"514", + "515":"515", + "516":"516", + "517":"517", + "518":"518", + "519":"519", + "520":"520", + "521":"521", + "522":"522", + "523":"523", + "524":"524", + "525":"525", + "526":"526", + "527":"527", + "528":"528", + "529":"529", + "530":"530", + "531":"531", + "532":"532", + "533":"533", + "534":"534", + "535":"535", + "536":"536", + "537":"537", + "538":"538", + "539":"539", + "540":"540", + "541":"541", + "542":"542", + "543":"543", + "544":"544", + "545":"545", + "546":"546", + "547":"547", + "548":"548", + "549":"549", + "550":"550", + "551":"551", + "552":"552", + "553":"553", + "554":"554", + "555":"555", + "556":"556", + "557":"557", + "558":"558", + "559":"559", + "560":"560", + "561":"561", + "562":"562", + "563":"563", + "564":"564", + "565":"565", + "566":"566", + "567":"567", + "568":"568", + "569":"569", + "570":"570", + "571":"571", + "572":"572", + "573":"573", + "574":"574", + "575":"575", + "576":"576", + "577":"577", + "578":"578", + "579":"579", + "580":"580", + "581":"581", + "582":"582", + "583":"583", + "584":"584", + "585":"585", + "586":"586", + "587":"587", + "588":"588", + "589":"589", + "590":"590", + "591":"591", + "592":"592", + "593":"593", + "594":"594", + "595":"595", + "596":"596", + "597":"597", + "598":"598", + "599":"599", + "600":"600", + "601":"601", + "602":"602", + "603":"603", + "604":"604", + "605":"605", + "606":"606", + "607":"607", + "608":"608", + "609":"609", + "610":"610", + "611":"611", + "612":"612", + "613":"613", + "614":"614", + "615":"615", + "616":"616", + "617":"617", + "618":"618", + "619":"619", + "620":"620", + "621":"621", + "622":"622", + "623":"623", + "624":"624", + "625":"625", + "626":"626", + "627":"627", + "628":"628", + "629":"629", + "630":"630", + "631":"631", + "632":"632", + "633":"633", + "634":"634", + "635":"635", + "636":"636", + "637":"637", + "638":"638", + "639":"639", + "640":"640", + "641":"641", + "642":"642", + "643":"643", + "644":"644", + "645":"645", + "646":"646", + "647":"647", + "648":"648", + "649":"649", + "650":"650", + "651":"651", + "652":"652", + "653":"653", + "654":"654", + "655":"655", + "656":"656", + "657":"657", + "658":"658", + "659":"659", + "660":"660", + "661":"661", + "662":"662", + "663":"663", + "664":"664", + "665":"665", + "666":"666", + "667":"667", + "668":"668", + "669":"669", + "670":"670", + "671":"671", + "672":"672", + "673":"673", + "674":"674", + "675":"675", + "676":"676", + "677":"677", + "678":"678", + "679":"679", + "680":"680", + "681":"681", + "682":"682", + "683":"683", + "684":"684", + "685":"685", + "686":"686", + "687":"687", + "688":"688", + "689":"689", + "690":"690", + "691":"691", + "692":"692", + "693":"693", + "694":"694", + "695":"695", + "696":"696", + "697":"697", + "698":"698", + "699":"699", + "700":"700", + "701":"701", + "702":"702", + "703":"703", + "704":"704", + "705":"705", + "706":"706", + "707":"707", + "708":"708", + "709":"709", + "710":"710", + "711":"711", + "712":"712", + "713":"713", + "714":"714", + "715":"715", + "716":"716", + "717":"717", + "718":"718", + "719":"719", + "720":"720", + "721":"721", + "722":"722", + "723":"723", + "724":"724", + "725":"725", + "726":"726", + "727":"727", + "728":"728", + "729":"729", + "730":"730", + "731":"731", + "732":"732", + "733":"733", + "734":"734", + "735":"735", + "736":"736", + "737":"737", + "738":"738", + "739":"739", + "740":"740", + "741":"741", + "742":"742", + "743":"743", + "744":"744", + "745":"745", + "746":"746", + "747":"747", + "748":"748", + "749":"749", + "750":"750", + "751":"751", + "752":"752", + "753":"753", + "754":"754", + "755":"755", + "756":"756", + "757":"757", + "758":"758", + "759":"759", + "760":"760", + "761":"761", + "762":"762", + "763":"763", + "764":"764", + "765":"765", + "766":"766", + "767":"767", + "768":"768", + "769":"769", + "770":"770", + "771":"771", + "772":"772", + "773":"773", + "774":"774", + "775":"775", + "776":"776", + "777":"777", + "778":"778", + "779":"779", + "780":"780", + "781":"781", + "782":"782", + "783":"783", + "784":"784", + "785":"785", + "786":"786", + "787":"787", + "788":"788", + "789":"789", + "790":"790", + "791":"791", + "792":"792", + "793":"793", + "794":"794", + "795":"795", + "796":"796", + "797":"797", + "798":"798", + "799":"799", + "800":"800", + "801":"801", + "802":"802", + "803":"803", + "804":"804", + "805":"805", + "806":"806", + "807":"807", + "808":"808", + "809":"809", + "810":"810", + "811":"811", + "812":"812", + "813":"813", + "814":"814", + "815":"815", + "816":"816", + "817":"817", + "818":"818", + "819":"819", + "820":"820", + "821":"821", + "822":"822", + "823":"823", + "824":"824", + "825":"825", + "826":"826", + "827":"827", + "828":"828", + "829":"829", + "830":"830", + "831":"831", + "832":"832", + "833":"833", + "834":"834", + "835":"835", + "836":"836", + "837":"837", + "838":"838", + "839":"839", + "840":"840", + "841":"841", + "842":"842", + "843":"843", + "844":"844", + "845":"845", + "846":"846", + "847":"847", + "848":"848", + "849":"849", + "850":"850", + "851":"851", + "852":"852", + "853":"853", + "854":"854", + "855":"855", + "856":"856", + "857":"857", + "858":"858", + "859":"859", + "860":"860", + "861":"861", + "862":"862", + "863":"863", + "864":"864", + "865":"865", + "866":"866", + "867":"867", + "868":"868", + "869":"869", + "870":"870", + "871":"871", + "872":"872", + "873":"873", + "874":"874", + "875":"875", + "876":"876", + "877":"877", + "878":"878", + "879":"879", + "880":"880", + "881":"881", + "882":"882", + "883":"883", + "884":"884", + "885":"885", + "886":"886", + "887":"887", + "888":"888", + "889":"889", + "890":"890", + "891":"891", + "892":"892", + "893":"893", + "894":"894", + "895":"895", + "896":"896", + "897":"897", + "898":"898", + "899":"899", + "900":"900", + "901":"901", + "902":"902", + "903":"903", + "904":"904", + "905":"905", + "906":"906", + "907":"907", + "908":"908", + "909":"909", + "910":"910", + "911":"911", + "912":"912", + "913":"913", + "914":"914", + "915":"915", + "916":"916", + "917":"917", + "918":"918", + "919":"919", + "920":"920", + "921":"921", + "922":"922", + "923":"923", + "924":"924", + "925":"925", + "926":"926", + "927":"927", + "928":"928", + "929":"929", + "930":"930", + "931":"931", + "932":"932", + "933":"933", + "934":"934", + "935":"935", + "936":"936", + "937":"937", + "938":"938", + "939":"939", + "940":"940", + "941":"941", + "942":"942", + "943":"943", + "944":"944", + "945":"945", + "946":"946", + "947":"947", + "948":"948", + "949":"949", + "950":"950", + "951":"951", + "952":"952", + "953":"953", + "954":"954", + "955":"955", + "956":"956", + "957":"957", + "958":"958", + "959":"959", + "960":"960", + "961":"961", + "962":"962", + "963":"963", + "964":"964", + "965":"965", + "966":"966", + "967":"967", + "968":"968", + "969":"969", + "970":"970", + "971":"971", + "972":"972", + "973":"973", + "974":"974", + "975":"975", + "976":"976", + "977":"977", + "978":"978", + "979":"979", + "980":"980", + "981":"981", + "982":"982", + "983":"983", + "984":"984", + "985":"985", + "986":"986", + "987":"987", + "988":"988", + "989":"989", + "990":"0", + "991":"0.1", + "992":"0.2", + "993":"0.3", + "994":"0.4", + "995":"0.5", + "996":"0.6", + "997":"0.7", + "998":"0.8", + "999":"0.9" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.RS.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.RS.json new file mode 100644 index 0000000..48b17cc --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.RS.json @@ -0,0 +1,7 @@ +{ + "0":"ice not building up", + "1":"ice building up slowly", + "2":"ice building up rapidly", + "3":"ice melting or breaking up slowly", + "4":"ice melting or breaking up rapidly" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.TR.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.TR.json new file mode 100644 index 0000000..98ddbd7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.TR.json @@ -0,0 +1,12 @@ +{ + "0":"undefined", + "1":"Total precipitation during the 6 hours preceding the observation", + "2":"Total precipitation during the 12 hours preceding the observation", + "3":"Total precipitation during the 18 hours preceding the observation", + "4":"Total precipitation during the 24 hours preceding the observation", + "5":"Total precipitation during the 1 hour preceding the observation", + "6":"Total precipitation during the 2 hours preceding the observation", + "7":"Total precipitation during the 3 hours preceding the observation", + "8":"Total precipitation during the 9 hours preceding the observation", + "9":"Total precipitation during the 15 hours preceding the observation" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.W2.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.W2.json new file mode 100644 index 0000000..270266e --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.W2.json @@ -0,0 +1,12 @@ +{ + "0":"cloud covering one half or less of the sky throughout the period", + "1":"cloud covering more than one half of the sky during part of the period and covering one half or less during part of the period", + "2":"cloud covering more than one half of the sky throughout the period", + "3":"sandstorm, dust storm or blowing snow", + "4":"fog, ice fog, or thick haze (US includes thick smoke)", + "5":"drizzle", + "6":"rain", + "7":"snow, or rain and snow mixed", + "8":"shower", + "9":"thunderstorm with or without precipitation" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C5.WMI.json b/schemas/lib/imma.old/code_tables/ICOADS.C5.WMI.json new file mode 100644 index 0000000..aadd9d1 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C5.WMI.json @@ -0,0 +1,12 @@ +{ + "0":"wind sea and swell estimated shipborne wave recorder", + "1":"wind sea and swell measured shipborne wave recorder", + "2":"mixed wave measured, swell estimated shipborne wave recorder", + "3":"other combinations measured and estimated shipborne wave recorder", + "4":"wind sea and swell measured buoy", + "5":"mixed wave measured, swell estimated buoy", + "6":"other combinations measured and estimated buoy", + "7":"wind sea and swell measured other measurement system", + "8":"mixed wave measured, swell estimated other measurement system", + "9":"other combinations measured and estimated other measurement system" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.COUNTRY.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.COUNTRY.json new file mode 100644 index 0000000..d9ec138 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.COUNTRY.json @@ -0,0 +1,259 @@ +{ + "0":"Netherlands", + "1":"Norway", + "2":"US", + "3":"UK", + "4":"France", + "5":"Denmark", + "6":"Italy", + "7":"India", + "8":"Hong Kong", + "9":"New Zealand", + "00":"Netherlands", + "01":"Norway", + "02":"US", + "03":"UK", + "04":"France", + "05":"Denmark", + "06":"Italy", + "07":"India", + "08":"Hong Kong", + "09":"New Zealand", + "10":"Ireland", + "11":"Philippines", + "12":"Egypt", + "13":"Canada", + "14":"Belgium", + "15":"South Africa", + "16":"Australia", + "17":"Japan", + "18":"Pakistan", + "19":"Argentina", + "20":"Sweden", + "21":"Federal Republic of Germany", + "22":"Iceland", + "23":"Israel", + "24":"Malaysia", + "25":"USSR", + "26":"Finland", + "27":"Rep. of Korea", + "28":"New Caledonia", + "29":"Portugal", + "30":"Spain", + "31":"Thailand", + "32":"Yugoslavia", + "33":"Poland", + "34":"Brazil", + "35":"Singapore", + "36":"Kenya", + "37":"Tanzania", + "38":"Uganda", + "39":"Mexico", + "40":"German Democractic Republic", + "AF":"Afghanistan", + "AL":"Albania", + "DZ":"Algeria", + "AD":"Andorra", + "AO":"Angola", + "AG":"Antigua and Barbuda", + "AR":"Argentina", + "AM":"Armenia", + "AW":"Aruba", + "AU":"Australia", + "AT":"Austria", + "AZ":"Azerbaijan", + "BS":"Bahamas", + "BH":"Bahrain", + "BD":"Bangladesh", + "BB":"Barbados", + "BY":"Belarus", + "BE":"Belgium", + "BZ":"Belize", + "BJ":"Benin", + "BT":"Bhutan", + "BO":"Bolivia", + "BA":"Bosnia and Herzegovina", + "BW":"Botswana", + "BR":"Brazil", + "BN":"Brunei Darussalam", + "BG":"Bulgaria", + "BF":"Burkina Faso", + "BI":"Burundi", + "KH":"Cambodia", + "CM":"Cameroon", + "CA":"Canada", + "CV":"Cape Verde", + "CF":"Central African Republic", + "TD":"Chad", + "CL":"Chile", + "CN":"China", + "CO":"Columbia", + "KM":"Comoros", + "CG":"Congo", + "CD":"The Democratic Republic of the Congo", + "CR":"Costa Rica", + "CI":"Cote d'Ivoire", + "HR":"Croatia", + "CU":"Cuba", + "CY":"Cyprus", + "CZ":"Czech Republic", + "DK":"Denmark", + "DJ":"Djibouti", + "DM":"Dominica", + "DO":"Dominican Republic", + "EC":"Ecuador", + "EG":"Egypt", + "SV":"El Salvador", + "GQ":"Equatorial Guinea", + "ER":"Eritrea", + "EE":"Estonia", + "ET":"Ethiopia", + "FJ":"Fiji", + "FI":"Finland", + "FR":"France", + "GA":"Gabon", + "GM":"Gambia", + "GE":"Georgia", + "DE":"Germany", + "GH":"Ghana", + "GR":"Greece", + "GD":"Grenada", + "GT":"Guatemala", + "GN":"Guinea", + "GW":"Guinea Bissau", + "GY":"Guyana", + "HT":"Haiti", + "HN":"Honduras", + "HK":"Hong Kong", + "HU":"Hungary", + "IS":"Iceland", + "IN":"India", + "ID":"Indonesia", + "IR":"Islamic Republic of Iran", + "IQ":"Iraq", + "IE":"Ireland", + "IL":"Israel", + "IT":"Italy", + "JM":"Jamaica", + "JP":"Japan", + "JO":"Jordan", + "KZ":"Kazakhstan", + "KE":"Kenya", + "KI":"Kiribati", + "KR":"Republic of Korea", + "KW":"Kuwait", + "KG":"Kyrgyzstan", + "LA":"Lao Peoples Democratic Republic", + "LV":"Latvia", + "LB":"Lebanon", + "LS":"Lesotho", + "LR":"Liberia", + "LY":"Libyan Arab Jamahiriya", + "LT":"Lithuania", + "LU":"Luxembourg", + "MK":"The Former Yugoslav Republic of Macedonia", + "MG":"Madagascar", + "MW":"Malawi", + "MY":"Malaysia", + "MV":"Maldives", + "ML":"Mali", + "MT":"Malta", + "MH":"Marshal Islands", + "MR":"Mauritania", + "MU":"Mauritius", + "MX":"Mexico", + "FM":"Federated States of Micronesia", + "MD":"Republic of Moldova", + "MC":"Monaco", + "MN":"Mongolia", + "MA":"Morocco", + "MZ":"Mozambique", + "MM":"Myanmar", + "NA":"Namibia", + "NR":"Nauru", + "NP":"Nepal", + "NL":"Netherlands", + "AN":"Netherlands Antilles", + "NZ":"New Zealand", + "NI":"Nicaragua", + "NE":"Niger", + "NG":"Nigeria", + "KP":"Democratic People's Republic of Korea", + "NO":"Norway", + "OM":"Oman", + "PK":"Pakistan", + "PW":"Palau", + "PS":"Occupied Palestinian Territory", + "PA":"Panama", + "PG":"Papua New Guinea", + "PY":"Paraguay", + "PE":"Peru", + "PH":"Philippines", + "PL":"Poland", + "PT":"Portugal", + "QA":"Qatar", + "RO":"Romania", + "RU":"Russian Federation", + "RW":"Rwanda", + "KN":"Saint Kitts and Nevis", + "LC":"Saint Lucia", + "VC":"Saint Vincent and the Grenadines", + "WS":"Samoa", + "SM":"San Marino", + "ST":"Sao Tome And Principe", + "SA":"Saudi Arabia", + "SN":"Senegal", + "CS":"Serbia and Montenegro", + "SC":"Seychelles", + "SL":"Sierra Leone", + "SG":"Singapore", + "SK":"Slovakia", + "SI":"Slovenia", + "SB":"Solomon Islands", + "SO":"Somalia", + "ZA":"South Africa", + "ES":"Spain", + "LK":"Sri Lanka", + "SD":"Sudan", + "SR":"Surinam", + "SZ":"Swaziland", + "SE":"Sweden", + "CH":"Switzerland", + "SY":"Syrian Arab Republic", + "TJ":"Tajikistan", + "TZ":"United Republic of Tanzania", + "TH":"Thailand", + "TL":"Timor - Leste", + "TG":"Togo", + "TO":"Tonga", + "TT":"Trinidad and Tobago", + "TN":"Tunisia", + "TR":"Turkey", + "TM":"Turkmenistan", + "TV":"Tuvala", + "UG":"Uganda", + "UA":"Ukraine", + "AE":"United Arab Emirates", + "GB":"United Kingdom", + "US":"United States", + "UY":"Uruguay", + "UZ":"Uzbekistan", + "VU":"Vanuatu", + "VA":"Vatican City", + "VE":"Venezuela", + "VN":"Viet Nam", + "YE":"Yemen", + "ZM":"Zambia", + "ZW":"Zimbabwe", + "DD":"East Germany", + "CS":"Serbia and Montenegro", + "RU":"Soviet Union", + "NC":"New Caledonia", + "ZY":"None (self recruited)", + "ZZ":"None (third party support)", + "TW":"Taiwan (Province of China)", + "SU":"Soviet Union", + "YU":"Yugoslavia", + "XX":"Multiple recruitment", + "EU":"European Union" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.EOH.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.EOH.json new file mode 100644 index 0000000..2314fc3 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.EOH.json @@ -0,0 +1,12 @@ +{ + "A":"Aspirated (Assmann type)", + "S":"Screen (not ventilated)", + "HH":"Hand-held digital thermometer / humidity sensor", + "RS":"Radiation shield (e.g. cylindrical / Gill multi-plate)", + "SG":"Ship's Sling", + "SL":"Sling", + "SN":"Ship's screen", + "US":"Unscreened", + "VS":"Screen (ventilated)", + "W":"Whirling" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.EOT.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.EOT.json new file mode 100644 index 0000000..2314fc3 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.EOT.json @@ -0,0 +1,12 @@ +{ + "A":"Aspirated (Assmann type)", + "S":"Screen (not ventilated)", + "HH":"Hand-held digital thermometer / humidity sensor", + "RS":"Radiation shield (e.g. cylindrical / Gill multi-plate)", + "SG":"Ship's Sling", + "SL":"Sling", + "SN":"Ship's screen", + "US":"Unscreened", + "VS":"Screen (ventilated)", + "W":"Whirling" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.KOV.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.KOV.json new file mode 100644 index 0000000..6f4ceab --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.KOV.json @@ -0,0 +1,34 @@ +{ + "BA":"Barge", + "BC":"Bulk Carrier", + "CA":"Cable ship", + "CG":"Coast Guard Ship", + "CS":"Container Ship", + "DR":"Dredger", + "FE":"Passenger ferries", + "FP":"Floating production and storage units", + "FV":"Other Fishing Vessel", + "GC":"General Cargo", + "GT":"Gas Tanker", + "IC":"Icebreaking vessel", + "IF":"Inshore Fishing Vessel", + "LC":"Livestock carrier", + "LT":"Liquid Tanker", + "LV":"Light Vessel", + "MI":"Mobile installation including mobile offshore drill ships, jack-up rigs and semi-submersibles", + "MS":"Military Ship", + "OT":"Other", + "OW":"Ocean Weather Ship", + "PI":"Pipe layer", + "PS":"Passenger ships and cruise liners", + "RF":"Ro/Ro Ferry", + "RR":"Ro/Ro Cargo", + "RS":"Refrigerated cargo ships including banana ships", + "RV":"Research Vessel", + "SA":"Large sailing vessels", + "SV":"Support Vessel", + "TR":"Trawler", + "TU":"Tug", + "VC":"Vehicle carriers", + "YA":"Yacht / Pleasure Craft" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.LOT.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.LOT.json new file mode 100644 index 0000000..073f861 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.LOT.json @@ -0,0 +1,18 @@ +{ + "1":"Bridge wing port", + "2":"Bridge wing starboard", + "3":"Bridge wing both sides", + "4":"Bridge wing windward side", + "5":"Wheelhouse top port", + "6":"Wheelhouse top starboard", + "7":"Wheelhouse top both", + "8":"Wheelhouse top center", + "9":"Wheelhouse top windward side", + "10":"Mainmast", + "11":"Foremast", + "12":"Mast on Wheelhouse top", + "13":"Main deck port side", + "14":"Main deck starboard side", + "15":"Main deck both sides", + "OT":"Other (specify in footnote)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.OPM.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.OPM.json new file mode 100644 index 0000000..48d6cf2 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.OPM.json @@ -0,0 +1,11 @@ +{ + "10":"Selected ships", + "15":"Selected ships (AWS)", + "30":"VOSClim", + "35":"VOSClim (AWS)", + "40":"Supplementary ships", + "45":"Supplementary ships (AWS)", + "70":"Auxiliary ships", + "75":"Auxiliary ships (AWS)", + "99":"Unknown" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.SIM.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.SIM.json new file mode 100644 index 0000000..ab2712c --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.SIM.json @@ -0,0 +1,10 @@ +{ + "BU":"bucket", + "C":"condenser inlet (intake)", + "TT":"trailing thermistor", + "HC":"hull contact sensor", + "HT":"through hull sensor", + "RAD":"radiation thermometer", + "BTT":"bait tanks thermometer", + "OT":"others" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.SMV.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.SMV.json new file mode 100644 index 0000000..ce932ad --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.SMV.json @@ -0,0 +1,12 @@ +{ + "0":"NULL", + "1":"Output from digitization project, semi-colon delimited format (1955)", + "2":"Output from digitization project, semi-colon delimited format (1956)", + "3":"Output from digitization project, semi-colon delimited format (1957,1967)", + "4":"Output from digitization project, semi-colon delimited format (1968 to 1969)", + "5":"Fixed format (1970Ã94)", + "6":"Semicolon delimited format (1995 to 2001)", + "7":"Semicolon delimited format (2002 to 2007 q1)", + "8":"Semicolon delimited format (2007 q2 - 2008)", + "9":"Semicolon delimited format (2009 - 2014)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.TOB.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.TOB.json new file mode 100644 index 0000000..d8fc199 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.TOB.json @@ -0,0 +1,8 @@ +{ + "AN":"Aneroid barometer (issued by Port Meteorological Officer or Meteorological Agency)", + "DA":"Digital Aneroid Barometer", + "MER":"Mercury Barometer", + "SAN":"Ship's Aneroid Barometer", + "ELE":"electronic digital barometer", + "OT":"Other" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.TOH.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.TOH.json new file mode 100644 index 0000000..81f07bb --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.TOH.json @@ -0,0 +1,11 @@ +{ + "NULL":"NULL", + "1":"Hygristor", + "2":"Chilled Mirror", + "3":"Other", + "C":"Capacitance", + "E":"Electric", + "H":"Hair hygrometer", + "P":"Psychrometer", + "T":"Torsion" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C7.TOT.json b/schemas/lib/imma.old/code_tables/ICOADS.C7.TOT.json new file mode 100644 index 0000000..f33196a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C7.TOT.json @@ -0,0 +1,5 @@ +{ + "ALC":"Alcohol Thermometer", + "ELE":"Electric (resistance) Thermometer", + "MER":"Dry Bulb Mercury Thermometer" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C95.ASIR.json b/schemas/lib/imma.old/code_tables/ICOADS.C95.ASIR.json new file mode 100644 index 0000000..707b80a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C95.ASIR.json @@ -0,0 +1,4 @@ +{ + "0":"Active", + "1":"Inactive" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C95.DPRO.json b/schemas/lib/imma.old/code_tables/ICOADS.C95.DPRO.json new file mode 100644 index 0000000..a517e2d --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C95.DPRO.json @@ -0,0 +1,6 @@ +{ + "1":"ECMWF", + "2":"NOAA-NCEP", + "3":"NASA", + "4":"JMA" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C95.DPRP.json b/schemas/lib/imma.old/code_tables/ICOADS.C95.DPRP.json new file mode 100644 index 0000000..827aa71 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C95.DPRP.json @@ -0,0 +1,6 @@ +{ + "1":"ERA-20C", + "2":"CFSRv2", + "3":"MERRA", + "4":"JRA-55" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C95.UFR.json b/schemas/lib/imma.old/code_tables/ICOADS.C95.UFR.json new file mode 100644 index 0000000..fa409f3 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C95.UFR.json @@ -0,0 +1,8 @@ +{ + "1":"Assimilated and used", + "2":"Assimilated and rejected", + "3":"Blacklisted", + "4":"Whitelisted", + "5":"Available but not used", + "6":"None apply" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C96.ASII.json b/schemas/lib/imma.old/code_tables/ICOADS.C96.ASII.json new file mode 100644 index 0000000..707b80a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C96.ASII.json @@ -0,0 +1,4 @@ +{ + "0":"Active", + "1":"Inactive" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C97.ASIE.json b/schemas/lib/imma.old/code_tables/ICOADS.C97.ASIE.json new file mode 100644 index 0000000..707b80a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C97.ASIE.json @@ -0,0 +1,4 @@ +{ + "0":"Active", + "1":"Inactive" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C98.IRF.json b/schemas/lib/imma.old/code_tables/ICOADS.C98.IRF.json new file mode 100644 index 0000000..823e73c --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C98.IRF.json @@ -0,0 +1,5 @@ +{ + "0":"Intermediate (i.e. Retain in Intermediate data file, reject from Final dataset)", + "1":"Final (i.e. Retain in both Intermediate and Final datasets)", + "2":"Reject (i.e. Reject from both Intermediate and Final datasets)" +} diff --git a/schemas/lib/imma.old/code_tables/ICOADS.C98.RSA.json b/schemas/lib/imma.old/code_tables/ICOADS.C98.RSA.json new file mode 100644 index 0000000..f664fc2 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/ICOADS.C98.RSA.json @@ -0,0 +1,5 @@ +{ + "0":"Preliminary (Not yet included in an official ICOADS Release)", + "1":"Auxiliary (Records provided in separate data files in addition to ICOADS official Releases and Preliminary data. This also includes new data sources received, but awaiting blending into an official ICOADS Release)", + "2":"Full (A record included in an official ICOADS Release)" +} diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicator b/schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicator new file mode 100644 index 0000000..2c30d58 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicator @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":"No quality control (QC) has been performed on this element"}, +{"codes":[1],"description":"QC has been performed; element appears to be correct"}, +{"codes":[2],"description":"QC has been performed; element appears to be inconsistent with other elements"}, +{"codes":[3],"description":"QC has been performed; element appears to be doubtful"}, +{"codes":[4],"description":"QC has been performed; element appears to be erroneous"}, +{"codes":[5],"description":"The value has been changed as a result of QC"}, +{"codes":[6],"description":"The original flag is set (1) (correct) and the value will be classified by MQCS as inconsistent, dubious, erroneous or missing"}, +{"codes":[7],"description":"The original flag is set (5) (amended) and the value will be classified by MQCS as inconsistent, dubious, erroneous or missing"}, +{"codes":[8],"description":"[reserved]"}, +{"codes":[9],"description":"The value of the element is missing"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicatorGeneral b/schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicatorGeneral new file mode 100644 index 0000000..18568de --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.MQCIndicatorGeneral @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":"no QC has been performed on this element"}, +{"codes":[1],"description":"QC performed; element appears correct"}, +{"codes":[2],"description":"QC performed; element appears inconsistent with other elements"}, +{"codes":[3],"description":"QC performed; element appears doubtful"}, +{"codes":[4],"description":"QC performed; element appears erroneous"}, +{"codes":[5],"description":"QC performed; element changed (possibly to missing) as a result"}, +{"codes":[6],"description":"QC flag amended: element flagged by CMas correct (1), but according to MQCS still appears suspect (2-4) or missing (9)"}, +{"codes":[7],"description":"QC flag amended: element flagged by CM as changed (5), but according to MQCS still appears suspect (2-4)"}, +{"codes":[8],"description":"[reserved]"}, +{"codes":[9],"description":"element is missing"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.MQCversion b/schemas/lib/imma.old/code_tables/icoads_3_0.MQCversion new file mode 100644 index 0000000..f3f0655 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.MQCversion @@ -0,0 +1,9 @@ +[ +{"codes":[1],"description":"MQCS- I (Original version, Feb. 1989): CMM-X"}, +{"codes":[2],"description":"MQCS-II (Version 2, March 1997) CMM-XII"}, +{"codes":[3],"description":"MQCS-III (Version 3, April 2000) SGMC-VIII"}, +{"codes":[4],"description":"MQCS-IV (Version 4, June 2001): JCOMM-I"}, +{"codes":[5],"description":"MQCS-V (Version 5, July 2004): ETMC-I"}, +{"codes":[6],"description":"MQCS-VI (Version 6, January 2011): JCOMM-III"}, +{"codes":[7],"description":"MQCS-VII (Version 7, June 2012): JCOMM-IV"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.SUPDEncoding b/schemas/lib/imma.old/code_tables/icoads_3_0.SUPDEncoding new file mode 100644 index 0000000..1018885 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.SUPDEncoding @@ -0,0 +1,5 @@ +[ +{"codes":[0],"description":"base64 encoding"}, +{"codes":[1],"description":"hexadecimal"}, +{"codes":[2],"description":"ASCII"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.awsi b/schemas/lib/imma.old/code_tables/icoads_3_0.awsi new file mode 100644 index 0000000..aef898d --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.awsi @@ -0,0 +1,5 @@ +[ +{"codes":[0],"description":"No AWS"}, +{"codes":[1],"description":"AWS"}, +{"codes":[2],"description":"AWS plus manual observations"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.bsi b/schemas/lib/imma.old/code_tables/icoads_3_0.bsi new file mode 100644 index 0000000..0d33b22 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.bsi @@ -0,0 +1,3 @@ +[ +{"codes":[0],"description":"ICOADS box system"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.fm b/schemas/lib/imma.old/code_tables/icoads_3_0.fm new file mode 100644 index 0000000..84733ba --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.fm @@ -0,0 +1,15 @@ +[ +{"codes":[0],"description":"previous to FM 24-V"}, +{"codes":[1],"description":"FM 24-V"}, +{"codes":[2],"description":"FM 24-VI Ext."}, +{"codes":[3],"description":"FM 13-VII"}, +{"codes":[4],"description":"FM 13-VIII"}, +{"codes":[5],"description":"FM 13-VIII Ext."}, +{"codes":[6],"description":"FM 13-IX"}, +{"codes":[7],"description":"FM 13-IX Ext."}, +{"codes":[8],"description":"FM 13-X"}, +{"codes":[9],"description":"FM 13-XI"}, +{"codes":[10],"description":"FM 13-XII Ext."}, +{"codes":[11],"description":"FM 13-XIII"}, +{"codes":[12],"description":"FM 13-XIV Ext."} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.immv b/schemas/lib/imma.old/code_tables/icoads_3_0.immv new file mode 100644 index 0000000..d5d30a4 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.immv @@ -0,0 +1,8 @@ +[ +{"codes":[0],"description":"IMMT version just prior to version number being included"}, +{"codes":[1],"description":"IMMT-1 (in effect from 2 Nov. 1994)"}, +{"codes":[2],"description":"IMMT-2 (in effect from Jan. 2003)"}, +{"codes":[3],"description":"IMMT-3 (in effect from Jan. 2007)"}, +{"codes":[4],"description":"IMMT-4 (in effect from Jan. 2011)"}, +{"codes":[5],"description":"IMMT-5 (in effect from June 2012)"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.is b/schemas/lib/imma.old/code_tables/icoads_3_0.is new file mode 100644 index 0000000..8277af7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.is @@ -0,0 +1,7 @@ +[ +{"codes":[1],"description":"icing from ocean spray"}, +{"codes":[2],"description":"icing from fog"}, +{"codes":[3],"description":"icing from spray and fog"}, +{"codes":[4],"description":"icing from rain"}, +{"codes":[5],"description":"icing from spray and rain"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.it b/schemas/lib/imma.old/code_tables/icoads_3_0.it new file mode 100644 index 0000000..65683d7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.it @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":"tenths degC"}, +{"codes":[1],"description":"half degC"}, +{"codes":[2],"description":"whole degC"}, +{"codes":[3],"description":"whole or tenths degC (mixed precision among temperature fields)"}, +{"codes":[4],"description":"tenths degF"}, +{"codes":[5],"description":"half degF"}, +{"codes":[6],"description":"whole degF"}, +{"codes":[7],"description":"whole or tenths degF (mixed precision among temperature fields)"}, +{"codes":[8],"description":"high resolution data (e.g., hundredths degC)"}, +{"codes":[9],"description":"other"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.ix b/schemas/lib/imma.old/code_tables/icoads_3_0.ix new file mode 100644 index 0000000..37e7045 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.ix @@ -0,0 +1,9 @@ +[ +{"codes":[1],"description":"manned included"}, +{"codes":[2],"description":"manned omitted (no significant phenomenon to report)"}, +{"codes":[3],"description":"manned omitted (no observation, data not available)"}, +{"codes":[4],"description":"automatic included [using WMO Codes 4677 and 4561]"}, +{"codes":[5],"description":"automatic omitted (no significant phenomenon to report)"}, +{"codes":[6],"description":"automatic omitted (no observation, data not available)"}, +{"codes":[7],"description":"automatic included using WMO Codes 4680 and 4531"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.kov b/schemas/lib/imma.old/code_tables/icoads_3_0.kov new file mode 100644 index 0000000..9e64f5a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.kov @@ -0,0 +1,34 @@ +[ +{"codes":["BA"],"description":"Barge"}, +{"codes":["BC"],"description":"Bulk Carrier"}, +{"codes":["CA"],"description":"Cable ship"}, +{"codes":["CG"],"description":"Coast Guard Ship"}, +{"codes":["CS"],"description":"Container Ship"}, +{"codes":["DR"],"description":"Dredger"}, +{"codes":["FE"],"description":"Passenger ferries"}, +{"codes":["FP"],"description":"Floating production and storage units"}, +{"codes":["FV"],"description":"Other Fishing Vessel"}, +{"codes":["GC"],"description":"General Cargo"}, +{"codes":["GT"],"description":"Gas Tanker"}, +{"codes":["IC"],"description":"Icebreaking vessel"}, +{"codes":["IF"],"description":"Inshore Fishing Vessel"}, +{"codes":["LC"],"description":"Livestock carrier"}, +{"codes":["LT"],"description":"Liquid Tanker"}, +{"codes":["LV"],"description":"Light Vessel"}, +{"codes":["MI"],"description":"Mobile installation including mobile offshore drill ships, jack-up rigs and semi-submersibles"}, +{"codes":["MS"],"description":"Military Ship"}, +{"codes":["OT"],"description":"Other"}, +{"codes":["OW"],"description":"Ocean Weather Ship"}, +{"codes":["PI"],"description":"Pipe layer"}, +{"codes":["PS"],"description":"Passenger ships and cruise liners"}, +{"codes":["RF"],"description":"Ro\/Ro Ferry"}, +{"codes":["RR"],"description":"Ro\/Ro Cargo"}, +{"codes":["RS"],"description":"Refrigerated cargo ships including banana ships"}, +{"codes":["RV"],"description":"Research Vessel"}, +{"codes":["SA"],"description":"Large sailing vessels"}, +{"codes":["SV"],"description":"Support Vessel"}, +{"codes":["TR"],"description":"Trawler"}, +{"codes":["TU"],"description":"Tug"}, +{"codes":["VC"],"description":"Vehicle carriers"}, +{"codes":["YA"],"description":"Yacht \/ Pleasure Craft"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.lot b/schemas/lib/imma.old/code_tables/icoads_3_0.lot new file mode 100644 index 0000000..9a6f93a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.lot @@ -0,0 +1,18 @@ +[ +{"codes":["1"],"description":"Bridge wing port"}, +{"codes":["2"],"description":"Bridge wing starboard"}, +{"codes":["3"],"description":"Bridge wing both sides"}, +{"codes":["4"],"description":"Bridge wing windward side"}, +{"codes":["5"],"description":"Wheelhouse top port"}, +{"codes":["6"],"description":"Wheelhouse top starboard"}, +{"codes":["7"],"description":"Wheelhouse top both"}, +{"codes":["8"],"description":"Wheelhouse top center"}, +{"codes":["9"],"description":"Wheelhouse top windward side"}, +{"codes":["10"],"description":"Mainmast"}, +{"codes":["11"],"description":"Foremast"}, +{"codes":["12"],"description":"Mast on Wheelhouse top"}, +{"codes":["13"],"description":"Main deck port side"}, +{"codes":["14"],"description":"Main deck starboard side"}, +{"codes":["15"],"description":"Main deck both sides"}, +{"codes":["OT"],"description":"Other (specify in footnote)"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.mds b/schemas/lib/imma.old/code_tables/icoads_3_0.mds new file mode 100644 index 0000000..5b2a06e --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.mds @@ -0,0 +1,4 @@ +[ +{"codes":[0],"description":"WMO Publication No. 47"}, +{"codes":[1],"description":"Center for Ocean-Atmospheric Prediction Studies, Tallahassee, USA"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.op b/schemas/lib/imma.old/code_tables/icoads_3_0.op new file mode 100644 index 0000000..253d153 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.op @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":"unknown"}, +{"codes":[1],"description":"selected ship"}, +{"codes":[2],"description":"supplementary ship"}, +{"codes":[3],"description":"auxiliary ship"}, +{"codes":[4],"description":"registered VOSClim ship"}, +{"codes":[5],"description":"fixed sea station (e.g., rig or platform)"}, +{"codes":[6],"description":"coastal station"}, +{"codes":[7],"description":"[reserved]"}, +{"codes":[8],"description":"[reserved]"}, +{"codes":[9],"description":"others \/ data buoy"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.opm b/schemas/lib/imma.old/code_tables/icoads_3_0.opm new file mode 100644 index 0000000..b053c6e --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.opm @@ -0,0 +1,11 @@ +[ +{"codes":[10],"description":"Selected ships"}, +{"codes":[15],"description":"Selected ships (AWS)"}, +{"codes":[30],"description":"VOSClim"}, +{"codes":[35],"description":"VOSClim (AWS)"}, +{"codes":[40],"description":"Supplementary ships"}, +{"codes":[45],"description":"Supplementary ships (AWS)"}, +{"codes":[70],"description":"Auxiliary ships"}, +{"codes":[75],"description":"Auxiliary ships (AWS)"}, +{"codes":[99],"description":"Unknown"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.os b/schemas/lib/imma.old/code_tables/icoads_3_0.os new file mode 100644 index 0000000..39d545b --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.os @@ -0,0 +1,9 @@ +[ +{"codes":[0],"description":"unknown"}, +{"codes":[1],"description":"logbook (paper)"}, +{"codes":[2],"description":"national telecommunication channels"}, +{"codes":[3],"description":"national publications"}, +{"codes":[4],"description":"logbook (electronic)"}, +{"codes":[5],"description":"global telecommunication channels (GTS)"}, +{"codes":[6],"description":"international publications"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.rhi b/schemas/lib/imma.old/code_tables/icoads_3_0.rhi new file mode 100644 index 0000000..0989919 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.rhi @@ -0,0 +1,7 @@ +[ +{"codes":[0],"description":"Relative humidity in tenths of Percentage, measured and originally reported"}, +{"codes":[1],"description":"Relative humidity in whole Percentage, measured and originally reported"}, +{"codes":[2],"description":"[Reserved]"}, +{"codes":[3],"description":"Relative humidity in tenths of Percentage, computed"}, +{"codes":[4],"description":"Relative humidity in whole Percentage, computed"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.rs b/schemas/lib/imma.old/code_tables/icoads_3_0.rs new file mode 100644 index 0000000..6d6b7db --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.rs @@ -0,0 +1,7 @@ +[ +{"codes":[0],"description":"ice not building up"}, +{"codes":[1],"description":"ice building up slowly"}, +{"codes":[2],"description":"ice building up rapidly"}, +{"codes":[3],"description":"ice melting or breaking up slowly"}, +{"codes":[4],"description":"ice melting or breaking up rapidly"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.smv b/schemas/lib/imma.old/code_tables/icoads_3_0.smv new file mode 100644 index 0000000..a68ca8a --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.smv @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":null}, +{"codes":[1],"description":"Output from digitization project, semi-colon delimited format (1955)"}, +{"codes":[2],"description":"Output from digitization project, semi-colon delimited format (1956)"}, +{"codes":[3],"description":"Output from digitization project, semi-colon delimited format (1957,1967)"}, +{"codes":[4],"description":"Output from digitization project, semi-colon delimited format (1968 to 1969)"}, +{"codes":[5],"description":"Fixed format (1970\u00d094)"}, +{"codes":[6],"description":"Semicolon delimited format (1995 to 2001)"}, +{"codes":[7],"description":"Semicolon delimited format (2002 to 2007 q1)"}, +{"codes":[8],"description":"Semicolon delimited format (2007 q2 - 2008)"}, +{"codes":[9],"description":"Semicolon delimited format (2009 - 2014)"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.sstMethod_c7 b/schemas/lib/imma.old/code_tables/icoads_3_0.sstMethod_c7 new file mode 100644 index 0000000..abc5bdb --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.sstMethod_c7 @@ -0,0 +1,14 @@ +[ +{"codes":["BU"],"description":"bucket"}, +{"codes":["C"],"description":"condenser inlet (intake)"}, +{"codes":["TT"],"description":"trailing thermistor"}, +{"codes":["HC"],"description":"hull contact sensor"}, +{"codes":["HT"],"description":"through hull sensor"}, +{"codes":["RAD"],"description":"radiation thermometer"}, +{"codes":["BTT"],"description":"bait tanks thermometer"}, +{"codes":["OT"],"description":"others"}, +{"codes":[null],"description":"unknown or non-bucket"}, +{"codes":[null],"description":"implied bucket [note: applicable to early ICOADS data]"}, +{"codes":[null],"description":"reversing thermometer or mechanical sensor"}, +{"codes":[null],"description":"electronic sensor"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.thermometerHousing b/schemas/lib/imma.old/code_tables/icoads_3_0.thermometerHousing new file mode 100644 index 0000000..92c22ff --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.thermometerHousing @@ -0,0 +1,12 @@ +[ +{"codes":["A"],"description":"Aspirated (Assmann type)"}, +{"codes":["S"],"description":"Screen (not ventilated)"}, +{"codes":["HH"],"description":"Hand-held digital thermometer \/ humidity sensor"}, +{"codes":["RS"],"description":"Radiation shield (e.g. cylindrical \/ Gill multi-plate)"}, +{"codes":["SG"],"description":"Ship's Sling"}, +{"codes":["SL"],"description":"Sling"}, +{"codes":["SN"],"description":"Ship's screen"}, +{"codes":["US"],"description":"Unscreened"}, +{"codes":["VS"],"description":"Screen (ventilated)"}, +{"codes":["W"],"description":"Whirling"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.tob b/schemas/lib/imma.old/code_tables/icoads_3_0.tob new file mode 100644 index 0000000..95db204 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.tob @@ -0,0 +1,8 @@ +[ +{"codes":["AN"],"description":"Aneroid barometer (issued by Port Meteorological Officer or Meteorological Agency)"}, +{"codes":["DA"],"description":"Digital Aneroid Barometer"}, +{"codes":["MER"],"description":"Mercury Barometer"}, +{"codes":["SAN"],"description":"Ship's Aneroid Barometer"}, +{"codes":["ELE"],"description":"electronic digital barometer"}, +{"codes":["OT"],"description":"Other"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.toh b/schemas/lib/imma.old/code_tables/icoads_3_0.toh new file mode 100644 index 0000000..d46c7f7 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.toh @@ -0,0 +1,11 @@ +[ +{"codes":[null],"description":null}, +{"codes":["1"],"description":"Hygristor"}, +{"codes":["2"],"description":"Chilled Mirror"}, +{"codes":["3"],"description":"Other"}, +{"codes":["C"],"description":"Capacitance"}, +{"codes":["E"],"description":"Electric"}, +{"codes":["H"],"description":"Hair hygrometer"}, +{"codes":["P"],"description":"Psychrometer"}, +{"codes":["T"],"description":"Torsion"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.tot b/schemas/lib/imma.old/code_tables/icoads_3_0.tot new file mode 100644 index 0000000..3ece325 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.tot @@ -0,0 +1,5 @@ +[ +{"codes":["ALC"],"description":"Alcohol Thermometer"}, +{"codes":["ELE"],"description":"Electric (resistance) Thermometer"}, +{"codes":["MER"],"description":"Dry Bulb Mercury Thermometer"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.tr b/schemas/lib/imma.old/code_tables/icoads_3_0.tr new file mode 100644 index 0000000..0f29693 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.tr @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":"undefined"}, +{"codes":[1],"description":"Total precipitation during the 6 hours preceding the observation"}, +{"codes":[2],"description":"Total precipitation during the 12 hours preceding the observation"}, +{"codes":[3],"description":"Total precipitation during the 18 hours preceding the observation"}, +{"codes":[4],"description":"Total precipitation during the 24 hours preceding the observation"}, +{"codes":[5],"description":"Total precipitation during the 1 hour preceding the observation"}, +{"codes":[6],"description":"Total precipitation during the 2 hours preceding the observation"}, +{"codes":[7],"description":"Total precipitation during the 3 hours preceding the observation"}, +{"codes":[8],"description":"Total precipitation during the 9 hours preceding the observation"}, +{"codes":[9],"description":"Total precipitation during the 15 hours preceding the observation"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.vi b/schemas/lib/imma.old/code_tables/icoads_3_0.vi new file mode 100644 index 0000000..27cb656 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.vi @@ -0,0 +1,5 @@ +[ +{"codes":[0],"description":"estimated (or unknown method of observation)"}, +{"codes":[1],"description":"measured"}, +{"codes":[2],"description":"fog present (obsolete)"} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.vs b/schemas/lib/imma.old/code_tables/icoads_3_0.vs new file mode 100644 index 0000000..3dff050 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.vs @@ -0,0 +1,22 @@ +[ +{"codes":[0],"description":"0 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":0.0,"speed mid (ms-1)":0.0,"speed upper (ms-1)":0.0}}, +{"codes":[1],"description":"1-3 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":0.51444,"speed mid (ms-1)":1.02888,"speed upper (ms-1)":1.54332}}, +{"codes":[2],"description":"4-6 knots , < 1968-01-01","aux_info":{"speed lower (ms-1)":2.05776,"speed mid (ms-1)":2.5722,"speed upper (ms-1)":3.08664}}, +{"codes":[3],"description":"7-9 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":3.60108,"speed mid (ms-1)":4.11552,"speed upper (ms-1)":4.62996}}, +{"codes":[4],"description":"10-12 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":5.1444,"speed mid (ms-1)":5.65884,"speed upper (ms-1)":6.17328}}, +{"codes":[5],"description":"13-15 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":6.68772,"speed mid (ms-1)":7.20216,"speed upper (ms-1)":7.7166}}, +{"codes":[6],"description":"16-18 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":8.23104,"speed mid (ms-1)":8.74548,"speed upper (ms-1)":9.25992}}, +{"codes":[7],"description":"19-21 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":9.77436,"speed mid (ms-1)":10.2888,"speed upper (ms-1)":10.8032}}, +{"codes":[8],"description":"22-24 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":11.3177,"speed mid (ms-1)":11.8321,"speed upper (ms-1)":12.3466}}, +{"codes":[9],"description":"over 24 knots, < 1968-01-01","aux_info":{"speed lower (ms-1)":12.3466,"speed mid (ms-1)":12.861,"speed upper (ms-1)":null}}, +{"codes":[10],"description":"0 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":0.0,"speed mid (ms-1)":0.0,"speed upper (ms-1)":0.0}}, +{"codes":[11],"description":"1-5 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":0.51444,"speed mid (ms-1)":1.54332,"speed upper (ms-1)":2.5722}}, +{"codes":[12],"description":"6-10 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":3.08664,"speed mid (ms-1)":4.11552,"speed upper (ms-1)":5.1444}}, +{"codes":[13],"description":"11-15 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":5.65884,"speed mid (ms-1)":6.68772,"speed upper (ms-1)":7.7166}}, +{"codes":[14],"description":"16-20 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":8.23104,"speed mid (ms-1)":9.25992,"speed upper (ms-1)":10.2888}}, +{"codes":[15],"description":"21-25 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":10.8032,"speed mid (ms-1)":11.8321,"speed upper (ms-1)":12.861}}, +{"codes":[16],"description":"26-30 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":13.3754,"speed mid (ms-1)":14.4043,"speed upper (ms-1)":15.4332}}, +{"codes":[17],"description":"31-35 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":15.9476,"speed mid (ms-1)":16.9765,"speed upper (ms-1)":18.0054}}, +{"codes":[18],"description":"36-40 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":18.5198,"speed mid (ms-1)":19.5487,"speed upper (ms-1)":20.5776}}, +{"codes":[19],"description":"over 40 knots, > 1968-01-01","aux_info":{"speed lower (ms-1)":21.092,"speed mid (ms-1)":22.1209,"speed upper (ms-1)":null}} +] diff --git a/schemas/lib/imma.old/code_tables/icoads_3_0.wmi b/schemas/lib/imma.old/code_tables/icoads_3_0.wmi new file mode 100644 index 0000000..60d0434 --- /dev/null +++ b/schemas/lib/imma.old/code_tables/icoads_3_0.wmi @@ -0,0 +1,12 @@ +[ +{"codes":[0],"description":"wind sea and swell estimated shipborne wave recorder"}, +{"codes":[1],"description":"wind sea and swell measured shipborne wave recorder"}, +{"codes":[2],"description":"mixed wave measured, swell estimated shipborne wave recorder"}, +{"codes":[3],"description":"other combinations measured and estimated shipborne wave recorder"}, +{"codes":[4],"description":"wind sea and swell measured buoy"}, +{"codes":[5],"description":"mixed wave measured, swell estimated buoy"}, +{"codes":[6],"description":"other combinations measured and estimated buoy"}, +{"codes":[7],"description":"wind sea and swell measured other measurement system"}, +{"codes":[8],"description":"mixed wave measured, swell estimated other measurement system"}, +{"codes":[9],"description":"other combinations measured and estimated other measurement system"} +] diff --git a/schemas/lib/imma.old/imma1.json b/schemas/lib/imma.old/imma1.json new file mode 100644 index 0000000..795203d --- /dev/null +++ b/schemas/lib/imma.old/imma1.json @@ -0,0 +1,2240 @@ +{ + "header": { + "format": "fixed_width", + "parsing_order": [{"s": ["core"]},{"o": ["c1","c5","c6","c7","c8","c9","c95","c96","c97","c98","c99"]}], + "date_parser": {"section": "core","elements": ["YR","MO", "DY"],"format": ["%Y","%m","%d"]} + }, + "sections": { + "core": { + "header": {"sentinal": null,"sentinal_length": null,"length": 108}, + "elements": { + "YR": { + "description": "year UTC", + "field_length": 4, + "column_type": "uint16", + "valid_max": 2024, + "valid_min": 1600, + "units": "year" + }, + "MO": { + "description": "month UTC", + "field_length": 2, + "column_type": "uint8", + "valid_max": 12, + "valid_min": 1, + "units": "month" + }, + "DY": { + "description": "day UTC", + "field_length": 2, + "column_type": "uint8", + "valid_max": 31, + "valid_min": 1, + "units": "day" + }, + "HR": { + "description": "hour UTC", + "field_length": 4, + "column_type": "float32", + "valid_max": 23.99, + "valid_min": 0.0, + "scale": 0.01, + "decimal_places": 2, + "units": "hour" + }, + "LAT": { + "description": "latitude", + "field_length": 5, + "column_type": "float32", + "valid_max": 90.0, + "valid_min": -90.0, + "scale": 0.01, + "decimal_places": 2, + "units": "degrees" + }, + "LON": { + "description": "longitude, check/ask two conventions in imma1 doc", + "field_length": 6, + "column_type": "float32", + "valid_max": 359.99, + "valid_min": 0.0, + "scale": 0.01, + "decimal_places": 2, + "units": "degrees" + }, + "IM": { + "description": "IMMA version", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.IM" + }, + "ATTC": { + "description": "attm count", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "TI": { + "description": "time indicator", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.TI" + }, + "LI": { + "description": "lat/lon indicator", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.LI" + }, + "DS": { + "description": "ship course", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.DS" + }, + "VS": { + "description": "ship speed", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.VS" + }, + "NID": { + "description": "national source indic.", + "field_length": 2, + "column_type": "str" + }, + "II": { + "description": "ID indicator", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.II" + }, + "ID": { + "description": "identification/callsign", + "field_length": 9, + "column_type": "str" + }, + "C1": { + "description": "country code", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.C1" + }, + "DI": { + "description": "wind direction indic.", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.DI" + }, + "D": { + "description": "wind direction (true)", + "field_length": 3, + "column_type": "int16", + "valid_max": 362, + "valid_min": 1, + "units": "degrees true" + }, + "WI": { + "description": "wind speed indic.", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.WI" + }, + "W": { + "description": "wind speed", + "field_length": 3, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": 0.0, + "scale": 0.1, + "decimal_places": 1, + "units": "metres per second" + }, + "VI": { + "description": "visibility indic. ICOADS.C0.VI not found in new set", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.VI" + }, + "VV": { + "description": "visibility", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.VV" + }, + "WW": { + "description": "present weather", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.WW" + }, + "W1": { + "description": "past weather", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.W1" + }, + "SLP": { + "description": "sea level pressure", + "field_length": 5, + "column_type": "float32", + "valid_max": 1074.6, + "valid_min": 870.0, + "scale": 0.1, + "decimal_places": 1, + "units": "hectopascal" + }, + "A": { + "description": "characteristic of PPP", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.A" + }, + "PPP": { + "description": "amt. pressure tend.", + "field_length": 3, + "column_type": "float32", + "valid_max": 51.0, + "valid_min": 0.0, + "scale": 0.1, + "decimal_places": 1, + "units": "hectopascal" + }, + "IT": { + "description": "indic. for temperatures", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.IT" + }, + "AT": { + "description": "air temperature", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "degree Celsius" + }, + "WBTI": { + "description": "wet bulb temp. indic.", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.WBTI" + }, + "WBT": { + "description": "wet-bulb temperature", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "degree Celsius" + }, + "DPTI": { + "description": "dew-point temp. indic.", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.DPTI" + }, + "DPT": { + "description": "dew-point temperature", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "degree Celsius" + }, + "SI": { + "description": "SST measurement method, table not like original, nor like in doc", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.SI" + }, + "SST": { + "description": "sea surface temperature", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "degree Celsius" + }, + "N": { + "description": "total cloud amount", + "field_length": 1, + "column_type": "int8", + "valid_max": 9, + "valid_min": 0, + "units": "okta" + }, + "NH": { + "description": "lower cloud amount", + "field_length": 1, + "column_type": "int8", + "valid_max": 9, + "valid_min": 0, + "units": "eighths of cloud" + }, + "CL": { + "description": "low cloud type", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C0.CL" + }, + "HI": { + "description": "cloud height indic.", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C0.HI" + }, + "H": { + "description": "cloud height", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C0.H" + }, + "CM": { + "description": "middle cloud type", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C0.CM" + }, + "CH": { + "description": "high cloud type", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C0.CH" + }, + "WD": { + "description": "wave direction", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.WD" + }, + "WP": { + "description": "wave period", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0, + "units": "second" + }, + "WH": { + "description": "wave height", + "field_length": 2, + "column_type": "float32", + "valid_max": 99.0, + "valid_min": 0.0, + "scale": 0.5, + "decimal_places": 1, + "units": "metre" + }, + "SD": { + "description": "swell direction", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.SD" + }, + "SP": { + "description": "swell period", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0, + "units": "second" + }, + "SH": { + "description": "swell height", + "field_length": 2, + "column_type": "float32", + "valid_max": 99.0, + "valid_min": 0.0, + "scale": 0.5, + "decimal_places": 1, + "units": "metre" + } + } + }, + "c1": { + "header": {"sentinal": " 165","sentinal_length": 4, "length": 65}, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "str" + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "valid_max": 65, + "valid_min": 65 + }, + "BSI": { + "description": "box system indicator. Currently not in use", + "field_length": 1, + "column_type": "int8" + }, + "B10": { + "description": "10 degree box number", + "field_length": 3, + "column_type": "int16", + "valid_max": 648, + "valid_min": 1 + }, + "B1": { + "description": "1 degree box number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "DCK": { + "description": "deck", + "field_length": 3, + "column_type": "key", + "codetable": "ICOADS.C1.DCK" + }, + "SID": { + "description": "source ID", + "field_length": 3, + "column_type": "key", + "codetable": "ICOADS.C1.SID" + }, + "PT": { + "description": "platform type", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C1.PT" + }, + "DUPS": { + "description": "dup status", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C1.DUPS" + }, + "DUPC": { + "description": "dup check", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.DUPC" + }, + "TC": { + "description": "track check", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.TC" + }, + "PB": { + "description": "pressure bias", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.PB" + }, + "WX": { + "description": "wave period indicator", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.WX" + }, + "SX": { + "description": "swell period indicator", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.WX" + }, + "C2": { + "description": "2nd country code", + "field_length": 2, + "column_type": "key", + "codetable": "ICOADS.C0.C1" + }, + "SQZ": { + "description": "SST: z flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 1 + }, + "SQA": { + "description": "SST: alpha flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 21, + "valid_min": 1 + }, + "AQZ": { + "description": "AT: z flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "AQA": { + "description": "AT: alpha flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "UQZ": { + "description": "U-wind: z flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "UQA": { + "description": "U-wind: alpha flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "VQZ": { + "description": "V-wind: z flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "VQA": { + "description": "V-wind: alpha flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "PQZ": { + "description": "SLP: z flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "PQA": { + "description": "SLP: alpha flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "DQZ": { + "description": "Humidity: z flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "DQA": { + "description": "Humidity: alpha flag", + "field_length": 1, + "column_type": "int8", + "encoding": "base36" + }, + "ND": { + "description": "night / day flag", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.ND" + }, + "SF": { + "description": "SST flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.TRIM" + }, + "AF": { + "description": "AT flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.TRIM" + }, + "UF": { + "description": "U-wind flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.TRIM" + }, + "VF": { + "description": "V-wind flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.TRIM" + }, + "PF": { + "description": "SLP flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.TRIM" + }, + "RF": { + "description": "RH (and WBT / DPT) flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.TRIM" + }, + "ZNC": { + "description": "report-status flag (ship position)", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "WNC": { + "description": "wind flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "BNC": { + "description": "visibility (VV) flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "XNC": { + "description": "present weather (WW) flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "YNC": { + "description": "past weather (W1) flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "PNC": { + "description": "SLP flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "ANC": { + "description": "AT flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "GNC": { + "description": "WBT flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "DNC": { + "description": "DPT flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "SNC": { + "description": "SST flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "CNC": { + "description": "cloud flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "ENC": { + "description": "wave flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "FNC": { + "description": "swell flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "TNC": { + "description": "pressure tendency (A and PPP) flag", + "field_length": 1, + "column_type": "key", + "encoding": "base36", + "codetable": "ICOADS.C1.NCDC" + }, + "QCE": { + "description": "external (e.g. OSD)", + "field_length": 2, + "column_type": "int8", + "valid_max": 63, + "valid_min": 0 + }, + "LZ": { + "description": "2x2 landlocked flag", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C1.LZ" + }, + "QCZ": { + "description": "source exclusion flags", + "field_length": 2, + "column_type": "int8", + "valid_max": 31, + "valid_min": 0 + } + } + }, + "c5": { + "header": { + "sentinal": " 594", + "sentinal_length": 4, + "length": 94 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "OS": { + "description": "observation source", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.os" + }, + "OP": { + "description": "observation platform", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.op" + }, + "FM": { + "description": "FM code version", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "icoads_3_0.fm" + }, + "IMMV": { + "description": "IMMT version", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "icoads_3_0.immv" + }, + "IX": { + "description": "station / weather indic.", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.ix" + }, + "W2": { + "description": "2nd past weather", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.pastWeather" + }, + "WMI": { + "description": "indicicator for wave measurement", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.wmi" + }, + "SD2": { + "description": "direction of secondary swell", + "field_length": 2, + "column_type": "int8", + "codetable": "ICOADS.C5.SD2" + }, + "SP2": { + "description": "period of secondary swell", + "field_length": 2, + "column_type": "int8", + "codetable": "ICOADS.C5.SP2" + }, + "SH2": { + "description": "height of secondary swell", + "field_length": 2, + "column_type": "float16", + "valid_max": 99.0, + "valid_min": 0.0, + "scale": 0.5, + "precision": "0.1" + }, + "IS": { + "description": "ice accretion on ship", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.is" + }, + "ES": { + "description": "thickness of ice accretion", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "RS": { + "description": "rate of ice accretion", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.rs" + }, + "IC1": { + "description": "concentration of sea ice", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "ICOADS.C5.IC1" + }, + "IC2": { + "description": "stage of development", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "ICOADS.C5.IC2" + }, + "IC3": { + "description": "ice of land origin", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "ICOADS.C5.IC3" + }, + "IC4": { + "description": "true bearing of ice edge", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "ICOADS.C5.IC4" + }, + "IC5": { + "description": "ice situation / trend", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "ICOADS.C5.IC5" + }, + "IR": { + "description": "indicator for precipation data", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C5.IR" + }, + "RRR": { + "description": "amount of precipitation", + "field_length": 3, + "column_type": "int16", + "codetable": "ICOADS.C5.RRR" + }, + "TR": { + "description": "duration of period of reference for amount of precipitation", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.tr" + }, + "NU": { + "description": "national use", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C5.NU" + }, + "QCI": { + "description": "quality control indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicatorGeneral" + }, + "QI1": { + "description": "QC indicator for height of clouds", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI2": { + "description": "QC indicator for visibility", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI3": { + "description": "QC indicator for clouds", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI4": { + "description": "QC indicator for wind direction", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI5": { + "description": "QC indicator for wind speed", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI6": { + "description": "QC indicator for air temperature", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI7": { + "description": "QC indicator for dew-point temperature", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI8": { + "description": "QC indicator for air pressure", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI9": { + "description": "QC indicator for weather", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI10": { + "description": "QC indicator for sea surface temperature", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI11": { + "description": "QC indicator for period of wind waves of of measured waves", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI12": { + "description": "QC indicator for height of wind waves of of measured waves", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI13": { + "description": "QC indicator for swell", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI14": { + "description": "QC indicator for precipitation", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI15": { + "description": "QC indicator for characteristic of pressure tendency", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI16": { + "description": "QC indicator for amount of pressure tendency", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI17": { + "description": "QC indicator for true direction of ship", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI18": { + "description": "QC indicator for ship's average speed", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI19": { + "description": "QC indicator for wet-bulb temperature", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI20": { + "description": "QC indicator for ship's position", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI21": { + "description": "MQCS version", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCversion" + }, + "HDG": { + "description": "ships's heading", + "field_length": 3, + "column_type": "int16", + "valid_max": 360, + "valid_min": 0 + }, + "COG": { + "description": "course over ground", + "field_length": 3, + "column_type": "int16", + "valid_max": 360, + "valid_min": 0 + }, + "SOG": { + "description": "speed over ground", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "SLL": { + "description": "max height of cargo above summer load line", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "SLHH": { + "description": "departure of summer max load line from sea level", + "field_length": 3, + "column_type": "int8", + "valid_max": 99, + "valid_min": -99 + }, + "RWD": { + "description": "relative wind direction", + "field_length": 3, + "column_type": "int16", + "valid_max": 360, + "valid_min": 1 + }, + "RWS": { + "description": "relative wind speed", + "field_length": 3, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": 0.0, + "scale": 0.1, + "precision": "0.1" + }, + "QI22": { + "description": "QC indicator for ship's heading", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI23": { + "description": "QC indicator for course over ground", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI24": { + "description": "QC indicator for speed over ground", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI25": { + "description": "QC indicator for SLL", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI26": { + "description": "see doc", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI27": { + "description": "QC indicator for SLHH", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI28": { + "description": "QC indicator for relative wind direction", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "QI29": { + "description": "QC indicator for relative wind speed", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.MQCIndicator" + }, + "RH": { + "description": "relative humidity", + "field_length": 4, + "column_type": "float32", + "valid_max": 100.0, + "valid_min": 0.0, + "scale": 0.1, + "precision": "0.1" + }, + "RHI": { + "description": "relative humidity indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.rhi" + }, + "AWSI": { + "description": "AWS indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.awsi" + }, + "IMONO": { + "description": "IMO number", + "field_length": 7, + "column_type": "int32", + "valid_max": 9999999.0, + "valid_min": 0.0, + "scale": 1 + } + } + }, + "c6": { + "header": { + "sentinal": " 668", + "sentinal_length": 4, + "length": 68 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "CCCC": { + "description": "collecting center", + "field_length": 4, + "column_type": "str", + "codetable": "ICOADS.C6.CCCC" + }, + "BUID": { + "description": "bulletin ID", + "field_length": 6, + "column_type": "str", + "codetable": "ICOADS.C6.BUID" + }, + "FBSRC": { + "description": "feedback source", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C6.FBSRC" + }, + "BMP": { + "description": "background SLP", + "field_length": 5, + "column_type": "float32", + "valid_max": 1074.6, + "valid_min": 870.0, + "scale": 0.1, + "precision": "0.1" + }, + "BSWU": { + "description": "background wind U-component", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "precision": "0.1" + }, + "SWU": { + "description": "derived wind U-component", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "precision": "0.1" + }, + "BSWV": { + "description": "background wind V-component", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "precision": "0.1" + }, + "SWV": { + "description": "derived wind V-component", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "precision": "0.1" + }, + "BSAT": { + "description": "background air temperature", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "precision": "0.1" + }, + "BSRH": { + "description": "background relative humidity", + "field_length": 3, + "column_type": "float32", + "valid_max": 100.0, + "valid_min": 0.0, + "scale": 1.0, + "precision": "1" + }, + "SRH": { + "description": "derived relative humidity", + "field_length": 3, + "column_type": "float32", + "valid_max": 100.0, + "valid_min": 0.0, + "scale": 1.0, + "precision": "1" + }, + "BSST": { + "description": "background SST", + "field_length": 5, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": -99.99, + "scale": 0.01, + "precision": "0.01" + }, + "MST": { + "description": "model surface type", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C6.ST" + }, + "BMSH": { + "description": "model height of surface", + "field_length": 4, + "column_type": "int16", + "valid_max": 9999, + "valid_min": -999 + }, + "BY": { + "description": "background year", + "field_length": 4, + "column_type": "int16", + "valid_max": 9999, + "valid_min": 0 + }, + "BM": { + "description": "background month", + "field_length": 2, + "column_type": "int8", + "valid_max": 12, + "valid_min": 1 + }, + "BD": { + "description": "background day", + "field_length": 2, + "column_type": "int8", + "valid_max": 31, + "valid_min": 1 + }, + "BH": { + "description": "background hour", + "field_length": 2, + "column_type": "int8", + "valid_max": 23, + "valid_min": 0 + }, + "BFL": { + "description": "background forecast length", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + } + } + }, + "c7": { + "header": { + "sentinal": " 758", + "sentinal_length": 4, + "length": 58 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "MDS": { + "description": "metadata source", + "field_length": 1, + "column_type": "str", + "valid_max": 1.0, + "valid_min": 0.0, + "scale": 1.0, + "precision": null, + "codetable": null + }, + "C1M": { + "description": "recruiting country", + "field_length": 2, + "column_type": "str", + "codetable": "icoads_3_0.country" + }, + "OPM": { + "description": "type of ship (program)", + "field_length": 2, + "column_type": "int8", + "codetable": "icoads_3_0.opm" + }, + "KOV": { + "description": "kind of vessel", + "field_length": 2, + "column_type": "str", + "codetable": "icoads_3_0.kov" + }, + "COR": { + "description": "country of registry", + "field_length": 2, + "column_type": "str", + "codetable": "icoads_3_0.country" + }, + "TOB": { + "description": "type of barometer", + "field_length": 3, + "column_type": "str", + "codetable": "icoads_3_0.tob" + }, + "TOT": { + "description": "type of thermometer", + "field_length": 3, + "column_type": "str", + "codetable": "icoads_3_0.tot" + }, + "EOT": { + "description": "exposure of thermometer", + "field_length": 2, + "column_type": "str", + "codetable": "ICOADS.C7.EOT" + }, + "LOT": { + "description": "screen location", + "field_length": 2, + "column_type": "int8", + "codetable": "icoads_3_0.lot" + }, + "TOH": { + "description": "type of hygrometer", + "field_length": 1, + "column_type": "str", + "codetable": "icoads_3_0.toh" + }, + "EOH": { + "description": "exposure of hygrometer", + "field_length": 2, + "column_type": "str", + "codetable": "ICOADS.C7.EOH" + }, + "SIM": { + "description": "SST measurement method", + "field_length": 3, + "column_type": "str", + "codetable": "icoads_3_0.sstMethod_c7" + }, + "LOV": { + "description": "length of vessel", + "field_length": 3, + "column_type": "int16", + "valid_max": 999, + "valid_min": 0 + }, + "DOS": { + "description": "depth of SST measurement", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "HOP": { + "description": "height of visual observing platform", + "field_length": 3, + "column_type": "int16", + "valid_max": 999, + "valid_min": 0 + }, + "HOT": { + "description": "height of thermometer", + "field_length": 3, + "column_type": "int16", + "valid_max": 999, + "valid_min": 0 + }, + "HOB": { + "description": "height of barometer", + "field_length": 3, + "column_type": "int16", + "valid_max": 999, + "valid_min": 0 + }, + "HOA": { + "description": "height of anemometer", + "field_length": 3, + "column_type": "int16", + "valid_max": 999, + "valid_min": 0 + }, + "SMF": { + "description": "source metadata file", + "field_length": 5, + "column_type": "int32", + "valid_max": 99999, + "valid_min": 0, + "codetable": "ICOADS.C7.SMF" + }, + "SME": { + "description": "source metadata element", + "field_length": 5, + "column_type": "int32", + "valid_max": 99999.0, + "valid_min": 0.0, + "scale": 1.0, + "precision": null, + "codetable": null + }, + "SMV": { + "description": "source format version", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0, + "codetable": "icoads_3_0.smv" + } + } + }, + "c8": { + "header": { + "sentinal": " 82U", + "sentinal_length": 4, + "length": 102 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int16", + "encoding": "base36", + "ignore": true + }, + "OTV": { + "description": "temperature value", + "field_length": 5, + "column_type": "float32", + "valid_max": 38.999, + "valid_min": -3.0, + "scale": 0.001, + "precision": "0.001" + }, + "OTZ": { + "description": "temperature depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OSV": { + "description": "salinity value", + "field_length": 5, + "column_type": "float32", + "valid_max": 40.999, + "valid_min": 0.0, + "scale": 0.001, + "precision": "0.001" + }, + "OSZ": { + "description": "salinity depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OOV": { + "description": "dissolved oxygen value", + "field_length": 4, + "column_type": "float32", + "valid_max": 12.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OOZ": { + "description": "dissolved oxygen depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OPV": { + "description": "phosphate value", + "field_length": 4, + "column_type": "float32", + "valid_max": 30.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OPZ": { + "description": "phosphate depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OSIV": { + "description": "silicate value", + "field_length": 5, + "column_type": "float32", + "valid_max": 250.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OSIZ": { + "description": "silicate depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "ONV": { + "description": "nitrate value", + "field_length": 5, + "column_type": "float32", + "valid_max": 500.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "ONZ": { + "description": "nitrate depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OPHV": { + "description": "pH value", + "field_length": 3, + "column_type": "float32", + "valid_max": 9.2, + "valid_min": 6.2, + "scale": 0.01, + "precision": "0.01" + }, + "OPHZ": { + "description": "pH depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OCV": { + "description": "total chlorophyll value", + "field_length": 4, + "column_type": "float32", + "valid_max": 50.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OCZ": { + "description": "total chlorophyll depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OAV": { + "description": "alkalinity value", + "field_length": 3, + "column_type": "float32", + "valid_max": 3.1, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OAZ": { + "description": "alkalinity depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OPCV": { + "description": "partial pressure of carbon dioxide value", + "field_length": 4, + "column_type": "float32", + "valid_max": 999.0, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "OPCZ": { + "description": "partial pressure of carbon dioxide depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "ODV": { + "description": "dissolved inorganic carbon value", + "field_length": 2, + "column_type": "float32", + "valid_max": 4.0, + "valid_min": 0.0, + "scale": 0.1, + "precision": "0.1" + }, + "ODZ": { + "description": "dissolved inorganic carbon depth", + "field_length": 4, + "column_type": "float32", + "valid_max": 99.99, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "PUID": { + "description": "provider's unique record identification", + "field_length": 10, + "column_type": "object" + } + } + }, + "c9": { + "header": { + "sentinal": " 932", + "sentinal_length": 4, + "length": 32 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "CCe": { + "description": "change code", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "codetable": "ICOADS.C9.CCe" + }, + "WWe": { + "description": "present weather", + "field_length": 2, + "column_type": "int8", + "codetable": "icoads_3_0.ww" + }, + "Ne": { + "description": "total cloud amount", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C9.N" + }, + "NHe": { + "description": "lower cloud amount", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C9.NH" + }, + "He": { + "description": "lower cloud base height", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.h" + }, + "CLe": { + "description": "low cloud type", + "field_length": 2, + "column_type": "int8", + "codetable": "icoads_3_0.cl" + }, + "CMe": { + "description": "middle cloud type", + "field_length": 2, + "column_type": "int8", + "codetable": "icoads_3_0.cm" + }, + "CHe": { + "description": "high cloud type", + "field_length": 1, + "column_type": "int8", + "codetable": "icoads_3_0.ch" + }, + "AM": { + "description": "middle cloud amount", + "field_length": 3, + "column_type": "float32", + "valid_max": 8.0, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "AH": { + "description": "high cloud amount", + "field_length": 3, + "column_type": "float32", + "valid_max": 8.0, + "valid_min": 0.0, + "scale": 0.01, + "precision": "0.01" + }, + "UM": { + "description": "NOL middle amount", + "field_length": 1, + "column_type": "int8", + "valid_max": 8, + "valid_min": 0 + }, + "UH": { + "description": "NOL high amount", + "field_length": 1, + "column_type": "int8", + "valid_max": 8, + "valid_min": 0 + }, + "SBI": { + "description": "sky-brightness indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C9.SBI" + }, + "SA": { + "description": "solar altitude", + "field_length": 4, + "column_type": "float32", + "valid_max": 90.0, + "valid_min": -90.0, + "scale": 0.1, + "precision": "0.1" + }, + "RI": { + "description": "relative lunar illuminance", + "field_length": 4, + "column_type": "float32", + "valid_max": 1.17, + "valid_min": -1.1, + "scale": 0.01, + "precision": "0.01" + } + } + }, + "c95": { + "header": { + "sentinal": "9561", + "sentinal_length": 4, + "length": 61 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ICNR": { + "description": "input component number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "FNR": { + "description": "field number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 1 + }, + "DPRO": { + "description": "data provider - reanalysis: lead organization", + "field_length": 2, + "column_type": "int8", + "codetable": "ICOADS.C95.DPRO" + }, + "DPRP": { + "description": "data provider - reanalysis: project", + "field_length": 2, + "column_type": "int8", + "codetable": "ICOADS.C95.DPRP" + }, + "UFR": { + "description": "usage flag - reanalysis", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C95.UFR" + }, + "MFGR": { + "description": "model-collocated first guess value", + "field_length": 7, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": 1.0, + "precision": "1" + }, + "MFGSR": { + "description": "model-collocated first guess", + "field_length": 7, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": 1.0, + "precision": "1" + }, + "MAR": { + "description": "value or repesentative value", + "field_length": 7, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": 1.0, + "precision": "1" + }, + "MASR": { + "description": "model-collocated analysis spread", + "field_length": 7, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": 1.0, + "precision": "1" + }, + "BCR": { + "description": "bias corrected value", + "field_length": 7, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": 1.0, + "precision": "1" + }, + "ARCR": { + "description": "author reference code", + "field_length": 4, + "column_type": "object", + "codetable": "ICOADS.C95.ARCR" + }, + "CDR": { + "description": "creation date", + "field_length": 8, + "column_type": "int32", + "valid_max": null, + "valid_min": 20140101.0 + }, + "ASIR": { + "description": "access status indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C95.ASIR" + } + } + }, + "c96": { + "header": { + "sentinal": "9653", + "sentinal_length": 4, + "length": 53 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ICNI": { + "description": "input component number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 1 + }, + "FNI": { + "description": "field number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 1 + }, + "JVAD": { + "description": "scaling factor for VAD", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "VAD": { + "description": "value added data", + "field_length": 6, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null, + "codetable": null + }, + "IVAU1": { + "description": "type indicator for VAU1", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 1 + }, + "JVAU1": { + "description": "scaling factor for VAU1", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "VAU1": { + "description": "uncertainty of type IVAU1", + "field_length": 6, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null + }, + "IVAU2": { + "description": "type indicator for VAU2", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "JVAU2": { + "description": "scaling factor for VAU2", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "VAU2": { + "description": "uncertainty of type IVAU2", + "field_length": 6, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null + }, + "IVAU3": { + "description": "type indicator for VAU3", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "JVAU3": { + "description": "scaling factor for VAU3", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "VAU3": { + "description": "uncertainty of type IVAU3", + "field_length": 6, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null + }, + "VQC": { + "description": "value added QC flag", + "field_length": 1, + "column_type": "int8", + "valid_max": 9, + "valid_min": 1 + }, + "ARCI": { + "description": "auther reference code", + "field_length": 4, + "column_type": "object", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null, + "codetable": null + }, + "CDI": { + "description": "creation date", + "field_length": 8, + "column_type": "int32", + "valid_max": null, + "valid_min": 20140101.0 + }, + "ASII": { + "description": "access status indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C96.ASII" + } + } + }, + "c97": { + "header": { + "sentinal": "9732", + "sentinal_length": 4, + "length": 32 + }, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "ignore": true + }, + "ICNE": { + "description": "input component number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "FNE": { + "description": "field number", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 1 + }, + "CEF": { + "description": "corrected / erroneous field flag", + "field_length": 1, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null + }, + "ERRD": { + "description": "corrected / erroneous field value", + "field_length": 10, + "column_type": "float32", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null + }, + "ARCE": { + "description": "author reference code", + "field_length": 4, + "column_type": "object", + "valid_max": null, + "valid_min": null, + "scale": null, + "precision": null, + "codetable": null + }, + "CDE": { + "description": "creation date", + "field_length": 8, + "column_type": "int32", + "valid_max": null, + "valid_min": 20140101.0 + }, + "ASIE": { + "description": "access status indicator", + "field_length": 1, + "column_type": "int8", + "codetable": "ICOADS.C97.ASIE" + } + } + }, + "c98": { + "header": {"sentinal": "9815","sentinal_length": 4, "length": 15}, + "elements": { + "ATTI": { + "description": "attm ID", + "field_length": 2, + "column_type": "str" + }, + "ATTL": { + "description": "attm length", + "field_length": 2, + "column_type": "int8", + "valid_max": 15, + "valid_min": 15 + }, + "UID": { + "description": "unique report ID", + "field_length": 6, + "column_type": "str" + }, + "RN1": { + "description": "Release no.: primary", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "RN2": { + "description": "Release no.: secondary", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "RN3": { + "description": "Release no.: tertiary", + "field_length": 1, + "column_type": "int8", + "encoding": "base36", + "valid_max": 35, + "valid_min": 0 + }, + "RSA": { + "description": "Release status indicator", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C98.RSA" + }, + "IRF": { + "description": "intermediate reject flag", + "field_length": 1, + "column_type": "key", + "codetable": "ICOADS.C98.IRF" + } + } + }, + "c99": { + "header": {"sentinal": "99 0","sentinal_length": 4}, + "elements": { + "sentinal": { + "description": "sentinal", + "column_type": "object", + "field_length": 5, + "ignore": true + }, + "supp": { + "description": "supplemental", + "column_type": "object" + } + } + } + } +} diff --git a/schemas/lib/imma1/imma1.json b/schemas/lib/imma1/imma1.json index a28c338..763acca 100644 --- a/schemas/lib/imma1/imma1.json +++ b/schemas/lib/imma1/imma1.json @@ -4,7 +4,7 @@ }, "sections": { "core": { - "header": {"sentinal": null,"sentinal_length": null,"length": 108}, + "header": {"sentinal": null,"length": 108}, "elements": { "YR": { "description": "year UTC", @@ -365,7 +365,7 @@ } }, "c1": { - "header": {"sentinal": " 165","sentinal_length": 4, "length": 65}, + "header": {"sentinal": " 165","length": 65}, "elements": { "ATTI": { "description": "attm ID", @@ -705,7 +705,6 @@ "c5": { "header": { "sentinal": " 594", - "sentinal_length": 4, "length": 94 }, "elements": { @@ -1129,7 +1128,6 @@ "c6": { "header": { "sentinal": " 668", - "sentinal_length": 4, "length": 68 }, "elements": { @@ -1297,7 +1295,6 @@ "c7": { "header": { "sentinal": " 758", - "sentinal_length": 4, "length": 58 }, "elements": { @@ -1462,7 +1459,6 @@ "c8": { "header": { "sentinal": " 82U", - "sentinal_length": 4, "length": 102 }, "elements": { @@ -1687,7 +1683,6 @@ "c9": { "header": { "sentinal": " 932", - "sentinal_length": 4, "length": 32 }, "elements": { @@ -1813,7 +1808,6 @@ "c95": { "header": { "sentinal": "9561", - "sentinal_length": 4, "length": 61 }, "elements": { @@ -1930,7 +1924,6 @@ "c96": { "header": { "sentinal": "9653", - "sentinal_length": 4, "length": 53 }, "elements": { @@ -2088,7 +2081,6 @@ "c97": { "header": { "sentinal": "9732", - "sentinal_length": 4, "length": 32 }, "elements": { @@ -2162,7 +2154,7 @@ } }, "c98": { - "header": {"sentinal": "9815","sentinal_length": 4, "length": 15}, + "header": {"sentinal": "9815", "length": 15}, "elements": { "ATTI": { "description": "attm ID", @@ -2220,19 +2212,7 @@ } }, "c99": { - "header": {"sentinal": "99 0","sentinal_length": 4}, - "elements": { - "sentinal": { - "description": "sentinal", - "column_type": "object", - "field_length": 5, - "ignore": true - }, - "supp": { - "description": "supplemental", - "column_type": "object" - } - } + "header": {"sentinal": "99 0", "disable_read": true} } } } diff --git a/schemas/lib/td11.old/code_tables/barometric_tendency.json b/schemas/lib/td11.old/code_tables/barometric_tendency.json new file mode 100644 index 0000000..90e8b06 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/barometric_tendency.json @@ -0,0 +1,11 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"" +} diff --git a/schemas/lib/td11.old/code_tables/card_indicator.json b/schemas/lib/td11.old/code_tables/card_indicator.json new file mode 100644 index 0000000..4fe866b --- /dev/null +++ b/schemas/lib/td11.old/code_tables/card_indicator.json @@ -0,0 +1,10 @@ +{ + " ":"", + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "}":"Check this: it's a cero overpunch in doc" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_amount_oktas.json b/schemas/lib/td11.old/code_tables/cloud_amount_oktas.json new file mode 100644 index 0000000..51b81ec --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_amount_oktas.json @@ -0,0 +1,12 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_amount_oktas_significant.json b/schemas/lib/td11.old/code_tables/cloud_amount_oktas_significant.json new file mode 100644 index 0000000..51b81ec --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_amount_oktas_significant.json @@ -0,0 +1,12 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_height_ind.json b/schemas/lib/td11.old/code_tables/cloud_height_ind.json new file mode 100644 index 0000000..a85fe9e --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_height_ind.json @@ -0,0 +1,4 @@ +{ + " ":"Height not measured", + "0":"Height measured" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_height_metres.json b/schemas/lib/td11.old/code_tables/cloud_height_metres.json new file mode 100644 index 0000000..51b81ec --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_height_metres.json @@ -0,0 +1,12 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_height_significant.json b/schemas/lib/td11.old/code_tables/cloud_height_significant.json new file mode 100644 index 0000000..feed20a --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_height_significant.json @@ -0,0 +1,12 @@ +{ + "00":" ","01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" ","27":" ","28":" ","29":" ", + "30":" ","31":" ","32":" ","33":" ","34":" ","35":" ","36":" ","37":" ","38":" ","39":" ", + "40":" ","41":" ","42":" ","43":" ","44":" ","45":" ","46":" ","47":" ","48":" ","49":" ", + "50":" ","51":" ","52":" ","53":" ","54":" ","55":" ","56":" ","57":" ","58":" ","59":" ", + "60":" ","61":" ","62":" ","63":" ","64":" ","65":" ","66":" ","67":" ","68":" ","69":" ", + "70":" ","71":" ","72":" ","73":" ","74":" ","75":" ","76":" ","77":" ","78":" ","79":" ", + "80":" ","81":" ","82":" ","83":" ","84":" ","85":" ","86":" ","87":" ","88":" ","89":" ", + "90":" ","91":" ","92":" ","93":" ","94":" ","95":" ","96":" ","97":" ","98":" ","99":" " +} diff --git a/schemas/lib/td11.old/code_tables/cloud_type_high.json b/schemas/lib/td11.old/code_tables/cloud_type_high.json new file mode 100644 index 0000000..53388b1 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_type_high.json @@ -0,0 +1,13 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"", + "-":"" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_type_low.json b/schemas/lib/td11.old/code_tables/cloud_type_low.json new file mode 100644 index 0000000..53388b1 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_type_low.json @@ -0,0 +1,13 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"", + "-":"" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_type_middle.json b/schemas/lib/td11.old/code_tables/cloud_type_middle.json new file mode 100644 index 0000000..53388b1 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_type_middle.json @@ -0,0 +1,13 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"", + "-":"" +} diff --git a/schemas/lib/td11.old/code_tables/cloud_type_significant.json b/schemas/lib/td11.old/code_tables/cloud_type_significant.json new file mode 100644 index 0000000..53388b1 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/cloud_type_significant.json @@ -0,0 +1,13 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"", + "-":"" +} diff --git a/schemas/lib/td11.old/code_tables/coordinates_quadrants.json b/schemas/lib/td11.old/code_tables/coordinates_quadrants.json new file mode 100644 index 0000000..f633339 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/coordinates_quadrants.json @@ -0,0 +1,6 @@ +{ + "1":"", + "2":"", + "3":"", + "4":"" +} diff --git a/schemas/lib/td11.old/code_tables/ice_accretion_rate.json b/schemas/lib/td11.old/code_tables/ice_accretion_rate.json new file mode 100644 index 0000000..428a49b --- /dev/null +++ b/schemas/lib/td11.old/code_tables/ice_accretion_rate.json @@ -0,0 +1,7 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"" +} diff --git a/schemas/lib/td11.old/code_tables/ice_type.json b/schemas/lib/td11.old/code_tables/ice_type.json new file mode 100644 index 0000000..18ba795 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/ice_type.json @@ -0,0 +1,7 @@ +{ + "1":"", + "2":"", + "3":"", + "4":"", + "5":"" +} diff --git a/schemas/lib/td11.old/code_tables/ocean_weather_station.json b/schemas/lib/td11.old/code_tables/ocean_weather_station.json new file mode 100644 index 0000000..caf4510 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/ocean_weather_station.json @@ -0,0 +1,5 @@ +{ + "01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" " + } diff --git a/schemas/lib/td11.old/code_tables/osv_ship_indicator.json b/schemas/lib/td11.old/code_tables/osv_ship_indicator.json new file mode 100644 index 0000000..5b1ee3f --- /dev/null +++ b/schemas/lib/td11.old/code_tables/osv_ship_indicator.json @@ -0,0 +1,7 @@ +{ + " ":"", + "0":"", + "2":"", + "K":"Check this: it's a two overpunch in doc", + "4":"" +} diff --git a/schemas/lib/td11.old/code_tables/ship_direction.json b/schemas/lib/td11.old/code_tables/ship_direction.json new file mode 100644 index 0000000..3738940 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/ship_direction.json @@ -0,0 +1,12 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"" +} diff --git a/schemas/lib/td11.old/code_tables/ship_speed_knots.json b/schemas/lib/td11.old/code_tables/ship_speed_knots.json new file mode 100644 index 0000000..f1509ac --- /dev/null +++ b/schemas/lib/td11.old/code_tables/ship_speed_knots.json @@ -0,0 +1,28 @@ +{ + "range_key(1750,1967)": + { + "0":"0 knots", + "1":"1-3 knots", + "2":"4-6 knots", + "3":"7-9 knots", + "4":"10-12 knots", + "5":"13-15 knots", + "6":"16-18 knots", + "7":"19-21 knots", + "8":"22-24 knots", + "9":">24 knots" + }, + "range_key(1968,yyyy)": + { + "0":"0 knots", + "1":"1-5 knots", + "2":"6-10 knots", + "3":"11-15 knots", + "4":"16-20 knots", + "5":"21-25 knots", + "6":"26-30 knots", + "7":"31-35 knots", + "8":"36-40 knots", + "9":">40 knots" + } +} diff --git a/schemas/lib/td11.old/code_tables/ship_speed_knots.keys b/schemas/lib/td11.old/code_tables/ship_speed_knots.keys new file mode 100644 index 0000000..7449193 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/ship_speed_knots.keys @@ -0,0 +1,3 @@ +{ + "('additional 6','S P D')" : ["('core1','YEAR')","('additional 6','S P D')"] +} diff --git a/schemas/lib/td11.old/code_tables/swell_period.json b/schemas/lib/td11.old/code_tables/swell_period.json new file mode 100644 index 0000000..1c69ed6 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/swell_period.json @@ -0,0 +1,30 @@ +{ + "range_key(1750,1967)": + { + "0":"20-21 seconds", + "1":"over 21 seconds", + "2":"5 seconds or less", + "3":"6-7 seconds", + "4":"8-9 seconds", + "5":"10-11 seconds", + "6":"12-13 seconds", + "7":"14-15 seconds", + "8":"16-17 seconds", + "9":"18-19 seconds", + "-":"calm or no period determined" + }, + "range_key(1968,yyyy)": + { + "0":"10 seconds", + "1":"11 seconds", + "2":"12 seconds", + "3":"13 seconds", + "4":"14 seconds or more", + "5":"5 seconds or less", + "6":"6 seconds", + "7":"7 seconds", + "8":"8 seconds", + "9":"9 seconds", + "-":"calm or period not determined" + } +} diff --git a/schemas/lib/td11.old/code_tables/swell_period.keys b/schemas/lib/td11.old/code_tables/swell_period.keys new file mode 100644 index 0000000..3c9be36 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/swell_period.keys @@ -0,0 +1,3 @@ +{ + "('core1','P E R SWELL')" : ["('core1','YEAR')","('core1','P E R SWELL')"] +} diff --git a/schemas/lib/td11.old/code_tables/temperatures_ind.json b/schemas/lib/td11.old/code_tables/temperatures_ind.json new file mode 100644 index 0000000..34d01d8 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/temperatures_ind.json @@ -0,0 +1,5 @@ +{ + "1":"", + "3":"", + "5":"" +} diff --git a/schemas/lib/td11.old/code_tables/visibility.json b/schemas/lib/td11.old/code_tables/visibility.json new file mode 100644 index 0000000..02efb98 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/visibility.json @@ -0,0 +1,6 @@ +{ + "0": + {"90":"<0.05 km","91":"0.05 km","92":"0.2 km","93":"0.5 km","94":"1 km","95":"2 km","96":"4 km","97":"10 km","98":"20 km","99":"50 km or more"}, + "1": + {"90":"<0.05 km","91":"0.05 km","92":"0.2 km","93":"Fog present, no visibility reported","94":"1 km","95":"2 km","96":"4 km","97":"10 km","98":"20 km","99":"50 km or more"} +} diff --git a/schemas/lib/td11.old/code_tables/visibility.keys b/schemas/lib/td11.old/code_tables/visibility.keys new file mode 100644 index 0000000..5c13db6 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/visibility.keys @@ -0,0 +1,3 @@ +{ + "('core1','VIS')" : ["('core1','VIS I')","('core1','VIS')"] +} diff --git a/schemas/lib/td11.old/code_tables/visibility_ind.json b/schemas/lib/td11.old/code_tables/visibility_ind.json new file mode 100644 index 0000000..f5d9cfa --- /dev/null +++ b/schemas/lib/td11.old/code_tables/visibility_ind.json @@ -0,0 +1,5 @@ +{ + " ":"Not measured", + "0":"Measured", + "1":"Fog present" +} diff --git a/schemas/lib/td11.old/code_tables/wave_direction_from.json b/schemas/lib/td11.old/code_tables/wave_direction_from.json new file mode 100644 index 0000000..62f8416 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wave_direction_from.json @@ -0,0 +1,6 @@ +{ + "00":" ","01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" ","27":" ","28":" ","29":" ", + "30":" ","31":" ","32":" ","33":" ","34":" ","35":" ","36":" ","49":" ","99":" " +} diff --git a/schemas/lib/td11.old/code_tables/wave_height.json b/schemas/lib/td11.old/code_tables/wave_height.json new file mode 100644 index 0000000..feed20a --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wave_height.json @@ -0,0 +1,12 @@ +{ + "00":" ","01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" ","27":" ","28":" ","29":" ", + "30":" ","31":" ","32":" ","33":" ","34":" ","35":" ","36":" ","37":" ","38":" ","39":" ", + "40":" ","41":" ","42":" ","43":" ","44":" ","45":" ","46":" ","47":" ","48":" ","49":" ", + "50":" ","51":" ","52":" ","53":" ","54":" ","55":" ","56":" ","57":" ","58":" ","59":" ", + "60":" ","61":" ","62":" ","63":" ","64":" ","65":" ","66":" ","67":" ","68":" ","69":" ", + "70":" ","71":" ","72":" ","73":" ","74":" ","75":" ","76":" ","77":" ","78":" ","79":" ", + "80":" ","81":" ","82":" ","83":" ","84":" ","85":" ","86":" ","87":" ","88":" ","89":" ", + "90":" ","91":" ","92":" ","93":" ","94":" ","95":" ","96":" ","97":" ","98":" ","99":" " +} diff --git a/schemas/lib/td11.old/code_tables/wave_period.json b/schemas/lib/td11.old/code_tables/wave_period.json new file mode 100644 index 0000000..53388b1 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wave_period.json @@ -0,0 +1,13 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"", + "-":"" +} diff --git a/schemas/lib/td11.old/code_tables/weather_past.json b/schemas/lib/td11.old/code_tables/weather_past.json new file mode 100644 index 0000000..3738940 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/weather_past.json @@ -0,0 +1,12 @@ +{ + "0":"", + "1":"", + "2":"", + "3":"", + "4":"", + "5":"", + "6":"", + "7":"", + "8":"", + "9":"" +} diff --git a/schemas/lib/td11.old/code_tables/weather_present.json b/schemas/lib/td11.old/code_tables/weather_present.json new file mode 100644 index 0000000..feed20a --- /dev/null +++ b/schemas/lib/td11.old/code_tables/weather_present.json @@ -0,0 +1,12 @@ +{ + "00":" ","01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" ","27":" ","28":" ","29":" ", + "30":" ","31":" ","32":" ","33":" ","34":" ","35":" ","36":" ","37":" ","38":" ","39":" ", + "40":" ","41":" ","42":" ","43":" ","44":" ","45":" ","46":" ","47":" ","48":" ","49":" ", + "50":" ","51":" ","52":" ","53":" ","54":" ","55":" ","56":" ","57":" ","58":" ","59":" ", + "60":" ","61":" ","62":" ","63":" ","64":" ","65":" ","66":" ","67":" ","68":" ","69":" ", + "70":" ","71":" ","72":" ","73":" ","74":" ","75":" ","76":" ","77":" ","78":" ","79":" ", + "80":" ","81":" ","82":" ","83":" ","84":" ","85":" ","86":" ","87":" ","88":" ","89":" ", + "90":" ","91":" ","92":" ","93":" ","94":" ","95":" ","96":" ","97":" ","98":" ","99":" " +} diff --git a/schemas/lib/td11.old/code_tables/wind_direction.json b/schemas/lib/td11.old/code_tables/wind_direction.json new file mode 100644 index 0000000..322bf02 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wind_direction.json @@ -0,0 +1,22 @@ +{ + " ": + {"00":" ","01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" ","27":" ","28":" ","29":" ", + "30":" ","31":" ","32":" ","33":" ","34":" ","35":" ","36":" ","99":" "}, + "0": + {"00":" ","01":" ","02":" ","03":" ","04":" ","05":" ","06":" ","07":" ","08":" ","09":" ", + "10":" ","11":" ","12":" ","13":" ","14":" ","15":" ","16":" ","17":" ","18":" ","19":" ", + "20":" ","21":" ","22":" ","23":" ","24":" ","25":" ","26":" ","27":" ","28":" ","29":" ", + "30":" ","31":" ","32":" ","99":" "}, + "1": + {"00":" ","02":" ","05":" ","07":" ","09":" ", + "11":" ","14":" ","16":" ","18":" ", + "20":" ","23":" ","25":" ","27":" ","29":" ", + "32":" ","34":" ","36":" ","99":" "}, + "2": + {"00":" ","02":" ","04":" ","06":" ","08":" ", + "10":" ","12":" ","14":" ","16":" ","18":" ", + "20":" ","22":" ","24":" ","26":" ","28":" ", + "30":" ","32":" ","99":" "} +} diff --git a/schemas/lib/td11.old/code_tables/wind_direction.keys b/schemas/lib/td11.old/code_tables/wind_direction.keys new file mode 100644 index 0000000..7ef5168 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wind_direction.keys @@ -0,0 +1,3 @@ +{ + "('core1','WIND DIR')" : ["('core1','WIND DIR I')","('core1','WIND DIR')"] +} diff --git a/schemas/lib/td11.old/code_tables/wind_direction_ind.json b/schemas/lib/td11.old/code_tables/wind_direction_ind.json new file mode 100644 index 0000000..3ab840a --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wind_direction_ind.json @@ -0,0 +1,6 @@ +{ + " ":"36 point scale", + "0":"32 point scale", + "1":"16 of 36 point scale", + "2":"16 of 32 point scale" +} diff --git a/schemas/lib/td11.old/code_tables/wind_speed_ind.json b/schemas/lib/td11.old/code_tables/wind_speed_ind.json new file mode 100644 index 0000000..3784de4 --- /dev/null +++ b/schemas/lib/td11.old/code_tables/wind_speed_ind.json @@ -0,0 +1,4 @@ +{ + " ":"Not measured", + "0":"Measured" +} diff --git a/schemas/lib/td11.old/td11.json b/schemas/lib/td11.old/td11.json new file mode 100644 index 0000000..7170580 --- /dev/null +++ b/schemas/lib/td11.old/td11.json @@ -0,0 +1,468 @@ +{ + "header": { + "format": "fixed_width", + "parsing_order": [ + {"s": ["core1"]}, + {"e": [ "additional blank","additional 1", "additional 6","additional 8"]}, + {"s": [ "core2","supplemental"]}], + "date_parser": {"section": "core1","elements": ["YEAR","MO","DA","HR"],"format": ["%Y","%m","%d","%H"]} + }, + "sections": { + "core1": { + "header": {"sentinal": null,"sentinal_length": null,"length": 81}, + "elements": { + "CARD DECK": { + "description": "Card deck number", + "field_length": 3, + "column_type": "str" + }, + "MAR SQ": { + "description": "Marsden 10 degree square", + "field_length": 3, + "column_type": "int16", + "valid_max": 936, + "valid_min": 1 + }, + "SUB SQ": { + "description": "Marsden 1 degree sub-square", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0 + }, + "Q": { + "description": "Quadrant", + "field_length": 1, + "column_type": "key", + "codetable": "coordinates_quadrants" + }, + "LAT": { + "description": "Latitude", + "field_length": 3, + "column_type": "float16", + "valid_max": 90.0, + "valid_min": 0.0, + "scale": 0.1, + "decimal_places": 1, + "units": "deg" + }, + "LONG": { + "description": "Longitude", + "field_length": 4, + "column_type": "float16", + "valid_max": 180.0, + "valid_min": 0.0, + "scale": 0.1, + "decimal_places": 1, + "units": "deg" + }, + "YEAR": { + "description": "Year", + "field_length": 4, + "column_type": "int16", + "valid_max": 1999, + "valid_min": 1800, + "units": "a" + }, + "MO": { + "description": "Month", + "field_length": 2, + "column_type": "int8", + "valid_max": 12, + "valid_min": 1, + "units": "mon" + }, + "DA": { + "description": "Day", + "field_length": 2, + "column_type": "int8", + "valid_max": 31, + "valid_min": 1, + "units": "d" + }, + "HR": { + "description": "Hour GMT", + "field_length": 2, + "column_type": "int8", + "valid_max": 23, + "valid_min": 0, + "units": "h" + }, + "WIND DIR I": { + "description": "Wind direction indicator", + "field_length": 1, + "column_type": "key", + "disable_white_strip": true, + "codetable": "wind_direction_ind" + }, + "WIND DIR": { + "description": "Wind direction", + "field_length": 2, + "column_type": "key", + "codetable": "wind_direction" + }, + "WIND SPD I": { + "description": "Wind speed indicator", + "field_length": 1, + "column_type": "key", + "disable_white_strip": true, + "codetable": "wind_speed_ind" + }, + "WIND SPD": { + "description": "Wind speed", + "field_length": 3, + "column_type": "int16", + "valid_min": 0, + "valid_max": 199, + "units": "knots" + }, + "VIS I": { + "description": "Visibility indicator", + "field_length": 1, + "column_type": "key", + "disable_white_strip": true, + "codetable": "visibility_ind" + }, + "VIS": { + "description": "Visibility", + "field_length": 2, + "column_type": "key", + "codetable": "visibility" + }, + "WX": { + "description": "Present weather", + "field_length": 2, + "column_type": "key", + "codetable": "weather_present" + }, + "W": { + "description": "Past weather", + "field_length": 1, + "column_type": "key", + "codetable": "weather_past" + }, + "PRESS": { + "description": "Sea level pressure", + "field_length": 5, + "column_type": "float16", + "valid_max": 1070.0, + "valid_min": 890.0, + "scale": 0.1, + "decimal_places": 1, + "units": "hPa" + }, + "T I": { + "description": "Temperatures indicator", + "field_length": 1, + "column_type": "key", + "codetable": "temperatures_ind" + }, + "AIR TMP": { + "description": "Air temperature", + "field_length": 3, + "column_type": "float16", + "encoding": "signed_overpunch", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "precision": "0.1" + }, + "WET BLB": { + "description": "Wet bulb temperature", + "field_length": 3, + "column_type": "float16", + "encoding": "signed_overpunch", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "C" + }, + "DEW PT": { + "description": "Dew point temperature", + "field_length": 3, + "column_type": "float16", + "encoding": "signed_overpunch", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "C" + }, + "SEA TMP": { + "description": "Sea surface temperature", + "field_length": 3, + "column_type": "float16", + "encoding": "signed_overpunch", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "C" + }, + "A-S DIFF": { + "description": "Air-sea temperature difference", + "field_length": 3, + "column_type": "float16", + "encoding": "signed_overpunch", + "valid_max": 99.9, + "valid_min": -99.9, + "scale": 0.1, + "decimal_places": 1, + "units": "C" + }, + "CLOUDS N": { + "description": "Total cloud amount", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_amount_oktas" + }, + "CLOUDS Nh": { + "description": "Lower cloud amount", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_amount_oktas" + }, + "CLOUDS CL": { + "description": "Type of low cloud", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_type_low" + }, + "CLOUDS I": { + "description": "Cloud height indicator", + "field_length": 1, + "column_type": "key", + "disable_white_strip": true, + "codetable": "cloud_height_ind" + }, + "CLOUDS h": { + "description": "Cloud height", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_height_metres" + }, + "CLOUDS CM": { + "description": "Type of middle cloud", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_type_middle" + }, + "CLOUDS CH": { + "description": "Type of high cloud", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_type_high" + }, + "WAVE DIR": { + "description": "Direction of waves", + "field_length": 2, + "column_type": "key", + "codetable": "wave_direction_from" + }, + "P E R WAVES": { + "description": "Period of waves", + "field_length": 1, + "column_type": "key", + "codetable": "wave_period" + }, + "WAVE HGT": { + "description": "Height of waves", + "field_length": 2, + "column_type": "key", + "codetable": "wave_height" + }, + "SWL DIR": { + "description": "Direction of swell", + "field_length": 2, + "column_type": "key", + "codetable": "wave_direction_from" + }, + "P E R SWELL": { + "description": "Period of swell", + "field_length": 1, + "column_type": "key", + "codetable": "swell_period" + }, + "SWL HGT": { + "description": "Height of swell", + "field_length": 2, + "column_type": "key", + "codetable": "wave_height" + }, + "OSV NO.": { + "description": "Ocean weather station number", + "field_length": 2, + "column_type": "key", + "codetable": "ocean_weather_station" + }, + "C D": { + "description": "Card indicator", + "field_length": 1, + "column_type": "key", + "disable_white_strip": true, + "codetable": "card_indicator" + }, + "SHP": { + "description": "Osv or ship indicator", + "field_length": 1, + "column_type": "key", + "disable_white_strip": true, + "codetable": "osv_ship_indicator" + } + } + }, + "additional blank": { + "header": {"sentinal": " ", "sentinal_length": 1, "length": 7}, + "elements": { + "ADD 0": { + "description": "No data", + "field_length": 1, + "column_type": "object", + "ignore": true + }, + "Blank": { + "description": "No data", + "field_length": 6, + "column_type": "object", + "ignore": true + } + } + }, + "additional 1": { + "header": {"sentinal": "1", "sentinal_length": 1,"length": 7}, + "elements": { + "A D D": { + "description": "Additional data indicator", + "field_length": 1, + "column_type": "int8", + "ignore": true + }, + "I C E": { + "description": "Type of ice", + "field_length": 1, + "column_type": "key", + "codetable": "ice_type" + }, + "ICE THK": { + "description": "Thickness of ice in centimetres", + "field_length": 2, + "column_type": "int8", + "valid_max": 99, + "valid_min": 0, + "units": "cm" + }, + "ACC": { + "description": "Rate of ice accretion", + "field_length": 1, + "column_type": "key", + "codetable": "ice_accretion_rate" + }, + "Blank": { + "description": "Blank", + "field_length": 2, + "column_type": "object", + "ignore": true + } + } + }, + "additional 6": { + "header": {"sentinal": "6","sentinal_length": 1,"length": 7}, + "elements": { + "A D D": { + "description": "Additional data indicator", + "field_length": 1, + "column_type": "int8", + "ignore": true + }, + "D I R": { + "description": "Ship direction", + "field_length": 1, + "column_type": "key", + "codetable": "ship_direction" + }, + "S P D": { + "description": "Ship speed", + "field_length": 1, + "column_type": "key", + "codetable": "ship_speed_knots" + }, + "a": { + "description": "Barometric tendency", + "field_length": 1, + "column_type": "key", + "codetable": "barometric_tendency" + }, + "ppp": { + "description": "Amount of pressure change (3h, tenths of millibars)", + "field_length": 3, + "column_type": "float16", + "valid_max": 29.9, + "valid_min": 0.0, + "scale": 0.1, + "decimal_places": 1, + "units": "hPa" + } + } + }, + "additional 8": { + "header": {"sentinal": "8","sentinal_length": 1,"length": 7}, + "elements": { + "A D D": { + "description": "Additional data indicator", + "field_length": 1, + "column_type": "int8", + "ignore": true + }, + "SIG N": { + "description": "Significant cloud amount", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_amount_oktas_significant" + }, + "SIG T": { + "description": "Significant cloud type", + "field_length": 1, + "column_type": "key", + "codetable": "cloud_type_significant" + }, + "SIG HGT": { + "description": "Significant cloud height", + "field_length": 2, + "column_type": "key", + "codetable": "cloud_height_significant" + }, + "Blank": { + "description": "Blank", + "field_length": 2, + "column_type": "object", + "ignore": true + } + } + }, + "core2": { + "header": {"sentinal": null,"sentinal_length": null,"length": 5}, + "elements": { + "I C E": { + "description": "Ice indicator", + "field_length": 1, + "column_type": "str" + }, + "SHIP NO.": { + "description": "Ship number", + "field_length": 4, + "column_type": "str" + } + } + }, + "supplemental": { + "header": {"sentinal": null,"sentinal_length": null,"length": null}, + "elements": { + "supp": { + "description": "Supplemental data fields", + "column_type": "object" + } + } + } + } +} diff --git a/schemas/schemas.py b/schemas/schemas.py index 6391f48..8a981a0 100644 --- a/schemas/schemas.py +++ b/schemas/schemas.py @@ -5,6 +5,11 @@ Created on Thu Sep 13 15:14:51 2018 Read data file format json schema to dictionary + +Add schema validation: + - check mandatory are not null + - check fixed options + """ @@ -54,6 +59,22 @@ def copy_template(schema, out_dir = None,out_path = None): print('\tValid names are: {}'.format(", ".join(schemas))) return +def get_field_layout(field_layout_def,field_layout): + if not field_layout_def and not field_layout: + return None + elif not field_layout: + return field_layout_def + else: + return field_layout + +def get_delimiter(delimiter_def,delimiter): + if not delimiter_def and not delimiter: + return None + elif not delimiter_def: + return delimiter + else: + return field_layout + def read_schema(schema_name = None, ext_schema_path = None): if schema_name: @@ -65,6 +86,7 @@ def read_schema(schema_name = None, ext_schema_path = None): else: schema_path = os.path.abspath(ext_schema_path) schema_name = os.path.basename(schema_path) + schema_file = os.path.join(schema_path, schema_name + '.json') if not os.path.isfile(schema_file): logging.error('Can\'t find input schema file {}'.format(schema_file)) @@ -75,14 +97,31 @@ def read_schema(schema_name = None, ext_schema_path = None): # FILL IN THE INITIAL SCHEMA TO "FULL COMPLEXITY" # EXPLICITY ADD INFO THAT IS IMPLICIT TO GIVEN SITUATIONS/SUBFORMATS # --------------------------------------------------------------------------- - # One report per record + # One report per record: make sure later changes are reflected in MULTIPLE + # REPORTS PER RECORD case below if we ever use it! if not schema['header'].get('multiple_reports_per_line'): + # Make no section formats be 1 section format if not schema.get('sections'): schema['sections'] = {properties.dummy_level:{'header':{},'elements':schema.get('elements')}} schema['header']['parsing_order'] = [{'s':[properties.dummy_level]}] schema.pop('elements',None) + schema['sections'][properties.dummy_level]['header']['delimiter'] = schema['header'].get('delimiter') + schema['header'].pop('delimiter',None) + schema['sections'][properties.dummy_level]['header']['field_layout'] = schema['header'].get('field_layout') + schema['header'].pop('field_layout',None) + # Make parsing order explicit if not schema['header'].get('parsing_order'):# assume sequential schema['header']['parsing_order'] = [{'s':list(schema['sections'].keys())}] + # Make disable_read and field_layout explicit: this is ruled by delimiter or length being set, + # unless explicitly set + for section in schema['sections'].keys(): + if schema['sections'][section]['header'].get('disable_read'): + continue + else: + schema['sections'][section]['header']['disable_read'] = False + if not schema['sections'][section]['header'].get('field_layout'): + delimiter = schema['sections'][section]['header'].get('delimiter') + schema['sections'][section]['header']['field_layout'] = 'delimited' if delimiter else 'fixed_width' return schema else: # 1X: MULTIPLE REPORTS PER RECORD -- GitLab