weewxd --version && lsb_release -a && uname -a

4.1.1
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
Linux pi2.fu110.de 5.4.51-v7+ #1325 SMP Mon Jul 13 13:41:25 BST 2020 armv7l 
GNU/Linux


Am Mittwoch, 22. Juli 2020 10:58:58 UTC+2 schrieb David Schulz:
>
> Hello,
>
> i have a question about file import via csv.
>
> My config looks like this:
>
> cat import_csv.conf
>
> # EXAMPLE CONFIGURATION FILE FOR IMPORTING FROM CSV FILES
> #
> # Copyright (c) 2009-2019 Tom Keffer <x> 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 = /daten/dl/99/2019.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 = derive
>
>     # 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 = false
>
>     # 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 = false
>
>     # 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
>
>     # 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 = date, unix_epoch
>         outTemp = tavg, degree_C
>         dayrain = prcp, mm
>         windDir = wdir, degree_compass
>         windSpeed = wspd, km_per_hour
>         barometer = pres, hPa
>
>
> And my csv like this:
>
> cat 2019.csv
> date,tavg,tmin,tmax,prcp,snow,wdir,wspd,wpgt,pres,tsun
> 2019-01-01,6.3,2.7,7.9,3.7,0,265,24,,1018.3,18
> 2019-01-02,1.4,-2.2,3.3,0.7,0,308,20,,1023,60
> 2019-01-03,-1.3,-5,1.2,0.2,0,302,13,,1032.1,1
> 2019-01-04,0.2,-5.3,3.9,3.3,0,263,14,,1028.1,0
> 2019-01-05,5.4,1.7,7.5,1.1,0,289,16,,1019.4,12
>
> But i can't import the data, i get an error message.
>
> wee_import --dry-run --verbose 
> --import-config=/daten/dl/99/import_csv.conf --from=2019-01-01 
> --to=2019-12-31
>
> Using WeeWX configuration file /etc/weewx/weewx.conf
> Starting wee_import...
> A CSV import from source file '/daten/dl/99/2019.csv' has been requested.
> The following options will be used:
>      config=/etc/weewx/weewx.conf, 
> import-config=/daten/dl/99/import_csv.conf
>      source=/daten/dl/99/2019.csv, from=2019-01-01, to=2019-12-31
>      dry-run=True, calc_missing=True, ignore_invalid_data=True
>      tranche=250, interval=derive, date/time_string_format=%Y-%m-%d
>      delimiter='[]', rain=cumulative, wind_direction=[-360.0, 360.0]
>      UV=False, radiation=False
> Using database binding 'wx_binding', which is bound to database 'weewx.sdb'
> Destination table 'archive' unit system is '0x01' (US).
> Missing derived observations will be calculated.
> All WeeWX UV fields will be set to None.
> All WeeWX radiation fields will be set to None.
> Observations timestamped after 2019-01-01 00:00:00 CET (1546297200) and up 
> to and
> including 2020-01-01 00:00:00 CET (1577833200) will be imported.
> This is a dry run, imported data will not be saved to archive.
> Starting dry run import ...
> Obtaining raw import data for period 1 ...
> Traceback (most recent call last):
>   File "/usr/share/weewx/wee_import", line 900, in <module>
>     main()
>   File "/usr/share/weewx/wee_import", line 830, in main
>     source_obj.run()
>   File "/usr/share/weewx/weeimport/weeimport.py", line 368, in run
>     _raw_data = self.getRawData(period)
>   File "/usr/share/weewx/weeimport/csvimport.py", line 225, in getRawData
>     _csv_reader = csv.DictReader(_clean_data, delimiter=self.delimiter)
>   File "/usr/lib/python3.7/csv.py", line 87, in __init__
>     self.reader = reader(f, dialect, *args, **kwds)
> TypeError: "delimiter" must be a 1-character string
>
>
> Why can I not import the data? Is it perhaps because there is only the 
> date without time?
>
>

-- 
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/79ad81d3-1fd4-4866-bcac-23766e0ac985o%40googlegroups.com.

Reply via email to