Watch the animation as the sea rises a metre each frame...
I use my technique of scanning colour-coding from a bitmap, so it is incredibly easy to experiment with other colour schemes.
I've further ideas to try, about making plots of STEEPNESS of slopes, rather than absolute heights, for example. And I want to overlay semitransparent mapping data- roads, rivers...
The animation is automagically produced by ImageMagick from within Liberty, as usual.
It happens that for the last five weeks we have had severe flooding, and much of the land in the 1 to 2m zone is currently swampy or actually flooded. It was very pretty before Xmas when the edges froze... but the main road from Taunton to Gladstonbury has been impassable for five weeks. Avalon is an island again, almost! King Alfred hid in these areas from the Danes...
-
Photos available on my Flickr site!
nomainwin ' 57,600,000 bytes. 20km square at 50m intervals. 2-byte, hi-lo, signed data. ' Data is in 5 bytes of ASCII representing nnn.n metres. Space separator. ' After 401 values, ( 0d 0a) separates rows. global dataFile$ dim colour$( 256) UpperLeftX = 80 UpperLeftY = 50 WindowWidth = 420 WindowHeight = 500 open "Display data" for graphics_nf_nsb as #w #w "trapclose [quit]" loadbmp "lookup", "spect.bmp" #w "down ; fill black ; drawbmp lookup 20 450 ; flush" indy =5 ' vertical drop to colourbar required for indx =0 to 255 colour$( indx) =GetPixel$( 2 +19 +indx, 450+indy) next indx 'data "st\ST00" 'data "st\ST02" 'data "st\ST04" 'data "st\ST20" data "st\ST22" 'data "st\ST42" 'data "st\ST44" 'data "st\ST24" 'd\ta "sy\SY08" 'data "sy\SY28" 'data "finished" read mapSquare$ for rise =0 to 10 open "DTM\ASCII\data\" +mapSquare$ +".asc" for input as #fileIn dataFile$ =input$( #fileIn, lof( #fileIn)) close #fileIn index =72 CRLF$ =chr$( 13) +chr$( 10) for y =0 to 400 for x =0 to 400 z$ ="" do z$ =z$ +mid$( dataFile$, index, 1) index =index +1 loop until right$( z$, 2) =".0" if mid$( dataFile$, index, 1) =" " then index =index +1 if mid$( dataFile$, index, 2) =CRLF$ then index =index +2 z =int( val( z$) *255 /450) if val( z$) >rise then #w "color "; colour$( z) else #w "color black" end if #w "set "; 2 +x; " "; 2 +y 'print index,, x, y, z$ next x scan next y #w "flush" #w "getbmp scr 2 2 402 402" bmpsave "scr", "outRaised\map" +right$( mapSquare$, 4) +"_" +str$( rise) +".bmp" #w "down ; cls ; fill black ; flush" next rise wait [quit] close #w end function GetPixel$( x, y) 'x, y = window coordinates Thanks KCDan!! #w "getbmp pixel "; x; " "; y; " 1 1" 'A 1x1 bitmap, contains exactly 1 pixel #w "color white ; set "; x; " "; y bmpsave "pixel", "PixelData.dat" 'Save that one pixel as a temporary bmp file open "PixelData.dat" for binary as #kc 'Open that one pixel bmp file as a binary file seek #kc, 66 'Blue Info b =asc( input$( #kc, 1)) 'Blue Seek #kc, 67 'Green Info g =asc( input$( #kc, 1)) 'Green Seek #kc, 68 'Red Info r =asc( input$( #kc, 1)) 'Red close #kc kill "PixelData.dat" 'Delete the temporary bmp file GetPixel$ =r; " "; g; " "; b 'Place the values in a string end function