Commit 36c0b601 authored by PONCELET's avatar PONCELET

remove root node, and add some fixes in regard to the netcdf convention

parent 9f9718bb
|==============================================================================================================================================================================================================
|Description |Obligation |Comment
|Group attributes | |
|Types | |
|byte enum detection_type_t { invalid=0,amplitude=1,phase=2,unknown=-127} | |Detection type info : phase, amplitude, invalid
|Dimensions | |
|detection | |The maximum number of main soundings detection in this group per swath.
|Variables | |
|float detection_beam_pointing_angle(ping_time, detection) |O |In high density mode, beam width is synthetically sharpen in order to make several independant sounding detection per beam. This variable matches the beam pointing angle of the sharpen synthetic beam. Angle relative to the RX transducer array if beam are not stabilized, If stabilized (ME70 for example) angles are relative to the horizontal plane. If mode is not High density, the synthetic pointing angle should match the beam pointing angle
|:long_name = "detection synthetic beam pointing angle relative to Rx reference plane" | |
|:units = "arc_degree" | |
|:crs = "ACS" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|int beam_detection_range(ping_time, beam) |0 |approximation for the main bottom detection range in sample
|:long_name = "approximation of main bottom detection range in sample" | |
|:valid_min = "0" | |
| | |
|float detection_backscatter_calibration(ping_time, detection) |O |Backscatter (BScorr) calibration offset applied (default 0 dB).
|:long_name = " detection backscatter calibration" | |
|:units = "dB" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_constructor_quality_factor(ping_time, detection) |O |quality factor as given by constructor
|:long_name = "constructor quality factor" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_ifremer_quality_factor(ping_time, detection) |O |Estimated standard deviation as % of the detected depth. Quality Factor (QF) is calculated from IFREMER Quality Factor (IFQ):QF=Est(dz)/z=100*10^-IQF
|:long_name = "Estimated standard deviation as % of the detected depth. Quality Factor (QF) is calculated from IFREMER Quality Factor (IFQ):QF=Est(dz)/z=100*10^-IQ" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|double detection_latitude(ping_time, detection) |O |Latitude of the detection in WGS-84 reference system
|:long_name = "Latitude of the detection" | |
|:units = "degrees_north" | |
|float :valid_min = −90 | |
|float :valid_max = 90 | |
|:standard_name = "latitude" | |
|double :_FillValue = Double.NaN | |
| | |
|double detection_longitude(ping_time, detection) |O |Longitude of the detection in WGS-84 reference system
|:long_name = "Longitude of the detection" | |
|:units = "degrees_east" | |
|float :valid_min = −90 | |
|float :valid_max = 90 | |
|:standard_name = "longitude" | |
|double :_FillValue = Double.NaN | |
| | |
|float detection_mean_absorption_coefficient(ping_time, detection) |O |parameter used in equation type_3
|:long_name = "mean absorption coefficient" | |
|:units = "dB/km" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_receiver_sensitivity_applied(ping_time, detection) |O |Receiver sensitivity (M), in dB, compensated for RX beampattern at actual transmit frequency at current vessel attitude.
|:long_name = "detection receiver sensitivity applied" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_backscatter(ping_time, detection) |O |Beam intensity at detection point (kmall type_3 for reflectivity2 data, type_4 for km data
|:long_name = "detection seafloor backscatter" | |
|:coordinates = "detection_latitude detection_longitude" | |
|:equation_type = "conversion_equation_t" | |
| | |
|ushort detection_rx_transducer_index(ping_time, detection) |M |associated rx transducer index, as recorded in the Platform description. As a swath can be made of several transmit sectors and rx fans, those data are recorded per swath and per detection
|:long_name = "detection associated Rx transducer index" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_source_level_applied(ping_time, detection) |O |Source level (SL) applied (dB):
|:long_name = "detection source level applied" | |
|:units = "dB" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_time_varying_gain(ping_time, detection) |O |Time Varying Gain (TVG) used when correcting reflectivity.
|:long_name = "detection Time Varying Gain (TVG) used when correcting reflectivity." | |
|:units = "dB" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_two_way_travel_time(ping_time, detection) |O |Two way travel time (also called range) of the detection
|:long_name = "two way travel time" | |
|:units = "s" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|short detection_tx_sector(ping_time, detection) |M |Transmitting sector number
|:long_name = "transmitting sector number" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|ushort detection_tx_transducer_index(ping_time, detection) |M |associated tx transducer index, as recorded in the Platform description. As a swath can be made of several transmit sectors and rx fans, those data are recorded per swath and per detection
|:long_name = "detection transmit transducer index" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|detection_type_t detection_type(ping_time, detection) | |type of detection
|:long_name = "Type of detection" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_x(ping_time, detection) |M |Distance from vessel reference point at time of first tx pulse in ping, to depth point. Measured in the surface coordinate system (SCS)
|:long_name = "Horizontal distance x" | |
|:units = "m" | |
|:crs = "SCS" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_y(ping_time, detection) |M |Distance from vessel reference point at time of first tx pulse in ping, to depth point. Measured in the surface coordinate system (SCS)
|:long_name = "Horizontal distance y" | |
|:units = "m" | |
|:crs = "SCS" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|float detection_z(ping_time, detection) |M |Distance from vessel reference point at time of first tx pulse in ping, to depth point. Measured in the surface coordinate system (SCS)
|:long_name = "Vertical distance z" | |
|:units = "m" | |
|:crs = "SCS" | |
|:coordinates = "detection_latitude detection_longitude" | |
| | |
|byte status(ping_time, detection) | |invalidity flag for soundings data, if one of the byte field is set (value != 0) the data are considered as invalid for the given reasons : -rejected : rejected by user operation, detailed reason is given by the detailed status field -invalid_acquisition : marked invalid by sounder -invalid_conversion : tagged as invalid during file creation (typically missing datagram) -invalid_swath : swath is invalidated (typically by the user) -invalid_sounding_row (range of sounding invalidated along sounding_row dimension) see http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/cf-conventions.html#flags
|:long_name = "status" | |
|:coordinates = "detection_latitude detection_longitude" | |
|:flag_meanings = "rejected invalid_acquis invalid_conversion invalid_swath invalid_sounding_row " | |
|:flag_mask = "1b,2b,4b,8b,16b,32b,64b" | |
| | |
|byte status_detail(ping_time, detection) | |detailed status for rejected sounding (byte field of status) -manual rejected manually by operator - rejected automatically -doubtfull (typically cube algorithm) -unknown rejected by another reason see http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/cf-conventions.html#flags
|:long_name = "status_detail" | |
|:flag_values = "1b,2b,3b,4b" | |
|:flag_meanings = "manual auto doubful unknown" | |
|:coordinates = "detection_latitude detection_longitude" | |
|==============================================================================================================================================================================================================
|==============================================================================================================================================================================================================
|Description |Obligation |Comment
|Group attributes | |
|:beam_mode |M |Mode of the beam in this subgroup, taken from the defined vocabulary of: “vertical” (a set of beams that form a vertical slice through the water), ”horizontal” (a set of beams that form a nominally horizontal plane through the water), and ”inspection” (a set of beams with arbitrary pointing directions).
|conversion_equation_t :conversion_equation_type |M |Type of equation used to convert backscatter measurements into volume backscattering strength and target strength.
|int :preferred_MRU |MA |Index of the MRU sensor to use by default. If the sensor used can be dynamically changed, refer to the variable active_MRU. Index matches the ones used in the Platform MRU sensors variables.
|int :preferred_position |MA |Index of the position sensor to use by default. If the sensor used can be dynamically changed, refer to the variable active_position_sensor. Index matches the ones used in the Platform position sensors variables.
|Dimensions | |
|beam | |The number of beams in this beam group.
|ping_time = unlimited | |Can be of fixed or unlimited length, as appropriate.
|tx_beam | |The number of transmit beams in this beam group
|Coordinate variables | |
|string beam(beam) |M |Beam name (or number or identification code).
|:long_name = "Beam name" | |
| | |
|uint64 ping_time(ping_time) |M |Timestamp at which each ping occurred.
|:axis = "T" | |
|:calendar = "gregorian" | |
|:long_name = "Time-stamp of each ping" | |
|:standard_name = "time" | |
|:units = "nanoseconds since 1601-01-01 00:00:00Z" | |
|Variables | |
|sample_t backscatter_i(ping_time, beam) |MA |Imaginary part of backscatter measurements. Each element in the 2D matrix is a variable length vector (of type sample_t) that contains the samples for that beam and ping time.
|:long_name = "Raw backscatter measurements (imaginary part)" | |
|:units = "as appropriate" | |Use units appropriate for the data.
| | |
|sample_byte_t backscatter_r(ping_time, beam) |M |Real part or amplitude or power of backscatter measurements. Each element in the 2D matrix is a variable length vector (of type sample_t) that contains the samples for that beam and ping time.
|:long_name = "Raw backscatter measurements (real part)" | |
|:units = "as appropriate" | |Use units appropriate for the data.
|float :scale_factor = 0.5 | |
| | |
|float beamwidth_receive_major(ping_time, beam) |M |One-way beam width at half power down in the horizontal direction of the receive beam. Horizontal direction matched across ship direction in MBES case
|:long_name = "Half power one-way receive beam width along major (horizontal) axis of beam, Horizontal direction matched across ship direction in MBES case" | |
|:units = "arc_degree" | |
|float :valid_range = 0.0, 360.0 | |
| | |
|float beamwidth_receive_minor(ping_time, beam) |M |One-way beam width at half power down in the vertical direction of the receive beam. Vertical direction matched along ship direction in MBES case
|:long_name = "Half power one-way receive beam width along minor (vertical) axis of beam, Vertical direction matched along ship direction in MBES case " | |
|:units = "arc_degree" | |
|float :valid_range = 0.0, 360.0 | |
| | |
|float beamwidth_transmit_major(ping_time, tx_beam) |MA |One-way beam width at half power down in the horizontal direction of the transmit beam. Horizontal direction matched across ship direction in MBES case
|:long_name = "Half power one-way transmit beam width along major (horizontal) axis of beam, horizontal direction matched across ship direction in MBES case " | |
|:units = "arc_degree" | |
|float :valid_range = 0.0, 360.0 | |
| | |
|float beamwidth_transmit_minor(ping_time, tx_beam) |MA |One-way beam width at half power down in the vertical direction of the transmit beam. vertical direction matched along ship direction in MBES case
|:long_name = "Half power one-way transmit beam width along minor (vertical) axis of beam, vertical direction matched along ship direction in MBES case" | |
|:units = "arc_degree" | |
|float :valid_range = 0.0, 360.0 | |
| | |
|float beam_direction_x(ping_time, beam) |M |The _x_-axis coordinate of a unit vector in the beam direction for each beam and ping in the FACS coordinate system (ie relative to the vertical)
|:long_name = "_x_-component of the vector that gives the pointing direction of the beam, in sonar beam coordinate system" | |
|:crs = "FACS" | |
|float :valid_range = −1.0, 1.0 | |
| | |
|float beam_direction_y(ping_time, beam) |M |The _y_-axis coordinate of a unit vector in the beam direction for each beam and ping, in the FACS coordinate system (ie relative to the vertical)
|:long_name = "_y_-component of the vector that gives the pointing direction of the beam, in the FACS coordinate system (ie relative to the vertical)" | |
|float :valid_range = −1.0, 1.0 | |
|:crs = "FACS" | |
| | |
|float beam_direction_z(ping_time, beam) |M |The _z_-axis coordinate of a unit vector in the beam direction for each beam and ping, in the FACS coordinate system (ie relative to the vertical)
|:long_name = "_z_-component of the vector that gives the pointing direction of the beam, in the FACS coordinate system (ie relative to the vertical)" | |
|float :valid_range = −1.0, 1.0 | |
|:crs = "FACS" | |
| | |
|float tx_beam_direction_x(ping_time, tx_beam) |M |The _x_-axis coordinate of a unit vector in the beam direction for each tx_beam and ping, as per the sonar beam coordinate system.
|:long_name = "_x_-component of the vector that gives the pointing direction of the tx_beam, in sonar beam coordinate system" | |
|:units = "1" | |
|float :valid_range = −1.0, 1.0 | |
| | |
|float tx_beam_direction_y(ping_time, tx_beam) |M |The _y_-axis coordinate of a unit vector in the tx_beam direction for each beam and ping, as per the sonar beam coordinate system.
|:long_name = "_y_-component of the vector that gives the pointing direction of the tx_beam, in sonar beam coordinate system" | |
|:units = "1" | |
|float :valid_range = −1.0, 1.0 | |
| | |
|float tx_beam_direction_z(ping_time, tx_beam) |M |The _z_-axis coordinate of a unit vector in the tx_beam direction for each beam and ping, as per the sonar beam coordinate system.
|:long_name = "_z_-component of the vector that gives the pointing direction of the tx_beam, in sonar beam coordinate system" | |
|:units = "1" | |
|float :valid_range = −1.0, 1.0 | |
| | |
|beam_stabilisation_t beam_stabilisation(ping_time) |M |Indicates whether or not sonar beams have been compensated for platform motion.
|:long_name = "Beam stabilisation applied (or not)" | |
| | |
|beam_t beam_type(ping_time) |M |Type of beam.
|:long_name = "Type of beam" | |
| | |
|float equivalent_beam_angle(ping_time, beam) |M |Equivalent beam angle.
|:long_name = "Equivalent beam angle" | |
|:units = "sr" | |
|float :valid_range = 0.0, 12.56637061435917295385 | |Maximum value is equivalent to 4π.
| | |
|float gain_correction(ping_time, beam) |MA |Gain correction. This parameter is set from a calibration exercise. Necessary for type 2 conversion equation.
|:long_name = "Gain correction" | |
|:units = "dB" | |
| | |
|short non_quantitative_processing(ping_time) |M |Settings of any processing that is applied prior to recording backscatter data that may prevent the calculation of calibrated backscatter. A value of 0 always indicates no such processing.
|:flag_meanings | |Space-separated list of non-quantitative processing setting words or phrases. The first item must always be the no non-quantitative processing setting and subsequent items as appropriate to the sonar and data(e.g. ”no_non_quantitative_processing simrad_noise_filter_weak simrad_noise_filter_medium simrad_noise_filter_strong”).
|short :flag_values | |List of unique values (e.g. 0, 1, 3, 4) that indicate different non-quantitative processing settings that could be present in the sonar data. Must have the same number of values as settings given in the flag_meanings attribute.
|:long_name = "Presence or not of non-quantitative processing applied to the backscattering data (sonar specific)" | |
| | |
|float receiver_sensitivity(ping_time, beam) |MA |Sensitivity of the sonar receiver for the current ping. Necessary for type 2 conversion equation.
|:long_name = "Receiver sensitivity" | |
|:units = "dB re 1/μ" | |
| | |
|float sample_interval(ping_time) |M |Time between individual samples along a beam. Common for all beams in a ping.
|:long_name = "Interval between recorded raw data samples" | |
|:units = "s" | |
|float :valid_min = 0.0 | |
| | |
|float sample_time_offset(ping_time, tx_beam) |M |Time offset applied to sample time-stamps and intended for applying a range correction (e.g. as caused by signal processing delays). Positive values reduce the calculated range to a sample. The range of a given sample at index sample_index and if a constant sound speed is applied is given by range= sound_speed_at_transducer*(blanking_interval+sample_index*sample_interval - sample_time_offset)/2
|:long_name = "Time offset that is subtracted from the timestamp of each sample" | |
|:units = "s" | |
| | |
|float blanking_interval(ping_time, beam) |M |Amount of time during reception where samples are discarded. The number of discarded sample is given by blanking_interval*sample_interval.
|:long_name = "Amount of time during reception where samples are discarded" | |
|:units = "s" | |
|:valid_min = "0.0" | |
| | |
|sample_t time_varied_gain(ping_time) |MA |Time-varied gain (TVG) used for each ping. Should contain TVG coefficient vectors. Necessary for type 2 conversion equations.
|:long_name = "Time-varied-gain coefficients" | |
|:units = "dB" | |
| | |
|float transducer_gain(ping_time, beam) |MA |Gain of the transducer beam. This is the parameter that is set from a calibration exercise. Necessary for conversion equation type 1.
|:long_name = "Gain of transducer" | |
|:units = "dB" | |
| | |
|float transmit_bandwidth(ping_time, tx_beam) |O |Estimated bandwidth of the transmitted pulse. For CW pulses, this is a function of the pulse duration and frequency. For FM pulses, this will be close to the difference between transmit_frequency_start and transmit_frequency_stop.
|:long_name = "Nominal bandwidth of transmitted pulse" | |
|:units = "Hz" | |
|float :valid_min = 0.0 | |
| | |
|float transmit_duration_equivalent(ping_time, tx_beam) |MA |Equivalent duration of the transmit pulse. This is the square pulse containing the same energy as the actual transmitted pulse. Necessary for both type 1 and 2 conversion equations.
|:long_name = "Equivalent duration of transmitted pulse" | |
|:units = "s" | |
|float :valid_min = 0.0 | |
| | |
|float transmit_duration_nominal(ping_time, tx_beam) |M |Nominal duration of the transmit pulse. This is not the equivalent pulse duration.
|:long_name = "Nominal duration of transmitted pulse" | |
|:units = "s" | |
|float :valid_min = 0.0 | |
| | |
|float transmit_frequency_start(ping_time, tx_beam) |M |Frequency at the start of the transmit pulse. The beam dimension can be omitted, in which case the value apples to all beams in the ping.
|:long_name = "Start frequency in transmitted pulse" | |
|:standard_name = "sound_frequency" | |
|:units = "Hz" | |
|float :valid_min = 0.0 | |
| | |
|float transmit_frequency_stop(ping_time, tx_beam) |M |Frequency at the end of the transmit pulse. The beam dimension can be omitted, in which case the value apples to all beams in the ping.
|:long_name = "Stop frequency in transmitted pulse" | |
|:standard_name = "sound_frequency" | |
|:units = "Hz" | |
|float :valid_min = 0.0 | |
| | |
|float transmit_power(ping_time, tx_beam) |MA |Electrical transmit power used for the ping. Necessary for type 1 conversion equations
|:long_name = "Nominal transmit power" | |
|:units = "W" | |
|float :valid_min = 0.0 | |
| | |
|float transmit_source_level(ping_time, tx_beam) |MA |Source level generated by the transmit ping. Necessary for type 2 conversion equations.
|:long_name = "Transmit source level" | |
|:units = "dB re 1 μPa at 1m" | |
| | |
|transmit_t transmit_type(ping_time) |M |Type of transmit pulse.
|:long_name = "Type of transmitted pulse" | |
| | |
|int receive_transducer_index(ping_time, beam) |MA |Receiving or monostatic transducer index associated with the given beam
|:valid_min = "0" | |
|:long_name = "Receive transducer index" | |
| | |
|int active_MRU(ping_time) |MA |Indicate the index of the MRU sensor used at the time of the ping to compute the platform attitude.
|:valid_min = "0" | |
|:long_name = "Active MRU sensor index" | |
| | |
|int active_position_sensor(ping_time) |MA |Indicate the index of the position sensor used at the time of the ping to compute the platform position.
|:valid_min = "0" | |
|:long_name = "Active position sensor index" | |
| | |
|int ping(ping_time) |M |raw ping counter, can be identical for several swath and rewinded to zero, match the ping number given by the constructor (can be rewinded to zero by the sensor)
|:long_name = "raw ping counter as given by the constructor" | |
| | |
|float sound_speed_at_transducer(ping_time) |O |Sound speed at transducer depth at the time of the ping
|:long_name = "Indicative sound speed at ping time and transducer depth" | |
|:units = "m/s" | |
|float :valid_min = 0.0 | |
|:standard_name = "speed_of_sound_in_sea_water" | |
| | |
|double platform_latitude(ping_time) |M |Latitude of the platform reference point in WGS-84 reference system at the time of the ping.
|double :valid_range = −90.0, 90.0 | |
|:standard_name = "Platform latitude" | |
|:units = "degrees_north" | |
|:long_name = "latitude" | |
|double :_FillValue = Double.NaN | |
| | |
|double platform_longitude(ping_time) |M |Longitude of the platform reference point in WGS-84 reference system at the time of the ping.
|double :valid_range = −180.0, 180.0 | |
|:standard_name = "Platform longitude" | |
|:units = "degrees_east" | |
|:long_name = "longitude" | |
|double :_FillValue = Double.NaN | |
| | |
|float platform_heading(ping_time) |M |Heading of the platform at time of the ping.
|:standard_name = "platform_orientation" | |
|:units = "degrees_north" | |
|:long_name = "Platform heading(true)" | |
|float :valid_range = 0, 360.0 | |
| | |
|float platform_pitch(ping_time) |M |Platform pitch at the time of the ping.
|:crs = "VCS" | |
|:standard_name = "platform_pitch_angle" | |
|:units = "arc_degree" | |
|:long_name = "pitch angle" | |
|float :valid_range = −90.0, 90.0 | |
| | |
|float platform_roll(ping_time) |M |Platform roll at the time of the ping.
|:crs = "VCS" | |
|:standard_name = "platform_roll_angle" | |
|:units = "arc_degree" | |
|:long_name = "roll angle" | |
| | |
|float platform_vertical_offset(ping_time) |M |Distance from the platform reference point to the water line (distance are positives downwards). For ships and similar, this is called heave, but the concept applies equally well to underwater vehicle depth.
|:long_name = "Platform vertical distance from reference point to the water line" | |
|:units = "m" | |
| | |
|float tx_transducer_depth(ping_time) |O |Tx transducer depth below waterline at time of the ping (distance are positives downwards). This variable can be recomputed in most cases by applying lever arm and rotation matrix taking into account for roll and pitch, platform_vertical_offset but can also take into account for drop keel position
|:long_name = "Tx transducer depth below waterline" | |
|:units = "m" | |
| | |
|float waterline_to_chart_datum(ping_time) |O |Vertical translation vector at the time of the ping matching the distance from the water line to the chart data reference (typically Lowest Astronomical Tide or Mean Sea Level). This variable is the vector obtains by adding the tide, the dynamic draught at the time of the ping and allow to position samples in an absolute referential.
|:long_name = "vertical translation from waterline to chart datum reference " | |
|:units = "m" | |
|:vertical_coordinate_reference_system = "MSL depth" | |The vertical datum to which distance are referred to. Possible values are 'MSL Depth' or 'LAT Depth'
| | |
|short beam_sector(ping_time, beam) |O |sector associated with the given beam
|:long_name = "sector associated with the given beam" | |
|:valid_min = "0" | |
|==============================================================================================================================================================================================================
|==============================================================================================================================================================================================================
|Description |Obligation |Comment
|Group attributes | |
|string :Conventions = "CF-1.7, SONAR-netCDF4-1.1, ACDD-1.3" |M |A comma-separated list of the conventions followed in the file. Include the SONAR-netCDF4 convention and version (e.g. ”SONAR-netCDF4-1.1”) and the relevant CF and ACDD conventions (e.g. ”CF-1.7” and ”ACDD-1.3”).
|string :date_created |M |Timestamp of file creation in ISO8601:2004 extended format, including the time zone (e.g. 2017-05-06T20:21:35Z).
|string :keywords |M |A comma-separated list of key words and/or phrases. For direct sonar-generated files, this should at least include the type of sonar.
|string :license |O |Either enter the URL to a standard or specific license, enter “Freely distributed” or “None”, or describe any restrictions to data access and distribution in free text.
|string :rights |O |Description of the usage rights of data in the file.
|string :sonar_convention_authority = "ICES" |M |Name of the organization managing and distributing the SONAR-netCDF4 convention. Currently ICES.
|string :sonar_convention_name = "SONAR-netCDF4" |M |Formal name of this convention (i.e. ”SONAR-netCDF4”).
|string :sonar_convention_version = "1.1" |M |SONAR-netCDF4 version number in the form “major.minor”, where major and minor are non-negative integers.
|string :summary |M |A paragraph describing the dataset, analogous to an abstract for a paper. For direct sonar-generated files, this can be blank.
|string :title |M |A short phrase or sentence describing the dataset. For direct sonar-generated files, this can be as simple as "Files generated by the XYZ sonar".
|string :institution |M |The name of the institution principally responsible for originating this data. This attribute is recommended by the CF convention.
|string :xsf_convention_version = "0.1" |M |version number in the form “major.minor”, where major and minor are non-negative integers.
|string :source |M |The method of production of the original data. If it was model-generated, source should name the model and its version. If it is observational, source should characterize it. This attribute is defined in the CF Conventions. Examples: 'temperature from CTD #1234'; 'world model v.0.1'.
|string :date_modified |O |The date on which the data was last modified. Note that this applies just to the data, not the metadata. The ISO 8601:2004 extended date format is recommended, as described in the Attributes Content Guidance section.
|Variables | |
|double crs |O | A container variable storing information about the grid_mapping. All the attributes within a grid_mapping variable are described in http://cfconventions.org/Data/cf-conventions/cf-conventions-1.6/build/cf-conventions.html#grid-mappings-and-projections. For all the measurements based on WSG84, the default coordinate system used for GPS measurements, the values shown here should be used.
|:grid_mapping_name = "latitude_longitude" | |
|:epsg_code = "EPSG:4326" | |
|:semi_major_axis = "6378137.0d" | |
|:inverse_flattening  = "298.257223563d" | |
|double :_FillValue = Double.NaN | |
|==============================================================================================================================================================================================================
This diff is collapsed.
......@@ -72,10 +72,14 @@ public class AsciiDoctorGenerator {
}
static String CamelCase(String name)
{
if(name.length()==0) return name;
return name.substring(0, 1).toUpperCase()+name.substring(1);
}
private String computeAdocName(Group group)
{
if(group.getName().length()==0) return "tableTopLevel.adoc";
if(group.getName().compareTo("Beam_group1")==0) return "tableBeamGroup1.adoc";
return "table"+CamelCase(group.getName())+".adoc";
}
private File computeFileName(File outputDir, Group group )
......@@ -90,7 +94,8 @@ public class AsciiDoctorGenerator {
// Create a Sheet
// Write Group name
writeLine(level+ " " +group.getName() +" (" +path +"/"+group.getName()+ ")",context.globalOutput);
String str=level+ " " +group.getName() +" (" +path +"/"+group.getName()+ ")";
writeLine(str.replace("//", "/"),context.globalOutput);
creturn(context.globalOutput);
// Write group description
......@@ -109,7 +114,6 @@ public class AsciiDoctorGenerator {
endTable(context);
}
for (Group subgroup : group.getSubGroups()) {
writeGroup(level,path+"/"+ group.getName(), subgroup, context);
}
}
......@@ -132,6 +136,8 @@ public class AsciiDoctorGenerator {
for(Dimension v:dims)
{
String value = v.getName();
if(v.value!=null && v.value.length()>0)
value=value+" = "+v.value;
writeTableLine(value, v.getObligation(), v.getComment(), context);
}
creturn(context.currentOutput);
......@@ -146,7 +152,17 @@ public class AsciiDoctorGenerator {
String value = v.getType()!=null ? v.getType()+" ":"";
value+=":";
value+=v.getName();
//assume a string type
if(v.getType()==null|| v.getType().compareToIgnoreCase("string")==0)
{
if(v.getValue()!=null)
{
//on utilise des espace insécables pour se conformer à la doc WCFAST
value+="\u00A0=\u00A0\"";
value+=v.getValue().replace("+", "+\r\n");
value+="\"";
}
}
writeTableLine(value, v.getObligation(), v.getComment(), context);
}
......
......@@ -38,7 +38,7 @@ public class PythonSourceCodeGenerator {
Files.createDirectories(outputDir.toPath());
Path outputFolder=outputDir.toPath();
Files.write(outputFolder.resolve(Paths.get("XSFConstants.py")),
SCGroupAdapter.getPythonSourceCode(group,"","/"));
SCGroupAdapter.getPythonSourceCode(group,"",""));
}
}
package fr.ifremer.fr.xsf.generator.model;
public class Dimension extends Base {
public Dimension(String name, String description, String comment, String obligation) {
public final String value;
public Dimension(String name, String description, String comment, String obligation,String value) {
super(name, description, comment, obligation);
this.value=value;
}
......
......@@ -16,9 +16,11 @@ public class SCGroupAdapter {
/** @return class name **/
public static String getClassName(Group group) {
String className = StringUtils.deleteWhitespace(WordUtils.capitalizeFully(group.name.replace("_", " ")));
if(className.isEmpty())
className="Root";
if (!className.endsWith("Group"))
className += "Grp";
return className;
}
/**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment