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 / XML Vessel Reporting Time 2 M - 7 M Based on total reports - Ship and Weather Data
JSON / JSONP - 4 K - - TMAX Data
JSON / JSONP - 250 K - - TMAX Data
JSON / JSONP Irregular 4 K / 560 K - - TMAX 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
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" } } ] } } } ] } } ] }

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" } ] }

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" } } ] }

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

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" }

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

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