fbpx

API (Application programming interface)

For more than 30 years, WNI has been providing reliable and accurate services to our customers through various service menus and software that we have developed. As an addition to our services, at 2016 we established a new API Platform that can deliver our high quality data to you. Through this data, you can enhance your service and operation, as well as create new solutions for your business.

API System Diagram

API block diagram

API System Flow Diagram

API System Flow

API System Flow Explanation

Process Explanation
Login Process Login using a valid UID (Username) and PWD (Password) to create a TokenID. One TokenID is valid for 24 hours after creation (by default). If a user has logged in previously, then a TokenID expiration check will be done to determine the validity of the TokenID. If the TokenID is not valid, new TokenID will be generated; else the previous valid TokenID will be used to proceed in "Get Data Process".
Get Data Process With a valid TokenID and Request Parameter, data will be accessed from the URL of the specific dataset. New data requests can be done as long as the TokenID is still valid; if the TokenID is no longer valid, there will be an error "403 - Forbidden". In case of expired TokenID, "Login Process" is necessary to continue requesting data.

Dataset Summarize

Data Format Update Average Size Forecast Duration Time Pitch Data Category
Binary 00:00, 06:00, 12:00, 18:00 UTC 256 K 384 H 6 H, 12 H Weather
Binary 00:00, 06:00, 12:00, 18:00 UTC 256 K 384 H, 696 H, Actual 3 H, 24 H Weather
Binary 00:00, 06:00, 12:00, 18:00 UTC 1.5 M 96 H 1 H Weather
Binary 00:00, 06:00, 12:00, 18:00 UTC 1.5 M 96 H 1 H Weather
JSON / XML 00:00, 06:00, 12:00, 18:00 UTC 20 K 384 H, 696 H 3 H, 6 H, 24 H Weather
KML 00:30, 06:30, 12:30, 18:30 UTC 1 M - 5 M Actual, 384 H 3 H, 6 H, 24 H Weather
JSON 00:00, 06:00, 12:00, 18:00 UTC 236 K 168 H 6 H Weather
JSON / XML 02:00, 08:00, 14:00, 20:00 UTC 44 K Based on storm live time - Weather
Binary 10:00 UTC 256 K Actual - Ice Data
Binary 10:00 UTC 256 K 384 H 24 H Ice Data
KML 21:00 UTC 3 M - 8 M 384 H 24 H Ice Data
JSON / XML Vessel Reporting Time 250 K - 7 M Based on Track Length - Ship and Weather Data
JSON / JSONP Vessel Reporting Time 4 K - - Ship and Weather Data
JSON / JSONP - 4 K - - Ship and Weather Data
JSON / XML Vessel Reporting Time 2 M - 7 M Based on total reports - Ship and Weather Data
JSON / JSONP - 4 K - - TMAX Data
JSON / JSONP - 4 K - - TMAX Data
JSON / JSONP - 250 K - - TMAX Data
JSON / JSONP Irregular 4 K / 560 K - - TMAX Data
JSON / JSONP VAR Update Timing 4 K - - TMAX Data
JSON / JSONP Vessel Reporting Time 4 K - - TMAX Data
JSON / CSV End of Leg 4 K - - CIM Data

Weather Data

Data Name Weather
Format Binary
Region Global
Element
  1. ssp: Sea Surface Pressure, unit: Pa
  2. uuu: Wind U Component, unit: m/s
  3. vvv: Wind V Component, unit: m/s
  4. uuu1000hpa: Wind U Component(1000hPa), unit: m/s
  5. vvv1000hpa: Wind V Componen(1000hPa), unit: m/s
  6. uuu500hpa: Wind U Component(500hPa), unit: m/s
  7. vvv500hpa: Wind V Componen(500hPa), unit: m/s
  8. rh850hpa: Relative Humidity(850hPa), unit: %
  9. rh700hpa: Relative Humidity(700hPa), unit: %
  10. ph1000hpa: Surface Pressure Altitude(1000hPa), unit: gpm
  11. ph500hpa: Surface Pressure Altitude(500hPa), unit: gpm
  12. tmp1000hpa: Temperature(1000hPa), unit: Kelvin
  13. tmp850hpa: Temperature(850hPa), unit: Kelvin
  14. intpcp: Colum-integrated precipitation in 6 hours, unit: kg/m^2
  15. vis: Visibility, unit: meter
Update 00:00, 06:00, 12:00, 18:00 UTC
Forecast Duration 384 H
Time Pitch Element 1-14 6 H
Element 15 12 H
Detail of Region Element 1-14 Latitude -90.000000 to 90.000000 by 1.000000
Longtitude 0.000000 to 359.000000 by 1.000000
Element 15 t000 - t192 Latitude 89.844000 to -89.844000 by 0.204423
Longtitude 0.000000 to 359.796000 by 0.204545
t204 - t384 Latitude 89.522000 to -89.522000 by 0.623846
Longtitude 0.000000 to 359.375000 by 0.625000
Resolution Element 1-14 1.0 degree
Element 15 t000 - t192 0.204 degree
t204 - t384 0.625 degree
Grid Element 1-14 360 x 181
Element 15 t000 - t192 1760 x 880
t204 - t384 576 x 288
Matrix Reading
Algorithm
Binary Matrix
Average Size 256 K

Marine Weather Data

Data Name Marine Weather
Format Binary
Region Global
Element
  1. sigwh: Significant wave height, unit: meter
  2. awp: Average period, unit: second
  3. pwh: Primary wave height, unit: meter
  4. pwd: Primary wave direction (Comming From), unit: degree
  5. pwp: Primary period, unit: second
  6. swh: Secondary wave height, unit: meter
  7. swd: Secondary wave direction (Comming From), unit: degree
  8. swp: Secondary period, unit: second
  9. pswh: Swell wave height, unit: meter
  10. pswd: Swell wave direction (Comming From), unit: degree
  11. pswp: Swell period, unit: second
  12. wsh: WindSea wave height, unit: meter
  13. wsd: WindSea wave direction (Comming From), unit: degree
  14. wsp: WindSea period, unit: second
  15. sst: Sea surface temperature, unit: Kelvin
  16. uuu: OceanCurrent u-component, unit: m/s
  17. vvv: OceanCurrent v-component, unit: m/s
Update
  1. sigwh
  2. awp
  3. pwh
  4. pwd
  5. pwp
  6. swh
  7. swd
  8. swp
  9. pswh
  10. pswd
  11. pswp
  12. wsh
  13. wsd
  14. wsp
00:00, 06:00, 12:00, 18:00 UTC
  1. sst
00:00 UTC
  1. uuu
  2. vvv
13:00 UTC
Forecast
  1. sigwh
  2. awp
  3. pwh
  4. pwd
  5. pwp
  6. swh
  7. swd
  8. swp
  9. pswh
  10. pswd
  11. pswp
  12. wsh
  13. wsd
  14. wsp
Duration 384 H
Time Pitch 3 H
  1. sst
Duration 0 H
Time Pitch -
  1. uuu
  2. vvv
Duration 696 H
Time Pitch 24 H
Detail of Region
  1. sigwh
  2. awp
  3. pwh
  4. pwd
  5. pwp
  6. swh
  7. swd
  8. swp
  9. pswh
  10. pswd
  11. pswp
  12. wsh
  13. wsd
  14. wsp
Latitude -90.000000 to 90.000000 by 1.000000
Longtitude 0.000000 to 359.000000 by 1.000000
  1. sst
Latitude -89.500000 to 89.500000 by 1.000000
Longtitude 0.500000 to 359.500000 by 1.000000
  1. uuu
  2. vvv
Latitude -78.000000 to 80.000000 by 0.125000
Longtitude 0.000000 to 359.875000 by 0.125000
Resolution
  1. sigwh
  2. awp
  3. pwh
  4. pwd
  5. pwp
  6. swh
  7. swd
  8. swp
  9. pswh
  10. pswd
  11. pswp
  12. wsh
  13. wsd
  14. wsp
  15. sst
1.0 degree
  1. uuu
  2. vvv
0.125 degree
Grid
  1. sigwh
  2. awp
  3. pwh
  4. pwd
  5. pwp
  6. swh
  7. swd
  8. swp
  9. pswh
  10. pswd
  11. pswp
  12. wsh
  13. wsd
  14. wsp
360 x 181
  1. sst
360 x 180
  1. uuu
  2. vvv
2880 x 1265
Matrix Reading
Algorithm
Binary Matrix
Average Size 256 K

High Resolution Weather Data

Data Name High Resolution Weather
Format Binary
Region npac North Pacific
natl North Atlantic
seaasia South East Asia
Element
  1. ssp: Sea Surface Pressure, unit: Pa
  2. uuu: Wind U Component, unit: m/s
  3. vvv: Wind V Component, unit: m/s
Update 00:00, 06:00, 12:00, 18:00 UTC
Forecast Duration 96 H
Time Pitch 1 H
Detail of Region npac Latitude 14.125000 to 66.000000 by 0.125000
Longtitude 101.000000 to 255.875000 by 0.125000
natl Latitude 29.125000 to 61.000000 by 0.125000
Longtitude 44.875000 to 270.000000 by 0.125000
seaasia Latitude -15.875000 to 16.000000 by 0.125000
Longtitude 85.000000 to 164.875000 by 0.125000
Resolution 0.125 degree
Grid npac 1240 x 416
natl 1080 x 256
seaasia 640 x 256
Matrix Reading
Algorithm
Binary Matrix
Average Size 1.5 M

High Resolution Marine Weather Data

Data Name High Resolution Marine Weather
Format Binary
Region npac North Pacific
natl North Atlantic
seaasia South East Asia
Element
  1. sigwh: Significant wave height, unit: meter
  2. awp: Average period, unit: second
  3. pwh: Primary wave height, unit: meter
  4. pwd: Primary wave direction (Comming From), unit: degree
  5. pwp: Primary period, unit: second
  6. swh: Secondary wave height, unit: meter
  7. swd: Secondary wave direction (Comming From), unit: degree
  8. swp: Secondary period, unit: second
  9. pswh: Swell wave height, unit: meter
  10. pswd: Swell wave direction (Comming From), unit: degree
  11. pswp: Swell period, unit: second
  12. wsh: WindSea wave height, unit: meter
  13. wsd: WindSea wave direction (Comming From), unit: degree
  14. wsp: WindSea period, unit: second
Update 00:00, 06:00, 12:00, 18:00 UTC
Forecast Duration 96 H
Time Pitch 1 H
Detail of Region npac Latitude 15.000000 to 64.875000 by 0.125000
Longtitude 105.000000 to 249.875000 by 0.125000
natl Latitude 30.000000 to 59.875000 by 0.125000
Longtitude 275.000000 to 404.875000 by 0.125000
seaasia Latitude -15.000000 to 14.875000 by 0.125000
Longtitude 90.000000 to 159.875000 by 0.125000
Resolution 0.125 degree
Grid npac 1160 x 400
natl 1040 x 240
seaasia 560 x 240
Matrix Reading
Algorithm
Binary Matrix
Average Size 1.5 M

Weather on Track Data

Data Name Weather on Track
Format JSON / XML
Region Global
Element
  1. sigwh: Significant wave height, unit: meter
  2. pwh: Primary wave height, unit: meter
  3. pwd: Primary wave direction, unit: 16 direction degree number (Comming From)
  4. pswh: Swell wave height, unit: meter
  5. pswd: Swell wave direction, unit: 16 direction degree number (Comming From)
  6. wsh: WindSea wave height, unit: meter
  7. wsd: WindSea wave direction, unit: 16 direction degree number (Comming From)
  8. ocs: OceanCurrent speed, unit: knot
  9. ocd: OceanCurrent direction, unit: 16 direction/degree number (Going To)
  10. was: Wind speed, unit: knot
  11. wad: Wind direction, unit: 16 direction/degree number (Going To)
  12. wad_come_from: Wind direction, unit: 16 direction/degree number (Comming From)
  13. date: Date and time of point, format: yyyymmddhh
  14. lat: Latitude position, unit: minute
  15. lon: Longitude position, unit: minute
Update 00:00, 06:00, 12:00, 18:00 UTC
Forecast Duration 384 H, 696 H
Time Pitch Element 1-7 3 H
Element 8-9 24 H
Element 10-11 6 H
Past Data Duration 5 Year
Time Pitch -
Detail of Region Element 1-7 & 10-11 Latitude -90.000000 to 90.000000 by 1.000000
Longtitude 0.000000 to 359.000000 by 1.000000
Element 8-9 Latitude 80.000000 to -78.000000 by 0.125000
Longtitude 0.000000 to 359.875000 by 0.125000
Resolution Element 1-7, 10-11 1 degree
Element 8-9 0.125 degree
Average Size 20 K
16 Direction/Degree Number Direction Number Compass Point
1 NNE (North-northeast)
2 NE (Northeast)
3 ENE (East-northeast)
4 E (East)
5 ESE (East-southeast)
6 SE (Southeast)
7 SSE (South-southeast)
8 S (South)
9 SSW (South-southwest)
10 SW (Southwest)
11 WSW (West-southwest)
12 W (West)
13 WNW (West-northwest)
14 NW (Northwest)
15 NNW (North-northwest)
16 N (North)
Sample { "Point": [ { "date": "2016081512", "lat": 1200, "lon": -1800, "sigwh": 1.78, "pwh": 1.8, "pwd": 2, "pswh": 1, "pswd": 1, "wsh": 3, "wsd": 1, "ocs": 2.1, "was": 1 } ] }

Weather KML

Data Name Weather KML
Format KML
Region Global
Element
  1. sigwh: Significant wave height, unit: meter
  2. pwh: Primary wave height, unit: meter
  3. swh: Secondary wave height, unit: meter
  4. pswh: Swell wave height, unit: meter
  5. wsh: WindSea wave height, unit: meter
  6. sst: Sea surface temperature, unit: Celcius
  7. ssp: Sea surface pressure, unit: hPa
  8. rh850hpa: Relative humidity at 850hPa, unit: %
  9. rh700hpa: Relative humidity at 700hPa, unit: %
  10. ph500hpa: Pressure hight at 500hPa, unit: gpm
  11. tmp1000hpa: Temperature at 1000hPa, unit: Celcius
  12. tmp850hpa: Temperature at 850hPa, unit: Celcius
  13. intpcp: Colum-integrated precipitation in 6 hours, unit: kg/m^2
  14. icep: Ice pack, unit: Porpotions
Update 00:30, 06:30, 12:30, 18:30 UTC
Forecast Duration Actual, 384 H
Time Pitch Element 1-5 3 H
Element 6 Actual
Element 7-14 6 H
Element 15 24 H
Contour Type LineStyle
GRID Resolution 1 degree
Contour Resolution sigwh
pwh
swh
pswh
wsh
1.0 meter
sst
tmp1000hpa
tmp850hpa
0.5 Celcius
rh850hpa
rh700hpa
5 %
ph1000hpa
ph500hpa
60 gpm
ssp 4 hPa
intpcp 2 kg/m^2
icep 0.25 Porpotions
Starting Point Value Element 1-5 2.0
Element 6-15 0
Average Size 1 M - 5 M
*Depends on contour and data resolution

Ice Berg Data

Data Name Ice Berg
Format Binary
Region Global
Update 10:00 UTC
Forecast Duration Actual
Time Pitch -
Detail of Region Latitude -90.000000 to 90.000000 by 1.000000
Longtitude 0.000000 to 359.000000 by 1.000000
Resolution 1.0 degree
Grid 360 x 181
Matrix Reading
Algorithm
Binary Matrix
Average Size 256 K

Ice Pack Data

Data Name Ice Pack
Format Binary
Region Global
Update 10:00 UTC
Forecast Duration 384 H
Time Pitch 24 H
Detail of Region Latitude -89.500000 to 89.500000 by 1.000000
Longtitude 0.500000 to 359.499999 by 1.000000
Resolution 1.0 degree
Grid 360 x 180
Matrix Reading
Algorithm
Binary Matrix
Average Size 256 K

Ice KML

Data Name Ice KML
Format KML
Region Global
Element
  1. iceconc: Ice concentration, unit: ratio
  2. icethic: Ice thickness, unit: meter
  3. icecomp: Ice compression, unit: kPa
Update 21:00 UTC
Forecast Duration 384 H
Time Pitch 24 H
Contour Type Polygon
Contour Resolution iceconc 0.1 ratio
icethic 0.25 meter
icecomp 5 kPa
Starting Point Value 0
Average Size 3 M - 8 M
*Depends on contour and data resolution
Countour colour legend iceconc
0 <= value < 0.1
0.1 <= value < 0.2
0.2 <= value < 0.3
0.3 <= value < 0.4
0.4 <= value < 0.5
0.5 <= value < 0.6
0.6 <= value < 0.7
0.7 <= value < 0.8
0.8 <= value < 0.9
value >= 0.9
icethic
0 <= value < 0.25
0.25 <= value < 0.5
0.5 <= value < 0.75
0.75 <= value < 1
1 <= value < 1.25
1.25 <= value < 1.5
1.5 <= value < 1.75
1.75 <= value < 2
2 <= value < 2.25
2.25 <= value < 2.5
2.5 <= value < 2.75
2.75 <= value < 3
3 <= value < 3.25
3.25 <= value < 3.5
3.5 <= value < 3.75
3.75 <= value < 4
4 <= value < 4.25
4.25 <= value < 4.5
4.5 <= value < 4.75
value >= 4.75
icecomp
0 <= value < 5
5 <= value < 10
10 <= value < 15
15 <= value < 20
20 <= value < 25
25 <= value < 30
30 <= value < 35
35 <= value < 40
40 <= value < 45
value >= 45

Front Data

Data Name Front
Format JSON
Region Global
Update 00:00, 06:00, 12:00, 18:00 UTC
Forecast Duration 168 H
Time Pitch 6 H
Average Size 236 K
Item Name Full Name Unit/Format Values Type
FCASD Forecast Date datetime / (yyyy-mm-dd hh:mm:ss GMT) string
obj_count Target Object Count - int
TYPE Object Type
  • WFRONT: Warm Front
  • CFRONT: Cold Front
  • OFRONT: Occluded Front
  • SFRONT: Stationary Front
string
ARPRSS_CENTER Air Pressure at Center - int
point_count Polygon Point Count - int
LAT Latitude second int
LON Longitude second int
Sample { "FT": [ { "obj_count": 17, "FCASD": { "hour": 18, "mon": 6, "min": 0, "year": 2016, "day": 2, "sec": 0 }, "obj": [ { "point_count": 10, "ARPRSS_CENTER": 0, "TYPE": "WFRONT", "point": [ { "LAT": -204318, "LON": 282286 }, { "LAT": -205714, "LON": 280495 } ] } ] } ] }

Global Storm Data

Data Name Global Storm
Format JSON / XML
Region Global
Update 02:00, 08:00, 14:00, 20:00 UTC
Forecast Duration Based on storm live time
Time Pitch -
Average Size 44 K
Item Name Full Name Unit/Format Values Type
tropCount Total Tropical Strom in Data - Int
updateTime Update Date of Data in UTC datetime / (yyyy-mm-ddThh:mm:ss) string
tropInfo Tropical Storm Information - -
tropName Tropical Name [A-Z]-[A-Z] string
tropType Kind of Tropical Storm TY, HUR, CYC string
issueTime Announcement time of the file datetime / (yyyy-mm-ddThh:mm:ss) string
analysisInfo Analysis Information - -
forecastInfo Forecast Information - -
trackInfo Tropical Storm Track Information - -
class State of Tropical Storm TD, TS, STS, TY, XT, HUR string
validTime Target time datetime / (yyyy-mm-ddThh:mm:ss) string
point Position (latitude, longtitude) - -
lat Position Latitude min float
lon Position Longtitude min float
windspeed_10min_max Maximum wind speed kts float
pressure Atmospheric pressure of Tropical Storm hpa float
gusts Gust kts float
galeForceWindArea - - -
stormForceWindArea The quadrant strong wind range - -
radii_1 The 1st quadrant strong wind range distance [nm]: start orientation string
radii_2 The 2nd quadrant strong wind range distance [nm] string
radii_3 The 3rd quadrant strong wind range distance [nm] string
radii_4 The 4th quadrant strong wind range distance [nm] string
tropSpeed Speed of Tropical Storm kts float
tropHeading Heading/Direction of Tropical storm direction 0-360 float
Sample { "tropCount": "1", "updateTime": "2016-06-05T20:59:53", "tropInfo": [ { "tropName": "THREE", "tropID": "2016023NAAA", "tropType": "HUR", "issueTime": "2016-06-05T21:00:00", "analysisInfolist": { "analysisInfo": [ { "class": "TD", "validTime": "2016-06-05T18:00:00", "point": { "lat": 22.7, "lon": -88.1 }, "windspeed_10min_max": 30, "pressure": 1005, "gusts": 45, "galeForceWindArea": {}, "stormForceWindArea": {}, "tropSpeed": 10, "tropHeading": 360 } ] }, "forecastInfolist": { "forecastInfo": [ { "class": "TD", "validTime": "2016-06-05T21:00:00", "point": { "lat": 23.2, "lon": -88 }, "windspeed_10min_max": 30, "pressure": 1005, "gusts": 45, "galeForceWindArea": {}, "stormForceWindArea": {}, "tropSpeed": 11, "tropHeading": 10 } ] }, "trackInfolist": { "trackInfo": [ { "class": "TD", "validTime": "2016-06-05T00:00:00", "point": { "lat": 18.5, "lon": -87.5 }, "windspeed_10min_max": 25, "pressure": 1006, "gusts": 35, "galeForceWindArea": {}, "stormForceWindArea": {}, "tropSpeed": 12, "tropHeading": 340 } ] } } ] }

Voyage Track Data

Data Name Voyage Track
Format JSON / XML
Region Global
Update Vessel Reporting Time
Forecast Duration Based on Track Length
Time Pitch -
Average Size 250 K - 7 M (Based on Track Length)
Item Name Full Name Unit/Format Values Type
shipInfo Vessel information data Hash Key -
imoNum Vessel IMO number IMO number format string
shipName Vessel name Maritime call sign format string
callsign Vessel Call Sign code - string
shipType Vessel type (CONTAINER, PCTC, DRY BULK, TANKER) - string
voyageInfo Voyage information data Hash Key -
departureInfo Departure information data Hash Key -
arrivalInfo Arrival information data Hash Key -
portName Port name - string
portCode Port code - string
reportedInfo Master report information data Hash Key -
route Vessel route data; Contains summary for each vessel route Hash Key -
routeInfo Vessel route information data Hash Key -
routeType Vessel route type (Actual, Recommended) Hash Key -
summary Vessel route summary; Contains point track information Hash Key -
deadreckinigPointInfo Dead reckoning point information data Hash Key -
point Point track data Hash Key (Array in Hash) -
sourceId Source of point data from master report r1 is meaning "report 1st" string
pointType Type of point data SOSP, NOON, EOSP, Reported string
dateTime Date and time of point data Date (yyyy/mm/ddThh:mm:ss) string
lat latitude information Minute string
lon longitude information Minute string
navTrack Distance Measure : Rhumb line or Great Circle GC (Great Circle), RL (Rhumb Line) string
setRpm Setting RPM in the point rpm string
averageRpm Average RPM until the point rpm string
speed Speed of vessel in the point m/s string
slip Slip of vessel in the point - string
heading Heading of vessel in the point Decimal string
setLoad Loading condition of vessel in the point - string
fuel High sulfure and Low sulfire fuel oil information of vessel in the point Hash Key -
diesel Diesel fuel information of vessel in the point Hash Key -
gas Gas fuel information of vessel in the point Hash Key -
ultraLowsulfur Ultra low sulfur fuel oil information of vessel in the point Hash Key -
remainOnBoard Remaining fuel of vessel from each fuel type Hash Key -
mainEngineConsumption Fuel comsumption of vessel main engine Hash Key -
auxiliaryEngineConsumption Fuel consumption of auxiliary engine Hash Key -
generatorConsumption Fuel comsumption of generator Hash Key -
boilerConsumption Fuel comsumption of boiler Hash Key -
otherConsupmtion Another use/consumption of fuel Hash Key -
highSulfur High sulfur oil information from each type - string
lowSulfur Low sulfur oil information from each type - string
total Combination between high sulfur and low sulfur - string
weather Weather information data Hash Key -
significantWaveHeight Significant wave height Meter string
primaryWaveHeight Primary wave height Meter string
primaryWaveDirection Primary wave direction (Comming From) Decimal string
primaryWavePeriod Primary wave period - string
secondlyWaveHeight Secondly wave height Meter string
secondlyWaveDirection Secondly wave direction (Comming From) Decimal string
secondlyWavePeriod Secondly wave period - string
swellWaveHeight Swell wave height Meter string
swellWaveDirection Swell wave direction (Comming From) Decimal string
swellWavePeriod Swell wave period - string
windSeaWaveHeight Wind sea wave height Meter string
windSeaWaveDirection Wind sea wave direction (Comming From) Decimal string
windSeaWavePeriod Wind sea wave period - string
currentU Ocean current u-component Vector string
currentV Ocean current v-component Vector string
windU wind u-component Vector string
windV wind v-component Vector string
currentFactor Current Factor Probability string
Sample Single voyage info structure { "shipInfo": { "imoNum": "XXXX", "shipName": "XXXX", "callsign": "XXXX", "shipType": "PCTC" }, "voyageInfo": { "departureInfo": { "portName": "LOS ANGELES", "portCode": "LAX", "point": { "lat": "2021.9000", "lon": "-7094.6000" } }, "arrivalInfo": { "portName": "YOKOHAMA", "portCode": "YOK", "point": { "lat": "2126.2000", "lon": "8382.1000" } }, "reportedInfo": { "point": [ { "sourceId": "r0", "pointType": "SOSP", "dateTime": "2015/07/02T06:15:00", "point": { "lat": "2019.0000", "lon": "-7147.0000" }, "navTrack": "RL", "setRpm": "98", "averageRpm": "", "speed": "", "slip": "", "heading": "", "fuel": { "remainOnBoard": { "total": "891.8", "highSulfur": "891.8", "lowSulfur": "0" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "diesel": { "remainOnBoard": { "total": "180.90", "highSulfur": "0", "lowSulfur": "180.90" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "gas": { "remainOnBoard": { "total": "", "highSulfur": "", "lowSulfur": "" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "ultraLowsulfur": { "remainOnBoard": { "total": "" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } } } ] }, "routeInfo": { "route": [ { "routeType": "Actual", "summary": { "deadreckinigPointInfo": { "point": [ { "sourceId": "r0", "pointType": "SOSP", "dateTime": "2015/07/02T06:15:00", "point": { "lat": "2019.0000", "lon": "-7147.0000" }, "navTrack": "RL", "setRpm": "60.00", "setLoad": "0.00", "goodWeatherSpeed": "12.11", "weather": { "significantWaveHeight": "0.68", "primaryWaveHeight": "0.67", "primaryWaveDirection": "315.00", "primaryWavePeriod": "8.51", "secondlyWaveHeight": "0.14", "secondlyWaveDirection": "247.50", "secondlyWavePeriod": "4.37", "swellWaveHeight": "0.68", "swellWaveDirection": "315.00", "swellWavePeriod": "8.51", "windSeaWaveHeight": "0.02", "windSeaWaveDirection": "247.50", "windSeaWavePeriod": "2.47", "currentU": "0.28", "currentV": "-0.11", "windU": "6.20", "windV": "3.09", "currentFactor": "-0.2949", "weatherFactor": "-0.08" } } ] } } } ] } } }
List voyage info structure { "shipInfo": { "imoNum": "XXXX", "shipName": "XXXX", "callsign": "XXXX", "shipType": "PCTC" }, "voyageInfo": [ { "departureInfo": { "portName": "LOS ANGELES", "portCode": "LAX", "point": { "lat": "2021.9000", "lon": "-7094.6000" } }, "arrivalInfo": { "portName": "YOKOHAMA", "portCode": "YOK", "point": { "lat": "2126.2000", "lon": "8382.1000" } }, "reportedInfo": { "point": [ { "sourceId": "r0", "pointType": "SOSP", "dateTime": "2015/07/02T06:15:00", "point": { "lat": "2019.0000", "lon": "-7147.0000" }, "navTrack": "RL", "setRpm": "98", "averageRpm": "", "speed": "", "slip": "", "heading": "", "fuel": { "remainOnBoard": { "total": "891.8", "highSulfur": "891.8", "lowSulfur": "0" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "diesel": { "remainOnBoard": { "total": "180.90", "highSulfur": "0", "lowSulfur": "180.90" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "gas": { "remainOnBoard": { "total": "", "highSulfur": "", "lowSulfur": "" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "ultraLowsulfur": { "remainOnBoard": { "total": "" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } } } ] }, "routeInfo": { "route": [ { "routeType": "Actual", "summary": { "deadreckinigPointInfo": { "point": [ { "sourceId": "r0", "pointType": "SOSP", "dateTime": "2015/07/02T06:15:00", "point": { "lat": "2019.0000", "lon": "-7147.0000" }, "navTrack": "RL", "setRpm": "60.00", "setLoad": "0.00", "goodWeatherSpeed": "12.11", "weather": { "significantWaveHeight": "0.68", "primaryWaveHeight": "0.67", "primaryWaveDirection": "315.00", "primaryWavePeriod": "8.51", "secondlyWaveHeight": "0.14", "secondlyWaveDirection": "247.50", "secondlyWavePeriod": "4.37", "swellWaveHeight": "0.68", "swellWaveDirection": "315.00", "swellWavePeriod": "8.51", "windSeaWaveHeight": "0.02", "windSeaWaveDirection": "247.50", "windSeaWavePeriod": "2.47", "currentU": "0.28", "currentV": "-0.11", "windU": "6.20", "windV": "3.09", "currentFactor": "-0.2949", "weatherFactor": "-0.08" } } ] } } } ] } }, { "departureInfo": { "portName": "LOS ANGELES", "portCode": "LAX", "point": { "lat": "2021.9000", "lon": "-7094.6000" } }, "arrivalInfo": { "portName": "YOKOHAMA", "portCode": "YOK", "point": { "lat": "2126.2000", "lon": "8382.1000" } }, "reportedInfo": { "point": [ { "sourceId": "r0", "pointType": "SOSP", "dateTime": "2015/07/02T06:15:00", "point": { "lat": "2019.0000", "lon": "-7147.0000" }, "navTrack": "RL", "setRpm": "98", "averageRpm": "", "speed": "", "slip": "", "heading": "", "fuel": { "remainOnBoard": { "total": "891.8", "highSulfur": "891.8", "lowSulfur": "0" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "diesel": { "remainOnBoard": { "total": "180.90", "highSulfur": "0", "lowSulfur": "180.90" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "gas": { "remainOnBoard": { "total": "", "highSulfur": "", "lowSulfur": "" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } }, "ultraLowsulfur": { "remainOnBoard": { "total": "" }, "mainEngineConsumption": { "total": "" }, "auxiliaryEngineConsumption": { "total": "" }, "generatorConsumption": { "total": "" }, "boilerConsumption": { "total": "" }, "otherConsupmtion": { "total": "" } } } ] }, "routeInfo": { "route": [ { "routeType": "Actual", "summary": { "deadreckinigPointInfo": { "point": [ { "sourceId": "r0", "pointType": "SOSP", "dateTime": "2015/07/02T06:15:00", "point": { "lat": "2019.0000", "lon": "-7147.0000" }, "navTrack": "RL", "setRpm": "60.00", "setLoad": "0.00", "goodWeatherSpeed": "12.11", "weather": { "significantWaveHeight": "0.68", "primaryWaveHeight": "0.67", "primaryWaveDirection": "315.00", "primaryWavePeriod": "8.51", "secondlyWaveHeight": "0.14", "secondlyWaveDirection": "247.50", "secondlyWavePeriod": "4.37", "swellWaveHeight": "0.68", "swellWaveDirection": "315.00", "swellWavePeriod": "8.51", "windSeaWaveHeight": "0.02", "windSeaWaveDirection": "247.50", "windSeaWavePeriod": "2.47", "currentU": "0.28", "currentV": "-0.11", "windU": "6.20", "windV": "3.09", "currentFactor": "-0.2949", "weatherFactor": "-0.08" } } ] } } } ] } } ] }

Hire Bunker (GET) Data

Data Name Hire Bunker Cost Data
Format JSON
Region Global
Update Vessel Reporting Time
Average Size 4 K
Item Key Name Item Code at JSON Output Format Sample Value Unit
<IMO Number> Vessel IMO number Hash 999999
LatestReceived Latest received hire bunker cost data Hash
bunker Bunker data Array
unit Bunker item unit String USD/mt
label Bunker item sulfur concentrate labeling String FO over 1.0%
type Bunker item type String hsfo
value Bunker item value String 500
updateTime Latest received hire bunker cost data date and time String 2020-06-04T07:38:58Z UTC
hire Hire data Hash
unit Hire data unit String USD/day
value Hire data value String 10000
VoyagePlanning Hire bunker cost data applied on vessel’s voyage planning data Hash
bunker Bunker data Array
unit Bunker item unit String USD/mt
label Bunker item sulfur concentrate labeling String FO over 1.0%
type Bunker item type String hsfo
value Bunker item value String 500
updateTime Latest update voyage planning data date and time String 2020-06-04T07:38:58Z UTC
voyageInfo Voyage planning information Hash
arrivalInfo Arrival information Hash
portName Arrival port name String URAGA SUIDO
portCode Arrival port code String URG
point Arrival position data Hash
lon Arrival longitude data String 8386.8 Minutes
lat Arrival latitude data String 2112.5 Minutes
departureInfo Departure information Hash
portName Departure port name String NEW WESTMINSTER
portCode Departure port code String NWM
point Departure position data Hash
lon Departure longitude data String -7374.6 Minutes
lat Departure latitude data String 2951.9 Minutes
hire Hire data Hash
unit Hire data unit String USD/day
value Hire data value String 10000
Sample { "tropCount": "1", "updateTime": "2016-06-05T20:59:53", "tropInfo": [ { "tropName": "THREE", "tropID": "2016023NAAA", "tropType": "HUR", "issueTime": "2016-06-05T21:00:00", "analysisInfolist": { "analysisInfo": [ { "class": "TD", "validTime": "2016-06-05T18:00:00", "point": { "lat": 22.7, "lon": -88.1 }, "windspeed_10min_max": 30, "pressure": 1005, "gusts": 45, "galeForceWindArea": {}, "stormForceWindArea": {}, "tropSpeed": 10, "tropHeading": 360 } ] }, "forecastInfolist": { "forecastInfo": [ { "class": "TD", "validTime": "2016-06-05T21:00:00", "point": { "lat": 23.2, "lon": -88 }, "windspeed_10min_max": 30, "pressure": 1005, "gusts": 45, "galeForceWindArea": {}, "stormForceWindArea": {}, "tropSpeed": 11, "tropHeading": 10 } ] }, "trackInfolist": { "trackInfo": [ { "class": "TD", "validTime": "2016-06-05T00:00:00", "point": { "lat": 18.5, "lon": -87.5 }, "windspeed_10min_max": 25, "pressure": 1006, "gusts": 35, "galeForceWindArea": {}, "stormForceWindArea": {}, "tropSpeed": 12, "tropHeading": 340 } ] } } ] }
Bunker Type at JSON Sulfur Concentrate Labeling
hsfo FO over 1.0%
lsfo FO max 1.0%
vlsfo FO max 0.5%
uls FO max 0.1%
uls GO over 0.5%
msgo GO max 0.5%
lsgo GO max 0.1%
hsdo DO over 0.5%
msdo DO max 0.5%
lsdo DO max 0.1%

Hire Bunker (PUT) Data

Data Name Hire Bunker Cost Data
Format JSON
Region Global
Update -
Average Size 4 K
Item Code at JSON Output Item Meaning Value Format (Regular Expression) Sample Value Value Type Mandatory Default Value
<IMO Number> Vessel IMO number ^[0-9]+$ 999999 Hash Yes -
bunker - - Array Yes -
type Bunker type
  • hsfo
  • lsfo
  • vlsfo
  • uls
  • hsgo
  • msgo
  • lsgo
  • hsdo
  • msdo
  • lsdo
  • hsfo String Yes -
    unit Bunker cost unit USD/mt USD/mt String No USD/mt
    value Bunker cost value ^[0-9]+$ 500 Integer No N/A
    hire - - Hash Yes -
    unit Hire cost unit USD/day USD/day String No USD/day
    value Hire cost value ^[0-9]+$ 20000 Integer No N/A
    Sample { "999999": { "bunker": [ { "type": "hsfo", "unit": "USD/mt", "value": 500 }, { "type": "lsfo", "unit": "USD/mt", "value": null }, { "type": "vlsfo", "unit": "USD/mt", "value": null }, { "type": "uls", "unit": "USD/mt", "value": null }, { "type": "hsgo", "unit": "USD/mt", "value": null }, { "type": "msgo", "unit": "USD/mt", "value": null }, { "type": "lsgo", "unit": "USD/mt", "value": null }, { "type": "hsdo", "unit": "USD/mt", "value": 700 }, { "type": "msdo", "unit": "USD/mt", "value": null }, { "type": "lsdo", "unit": "USD/mt", "value": null } ], "hire": { "unit": "USD/day", "value": 300000 } } }
    Bunker Type at JSON Sulfur Concentrate Labeling
    hsfo FO over 1.0%
    lsfo FO max 1.0%
    vlsfo FO max 0.5%
    uls FO max 0.1%
    uls GO over 0.5%
    msgo GO max 0.5%
    lsgo GO max 0.1%
    hsdo DO over 0.5%
    msdo DO max 0.5%
    lsdo DO max 0.1%

    QRT

    Data Name QRT (Quick Report Template) Data / Vessel Report Data
    Format JSON / XML
    Region Global
    Update Vessel Reporting Time
    Forecast Duration -
    Time Pitch -
    Average Size 2 M - 7 M (Based on Total Report)
    Sample JSON [ { "data":{ "arr_berth_master_eta":"2018-04-22T06:00:00Z", "arr_berth_master_eta_tzoffset":"600", "arr_port_code":"BRI", "arr_port_name":"PORT MORESBY", "arr_ps_master_eta":"2018-04-22T05:00:00Z", "arr_ps_master_eta_average_speed":"12", "arr_ps_master_eta_tzoffset":"600", "arr_ps_requested_eta_margin":"0", "callsign_repo":"xxxxxx", "draft_aft":"7.79", "draft_fore":"7.47", "drft_es_end_time":"2018-04-22T04:00:00Z", "drft_es_end_time_tzoffset":"600", "imo_num_repo":"xxxxxx", "lat":"-1260.0", "lon":"9085.0", "messagefrom":"xxxxxx@xxxxxx", "messageid":"xxxxxx", "noon_time":"2018-04-22T02:00:00Z", "noon_time_tzoffset":"600", "nton_average_rpm":"84.3", "nton_average_speed":"12.21", "nton_cons_ae_hsdo":"0", "nton_cons_ae_hsfo":"0.11", "nton_cons_ae_hsgo":"0", "nton_cons_ae_lsdo":"0", "nton_cons_ae_lsfo":"0", "nton_cons_ae_lsgo":"0", "nton_cons_ae_totaldo":"0", "nton_cons_ae_totalfo":"0.11", "nton_cons_ae_totalgo":"0", "nton_cons_me_hsdo":"0", "nton_cons_me_hsfo":"4.02", "nton_cons_me_hsgo":"0", "nton_cons_me_lsdo":"0", "nton_cons_me_lsfo":"0", "nton_cons_me_lsgo":"0", "nton_cons_me_totaldo":"0", "nton_cons_me_totalfo":"4.02", "nton_cons_me_totalgo":"0", "nton_cons_total_hsdo":"0.00", "nton_cons_total_hsfo":"4.13", "nton_cons_total_hsgo":"0.00", "nton_cons_total_lsdo":"0.00", "nton_cons_total_lsfo":"0.00", "nton_cons_total_lsgo":"0.00", "nton_cons_total_totaldo":"0.00", "nton_cons_total_totalfo":"4.13", "nton_cons_total_totalgo":"0.00", "nton_slip":"17.1", "rcpt":"xxxxxx@sea.wni.com", "remaining_distance_to_ps":"12", "report_type_repo":"DRIFTING NOON REPORT", "rob_hsdo":"0", "rob_hsfo":"870.86", "rob_hsgo":"0", "rob_lsdo":"0", "rob_lsfo":"0", "rob_lsgo":"243.50", "rob_totaldo":"0", "rob_totalfo":"870.86", "rob_totalgo":"243.50", "second_port_code":"BRI", "second_port_master_eta":"2018-04-14T12:00:00Z", "second_port_name":"BRISBANE, QLD", "sent_time":"2018-04-23T05:37:37Z", "steaming_distance":"58", "steaming_hours":"285", "swell_dir":"350", "swell_height":"1.0", "third_port_code":"PKE", "third_port_master_eta":"2018-04-16T16:00:00Z", "third_port_name":"PORT KEMBLA, NSW", "vessel_name_repo":"xxxxxx", "weather_condition":"o", "wind_dir":"355", "wind_speed":"8", "wni_ship_num":"xxxxxx" }, "disable_flag":"f" } ]
    XML <?xml version="1.0" encoding="UTF-8"?> <reportlist> <report> <data> <arr_berth_master_eta>2018-04-22T06:00:00Z</arr_berth_master_eta> <arr_berth_master_eta_tzoffset>600</arr_berth_master_eta_tzoffset> <arr_port_code>BRI</arr_port_code> <arr_port_name>PORT MORESBY</arr_port_name> <arr_ps_master_eta>2018-04-22T05:00:00Z</arr_ps_master_eta> <arr_ps_master_eta_average_speed>12</arr_ps_master_eta_average_speed> <arr_ps_master_eta_tzoffset>600</arr_ps_master_eta_tzoffset> <arr_ps_requested_eta_margin>0</arr_ps_requested_eta_margin> <callsign_repo>xxxxxx</callsign_repo> <draft_aft>7.79</draft_aft> <draft_fore>7.47</draft_fore> <drft_es_end_time>2018-04-22T04:00:00Z</drft_es_end_time> <drft_es_end_time_tzoffset>600</drft_es_end_time_tzoffset> <imo_num_repo>xxxxxx</imo_num_repo> <lat>-1260.0</lat> <lon>9085.0</lon> <messagefrom>xxxxxx@xxxxxx</messagefrom> <messageid>xxxxxx</messageid> <noon_time>2018-04-22T02:00:00Z</noon_time> <noon_time_tzoffset>600</noon_time_tzoffset> <nton_average_rpm>84.3</nton_average_rpm> <nton_average_speed>12.21</nton_average_speed> <nton_cons_ae_hsdo>0</nton_cons_ae_hsdo> <nton_cons_ae_hsfo>0.11</nton_cons_ae_hsfo> <nton_cons_ae_hsgo>0</nton_cons_ae_hsgo> <nton_cons_ae_lsdo>0</nton_cons_ae_lsdo> <nton_cons_ae_lsfo>0</nton_cons_ae_lsfo> <nton_cons_ae_lsgo>0</nton_cons_ae_lsgo> <nton_cons_ae_totaldo>0</nton_cons_ae_totaldo> <nton_cons_ae_totalfo>0.11</nton_cons_ae_totalfo> <nton_cons_ae_totalgo>0</nton_cons_ae_totalgo> <nton_cons_me_hsdo>0</nton_cons_me_hsdo> <nton_cons_me_hsfo>4.02</nton_cons_me_hsfo> <nton_cons_me_hsgo>0</nton_cons_me_hsgo> <nton_cons_me_lsdo>0</nton_cons_me_lsdo> <nton_cons_me_lsfo>0</nton_cons_me_lsfo> <nton_cons_me_lsgo>0</nton_cons_me_lsgo> <nton_cons_me_totaldo>0</nton_cons_me_totaldo> <nton_cons_me_totalfo>4.02</nton_cons_me_totalfo> <nton_cons_me_totalgo>0</nton_cons_me_totalgo> <nton_cons_total_hsdo>0.00</nton_cons_total_hsdo> <nton_cons_total_hsfo>4.13</nton_cons_total_hsfo> <nton_cons_total_hsgo>0.00</nton_cons_total_hsgo> <nton_cons_total_lsdo>0.00</nton_cons_total_lsdo> <nton_cons_total_lsfo>0.00</nton_cons_total_lsfo> <nton_cons_total_lsgo>0.00</nton_cons_total_lsgo> <nton_cons_total_totaldo>0.00</nton_cons_total_totaldo> <nton_cons_total_totalfo>4.13</nton_cons_total_totalfo> <nton_cons_total_totalgo>0.00</nton_cons_total_totalgo> <nton_slip>17.1</nton_slip> <rcpt>xxxxxx@sea.wni.com</rcpt> <remaining_distance_to_ps>12</remaining_distance_to_ps> <report_type_repo>DRIFTING NOON REPORT</report_type_repo> <rob_hsdo>0</rob_hsdo> <rob_hsfo>870.86</rob_hsfo> <rob_hsgo>0</rob_hsgo> <rob_lsdo>0</rob_lsdo> <rob_lsfo>0</rob_lsfo> <rob_lsgo>243.50</rob_lsgo> <rob_totaldo>0</rob_totaldo> <rob_totalfo>870.86</rob_totalfo> <rob_totalgo>243.50</rob_totalgo> <second_port_code>BRI</second_port_code> <second_port_master_eta>2018-04-14T12:00:00Z</second_port_master_eta> <second_port_name>BRISBANE, QLD</second_port_name> <sent_time>2018-04-23T05:37:37Z</sent_time> <steaming_distance>58</steaming_distance> <steaming_hours>285</steaming_hours> <swell_dir>350</swell_dir> <swell_height>1.0</swell_height> <third_port_code>PKE</third_port_code> <third_port_master_eta>2018-04-16T16:00:00Z</third_port_master_eta> <third_port_name>PORT KEMBLA, NSW</third_port_name> <vessel_name_repo>xxxxxx</vessel_name_repo> <weather_condition>o</weather_condition> <wind_dir>355</wind_dir> <wind_speed>8</wind_speed> <wni_ship_num>xxxxxx</wni_ship_num> </data> <disable_flag>f</disable_flag> </report> </reportlist>

    Sea Margin Data

    Data Name Sea Margin
    Format JSON / JSONP
    Region Global
    Update -
    Forecast Duration -
    Time Pitch -
    Average Size 4 K
    No Data Value -9999999
    Route Type Item Category Item Name Description Unit/Format Values Type
    Shortest without WF, CF - shortest_without_wfcf Geographically shortest route without weather factor and current factor - -
    Shortest - shortest Geographically shortest route with weather factor and current factor - -
    Frequently Navigated - frequently_navigated Frequently navigated route with weather factor and current factor -
    Shortest without WF, CF - distance Distance of route nm (nautical miles) Float
    Shortest without WF, CF days days Estimated passage days Day Float
    Shortest without WF, CF days difference No data in this column. Days of "shortest_without_wfcf" is used as basis of comparison Day Float
    Shortest without WF, CF days % No data in this column. Days of "shortest_without_wfcf" is used as basis of comparison % Float
    Shortest without WF, CF - Fuel Estimated fuel oil consumption MT Float
    Shortest without WF, CF speed avg No data in this column. Knot Float
    Shortest without WF, CF speed wf No data in this column. Knot Float
    Shortest without WF, CF speed cf No data in this column. Knot Float
    Shortest - distance Distance of route nm (nautical miles) Float
    Shortest days days Estimated passage days Day Float
    Shortest days difference Difference of passage days between "Shortest" and "Shortest without WF, CF" Day Float
    Shortest days % Percentage of difference of passage days % Float
    Shortest - Fuel Estimated fuel oil consumption MT Float
    Shortest speed avg Average speed Knot Float
    Shortest speed wf Weather factor Knot Float
    Shortest speed cf Current factor Knot Float
    Frequently Navigated - distance Distance of route nm (nautical miles) Float
    Frequently Navigated days days Estimated passage days Day Float
    Frequently Navigated days difference Difference of passage days between "Frequently Navigated" and "Shortest without WF, CF" Day Float
    Frequently Navigated days % Percentage of difference passage days % Float
    Frequently Navigated - Fuel Estimated fuel oil consumption MT Float
    Frequently Navigated speed avg Average speed Knot Float
    Frequently Navigated speed wf Weather factor Knot Float
    Frequently Navigated speed cf Current factor Knot Float
    Sample { "leginfo": [ { "shortest_without_wfcf": { "distance": { "value": 7950, "unit": "nm" }, "days": { "days": { "value": 27.6, "unit": "days" }, "difference": { "value": -9999999, "unit": "days" }, "sea_margin": { "value": -9999999, "unit": "%" } }, "fuel_mt": { "value": 828.1, "unit": "mt" }, "speed": { "avg": { "value": -9999999, "unit": "knot" }, "wf": { "value": -9999999, "unit": "knot" }, "cf": { "value": -9999999, "unit": "knot" } } }, "shortest": { "distance": { "value": 7950, "unit": "nm" }, "days": { "days": { "value": 29.3, "unit": "days" }, "difference": { "value": 1.7, "unit": "days" }, "sea_margin": { "value": 6.2, "unit": "%" } }, "fuel_mt": { "value": 880.2, "unit": "mt" }, "speed": { "avg": { "value": 11.4, "unit": "knot" }, "wf": { "value": -0.8, "unit": "knot" }, "cf": { "value": 0.1, "unit": "knot" } } }, "frequently_navigated": { "distance": { "value": 8144, "unit": "nm" }, "days": { "days": { "value": 30.9, "unit": "days" }, "difference": { "value": 3.3, "unit": "days" }, "sea_margin": { "value": 12, "unit": "%" } }, "fuel_mt": { "value": 927.8, "unit": "mt" }, "speed": { "avg": { "value": 11.1, "unit": "knot" }, "wf": { "value": -1.1, "unit": "knot" }, "cf": { "value": 0.1, "unit": "knot" } } }, "departure_port": "OSA", "arrival_port": "BAL" } ] }

    Sea Margin(Area to Area) Data

    Data Name Sea Margin(Area to Area)
    Format JSON / JSONP
    Region Global
    Update -
    Forecast Duration -
    Time Pitch -
    Average Size 4 K
    No Data Value -9999999
    Route Type Item Category Item Name Description Unit/Format Values Type
    - - ship_type Ship type - String
    - - ship_size Ship size - String
    - - loading Loading condition of the ship String
    Departure Area - code Departure area name Area Code String
    Departure Area - name Departure area name - String
    Arrival Area - code Arrival area name Area Code String
    Arrival Area - name Arrival area name - String
    Calm Sea Speed speed calm_sea_speed Speed of calm sea as a base for calculation Knot Float
    Annual Sea Margin days annual_sea_margin Annual percentage of passage days difference % Float
    Total Voyages - all Total voyages within the analysis - String
    Total Voyages - winter Winter(Dec, Jan, Feb) voyages within the analysis - String
    Total Voyages - spring Spring(Mar, Apr, May) voyages within the analysis - String
    Total Voyages - summer Summer(Jun, Jul, Aug) voyages within the analysis - String
    Total Voyages - autumn Autumn(Sep, Oct, Nov) voyages within the analysis - String
    SimulationInfo Monthly days sea_margin Percentage of passage days difference % Float
    SimulationInfo Monthly speed avg_speed Average speed Knot Float
    SimulationInfo Monthly speed wf Weather factor Knot Float
    SimulationInfo Monthly speed cf Current factor Knot Float
    Sample { "leginfo": [ { "ship_type": "Bulker", "ship_size": "Handysize", "loading": "Laden", "departurearea": { "code": "1", "name": "JAPAN" }, "arrivalarea": { "code": "2", "name": "NORTH CHINA" }, "calm_sea_speed": { "value": 13.0, "unit": "knot" }, "annual_sea_margin": { "value": 20.8, "unit": "%" }, "total_voyages": { "all": "105", "winter": "21", "spring": "39", "summer": "20", "autumn": "25" } "simulationinfo": { "january": { "sea_margin": { "value": 21.9, "unit": "%" }, "wf": { "value": -1.0, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 11.8, "unit": "knot" } }, "february": { "sea_margin": { "value": 18.6, "unit": "%" }, "wf": { "value": -0.7, "unit": "knot" }, "cf": { "value": -0.2, "unit": "knot" }, "avg_speed": { "value": 12.1, "unit": "knot" } }, "march": { "sea_margin": { "value": 23.9, "unit": "%" }, "wf": { "value": -0.8, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 11.9, "unit": "knot" } }, "april": { "sea_margin": { "value": 22.5, "unit": "%" }, "wf": { "value": -0.6, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 12.1, "unit": "knot" } }, "may": { "sea_margin": { "value": 19.2, "unit": "%" }, "wf": { "value": -0.3, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 12.4, "unit": "knot" } }, "june": { "sea_margin": { "value": 20.2, "unit": "%" }, "wf": { "value": -0.3, "unit": "knot" }, "cf": { "value": -0.4, "unit": "knot" }, "avg_speed": { "value": 12.3, "unit": "knot" } }, "july": { "sea_margin": { "value": 20.6, "unit": "%" }, "wf": { "value": -0.4, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 12.3, "unit": "knot" } }, "august": { "sea_margin": { "value": 21.0, "unit": "%" }, "wf": { "value": -0.4, "unit": "knot" }, "cf": { "value": -0.4, "unit": "knot" }, "avg_speed": { "value": 12.3, "unit": "knot" } }, "september": { "sea_margin": { "value": 17.7, "unit": "%" }, "wf": { "value": -0.3, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 12.5, "unit": "knot" } }, "october": { "sea_margin": { "value": 17.9, "unit": "%" }, "wf": { "value": -0.4, "unit": "knot" }, "cf": { "value": -0.1, "unit": "knot" }, "avg_speed": { "value": 12.4, "unit": "knot" } }, "november": { "sea_margin": { "value": 24.0, "unit": "%" }, "wf": { "value": -1.0, "unit": "knot" }, "cf": { "value": -0.2, "unit": "knot" }, "avg_speed": { "value": 11.8, "unit": "knot" } }, "december": { "sea_margin": { "value": 21.6, "unit": "%" }, "wf": { "value": -0.9, "unit": "knot" }, "cf": { "value": -0.3, "unit": "knot" }, "avg_speed": { "value": 11.8, "unit": "knot" } } } } ] }

    Sea Margin(Area to Area) Area Table

    No. Area Code Area Name
    1 1 JAPAN
    2 2 NORTH CHINA
    3 3 SINGAPORE/INDOCHINA
    4 4 SOUTH EAST ASIA
    5 5 PAPUA NEW GUINEA
    6 6 NORTH WEST AUSTRALIA
    7 7 SOUTH WEST AUSTRALIA
    8 8 SOUTH EAST AUSTRALIA
    9 9 NORTH EAST AUSTRALIA
    10 10 NEW ZEALAND
    11 11 HAWAII
    12 12 ALASKA
    13 13 ALEUTIAN ISLANDS
    14 14 PACIFIC NORTHWEST
    15 15 CALIFORNIA
    16 16 CENTRAL AMERICA
    17 17 COLUMBIA/ECUADOR/PERU
    18 18 CHILE
    19 19 PANAMA
    20 20 GREAT LAKES/CANADA
    21 21 US NORTH EAST COAST
    22 22 US SOUTH EAST COAST
    23 23 US GULF
    24 24 CARIBBEAN
    25 25 BRAZIL
    26 26 NE OF SOUTH AMERICA
    27 27 URUGUAY/ARGENTINA
    28 28 CAPE HORN
    29 29 BALTIC SEA
    30 30 NORTH SEA
    31 31 NORWEGIAN SEA
    32 32 WEST UK
    33 33 SPAIN/PORTUGAL
    34 34 GIBRALTAR
    35 35 MEDITERANIA
    36 36 CANARY ISLANDS
    37 37 CENTRAL AFRICA
    38 38 ANGOLA/S.W.AFRICA
    39 39 CAPE OF GOOD HOPE
    40 40 EAST AFRICA
    41 41 RED SEA
    42 42 WEST INDIA/PAKISTAN
    43 43 EAST INDIA
    44 44 PERSIAN GULF
    45 45 MOZAMBIQUE/MALAGASY

    Tonnage Allocation Planner Data

    Data Name Tonnage Allocation Planner
    Format JSON / JSONP
    Region Global
    Update -
    Forecast Duration -
    Time Pitch -
    Average Size 250 K
    No Data Value -9999999
    Route Type Item -> Sub Item Category Item Name Description Unit/Format Values Type
    Shortest - shortest Shortest distance route - -
    WNI Recomm 1 - wni_recomm1 Weathernews recommended route - -
    Shortest / WNI Recomm 1 ports departure_port_name Departure port name - String
    Shortest / WNI Recomm 1 ports departure_port_code Weathernews departure port code - String
    Shortest / WNI Recomm 1 ports arrival_port_name Arrival port name - String
    Shortest / WNI Recomm 1 ports arrival_port_code Weathernews arrival port code - String
    Shortest / WNI Recomm 1 ports vessel_condition Vessel loading condition
    • L: Laden
    • B: Ballast
    String
    Shortest / WNI Recomm 1 ports etd_utc Estimated time of departure (UTC time) UTC String / (mm/dd hh:mm)
    Shortest / WNI Recomm 1 ports eta_utc Estimated time of arrival (UTC time) UTC String / (mm/dd hh:mm)
    Shortest / WNI Recomm 1 ports etd_lt Estimated time of departure (Local time) LT String / (mm/dd hh:mm)
    Shortest / WNI Recomm 1 ports eta_lt Estimated time of arrival (Local time) LT String / (mm/dd hh:mm)
    Shortest / WNI Recomm 1 ports -> distance outside_eca Distance outside ECA (Emission Control Area) nm (nautical miles) Float
    Shortest / WNI Recomm 1 ports -> distance inside_eca Distance inside ECA (Emission Control Area) nm (nautical miles) Float
    Shortest / WNI Recomm 1 ports -> days outside_eca Estimated days outside ECA (Emission Control Area) Day Float
    Shortest / WNI Recomm 1 ports -> days inside_eca Estimated days inside ECA (Emission Control Area) Day Float
    Shortest / WNI Recomm 1 ports -> days dep_port_staying Port stay days Day Float
    Shortest / WNI Recomm 1 ports -> fuel ifo Estimated fuel oil consumption MT Float
    Shortest / WNI Recomm 1 ports -> fuel eca Estimated fuel oil consumption inside ECA (Emission Control Area) MT Float
    Shortest / WNI Recomm 1 ports -> speed average Average speed Knot Float
    Shortest / WNI Recomm 1 ports -> speed wf Weather factor Knot Float
    Shortest / WNI Recomm 1 ports -> speed cf Current factor Knot Float
    Shortest / WNI Recomm 1 sub_total -> distance outside_eca Subtotal of distance outside ECA (Emission Control Area) nm (nautical miles) Float
    Shortest / WNI Recomm 1 sub_total -> distance inside_eca Subtotal of distance inside ECA (Emission Control Area) nm (nautical miles) Float
    Shortest / WNI Recomm 1 sub_total -> days inside_eca Subtotal of estimated days inside ECA (Emission Control Area) Day Float
    Shortest / WNI Recomm 1 sub_total -> days outside_eca Subtotal of estimated days outside ECA (Emission Control Area) Day Float
    Shortest / WNI Recomm 1 sub_total -> days dep_port_staying Subotal of port stay days Day Float
    Shortest / WNI Recomm 1 sub_total -> fuel ifo Subtotal of estimated fuel oil consumption MT Float
    Shortest / WNI Recomm 1 sub_total -> fuel eca Subtotal of estimated fuel oil consumption inside ECA (Emission Control Area) MT Float
    Shortest / WNI Recomm 1 total distance Total distance inside and outside ECA (Emission Control Area) nm (nautical miles) Float
    Shortest / WNI Recomm 1 total days Total of estimated passage days inside and outside ECA (Emission Control Area), and total port stay days Day Float
    Shortest / WNI Recomm 1 total -> fuel ifo Total of estimated fuel oil consumption MT Float
    Shortest / WNI Recomm 1 total -> fuel eca Total of estimated fuel oil consumption inside ECA (Emission Control Area) MT Float
    Shortest / WNI Recomm 1 waypoint -> position lat Latitude of route waypoint Minute Float
    Shortest / WNI Recomm 1 waypoint -> position lon Longitude of route waypoint Minute Float
    Shortest / WNI Recomm 1 waypoint -> position datetime Date and time of route waypoint Minute String / (mm/dd hh:mm)
    Sample { "shortest": { "ports": [ { "departure_port_name": "BAYONNE", "departure_port_code": "BYF", "arrival_port_name": "ADANG BAY", "arrival_port_code": "ADG", "etd_utc": "06/15 22:45", "eta_utc": "07/17 05:59", "etd_lt": "06/15 02:45", "eta_lt": "07/17 10:59", "vessel_condition": "L", "distance": { "value": { "outside_eca": 8709, "inside_eca": 0 }, "unit": "nm" }, "days": { "value": { "outside_eca": 29.4, "inside_eca": 0, "dep_port_staying": 3.4 }, "unit": "days" }, "fuels": { "value": { "ifo": 798.35, "eca": 0 }, "unit": "mt" }, "speed": { "value": { "average": 12.3, "wf": 0.1, "cf": 0.3 }, "unit": "knots" } }, { "departure_port_name": "ADANG BAY", "departure_port_code": "ADG", "arrival_port_name": "BAY CITY", "arrival_port_code": "BYC", "etd_utc": "07/17 05:59", "eta_utc": "08/28 23:16", "etd_lt": "07/17 02:59", "eta_lt": "08/28 12:16", "vessel_condition": "B", "distance": { "value": { "outside_eca": 14294, "inside_eca": 1013 }, "unit": "nm" }, "days": { "value": { "outside_eca": 40.6, "inside_eca": 2.8, "dep_port_staying": 0 }, "unit": "days" }, "fuels": { "value": { "ifo": 1962.87, "eca": 140.24 }, "unit": "mt" }, "speed": { "value": { "average": 14.7, "wf": -0.2, "cf": 0 }, "unit": "knots" } } ], "sub_total": { "distance": { "value": { "outside_eca": 23003, "inside_eca": 1013 }, "unit": "nm" }, "days": { "value": { "outside_eca": 70.1, "inside_eca": 2.8, "dep_port_staying": 3.4 }, "unit": "days" }, "fuels": { "value": { "ifo": 2761.22, "eca": 140.24 }, "unit": "mt" } }, "total": { "distance": { "value": 24016, "unit": "nm" }, "days": { "value": 76.3, "unit": "days" }, "fuels": { "value": { "ifo": 2761.22, "eca": 140.24 }, "unit": "mt" } }, "waypoint": [ { "datetime": "06/15 22:45", "positon": { "value": { "lat": 2012, "lon": -120 }, "unit": "minute" } }, { "datetime": "06/16 22:45", "positon": { "value": { "lat": 220, "lon": -90 }, "unit": "minute" } } ] }, "wni_recomm1": { "ports": [ { "departure_port_name": "BAYONNE", "departure_port_code": "BYF", "arrival_port_name": "ADANG BAY", "arrival_port_code": "ADG", "etd_utc": "06/15 22:45", "eta_utc": "07/17 05:59", "etd_lt": "06/15 02:45", "eta_lt": "07/17 10:59", "vessel_condition": "L", "distance": { "value": { "outside_eca": 8709, "inside_eca": 0 }, "unit": "nm" }, "days": { "value": { "outside_eca": 29.4, "inside_eca": 0, "dep_port_staying": 3.4 }, "unit": "days" }, "fuels": { "value": { "ifo": 798.35, "eca": 0 }, "unit": "mt" }, "speed": { "value": { "average": 12.3, "wf": 0.1, "cf": 0.3 }, "unit": "knots" } }, { "departure_port_name": "ADANG BAY", "departure_port_code": "ADG", "arrival_port_name": "BAY CITY", "arrival_port_code": "BYC", "etd_utc": "07/17 05:59", "eta_utc": "08/28 23:16", "etd_lt": "07/17 02:59", "eta_lt": "08/28 12:16", "vessel_condition": "B", "distance": { "value": { "outside_eca": 14294, "inside_eca": 1013 }, "unit": "nm" }, "days": { "value": { "outside_eca": 40.6, "inside_eca": 2.8, "dep_port_staying": 0 }, "unit": "days" }, "fuels": { "value": { "ifo": 1962.87, "eca": 140.24 }, "unit": "mt" }, "speed": { "value": { "average": 14.7, "wf": -0.2, "cf": 0 }, "unit": "knots" } } ], "sub_total": { "distance": { "value": { "outside_eca": 23003, "inside_eca": 1013 }, "unit": "nm" }, "days": { "value": { "outside_eca": 70.1, "inside_eca": 2.8, "dep_port_staying": 3.4 }, "unit": "days" }, "fuels": { "value": { "ifo": 2761.22, "eca": 140.24 }, "unit": "mt" } }, "total": { "distance": { "value": 24016, "unit": "nm" }, "days": { "value": 76.3, "unit": "days" }, "fuels": { "value": { "ifo": 2761.22, "eca": 140.24 }, "unit": "mt" } }, "waypoint": [ { "datetime": "06/15 22:45", "positon": { "value": { "lat": 2012, "lon": -120 }, "unit": "minute" } }, { "datetime": "06/16 22:45", "positon": { "value": { "lat": 220, "lon": -90 }, "unit": "minute" } } ] } }

    TMAX Port Data

    Data Name TMAX Port
    Format JSON / JSONP
    Region Global
    Update Irregular
    Forecast Duration -
    Time Pitch -
    Average Size 4 K / 560 K
    No Data Value -9999999
    Item Name Description Unit/Format Values Type
    port_code Weathrenews port code - String
    port_name Port name - String
    tz_name Time zone area name - String
    country_name Port country name - String
    lat Port latitude position Minute Float
    lon Port longitude position Minute Float
    Sample { "port_list": [ { "port_name": "AABENRAA", "port_code": "AAB", "tz_name": "Europe/Copenhagen", "contry_name": "DENMARK", "position": { "value": { "lat": 3302.166, "lon": 566.496 }, "unit": "minute" } }, { "port_name": "AAHEIM", "port_code": "AAH", "tz_name": "Europe/Oslo", "contry_name": "NORWAY", "position": { "value": { "lat": 3723.126, "lon": 330.492 }, "unit": "minute" } } ] }

    Post Voyage CP Warranty Data

    Data Name Post Voyage CP Warranty
    Format JSON / JSONP
    Region Global
    Update VAR Update Timing
    Average Size 4 K
    No Data Value Empty string ("")
    Item Code at JSON Output Item Meaning Unit/Format Value Type
    ship_name Ship name - String
    imo_num IMO number - String
    voy_num Voyage number - String
    loading_condition Loading condition - String
    eco_speed Economical speed - String
    seg Segment - String
    dep_port Departure port - String
    atd Arrival time departure - String
    arr_port Arrival port - String
    ata Actual time arrival - String
    [loss_saving]time Loss saving time hours String
    [loss_saving]fo Loss saving fuel oil MT/LT String
    [loss_saving]do Loss saving diesel oil MT/LT String
    [loss_saving]fuel_unit Loss saving fuel unit MT/LT String
    is_warranted Being warranted flag - String
    [comment]red Red comment - String
    [comment]yellow Yellow comment - String
    [comment]blue Blue comment - String
    [outside_eca]goodwx_dist Good weather distance at outside ECA (emission control area) NM String
    [outside_eca]goodwx_time Good weather time at outside ECA (emission control area) hours String
    [outside_eca]goodwx_avg_speed Good weather average speed at outside ECA (emission control area) knots String
    [outside_eca]goodwx_current Good weather current at outside ECA (emission control area) knots String
    [outside_eca]goodwx_perf_speed Good weather performance speed at outside ECA (emission control area) knots String
    [outside_eca]goodwx_total_fo Good weather total fuel oil at outside ECA (emission control area) MT String
    [outside_eca]goodwx_total_do Good weather total diesel oil at outside ECA (emission control area) MT String
    [outside_eca]goodwx_daily_fo Good weather daily fuel oil at outside ECA (emission control area) MT/day String
    [outside_eca]goodwx_daily_do Good weather daily diesel oil at outside ECA (emission control area) MT/day String
    [outside_eca]entire_dist Entire distance at outside ECA (emission control area) NM String
    [outside_eca]entire_time Entire time at outside ECA (emission control area) hours String
    [outside_eca]entire_avg_speed Entire average speed at outside ECA (emission control area) knots String
    [outside_eca]entire_current Entire current at outside ECA (emission control area) knots String
    [outside_eca]entire_perf_speed Entire performance speed at outside ECA (emission control area) knots String
    [outside_eca]entire_total_fo Entire total fuel oil at outside ECA (emission control area) MT String
    [outside_eca]entire_total_do Entire total diesel oil at outside ECA (emission control area) MT String
    [outside_eca]entire_daily_fo Entire daily fuel oil at outside ECA (emission control area) MT/day String
    [outside_eca]entire_daily_do Entire daily diesel oil at outside ECA (emission control area) MT/day String
    [inside_eca]goodwx_dist Good weather distance at inside ECA (emission control area) NM String
    [inside_eca]goodwx_time Good weather time at inside ECA (emission control area) hours String
    [inside_eca]goodwx_avg_speed Good weather average speed at inside ECA (emission control area) knots String
    [inside_eca]goodwx_current Good weather current at inside ECA (emission control area) knots String
    [inside_eca]goodwx_perf_speed Good weather performance speed at inside ECA (emission control area) knots String
    [inside_eca]goodwx_total_fo Good weather total fuel oil at inside ECA (emission control area) MT String
    [inside_eca]goodwx_total_do Good weather total diesel oil at inside ECA (emission control area) MT String
    [inside_eca]goodwx_daily_fo Good weather daily fuel oil at inside ECA (emission control area) MT/day String
    [inside_eca]goodwx_daily_do Good weather daily diesel oil at inside ECA (emission control area) MT/day String
    [inside_eca]entire_dist Entire distance at inside ECA (emission control area) NM String
    [inside_eca]entire_time Entire time at inside ECA (emission control area) hours String
    [inside_eca]entire_avg_speed Entire average speed at inside ECA (emission control area) knots String
    [inside_eca]entire_current Entire current at inside ECA (emission control area) knots String
    [inside_eca]entire_perf_speed Entire performance speed at inside ECA (emission control area) knots String
    [inside_eca]entire_total_fo Entire total fuel oil at inside ECA (emission control area) MT String
    [inside_eca]entire_total_do Entire total diesel oil at inside ECA (emission control area) MT String
    [inside_eca]entire_daily_fo Entire daily fuel oil at inside ECA (emission control area) MT/day String
    [inside_eca]entire_daily_do Entire daily diesel oil at inside ECA (emission control area) MT/day String
    [goodwx_definition]goodwx_wind good weather definition of wind knots String
    [goodwx_definition]goodwx_bf good weather definition of wind beaufort beaufort String
    [goodwx_definition]goodwx_windspeed good weather definition of wind speed knots String
    [goodwx_definition]goodwx_dss good weather definition of DSS scale - String
    [goodwx_definition]goodwx_sigwave good weather definition of significant wave meter String
    [goodwx_definition]goodwx_windsea good weather definition of windsea meter String
    [goodwx_definition]gooodwx_swell good weather definition of swell meter String
    [goodwx_definition]goodwx_current good weather definition of current knots String
    [warranted]speed Warranted speed knots String
    [warranted]fo Warranted fuel oil MT String
    [warranted]do Warranted diesel oil MT String
    [allowance]speed Allowance speed knots String
    [allowance]fo Allowance fuel oil MT String
    [allowance]do Allowance diesel oil MT String
    [allowance]speed_unit Allowance speed_unit knots / % String
    [allowance]fuel_unit Allowance fuel unit % / tons String
    rpm Machine RPM - String
    slip Slip % String
    co2_fo Carbon dioxide that is produced from fuel oil MT String
    co2_do Carbon dioxide that is produced from diesel oil MT String
    id Identity Flag - String
    Sample { "co2_do": "4.17", "outside_eca": { "goodwx_daily_do": "0.06", "goodwx_dist": "938", "entire_total_fo": "142.3", "entire_perf_speed": "11.33", "goodwx_total_fo": "77.8", "goodwx_daily_fo": "23.64", "entire_current": "0.04", "entire_daily_do": "0.21", "entire_dist": "1638", "goodwx_current": "0.35", "goodwx_avg_speed": "11.87", "entire_avg_speed": "11.27", "entire_time": "145.3", "entire_total_do": "1.3", "entire_daily_fo": "23.5", "goodwx_total_do": "", "goodwx_time": "79", "goodwx_perf_speed": "11.52" }, "allowance": { "fuel_unit": "tons", "fo": "5", "do": "", "speed": "0.5", "speed_unit": "%" }, "ata": "2019/08/14T17:42:00", "inside_eca": { "goodwx_dist": "", "goodwx_daily_do": "", "entire_total_fo": "", "goodwx_daily_fo": "", "goodwx_total_fo": "", "entire_perf_speed": "", "entire_daily_do": "", "entire_current": "", "goodwx_avg_speed": "", "goodwx_current": "", "entire_dist": "", "entire_total_do": "", "entire_daily_fo": "", "entire_time": "", "entire_avg_speed": "", "goodwx_perf_speed": "", "goodwx_time": "", "goodwx_total_do": "" }, "voy_num": "123A", "co2_fo": "443.18", "rpm": "57.6", "atd": "2019/08/13T02:42:00", "loading_condition": "L", "slip": "4.44", "ship_name": "Ship A", "id": "sid20190000_000000_1", "dep_port": "CRISTOBAL", "comment": { "red": "test", "yellow": "", "blue": "" }, "goodwx_definition": { "goodwx_dss": "", "gooodwx_swell": "", "goodwx_bf": "4", "goodwx_windspeed": "", "goodwx_sigwave": "", "goodwx_current": "No Adv", "goodwx_windsea": "2", "goodwx_wind": "" }, "is_warranted": "true", "arr_port": "PUERTO BOLIVAR", "loss_saving": { "do": "0.36", "time": "0.5", "fo": "-2.65", "fuel_unit": "MT" }, "eco_speed": "U", "warranted": { "do": "", "fo": "23.1", "speed": "11" }, "seg": "2", "imo_num": "1010101" }

    EnRoute CP Warranty Data

    Data Name EnRoute CP Warranty
    Format JSON / JSONP
    Region Global
    Update Vessel Reporting Time
    Average Size 4 K
    No Data Value Empty string ("")
    Item Code at JSON Output Item Meaning Unit/Format Sample Value Value Type
    ship_name Ship name - Ship A String
    imo_num IMO number - 1010101 String
    voy_num Voyage number - 123A String
    loading_condition Loading condition - L String
    cp_warranty CP warranty data Hash String
    [cp_warranty]analyzed_time Analysis creation time <month>-dd/yyyy hh:mm UTC
    Month format:
  • Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Nov
  • Dec
  • Feb-24/2020 04:06 UTC String
    [cp_warranty]def_goodwx Good weather definition - BF 4, Sig. Wave 1.25m (DSS3), No adverse Current String
    [cp_warranty]allwx_avg_speed All weather average speed knots 11.91 String
    [cp_warranty]allwx_perf_speed All weather performance speed knots 12.23 String
    [cp_warranty]allwx_distance All weather distance NM 2850 String
    [cp_warranty]allwx_time All weather time hour 239.2 String
    [cp_warranty]allwx_cf All weather current factor knots -0.22 String
    [cp_warranty]allwx_daily_fo All weather daily fuel oil MT 18.99 String
    [cp_warranty]allwx_daily_dogo All weather daily diesel /gas oil MT 0.1 String
    [cp_warranty]allwx_total_fo All weather total fuel oil MT 189.22 String
    [cp_warranty]allwx_total_dogo All weather total diesel /gas oil MT 1 String
    [cp_warranty]goodwx_avg_speed Good weather average speed knots 12.46 String
    [cp_warranty]goodwx_perf_speed Good weather performance speed knots 12.15 String
    [cp_warranty]goodwx_distance Good weather distance NM 617 String
    [cp_warranty]goodwx_time Good weather time hour 49.5 String
    [cp_warranty]goodwx_sigwave Good weather definition of significant wave height meter 1.25 String
    [cp_warranty]goodwx_cf Good weather current factor knots 0.31 String
    [cp_warranty]goodwx_bf Good weather definition of wind beaufort beaufort 4 String
    [cp_warranty]goodwx_current Good weather definition of ocean current - No adverse Current String
    [cp_warranty]goodwx_daily_fo Good weather daily fuel oil MT 18.98 String
    [cp_warranty]goodwx_daily_dogo Good weather daily diesel/gas oil MT 0.1 String
    [cp_warranty]goodwx_total_fo Good weather total fuel oil MT 39.15 String
    [cp_warranty]goodwx_total_dogo Good weather total diesel/gas oil MT 0.2 String
    [cp_warranty]cp_speed CP warranty speed knots 11.5 String
    [cp_warranty]cp_fo CP warranty fuel oil MT 20.5 String
    [cp_warranty]cp_dogo CP warranty diesel/gas oil MT 0.1 String
    [cp_warranty]cp_fuel_unit CP warranty fuel unit - MT String
    [cp_warranty]allow_speed Allowance speed knots 0.5 String
    [cp_warranty]allow_speed_unit Allowance speed unit - kts String
    [cp_warranty]allow_fo Allowance fuel oil % 5 String
    [cp_warranty]allow_dogo Allowance diesel/gas oil % 5 String
    [cp_warranty]allow_fuel_unit Allowance fuel unit - % String
    [cp_warranty]saving_time Loss or saving time value Unit: Hours
    Value mean:
  • - (minus): Saving
  • + (plus): Loss
  • 1.3 String
    [cp_warranty]saving_time_unit Loss or saving time unit - hrs String
    [cp_warranty]saving_fo Fuel oil over/under-consumption value Unit: MT
    Value mean:
  • - (minus): Saving
  • + (plus): Loss
  • -24.78 String
    [cp_warranty]saving_fuel_unit Fuel oil over/under-consumption unit - MT String
    [cp_warranty]saving_dogo DO/GO over/under-consumption value Unit: MT
    Value mean:
  • - (minus): Saving
  • + (plus): Loss
  • -0.13 String
    [cp_warranty]damage_info_speed Time loss or saving information Value options:
  • over consumption
  • saving
  • (No Over-consumption or Saving)
  • time lost String
    [cp_warranty]damage_info_fo Fuel oil over/under-consumption information Value options:
  • over consumption
  • saving
  • (No Over-consumption or Saving)
  • saving String
    [cp_warranty]damage_info_dogo DO/GO over/under-consumption information Value options:
  • over consumption
  • saving
  • (No Over-consumption or Saving)
  • saving String
    [cp_warranty]comment Comment/remarks - remarks. String
    Sample [ { "ship_name": "Ship A", "imo_num": "1010101", "voy_num": "123A", "loading_condition": "L", "cp_warranty": { "analyzed_time": "Feb-24/2020 04:06 UTC", "def_goodwx": "BF 4, Sig. Wave 1.25m (DSS3), No adverse Current", "allwx_avg_speed": "11.91", "allwx_perf_speed": "12.23", "allwx_distance": "2850", "allwx_time": "239.2", "allwx_cf": "-0.22", "allwx_daily_fo": "18.99", "allwx_daily_dogo": "0.1", "allwx_total_fo": "189.22", "allwx_total_dogo": "1", "goodwx_avg_speed": "12.46", "goodwx_perf_speed": "12.15", "goodwx_distance": "617", "goodwx_time": "49.5", "goodwx_sigwave": "1.25", "goodwx_cf": "0.31", "goodwx_bf": "4", "goodwx_current": "No adverse Current", "goodwx_daily_fo": "18.98", "goodwx_daily_dogo": "0.1", "goodwx_total_fo": "39.15", "goodwx_total_dogo": "0.2", "cp_speed": "11.5", "cp_fo": "20.5", "cp_dogo": "0.1", "cp_fuel_unit": "MT", "allow_speed": "0.5", "allow_speed_unit": "kts", "allow_fo": "5", "allow_dogo": "5", "allow_fuel_unit": "%", "saving_time": "1.3", "saving_time_unit": "hrs", "saving_fo": "-24.78", "saving_fuel_unit": "MT", "saving_dogo": "-0.13", "damage_info_speed": "time lost", "damage_info_fo": "saving", "damage_info_dogo": "saving", "comment": "Comment example." } } ]

    EEOI / AER Data

    Data Name EEOI (Energy Efficiency Operational Indicator) / AER (Annual Efficiency Ratio)
    Format JSON / CSV
    Region Global
    Update End of Leg
    Average Size Average 12 KB (1 Voyage)
    Data Unit Voyage (Berth to Berth)
    No Data Value Empty string ("")
    Item Name Unit Format
    Vessel Type - -
    Vessel Size - -
    Vessel Name - -
    IMO Number - -
    Voyage ID (Voyage Number) - -
    Year - yyyy
    Transport Work (MT*nm) MT*nm -
    CO2 (t) t -
    EEOI (gCO2/tnm) gCO2/tnm -
    Required EEOI (gCO2/tnm) gCO2/tnm -
    Alignment Delta (%) % -
    AER (gCO2/tnm) gCO2/tnm -
    Voyage Error Alert - -
    CIM Leg ID - -
    Vessel Name - -
    IMO Number - -
    Vessel Type - -
    Vessel Size - -
    DWT t -
    Voyage ID (Voyage Number) - -
    Departure Port - -
    Port Operation - -
    Berth Departure Date/Time - yyyy-mm-ddThh:mm:ssZ
    Ring Up Engine Date/Time - yyyy-mm-ddThh:mm:ssZ
    L/B -
  • Laden
  • Ballast
  • Bunkering -
  • Yes
  • No
  • Cargo Owner 1 - -
    Cargo Owner 1 Cargo - -
    Cargo Owner 1 Cargo Loaded Weight t -
    Cargo Owner 1 Cargo Discharged Weight t -
    Arrival / Destination Port - -
    Standby Engine Date/Time - yyyy-mm-ddThh:mm:ssZ
    Berth Arrival Date/Time - yyyy-mm-ddThh:mm:ssZ
    Distance Ring Up Engine to Standby Engine - -
    Distance Berth to Berth - -
    FO Over 1.0% (mt) mt -
    FO Max 1.0% (mt) mt -
    FO Max 0.5% (mt) RMA-RMD mt -
    FO Max 0.5% (mt) RME-RMK mt -
    FO Max 0.1% (mt) mt -
    GO Over 0.5% (mt) mt -
    GO Max 0.5% (mt) mt -
    GO Max 0.1% (mt) mt -
    DO Over 0.5% (mt) mt -
    DO Max 0.5% (mt) mt -
    DO Max 0.1% (mt) mt -
    CO2 HFO (gCO2) RME-RMK gCO2 -
    CO2 LFO (gCO2) RMA-RMD gCO2 -
    CO2 DO/GO (gCO2) gCO2 -
    Total CO2 (gCO2) gCO2 -
    EEOI (gCO2/tnm) gCO2/tnm -
    AER (gCO2/tnm) gCO2/tnm -
    Leg Error Alert - -
    Sample(JSON) [ { "CO2 (t)": 4109.6654, "AER (gCO2/tnm)": 2.6291260649584, "Voyage ID (Voyage Number)": 65, "Vessel Name": "XXXXXX", "EEOI (gCO2/tnm)": 2.68214658834096, "Transport Work (MT*nm)": 1532229975, "Alignment Delta (%)": -0.426891754628001, "Year": 2021, "Vessel Size": "Cape", "IMO Number": 9999999, "legs": [ { "Cargo Owner 2 Cargo Discharged Weight": "N/A", "Cargo Owner 10 Cargo": "N/A", "Departure Port": "MUNDRA", "CIM Leg ID": "9999999_CIM_MDY1_CIM_MUN_CIM_20201230084200", "Cargo Owner 1 Cargo Loaded Weight": 0, "Cargo Owner 2 Cargo Loaded Weight": "N/A", "Vessel Name": "XXXXXX", "Cargo Owner 7 Cargo Loaded Weight": "N/A", "EEOI (gCO2/tnm)": "N/A", "Cargo Owner 6 Cargo Loaded Weight": "N/A", "GO Max 0.5% (mt)": 0, "Vessel Size": "Cape", "Cargo Owner 3 Cargo": "N/A", "Cargo Owner 7 Cargo Discharged Weight": "N/A", "Port Operation": "N/A", "DWT": 180000, "GO Max 0.1% (mt)": 0, "Cargo Owner 1 Cargo": "N/A", "Cargo Owner 4 Cargo Discharged Weight": "N/A", "CO2 HFO (gCO2) RME-RMK": 0, "Total CO2 (gCO2)": 0, "Ring Up Engine Date/Time": "2020-12-30T08:42:00Z", "Voyage ID (Voyage Number)": 65, "CO2 DO/GO (gCO2)": 0, "Cargo Owner 1 Cargo Discharged Weight": 0, "Cargo Owner 4 Cargo": "N/A", "Berth Arrival Date/Time": "2021-01-07T23:06:00Z", "Standby Engine Date/Time": "2021-01-07T23:06:00Z", "Cargo Owner 5 Cargo Loaded Weight": "N/A", "Cargo Owner 7 Cargo": "N/A", "L/B": "Ballast", "Leg Error Alert": "", "Cargo Owner 9 Cargo Discharged Weight": "N/A", "Cargo Owner 9": "N/A", "Cargo Owner 6 Cargo Discharged Weight": "N/A", "Cargo Owner 10 Cargo Loaded Weight": "N/A", "Distance Berth to Berth": 0, "Cargo Owner 3": "N/A", "Cargo Owner 9 Cargo": "N/A", "Cargo Owner 4": "N/A", "DO Max 0.1% (mt)": 0, "CO2 LFO (gCO2) RMA-RMD": 0, "Cargo Owner 1": "N/A", "AER (gCO2/tnm)": "N/A", "Cargo Owner 2": "N/A", "Berth Departure Date/Time": "2020-12-30T08:42:00Z", "Cargo Owner 7": "N/A", "Cargo Owner 8": "N/A", "Cargo Owner 5": "N/A", "Cargo Owner 6": "N/A", "FO Max 0.5% (mt) RME-RMK": 0, "Cargo Owner 3 Cargo Discharged Weight": "N/A", "FO Max 0.1% (mt)": 0, "Cargo Owner 6 Cargo": "N/A", "FO Over 1.0% (mt)": 0, "Vessel Type": "BULK CARRIER", "Cargo Owner 9 Cargo Loaded Weight": "N/A", "Cargo Owner 4 Cargo Loaded Weight": "N/A", "Cargo Owner 10": "N/A", "DO Over 0.5% (mt)": 0, "Cargo Owner 8 Cargo": "N/A", "Cargo Owner 8 Cargo Loaded Weight": "N/A", "FO Max 0.5% (mt) RMA-RMD": 0, "Cargo Owner 3 Cargo Loaded Weight": "N/A", "DO Max 0.5% (mt)": 0, "Cargo Owner 8 Cargo Discharged Weight": "N/A", "Distance Ring Up Engine to Standby Engine": 2784, "Bunkering": "N/A", "Cargo Owner 5 Cargo": "N/A", "Arrival / Destination Port": "PORT LOUIS", "Cargo Owner 5 Cargo Discharged Weight": "N/A", "FO Max 1.0% (mt)": 0, "IMO Number": 9999999, "GO Over 0.5% (mt)": 0, "Cargo Owner 10 Cargo Discharged Weight": "N/A", "Cargo Owner 2 Cargo": "N/A" }, { "Cargo Owner 2 Cargo Discharged Weight": "N/A", "Cargo Owner 10 Cargo": "N/A", "Departure Port": "PORT LOUIS", "CIM Leg ID": "9999999_CIM_MDY1_CIM_POL_CIM_20210108133000", "Cargo Owner 1 Cargo Loaded Weight": 0, "Cargo Owner 2 Cargo Loaded Weight": "N/A", "Vessel Name": "XXXXXX", "Cargo Owner 7 Cargo Loaded Weight": "N/A", "EEOI (gCO2/tnm)": "N/A", "Cargo Owner 6 Cargo Loaded Weight": "N/A", "GO Max 0.5% (mt)": 0, "Vessel Size": "Cape", "Cargo Owner 3 Cargo": "N/A", "Cargo Owner 7 Cargo Discharged Weight": "N/A", "Port Operation": "N/A", "DWT": 180000, "GO Max 0.1% (mt)": 0, "Cargo Owner 1 Cargo": "N/A", "Cargo Owner 4 Cargo Discharged Weight": "N/A", "CO2 HFO (gCO2) RME-RMK": 0, "Total CO2 (gCO2)": 0, "Ring Up Engine Date/Time": "2021-01-08T13:30:00Z", "Voyage ID (Voyage Number)": 65, "CO2 DO/GO (gCO2)": 0, "Cargo Owner 1 Cargo Discharged Weight": 0, "Cargo Owner 4 Cargo": "N/A", "Berth Arrival Date/Time": "2021-01-25T08:00:00Z", "Standby Engine Date/Time": "2021-01-25T08:00:00Z", "Cargo Owner 5 Cargo Loaded Weight": "N/A", "Cargo Owner 7 Cargo": "N/A", "L/B": "Ballast", "Leg Error Alert": "", "Cargo Owner 9 Cargo Discharged Weight": "N/A", "Cargo Owner 9": "N/A", "Cargo Owner 6 Cargo Discharged Weight": "N/A", "Cargo Owner 10 Cargo Loaded Weight": "N/A", "Distance Berth to Berth": 0, "Cargo Owner 3": "N/A", "Cargo Owner 9 Cargo": "N/A", "Cargo Owner 4": "N/A", "DO Max 0.1% (mt)": 0, "CO2 LFO (gCO2) RMA-RMD": 0, "Cargo Owner 1": "N/A", "AER (gCO2/tnm)": "N/A", "Cargo Owner 2": "N/A", "Berth Departure Date/Time": "2021-01-08T13:30:00Z", "Cargo Owner 7": "N/A", "Cargo Owner 8": "N/A", "Cargo Owner 5": "N/A", "Cargo Owner 6": "N/A", "FO Max 0.5% (mt) RME-RMK": 0, "Cargo Owner 3 Cargo Discharged Weight": "N/A", "FO Max 0.1% (mt)": 0, "Cargo Owner 6 Cargo": "N/A", "FO Over 1.0% (mt)": 0, "Vessel Type": "BULK CARRIER", "Cargo Owner 9 Cargo Loaded Weight": "N/A", "Cargo Owner 4 Cargo Loaded Weight": "N/A", "Cargo Owner 10": "N/A", "DO Over 0.5% (mt)": 0, "Cargo Owner 8 Cargo": "N/A", "Cargo Owner 8 Cargo Loaded Weight": "N/A", "FO Max 0.5% (mt) RMA-RMD": 0, "Cargo Owner 3 Cargo Loaded Weight": "N/A", "DO Max 0.5% (mt)": 0, "Cargo Owner 8 Cargo Discharged Weight": "N/A", "Distance Ring Up Engine to Standby Engine": 5481, "Bunkering": "N/A", "Cargo Owner 5 Cargo": "N/A", "Arrival / Destination Port": "ACU", "Cargo Owner 5 Cargo Discharged Weight": "N/A", "FO Max 1.0% (mt)": 0, "IMO Number": 9999999, "GO Over 0.5% (mt)": 0, "Cargo Owner 10 Cargo Discharged Weight": "N/A", "Cargo Owner 2 Cargo": "N/A" }, { "Cargo Owner 2 Cargo Discharged Weight": "N/A", "Cargo Owner 10 Cargo": "N/A", "Departure Port": "ACU", "CIM Leg ID": "9999999_CIM_MDY1_CIM_ACUB_CIM_20210204193000", "Cargo Owner 1 Cargo Loaded Weight": 177075, "Cargo Owner 2 Cargo Loaded Weight": "N/A", "Vessel Name": "XXXXXX", "Cargo Owner 7 Cargo Loaded Weight": "N/A", "EEOI (gCO2/tnm)": 2.68214658834096, "Cargo Owner 6 Cargo Loaded Weight": "N/A", "GO Max 0.5% (mt)": 0, "Vessel Size": "Cape", "Cargo Owner 3 Cargo": "N/A", "Cargo Owner 7 Cargo Discharged Weight": "N/A", "Port Operation": "N/A", "DWT": 180000, "GO Max 0.1% (mt)": 0, "Cargo Owner 1 Cargo": "N/A", "Cargo Owner 4 Cargo Discharged Weight": "N/A", "CO2 HFO (gCO2) RME-RMK": 4105.4976, "Total CO2 (gCO2)": 4109.6654, "Ring Up Engine Date/Time": "2021-02-04T19:30:00Z", "Voyage ID (Voyage Number)": 65, "CO2 DO/GO (gCO2)": 4.1678, "Cargo Owner 1 Cargo Discharged Weight": 0, "Cargo Owner 4 Cargo": "N/A", "Berth Arrival Date/Time": "2021-03-06T16:12:00Z", "Standby Engine Date/Time": "2021-03-06T13:00:00Z", "Cargo Owner 5 Cargo Loaded Weight": "N/A", "Cargo Owner 7 Cargo": "N/A", "L/B": "Laden", "Leg Error Alert": "", "Cargo Owner 9 Cargo Discharged Weight": "N/A", "Cargo Owner 9": "N/A", "Cargo Owner 6 Cargo Discharged Weight": "N/A", "Cargo Owner 10 Cargo Loaded Weight": "N/A", "Distance Berth to Berth": 8653, "Cargo Owner 3": "N/A", "Cargo Owner 9 Cargo": "N/A", "Cargo Owner 4": "N/A", "DO Max 0.1% (mt)": 1.3, "CO2 LFO (gCO2) RMA-RMD": 0, "Cargo Owner 1": "N/A", "AER (gCO2/tnm)": 2.6291260649584, "Cargo Owner 2": "N/A", "Berth Departure Date/Time": "2021-02-04T19:30:00Z", "Cargo Owner 7": "N/A", "Cargo Owner 8": "N/A", "Cargo Owner 5": "N/A", "Cargo Owner 6": "N/A", "FO Max 0.5% (mt) RME-RMK": 1318.4, "Cargo Owner 3 Cargo Discharged Weight": "N/A", "FO Max 0.1% (mt)": 0, "Cargo Owner 6 Cargo": "N/A", "FO Over 1.0% (mt)": 0, "Vessel Type": "BULK CARRIER", "Cargo Owner 9 Cargo Loaded Weight": "N/A", "Cargo Owner 4 Cargo Loaded Weight": "N/A", "Cargo Owner 10": "N/A", "DO Over 0.5% (mt)": 0, "Cargo Owner 8 Cargo": "N/A", "Cargo Owner 8 Cargo Loaded Weight": "N/A", "FO Max 0.5% (mt) RMA-RMD": 0, "Cargo Owner 3 Cargo Loaded Weight": "N/A", "DO Max 0.5% (mt)": 0, "Cargo Owner 8 Cargo Discharged Weight": "N/A", "Distance Ring Up Engine to Standby Engine": 8596, "Bunkering": "N/A", "Cargo Owner 5 Cargo": "N/A", "Arrival / Destination Port": "BAHRAIN", "Cargo Owner 5 Cargo Discharged Weight": "N/A", "FO Max 1.0% (mt)": 0, "IMO Number": 9999999, "GO Over 0.5% (mt)": 0, "Cargo Owner 10 Cargo Discharged Weight": "N/A", "Cargo Owner 2 Cargo": "N/A" } ], "Required EEOI (gCO2/tnm)": 4.68, "Vessel Type": "BULK CARRIER", "Voyage Error Alert": "" } ]
    Sample(CSV) Vessel Type,Vessel Size,Vessel Name,IMO Number,Voyage ID (Voyage Number),Year,Transport Work (MT*nm),CO2 (t),EEOI (gCO2/tnm),Required EEOI (gCO2/tnm),Alignment Delta (%),AER (gCO2/tnm),Voyage Error Alert,CIM Leg ID,Vessel Name,IMO Number,Vessel Type,Vessel Size,DWT,Voyage ID (Voyage Number),Departure Port,Port Operation,Berth Departure Date/Time,Ring Up Engine Date/Time,L/B,Bunkering,Cargo Owner 1,Cargo Owner 1 Cargo,Cargo Owner 1 Cargo Loaded Weight,Cargo Owner 1 Cargo Discharged Weight,Cargo Owner 2,Cargo Owner 2 Cargo,Cargo Owner 2 Cargo Loaded Weight,Cargo Owner 2 Cargo Discharged Weight,Cargo Owner 3,Cargo Owner 3 Cargo,Cargo Owner 3 Cargo Loaded Weight,Cargo Owner 3 Cargo Discharged Weight,Cargo Owner 4,Cargo Owner 4 Cargo,Cargo Owner 4 Cargo Loaded Weight,Cargo Owner 4 Cargo Discharged Weight,Cargo Owner 5,Cargo Owner 5 Cargo,Cargo Owner 5 Cargo Loaded Weight,Cargo Owner 5 Cargo Discharged Weight,Cargo Owner 6,Cargo Owner 6 Cargo,Cargo Owner 6 Cargo Loaded Weight,Cargo Owner 6 Cargo Discharged Weight,Cargo Owner 7,Cargo Owner 7 Cargo,Cargo Owner 7 Cargo Loaded Weight,Cargo Owner 7 Cargo Discharged Weight,Cargo Owner 8,Cargo Owner 8 Cargo,Cargo Owner 8 Cargo Loaded Weight,Cargo Owner 8 Cargo Discharged Weight,Cargo Owner 9,Cargo Owner 9 Cargo,Cargo Owner 9 Cargo Loaded Weight,Cargo Owner 9 Cargo Discharged Weight,Cargo Owner 10,Cargo Owner 10 Cargo,Cargo Owner 10 Cargo Loaded Weight,Cargo Owner 10 Cargo Discharged Weight,Arrival / Destination Port,Standby Engine Date/Time,Berth Arrival Date/Time,Distance Ring Up Engine to Standby Engine,Distance Berth to Berth,FO Over 1.0% (mt),FO Max 1.0% (mt),FO Max 0.5% (mt) RMA-RMD,FO Max 0.5% (mt) RME-RMK,FO Max 0.1% (mt),GO Over 0.5% (mt),GO Max 0.5% (mt),GO Max 0.1% (mt),DO Over 0.5% (mt),DO Max 0.5% (mt),DO Max 0.1% (mt),CO2 HFO (gCO2) RME-RMK,CO2 LFO (gCO2) RMA-RMD,CO2 DO/GO (gCO2),Total CO2 (gCO2),EEOI (gCO2/tnm),AER (gCO2/tnm),Leg Error Alert BULK CARRIER,Cape,XXXXXX,9999999,65,2021,1532229975,4109.6654,2.68214658834096,4.68,-0.426891754628001,2.6291260649584,,9999999_CIM_MDY1_CIM_MUN_CIM_20201230084200,XXXXXX,9999999,BULK CARRIER,Cape,180000,65,MUNDRA,N/A,2020-12-30T08:42:00Z,2020-12-30T08:42:00Z,Ballast,N/A,N/A,N/A,0,0,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,PORT LOUIS,2021-01-07T23:06:00Z,2021-01-07T23:06:00Z,2784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,N/A,N/A, BULK CARRIER,Cape,XXXXXX,9999999,65,2021,1532229975,4109.6654,2.68214658834096,4.68,-0.426891754628001,2.6291260649584,,9999999_CIM_MDY1_CIM_POL_CIM_20210108133000,XXXXXX,9999999,BULK CARRIER,Cape,180000,65,PORT LOUIS,N/A,2021-01-08T13:30:00Z,2021-01-08T13:30:00Z,Ballast,N/A,N/A,N/A,0,0,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,ACU,2021-01-25T08:00:00Z,2021-01-25T08:00:00Z,5481,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,N/A,N/A, BULK CARRIER,Cape,XXXXXX,9999999,65,2021,1532229975,4109.6654,2.68214658834096,4.68,-0.426891754628001,2.6291260649584,,9999999_CIM_MDY1_CIM_ACUB_CIM_20210204193000,XXXXXX,9999999,BULK CARRIER,Cape,180000,65,ACU,N/A,2021-02-04T19:30:00Z,2021-02-04T19:30:00Z,Laden,N/A,N/A,N/A,177075,0,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,BAHRAIN,2021-03-06T13:00:00Z,2021-03-06T16:12:00Z,8596,8653,0,0,0,1318.4,0,0,0,0,0,0,1.3,4105.4976,0,4.1678,4109.6654,2.68214658834096,2.6291260649584,

    Authentication

    Function Generate Token ID and return based on ID / PWD
    Method POST
    URL https://api.wni.com/api/api/auth[.json/.xml]
    Parameter uid Username / ID (Required)
    password Password (Required)
    Request Header None
    Return Value TokenID in JSON / XML format
    Response Header None

    Weather Data

    Function Get weather data and return in zip compressed format
    Method GET
    URL https://api.wni.com/api/v1/weather.zip
    Parameter element Element (Required)
    1. ssp: Sea Surface Pressure, unit: Pa
    2. uuu: Wind U Component, unit: m/s
    3. vvv: Wind V Component, unit: m/s
    4. uuu1000hpa: Wind U Component(1000hPa), unit: m/s
    5. vvv1000hpa: Wind V Componen(1000hPa), unit: m/s
    6. uuu500hpa: Wind U Component(500hPa), unit: m/s
    7. vvv500hpa: Wind V Componen(500hPa), unit: m/s
    8. rh850hpa: Relative Humidity(850hPa), unit: %
    9. rh700hpa: Relative Humidity(700hPa), unit: %
    10. ph1000hpa: Surface Pressure Altitude(1000hPa), unit: gpm
    11. ph500hpa: Surface Pressure Altitude(500hPa), unit: gpm
    12. tmp1000hpa: Temperature(1000hPa), unit: Kelvin
    13. tmp850hpa: Temperature(850hPa), unit: Kelvin
    14. intpcp: Colum-integrated precipitation in 6 hours, unit: kg/m^2
    15. vis: Visibility, unit: meter
    date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    timestep Time Step (Optional)
    • Format: 3 digit number, "000" ~ "384"
    • Directed to "000" data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value ZIP
    Response Header Last-Modified Date and time of the acquired file

    Marine Weather Data

    Function Get marine weather data and return in zip compressed format
    Method GET
    URL https://api.wni.com/api/v1/marine-weather.zip
    Parameter element Element (Required)
    1. sigwh: Significant wave height, unit: meter
    2. awp: Average period, unit: second
    3. pwh: Primary wave height, unit: meter
    4. pwd: Primary wave direction (Comming From), unit: degree
    5. pwp: Primary period, unit: second
    6. swh: Secondary wave height, unit: meter
    7. swd: Secondary wave direction (Comming From), unit: degree
    8. swp: Secondary period, unit: second
    9. pswh: Swell wave height, unit: meter
    10. pswd: Swell wave direction (Comming From), unit: degree
    11. pswp: Swell period, unit: second
    12. wsh: WindSea wave height, unit: meter
    13. wsd: WindSea wave direction (Comming From), unit: degree
    14. wsp: WindSea period, unit: second
    15. sst: Sea surface temperature, unit: Kelvin
    16. uuu: OceanCurrent u-component, unit: m/s
    17. vvv: OceanCurrent v-component, unit: m/s
    date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    timestep Time Step (Optional)
    • Format: 3 digit number, "000" ~ "384"
    • Directed to "000" data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value ZIP
    Response Header Last-Modified Date and time of the acquired file

    High Resolution Weather Data

    Function Get high resolution weather data and return in zip compressed format
    Method GET
    URL https://api.wni.com/api/v1/hires-weather.zip
    Parameter element Element (Required)
    1. npac_ssp: North Pacific - Sea Surface Pressure, unit: Pa
    2. npac_uuu: North Pacific - Wind U Component, unit: m/s
    3. npac_vvv: North Pacific - Wind V Component, unit: m/s
    4. natl_ssp: North Atlantic - Sea Surface Pressure, unit: Pa
    5. natl_uuu: North Atlantic - Wind U Component, unit: m/s
    6. natl_vvv: North Atlantic - Wind V Component, unit: m/s
    7. seasia_ssp: South East Asia - Sea Surface Pressure, unit: Pa
    8. seasia_uuu: South East Asia - Wind U Component, unit: m/s
    9. seasia_vvv: South East Asia - Wind V Component, unit: m/s
    date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    timestep Time Step (Optional)
    • Format: 3 digit number, "000" ~ "384"
    • Directed to "000" data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value ZIP
    Response Header Last-Modified Date and time of the acquired file

    High Resolution Marine Weather Data

    Function Get high resolution marine weather data and return in zip compressed format
    Method GET
    URL https://api.wni.com/api/v1/hires-marine-weather.zip
    Parameter element Element (Required)
    1. npac_sigwh: North Pacific - Significant wave height, unit: meter
    2. npac_awp: North Pacific - Average period, unit: second
    3. npac_pwh: North Pacific - Primary wave height, unit: meter
    4. npac_pwd: North Pacific - Primary wave direction (Comming From), unit: degree
    5. npac_pwp: North Pacific - Primary period, unit: second
    6. npac_swh: North Pacific - Secondary wave height, unit: meter
    7. npac_swd: North Pacific - Secondary wave direction (Comming From), unit: degree
    8. npac_swp: North Pacific - Secondary period, unit: second
    9. npac_pswh: North Pacific - Swell wave height, unit: meter
    10. npac_pswd: North Pacific - Swell wave direction (Comming From), unit: degree
    11. npac_pswp: North Pacific - Swell period, unit: second
    12. npac_wsh: North Pacific - WindSea wave height, unit: meter
    13. npac_wsd: North Pacific - WindSea wave direction (Comming From), unit: degree
    14. npac_wsp: North Pacific - WindSea period, unit: second
    15. natl_sigwh: North Atlantic - Significant wave height, unit: meter
    16. natl_awp: North Atlantic - Average period, unit: second
    17. natl_pwh: North Atlantic - Primary wave height, unit: meter
    18. natl_pwd: North Atlantic - Primary wave direction (Comming From), unit: degree
    19. natl_pwp: North Atlantic - Primary period, unit: second
    20. natl_swh: North Atlantic - Secondary wave height, unit: meter
    21. natl_swd: North Atlantic - Secondary wave direction (Comming From), unit: degree
    22. natl_swp: North Atlantic - Secondary period, unit: second
    23. natl_pswh: North Atlantic - Swell wave height, unit: meter
    24. natl_pswd: North Atlantic - Swell wave direction (Comming From), unit: degree
    25. natl_pswp: North Atlantic - Swell period, unit: second
    26. natl_wsh: North Atlantic - WindSea wave height, unit: meter
    27. natl_wsd: North Atlantic - WindSea wave direction (Comming From), unit: degree
    28. natl_wsp: North Atlantic - WindSea period, unit: second
    29. seasia_sigwh: South East Asia - Significant wave height, unit: meter
    30. seasia_awp: South East Asia - Average period, unit: second
    31. seasia_pwh: South East Asia - Primary wave height, unit: meter
    32. seasia_pwd: South East Asia - Primary wave direction (Comming From), unit: degree
    33. seasia_seasia_pwp: South East Asia - Primary period, unit: second
    34. seasia_swh: South East Asia - Secondary wave height, unit: meter
    35. seasia_swd: South East Asia - Secondary wave direction (Comming From), unit: degree
    36. seasia_swp: South East Asia - Secondary period, unit: second
    37. seasia_pswh: South East Asia - Swell wave height, unit: meter
    38. seasia_pswd: South East Asia - Swell wave direction (Comming From), unit: degree
    39. seasia_seasia_pswp: South East Asia - Swell period, unit: second
    40. seasia_wsh: South East Asia - WindSea wave height, unit: meter
    41. seasia_wsd: South East Asia - WindSea wave direction (Comming From), unit: degree
    42. seasia_wsp: South East Asia - WindSea period, unit: second
    date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    timestep Time Step (Optional)
    • Format: 3 digit number, "000" ~ "384"
    • Directed to "000" data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value ZIP
    Response Header Last-Modified Date and time of the acquired file

    Weather on Track Data

    Function Get wether on veseel track data and return in json or xml format
    Method POST
    Data Post Type JSON
    URL https://api.wni.com/api/v1/weather-on-track.[.json/.xml]
    Parameter point Point list in JSON format (Required)
    • Maximum 100 Points
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / XML
    Response Header -
    JSON Input Items date Target Date (Optional)
    • Format: "yyyymmddhh"
    • Directed to latest data if omitted
    lat Latitude position (Required)
    • Unit: Minute
    lon Longitude position (Required)
    • Unit: Minute
    Sample JSON Input { "Point": [ { "date": "2016081500", "lat": 1200, "lon": -1800 }, { "date": "2016081510", "lat": 1500, "lon": -2100 } ] }

    Weather KML

    Function Get weather KML data and return in KML format
    Method GET
    URL https://api.wni.com/api/v1/weather-kml.xml
    Parameter element Element (Required)
    1. sigwh: Significant wave height, unit: meter
    2. pwh: Primary wave height, unit: meter
    3. swh: Secondary wave height, unit: meter
    4. pswh: Swell wave height, unit: meter
    5. wsh: WindSea wave height, unit: meter
    6. sst: Sea surface temperature, unit: Celcius
    7. ssp: Sea surface pressure, unit: hPa
    8. rh850hpa: Relative humidity at 850hPa, unit: %
    9. rh700hpa: Relative humidity at 700hPa, unit: %
    10. ph500hpa: Pressure hight at 500hPa, unit: gpm
    11. tmp1000hpa: Temperature at 1000hPa, unit: Celcius
    12. tmp850hpa: Temperature at 850hPa, unit: Celcius
    13. intpcp: Colum-integrated precipitation in 6 hours, unit: kg/m^2
    14. icep: Ice pack, unit: Porpotions
    timestep Time Step (Optional)
    • Format:
      1. 3 digit number, "000" ~ "384"
        • Directed to "000" data if omitted
      2. "currenttime" : Return data at current date and time
        • Adjust time step based on data base time and current time
    Request Header Authorization "WniWebApi " + Token ID
    Return Value KML
    Response Header Last-Modified Base time of acquired data
    Data-TimeStep Time step of acquired data

    Ice Berg

    Function Get iceberg data and return in zip compressed format
    Method GET
    URL https://api.wni.com/api/v1/ice-berg.zip
    Parameter date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value ZIP
    Response Header Last-Modified Date and time of the acquired file

    Ice Pack

    Function Get sea ice data and return in zip compressed format
    Method GET
    URL https://api.wni.com/api/v1/ice-pack.zip
    Parameter date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    timestep Time Step (Optional)
    • Format: 3 digit number, "000" ~ "384"
    • Directed to "000" data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value ZIP
    Response Header Last-Modified Date and time of the acquired file

    Ice KML

    Function Get ice KML data and return in KML format
    Method GET
    URL https://api.wni.com/api/v1/ice-kml.xml
    Parameter element Element (Required)
    1. iceconc: Ice concentration, unit: ratio
    2. icethic: Ice thickness, unit: meter
    3. icecomp: Ice compression, unit: kPa
    timestep Time Step (Optional)
    • Format: 3 digit number, "000" ~ "384"
    • Directed to "000" data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value KML
    Response Header Last-Modified Date and time of the acquired file

    Front

    Function Get front data and return in json format
    Method GET
    URL https://api.wni.com/api/v1/front.json
    Parameter date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON
    Response Header Last-Modified Date and time of the acquired file

    Global Storm

    Function Get storm data and return in json or xml format
    Method GET
    URL https://api.wni.com/api/v1/global-storm.[.json/.xml]
    Parameter date Target Date (Optional)
    • Format: "yyyymmddhh"
    • "hh" (hours) value is based on data updated time
    • Directed to latest data if omitted
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON or XML data
    Response Header Last-Modified Date and time of the acquired file

    Voyage Track

    Function Get latest voyage track of vessel (Master report and voyage planing including weather and dead reckoning data) and return the data in json or xml format
    Method GET
    URL https://api.wni.com/api/v1/voyage.[.json/.xml]
    Parameter imo IMO number of ship (Required)
    start Start Date of Voyage (Optional)
    end End Date of Voyage (Optional)
    • Format: yyyymmddhh
    • If start and end paramater are filled: Get 10 latest voyage between start date and end date of voyage (List voyage info structure)
    • If end paramater only is filled: Get 10 latest voyage from end date (end date to be start date) to the latest voyage of vessel (List voyage info structure)
    • If start and end parameter are omitted: Directed to the lastest voyage data (Single voyage info structure)
    report Voyage Report Type (Required)
    1. Master/Captain report only
    2. Master/Captain report with DRPoint (without weather information)
    3. Master/Captain report with DRPoint (with weather information)
    4. Future point (voyage plan, including DRPoint) start from the latest Master report (without weather information)
    5. Future point (voyage plan, including DRPoint) start from the latest Master report (with weather information)
    6. Master/Captain report + Voyage Plan (without weather information)
    7. Master/Captain report + Voyage Plan (with weather information)
    8. Voyage Plan without weather information
    9. Voyage Plan with weather information

    * Input the alphabet code (a, b, c, ...)
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON or XML data
    Response Header Last-Modified Latest voyage update time
    Unprocess-StartDate Start date of unprocess voyage data
    Unprocess-EndDate End date of unprocess voyage data
    Unprocess-Total Total of unprocess voyage data

    Hire Bunker (GET)

    Function Receive hire bunker cost data in JSON format
    Method GET
    URL https://api.wni.com/api/v1/hire-bunker-cost.json
    Parameter imo Vessel IMO number (Required)
    • List of vessel IMO number separated by comma (,)
      Example: 11111,22222,33333
    • Maximum is 20 IMO number per each request
    callback Callback function (Optional)
    • Data format: String
    • If there is no callback function input,
      the API will return the JSON data format automatically.
    Parameter Type Query string
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP

    Hire Bunker (PUT)

    Function Send hire bunker cost data in JSON format
    Method PUT
    URL https://api.wni.com/api/v1/hire-bunker-cost.json
    Parameter data Hire bunker cost report data (Required)
    Parameter Type Request body
    Content Type application/x-www-form-urlencoded
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON

    QRT

    Function Get vessel reporting data from QRT (Quick Report Template) database
    Method GET
    URL https://api.wni.com/api/v1/qrt-api.[.json/.xml]
    Parameter imo IMO number of ship (Optional)
    start Start Report Date (Optional)
    • Format: yyyymmddhh
    • If start date is omitted: Directed to the lastest 1 month reports data with maximum 1000 reports
    end End Report Date (Optional)
    • Format: yyyymmddhh
    • If end date is omitted: Directed to the lastest 1 month reports data with maximum 1000 reports
    Maximum Data Return 1000 reports/request
    Return Value JSON or XML data
    Request Header Authorization "WniWebApi " + Token ID
    Response Header Last-Modified Latest voyage update time
    Unprocess-StartDate Start date of unprocess report data
    Unprocess-EndDate End date of unprocess report data
    Unprocess-Total Total of unprocess report data
    Response Code Details 200 Request success
    • There is QRT data on requested period
    • QRT data succesfully return to client side
    204 No Content / No QRT Data
    • There is no QRT data on requested period
    400 Bad Request / Wrong format in parameter
    • The format of paramater input is not correct
    404 Not Found / Extention file is not accepted
    • Requested extention file is not JSON or XML
    503 Service Unavailable / Data processing error
    • DB access failed
    • Internal access error
    • Internal network error
    Other reponse code is following API common reponse code

    Sea Margin Data

    Function Get sea margin data and return in json or jsonp format
    Method POST
    Data Post Type JSON / JSONP
    URL https://api.wni.com/api/v1/sea-margin.json
    Parameter data Data Request (Required)
    • One data in each request (cannot receive JSON array of data)
    • Format data is in JSON
    • Structure and value format should be match with API requirement
    callback Callback function (Optional)
    • If there is no callback function input, automatically will return JSON
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP
    Response Header -
    Item Name Description Unit/Format Values Type Remarks
    ship_type Ship type
    • Bulker
    • Tanker
    String -
    ship_size Ship size
    • Bulker:
      • Handy
      • Handymax
      • Panamax
      • Cape
    • Tanker:
      • Handymax
      • Panamax
      • Aframax
      • Suezmax
      • VLCC
    String -
    etd Estimate time departure LT (Local Time) / (Year-Month-Day)
    • Year: yyyy (4 digit integer)
    • Month:
      • Jan: January
      • Feb: February
      • Mar: March
      • Apr: April
      • May: May
      • Jun: June
      • Jul: July
      • Aug: August
      • Sep: September
      • Oct: October
      • Nov: November
      • Dec: December
    • Day: dd (2 digit integer)
    String -
    calm_sea_speed Calm sea speed Knot Float -
    ifo Intermediate fuel oil MT/Days Float -
    port_list Port code list Port Code1,Port Code2,Port Code3 String
    • Each port should use WNI TMAX port code (Please access TMAX Port API)
    • Each port separated by coma (,)
    • Minimal there are should be two ports
    • The first port automatically become the first departure port code
    • The last port automatically become the last arrival port code
    • Ports between them become via ports
    Sample JSON Input { "ship_type": "Bulker", "ship_size": "Handymax", "etd": "2017-Jan-01", "calm_sea_speed": 12, "ifo": 40, "port_list": "STS,SGP" }

    Sea Margin(Area to Area) Data

    Function Get sea margin(area to area) data and return in json or jsonp format
    Method POST
    Data Post Type JSON / JSONP
    URL https://api.wni.com/api/v2/sea-margin-area.json
    Parameter data Data Request (Required)
    • One data in each request (cannot receive JSON array of data)
    • Format data is in JSON
    • Structure and value format should be match with API requirement
    • “knot” is optional. If it doesn't exist, set it to 12.0
    callback Callback function (Optional)
    • If there is no callback function input, automatically will return JSON
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP
    Response Header -
    Item Name Description Unit/Format Values Type Remarks
    ship_type Ship type
    • Bulker
    • Tanker
    • PCTC
    String -
    ship_size Ship size Ton String
    • Bulker:
      • Handysize
      • Supramax
      • Panamax
      • BabyCape
      • Cape
      • NewCastlemax
    • Tanker:
      • ProductTanker
      • Panamax
      • Aframax
      • Suezmax
      • VLCC
      • ULCC
    • PCTC:
      • All
    load Loading Loading condtion
  • L : Laden
  • B : Ballast
  • String -
    dep Departure Area Code Area Code Float
  • The code should use WNI TMAX area code ( TMAX Area Code Table)
  • arr Departure Area Code Area Code Float
  • The code should use WNI TMAX area code ( TMAX Area Code Table)
  • knot Calm sea speed Knot Float -
    Sample JSON Input { "ship_type": "Bulker", "dwt": "29000", "load": "L", "dep": "1", "arr": "2", "knot": "13.0" }

    Tonnage Allocation Planner Data

    Function Get tonnage allocation planner data and return in json or jsonp format
    Method POST
    Data Post Type JSON / JSONP
    URL https://api.wni.com/api/v1/tonnage-allocation-planning.json
    Parameter data Data Request (Required)
    • One data in each request (cannot receive JSON array of data)
    • Format data is in JSON
    • Structure and value format should be match with API requirement
    callback Callback function (Optional)
    • If there is no callback function input, automatically will return JSON
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP
    Response Header -
    Item Name Description Unit/Format Values Type Remarks
    imo International Maritime Organization Ship Number - String -
    etd Estimate time departure LT (Local Time) / (yyyy/mm/dd hh:mm) String
    • ETD 1st departure port
    • Local time is using departure port local time
    laden_draft Vessel laden draft Meter Float -
    season Laden draft season
    • Summer
    • Winter
    String -
    ports List of port data input Sub items list:
    • port_code
    • vessel_condition
    • staying_days
    • good_weather_speed
    • passage
    String
    • Each port should use WNI TMAX port code (Please access TMAX Port API)
    • Each port is arranged with JSON array structure
    • Minimal there are should be two ports
    • The first port automatically become the first departure port code
    • The last port automatically become the last arrival port code
    • Ports between them become via ports
    port_code Weathernews port code - String Use WNI TMAX port code (Please access TMAX Port API
    vessel_condition Vessel load balance condition
    • L: Laden
    • B: Ballast
    String Not necessary information for last arrival port (If input, will be ingnored)
    staying_days Spending time of vessel at port Day Float Not necessary information for last arrival port (If input, will be ingnored)
    good_weather_speed Vessel optimal speed at good weather condition Knot Float Not necessary information for last arrival port (If input, will be ingnored)
    passage Canal passage
    • Suez
    • Cape of Good Hope
    • Panama
    • Cape Horn
    • Magellan
    Float Not necessary information for last arrival port (If input, will be ingnored)
    Sample JSON Input { "imo": "1010101", "etd": "2017/06/12 13:09", "laden_draft": 12, "season": "Summer", "ports": [ { "port_code": "BYF", "vessel_condition": "L", "staying_days": 3, "good_weather_speed": 12, "passage": "Suez" }, { "port_code": "ADG", "vessel_condition": "B", "staying_days": 3, "good_weather_speed": 12, "passage": "Cape Horn" }, { "port_code": "BYC" } ] }

    TMAX Port Data

    Function Get tmax port data and return in json or jsonp format
    Method POST
    Data Post Type JSON / JSONP
    URL https://api.wni.com/api/v1/tmax-port.json
    Parameter portcode WNI port code (Optional)
    • Return all WNI port code if ommited
    callback Callback function (Optional)
    • If there is no callback function input, automatically will return JSON
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP
    Response Header Last-Modified Date and time of the acquired file

    Post Voyage CP Warranty Data

    Function Get post voyage cp warranty data and return in JSON or JSONP format
    Method GET
    URL https://api.wni.com/api/v1/cp-warranty.json
    Parameter ships Ship list (Optional)
    • List of vessel IMO number separated by comma (,)
      Example: 11111,22222,33333
    last_x_months Data period (Optional)
    • Defined last "x" month data period
    • Maximum period is last 48 months
    • If this parameter is filled, start_time and end_time
      parameter should be omitted
    • If All data period parameters
      (last_x_month,start_time,end_time) are omitted then will set
      data period to last 1 year from access date
    start_time Data period (Optional)
    • Defined start date of data period
    • Date format: yyyymmdd
    • Maximum period is 4 years
      (combination start_time and end_time parameter)
    • If omitted then will set data period to last 4 years data from
      end_time parameter setting
    end_time Data period (Optional)
    • Defined end date of data period
    • Date format: yyyymmdd
    • Maximum period is 4 years
      (combination start_time and end_time parameter)
    • If omitted then will set data period to 4 years data start from
      start_time parameter setting
    • If this parameter is filled,
      last_x_months parameter should be omitted
    • If All data period parameters
      (last_x_month,start_time,end_time) are omitted then will set
      data period to last 1 year from access date
    callback Callback function (Optional)
    • Data format: String
    • If there is no callback function input,
      the API will return theJSON data format automatically.
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP

    EnRoute CP Warranty Data

    Function Get enroute cp warranty data and return in JSON or JSONP format
    Method GET
    URL https://api.wni.com/api/v1/enroute-cp-warranty.json
    Parameter ships Ship list (Optional)
    • List of vessel IMO number separated by comma (,)
      Example: 11111,22222,33333
    • Maximum is 50 IMO number per each request
    • Return all ships when omitted
    callback Callback function (Optional)
    • Data format: String
    • If there is no callback function input,
      the API will return the JSON data format automatically.
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / JSONP

    EEOI / AER Data

    Function Get EEOI / AER data and return in JSON or CSV format
    Method GET
    URL https://api.wni.com/api/v1/eeoi-berth.[json/csv]
    Parameter mode Time mode (Mandatory)
    • Time mode options that will be used on
      start and end parameter
    • Value options: ATD or ATA
      2. ATD = Actual Time of Departure
      2. ATA = Actual Time of Arrival
    • If omitted will set as ATA
    start Start data period (Mandatory)
    • Defined start date of data ATD / ATA
      (Depends on time mode options)
    • Date format: yyyymmdd
    • Maximum period is 1 years
      (combination start and end parameter)
    • If omitted will download last 1 year data
    end End data period (Mandatory)
    • Defined end date of data ATD / ATA
    • Date format: yyyymmdd
    • Maximum period is 1 years
      (combination start and end parameter)
    • If omitted will download last 1 year data
    ships Ship list (Optional)
    • List of vessel IMO number separated by comma (,)
      Example: 11111,22222,33333
    • Maximum is 20 IMO number per each request
    • If omitted with download all vessel data
    Request Header Authorization "WniWebApi " + Token ID
    Return Value JSON / CSV

    Respond Code

    No. Respond Code Status Text Error Detail
    1 200 OK Success
    The resource has been fetched and is transmitted in the message body
    2 204 No Content No update data / No latest file
    There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.
    3 400 Bad Request Wrong format in parameter
    This response means that server could not understand the request due to invalid syntax.
    4 401 Unauthorized Incorrect Login ID or Password
    Authentication is needed to get requested response. This is similar to 403, but in this case, authentication is possible.
    5 403 Forbidden Don't have access to the API data
    Client does not have access rights to the content so server is rejecting to give proper response.
    6 404 Not Found Extension file is not accepted
    Server can not find requested resource. This response code probably is most famous one due to its frequency to occur in web.
    7 405 Method Not Allowed The methods that are not permitted
    The request method is known by the server but has been disabled and cannot be used.
    8 408 Request Timeout The server timed out waiting for the request. According to HTTP specifications: "The client did not produce a request within the time that the server was prepared to wait.
    9 500 Internal Server Error Internal Server Error
    The server has encountered a situation it doesn't know how to handle.
    10 503 Service Unavailable Simulation or data processing error
    The api server has encountered a situation that cannot process required data for data that should be delivered to the client side

    HTML + Java Script (Access JSON Data)

    HTML
    <table> <tr> <td>Login ID</td> <td><input class="in" id="inID" size=10 autofocus></input></td> </tr> <tr> <td>Password</td> <td><input class="in" id="inPwd" type="password" size=10></input></td> </tr> <tr></tr> <tr> <td><button id="login">Login</button></td> <td><button id="clear">Clear</button></td> </tr> </table> <table> <tr><td>TOKEN-ID</td></tr> <tr><td><textarea cols="70" id="token_id"></textarea></td></tr> <tr><td>DATE(YYYYMMDDHH)<input id="date" type="text"></input></td></tr> <tr><td><button id="getData">getData</button></td></tr> <tr><td>Return Data</td></tr> <tr><td><textarea cols="70" id="data"></textarea></td></tr> </table>
    Java Script
    $(document).ready(function(){ //clear button $("#clear").click(function(){ $("#inID").val(""); $("#inPwd").val(""); }); //login button $("#login").click(function(){ login(); });//loginのclick() END $("#getData").click(function() { getData(); }); }); function login(){ var SERVER_URL = "http://api.wni.com/api/api/auth.json"; $.ajax({ type : "post", url : SERVER_URL, contentType : "application/x-www-form-urlencoded", data : { "uid" : $("#inID").val(), "password" : $("#inPwd").val() }, dataType : "json", success : function(data, status, xhr) { console.log("success : "); console.log(data.tokenId); if ( xhr.status != 200 ) { alert(xhr.status); } $("#token_id").append(data.tokenId); }, error : function(data) { console.log(data); alert("Login ID or password incorrect"); }, }); } function getData(){ var SERVER_URL = "http://api.wni.com/api/v1/front.json"; //<data-name> var tk = "WniWebApi " + $("#token_id").val(); $.ajax({ type : "get", headers : { 'Authorization' : tk, }, url : SERVER_URL, data : { "date" : $("#date").val(), }, dataType : "json", success : function(data) { console.log("success : "); console.log(data); $("#data").append(JSON.stringify(data)); }, error : function(data) { console.log(data); alert("TOKEN-ID is invalid."); }, }); }
    Resources
    <script type="text/javascript" src="./js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="./js/common.js"></script>

    HTML + Java Script (Access Binary Data)

    HTML
    <table> <tr> <td>Login ID</td> <td><input class="in" id="inID" size=10 autofocus></input></td> </tr> <tr> <td>Password</td> <td><input class="in" id="inPwd" type="password" size=10></input></td> </tr> <tr></tr> <tr> <td><button id="login">Login</button></td> <td><button id="clear">Clear</button></td> </tr> </table> <table> <tr><td>TOKEN-ID</td></tr> <tr><td><textarea cols="70" id="token_id"></textarea></td></tr> <tr><td>Element<input type="text" id="element"></input></td></tr> <tr><td>TimeStep<input type="text" id="timestep"></input></td></tr> <tr><td>DATE(YYYYMMDDHH)<input id="date" type="text"></input></td></tr> <tr><td><button id="getData">getData</button></td></tr> <td>DownLoad Link</td> <td><div id="data"></div></td> </table>
    Java Script
    $(document).ready(function(){ //clear button $("#clear").click(function(){ $("#inID").val(""); $("#inPwd").val(""); }); //login button $("#login").click(function(){ login(); });//loginのclick() END $("#getData").click(function() { getData(); }); }); function login(){ var SERVER_URL = "http://api.wni.com/api/api/auth.json"; $.ajax({ type : "post", url : SERVER_URL, contentType : "application/x-www-form-urlencoded", data : { "uid" : $("#inID").val(), "password" : $("#inPwd").val() }, dataType : "json", success : function(data, status, xhr) { console.log("success : "); console.log(data.tokenId); if ( xhr.status != 200 ) { alert(xhr.status); } $("#token_id").append(data.tokenId); }, error : function(data) { console.log(data); alert("Login ID or password incorrect"); }, }); } function getData(){ var host = "https://api.wni.com/api/"; var api = "weather"; // <data_name> var ext = "zip"; var url = host + "v1/" + api + "." + ext; var elm = $('#element').val(); var token = $('#token_id').val(); var date = $('#date').val(); var timestep = $('#timestep').val(); var xhr = new XMLHttpRequest(); xhr.open('GET', url+"?element="+elm+"&date="+date+"&timestep="+timestep); xhr.setRequestHeader("Authorization","WniWebApi " + token); xhr.responseType = 'arraybuffer'; xhr.onload = function(e) { // Status Check if ( xhr.status != 200 ) { alert("Status : "+xhr.status); } // Retrieve data console.log(this.response.byteLength); var view = new Uint8Array(this.response); var blob = new Blob([view], { "type" : "application/zip." }); var URL = window.URL || window.webkitURL; // Download Link // Delete the past link var oldEle = document.getElementById("data").lastChild; console.log(oldEle); if ( oldEle != null ) { document.getElementById("data").removeChild(oldEle); } // New link var ele = document.createElement("a"); ele.href = URL.createObjectURL(blob); ele.download = api+'-'+elm+'.zip'; var str = document.createTextNode("[DownLoad]"); ele.appendChild(str); document.getElementById("data").appendChild(ele); ele.click(); // Remove the link data URL.revokeObjectURL(blob); } xhr.send(); }
    Resources
    <script type="text/javascript" src="./js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="./js/common.js"></script>

    Access Data - Java

    Main Class (JSON)
    import java.io.IOException; import java.util.Hashtable; public class HelloWord { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String strTestTarget="https://api.wni.com/api"; // API URL String username = "<username>"; // Username String password = "<password>"; // Password apiuser user = new apiuser(username,password); // Create API user String token = user.getToken(strTestTarget); // Get Token System.out.println(token); String dataname = "front"; // Data name String ext = "json"; // Data extension Hashtable Param = new Hashtable(); // Data parameter variable Param.put("date",""); String data = user.getData(strTestTarget, token, dataname, ext, Param); // Get Data System.out.println(data); } }
    Main Class (Binary)
    import java.io.IOException; import java.util.Hashtable; public class HelloWord { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String strTestTarget="https://api.wni.com/api"; // API URL String username = "<username>"; // Username String password = "<password>"; // Password apiuser_zip user = new apiuser_zip(username,password); // Create API user String token = user.getToken(strTestTarget); // Get Token System.out.println(token); String dataname = "weather"; // Data name String ext = "zip"; // Data extension Hashtable Param = new Hashtable(); // Data parameter variable Param.put("date",""); Param.put("element","uuu"); String filename = "<filepath + filename>"; // File path + filename String data = user.getData(strTestTarget, token, dataname, ext, Param, filename); // Get Data System.out.println(data); } }
    apiuser Class
    import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Enumeration; import java.util.Hashtable; import java.util.regex.Pattern; import javax.net.ssl.HttpsURLConnection; public class apiuser { private String user; // Username variable private String password; // Passwrod variable private String USER_AGENT = "Mozilla/5.0"; // API user agent for request header // Constructor for create username and password public apiuser(String usr, String pwd) { // TODO Auto-generated constructor stub this.user = usr; this.password = pwd; } public void setUser(String str){ this.user = str; } public String getUser(){ return this.user; } public void setPassword(String pwd){ this.password = pwd; } public String getPassword(){ return this.password; } // Get data method public String getData(String str, String token, String dataname, String ext, Hashtable Param) throws IOException{ // Build Request URL // Get Parameter Request String param = ""; Enumeration names = Param.keys(); while(names.hasMoreElements()) { String tmp = (String) names.nextElement(); param = param + tmp + "=" + Param.get(tmp); if(names.hasMoreElements()){ param = param + "&"; } } String url = str + "/v1/" + dataname + "." + ext + "?" + param; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // Optional default is GET con.setRequestMethod("GET"); // Add request header con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Authorization", "WniWebApi "+ token); // Read respond data BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); return response.toString(); } // Get token method public String getToken(String url) throws IOException{ String token = ""; // Token url = url + "/api/auth.json"; URL obj = new URL(url); HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); // Add request header con.setRequestMethod("POST"); con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); String urlParameters = "uid="+this.user+"&password="+this.password; // Send post request con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); // Read Respond BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); Pattern p = Pattern.compile("\\{\"tokenId\":\"([a-zA-Z0-9-]*)\"\\}"); java.util.regex.Matcher m = p.matcher(response.toString()); if (m.find()) { token = m.group(1); // The matched substring } return token; } }
    apiuser_zip Class
    import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.Enumeration; import java.util.Hashtable; import java.util.regex.Pattern; import javax.net.ssl.HttpsURLConnection; public class apiuser_zip { private String user; // Username variable private String password; // Password variable private String USER_AGENT = "Mozilla/5.0"; // API user agent for request header private byte[] data = new byte[300000]; // Variable for save binary data, max 256 KB // Constructor for create username and password public apiuser_zip(String usr, String pwd) { // TODO Auto-generated constructor stub this.user = usr; this.password = pwd; } public void setUser(String str){ this.user = str; } public String getUser(){ return this.user; } public void setPassword(String pwd){ this.password = pwd; } public String getPassword(){ return this.password; } // Get data method public String getData(String str, String token, String dataname, String ext, Hashtable Param, String filename) throws IOException{ // Build Request URL // Get Parameter Request String param = ""; Enumeration names = Param.keys(); while(names.hasMoreElements()) { String tmp = (String) names.nextElement(); param = param + tmp + "=" + Param.get(tmp); if(names.hasMoreElements()){ param = param + "&"; } } String url = str + "/v1/" + dataname + "." + ext + "?" + param; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // Optional default is GET con.setRequestMethod("GET"); // Add request header con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Authorization", "WniWebApi "+ token); // Save respond into file InputStream in = con.getInputStream(); int n = - 1; OutputStream output = new FileOutputStream( filename ); while ((n = in.read(data)) != -1) { output.write(data, 0, n); } output.close(); return filename; } // Get token method public String getToken(String url) throws IOException{ String token = ""; // Token url = url + "/api/auth.json"; URL obj = new URL(url); HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); // Add request header con.setRequestMethod("POST"); con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); String urlParameters = "uid="+this.user+"&password="+this.password; // Send post request con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); // Read Respond BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); Pattern p = Pattern.compile("\\{\"tokenId\":\"([a-zA-Z0-9-]*)\"\\}"); java.util.regex.Matcher m = p.matcher(response.toString()); if (m.find()) { token = m.group(1); // The matched substring } return token; } }

    Access Data - Perl

    Perl Script (JSON)
    use strict; use URI; use HTTP::Request::Common; use LWP::UserAgent; # Server my $targetServer = 'https://api.wni.com/api'; # User my $targetUser = '<username>'; # Password my $targetPass = '<password>'; #data name my $data_name = 'front'; # Get token my $token = GetToken(); die "Token Error" if ($token eq ""); $token = "WniWebApi ".$token; # Generate URL my $url = URI->new($targetServer.'/v1/'.$data_name.'.json'); # Generate UserAgent my $ua = LWP::UserAgent -> new; # Create a request my $request = HTTP::Request->new("GET", $url, ['Authorization' => $token]); # Obtaining a response by sending a request my $res = $ua -> request($request); # Displays the results if ($res->is_success) { print "Result: Success\n"; # Output to a file open (OUTFILE, ">temp_$data_name.json") || die "Can't open temp file.\n"; print OUTFILE $res->content; close(OUTFILE); } else { # Acquisition failure print "Result: ".$res->status_line."\n"; }
    Perl Script (Binary)
    use strict; use URI; use HTTP::Request::Common; use LWP::UserAgent; # Server my $targetServer = 'https://api.wni.com/api'; # User my $targetUser = '<username>'; # Password my $targetPass = '<password>'; #data name my $data_name = 'weather'; #element my $element = 'uuu'; #date my $date = ''; #timestep my $timestep = ''; # Get token my $token = GetToken(); die "Token Error" if ($token eq ""); $token = "WniWebApi ".$token; # Generate URL my $url = URI->new($targetServer.'/v1/'.$data_name.'.zip); # Parameter Setting $url->query_form('element' => $element, 'date' => $date, 'timestep' => $timestep); # Generate UserAgent my $ua = LWP::UserAgent -> new; # Create a request my $request = HTTP::Request->new("GET", $url, ['Authorization' => $token]); # Obtaining a response by sending a request my $res = $ua -> request($request); # Displays the results if ($res->is_success) { print "Result: Success\n"; # Output to a file my $filename = "temp_".$data_name."_".$element.".zip"; open (OUTFILE, ">$filename") || die "Can't open temp file.\n"; print OUTFILE $res->content; close(OUTFILE); } else { # Acquisition failure print "Result: ".$res->status_line."\n"; }
    GetToken Function
    # Get TokenID sub GetToken() { my $tokenid = ""; # Generating an authentication URL my $url = URI->new($targetServer.'/api/auth.json'); # Generate UserAgent my $ua = LWP::UserAgent -> new; # Create a request my $request = POST($url, ['uid' => $targetUser, 'password' => $targetPass]); # Obtaining a response by sending a request my $res = $ua -> request($request); # See the results if ($res->is_success) { # Cut out the token - authentication success $res->{_content} =~ /\{\"tokenId\":\"(.+)\"\}/; $tokenid = $1; } else { # Display of the error code - authentication failure print "Error:".$res->status_line."\n"; $tokenid = ""; } }

    Binary Reading - Java

    Main Script / Class
    import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class binarytocsv { private static double max_lat = 0.0; private static double min_lat = 0.0; private static double max_lon = 0.0; private static double min_lon = 0.0; private static double resolution = 0.0; private static String time_step = "t000"; //time step for naming file, *PLEASE EDIT private static final String HOME_DIR = System.getProperty("user.dir") + "/"; //Home directory private static final String CONFIG_DIR = HOME_DIR + "config/weather.json"; //Config file, *PLEASE EDIT IF NECESSARY private static final String BINARY_DATA_DIR = HOME_DIR + "binary_data"; private static final String CSV_DATA_DIR = HOME_DIR + "csv_data"; private static final String NIL_VALUE_GRIB = "9.999E20"; private static final long NIL_VALUE = -9999999; public static void main(String[] args) throws ParseException, FileNotFoundException, IOException { // TODO Auto-generated method stub // Reading from System.in boolean file_flag = false; String filename_in = ""; String element = ""; Scanner in = new Scanner(System.in); do{ System.out.println("Input Element: "); element = in.next(); filename_in = BINARY_DATA_DIR + "/" + element + "." + time_step; File f = new File(filename_in); if (f.exists()) { file_flag = true; } else{ System.out.println("Element is not exist in : " + filename_in); System.out.println(""); } }while(!file_flag); //Get config file if (updateConfig(element)){ System.out.println("Upate config succeed"); }else{ System.out.println("ERROR, Upate config failed"); System.exit(1); } System.out.println(""); // Menu System.out.println("1. Convert Degree (minutes) to row,column index"); System.out.println("2. Convert Binary to CSV file"); System.out.println("0. Quit"); // handle user commands boolean quit = false; int menuItem; do { System.out.println(""); System.out.print("Choose menu item: "); menuItem = in.nextInt(); switch (menuItem) { case 1: //Convert Binary to CSV System.out.println("Input Latitude (in minute): "); double search_lat = in.nextDouble(); System.out.println("Input Longitude (in minute): "); double search_lon = in.nextDouble(); System.out.println("latitude input: " + search_lat + ", longitude input: " + search_lon); List<Integer> latlon = DegreetoIndex(search_lat, search_lon); if (latlon.isEmpty()){ System.out.println("ERROR, Convert point failed"); }else{ System.out.println("Row index: "+ latlon.get(0) + ", Column index: "+ latlon.get(1)); } System.out.println(""); break; case 2: String filename_out = CSV_DATA_DIR + "/" + element + ".csv"; System.out.println("file in: "+filename_in); //Convert Binary to CSV if (BinarytoCSV(filename_in, filename_out)){ System.out.println("File succeed to create"); System.out.println("file out: "+filename_out); }else{ System.out.println("ERROR, File failed to create"); } System.out.println(""); break; case 0: quit = true; break; default: System.out.println("Invalid choice."); } } while (!quit); System.out.println(""); System.out.println("Bye-bye!"); } /** * Update binary config file * @throws ParseException * @throws FileNotFoundException * @throws IOException */ private static boolean updateConfig(String element){ System.out.println("Update config"); //Parsing JSON Parameter JSONParser parser = new JSONParser(); Object obj; try { obj = parser.parse(new FileReader(CONFIG_DIR)); JSONObject jsonObject = (JSONObject) obj; Object obj2 = parser.parse((String) jsonObject.get(element).toString()); JSONObject jsonObject2 = (JSONObject) obj2; min_lat = new Double(jsonObject2.get("min_lat").toString()); max_lat = new Double(jsonObject2.get("max_lat").toString()); min_lon = new Double(jsonObject2.get("min_lon").toString()); max_lon = new Double(jsonObject2.get("max_lon").toString()); resolution = new Double(jsonObject2.get("resolution").toString()); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } return true; } /** * Get Point from binary file * @throws IOException * @throws ParseException */ private static boolean BinarytoCSV(String filename, String filename_out) throws IOException, ParseException { //Initialization csv variable StringBuilder csv_content = new StringBuilder(1000000); //Initialization needed variable RandomAccessFile raf = new RandomAccessFile(filename, "r"); // read binary file int array_length_x = (int) ((max_lon - min_lon)/resolution) + 1; int array_length_y = (int) ((max_lat - min_lat)/resolution) + 1; //Convert point search into index array int lat_search_index = (int) Math.round(array_length_y); int lon_search_index = (int) Math.round(max_lon / resolution); //Looping each point for create csv file for(int i_lat=0; i_lat < lat_search_index; i_lat++){ for(int j_lon=0; j_lon <= lon_search_index; j_lon++){ long bitsearch = (long) (((array_length_x * i_lat) + j_lon) * 4); raf.seek(bitsearch); // set the file pointer to searching bit byte[] buffer = new byte[4]; // 4 byte buffer raf.read(buffer); int asInt = (buffer[0] & 0xFF) | ((buffer[1] & 0xFF) << 8) | ((buffer[2] & 0xFF) << 16) | ((buffer[3] & 0xFF) << 24); float asFloat = Float.intBitsToFloat(asInt); asFloat = checkGribNilValue(asFloat); if((j_lon) != lon_search_index){ csv_content.append(asFloat + ","); } else{ csv_content.append(asFloat); } } csv_content.append("\n"); } //Save file to csv file PrintWriter out = new PrintWriter(filename_out); out.println(csv_content.toString()); out.close(); out.flush(); File f = new File(filename_out); if (!f.exists()) { return false; } return true; } public static List<Integer> DegreetoIndex(double search_lat, double search_lon){ List<Integer> Index = new ArrayList<Integer>(); //convert to degree search_lat = search_lat/60; search_lon = search_lon/60; if (resolution == 1){ search_lat = Math.round(search_lat); search_lon = Math.round(search_lon); if(search_lat < min_lat){ search_lat = min_lat; } else if(search_lat > max_lat){ search_lat = max_lat; } if(search_lon < -180){ search_lon = -180; } else if(search_lon > 180){ search_lon = 180; } } else if(resolution == 0.125){ if(search_lat < min_lat){ search_lat = min_lat; } else if(search_lat > max_lat){ search_lat = max_lat; } if(search_lon < -180){ search_lon = -180; } else if(search_lon > 180){ search_lon = 180; } } //Convert point search into index array int lat_search_index = (int) Math.round(((search_lat - min_lat) / resolution)); int lon_search_index; if (search_lon >=0 && search_lon <= 180){ lon_search_index = (int) Math.round((search_lon / resolution)); } else{ lon_search_index = (int) Math.round(((search_lon + 360) / resolution)); } Index.add(lat_search_index+1); Index.add(lon_search_index+1); return Index; } /* * Check Grib nil value and set nil value * Input float value * Output Grib nil value */ public static float checkGribNilValue(float value){ if(Float.toString(value).equalsIgnoreCase(NIL_VALUE_GRIB)){ return NIL_VALUE; }else{ return value; } } }
    Config File Sample (weather.json)
    { "uuu":{ "max_lat": 90.000000, "min_lat": -90.000000, "max_lon" : 359.000000, "min_lon": 0.000000, "resolution" : 1 }, "tmp850hpa":{ "max_lat": 90.000000, "min_lat": -90.000000, "max_lon" : 359.000000, "min_lon": 0.000000, "resolution" : 1 } }

    FAQs (Frequently Asked Questions)

    Q: How can I get access to API Platform services ?

    A: Please use "Contact" page, and then our Sales Representative will give details about our contract, terms and conditions for access to API Platform services.

    Q: Where can I find more details about the data content ?

    A: Please open "API Dataset Page" to review detailed information about the data we are providing.

    Q: How much does it cost to access your data ?

    A: Please use "Contact" page, and then our Sales Representative will quote a competitive price based on your needs.

    Q: What should I do if I forgot my password ?

    A: Please send email to "api-support@wni.com", and our Person In Charge will help you to find out your password.

    Please contact us for more detail information : api-support@wni.com