Skip to main content

Thermal imaging

Color palettes

Description

Color palettes applied to thermal images help the human eye distinguish image details. The colors in the palette are artificially created pseudocolors that emphasize temperature differences.

Depending on model, Axis thermal network cameras have different types of palettes:

  • Stream palettes are palettes that can be applied to individual streams, that is, different streams can have different palettes. The palette is specified when requesting a stream using RTSP or HTTP.
  • Global palettes are used for all streams. The palette is specified by parameter Image.I0.Appearance.Palette.
  • Isotherm palettes display temperature ranges in predefined colors. The temperature ranges are set by the user, who thereby associates specific temperature ranges to specific color ranges. Use VAPIX® Isotherm API to enable the use of isotherm palettes and to set the temperature ranges. See Isotherm API.

Identification

Palettes are supported if:

  • Property: Properties.Image.Palette.Palette=yes

Stream palettes are supported if Properties.Image.Palette.StreamPalette does not exist or if:

  • Property: Properties.Image.Palette.StreamPalette=yes

Global palettes are supported if:

  • Property: Properties.Image.Palette.StreamPalette=no

Using stream palettes

Stream palettes are palettes that can be applied to individual streams, that is, different streams can have different palettes. The palette is specified then requesting a stream using RTSP or HTTP. If no palette is included in the RTSP or HTTP request, the palette in parameter Image.I0.Appearance.Palette is used.

Check if stream palettes are supported.

Request:

http://<servername>/axis-cgi/param.cgi?action=list&group=Properties.Image.Palette

The response shows that stream palettes are supported. Stream palettes are also supported if Properties.Image.Palette.StreamPalette does not exist.

Response:

HTTP/1.0 200 OK
Content-Type: text/plain

Properties.Image.Palette.Palette=yes
Properties.Image.Palette.StreamPalette=yes

List available palettes. Use param.cgi?action=listdefinitions.

Request:

http://<servername>/axis-cgi/param.cgi?action=listdefinitions&listformat=xmlschema&group=Image.*.Appearance.Palette

Here, palette names are marked in bold.

Response:

HTTP/1.0 200 OK
Content-type: text/xml

<parameterDefinitions xmlns="http://www.axis.com/ParameterDefinitionsSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.axis.com/ParameterDefinitionsSchema http://<servername>/pub/parameterdefinitions.xsd" version="1.0">
<model>AXIS Q1931-E PT Mount</model>
<firmwareVersion>5.75.1</firmwareVersion>
<group name="root">
<group name="Image">
<group name="I0">
<group name="Appearance">
<parameter name="Palette" value="White-hot" securityLevel="7714" niceName="Palette">
<type>
<enum>
<entry value="White-hot"/>
<entry value="Black-hot"/>
<entry value="Axis"/>
<entry value="Rainbow"/>
<entry value="Planck"/>
<entry value="Atlantis"/>
<entry value="Nightvision"/>
<entry value="Ice-and-fire"/>
</enum>
</type>
</parameter>
</group>
</group>
</group>
</group>
</parameterDefinitions>

Retrieve an RTSP stream with palette "Axis".

Request:

rtsp://<servername>/axis-media/media.amp?videocodec=h264&palette=Axis

Retrieve an HTTP stream with palette "Axis".

Request:

http://<servername>/axis-cgi/mjpg/video.cgi?palette=Axis

Using global palettes

For products that do not support stream palettes, all streams will use the global palette from parameter Image.I0.Appearance.Palette.

Check if palettes are supported.

Request:

http://<servername>/axis-cgi/param.cgi?action=list&group=Properties.Image.Palette

The response shows that palettes are supported but that stream palettes are not supported.

Response:

HTTP/1.0 200 OK
Content-Type: text/plain

Properties.Image.Palette.Palette=yes
Properties.Image.Palette.StreamPalette=no

List available palettes. Use param.cgi?action=listdefinitions

Request:

http://<servername>/axis-cgi/param.cgi?action=listdefinitions&listformat=xmlschema&group=Image.*.Appearance.Palette

Here, palette names are marked in bold. The names starting with "iso" are isotherm palettes.

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<parameterDefinitions xmlns="http://www.axis.com/ParameterDefinitionsSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.axis.com/ParameterDefinitionsSchema http://<servername>/pub/parameterdefinitions.xsd" version="1.0">
<model>AXIS Q2901-E</model>
<firmwareVersion>5.55.4</firmwareVersion>
<group name="root">
<group name="Image">
<group name="I0">
<group name="Appearance">
<parameter name="Palette" value="Red-hot" securityLevel="7714" niceName="Palette">
<type>
<enum>
<entry value="White-hot"/>
<entry value="Black-hot"/>
<entry value="Planck"/>
<entry value="Axis"/>
<entry value="Rainbow"/>
<entry value="Red-hot"/>
<entry value="Nightvision"/>
<entry value="Iso-Fire-WH"/>
<entry value="Iso-Fire-BH"/>
<entry value="Iso-Planck-WH"/>
<entry value="Iso-Axis-WH"/>
<entry value="Iso-Midrange-WH"/>
<entry value="Iso-Midrange-BH"/>
<entry value="Iso-Rainbow-WH"/>
</enum>
</type>
</parameter>
</group>
</group>
</group>
</group>
</parameterDefinitions>

Change the global palette to "Axis".

Request:

http://<servername>/axis-cgi/param.cgi?action=update&Image.I0.Appearance.Palette=Axis

Using isotherm palettes

Before using isotherm palettes, make sure to enable isothermal imaging and to set the temperature limits as described in Isotherm API.

Request:

http://<servername>/axis-cgi/isotherm/setmode.cgi?mode=enabled

List available palettes. Use param.cgi?action=listdefinitions

Request:

http://<servername>/axis-cgi/param.cgi?action=listdefinitions&listformat=xmlschema&group=Image.*.Appearance.Palette

Isotherm palettes have names starting with "iso". Here, the isotherm palettes are marked in bold.

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<parameterDefinitions xmlns="http://www.axis.com/ParameterDefinitionsSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.axis.com/ParameterDefinitionsSchema http://<servername>/pub/parameterdefinitions.xsd" version="1.0">
<model>AXIS Q2901-E</model>
<firmwareVersion>5.55.4</firmwareVersion>
<group name="root">
<group name="Image">
<group name="I0">
<group name="Appearance">
<parameter name="Palette" value="Red-hot" securityLevel="7714" niceName="Palette">
<type>
<enum>
<entry value="White-hot"/>
<entry value="Black-hot"/>
<entry value="Planck"/>
<entry value="Axis"/>
<entry value="Rainbow"/>
<entry value="Red-hot"/>
<entry value="Nightvision"/>
<entry value="Iso-Fire-WH"/>
<entry value="Iso-Fire-BH"/>
<entry value="Iso-Planck-WH"/>
<entry value="Iso-Axis-WH"/>
<entry value="Iso-Midrange-WH"/>
<entry value="Iso-Midrange-BH"/>
<entry value="Iso-Rainbow-WH"/>
</enum>
</type>
</parameter>
</group>
</group>
</group>
</group>
</parameterDefinitions>

Change the global palette to the isotherm palette "Iso-Axis-WH".

Request:

http://<servername>/axis-cgi/param.cgi?action=update&Image.I0.Appearance.Palette=Iso-Axis-WH

Isotherm API

Description

VAPIX® Isotherm API is used to enable isothermal imaging and to set the isotherm palette temperature ranges. An isotherm palette is a pseudocolor palette where user-defined temperature ranges are displayed in predefined colors, that is, temperature ranges are associated with color ranges.

The temperature ranges are defined by three limits: lower, middle and upper. Most isotherm palettes display temperatures below the lower limit in grayscale. When using the "Iso-Fire-WH" palette, temperatures between the lower and middle limits are displayed in yellow, temperatures between the lower and middle limits are displayed in orange and temperatures above the upper limit are displayed in red.

Supported functionality:

  • Enable and disable isothermal imaging.
  • Set and get the temperature limits.

How to list available isotherm palettes and how to set isotherm palettes is described in Using isotherm palettes.

Identification

VAPIX® Isotherm API is available if:

  • Property: Properties.Isotherm.Isotherm=yes
  • Firmware: 5.55 and later

Common examples

Retrieve supported XML schema versions.

Request:

http://<servername>/axis-cgi/isotherm/schemaversions.cgi

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<SchemaVersionsSuccess>
<SchemaVersion>
<VersionNumber>1.0</VersionNumber>
<Deprecated>false</Deprecated>
</SchemaVersion>
[...]
</SchemaVersionsSuccess>
</IsothermResponse>

Set the temperature scale to Celsius. Use settemperaturescale.cgi from VAPIX® Temperature Alarm API. See Set temperature scale.

Request:

http://<servername>/axis-cgi/temperature_alarm/settemperaturescale.cgi?unit=Celsius

Check if isothermal imaging is enabled.

Request:

http://<servername>/axis-cgi/isotherm/getmode.cgi

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<Success>
<GetModeSuccess>
<Mode>disabled</Mode>
</GetModeSuccess>
</Success>
</IsothermResponse>

Enable isothermal imaging.

Request:

http://<servername>/axis-cgi/isotherm/setmode.cgi?mode=enabled

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<GeneralSuccess />
</IsothermResponse>

Set the upper, middle and lower limits for the isotherm palette temperature ranges.

Request:

http://<servername>/axis-cgi/isotherm/setlimits.cgi?upper=80&middle=70&lower=50

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<GeneralSuccess />
</IsothermResponse>

This example shows how to apply an isotherm palette. See also Color palettes.

To check that palettes are supported, use:

Request:

http://<servername>/axis-cgi/param.cgi?action=list&group=Properties.Image.Palette.Palette

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

Properties.Image.Palette.Palette=yes

List available isotherm palettes. Use param.cgi?action=listdefinitions.

Request:

http://<servername>/axis-cgi/param.cgi?action=listdefinitions&listformat=xmlschema&group=Image.*.Appearance.Palette

The response lists all palettes. The isotherm palettes are the ones starting with "iso", here marked in bold.

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<parameterDefinitions xmlns="http://www.axis.com/ParameterDefinitionsSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.axis.com/ParameterDefinitionsSchema http://<servername>/pub/parameterdefinitions.xsd" version="1.0">
<model>AXIS Q2901-E</model>
<firmwareVersion>5.55.4</firmwareVersion>
<group name="root">
<group name="Image">
<group name="I0">
<group name="Appearance">
<parameter name="Palette" value="Red-hot" securityLevel="7714" niceName="Palette">
<type>
<enum>
<entry value="White-hot"/>
<entry value="Black-hot"/>
<entry value="Planck"/>
<entry value="Axis"/>
<entry value="Rainbow"/>
<entry value="Red-hot"/>
<entry value="Nightvision"/>
<entry value="Iso-Fire-WH"/>
<entry value="Iso-Fire-BH"/>
<entry value="Iso-Planck-WH"/>
<entry value="Iso-Axis-WH"/>
<entry value="Iso-Midrange-WH"/>
<entry value="Iso-Midrange-BH"/>
<entry value="Iso-Rainbow-WH"/>
</enum>
</type>
</parameter>
</group>
</group>
</group>
</group>
</parameterDefinitions>

The Axis product used in this example does not support stream palettes. The palette specified by parameter Image.I0.Appearance.Palette is used for all streams. To change to the isotherm palette, "Iso-Axis-WH", use:

Request:

http://<servername>/axis-cgi/param.cgi?action=update&Image.I0.Appearance.Palette=Iso-Axis-WH

Get schema versions

Use isotherm/schemaversions.cgi to retrieve the supported XML schema versions.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/isotherm/schemaversions.cgi

This CGI has no arguments

Response

Responses from isotherm/schemaversions.cgi

Success

A successful request returns the supported schema version.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<SchemaVersionsSuccess>
<SchemaVersion>
<VersionNumber>[major.minor]</VersionNumber>
<Deprecated>[true/false]</Deprecated>
</SchemaVersion>
[...]
</SchemaVersionsSuccess>
</IsothermResponse>

Supported elements, attributes and values:

ElementDescription
IsothermResponseContains the response. For information about XML schema versions, see XML schemas.
SchemaVersionsSuccessSuccessful request.
SchemaVersionContains one schema version.
VersionNumberSchema version. See XML schemas.
DeprecatedIf true, this version of the XML Schema is deprecated and should not be used.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Set isotherm mode

Use isotherm/setmode.cgi to enable and disable isothermal imaging.

Request

  • Access control: admin, operator
  • Method: GET

Syntax:

http://<servername>/axis-cgi/isotherm/setmode.cgi?<argument>=<value>

with the following arguments and values:

ArgumentValid valuesDescription
mode=<string>enabled disabledenabled = Enable isothermal imaging.disabled = Disable isothermal imaging.

Response

Responses from isotherm/setmode.cgi

Success

If the request is successful, isothermal imaging is enabled or disabled and a GeneralSuccess response is returned. See General success response.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Get isotherm mode

Use isotherm/getmode.cgi to check if isothermal imaging is enabled.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/isotherm/getmode.cgi

This CGI has no arguments

Response

Responses from isotherm/getmode.cgi

Success

A successful request returns the isotherm mode.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<Success>
<GetModeSuccess>
<Mode>[enabled/disabled]</Mode>
</GetModeSuccess>
</Success>
</IsothermResponse>

Supported elements, attributes and values:

ElementDescription
IsothermResponseContains the response. For information about XML schema versions, see XML schemas.
GetModeSuccessSuccessful request.
ModeThe current mode.enabled = Isothermal imaging is enabled.disabled = Isothermal imaging is disabled.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Set limits

Use isotherm/setlimits.cgi to set temperature limits for the isotherm palette temperature ranges. There are three limits: upper, middle and lower.

Request

  • Access control: admin, operator
  • Method: GET

Syntax:

http://<servername>/axis-cgi/isotherm/setlimits.cgi?<argument>=<value>&[<argument>=<value>...]

with the following arguments and values:

ArgumentValid valuesDescription
upper=<integer>IntegersThe upper temperature limit.Unit: The unit set by temperature_alarm/settemperaturescale.cgi
middle=<integer>IntegersThe middle temperature limit.Unit: The unit set by temperature_alarm/settemperaturescale.cgi
lower=<integer>IntegersThe lower temperature limit.Unit: The unit set by temperature_alarm/settemperaturescale.cgi

Response

Responses from isotherm/setlimits.cgi

Success

If the request is successful, the temperature limits are set and a GeneralSuccess response is returned. See General success response.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Get limits

Use isotherm/getlimits.cgi to retrieve the current temperature limits for the isotherm palette temperature ranges.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/isotherm/getlimits.cgi

This CGI has no arguments

Response

Responses from isotherm/getlimits.cgi

Success

A successful request returns the temperature limits.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<Success>
<GetLimitsSuccess>
<Upper>[upper temperature]</Upper>
<Middle>[middle temperature]</Middle>
<Lower>[lower temperature]</Lower>
</GetLimitsSuccess>
</Success>
</IsothermResponse>

Supported elements, attributes and values:

ElementDescription
IsothermResponseContains the response. For information about XML schema versions, see XML schemas.
GetLimitsSuccessSuccessful request.
UpperThe upper temperature limit. Unit: The unit set by temperature_alarm/settemperaturescale.cgi
MiddleThe middle temperature limit. Unit: The unit set by temperature_alarm/settemperaturescale.cgi
LowerThe lower temperature limit. Unit: The unit set by temperature_alarm/settemperaturescale.cgi

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

General success response

General success response from Isotherm API.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="UTF-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<GeneralSuccess />
</IsothermResponse>

Supported elements, attributes and values:

ElementDescription
IsothermResponseContains the response. For information about XML schema versions, see XML schemas.
GeneralSuccessSuccessful request.

General error response

General error response from Isotherm API.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<IsothermResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Isotherm1.xsd">
<GeneralError>
<ErrorCode>[error code]</ErrorCode>
<ErrorDescription>[description]</ErrorDescription>
</GeneralError>
</IsothermResponse>

Supported elements, attributes and values:

ElementDescription
IsothermResponseContains the response. For information about XML schema versions, see XML schemas.
GeneralErrorError.
ErrorCodeA numeric error code. See table below.
ErrorDescriptionDescription of the error.
Error codeDescriptionCGI
10Error while processing the request.All
20Invalid request.All
40Specified version is not supported.All

Temperature alarm API

Description

VAPIX® Temperature alarm API is used to set up and configure temperature alarm zones in the image from a thermal camera. The API is also used to retrieve the spot temperature of a point in the image.

A temperature alarm zone is an area in the image where the monitored area’s temperature is measured. An alarm is triggered and a temperature detection event is emitted if the measured temperature rises above or falls below the threshold temperature, or if the temperature increases too quickly. As different areas in a temperature zone usually have different temperatures, it is possible to configure the zone to use the maximum or minimum temperature to determine when alarms are triggered.

Supported functionality:

  • Set the temperature scale to Celsius or Fahrenheit.
  • Set, get and remove temperature alarm zones.
  • Get the zone status. The status includes the zone’s average, maximum and minimum temperatures and if an alarm has been triggered.
  • Get the spot temperature of a point in the image.

To improve the temperature measurement, the monitored object’s emissivity can be specified when setting up an alarm zone and when requesting the spot temperature. Emissivity is a measure of a material’s ability to emit thermal radiation and is a number between 0 and 1, where 1 is the emissivity of a black body. The temperature measurement is more precise for objects with high emissivity and Axis temperature alarm cameras have a lower emissivity limit of 0.5.

Identification

VAPIX® Temperature alarm API is available if:

  • Property: Properties.TemperatureAlarm.TemperatureDetection=yes
  • Firmware: 5.55 and later

Common examples

Retrieve supported XML schema versions.

Request:

http://<servername>/axis-cgi/temperature_alarm/schemaversions.cgi

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<SchemaVersionsSuccess>
<SchemaVersion>
<VersionNumber>1.0</VersionNumber>
<Deprecated>false</Deprecated>
</SchemaVersion>
[...]
</SchemaVersionsSuccess>
</TemperatureResponse>

Set the temperature scale to Celsius.

Request:

http://<servername>/axis-cgi/temperature_alarm/settemperaturescale.cgi?unit=Celsius

Create a temperature alarm zone. The zone is specified by a zone id, a user-friendly zone name, the zone coordinates and the emissivity of the objects in the zone. The arguments temperature, temperaturetype, detectiontype and delaytime control when alarms are triggered.

The following zone will trigger an alarm when the zone’s maximum temperature rises above 85 degrees.

Request:

http://<servername>/axis-cgi/temperature_alarm/set.cgi?id=0&name=zone0&left=100&right=2000&top=200&bottom=2500&emissivity=0.87&temperature=85&temperaturetype=maximum&detectiontype=above&delaytime=5

The following zone will trigger an alarm when the zone’s minimum temperature falls below 0 degrees.

Request:

http://<servername>/axis-cgi/temperature_alarm/set.cgi?id=0&name=zone0&left=100&right=2000&top=200&bottom=2500&emissivity=0.87&temperature=0&temperaturetype=minimum&detectiontype=below&delaytime=5

The following zone will trigger an alarm when the zone’s minimum temperature rises above 22 degrees.

Request:

http://<servername>/axis-cgi/temperature_alarm/set.cgi?id=0&name=zone0&left=100&right=2000&top=200&bottom=2500&emissivity=0.87&temperature=22&temperaturetype=minimum&detectiontype=above&delaytime=5

The following zone will trigger an alarm when the temperature increases more than 20 degrees in 30 seconds.

Request:

http://<servername>/axis-cgi/temperature_alarm/set.cgi?id=0&name=zone0&left=100&right=2000&top=200&bottom=2500&emissivity=0.87&temperature=20&temperaturetype=maximum&detectiontype=increase&delaytime=30

Retrieve all alarm zones.

Request:

http://<servername>/axis-cgi/temperature_alarm/get.cgi

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<Success>
<GetSuccess>
<AlarmZone>
<ZoneId>0</ZoneId>
<Name>zone0</Name>
<Xleft>100</Xleft>
<Xright>2000</Xright>
<Ytop>200</Ytop>
<Ybottom>2500</Ybottom>
<Emissivity>0.87</Emissivity>
<DetectionType>above</DetectionType>
<Temperature>85</Temperature>
<TemperatureType>maximum</TemperatureType>
<DelayTime>5</DelayTime>
</AlarmZone>
</GetSuccess>
</Success>
</TemperatureResponse>

Remove an alarm zone.

Request:

http://<servername>/axis-cgi/temperature_alarm/remove.cgi?id=2

Get the zone status. The status shows the zone’s average, maximum and minimum temperatures, and if an alarm is triggered.

Request:

http://<servername>/axis-cgi/temperature_alarm/getzonestatus.cgi

Response:

HTTP/1.0 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<Success>
<GetZoneStatusSuccess>
<AlarmZone>
<ZoneId>0</ZoneId>
<AverageTemperature>25</AverageTemperature>
<MinimumTemperature>22</MinimumTemperature>
<MaximumTemperature>27</MaximumTemperature>
<Triggered>No</Triggered>
</AlarmZone>
</GetZoneStatusSuccess>
</Success>
</TemperatureResponse>

Get the spot temperatures, that is the temperature of a point in the image. The point is specified by its X and Y coordinates as x,y where the comma in the request is percent-encoded. To improve the temperature measurement, the point’s emissivity is also specified.

Request:

http://<servername>/axis-cgi/temperature_alarm/getspottemperature.cgi?coordinates=4598%2C6742&emissivity=0.98

The temperature detection event in the event stream. Event-specific content is marked in bold, the rest is part of the ONVIF stream. Here, the alarm is triggered (AlarmActive=1) in the zone with zone ID 0.

<tt:MetadataStream xmlns:tt="http://www.onvif.org/ver10/schema">
<tt:Event xmlns:tt="http://www.onvif.org/ver10/schema">
<wsnt:NotificationMessage xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:tnsaxis="http://www.axis.com/2009/event/topics" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsa5="http://www.w3.org/2005/08/addressing">
<wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">tns1:VideoSource/tnsaxis:TemperatureDetection</wsnt:Topic>
<wsnt:ProducerReference>
<wsa5:Address>uri://621c7eac-a3ee-4372-9e44-98fac02827d5/ProducerReference</wsa5:Address>
</wsnt:ProducerReference>
<wsnt:Message>
<tt:Message UtcTime="1971-04-30T04:28:26.976004Z" PropertyOperation="Initialized">
<tt:Source>
<tt:SimpleItem Name="TemperatureZone" Value="0" />
<tt:SimpleItem Name="VideoSourceConfigurationToken" Value="1" />
</tt:Source>
<tt:Key></tt:Key>
<tt:Data>
<tt:SimpleItem Name="AlarmActive" Value="1" />
</tt:Data>
</tt:Message>
</wsnt:Message>
</wsnt:NotificationMessage>
</tt:Event>
</tt:MetadataStream>

For information about the event declaration, see Temperature detection event. Use GetEventInstances from Event and action services.

Get schema versions

Use temperature_alarm/schemaversions.cgi to retrieve the supported XML schema versions.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/schemaversions.cgi

This CGI has no arguments

Response

Responses from temperature_alarm/schemaversions.cgi

Success

A successful request returns the supported schema versions.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<SchemaVersionsSuccess>
<SchemaVersion>
<VersionNumber>[major.minor]</VersionNumber>
<Deprecated>[true/false]</Deprecated>
</SchemaVersion>
[...]
</SchemaVersionsSuccess>
</TemperatureResponse>

Supported elements, attributes and values:

ElementDescription
TemperatureResponseContains the response. For information about XML schema versions, see XML schemas.
SchemaVersionsSuccessSuccessful request.
SchemaVersionContains one schema version.
VersionNumberSchema version. See XML schemas.
DeprecatedIf true, this version of the XML Schema is deprecated and should not be used.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Set temperature scale

Use temperature_alarm/settemperaturescale.cgi to set the temperature scale to Celsius or Fahrenheit.

Request

  • Access control: admin, operator
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/settemperaturescale.cgi?<argument>=<value>

with the following arguments and values:

ArgumentValid valuesDescription
unit=<string>Celsius FahrenheitThe temperature scale to use.

Response

Responses from temperature_alarm/settemperaturescale.cgi

Success

If the request is successful, the temperature scale is set and a GeneralSuccess response is returned. See General success response.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Set temperature alarm zone

Use temperature_alarm/set.cgi to create or update a temperature alarm zone.

A temperature alarm zone is identified by its zone ID. The zone is set up using the X coordinates left and right and the Y coordinates top and bottom. The point X=0, Y=0 is the image upper left corner. If the image is rotated or mirrored, use the coordinates of the unrotated and unmirrored image when setting up the zone.

Arguments temperature, temperaturetype, detectiontype and delaytime control when alarms are triggered. detectiontype specifies if the alarm should be triggered above or below a threshold temperature or when the temperature increases.

  • For detectiontype=above and detectiontype=below, temperature is the threshold temperature and delaytime is the time between successive temperature measurements.
  • For detectiontype=increase, temperature is the change in temperature and delaytime is the change in time. That is, temperature=20 and delaytime=30 means that the alarm is triggered if the temperature increases more than 20 degrees in 30 seconds.
  • temperaturetype controls whether the zone’s maximum or minimum temperature determines when alarms are triggered. detectiontype=above and temperaturetype=minimum means that the alarm is triggered if the zone’s minimum temperature rises above the threshold.

Argument emissivity is the emissivity of objects in the zone.

Request

  • Access control: admin, operator
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/set.cgi?<argument>=<value>&[<argument>=<value>...]

with the following arguments and values:

ArgumentValid valuesDescription
id=<integer>0...Required. The zone ID.
name=<string>StringA user-friendly name for the zone.
left=<integer>0...9999The zone’s left X coordinate.
right=<integer>0...9999The zone’s right X coordinate.
top=<integer>0...9999The zone’s top Y coordinate.
bottom=<integer>0...9999The zone’s bottom Y coordinate.
emissivity=<string>0.5...1Emissivity of the objects in the zone. Used to improve temperature measurement.Default: 0.95
detectiontype=<string>above below increaseabove = The alarm is triggered when the temperature rises above the threshold temperature.below = The alarm is triggered when the temperature falls below the threshold temperature.increase = The alarm is triggered when the temperature increases more than temperature degrees in delaytime seconds.
temperature=<integer>IntegerThe threshold temperature.For detectiontype=increase: The threshold temperature is the maximum allowed increase in temperature during the time specified by delaytime.Unit: The unit set by settemperaturescale.cgi, see Set temperature scale.
temperaturetype=<string>maximum minimumDifferent areas in the zone usually have different temperatures. temperaturetype defines if the zone’s maximum or minimum temperature should be used to determine when alarms are triggered.maximum = The zone’s maximum temperature determines when alarms are triggered.minimum = The zone’s minimum temperature determines when alarms are triggered.
delaytime=<integer>0 ... 60Time between successive temperature measurement.Unit: seconds

Response

Responses from temperature_alarm/set.cgi

Success

If the request is successful, the zone is created and a GeneralSuccess response is returned. See General success response.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Get temperature alarm zone

Use temperature_alarm/get.cgi to retrieve the current temperature alarm zones.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/get.cgi

This CGI has no arguments.

Response

Responses from temperature_alarm/get.cgi

Success

If the request is successful, the response returns all temperature alarm zones.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<Success>
<GetSuccess>
<AlarmZone>
<ZoneId>[ID]</ZoneId>
<Name>[Name]</Name>
<Xleft>[Xleft]</Xleft>
<Xright>[Xright]</Xright>
<Ytop>[Ytop]</Ytop>
<Ybottom>[Ybottom]</Ybottom>
<Emissivity>[Emissivity]</Emissivity>
<DetectionType>[above/below/increase]</DetectionType>
<Temperature>[Temperature]</Temperature>
<TemperatureType>[maximum/minimum]</TemperatureType>
<DelayTime>[Delay time]</DelayTime>
</AlarmZone>
[...]
</GetSuccess>
</Success>
</TemperatureResponse>

Supported elements, attributes and values:

ElementDescription
TemperatureResponseContains the response. For information about XML schema versions, see XML schemas.
GetSuccessSuccessful request
AlarmZoneContains the properties of one alarm zone.
ZoneIdThe zone ID.
NameThe zone’s name.
XleftThe left X coordinate.
XrightThe right X coordinate.
YtopThe top Y coordinate.
YbottomThe bottom Y coordinate.
EmissivityThe emissivity.
DetectionTypeWhen the alarm should trigger.
TemperatureThe threshold temperature.
TemperatureTypeIf the alarm should trigger at the zone’s maximum or minimum temperature.
DelayTimeThe delay time.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Get zone status

Use temperature_alarm/getzonestatus.cgi to retrieve the status of each temperature alarm zone. The zone status includes the maximum, minimum and average temperatures and if an alarm has been triggered.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/getzonestatus.cgi

This CGI has no arguments.

Response

Responses from temperature_alarm/getzonestatus.cgi

Success

If the request is successful, the response returns the status of all temperature alarm zones.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<Success>
<GetZoneStatusSuccess>
<AlarmZone>
<ZoneId>[ID]</ZoneId>
<AverageTemperature>[Average temperature]</AverageTemperature>
<MinimumTemperature>[Minimum temperature]</MinimumTemperature>
<MaximumTemperature>[Maximum temperature]</MaximumTemperature>
<Triggered>[Yes/No]</Triggered>
</AlarmZone>
[...]
</GetZoneStatusSuccess>
</Success>
</TemperatureResponse>

Supported elements, attributes and values:

ElementDescription
TemperatureResponseContains the response. For information about XML schema versions, see XML schemas.
GetZoneStatusSuccessSuccessful request
AlarmZoneContains the status of one alarm zone.
ZoneIdThe zone ID.
AverageTemperatureThe average temperature in the zone.Unit: The unit set by temperature_alarm/settemperaturescale.cgi
MinimumTemperatureThe minimum temperature in the zone.Unit: The unit set by temperature_alarm/settemperaturescale.cgi
MaximumTemperatureThe maximum temperature in the zone.Unit: The unit set by temperature_alarm/settemperaturescale.cgi
TriggeredYes = An alarm is triggered.No = No alarm is triggered.tns1:VideoSource/tnsaxis:TemperatureDetection is a stateful event. Triggered will remain Yes as long as the event is active.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Remove temperature alarm zone

Use temperature_alarm/remove.cgi to remove a temperature alarm zone.

Request

  • Access control: admin, operator
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/remove.cgi?<argument>=<value>

with the following arguments and values:

ArgumentValid valuesDescription
id=<integer>0...The zone ID of the zone to remove.

Response

Responses from temperature_alarm/remove.cgi

Success

If the request is successful, the zone is removed and a GeneralSuccess response is returned. See General success response.

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

Get spot temperature

Use temperature_alarm/getspottemperature.cgi to retrieve the temperature at a certain point in the image. To improve the temperature measurement, specify the emissivity of the point.

Request

  • Access control: admin, operator, viewer
  • Method: GET

Syntax:

http://<servername>/axis-cgi/temperature_alarm/getspottemperature.cgi?<argument>=<value>&[<argument>=<value>]

with the following arguments and values:

ArgumentValid valuesDescription
coordinates=<integer>,<integer>x,yThe X and Y coordinates of the requested point.X and Y are numbers between 0 and 9999 where the point X=0, Y=0 is the image upper left corner.
emissivity=<string>0.5...1Emissivity of the object. Used to improve temperature measurement.Default: 0.95

Response

Responses from temperature_alarm/getspottemperature.cgi

Success

If the request is successful, the response returns the temperature of the requested point.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<Success>
<GetSpotTemperatureSuccess>
<SpotTemperature>[Temperature]</SpotTemperature>
</GetSpotTemperatureSuccess>
</Success>
</TemperatureResponse>

Supported elements, attributes and values:

ElementDescription
TemperatureResponseContains the response. For information about XML schema versions, see XML schemas.
GetSpotTemperatureSuccessSuccessful request
SpotTemperatureThe returned spot temperature.Unit: The unit set by temperature_alarm/settemperaturescale.cgi

Error

If an error occurred, a GeneralError response is returned. See General error response.

Error codes: 10, 20, 40

General success response

General success response from Temperature alarm API.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="UTF-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<GeneralSuccess />
</TemperatureResponse>

Supported elements, attributes and values:

ElementDescription
TemperatureResponseContains the response. For information about XML schema versions, see XML schemas.
GeneralSuccessSuccessful request.

General error response

General error response from Temperature alarm API.

  • HTTP Code: 200 OK
  • Content-Type: text/xml

Body:

<?xml version="1.0" encoding="utf-8"?>
<TemperatureResponse SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.axis.com/vapix/http_cgi/Temperature1.xsd">
<GeneralError>
<ErrorCode>[error code]</ErrorCode>
<ErrorDescription>[description]</ErrorDescription>
</GeneralError>
</TemperatureResponse>

Supported elements, attributes and values:

ElementDescription
TemperatureResponseContains the response. For information about XML schema versions, see XML schemas.
GeneralErrorError.
ErrorCodeA numeric error code. See table below.
ErrorDescriptionDescription of the error.
Error codeDescriptionCGI
10Error while processing the request.All
20Invalid request.All
40Specified version is not supported.All

Temperature detection event

The tns1:VideoSource/tnsaxis:TemperatureDetection event is emitted when an alarm is triggered in a temperature alarm zone.

Event declaration:

<tns1:VideoSource aev:NiceName="Video source">
<tnsaxis:TemperatureDetection wstop:topic="true" aev:NiceName="Temperature Detection">
<aev:MessageInstance aev:isProperty="true">
<aev:SourceInstance>
<aev:SimpleItemInstance aev:NiceName="Temperature Zone" Type="xsd:int" Name="TemperatureZone">
<aev:Value aev:NiceName="zone2">2</aev:Value>
<aev:Value aev:NiceName="zone1">1</aev:Value>
<aev:Value aev:NiceName="zone0">0</aev:Value>
</aev:SimpleItemInstance>
<aev:SimpleItemInstance aev:NiceName="Video source configuration token" Type="xsd:int" Name="VideoSourceConfigurationToken">
<aev:Value>1</aev:Value>
</aev:SimpleItemInstance>
</aev:SourceInstance>
<aev:DataInstance>
<aev:SimpleItemInstance aev:NiceName="Alarm active" Type="xsd:boolean" Name="AlarmActive" isPropertyState="true"></aev:SimpleItemInstance>
</aev:DataInstance>
</aev:MessageInstance>
</tnsaxis:TemperatureDetection>
</ns1:VideoSource>

The SourceInstance contains two SimpleItemInstance:s

  • The SimpleItemInstance with Name="TemperatureZone" contains the defined temperature alarm zones.
  • The SimpleItemInstance with Name="VideoSourceConfigurationToken" contains the video channel.

The DataInstance contains the alarm status: active or inactive.