C21CH

Speculative Web Space

DH Map Course

Introduction

Why Map?

Considerations For A Mapping Project

Many of the considerations of a mapping project are similar to other DH projects. The following are all important considerations that you should consider before starting a project. More importantly, don't let uncertainty about these questions stop you from starting a project. The sooner you start the sooner the answers to these questions become clear. Try to build an end-to-end working draft ('proof of concept', 'prototype' or 'feasibility test') as early as possible. That way you encounter and solve problems early and avoid committing too much effort to something that turns out not to work as assumed. Bear in mind that in IT 'should' means 'probably won't' (as in "It'll be ok, it should work."). If software promises to solve all your problems, expect work in implementation and customisation. All problems can be solved, but time and effort must be allocated.

Caveats

We often need to deal with vague locations in source materials (eg: 3hrs north of the creek)

If you map from primary sources, such as journey narratives, do you map where they thought they were, or where your best estimate is of where they really were? Or both?

There is a difference between accuracy and precision. Eg: a coordinate may have 6 decimal places, but only be accurate to 3 decimal places.

There is a lot of material and software that we might have assumed to be available but isn't - but that is why this is an interesting research field - there are still important problems to solve, and those technical solutions will lead to discoveries that have not yet been made.

We might build a map in order to spot patterns but keep in mind all the factors that might influence patterns. For example, we might see a cluster of dots and think it significant, but if travel time is a factor, it may only be because those sites are in the mountains, and considering travel time, they are just as clustered as events spread out across a flat region.

If time is a dimension in our data, what if an event occured over an extended period? Or at multiple times? Or at the same time at several locations? (nothing is ever simple).

Exceptions to the rule. Normally in software and STEM areas we are concerned with fitting everything to a consistent structure for ceteris parabus, repeatability of experiment or to meet the 80/20 rule in profit maximisation, as part of 6 sigma quality assurance etc. In Humanities it is often the exceptions to the rule, highly contingent instances, marginal cases, resistance to structure, or the changes in structure itself over time, that we are interested in. In humanities mapping, as in DH generally, we must be prepared to put in the extra effort to handle these exceptions sometimes in conflict with usual IT or commercial practice, or at least offer an explanation about how they relate to our generalised processing. It might be a matter of applying the 80/20 rule of applying a standard approach to as much as possible, but making sure we also cater for the other 20 instead of excluding them. This may require hacking, adding on to, or sometimes just surrounding explanatory and contextualising information.

"What's the good of Mercator's North Poles and Equators,
   Tropics, Zones, and Meridian Lines?"
So the Bellman would cry: and the crew would reply
   "They are merely conventional signs!

"Other maps are such shapes, with their islands and capes!
   But we've got our brave Captain to thank
(So the crew would protest) "that he's bought us the best—
   A perfect and absolute blank!"
   
- The Hunting of the Snark, Lewis Carroll, 1874-76
   

The potential of imagination, the anticipation of discovery, or the violence of terra nullius?

Some Interesting Maps

State of the Art

Pace of Change

Mapping shipping in 2012 and 2016.

Digital Humanities is a rapidly changing field. If you don't start now and finish soon, it will look old when you are done. How do you make sure the project is relevant and has lasting value? One approach is to not be too specific about what technology you say you are going to use so you can use whatever is most relevant near the launch time. The solution we use at C21CH is to adopt a Rapid development style - produce a working prototype early, and aim to continually enhance, build upon it and adapt. If there is a 3 year planning and development process with software as an outcome at the end, the software will probably be redundant when launched. Also, the launch must be considered as the beginning, not the end. The purpose of a DH development project is to reach the end of the beginning - then you move into the maintenance and upgrade cycle. This still needs resourcing, but not as much. A 'finished' development project without ongoing support is often wasted effort. Software is a living thing.

ARC GIS 3D

Examples of 3D map visualisation in general, at the 'local' scale.

Hills of Donegal

Geneva, Switzerland

'Story Maps'

Specifically designed for map focused narratives called 'Story Maps'. They are very engaging and use cutting edge web design techniques, such as the scrolling navigation, full screen images, short video loops. They are user freindly, enabling you to log in and create the map using their software. Take care to check you can export your work in standard formats before committing to any tool or system, otherwise the survival of your work may depend on the business continuing to support it, or they may start charging too much for it.

C21CH Maps

Humanities Map Examples

Making Digital Maps

Mapping Features And Concepts

Coordinate Systems There are many different coordinate systems as scientists develop and improve on them. Some are based on spheres, some on the slightly distorted sphere shape of Earth, and some provide corrections to improve accuracy on previous systems. As digital humanists though the mathematical intracacies of their differences are usually not as important as the ability to use them to produce a map. Latitude are parallel lines drawn around the globe, or the horizontal lines on a map. Longitude are lines drawn from each pole around the earth, somewhat like a quartered orange. Latitude and longitude provides a point. Google maps uses World Geodetic System (WGS) 1984. This is a decimal system, not one based on 'degree's, 'minutes' and 'seconds', which you may have seen.

Map projection The earth is curved, a map is flat. The 'projection' defines the way in which the 3D curved surface has been translated into 2D. This always involves distortion. The most familiar rectangular map of the world, the Mercator projection, for example increasingly stretches out proportions away from the equator such that the points at the poles are stretched out to be as broad as the equator. This is a popular topic in mapping which you can easily find out information about on the internet. Famously, the Mercator inflates the rich and powerful nations of the Northern Hemisphere and shrinks poorer equatorial and tropical countries, so that a more proportionate map, the Gall–Peters projection, was adopted by some. As humanists we must bear in mind that everything, even the 'objective' science of mapping technology, is political.

Layers The type of information on a map is typically called a 'layer'. We might add a layer of soil types, a layer of river systems, a layer of towns and cities, and a layer of the data we are particularly interested in. Maps are something we read. They are always something we write. The way we draw the map and what we draw on it is always chosen. These choices are influenced by cultural and personal assumptions and the particular purpose of the map. Marshall Islanders have maps of ocean currrents, local councils have maps of water pipes, armies have maps of strategic positions, pirates have maps of treasure. Because maps are intended to convey knowledge, and this is typically for a purpose, they play a role in human agency and power. Some maps promise adventure and the chance to learn from the unfamiliar, other maps are more sinister when we understand what they were used for.

Basemap Usually we want to put information on a map. The map we put the information on, or the layers on, is called the 'basemap' or 'base layer'. Mapping systems typically come with a variety of options for the basemap of the world - terrain only, road maps, showing place names or not showing place names, and so on.

Points, lines, polygons When using mapping software, most information is displayed as either a point, a line, or a polygon. Lines may be irregular, such as the path a road takes, and shapes may be squares, circles or irregular drawings. Drawing polygons can be very time consuming, so normally you would not contemplate this unless there were only a few places you wished to outline, or if you can get the outlines from somewhere else. Another drawback in many systems is that lines and shapes can only be drawn without curves, making them somewhat clunky to look at.

Image overlays This enables placing an image over the top of a map, by specifying where the corners of the image should go. In this way we can display old maps, or well drawn outlines, over a contemporary map for example, with 'show/hide' toggles and transparency. Some tools allow distorting the image so that old map features match exactly the current map.

Time and Space / History and Place In humanities research and critique, even outside history, we are often concerned with the historical development of our subject area. Time is often a crucial dimension to add to Humanities maps. Many systems have time widgets that enable showing data based on time spans.

Metadata Typically we are not only mapping coordinates, but sites that have a lot of other associated information. This metadata about a place is what you would often find in a pop up when you click on a point, or it may be part of the visualisation, for example being used to determine the colours or size of dots to convey intensity.

Different Tools For Different Purposes

This is not a complete list, just some prominent examples.

Google Earth: If you need to view points on your desktop, on a round globe for your own research and the focus is not on building something for others to interact with (though you can still share screenshots, or export the data for others to import).

DIY Tools: If you want to enter your data in an easy to use interface, or import a spreadsheet, to create a web presentation and don't want to do anything beyond the system capabilities (you can quickly get an impressive result). ESRI story maps allows you to log in and create a visually rich multimedia map focused web presentation. Google MyMaps is a very easy to use tool for creating basic familiar web maps that you can then embed in a web page. Often this might be all you need, and even a simple map can have a big impact. There is no need to choose a more elaborate solution if this serves the purpose. It's also a great place to start to become familiar with web mapping conventions and technology. It's relatively intuitive:

Web Archive/Publishing systems with WebMap software Eg: Recollect, HistoryPin, Heurist.

Javascript APIs: If you need to provide your map as a tool for others to use, or to publicise and promote the work and findings. This also gives you the most possible control to draw on a wide range of already existing code that you can also customise as much as needed, though this may require significant investment. You can start with easy to build features, and build from there as time and money permits.

Because many of the above are easy enough to teach yourself, we will look at Javascript APIs in this course. Even if you don't code, understanding how the code works helps you fix problems and understand why something must work one way and not another.

PRACTICAL EXERCISES

In these exercises we are using the ArcGIS Javascript API because you don't need to install anything, you just need to paste the code into a file and save it. The Google Maps Javascript API is similar but there are a few differences that might make you choose one over the other. However, the Google Maps Javascript API requires you to set up a Google account and get an API key, which can be a little confusing, and I don't want to make you sign up to anything to do this course.

Some of the differences in the APIs are (note the differences change as these megacompanies compete aggressively, catching up and outdoing each other):

Google: faster; easy to use; more widely familiar to everyone.

ArcGIS: a bit slower but fast enough; more advanced and richer features if needed such as 3D terrain view, statistics displays etc.

  1. Look at the ArcGIS tutorial.. You can also see the code here (when the page is opened, right click and 'view source').
  2. Having read over this (you don't need to memorise, just get the gist of it) click the link to the Javascript Sandbox
  3. Copy and paste the code into a text file on your computer and save as HelloWorldMap.html (Make sure that it has not been saved as HelloWorldMap.html.txt. You may need to makes sure it is saving as a 'any' type of file, not 'text'.)
  4. Double click this file to open it. It should open in your default browser and show the same map. (If it doesn't open in a browser it's probably because it saved as 'HelloWorldMap.html.txt')
  5. Change the zoom level and refresh or close and open again to check it loads at the expected zoom level.
  6. Change the coordinates so that it opens focused on the University of Sydney. (tip: a quick way to get coordinates is to go to Google maps, right click and choose 'What's here' - be careful, sometimes the Google coordinates need to be switched around to work in other systems. If your map doesn't work, check this first. Ie: the coordinates -33.886056, 151.186281 may need to be 151.186281, -33.886056)
  7. Change the basemap - look up what basemaps can be used in the API Reference
  8. Look at this ArcGISMarker.html example that adds a marker, a large red dot, to the map. (TIP: right click and 'view source'. You can cut and paste this to your own files.). Save this html file on your computer and edit it to change the RGB colour and alpha transparency.
  9. If you click it, there is a pop up with information. Change what it says.
  10. Note that you can draw a variety of markers on the map. Usually the standard types are points, lines and polygons.

Working With KML Feeds

If you had more than a few markers it would be clumsy to hard code them all into this Javascript file. It would be very difficult to manage. Often we store all our data seperately, in some system for maintaining data, whether that's a spreadsheet, a GIS system, SQL database, or otherwise. We then want to import that data, and have the Javascript API do its magic to plot all the points on the map. Usually a web feed that adheres to some standard GIS format is used. One commonly used format is KML (Keyhole Markup Language). It is XML for geographical information. It looks vaguely like HTML. You can edit it directly as it is a 'human readable' format - at least according to programmers.

TIP: a KMZ file is just a KML file that has been compressed. If you want to see what's inside it change the file extension to .zip instead of .kmz and extract the file by right clicking and choosing 'Extract all' or using compression software like 7zip.

Working with KML also makes it possible to add lots of different data from different sources to compare and contrast, to spot patterns and learn new things. It's also a good way to make your geocoded information available to others. Because it makes it so easy to share data, there should be free KML files with all kinds of info available everywhere, but it remains difficult to find sometimes. Here is an example of the sort of thing that should be more widely available in any field: The Megalithic Portal. We will use the one for Australia: http://www.megalithic.co.uk/asb_kml.php?country=44&kmltitle=Australia

Because most detailed mapping is Science or Commerce focused, in Humanities we are often constrained to building on and customising systems with STEM or Commerce assumptions to our unique needs. None the less Geoscience Australia and other services provide useful data that we can compare with humanities information: http://services.ga.gov.au/

  1. Look at the ArcGIS KML example and, again, make a file on your own computer for it, called kmlexample.html
  2. Change the URL for the KML to http://www.megalithic.co.uk/asb_kml.php?country=44&kmltitle=Australia
  3. You might want to set the starting coordinates for the map to be Australia instead of Wyoming.

Unfortunately, they haven't used very clear icons for the markers, but you can see that it is simple enough, by cut and pasting and modifying code, and simply pasting in the URL to some KML formatted data, to import KML data and display it on your web map. When you make your map, use simple, clear easy to see signifiers. We are aiming at building a useful application and conveying information. The better this is achieved the more people will learn about your research.

Anatomy of a KML file

It's useful to have some understanding of the inner workings of the tools you are using, so that when there is a technical glitch you can find and fix the problem.

See also Google's KML Tutorial

The following is a very simple KML file that would put a point on the map.

It begins with an XML declaration because KML is compliant with the widely adopted mark up language, XML.

It then declares a 'placemark' element with a name, description and point coordinates.


<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Simple placemark</name>
    <description>Attached to the ground. Intelligently places itself 
       at the height of the underlying terrain.</description>
    <Point>
      <coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
    </Point>
  </Placemark>
</kml>

What does the following do?


<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>The Pentagon</name>
    <Polygon>
      <extrude>1</extrude>
      <altitudeMode>relativeToGround</altitudeMode>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>
            -77.05788457660967,38.87253259892824,100 
            -77.05465973756702,38.87291016281703,100 
            -77.05315536854791,38.87053267794386,100 
            -77.05552622493516,38.868757801256,100 
            -77.05844056290393,38.86996206506943,100 
            -77.05788457660967,38.87253259892824,100
          </coordinates>
        </LinearRing>
      </outerBoundaryIs>
      <innerBoundaryIs>
        <LinearRing>
          <coordinates>
            -77.05668055019126,38.87154239798456,100 
            -77.05542625960818,38.87167890344077,100 
            -77.05485125901024,38.87076535397792,100 
            -77.05577677433152,38.87008686581446,100 
            -77.05691162017543,38.87054446963351,100 
            -77.05668055019126,38.87154239798456,100
          </coordinates>
        </LinearRing>
      </innerBoundaryIs>
    </Polygon>
  </Placemark>
</kml>

As in any XML document, 'CDATA' can be used to start and end a section that has textual content that can be anything you want, not necessarily valid XML. Often we use it to put in HTML, the web markup language, so we can, for example, display paragraphs and headings in a pop up.

<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Placemark>
      <name>CDATA example</name>
      <description>
        <![CDATA[
          <h1>CDATA Tags are useful!</h1>
          <p><font color="red">Text is <i>more readable</i> and 
          <b>easier to write</b> when you can avoid using entity 
          references.</font></p>
        ]]>
      </description>
      <Point>
        <coordinates>102.595626,14.996729</coordinates>
      </Point>
    </Placemark>
  </Document>
</kml>
</kml>

You might want the markers you draw on the map to look a certain way, either to make sure your map looks cool, or to convey information, such as different categories. You can do this first by defining a style, then by applying that style to the Placemark. Note that the Style element has an id. To apply this style to a placemark, you set the Placemark's styleUrl to be the same as the Style's id (preceded by a hash sign). In this case the id is transBluePoly, so under Placemark we set styleUrl to be #transBluePoly.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Style id="transBluePoly">
      <LineStyle>
        <width>1.5</width>
      </LineStyle>
      <PolyStyle>
        <color>7dff0000</color>
      </PolyStyle>
    </Style>
    <Placemark>
      <name>Building 41</name>
      <styleUrl>#transBluePoly</styleUrl>
      <Polygon>
        <extrude>1</extrude>
        <altitudeMode>relativeToGround</altitudeMode>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates> -122.0857412771483,37.42227033155257,17
              -122.0858169768481,37.42231408832346,17
              -122.085852582875,37.42230337469744,17
              -122.0858799945639,37.42225686138789,17
              -122.0858860101409,37.4222311076138,17
              -122.0858069157288,37.42220250173855,17
              -122.0858379542653,37.42214027058678,17
              -122.0856732640519,37.42208690214408,17
              -122.0856022926407,37.42214885429042,17
              -122.0855902778436,37.422128290487,17
              -122.0855841672237,37.42208171967246,17
              -122.0854852065741,37.42210455874995,17
              -122.0855067264352,37.42214267949824,17
              -122.0854430712915,37.42212783846172,17
              -122.0850990714904,37.42251282407603,17
              -122.0856769818632,37.42281815323651,17
              -122.0860162273783,37.42244918858722,17
              -122.0857260327004,37.42229239604253,17
              -122.0857412771483,37.42227033155257,17 
            </coordinates>
          </LinearRing>
        </outerBoundaryIs>
      </Polygon>
    </Placemark>
  </Document>
</kml>

Bibliography

Find some useful resources in our select bibliography for Digital Mapping in Humanities