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.