Identification of wet cooling towers without physical site visits

We use our image recognition model to identify wet cooling towers in your region with the help of aerial photographs in the public domain. Towards the result in four steps:

Step 1: Conversion of addresses into coordinates

Wet cooling towers can be found in many locations in the Netherlands; on top of buildings, close to production halls and adjacent to greenhouses. Environmental agencies have the location of a portion of the wet cooling towers in their region stored in their business systems. Often this is the main address, but not the precise coordinates of the wet cooling tower. 

This is why the first step consists of converting the addresses of known wet cooling towers into coordinates. This is because the address does not provide a precise enough indication of the wet cooling tower’s exact location. Even the location of known wet cooling towers at atlas leefomgeving is only shown as the location where the company is registered (usually their registered office).

To retrace the coordinates, we make use of Google Maps to retrace the precise location of the wet cooling towers. Step 2 explains the importance of the having the precise location of the wet cooling towers.

Step 2: PDOK’s aerial photographs

The machine learning model we use for this application is based on the aerial photographs of PDOK [Depiction of Dutch Public Services on Maps]. These photographs have a 25-centimetre resolution, which is good enough for especially the large industrial cooling towers. However, the model is being increasingly refined and can also recognise smaller wet cooling towers. The strength of this machine learning application lies in the quantity of aerial photographs available to learn from, but also in its ability to predict new wet cooling towers.

Naturally we do not need all of the aerial photographs; only those that contain a wet cooling tower. We make use of our own Python package for converting coordinates into tile numbers and to download the specific aerial photographs with wet cooling towers.


To enable a model to find new wet cooling towers, the model must first learn to recognise wet cooling towers on aerial photographs. With the help of the downloaded aerial photographs and the coordinates of known wet cooling towers, we can label these aerial photographs. We use the open source Labelimg program for this purpose to draw borders around all cooling towers we are able to see at the known locations on the aerial photographs.

Adjusting the tiles

The aerial photographs we use are subdivided into tiles. The drawback of this is that a wet cooling tower could be located exactly on the border between two images. To remedy this problem, we also download the eight surrounding aerial photographs for every aerial photograph. We then create eight new aerial photographs by shifting the surrounding photographs half a distance towards the middle. This way we are sure that each wet cooling tower is displayed in its entirety on at least one aerial photograph.

Step 3: Training the model

Calculating the score

After the aerial photographs have been labelled, we can start training the model. But before we start with this, we need to determine in advance what constitutes a high score. Generally this involves evaluating the precision and recall. In this case this means:

  • Precision: all correctly predicted wet cooling towers divided by the total number of predicted wet cooling towers (correct and in error)
  • Recall: all correctly predicted wet cooling towers divided by the total number of correct wet cooling towers

The model is trained using 80% of the data, whereby 20% is held back for the purpose of calculating the above-referenced scores. Defining a correctly predicted wet cooling tower is not exactly trivial. This is why the scores are assessed at three different levels: Tile, Object and Intersection over Union (IoU).


We primarily used our own software package Envision to develop our model. Envision facilitates rapid modelling for Object Detection and Segmentation Training, and can be used to make predictions. Developments relating to Object Detection and Image Segmentation are happening at such a rapid pace that a stable software package that does all of this for us does not yet exist.


We used the YOLOv2 model over the darknet backend for our first model. To give us more freedom of movement and to migrate to YOLOv3, we entirely converted this model to Pytorch. This gives us much greater control over the model itself and the initial results show that YOLOv3 performs better than YOLOv2 in all respects.

Step 4: Finding new wet cooling towers

After the model has been trained, we can set the model to work on the aerial photographs of a selected region. In recent times we have taken major steps in the field of hardware. As a result, we can now perform much faster predictions using our own GPU service (known as Matrix) and Envision. With this technology performing predictions for hundreds of thousands of images is no longer a problem and we can supply the entire region of an environmental agency, for example, to the model as input.

Coordinates to addresses

The model returns the predictions of new wet cooling towers in the form of borders on aerial photographs. Because we have the coordinates of the upper left-hand corner of the aerial photographs and we are able to calculate where the cooling tower is located relative to the aerial photograph, we are able to convert the predictions into coordinates.

Because for many applications it is also useful to know at which address the cooling tower is probably located, we use reverse geocoding to find the probable address on the basis of a coordinate.

Final Result

For the time being we provide the model’s results in the form of an Excel file. This file contains the detected coordinates, address information, the model’s probability and a link to Google Maps, so that the information can be easily checked. The model’s probability is a percentage that indicates the model’s degree of probability that it has found a wet cooling tower. By default this list is sorted from high to low probability and the known wet cooling towers have been filtered out, so you can quickly find the new wet cooling towers.

In addition to returning these results in an Excel spreadsheet, we consider it valuable to further develop the model to include a dashboard on which the results are displayed geographically. Aside from plotting the detected wet cooling towers with the associated characteristics (such as the address and the model’s probability), environment characteristics can also be linked to this. An unknown wet cooling tower adjacent to a day care centre or a hospital, for example, has a higher priority than an unknown wet cooling tower in a relatively undeveloped region. This is why it is also possible to predict the environment risk on the basis of the location and the environment’s characteristics.

Disclaimer: random generated locations.  

Potential for detecting other objects

In addition to detecting wet cooling towers, there are many other conceivable applications. For example detecting industrial wastewater treatment plants, propane tanks, air conditioners, foil tunnels or solar panels.

If you would like to know more about detecting objects or if you are wondering whether this technology can offer a solution to your particular problem, contact us!

Find more about our approach to safeguarding business continuity for future resilience.



leonie klaassen
Business consultant

Leave a Reply

Your email address will not be published. Required fields are marked *