4.0.0 • Published 3 months ago

@dapia-project/data-converter v4.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

Data Converter Tests workflow

Data-Converter

This conversion is for ADS-B data only.\ This library contains several conversion tools for ADS-B messages. We find :

  • SBS to JSON
  • JSON to SBS
  • SBS to NDJSON
  • NDJSON to SBS
  • CSV Opensky to JSON
  • JSON to CSV Opensky
  • CSV Opensky to NDJSON
  • NDJSON to CSV Opensky
  • SBS to CSV Opensky
  • CSV Opensky to SBS
  • CSV Drone to SBS
  • SBS to CSV Drone
  • CSV Drone to CSV Opensky
  • CSV Opensky to CSV Drone
  • CSV Drone to JSON
  • JSON to CSV Drone
  • CSV Drone to NDJSON
  • NDJSON to CSV Drone

Setup

Via NPM

npm i @dapia-project/data-converter

By updating package.json

In your package.json, add the following:

{
  "dependencies": {
    "@dapia-project/data-converter": "^4.0.0"
  }
}

Initialization

Import SBS to JSON converter:

import { sbsToJson } from '@dapia-project/data-converter/src/sbsToJson'

const jsonData: string = sbsToJson(options)

Import JSON to SBS converter:

import { jsonToSbs } from '@dapia-project/data-converter/src/jsonToSbs'

const sbsData: string = jsonToSbs(options)

Import SBS to NDJSON converter:

import { sbsToNdjson } from '@dapia-project/data-converter/src/sbsToNdjson'

const ndjsonData: string = sbsToNdjson(options)

Import NDJSON to SBS converter:

import { ndjsonToSbs } from '@dapia-project/data-converter/src/ndjsonToSbs'

const sbsData: string = ndjsonToSbs(options)

Import CSV Opensky to JSON converter:

import { openskyCsvToJson } from '@dapia-project/data-converter/src/openskyCsvToJson'

const jsonData: string = openskyCsvToJson(options)

Import JSON to CSV Opensky converter:

import { jsonToOpenskyCsv } from '@dapia-project/data-converter/src/jsonToOpenskyCsv'

const openskyCsvData: string = jsonToOpenskyCsv(options)

Import CSV Opensky to NDJSON converter:

import { openskyCsvToNdjson } from '@dapia-project/data-converter/src/openskyCsvToNdjson'

const ndjsonData: string = openskyCsvToNdjson(options)

Import NDJSON to CSV Opensky converter:

import { ndjsonToOpenskyCsv } from '@dapia-project/data-converter/src/ndjsonToOpenskyCsv'

const openskyCsvData: string = ndjsonToOpenskyCsv(options)

Import CSV Opensky to SBS converter:

import { openskyCsvToSbs } from '@dapia-project/data-converter/src/openskyCsvToSbs'

const sbsData: string = openskyCsvToSbs(options)

Import SBS to CSV Opensky converter:

import { sbsToOpenskyCsv } from '@dapia-project/data-converter/src/sbsToOpenskyCsv'

const openskyCsvData: string = sbsToOpenskyCsv(options)

Import SBS to CSV Drone converter:

import { sbsToDroneCsv } from '@dapia-project/data-converter/src/sbsToDroneCsv'

const droneCsvData: string = sbsToDroneCsv(options)

Import JSON to CSV Drone converter:

import { jsonToDroneCsv } from '@dapia-project/data-converter/src/jsonToDroneCsv'

const droneCsvData: string = jsonToDroneCsv(options)

Import NDJSON to CSV Drone converter:

import { ndjsonToDroneCsv } from '@dapia-project/data-converter/src/ndjsonToDroneCsv'

const droneCsvData: string = ndjsonToDroneCsv(options)

Import CSV Opensky to CSV Drone converter:

import { openskyCsvToDroneCsv } from '@dapia-project/data-converter/src/openskyCsvToDroneCsv'

const droneCsvData: string = openskyCsvToDroneCsv(options)

Import CSV Drone to SBS converter:

import { droneCsvToSbs } from '@dapia-project/data-converter/src/droneCsvToSbs'

const sbsData: string = droneCsvToSbs(options)

Import CSV Drone to JSON converter:

import { droneCsvToJson } from '@dapia-project/data-converter/src/droneCsvToJson'

const jsonData: string = droneCsvToJson(options)

Import CSV Drone to NDJSON converter:

import { droneCsvToNdjson } from '@dapia-project/data-converter/src/droneCsvToNdjson'

const ndjsonData: string = droneCsvToNdjson(options)

Import CSV Drone to CSV Opensky converter:

import { droneCsvToOpenskyCSV } from '@dapia-project/data-converter/src/droneCsvToOpenskyCsv'

const openskyCsvData: string = droneCsvToOpenskyCsv(options)

Options

For all :

keytypeusedefault value
contentStringThe content file to convert
saveExtraField?booleanChoice to have extraField of Format1 in Format2false

Order of fields

For SBS files :

NumberField
Field 1messageType
Field 2transmissionType
Field 3sessionID
Field 4aircraftID
Field 5icao24
Field 6flightID
Field 7dateMessageGenerated (AAAA/MM/DD)
Field 8timeMessageGenerated (HH:mm:ss.SSS)
Field 9dateMessageLogged (AAAA/MM/DD)
Field 10timeMessageLogged (HH:mm:ss.SSS)
Field 11callsign
Field 12geoaltitude
Field 13groundspeed
Field 14track
Field 15latitude
Field 16longitude
Field 17vertical_rate
Field 18squawk
Field 19alert
Field 20emergency
Field 21spi
Field 22onground
Field 23haveLabel?
Field 24label?
Field 23 or 25extraField?

\ The HaveLabel and Label fields are not required. But if one is present then so is the other. \ The ExtraField field is a JSON object that contains information present in a converted csv file not present in sbs file. Here is an example:

{
  "altitude": "",
  "last_position": "",
  "lastcontact": "",
  "hour": ""
}

You can find information about the SBS format here: http://woodair.net/sbs/Article/Barebones42_Socket_Data.htm \ \ For CSV Opensky files :

The order of the fields below is the order when converting SBS to CSV Opensky. However, the order of fields in a CSV Opensky file during a CSV Opensky to SBS conversion does not follow a certain pattern.

NumberField
Field 1timestamp
Field 2icao24
Field 3latitude
Field 4longitude
Field 5groundspeed
Field 6track
Field 7vertical_rate
Field 8callsign
Field 9onground
Field 10alert
Field 11spi
Field 12squawk
Field 13altitude
Field 14geoaltitude
Field 15last_position?
Field 16lastcontact?
Field 17hour?
Field 18extraField?

\ The ExtraField field is a JSON object that contains information present in a converted sbs file not present in csv file. It is not mandatory to add this field when converting. Here is an exemple:

{
  "messageType": "",
  "transmissionType": "",
  "sessionID": "",
  "aircraftID": "",
  "flightID": "",
  "emergency": ""
}

\ \ For CSV Drone files :

NumberField
Field 1name
Field 2icao24
Field 3date (AAAA-MM-DDTHH:mm:ss.SSSZ)
Field 4fixName
Field 5significantPoint
Field 6timeElapsed
Field 7position.latitude
Field 8position.longitude
Field 9position.altitude
Field 10altitudeMax
Field 11airSpeed
Field 12cas
Field 13mach
Field 14heading
Field 15groundspeed
Field 16distanceToNextWaypoint
Field 17flownDistance
Field 18wind.eastward
Field 19wind.northward
Field 20wind.upward
Field 21route
Field 22mass
Field 23isOneWay
Field 24extraField?

For JSON and NDJSON files :

Field
timestamp?
icao24?
latitude?
longitude?
groundspeed?
track?
vertical_rate?
callsign?
onground?
alert?
spi?
squawk?
altitude?
geoaltitude?
last_position?
lastcontact?
hour?
messageType?
transmissionType?
sessionID?
aircraftID?
flightID?
emergency?
dateMessageGenerated?
timeMessageGenerated?
dateMessageLogged?
timeMessageLogged?
haveLabel?
label?
name?
date?
fixName?
significantPoint?
timeElapsed?
position.latitude?
position.longitude?
position.altitude?
altitudeMax?
airSpeed?
cas?
mach?
heading?
distanceToNextWaypoint?
flownDistance?
wind.eastward?
wind.northward?
wind.upward?
route?
mass?
isOneWay?

Commands line

You can also run a command line conversion like this:

First, download library globally :

npm i @dapia-project/data-converter -g

Then :

data-converter --file "path/to/fileToConvert.ext" --output "path/to/fileWillBeConvert.ext"

Possible extension types are .sbs, .csv, .json and .ndjson \ If you wish to convert a file into a Drone CSV file please put the extension .drone.csv to the output file

4.0.0

3 months ago

3.3.0

5 months ago

3.2.1

6 months ago

3.2.0

6 months ago

3.1.0

6 months ago

3.0.3

6 months ago

3.0.2

6 months ago

3.0.1

6 months ago

3.0.0

8 months ago

2.4.0

9 months ago

2.3.0

9 months ago

2.2.0

10 months ago

2.1.0

10 months ago

2.0.0

11 months ago

1.0.11

11 months ago

1.0.10

11 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago