On-shore wind database

From Factsheets: Limiting UK Emissions
Jump to navigation Jump to search

DTI on-shore wind speed database

Previously the DTI published a database of average on-shore wind speeds at 10, 25 and 45 metres above ground level (AGL) for every square kilometre across the UK. Despite the obvious usefulness of this data, the project was discontinued and the website archived, some of the links are now broken and there is no guarantee this archived material will be retained. At the time the DTI website was live, the data files were freely available - and as a public service Fluke is making these files available now:

Although the data files have a *.asc extension they are NOT ESRI compliant rather they are simply readable plain text 'ascii' files. Fluke carried out some original work to convert the data files from the proprietary DTI format to ESRI-compliant ASC files which should be suitable for GIS software (they have been successfully tested with Autodesk AutoCAD Map 3D 2019)

For readers without GIS software interested in viewing the data, Fluke has produced a three page pdf showing a map of the UK colour-coded according to wind speed

Index: Page 1 = 10m AGL; Page 2 = 25m AGL; Page 3 = 45m AGL

Key: 1-3 m/s = dark grey; 3-6 m/s dull red; 6-7 m/s red; 7+ m/s yellow

The original DTI website included a calculator to display the wind speed at three elevations for any OS grid reference; Fluke may replicate this here at a later date

Code for conversion DTI ASC to ESRI ASC

Readers interested in verifying the conversion are welcome to experiment with the following Microsoft Excel VBA code:

   Sub convert()
   Dim r As Range, i As Long, j As Long, s As String, t As String, x As Long
   Dim TextFile As Integer
   Dim FilePath As String
   Set fs = CreateObject("Scripting.FileSystemObject")
   Set a = fs.CreateTextFile("C:\path\to\required\folder\output.txt", True, False)
   a.WriteLine "ncols 700"
   a.WriteLine "nrows 1300"
   a.WriteLine "xllcorner 0"
   a.WriteLine "yllcorner 0"
   a.WriteLine "cellsize 1"
   a.WriteLine "nodata_value -9999"
   Set r = Range("a1") 'original DTI ASC file copied into column A
   For i = 2 To 9095 Step 7
       t = ""
       For j = 0 To 6
           s = r(i + j, 1)
           x = InStr(1, s, ";")
           s = Mid(s, x + 2, 9999)
           s = Replace(s, ";", " ")
           t = t + s
           If j < 6 Then t = t + " "
       Next j
       t = Replace(t, "  ", " ")
       a.WriteLine t
   Next i
   'Save & Close Text File
   End Sub