C21CH

Speculative Web Space

 

DH Map Course

What is a map?

Map of Kalingrad, showing current bridges and marking where the old one's were.

Here's my own work in progress that combines all these concepts, one way or another (built on the subject-predicate-object architecture of linked data, applies map zooming technology to images, uses pictorial non GIS map images, enables linking from many points within and across nodes in multimedia, to build meaning by layering of association etc): Tree Glyph

Mapping Software

Mapping software is in flux. Any time you wish to commence a mapping project it's worth checking what the state of play is. Look for something that:

Different map tech for different needs

Here are some examples but there are many tools and technology changes quickly, so it's worth Googling around.

TaskTool
Quickly and easily create a map with points and pop-ups.Google MyMaps
Desktop GIS for researchQGIS
Create map data and browse the world, import/export KML files.Google Earth
Advanced and varied mapping features.ArcGIS
National digital map research infrastructure, mapping toolbox, urban focusAURIN
Deposit research geo data in a national repository.National Map (Australian research data repository)
Relate maps to and visualise statistical information.Maps and stats: R and D3
Build websites integrated maps with multimedia, database, text, community, etc.Web Archive/Publishing systems with WebMap software Eg: Recollect, HistoryPin, Heurist.
Get more control to customise and add features to web maps to develop applications.Javascript APIs: Google ArcGIS This gives developers 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.
Image overlay 3D on your desktop, or take a screenshot to get a re-usable picture.Google Earth, see tute
Easy image overlay to embed in websiteKnight Labs Juxtapose
Build network visualisationsGephi
Build network visualisations on the webD3
Animating maps. This is not easy and requires a fair bit of work and expertise.D3 on the web, and possibly QGIS on the desktop, but depends on needs.

Many more... Tutorials

PRAC: Google MyMaps

PhilosopherPlaces.csv

PhilosopherIndividuals.csv

  1. Go to Google MyMaps
  2. If you don't have a Google account and don't want one, follow somebody else in this class.
  3. Add, edit, delete a marker.
  4. Open Data Table
  5. Import a CSV file.
  6. Share.
  7. Embed in a webpage.
  8. Export as KML.
  9. Open the KML in Google Earth if you have it installed.
  10. Time sensitive columns.

Some lessons from this about digital mapping:

That's a pretty map, so what?

Also:

Common glitches include error messages, points not showing up on the map at all, or appearing off the West Coast of Africa in the Atlantic Ocean (ie: lat, long has defaulted to 0,0 in the event of a problem)

Some common causes of glitches:

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.

PRAC: Recogito

This overlaps with our C21CH activity TextMapText so we aim to collaborate in development.

"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? Even a blank page means different things to different people.

Some Interesting Maps

Pace of Change

Mapping shipping in 2012 and 2016... and now it's almost 2019... like most things on the internet there is now too much activity to have a complete view of what everyone is doing. Nobody knows what the state of the art is anymore. Focus on the research question and what is needed for it, rather than finding a use for whatever is bleeding edge - we're doing humanities. Then we see if there is something that does that, and if not, hack, adapt, combine, customise, build it ourselves, bricolage.

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 friendly, 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.

KnightLab Story Maps provide an easy to use free interface for creating story maps, but there is no 'export' function for your work, so it's great to produce something quickly but would be unwise to invest a lot of work in it.

C21CH Maps

Humanities Map Examples

Making Digital Maps

Getting Coordinates

To simply find the coordinates of a point, the quickest way we have found is to go to Google Maps, right click a point and select 'What's Here?' If you are working within a system it probably has it's own user interface for placing markers, etc. There are also APIs to retrieve coordinates given addresses and so on, if you are a developer building software.

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 intricacies of their differences are usually not as important as the ability to use them to produce a map, often where high accuracy is not required, simply to indicate a town or region for example. You should know which coordinate system you are using though in case anyone wants to compare their map or data with yours. Which coordinate system you are using will be important if you do require a high degree of accuracy and precision - archaeologists may need to pin point digs, and good accuracy is needed for road navigation, for example. 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.

Standard Data Format There are standard data formats for storing and/or communicating GIS data. Some common ones are KML (KMZ) and GeoJSON. Data might often also be stored in CSV files or relational databases. It's important that data can be removed from, or made available in a standard format, to ensure it's re-usable (even if it is only for yourself or to make a backup). A KML file is a kind of XML file. A KMZ file is a KML file that has been compressed. GeoJSON is a specific kind of JSON file.

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 currents, 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.

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 separately, 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. Infrastructure such as National Map is designed to address this problem. Lets just use the URL of our own KML file: http://hri.newcastle.edu.au/courses/mapcourse/EarlyEurasianPhilosophers.kml

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://hri.newcastle.edu.au/courses/mapcourse/EarlyEurasianPhilosophers.kml
  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