Using my old import-csv.conf file (attached), I get the following error:

sudo weectl import --import-config=/home/piToad/Documents/csv-import.conf 
--dry-runUsing configuration file /etc/weewx/weewx.conf
This is a dry run. Nothing will actually be done.
Starting weectl import...
**** Unknown units 'unix-epoch' specified for field 'dateTime' in 
/home/piToad/Documents/csv-import.conf.
**** Nothing done, exiting.

On Sunday, April 21, 2024 at 12:27:22 PM UTC-4 tarob...@gmail.com wrote:

> Hello,
>
> I am trying to import some missing data via CSV file. I've done this 
> numerous times pre weewx 5.0 and weectl (using wee_import). I've setup a 
> new import config file using the new layout for [[FieldMap]]. I've attached 
> the import config I used. However, during the --dry-run I am getting the 
> below error. I've attached the config file.
>
> Column Headings: 
> ['Timestamp','d5n1Temp', 'd5n1humid', 'd5n1Pres', 'rain5n1', 
> 'windSpeed5n1',
>        'windAvg', 'windDir', 'UV', 'luminosity', 'd5n1Humid', 'rain',
>        'windSpeed', 'inTemp', 'inHumid', 'LiTemp', 'LiHumid', 'LiStrikes',
>        'LiDistance', 'LiPres', 'GTemp', 'GHumid', 'radiation']
>
> It's a source_field error but can't figure out which source_field is 
> giving the error. I've looked them over but could be missing one.
>
> sudo weectl import 
> --import-config=/home/piToad/Documents/csv-import-weectl.conf --dry-run
> Using configuration file /etc/weewx/weewx.conf
> This is a dry run. Nothing will actually be done.
> Starting weectl import...
> Traceback (most recent call last):
>   File "/usr/share/weewx/weectl.py", line 74, in <module>
>     main()
>   File "/usr/share/weewx/weectl.py", line 66, in main
>     namespace.func(namespace)
>   File "/usr/share/weewx/weectllib/__init__.py", line 121, in dispatch
>     namespace.action_func(config_dict, namespace)
>   File "/usr/share/weewx/weectllib/import_cmd.py", line 82, in import_func
>     weectllib.import_actions.obs_import(config_dict,
>   File "/usr/share/weewx/weectllib/import_actions.py", line 54, in 
> obs_import
>     source_obj = 
> weeimport.weeimport.Source.source_factory(config_dict['config_path'],
>                 
>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/usr/share/weewx/weeimport/weeimport.py", line 316, in 
> source_factory
>     return get_object(module_class)(config_path,
>            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/usr/share/weewx/weeimport/csvimport.py", line 110, in __init__
>     self.map = self.parse_map(_map,
>                ^^^^^^^^^^^^^^^^^^^^
>   File "/usr/share/weewx/weeimport/weeimport.py", line 551, in parse_map
>     _mapped_source_fields = [config['source_field'] for field, config in 
> _map.items()]
>                             
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/usr/share/weewx/weeimport/weeimport.py", line 551, in <listcomp>
>     _mapped_source_fields = [config['source_field'] for field, config in 
> _map.items()]
>                              ~~~~~~^^^^^^^^^^^^^^^^
>   File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, 
> in __getitem__
>     val = dict.__getitem__(self, key)
>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> KeyError: 'source_field'
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/3ae8edb0-9438-423e-9342-1b6c95735f0an%40googlegroups.com.
# EXAMPLE CONFIGURATION FILE FOR IMPORTING FROM CSV FILES
#
# Copyright (c) 2009-2019 Tom Keffer <tkef...@gmail.com> and Gary Roderick.
# See the file LICENSE.txt for your rights.

##############################################################################

# Specify the source. Available options are:
#   CSV - import obs from a single CSV format file
#   WU - import obs from a Weather Underground PWS history
#   Cumulus - import obs from a one or more Cumulus monthly log files
#   WD - import obs from a one or more WD monthly log files
# Format is:
#   source = (CSV | WU | Cumulus)
source = CSV

##############################################################################

[CSV]
    # Parameters used when importing from a CSV file

    # Path and name of our CSV source file. Format is:
    #   file = full path and filename
    file = /var/tmp/dataCorrection.csv

    # The character used to separate fields. Format is:
    #   delimiter = <single character>
    # Default is , (comma).
    delimiter = ','

    # If there is no mapped interval field how will the interval field be
    # determined for the imported records. Available options are:
    #   derive - Derive the interval field from the timestamp of successive
    #            records. This setting is best used when the imported records
    #            are equally spaced in time and there are no missing records.
    #   conf   - Use the interval setting from weewx.conf. This setting is
    #            best used if the records to be imported have been produced by
    #            WeeWX using the same archive interval as set in weewx.conf on
    #            this machine.
    #   x      - Use a fixed interval of x minutes for every record. This
    #            setting is best used if the records to be imported are
    #            equally based in time but there are some missing records.
    #
    # Note: If there is a mapped interval field then this setting will be
    #       ignored.
    # Format is:
    #   interval = (derive | conf | x)
    interval = 5

    # Should the [StdQC] max/min limits in weewx.conf be applied to the
    # imported data. This may be useful if the source has extreme values that
    # are clearly incorrect for some observations. Available options are:
    #   True  - weewx.conf [StdQC] max/min limits are applied.
    #   False - weewx.conf [StdQC] max/min limits are not applied.
    # Format is:
    #   qc = (True | False)
    qc = True

    # Should any missing derived observations be calculated from the imported
    # data if possible. Available options are:
    #   True  - Any missing derived observations are calculated.
    #   False - Any missing derived observations are not calculated.
    # Format is:
    #   calc_missing = (True | False)
    calc_missing = True

    # Specify how imported data fields that contain invalid data (eg a numeric
    # field containing non-numeric data) are handled. Available options are:
    #   True  - The invalid data is ignored, the WeeWX target field is set to
    #           None and the import continues.
    #   False - The import is halted.
    # Format is:
    #   ignore_invalid_data = (True | False)
    # Default is True.
    ignore_invalid_data = True

    # Imported records are written to archive in transactions of tranche
    # records at a time. Increase for faster throughput, decrease to reduce
    # memory requirements. Format is:
    #   tranche = x
    # where x is an integer
    tranche = 250

    # Specify whether a UV sensor was used to produce any UV observations.
    # Available options are:
    #   True  - UV sensor was used and UV data will be imported.
    #   False - UV sensor was not used and any UV data will not be imported.
    #           UV fields will be set to None/NULL.
    # For a CSV import UV_sensor should be set to False if a UV sensor was
    # NOT present when the import data was created. Otherwise it may be set to
    # True or omitted. Format is:
    #   UV_sensor = (True | False)
    UV_sensor = True

    # Specify whether a solar radiation sensor was used to produce any solar
    # radiation observations. Available options are:
    #   True  - Solar radiation sensor was used and solar radiation data will
    #           be imported.
    #   False - Solar radiation sensor was not used and any solar radiation
    #           data will not be imported. radiation fields will be set to
    #           None/NULL.
    # For a CSV import solar_sensor should be set to False if a solar radiation
    # sensor was NOT present when the import data was created. Otherwise it may
    # be set to True or omitted. Format is:
    #   solar_sensor = (True | False)
    solar_sensor = True

    # Date-time format of CSV field from which the WeeWX archive record
    # dateTime field is to be extracted. wee_import first attempts to interpret
    # date/time info in this format, if this fails it then attempts to
    # interpret it as a timestamp and if this fails it then raises an error.
    # Uses Python strptime() format codes.
    # raw_datetime_format = Python strptime() format string
    raw_datetime_format = %Y-%m-%d %H:%M:%S

    # Does the imported rain field represent the total rainfall since the last
    # record or a cumulative value. Available options are:
    #   discrete   - rain field represents total rainfall since last record
    #   cumulative - rain field represents a cumulative rainfall reset at
    #                midnight
    # rain = (discrete | cumulative)
    rain = cumulative

    # Lower and upper bounds for imported wind direction. It is possible,
    # particularly for a calculated direction, to have a value (eg -45) outside
    # of the WeeWX limits (0 to 360 inclusive). Format is:
    #
    # wind_direction = lower,upper
    #
    # where :
    #   lower is the lower limit of acceptable wind direction in degrees
    #   (may be negative)
    #   upper is the upper limit of acceptable wind direction in degrees
    #
    # Imported values from lower to upper will be normalised to the range 0 to
    # 360. Values outside of the parameter range will be stored as None.
    # Default is -360,360.
    wind_direction = -360,360

    # Map CSV record fields to WeeWX archive fields. Format is:
    #
    #   weewx_archive_field_name = csv_field_name, weewx_unit_name
    #
    # where:
    #   weewx_archive_field_name - An observation name in the WeeWX database
    #                              schema.
    #   csv_field_name           - The name of a field from the CSV file.
    #   weewx_unit_name          - The name of the units, as defined in WeeWX,
    #                              used by csv_field_name. wee_import will do
    #                              the necessary conversions to the unit system
    #                              used by the WeeWX archive.
    # For example,
    #   outTemp = Temp, degree_C
    # would map the CSV field Temp, in degrees C, to the archive field outTemp.
    #
    # A mapping for WeeWX field dateTime is mandatory and the WeeWX unit name
    # for the dateTime mapping must be unix_epoch. For example,
    #   dateTime = csv_date_and_time, unix_epoch
    # would map the CSV field csv_date_and_time to the WeeWX dateTime field with
    # the csv_date_and_time field being interpreted first using the format
    # specified at the raw_datetime_format config option and if that fails as a
    # unix epoch timestamp.
    #
    # Field mapping to the WeeWX usUnits archive field is currently not
    # supported. If a usUnits field exists in the CSV data it should not be
    # mapped, rather WeeWX unit names should included against each field to be
    # imported in the field map.
    #
    # WeeWX archive fields that do not exist in the CSV data may be omitted.
    # Any omitted fields that are derived (eg dewpoint) may be calculated
    # during import using the equivalent of the WeeWX StdWXCalculate service
    # through setting the calc-missing parameter above.
    [[FieldMap]]
        dateTime    = Timestamp, unix-epoch
        interval    =
        barometer   = d5n1Pres, inHg
        pressure    =
        altimeter   =
        inTemp      = inTemp, degree_F
        outTemp     = d5n1Temp, degree_F
        inHumidity  = inHumid, percent
        outHumidity = d5n1humid, percent
        windSpeed   = windAvg, mile_per_hour
        windDir     = windDir, degree_compass
        windGust    = windSpeed, mile_per_hour
        windGustDir = 
        rainRate    = 
        rain        = rain, inch
        dewpoint    =
        windchill   =
        heatindex   =
        ET          =
        radiation   = radiation, watt_per_meter_squared
        UV          = UV, uv_index
        luminosity  = group_illuminance, lux
        extraTemp1 = extraTemp1, degree_F
        extraHumid1 = extraHumid1, percent
        extraTemp2 = LiTemp, degree_F
        extraHumid2 = LiHumid, percent
        lightning_distance = LiDistance, mile
        strikes_total =

Reply via email to