Welcome to the c-squares ("Concise Spatial Query and Representation System") website.This site opened in December 2001 and will be the home of all information regarding the "c-squares" spatial indexing and display system.

* 'c-squares-discuss' listserver is now online *

* C-squares FAQ ("Frequently Asked Questions") page
now available *

What is c-squares?

C-squares is a system for storage, querying, display, and exchange of "spatial data" locations and extents in a simple, text-based, human- and machine- readable format. It uses numbered (coded) squares on the earth's surface measured in degrees (or fractions of degrees) of latitude and longitude as fundamental units of spatial information, which can then be quoted as single squares (similar to a "global postcode") in which one or more data points are located, or be built up into strings of codes to represent a wide variety of shapes and sizes of spatial data "footprints".

"Spatial data" (short for "geospatial data") in this context means any data which relate to a particular position on the earth's surface - and thus, for example, could be plotted on a map.

Why c-squares?

To date, the ability to do simple spatial queries of documents or indexed objects of any sort has relied on either using a controlled list of geographic search words which are applied consistently to the objects in question (such as country or region names, names of oceans and seas, etc.), or using some type of numeric units such as latitude and longitude. The latter is typically either one set of values (for a point), or some type of range (e.g. maximum and minimum values of both latitude and longitude, or sometimes a centre point plus a radius), to give a bounding box or a circle which forms an approximation of the spatial extent of the data, and which can then be searched using numeric functions. True "polygon" boundaries of dataset footprints can also be expressed in simple notation (e.g. by giving lat/long coordinates of a series of points which are then connected together by straight lines to produce the boundary shape), however to search these requires complex spatial queries which are typically only the province of dedicated GIS (Geographic Information System) software.

C-squares has been developed in order to have a simple, text-based method to represent either points, or more complex shapes on the earth's surface ("spatial objects") which is easy to index and easy to query (for example, to answer a question "which of these objects occur within my area of interest") without requiring any more sophisticated software than something which supports standard text queries, e.g. a "find" function in a word processor, text-based database, or internet search engine, but which offers considerably more functionality than either the "location keyword" or "bounding box" methods of spatial data indexing.

How does it work?

The mapsheet analogy

Imagine someone has a database of "spatial objects" of some kind - either points (e.g. bird sightings), or extents (e.g. National Parks). He/she wants to make the data available for spatial queries so that enquirers can quickly retrieve, for example, all bird species recorded in a particular 0.5 x 0.5 degree square (approx. 50 x 35 km), and also (possibly) know which National Parks also occur in the vicinity.

A simple way to enable this would be to divide the region of interest up into a local grid of some kind (similar to large scale mapsheets), give each grid square (sheet) a unique code, then for each species of bird, compile an index of all the squares/mapsheets in which that species has been recorded. Then it is a very simple matter to quickly discover what species occur in which squares in answer to the user's enquiry, without even needing the base data to be on-line: the system looks for a text match between the enquirer's "search" square or squares, encoded according to the same system, and the list of squares stored for each species in turn, returning "hit" or "miss" in each case. If the spatial extents of the National Parks have been indexed in the same way, the second part of our query can also be answered as well, by determining which "National Park" squares overlap the user's "search" square(s) of interest. We could also easily produce a list of species within (or close to) any particular National Park, the limit of uncertainty being the size of the squares actually used when building the index.

C-squares uses just such a system, with two important extensions: (1) the nomenclature for the squares is globally applicable, rather than just local (and applies equally on land or on sea), and (2), the system can be used at any scale, from 10 x 10 degree squares (approx. 1000 km or 700 miles each side) through 5 x 5, 1 x 1, 0.5 x 0.5, 0.1 x 0.1 degree squares, and so on, as fine as the user requires.

The suitability of such a system for text searching can be illustrated using another example. A randomly selected portion of the (printed) index to a popular atlas lists the following:

Obviously, the map references here are provided so that the user can quickly go to the relevant page to find the location of the particular "Newcastle" in question. Less apparent from the printed copy (but quite feasible for an electronic version) is that one could also use this index in reverse, i.e., generate a list of all names occurring on map 144 - or if desired, in Map 144 square G5 - and that this could be done rapidly using only a standard text matching procedure (no numeric calculations required) so long as the location information against each name was text searchable. In effect, holding the "mapsheet" and (smaller) "subsquare" references enables both latitude and longitude elements to be combined into a single, easily searchable "word".

In practice, c-squares builds on an established nomenclature for 10x10° squares on the earth's surface (World Meteorological Organisation, or WMO squares - ref. 1) and subdivides these further (e.g. into 5 x 5°, 1 x 1°, 0.5 x 0.5°, 0.1 x 0.1°, and so on) by extending a notation previously utilised for searching the Australian "Blue Pages" Marine and Coastal Data Directory. Once the relevant c-squares code or codes are entered into a searchable document (e.g. a database field, metadata record, or HTML web page), a simple text search for any desired square code will establish whether or not the record/document matches the user's spatial search requirement, giving an unambiguous "hit" or "miss". The c-squares string (one or more codes, with a designated separator character) can also be sent across the web very simply from any remote application to a custom c-squares mapper maintained on the Data Centre's server at CSIRO Marine Research. This will superimpose the supplied c-square extents on one of a variety of user-selectable base maps, with accompanying text if so requested, and can be used to quickly and effectively indicate the dataset spatial extent or footprint.

C-squares is suitable for displaying a range of types of complex dataset footprints, for example:

C-squares has been developed at CSIRO Marine and Atmospheric Research in Australia, over the period 2001 to current, and was given its first "official" release at the 2002 EOGEO technical workshop in Ispra, Italy in May 2002 (ref. 2). A formal article describing the system was published in March 2003 (ref. 3).

References cited

News and Updates / Frequently Asked Questions

Latest information (and older items of interest) is available at the c-squares News and Site Updates page. Additional information (of particular benefit to first-time visitors to this site) is available from the C-squares FAQ page.

"c-squares-discuss" listserver

A "c-squares-discuss" listserver has been established for interested developers and/or implementers to exchange information or post enquiries relevant to c-squares. To join the list, send an email to


with the word 'subscribe' in the BODY of the email (note, anything in the subject line is ignored). Then, to post a message, send it to

   c-squares-discuss@marine.csiro.au .

Archives of this list are available at http://www.cmar.csiro.au/dmr/listarchive/c-squares-discuss/.

"C-squares" has been developed by Tony Rees of the Divisional Data Centre, CSIRO Marine and Atmospheric Research, Australia, for use in CMAR's "MarLIN" metadata system and elsewhere. Persons interested in further development and implementation of this system elsewhere are invited to contact the author at the email address below.

Dr Tony Rees,
Divisional Data Centre,
CSIRO Marine and Atmospheric Research,
GPO Box 1538,
Hobart, Tasmania 7001, Australia.

Return to c-squares home page | CMAR Data Centre home page

Website started: 13 December 2001
This page last updated: 25 March 2003