Tornadoes Classification API

Tornadoes Classification API - tornadoEF05 (also known as tornado recognition API or tornado detection) is a cross browsers REST API which get a JSON input with a still photo (as base64 encoded string) or an url of the ground taken image (not a radar image) and returns a JSON string which contains predictions with certain amount of probability (filtered for output with minimum 20%), which contain the tornadoes classes (EF0, EF1, EF2, EF3, EF4, EF5 according to Enhanced Fujita Scale) each of it with some description based on the detected class of tornado from the input photo. If the probability of prediction is under 20% then these info are not shown.

Allthough this Tornadoes Classification API (currently we do not offer a Tornadoes Classification sdk) is intended for software development and therefore developers, we have also here a tornado classification online application that may be used to check the input and output JSONs of the API.

The necessary steps are written below, basically for this real time tornado class detection or recognition API you send an authorized POST request in JSON format to the API endpoint and you get as JSON response the output as described below through parameters and examples.

This Tornadoes Classification API is useful for a large number of domains like: enthusiasts, professionals, students, researchers, developers etc.You own the commercial copyright of the resulted JSON with no additional fee meaning you may use it in your own apps for sale.

For using our Tornadoes Classification API and/or APP you must create an account (free of charge, no card required), activate it from your received email, login and then start your TRIAL package with no fees as you can see at our pricing packages. After you have tested the API and/or APP and you are satisfied, you may buy a paid package. You will always see at your Admin Console page the real resources consumption in real time, your invoices, you may see/edit/delete your profile or export log consents as GDPR instructed, you may read our FAQs.

Tornadoes Classification APP

Photo File
Image URL(*)
* Let the "NO" value of Image URL if you upload a Photo File, otherwise write the image url like http://domainname.com/image.jpg



API Endpoint (method POST):
https://gatiosoft.ro/tornadoef05.aspx
Headers:
Authorization: Basic //Your username:password are base64 encoded string
Content-Type: application/json
Accept: application/json
JSON Request Body (change inputs here and see in real time below):
                   {
  "base64_Photo_String": "iVBORw0KGgoAAAA...base64 encoded string photo...GAAAAAElFTkSuQmCC",
  "photo_url": "NO"
}
               
JSON Response From API (change inputs here and see in real time below):
{
  "created": "2020-07-02T12:28:09.989Z",
  "predictions": [
    {
      "probability": 0.5513594,
      "tagId": "6b333d95-e461-4155-890c-9921158f7d17",
      "tagName": "EF0",
      "description": "Estimated wind speed: 65-85 mph or 105-137 km/h. Frequency: 53.29%. Minor damage. Peels surface off some roofs; some damage to gutters or siding; branches broken off trees; shallow-rooted trees pushed over. Until the EFU classification was added, confirmed tornadoes with no reported damage (i.e., those that remain in open fields) had also been rated EF0. While permanent buildings generally suffer only minor damage, unprotected mobile homes or trailers may sustain moderate to serious damage."
    },
    {
      "probability": 0.3309611,
      "tagId": "6b333d95-e461-4155-890c-994538f7c28",
      "tagName": "EF1",
      "description": "Estimated wind speed: 86-110 mph or 138-177 km/h. Frequency: 33.03%. Moderate damage. Roofs severely stripped; mobile homes overturned or badly damaged; loss of exterior doors; windows and other glass broken."
    }
  ]
}
JSON Response (Example) From API in case of ERROR:

 [
  {
    "cd": "1001",
    "description": "The authorization header Is either empty Or isn't Basic"
  }
]

Request Parameters Table

Parameter Name
Parameter Description
base64_Photo_String
This is the input photo as base64 encoded string[string] which will be scaned for tornadoes. If you set this parameter, the below photo_url parameter value must be set to NO
photo_url
This is the image url [string] used for detecting tornadoes. Its default value is NO because the above parameter base64_Photo_String is set. If this parameter is set to an image url, base64_Photo_String value must be NO.

Response Parameter Table

Parameter Name
Parameter Description
created  
This is the timestamp as  [string] at the moment that request is made.
predictions
This is a list or array which contains the parameters explained below.
probability
This is the probability score [real] of the detected tornadoes classes.
tagId
This is the tagId [string] for the detected tornadoes classes. Example: 6b333d95-e461-4155-890c-9921158f7d17.
tagName
This is the tagName [string] for the detected tornadoes classes. Example: EF0.
description
This is the description (source: Wikipedia at https://en.wikipedia.org/wiki/Enhanced_Fujita_scale) of the detected tornado class from the input photo [string] . If the probability is less than 20% this parameter has empty value.

Response Error Codes Table

Parameter Name
Parameter Description
cd

This is the error code which may be:

  • 1001
  • 1002
  • 1003
  • 1004
  • 1005
  • 1006
  • 1007
  • 1008
  • 1009
  • 1010
  • 1011
  • 1012
  • 1013
  • 1014
  • 1015
  • 1016
  • 2001
description

This is the description of the error code which may be:

  • 1001 - The authorization header is either empty or isn't Basic.
  • 1002 - Daily requests number exceeded in TRIAL mode!
  • 1003 - Trial expired!
  • 1004 - Predictions number exceeded!
  • 1005 - Package expired!
  • 1006 - No invoice!
  • 1007 - Reader is NULL for TRIAL!
  • 1008 - Cannot Read if TRIAL exists!
  • 1009 - Error connecting to database looking for TRIAL! (and a detailed description message of the encountered error)
  • 1010 - Reader is NULL for Invoice!
  • 1011 - Cannot Read if Invoice exists!
  • 1012 - Error connecting to database! (and a detailed description message of the encountered error)
  • 1013 - Input request too long! Maximum 5 MB per request are allowed / Nothing to upload
  • 1014 - Invalid request data! (and a detailed description message of the encountered error)
  • 2001 - Invalid request data after passing to the API (and a detailed description message of the encountered error)

Source Code Examples for Using Our Tornadoes Classification API

                       
Imports System
Imports System.Text
imports System.Collections.Generic
Imports System.Net
Imports Newtonsoft.Json

Public Class tornadoes_classification_api
    Public Class ResponseFields
	 Public Property created As String
         Public Property predictions As New List(Of prediction)
    End Class

    Public Class prediction
	 Public Property probability As Single
         Public Property tagId As String
         Public Property tagName As String
         Public Property description As New String
    End Class
   
    Public Class ErrorFields
        Public Property cd As String
        Public Property description As String
    End Class

    Protected Sub SendRequest()
        Dim Client As WebClient = New WebClient()
        Dim credentials As String = Convert.ToBase64String(Encoding.ASCII.GetBytes("your_username:your_password"))
        Client.Headers(HttpRequestHeader.Authorization) = String.Format("Basic {0}", credentials)
        Client.Headers(HttpRequestHeader.Accept) = "application/json"
        Client.Headers(HttpRequestHeader.ContentType) = "application/json"
	Client.BaseAddress = "https://gatiosoft.ro/tornadoef05.aspx"
        Dim resString As String = ""

        Try
            Dim js As String = "Replace this string with your JSON Request Body string like in the example above on the website"
            Dim reqString As Byte() = Encoding.UTF8.GetBytes(js)
            Dim url As Uri = New Uri(Client.BaseAddress)
            Dim resByte As Byte() = Client.UploadData(url, "post", reqString)
            resString = Encoding.UTF8.GetString(resByte)

	    If resString.IndexOf("predictions") > 0 Then
                Dim r As ResponseFields = New ResponseFields()
                r = JsonConvert.DeserializeObject(Of ResponseFields)(resString)
                Console.Write(resString)
            Else
		Dim e As list(of ErrorFields) = New list(of ErrorFields)
		e = JsonConvert.DeserializeObject(Of list(of ErrorFields))(resString)
                Console.Write(e(0).cd)
                Console.Write(e(0).description)
            End If

            Client.Dispose()
        Catch exception As Exception
            Dim ex As System.Exception = exception
            Console.Write("ERROR: " & resString & ex.Message)
        End Try
    End Sub

    Public Shared Sub Main()
	Dim b As tornadoes_classification_api = New  tornadoes_classification_api
        b.SendRequest()
    End Sub
End Class



tornadoEF05 Online Video Presentation

Tornadoes Classification API, tornadoEF05 is in the video presentation below. There are several search terms which you may use like: Tornadoes Classification api, tornado detection api, tornado recognition api, tornado class detection api.

 



Pricing Packages

Please choose one of the below pricing packages for start using our Tornadoes Classification API and online APP!

Start TRIAL
No catches

  • 7 days TRIAL.
  • Use our cloud REST API and online APP.
  • Maximum 50 requests per DAY in trial period.
  • You do NOT own the commercial copyright for using the API in your apps in trial period.
  • Get classification of tornado.
  • Get the description of the tornado class detected in the input photo.
  • Get timestamp at the moment of the request
  • Unlimited Devices
  • Administration console
  • Support through online chat and/or tickets
  • We do NOT allow spam accounts for TRIAL



Monthly TIER
Popular

  • 80 USD per month
  • Use our cloud REST API and online APP
  • Maximum 10000 predictions(*) per month
  • Maximum 50 requests per MINUTE
  • You own the commercial copyright to use it in your apps.
  • Get classification of tornado.
  • Get the description of the tornado class detected in the input photo.
  • Get timestamp at the moment of the request
  • Unlimited Devices
  • Administration console
  • Premium support through online chat and/or tickets, very supportive help and quick responses.



Yearly TIER
(15% Discount)

  • 816 USD per year
  • Use our cloud REST API and online APP
  • Maximum 10000 predictions(*) per month
  • Maximum 50 requests per MINUTE
  • You own the commercial copyright to use it in your apps.
  • Get classification of tornado.
  • Get the description of the tornado class detected in the input photo.
  • Get timestamp at the moment of the request
  • Unlimited Devices
  • Administration console
  • Premium support through online chat and/or tickets, very supportive help and quick responses.



Note: VAT rate may be added or not, function to your country and/or if you are a taxable person or company.
* Prediction - on the input photo may exist many predictions, each of it with certain amount of probability of the detected tornado class. Even we filter the output predictions to those with probability score greater than 20%, for the input photo all predictions are counted.