Class DataChannelBAStVV2007
- java.lang.Object
-
- de.inovat.kex.bast.exporter.FileDataChannel
-
- de.inovat.kex.bast.exporter.AbstractDataChannelBASt
-
- de.inovat.kex.bast.exporter.DataChannelBAStVV2007
-
- All Implemented Interfaces:
ResultDataChannel
public class DataChannelBAStVV2007 extends AbstractDataChannelBASt
Channel zur Ausgabe von Verkehrsmengen und Geschwindigkeitsdaten in das BASt-Bestandsbandformat für Geschwindigkeitsdaten in der Version 2007.
BASt-FORMATVORGABE FÜR GESCHWINDIGKEITSDATEN VERSION 2007
Dokument V6z F1100.6606002
Herausgegeben von der Bundesanstalt für Straßenwesen
15. November 2007
A. Fitschen und N. FaerberDie zur Verarbeitung benötigten Daten werden nur an ausgewählten Zählstellen erhoben und in einer speziellen TLS-Datenversion bereitgestellt. Da für die Geschwindigkeitsdaten keine Folgeverarbeitung definiert und implementiert ist (die Daten werden nur für die BASt erfasst), müssen die zu verarbeitenden Daten mit der Attributgruppe für die TLS-Datenversion 24 atg.tlsLveErgebnisMeldungVersion24 und Aspekt asp.tlsAntwort übergeben werden.
Aufbau des Dateinamens:
Der Dateiname enthält Informationen zum Bundesland, zur Zählstelle, zur Datenart und über den Erfassungszeitraum.
In der Regel besteht der Dateiname aus 11 Stellen und einem dreistelligen Suffix (z.B.: NW5033v0307.dat).
Ändert sich die Datenstruktur im Jahresverlauf z. B. durch Umstellung von zwei auf drei Fahrstreifen, so ist dieses durch einen Eintrag an zwölfter und dreizehnter Stelle des Namens kenntlich zu machen z. B. durch _1 ( NW5033v0308_1.dat). Alle weiteren Dateien des Jahres behalten dann diese Versionskennung bei. Die Dateinamen des nachfolgenden Jahres sind wieder ohne Versionskennung zu vergeben. Der Erfassungszeitraum nach der Kennung v (Datenart: Geschwindigkeiten) enthält in den ersten beiden Stellen das Jahr und in den beiden Folgenden den Monat des betreffenden Jahres.Bezeichnung der Dateien am Beispiel von "NW5033v0308_1.dat":
Position 1-2 3-6 7 8-9 10-11 12-13 . Suffix 1-3 Beschreibung Bundesland: Zählstellen- Datenart Jahr Monats- Version Kürzel nummer Geschwindigkeiten (yy) Code (optional) Beispiel NW 5033 v 03 08 _1 . dat
Einschränkung: Mit dem
DataChannelBAStVV2007
kann nur der Standard-Dateiname erzeugt werden, da historische Konfigurationsdaten nicht ausgewertet werden. Bei der Übergabe an die BASt müssen die entsprechenden Suffixe durch den Bearbeiter manuell angehängt werden.MESZ/MEZ Umstellung:
An Position 7 der Stundendatensätze steht die einzige Statuskennung im Datensatz. Die Statuskennung "m" ist bei der Zeitumstellung auf MESZ (letzter Sonntag im März) zu vergeben. Pro Richtung wird ein Datensatz eingefügt, dessen Werte auf "0" gesetzt sind. Die Statuskennung "o" ist bei der Umstellung auf MEZ (letzter Sonntag im Oktober) zu vergeben. Die Werte dieser dritten Stunde sind aus der doppelten dritten Stunde zu berechnen. Dazu sind die Verkehrsmengen über beide Stunden zu addieren und die Geschwindigkeitskenngrößen vm, svm, v15 und v85 aus den Daten beider Stunden zu ermitteln. Alle anderen Stundendatensätze enthalten an Position 7 ein Leerzeichen " ".Geschwindigkeiten 'nicht ermittelbar'
Gemäß ergänzender Vorgabe der BASt (EMail vom 01.09.2009 an Logos) sind fehlende Geschwindigkeiten bzw. implausible Mengen in den Fahrzeugklassen so zu behandeln als lägen für eine Stunde keine Daten vor, d.h. auch in diesen Fällen besteht die Datenzeile nur aus dem Zeilenheader (14 Zeichen).
-
-
Field Summary
Fields Modifier and Type Field Description protected int
_FSCountGgRichtung
Anzahl Fahrstreifen in Gegen-Richtung (Richtung 2)protected int
_FSCountInRichtung
Anzahl Fahrstreifen in In-Richtung (Richtung 1)protected de.bsvrz.dav.daf.main.Dataset[]
_LastArrayAtTime
Zähldaten der letzten (verarbeiteten) Stunde, um bei Wechsel von MESZ---MEZ die zwei 2°°Uhr Stunden addieren zu könnenprotected static java.text.SimpleDateFormat
DATE_FORMAT
Datumformat für Datenzeilenprotected static int
KEIN_WERT_255
Kennung für einen nicht ermittelbaren Wert (8Bit) gemäß TLS.protected static double
KEIN_WERT_6553_5
Kennung für einen nicht ermittelbaren Wert (16Bit mit Skalierung 0.1).protected static int
KEIN_WERT_65535
Kennung für einen nicht ermittelbaren Wert (16Bit) gemäß TLS: "Lassen sich (z.protected static int
VK_ANZAHL_BPA
Soll-Anzahl Geschwindigkeitsklassen BPAprotected static int
VK_ANZAHL_LV
Soll-Anzahl Geschwindigkeitsklassen LVoprotected static int
VK_ANZAHL_SGV
Soll-Anzahl Geschwindigkeitsklassen SGV-
Fields inherited from class de.inovat.kex.bast.exporter.AbstractDataChannelBASt
_CountOfFS, _LastHour, _ZaehlStelle, MONATE, TWO_DIGIT_FORMAT
-
-
Constructor Summary
Constructors Constructor Description DataChannelBAStVV2007(SendeBAStStatusDaten bastStatusDaten)
erzeugt einen DataChannel, der mit einer reset-Methode und eventuellAbstractDataChannelBASt.setZaehlstelle(LangZeitZaehlStelle)
initialisiert werden muss.
-
Method Summary
Modifier and Type Method Description protected java.lang.String
constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month)
Gibt den Dateinamen für den gewählten Zeitraum zurück.protected java.lang.String
constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.protected java.lang.String
extractData(de.bsvrz.dav.daf.main.Dataset[] rsArray, de.bsvrz.dav.daf.main.Dataset[] rsArrayMEZ, boolean isInRichtung)
Extrahiert die Werte für die angegebene Richtung aus den Dataset und baut einen String mit den Werten für die Ausgabe in die Datei zusammen.protected java.lang.String
getHeaderRow01()
Liefert die 1.protected java.lang.String
getHeaderRow02()
Liefert die 2.protected java.lang.String
getHeaderRow03()
Liefert die 3.protected double
getScaledValueAsDouble(de.bsvrz.dav.daf.main.Data data, java.lang.String itemName)
Prüft, ob das Datum einen gültigen Wert (innerhalb des Wertebereichs liegender Zahlenwert) oder einen speziellen Zustand hat und gibt danach entweder den skalierten Zahlenwert alsdouble
oderDouble.NaN
im Falle eines Zustands zurück.void
processRecord(de.bsvrz.dav.daf.main.Dataset[] rsArrayAtTime, java.util.Calendar calendar)
Erzeugt die BASt-Format-Daten und spooled diese.void
setZaehlstelle(LangZeitZaehlStelle zaehlstelle)
Setzt die zu verarbeitende Zählstelle und initialisiert die zur Verarbeitung benötigten Header- und Richtungsangaben.protected java.lang.String
trim(java.lang.String string, int length)
Formatiert den String linksbündig und füllt bis zur angegebenen Länge mit ' ' auf.protected java.lang.String
trimQ(int value)
Formatiert die Fahrzeugmenge als rechtsbündigen String.protected java.lang.String
trimV15V85(double value)
Formatiert die v15 und v85 Geschwindigkeit rechtsbündig ganzzahlig.protected java.lang.String
trimVmStdabw(double value)
Formatiert die mittlere Geschwindigkeit und deren Standardabweichung rechtsbündig mit einer Nachkommastelle.protected void
writeHeader(java.io.PrintWriter writer)
Schreibt die Headerzeilen 1, 2 und 3 in die Datei.protected void
writeHeaderFTP(java.io.BufferedOutputStream bos)
-
Methods inherited from class de.inovat.kex.bast.exporter.AbstractDataChannelBASt
hasData, reset, reset
-
Methods inherited from class de.inovat.kex.bast.exporter.FileDataChannel
close, deleteLastLine, flush, reset, spool
-
-
-
-
Field Detail
-
KEIN_WERT_255
protected static final int KEIN_WERT_255
Kennung für einen nicht ermittelbaren Wert (8Bit) gemäß TLS.- See Also:
- Constant Field Values
-
KEIN_WERT_65535
protected static final int KEIN_WERT_65535
Kennung für einen nicht ermittelbaren Wert (16Bit) gemäß TLS: "Lassen sich (z. B. aufgrund von Schleifendefekten) einzelne Werte des Blocks nicht ermitteln, ohne dass ein Totalausfall des DE vorliegt, werden die betroffenen Bytes auf den Wert 255 (65535) gesetzt.".
Wird für Geschwindigkeiten und in den Geschwindigkeitsklassen verwendet.- See Also:
- Constant Field Values
-
KEIN_WERT_6553_5
protected static final double KEIN_WERT_6553_5
Kennung für einen nicht ermittelbaren Wert (16Bit mit Skalierung 0.1).- See Also:
- Constant Field Values
-
DATE_FORMAT
protected static final java.text.SimpleDateFormat DATE_FORMAT
Datumformat für Datenzeilen
-
VK_ANZAHL_BPA
protected static final int VK_ANZAHL_BPA
Soll-Anzahl Geschwindigkeitsklassen BPA- See Also:
- Constant Field Values
-
VK_ANZAHL_LV
protected static final int VK_ANZAHL_LV
Soll-Anzahl Geschwindigkeitsklassen LVo- See Also:
- Constant Field Values
-
VK_ANZAHL_SGV
protected static final int VK_ANZAHL_SGV
Soll-Anzahl Geschwindigkeitsklassen SGV- See Also:
- Constant Field Values
-
_LastArrayAtTime
protected de.bsvrz.dav.daf.main.Dataset[] _LastArrayAtTime
Zähldaten der letzten (verarbeiteten) Stunde, um bei Wechsel von MESZ---MEZ die zwei 2°°Uhr Stunden addieren zu können
-
_FSCountGgRichtung
protected int _FSCountGgRichtung
Anzahl Fahrstreifen in Gegen-Richtung (Richtung 2)
-
_FSCountInRichtung
protected int _FSCountInRichtung
Anzahl Fahrstreifen in In-Richtung (Richtung 1)
-
-
Constructor Detail
-
DataChannelBAStVV2007
public DataChannelBAStVV2007(SendeBAStStatusDaten bastStatusDaten)
erzeugt einen DataChannel, der mit einer reset-Methode und eventuellAbstractDataChannelBASt.setZaehlstelle(LangZeitZaehlStelle)
initialisiert werden muss.- Parameters:
bastStatusDaten
- Statusinformationen.
-
-
Method Detail
-
constructFilename
protected java.lang.String constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
Description copied from class:AbstractDataChannelBASt
gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.- Specified by:
constructFilename
in classAbstractDataChannelBASt
- Parameters:
zaehlStelle
- Zählstelle.year
- Jahr.month
- Monat.day
- Tag.- Returns:
- Filename als String.
-
constructFilename
protected java.lang.String constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month)
Gibt den Dateinamen für den gewählten Zeitraum zurück.
Der Aufruf ist in Verbindung mit dem DataChannelBAStVV2007 nur zulässig, wenn ein Monatsbereich angegeben wird.
Gemäß BASt-Vorgabe enthält der Dateiname Informationen zum Bundesland, zur Zählstelle, zur Datenart und über den Erfassungszeitraum. In der Regel besteht der Dateiname aus 11 Stellen und einem dreistelligen Suffix (z.B.: "NW5033v0307.dat").
Der Erfassungszeitraum nach der Kennung "v" (Datenart: Geschwindigkeiten) enthält in den ersten beiden Stellen das Jahr und in den beiden Folgenden den Monat des betreffenden Jahres.
- Specified by:
constructFilename
in classAbstractDataChannelBASt
- Parameters:
zaehlStelle
- Zählstelle.year
- Jahr.month
- Monat.- Returns:
String
vollständig klassifizierter Dateiname- Throws:
java.lang.IllegalArgumentException
- wird ausgelöst, wenn kein Monatsbereich angegeben wird (s.o.)Die Methode wird um die Erzeugung eines Filenamen ohne path erweitert. Diese Erweiterung wird benötigt, wenn die Datei anstelle des lokalen Verzeichnissystems auf den FTP-Server in einem spezfisichen Verzeichnis abgelegt werden soll. Dagmar Rostek (DR) inovat.
-
extractData
protected java.lang.String extractData(de.bsvrz.dav.daf.main.Dataset[] rsArray, de.bsvrz.dav.daf.main.Dataset[] rsArrayMEZ, boolean isInRichtung)
Extrahiert die Werte für die angegebene Richtung aus den Dataset und baut einen String mit den Werten für die Ausgabe in die Datei zusammen. Der String ist ab Position 15 hinter Datum+Kennung+Richtungskennung in die Datenzeile einzufügen (er beginnt mit einem Leerzeichen)!
Die Unterscheidung nach Richtungen kommt daher, dass für jede einzelne Stunde genau zwei Datensätze (Zeilen) erzeugt werden müssen.
Für den Sonderfall bei der Sommerzeitumstellung im Herbst (MESZ---MEZ), müssen die zwei 2°° Uhr Stundendatensätze zusammengefasst werden. Dazu können durch rsArrayMEZ[] die zusätzlichen Daten angegeben werden. Für das Ergebnis sind die Verkehrsmengen über beide Stunden zu addieren und die Geschwindigkeitskenngrößen vm, svm, v15 und v85 aus den Daten beider Stunden zu ermitteln.
- Parameters:
rsArray
- auszugebende Intervalldaten (ATG für TLS-Datenverion 24)rsArrayMEZ
- optionale Angabe für Intervalldaten, die mit denen ausrsArray
zusammenzufassen sind (ist für die 2°° Stunde bei der Sommerzeitumstellung MESZ---MEZ im Oktober vorgesehen)isInRichtung
- Nummer der Fahrtrichtung der die Daten zugeordnet sind (1 = IN-Richtung, 2 = GEGEN-Richtung)- Returns:
- String mit den jeweils rechtsbündig formatierten Werten
-
getHeaderRow01
protected java.lang.String getHeaderRow01()
Liefert die 1. Headerzeile
Der erste Header-Datensatz der Stundenwertedatei enthält eine allgemeine Beschreibung zur Identifizierung und Lage der Dauerzählstelle. Die einzelnen Merkmale stehen linksbündig und sind teilweise durch Leerzeichen voneinander getrennt. Die Satzlänge umfasst genau 67 Stellen.
Position Beschreibung Beispiel 1 - 4 Blatt-Nr. der TK25 4807 5 - 8 Zählstellennummer 5033 9 Leerzeichen 10 - 11 Bundesland: Kennung 05 12 Leerzeichen 13 Straßenklasse A 14 Leerzeichen 15 - 20 Straßennummer und ggf. Buchstabe 3 21 Leerzeichen 22 - 61 Zählstellenname Opladen II 62 Leerzeichen 63 - 66 Versionsnummer der Struktur V2.0 67 Zeilenende ;
- Returns:
String
1. Headerzeile
-
getHeaderRow02
protected java.lang.String getHeaderRow02()
Liefert die 2. Headerzeile
Auch der zweite Header-Datensatz der Stundenwertedatei hat eine feste Satzlänge (168 Zeichen). Der Datensatz enthält Angaben zur Fahrstreifenanzahl und zu den Fern- und Nahzielen der beiden Fahrtrichtungen. Die Merkmale, linksbündig und mit Leerzeichen getrennt, sind wie folgt angeordnet:
Position Beschreibung Beispiel 1 Anzahl der Fahrstreifen in Richtung I 3 2 Leerzeichen 3 Anzahl der Fahrstreifen in Richtung II 3 4 Leerzeichen 5 - 39 Fernziel in Richtung I Oberhausen 40 Leerzeichen 41 - 85 Nahziel in Richtung I AS Solingen 86 Leerzeichen 87 - 121 Fernziel in Richtung II Köln 122 Leerzeichen 123 - 167 Nahziel in Richtung II AS Opladen 168 Zeilenende ;
- Returns:
String
2. Headerzeile
-
getHeaderRow03
protected java.lang.String getHeaderRow03()
Liefert die 3. Headerzeile.
Der dritte Header-Datensatz benennt die Fahrzeuggruppen (FzGr) mit ihren Bezeichnungen und der Anzahl der Geschwindigkeitsklassen. Danach wird die Richtungskennung und die Fahrzeugmenge des Schwerverkehrs aufgeführt. Es folgen die Bezeichnungen fahrzeuggruppenspezifischer Kenngrößen und die Grenzen der Geschwindigkeitsklassen der Fahrzeuggruppen. Die Grenze der niedrigsten Geschwindigkeitsklasse liegt bei 0 km/h, und die höchste Geschwindigkeitsklasse ist nach oben hin unbegrenzt.
Alle Angaben im dritten Header-Datensatz sind linksbündig einzutragen.
Dauerzählstellen, die für die Auswertung von Geschwindigkeitsdaten herangezogen werden, sollten die Fahrzeugarten zu 3 Fahrzeuggruppen zusammenfassen können. In Ausnahmefällen kann in Abstimmung mit der BASt auf die dritte Fahrzeuggruppe BPA (Busse und Pkw mit Anhänger) verzichtet werden.
Hinweis: Im Zusammenspiel mit der TLS Datenversion 24 muss auf keine Fahrzeuggruppe verzichtet werden. Daher ist das Format für 2 Fahrzeuggruppen nicht relevant und wird von der Funktion auch nicht unterstützt!
- Returns:
String
3. Headerzeile für Datenformat mit 3 Fahrzeuggruppen
-
getScaledValueAsDouble
protected double getScaledValueAsDouble(de.bsvrz.dav.daf.main.Data data, java.lang.String itemName)
Prüft, ob das Datum einen gültigen Wert (innerhalb des Wertebereichs liegender Zahlenwert) oder einen speziellen Zustand hat und gibt danach entweder den skalierten Zahlenwert als
double
oderDouble.NaN
im Falle eines Zustands zurück.Die Funktion ist bei Lesen von Geschwindigkeitswerten zu verwenden, bei denen es laut TLS den Zustand "Wert nicht ermittelbar" geben kann. Beim Datentyp 79 triff dies auf folgende Attribute zu:
- mittlere Geschwindigkeit (0..6553,4 km/h, 65535="Wert nicht ermittelbar")
- Standardabweichung (0..6553,4 km/h, 65535="Wert nicht ermittelbar")
- v85 Geschwindigkeit (0..254 km/h, 255="Wert nicht ermittelbar")
- v15 Geschwindigkeit (0..254 km/h, 255="Wert nicht ermittelbar")
- Parameters:
data
- Data.itemName
- Item Name.- Returns:
- Double.NaN wenn kein gültiger Wert vorliegt oder sich der skalierte Wert nicht innerhalb des Wertebereichs befindet, ansonsten der skalierte Wert als double
-
processRecord
public void processRecord(de.bsvrz.dav.daf.main.Dataset[] rsArrayAtTime, java.util.Calendar calendar) throws ChannelException
Erzeugt die BASt-Format-Daten und spooled diese.
Die übergebenen Daten müssen vom Typ atg.tlsLveErgebnisMeldungVersion24 sein und vor dem ersten Aufruf muss der Channel vollständig initialisiert werden.
Die BASt-Datei beginnt mit 3 Headerzeilen.
Nach dem dritten Header-Datensatz folgen die einzelnen Stundendatensätze. Dabei werden für jede einzelne Stunde genau zwei Datensätze (Zeilen) erzeugt, für jede Fahrtrichtung einen. Die Länge der Datensätze ist von der Anzahl der Fahrstreifen und der Fahrzeuggruppen abhängig.
Die ersten 6 Positionen enthalten das Datum (Pos. 1-6, Format: yymmdd). Nach einer Statuskennung für MESZ/MEZ folgt die Stunde (Pos. 8-12, Format: hh:mm, beginnend mit 01:00). Ein Leerzeichen an Position 13 trennt die Richtungskennung (1 bzw. 2) ab. Alle weiteren Angaben sind ebenfalls durch Leerzeichen voneinander getrennt.
Es folgen für den ersten (rechten) Fahrstreifen der Richtung die Fahrzeugmenge des Schwerverkehrs qSV und anschließend fahrzeuggruppenbezogen die Fahrzeugmenge qGr der Fahrzeuggruppe 1, die mittlere Geschwindigkeit vm dieser Fahrzeuggruppe auf eine Nachkommastelle gerundet mit , als Trennzeichen (nicht mit dem amerikanischen Dezimalzeichen .) und die zugehörige Standardabweichung svm, ebenfalls auf eine Nachkommastelle gerundet mit , als Trennzeichen sowie die v15 und v85. Anschließend werden die Verkehrsmengen jeder Geschwindigkeitsklasse der ersten Fahrzeuggruppe angegeben.
Eine analoge Auflistung für den rechten Fahrstreifen erfolgt für die Fahrzeuggruppe 2 und, falls eine dritte Fahrzeuggruppe erfasst wird, auch für sie. Die Werte für weitere Fahrstreifen dieser Richtung sind von außen zur Fahrbahnmitte anzugeben.
Liegen für eine Stunde keine Daten vor, so bestehen die beiden Datenzeilen lediglich aus Datum, Statuskennung, Stunde und Richtungskennung (Länge: 14 Zeichen). [Anmerkung: auch fehlende Fahrzeugraster werden wie Datenausfälle behandelt, sieheDataChannelBAStVV2007(de.inovat.kex.bast.SendeBAStStatusDaten)
].
Die Angaben in den Stundendatensätzen sind im Gegensatz zu den drei Header- Datensätzen rechtsbündig ausgerichtet.- Parameters:
rsArrayAtTime
- ResultData[]calendar
- Intervallbeginn der Datens.- Throws:
ChannelException
- Exception.
-
setZaehlstelle
public void setZaehlstelle(LangZeitZaehlStelle zaehlstelle) throws ChannelException
Setzt die zu verarbeitende Zählstelle und initialisiert die zur Verarbeitung benötigten Header- und Richtungsangaben.
- Specified by:
setZaehlstelle
in classAbstractDataChannelBASt
- Parameters:
zaehlstelle
- LangZeitZaehlStelle- Throws:
ChannelException
- .- See Also:
AbstractDataChannelBASt.setZaehlstelle(de.inovat.kex.bast.common.objectwrapper.LangZeitZaehlStelle)
-
trim
protected java.lang.String trim(java.lang.String string, int length)
Formatiert den String linksbündig und füllt bis zur angegebenen Länge mit ' ' auf. Ist der String
null
, wird vollständig mit Leerzeichen aufgefüllt. Überzählige Zeichen werden abgeschnitten.- Parameters:
string
- auszugebender String,null
ist erlaubt und wird als "" interpretiertlength
- Länge bis zu der mit ' ' aufgefüllt wird oder nach der der String abgeschnitten wird- Returns:
- linksbündig ausgerichteter String der Länge
length
-
trimQ
protected java.lang.String trimQ(int value)
Formatiert die Fahrzeugmenge als rechtsbündigen String.
Gemäß Vorgabe sind die Angaben in den Stundendatensätzen im Gegensatz zu den drei Header- Datensätzen rechtsbündig ausgerichtet.
Bei Sonderwerten der TLS für nicht ermittelbare bzw. fehlerhafte Werte, wird " 0" in die Ausgabedatei geschrieben. Das betrifft negative Werte oder alle größer-gleich 65535.- Parameters:
value
- auszugebender Wert (Fahrzeuganzahl, die Werte müssen zwischen 0 und 65534 liegen, Wert 65535 = Zustand "nicht ermittelbar")- Returns:
- String mit dem rechtsbündig formatierten Wert
-
trimV15V85
protected java.lang.String trimV15V85(double value)
Formatiert die v15 und v85 Geschwindigkeit rechtsbündig ganzzahlig.
Gemäß Vorgabe sind die v15 und v85 (entsprechend der Erfassung) als ganzzahligen Wert.
Bei Sonderwerten der TLS für nicht ermittelbare bzw. fehlerhafte Werte, wird " 0" in die Ausgabedatei geschrieben. Das betrifft negative Werte und alle größer-gleich 255
- Parameters:
value
- auszugebender Wert (Geschwindigkeit, die Werte müssen zwischen 0 und 254 liegen, Wert 255="nicht ermittelbar)- Returns:
- String mit rechtsbündig formatiertem Wert
-
trimVmStdabw
protected java.lang.String trimVmStdabw(double value)
Formatiert die mittlere Geschwindigkeit und deren Standardabweichung rechtsbündig mit einer Nachkommastelle.
Gemäß Vorgabe ist die mittlere Geschwindigkeit vm auf eine Nachkommastelle zu runden mit ',' als Trennzeichen (nicht mit dem amerikanischen Dezimalzeichen '.) und die zugehörige Standardabweichung svm ebenfalls auf eine Nachkommastelle gerundet mit ',' als Trennzeichen.
Bei Sonderwerten der TLS für nicht ermittelbare bzw. fehlerhafte Werte, wird " 0,0" in die Ausgabedatei geschrieben. Das betrifft negative Werte und alle größer-gleich 6553.5.
- Parameters:
value
- auszugebender Wert (Geschwindigkeit, die Werte müssen zwischen 0 und 6553,5 liegen, Wert 6553.5 = Zustand "nicht ermittelbar")- Returns:
- String mit rechtsbündig formatiertem Wert
-
writeHeader
protected void writeHeader(java.io.PrintWriter writer)
Schreibt die Headerzeilen 1, 2 und 3 in die Datei.
- Specified by:
writeHeader
in classFileDataChannel
- Parameters:
writer
- PrintWriter.
-
writeHeaderFTP
protected void writeHeaderFTP(java.io.BufferedOutputStream bos) throws java.io.IOException
- Specified by:
writeHeaderFTP
in classFileDataChannel
- Throws:
java.io.IOException
-
-