My blog, imported from Blogger and converted using Jekyll.

Ebrenn y'n Nos mis-Genver 2016

Feb 14, 2016

The following is a rather delayed version of Ebrenn y'n Nos (Sky at Night in Cornish) that I wrote for January 2016. Apologies that much of the observational infomation is already out of date. I have made a basic recording of it here. I will skip February and hopefully will have a version in time for March.

Dydh da ha bledhen nowydh da. Ottomma rann “Ebrenn y'n nos” mis-Genver.

An dydhyow a wra hirhe dres an mis-ma, wosa howlsav an gwav yn mis-Kevardhu.
Diworth Karn Bre, dy' kalann bledhen howldrevel o 0820 ha'n howlsedhes 1628. Dhe benn mis-Genver y fydh 0758 ha 1714. Y fydh a-dro dhe unn our moy a wolow dhydh.
Hag an nosow hir hwath yma spas lowr yn gorthugher gweles an sterennow.
Y'n ebrenn gorthugher an mis ma, yma rann Fordh Sen Jamys neb yw gelwys “The Milky Way” yn Sowsnek. Mars yw ebrenn tewl genes, y hyll'ta gweles band golow a-dreus an ebrenn, hemm yw milyow a ster y'gan galaksi. 

Yma nebes bagas ster kepar ha M45 (an Pleiades), ha'n Hyades yn ranneves Taurus, M35 yn Gemini, ha M44 yn Cancer. Mars yw diwlagatell dhis, yns i dhe les aga gweles drestans.
Yn ranneves Orion, yma neppyth pur dhe les, yma an Niwl-ster Meur Orion, M42. Yth yw yn rann isella an rannneves, a-dro dhe nebes ster gelwys 'an kledha Orion'. An niwl-ster ma yw 'meythrinva' ster, ha sterennow gwrys a gass hidrogen ha helium. Yth yw gweladow dre dhewlagas nooth, ha gwell yw y semlant dre diwlagatell po pellweler. Y liw yw neb gwyrdh yn pellweler, mes yn skeusennow, yth yw marthus rudh. An diffrans yw drefenn ny yll agan dewlagas gweles an rudh yn ta hag yw hi tewl, mes fylmow, po kameras bysyel a yll gweles an rudh gwell. An liw a dhos diworth elektron dhe movya dhe unn nivel dhe onan arall yn atom hidrojen. Hemm yw “Hydrogen-alpha” orth 656.28nm yn rann rudh spektrum elektromagnetek. 

Skeusenn an Dydh Steronieth

An planetys: 

Yow a wra sevel a-dro dhe deg our ha hanter yn gorthugher ha bos ughel yn ebrenn bora. An gwella mis dh'y weles an blydhen ma yw Meurth hag ev ughel yn soth a-dro dhe hanternos.
Meurth a wra sevel a-dro dhe 2 eur myttin, hag yw yn rannneves Virgo. Ev a wra diskwedhes yn ta mis Me.
Gwener ha Sadorn yw yn ebrenn bora ynwedh mes isella ha moy ogas dhe'n howl. Mergher yw gweladow isel yn bora hag yw possybl gweles pymp planet: Mergher, Gwener, Meurth, Yow ha Sadorn dhe'n keth prys. Henn yw possybl diwettha seythun mis-Genver ha kynsa seythun mis-Hwevrer, Mergher a wra movya uskis hag yw gwelys moy ogas dhe'n howl diwettha yn mis-Hwevrer.

Skeusenn an Dydh Steronieth

An loor:
kwartron diwettha o 2a mis-Genver, loor nowydh 10ves mis-Genver, kwartron kynsa 17ves ha loor leun 24a, ha kwartron diwettha 31ves mis-Genver.

Yth esa lonch fusenn gans negys privedh SpaceX a wra lonchya lorell Jason 3 17ves mis-Genver. Sewen a wrug an lonch hag an loerell a wra musura ughelder an keynvor dre radar. An fusenn y honan o Falcon 9, yth esa an towl dhe dira an fusenn war skath-hir yn Keynvor Hebask, dhe wul an fusenn dasusadow. Soweth na wrug an tirans seweni hag onan an garrow-tira dhe fyllel ha fusenn dhe goedha war-nans.

Yth esa lonch lorell a wra keskomunya gans lorellow erell gans laser. Lorellow yn resegva isel a wra dannvon data dre laser dhe lorell yn resegva dorsevelyek, avel rann “European Data Relay System. Dres henna, y hyll an dehwelyans data diworth lorellow bos gwellhes.

Bys nessa prys

The Bayesian classifier function in the dissertation - Part 4: Constructing and evaulating the classifier

Jan 7, 2016

I made global histograms for all of the HRSC DTM tiles of the feature vector (NDR, DTM, slope, Asp, LgtCrv, CrsCrv) , and also histograms for the zonal statistics (I did this for 'head' areas, 'extent' areas and 'context' areas.)

Histograms for zonal statistics for 'extent' shapefile polygons:

Histograms for all of the HRSC tile area:

This is the area of study, I only used the HRSC tiles that I had already identified as having a Souness object. It would perhaps have been better to got all the HRSC tiles between 25° and 60° in both hemispheres, for a more 'global' set of background.

I made a 4 component gaussian fit to these, and then had analytic functions of feature variables, and then made ratios of the zonal/global as functions of the feature vector.
The abundance of Souness GLFs when expressed as a ratio looks less bimodal than the absolute number, since the bimodality is also present in the underlying elevation distribution (though with a caveat for the 'background' excluding areas where there are no Souness objects)
Slopes of 10-20° are favoured.
Both longitudinal and cross-sectional curvature is favoured to be negative, ie. concave slopes within hollows.

I defined the classifier function K as the product of all of these (excluding NDR since it was locally normalised in the HRSC data), and used ln(K) in my interpretation, and in the dissertation made a basic z-test showing the classifier was better than random at predicting the glaciers locations, but looking at a number of fields, it was clear the classifier was not specific to the particular type of object Souness catalogued, but perhaps could be useful as a search tool.

Souness GLF elevation profiles

Jan 6, 2016

I have decided, despite the general poor quality of code, to put many of my Python scripts that I used to process my dissertation online. It is not likely to be very useful to someone else, because it is particularly built around the dataset that I amassed from HRSC Mars Express DTMs and written in a very ad-hoc way.

The scripts are at

One thing I have developed a little beyond my dissertation is the profile along the midpoint of the glacier. I have extended my script that generated the shapefiles of the glacier extents to do circles following the mid-line all the way from head to terminus.

Souness 1273, 944, 945, 948, 946 and 947 in the north of Greg crater

I used gdallocationinfo called from the command-line via subprocess.check_output in Python to retrive the elevation from the HRSC data for all of the Souness GLFs that have HRSC data available. 

All of the Souness GLFs superplotted on one crowded looking PNG file

The same figure with scaling distance along midline and elevation difference to dimensionless number between 0 and 1

The Bayesian classifier function in the dissertation - Part 3: Segmenting the layerstacked feature vector

Jan 4, 2016

In the previous post, I made an aside to mention what I did to create shapefiles of the Souness glacier-like-form extents.

Now I will mention the actual segmentation of the layerstacked feature vector.

A figure from my dissertation showing the process of segmenting the layerstacked feature vector with RSGISlib, then using gdal_polygonize to convert this to a shapefile, and extracting the Raster Attribute Table as a .csv file, to which further processing can be done before rejoining the shapefile with it in QGIS.
The RSGISlib function that performs the segmentation is described on the RSGISlib website at

I wrote a wrapper script around it to perform the segmentation itself, setting the smallest size of segments at 0.2 square kms. I calculate the number of pixels that is depending on the DTM resolution. This can be extracted via the gdalinfo command-line script.

One detail is that I added 9999 to all fields before using the segmentation, since the segmentation didn't work properly with negative values, which are encountered in Martian DTM data, and also in the DTM curvature fields.

There is a subtlely not mentioned in the above flowchart, is that I add the statistics from the original image file (i.e. without the +9999) to the clumps file from the segmentation to the RAT table.
Clumps file in TuiView for tile h2224 covering Greg crater, after the addition of the clump statistics to the RAT.

In one version of RSGISLib, it didn't include the objectID in the raster attribute table, which I then added back in manually with a Python script.

The gdal_polygonize command takes the segment clumps file and makes it into shapefile polygons.

The Bayesian classifier function in the dissertation results - Part 2: getting the Souness catalogue into shapefile form

Jan 4, 2016

In order to focus on the areas of the Souness et al. 2012 glacier-like forms, I first needed to get the actual areas of interest as shapefiles.

I wrote some really not very good Python code to get the information from the Souness catalogue (a .csv exported from a spreadsheet which is available as a supplement from the paper itself) and then convert the coordinates of the GLF head, centre, terminus and left/right mid-channel from lat/long to an equicylindrical coordinate system with a standard parallel of 40°.

The Nilosyrtis Mensae area is fairly densely populated with Souness GLFs.

I have uploaded the code itself to my Bitbucket repository:

A flowchart from my dissertation showing the usage of shapefiles of the Souness objects to create zonal statistics.
Later on in the process, these are intersected with the segmented DEM to find out zonal statistics on the subset of DEM segments that intersect with the Souness GLFs.

While digging around in the scripts I found that I in fact lost the script that actually did the zonal statistics for each DTM tile. I will have to rewrite it from a related one in the backups.

I used one script to loop through each of the HRSC fields and do zonal statistics with the GLF shapefiles. This produced a .csv file in the directory of each tile, and I used a further script to gather them all together into a single .csv file using the manually specified HRSC tile for each field.

Meanwhile, I recently adapted the script that made the Souness regions of interest, to make a series of intermediate areas along the midpoint of the glacier. :
A series of GLFs along the northern wall of Greg crater, with intermediate points along them, that could be useful for making approximate profiles, provided I can manage the rather opaque Python code involved in making the zonal statistics.

All Posts