My blog, imported from Blogger and converted using Jekyll.

An update on TaklowKernewek - Cornish language Python tools

Aug 13, 2016

I have been continuing a little more development on my Cornish language processing tools.

I have added recently a number of things to them, including reverse mutation, and a launcher program. In this post, I will describe a little of 'Niverow', a program to write out numbers in Cornish, 'Mutatya' - a program to generate mutated forms of words, and 'Inflektya', a program to generate inflected verb forms.

Firstly the launcher program. This is the file  TaklowKernewekLonchyer.pyw
which itself imports a couple of other scripts and which are largely based on example scripts from Programming Python 3rd edition by Mark Lutz.

Running this brings up a basic array of buttons:
Clicking on any of these buttons will bring up its own GUI window.


In the boxes, specify the number, and the noun, and noun plural, if you wish to include the noun. It is also necessary to tick the box next to "Usya Hanow" to do so. Tick "Hanow Benow" to indicate that it is a feminine noun, which will make the program use the feminine forms of numbers (e.g. diw in place of dew) where they are needed. Decimal numbers can be used, and this program treats them reading out one digit at a time.
If using a decimal number, the program will use the number + a + plural noun format. The plural is assumed to be the noun + -ow unless a different one is specified.
This format is also used if the number has more than three elements


I have mentioned before on this blog,  but it has a few new features including an option to use the traditional spelling forms as used in the SWF Traditional variant. These consist of using c instead of k before some vowels, and using qw- instead of kw- and wh- instead of hw-.

The other new feature is reverse mutation, taking a word and identifying what words it could originally have been. This doesn't check whether the hypothesised unmutated word actually exists, or whether the mutation is actually gramatically possible.

Traditional forms of the soft mutation c-->g, and the hard mutation gw-->qw. These would be k-->g and gw-->kw in Kernewek Kemmyn, or SWF Main Form.

The word 'garr' could either be an unmutated form, or a soft mutation of 'karr'. Likewise 'hanow' could be 'hanow', breathed mutation of 'kanow' or mixed mutation of 'ganow'.


This program generates inflected forms of verbs, selecting the tense in the left hand menu, the person in the next one, whether to use suffixed pronouns, and whether to expect SWF input and give SWF output (the default is Kernewek Kemmyn).
Showing the inflected forms of the regular verb 'prena' for present, preterite, and imperfect tenses.
Attempting to show the future tense of prena gives an error message, since the simple future doesn't exist for this verb.

The imperative, which doesn't exist for the impersonal, and first person forms, and is not very common except in 2nd person 'Ty' and 'Hwi' forms.
For the irregular verb 'bos' to be, the simple future is shown.
The present subjunctive of the verb 'dismygi' in Kernewek Kemmyn, and in SWF.

Welsh language internet memes

Aug 11, 2016

Here's a few captioned pictures in Welsh I put out on (like Twitter, but in Welsh) previously and a couple of Cornish ones:

Based on the song Can y Cardi

Mae Powys yn wlad fawr iawn. Scattered towns separated by vast tracts of conifers...
Mae e yn Forg!
A typical summer Saturday on the main train line through Cornwall. In Cornish it is not recommended to use "war an tren", instead "y'n tren" if you are indeed travelling inside the carriage.
This may look similar to a screenshot from Poldark but it is in fact from the Cornish version of Lord of the Rings, in a scene showing the hobbits in the Old Forest (An Hen Goeswik or An Goeswik Goth).

Using QOSM to provide OpenStreetMap basemap in QGIS for my slopelines project

Aug 5, 2016

In previous posts I have described how I have used a segmented DEM with RSGISlib, a method originally developed as part of my MSc dissertation on Martian glaciers, for visualising slopes on Earth.

I have been looking at these again, and have produced a few maps with the QOSM plugin, which dynamically loads OpenStreetMap tiles into QGIS.

These maps below were produced with the Thunderforest Outdoors rendering. The slopelines are as previously, red for convex slopes, blue for concave, with thicker lines denoting steeper slopes.

Previous versions of this had used a version of OpenStreetMap that I was preparing myself from the source data within QGIS. Using the basemap tiles I can focus on adapting the visualisation of the slope lines themselves a bit more.

Bodmin Moor

Camborne and Redruth, including Carn Brea and Portreath



A close up of Truro
For a while I thought the QGIS bug I found had recurred which meant that the arrows had disappeared. However it was something wrong in my data dependent styling, not sure how it happened. Once fixed, I show the slope direction with arrows, which is only possible up to about 1:10,000 otherwise the rendering struggles:

Indicating the downslope direction with arrows.

Delabole, showing the slate quarry.
St. Ives

Aberystwyth, Wales

Cadair Idris, Wales

A wider view of Cadair Idris, too small a scale to allow plotting the arrows.

Pen y Fan, Brecon Beacons, Wales

Retrotopia draft map

Jul 23, 2016

The author John Michael Greer has been publishing a speculative fiction series currently on his blog, The Archdruid Report called 'Retrotopia'. It is set in around 2065, in a North America that has undergone some changes after the breakup of the USA.

Here is a draft map, based on his descriptions in the comments to a recent post, showing the approximate borders of the successor states to the USA and Canada. I have yet to deal with states that are split between more that one nation in 2065.

The nations of the Retrotopia stories, not including at this time states that are split between more than one Retrotopia nation. No account of sea level rise is made, which is assumed to be 6 feet above present day levels.
I used a map of US counties from here, and US state, and Canadian province shapefiles from here. Update - I switched to using this map of Canadian provinces which includes Nunavut.

I have also used the ETOPO1 bedrock relief topographic map as a background, which shows the elevation of Greenland without the ice sheet. It is perhaps a century or two too early to assume complete deglaciation of Greenland. The portion of Greenland below sea level is not actually connected to the sea here, it would be at a +50 metre sea level as assumed in the 25th century setting of Star's Reach.


I have made some updates based on further descriptions based on John Michael Greer's comments, which account for the states that are divided:

The borders of the Retrotopia nations can be seen by the colours, with present-day US states and counties shown as lines.
The Lakeland Republic is not labelled since the Free City of Chicago label has prevented it from appearing.

In this case the Lakeland Republic label wins out.

These are the borders of the western areas, as far as I understand JMGs comments.

Close-up of the north-east former USA and adjacent part of Canada.
Black and white version.

The shapefile itself containing all of the Retrotopia nations in North America I have made available here.

It is also available as a KML file suitable for use with Google Earth.

Showing 2 meters of sea level rise in blue, with 2-4 metres shaded in lighter blue.

Mapping the result of the EU referendum

Jun 27, 2016

Since the results of the UK EU referendum were published, a number of maps have been published of the results across the UK.

I have mapped these in QGIS, with the aid of the OS Boundary Line map of local authority boundaries in Great Britain, and Westminster constituencies in Northern Ireland. Both of these sets of boundaries are available as government open data.

I have used data dependent styling in the maps below, which used the following formula:

case when "pc_leave"  >= 50.0 then color_rgba( 127,0,255, scale_linear( "pc_leave" ,50,80,20,255))
else color_rgba( 255,255,0, scale_linear( "pc_remain" ,50,80,20,255)) end

This makes places that had a majority of votes cast for leave shaded in purple, with transparency varied as the percentage who voted leave rises from 50% to 80%. Similarly remain is shaded in yellow under the same scaling. Unlike in General Elections, where parties generally have an established colour scheme, the EU referendum doesn't have a universally accepted colour scheme. I used purple because UKIP uses purple, and yellow because pro-Remain parties LibDems and SNP use it.

Most of my maps retain the geographic rather than a cartogram representation.  It is a point of open debate which is better, but I also add another alternative, which is to represent the absolute size of the majority by crosses, by placing a point at a random place within each polygon for each 1000 votes of majority. The other difficulty with these kind of maps is the varying impact based on the visual impact of different colours.

With a white background
With SRTM elevation overlaid (because I can).
With a black background.
Using QGIS's random dots feature to represent each 1000 voters of majority abs(leave-remain) with a cross. These are not very visible at this scale.

Crosses to represent each 1000 votes of majority, using random dots in QGIS.

Same as above, but remain is now red, which makes it more visible.
With a black background, going back to purple/yellow.

A cartogram with the QGIS cartogram plugin, sized by votes cast (not electorate) since this was the data more easily to hand.

All Posts