Csquares (acronym for the
concise spatial query and representation system) is a system of
(actually a type of global grid) that provides a basis for simple
of geographic features or data. It was devised by Tony Rees of CSIRO Marine and Atmospheric Research (then "CSIRO Marine Research") in 20012, and described in the literature in 2003.
The notation system of csquares incorporates a compact encoding of
latitude and
longitude coordinates into a machine and
humanreadable csquares code, which can then be used either for spatial search or display via a suitable mapping application. The csquares codes also provide an application and vendorindependent, interoperable notation system for any gridded data whose units of organization correspond with steps of the csquares hierarchy (e.g. 5, 1, 0.5 degree cells, etc.).
Rationale
According to the initial system description, csquares was devised as an improved (more precise) method for expressing dataset geographic extents in searchable metadata catalogues, in place of (or in addition to) conventional bounding rectangle representations. The method is also useful as a generic, interoperable notation for gridded data (see above), for example a variety of datasets that describe environmental characteristics of global halfdegree cells (see
AquaMaps site). Csquares can also simply be used for mapping (example:
CSIRO Marine and Atmospheric Research's "CAAB" application), although the most value is obtained when the system is used for spatial search as well (e.g.
OBIS database,
CMAR's "MarLIN" metadatabase, etc.).
Description
Csquares provides a hierarchical nomenclature for dividing 10°x10° World Meteorological Organization (WMO) squares into smaller units (each an individual "csquare") of 5°x5°, 1°x1°, 0.5°x0.5°, 0.1°x0.1°, etc., using an alternating base 2, base 5 linear division, as fine as may be required. Each cell of the resulting subdivision is allocated a unique alphanumeric identifier (csquares code), such that the position of an object or objects on the surface of the
Globe can be represented by a set of one or more such codes that define the cell(s) within which the object occurs. Storing these codes as text identifiers, for example in a
database, repository of spatial metadata, searchable text file or web page, then offers the functionality for a simple, textbased spatial search, without the requirement for any more complex geographic information system (GIS). Once stored (or if desired, generated onthefly using a csquares encoder), a code or set of codes can also be rendered on a map by a utility (for example, the webaccessible
csquares mapper) that incorporates the relevant decoding routines.
The actual assignment of the individual cell identifiers to vector objects whose position is expressed in latitude, longitude coordinates follows rules described in reference (1) and the csquares website and can be automated via simple routines, and the reverse is also possible (decoding) in a straightforward manner. In addition, since the codes are hierarchical and interleaved (each "cycle" containing identifiers for both longitude and latitude, at progressively finer levels of resolution), only the relevant "leading" portion of a (for example) high resolution code need be interrogated to match a lower resolution spatial query.
Conceptually, the csquares encoding method belongs to a class of algorithms which can be considered derivations of the Zorder principle.
Example csquares codes
London, UK, occupies (for example) portions of four 0.5°x0.5° cells:

0.5°W to 0°W, 51.5°N to 52.0°N

0.5°W to 0°W, 51.0°N to 51.5°N

0°E to 0.5°E, 51.5°N to 52.0°N

0°E to 0.5°E, 51.0°N to 51.5°N
In csquares notation these are cells 7500:110:3, 7500:110:1, 1500:110:3 and 1500:110:1 (at 0.5°x0.5° resolution). Alternatively at 1°x1° they are portions of two cells, 7500:110 and 1500:110; at 5°x5° resolution, portions of two cells 7500:1 and 1500:1; and at 10°x10° resolution, portions of 2 cells 7500 and 1500 (equivalent to the same identifiers as in WMO squares).
To visualize the position of these squares on a map, the current syntax to address an installation of the "csquares mapper" is (e.g.):
http://www.obis.org.au/cgibin/cs_map.pl?csq=7500:110:37500:110:11500:110:31500:110:1.
In a system that uses csquares codes as units of spatial indexing, a textbased search on any of these square identifiers will retrieve data associated with the relevant square. If a wildcard search is supported (for example suppose that the wildcard character is a percent sign), a search on "7500%" will retrieve all data items in that ten degree square, a search on "7500:1%" will retrieve all data items in that five degree square, etc.
The asterisk character "*" has a special (reserved) meaning in csquares notation, being a "compact" notation indicating that all finer cells within a higher level cell are included, to the level of resolution indicated by the number of asterisks. In the example above, "7500:*" would indicate that all 4 fivedegree cells within parent tendegree cell "7500" are filled, "7500:***" would indicate that all 100 onedegree cells within parent tendegree cell "7500" are filled, etc. This approach enables the filling of contiguous blocks of cells with an economy of characters in many cases (a form of data compression), that is useful for efficient storage and transfer of csquares codes as required.
Sample csquares enabled systems
Csquares spatial indexing, search, and/or mapping routines are currently incorporated into OBIS, the Ocean Biogeographic Information System;
FishBase;
AquaMaps; and a variety of webaccessible applications at CSIRO Marine and Atmospheric Research. For a full list, see the link
Sample csquares enabled systems on the csquares website.
See also

List of geodesicgeocoding systems

World Meteorological Organization squares

Grid (spatial index)

Geocode

Minimum bounding rectangle

Geospatial metadata

Ocean Biogeographic Information System

AquaMaps

FishBase

CSIRO Marine and Atmospheric Research
External links