Azavea Atlas!

Maps, geography and the web

Apply to be a 2015 Summer of Maps Fellow!

Applications are now open for students for 2015 Azavea Summer of Maps. Summer of Maps offers fellowships to student spatial analysts to perform geographic data analysis for non-profit organizations. We are looking for enthusiastic students with GIS analysis experience to apply. We also invite you to learn about what our Summer of Maps alums have gone on to accomplish.

The schedule for the selection process is below:

  • Feb 27 – Sun, Mar 15, 11pm – Students submit proposals and applications
  • Late-March – Early April – Top candidates are evaluated through interviews and analysis tasks
  • Mon, Apr 13 – Successful Summer of Maps fellows will be announced
  • Mon, June 1 – Fri, Aug 21 – Summer of Maps fellows work on spatial analysis projects

What will non-profit organizations receive?

  • Pro bono services from a talented student spatial analyst to geographically analyze data
  • Visualizations of data in new and innovative ways
  • Synthesis of other demographic and geographic data to draw new observations
  • High quality maps that can be used to make a case to funders or support new initiatives

What will students learn?

  • How to design and manage a spatial analysis project that supports the social mission of non-profit organizations
  • New and innovative skills from Azavea mentors
  • Professional work experience implementing a real-world GIS project

Eligibility

This is a paid fellowship program opened to full-time or part-time students. Azavea defines a student as an individual accepted into or enrolled in an accredited post-secondary institution located in the United States, including community colleges, universities, masters, PhD and undergraduate programs. Alternatively, you may be enrolled in an accredited non-U.S. university, but you must have a valid work visa that enables you to work in the United States (we are not able to sponsor you for a visa or provide travel expenses for travel to the U.S.).  If you are accepted into or enrolled in a college or university program as of April 2015, you are eligible to participate in the program, even if you will graduate during the program. You must be available to work at the Azavea office in Philadelphia starting on June 1, 2015.

Azavea may ask you to provide transcripts or other documentation from your accredited institution as proof of enrollment or admission status. You do not need to be in a Geography or GIS program in order to apply, but you should have experience performing analysis using ArcGIS for Desktop.

Submit your  application now through Sunday, March 15, 11pm ET.

Making Easy Story Maps Using the Odyssey.js Sandbox

Storytelling with Odyssey.js

There were a lot of geospatial developments in 2014 (read about some of them right here). One of the more interesting additions to the web mapping scene was Odyssey.js, an open-source library created by CartoDB to enhance storytelling with maps.

I wanted to tell a short story about what our Summer of Maps fellows have been up to since they completed the program, as well as show where they made an impact by mapping the organizations they performed pro-bono work for during their tenure. The open-source Odyssey.js library and its super-simple Sandbox Editor made the work a snap. Let’s see how to make a simple but functional story map in Odyssey in just a few steps.

Choosing a Sandbox Template

There are three Odyssey.js templates available.

There are three Odyssey.js templates available.

First, head to http://cartodb.github.io/odyssey.js/ and choose the “Create Story” button, which will take you to the Sandbox Editor. Once in the Sandbox select one of three templates. “Slides” (left in the image above) provides a very large map window with a small box to put small amounts of descriptive text. This template is appropriate for stories where sequential events aren’t very important. “Scroll” seems best suited to more in-depth stories, like full blogs or articles where the text at least as important as the map. Finally, the “Torque” template is similar to “Slides”, but includes CartoDB’s very cool Torque capability to visualize changes over time in point-based data.

Adding New Slides With Markdown

Once you’ve chosen a template, the Sandbox Editor comes pre-filled with boilerplate text and directions on how to format everything correctly. The editor itself uses Markdown formatting, and each new “slide” can be created with a simple “#” which is the highest heading level. New slides denoted by a “#” will have a small “add” icon that appears to the left of the text. Clicking will display options to drop a marker, tell the map to pan and zoom to a certain location, or “sleep”, which is used for Torque visualizations.

 

The very handy Odyssey.js editor.

The very handy Odyssey.js editor.

 

The Sandbox allows you to see how the changes you make affect the final product in real-time, so now is the time to add new slides, markers, and pans and zooms. It’s also entirely possible to save your progress in the editor by copying and pasting the Markdown text from the Sandbox into a text editor, saving it, and then pasting it in later over the boilerplate text when you’re ready to start up again (in fact, I would highly recommend doing this so you don’t lose progress). The rest of the important Sandbox functions are located on the bottom of the box. From left to right the buttons allow you to change the basemap, collapse the editor, download an HTML file, and share the results.

For our Summer of Maps Alumni story map, I added all the slides, markers, and movement through the Sandbox Editor. After creating the boilerplate storymap, I used the “Download Story” button to get the pre-filled HTML file. Downloading the HTML file allowed me to dig in and begin to customize beyond what the editor allows.

Out of the Box Customizations

One of the first things I did was to change the basemap from the choices available in the Sandbox to the beautiful Stamen Toner Lite basemap. Next, I set about adding custom colors and icons to the markers using the Leaflet.Awesome-Markers plugin, which allows you to add custom vector icons from the free and beautiful FontAwesome and IonIcon libraries. For a more detailed tutorial on how to get custom Leaflet marker icons working check out ZevRoss.com’s excellent tutorial. Check out the custom markers in the screenshot below:

Finished Odyssey.js map

Finished Odyssey.js map

 

After customizing the markers, I wanted to tweak the text container a bit and the size of the photos. To do that I needed to change the CSS styling code. There are a few ways to go about this. One way is to clone the whole Odyssey.js repository to your computer using GitHub. I went another route and just downloaded Odyssey’s CSS file from the link that was referenced by the pre-made Sandbox Editor HTML file and copied the sections I wanted to change and pasted it into my code (forgive my sloppiness, I’m not a web developer). By tweaking the #slides_container CSS section I was able to adjust the opacity, width, and color of the slide text box, and by toying around with #slides_container.slide.scrolled img I was able to resize the headshots of the alumni.

 

Odyssey.js with Markdown content inserted.

Odyssey.js with Markdown content inserted.

 

Now that I’d gotten into the guts of the file and had taken it out of the Sandbox Editor, I could no longer use the built-in Odyssey.js Sandbox share function. Instead, I decided to use GitHub pages to host the file. Creating a free, dedicated website for websites on GitHub is dead simple, and they have an excellent starter page for setting up personal pages or pages to host projects (I made a project page). To check out the Summer of Maps Alumni story map using Odyssey.js, head to http://tdahlberg.github.io/summerofmaps or scroll down.

 


Configuring Your Timestamp Field for CartoDB’s Torque Heatmaps

Earlier this month, our friends at CartoDB announced that heatmaps are now available as a visualization option in the Editor and as part of the Torque library. By heatmap, I mean the traditional GIS definition of a heatmap as representation of the density of point locations.

Since CartoDB’s heatmaps can leverage the time-series mapping capabilities of the Torque visualization library, I thought I’d take a dataset the Data Analytics team has been working with recently and provide an example of how heatmaps work with a tip about formatting your timestamp field to work with Torque.

Following up on the work I did last year, I’m helping to analyze pedestrian crash data in Philadelphia from 2008-2013 for PlanPhilly. These are only the crashes reported to PennDOT by the Philadelphia Police or Pennsylvania State Police, so the vast majority of these involve cars hitting pedestrians. Here’s what Philadelphia’s pedestrian crashes look like over time using CartoDB’s Torque heatmap:

Configuring The Timestamp Field

It’s important to have a dataset that has a compatible timestamp field to work with CartoDB’s Torque. This can be challenging when you’re working with datasets coming from a multitude of database sources that all store dates in a different format. However, converting a date or time field in your dataset to make it work with Torque is quite simple using the to_timestamp formatting function in PostgreSQL.

In the case of the crash data from PennDOT, they provide an integer field with year, month and day of the crash. I concatenated this into one field, which created a rather ugly date YYYYMMDD.cartodb_change_data_type

To convert to a date field in CartoDB, your data must first be of type String, which is easy enough to change using the Change data type… option in the dropdown accessible next to the field name in the Data view. Next, create a new field with the Date type using the add column button or SQL. I created a new column called “crashdate”.

Finally, in CartoDB’s SQL editor, a date with this format (YYYYMMDD) can be converted into a timestamp field with the following SQL:

UPDATE tablename SET newdatefield = to_timestamp(olddatefield, ‘YYYYMMDD’)

finished_crashdate

The first argument in the to_timestamp function is the date field you want to convert and the second argument is the format that defines the input. So if your date field is in a different format, simply enter it into the function. With the new date field in your dataset, you’re ready to start a time-series visualization using Torque! If you’re interested in doing your own analysis with this data, head over to the new OpenDataPhilly and pick up the crash data.

 

“The beverages flowed as smoothly as the code”: A Productive 2015 OSGeo Philly Code Sprint

OSGeo Code Sprinters pose in front of the Philadelphia Art Museum's "Rocky Balboa" statue. Three cheers for open source!

OSGeo Code Sprinters pose in front of the Philadelphia Art Museum’s “Rocky Balboa” statue. Three cheers for open source! Photo credit Jody Garnett.

Last week, Philadelphia, Azavea, and our venue Friends Center hosted a code sprint where over 30 enthusiastic and creative “sprinters” met to collaborate on open source geospatial software projects. The OSGeo Code Sprint has been held annually for a while now, but this year’s event was bigger and better in ways that reflect the growth and increasing prominence of the open source geospatial community.

Code Sprinters enjoying the Philly-German bierhall  Brauhaus Schmitz

Code Sprinters enjoying the Philly-German bierhall Brauhaus Schmitz Photo credit Jody Garnett.

Over the last couple years, the LocationTech working group of the Eclipse Foundation has been emerging as a hub for high-performance geoprocessing and other location-aware technologies, such as Azavea’s GeoTrellis project. The new projects being incubated by LocationTech have been growing alongside continued participation in OSGeo and projects hosted there. Azavea is a huge supporter of both communities, as a member of LocationTech and a heavy user and contributor to many OSGeo projects. So, in hosting the 2015 OSGeo Code Sprint in Philadelphia, we wanted to be inclusive and specifically invite LocationTech projects to come participate in addition to OSGeo projects. We consider this coming together a success. LocationTech sponsored the event at the $2,500 Gold level. LocationTech projects like GeoTrellis, GeoMesa, and uDig were worked on alongside OSGeo projects like PostGIS, PDAL, and MapServer. At the end of the day, whichever software “foundation” a project is under, we’re all tackling the same problems and questions in GIS and can benefit from being at the same table in-person at a code sprint. Judging by initial responses on the OSGeo TOSprint mailing list, many others appreciated the additional camraderie as well.

AGI's Patrick Cozzi gives a  demo of Cesium.js, AGI's 3D globe library. AGI was a first-time Code Sprint sponsor this year. Photo credit Jody Garnett.

AGI’s Patrick Cozzi gives a demo of Cesium.js, AGI’s 3D globe library. AGI was a first-time Code Sprint sponsor this year. Photo credit Jody Garnett.

In addition to LocationTech, we had a tremendous array of support from sponsors at the code sprint. In fact, with 14 sponsors in all, we believe the 2015 Philly sprint to be the most-sponsored in OSGeo code sprint history. Many organizations had never sponsored a code sprint before, including LocationTech, Boundless, AGI, CartoDB, Mapzen, OpenSCG, and Typesafe. Other sponsors like Airborne Interactive, FOSSGIS eV, Coordinate Solutions, Farallon Geographics, Hobu, and Mobile Geographics are veteran code sprint sponsors and we were very glad to have their continued support for another sprint. Of note, OpenSCG and Typesafe are not necessarily geospatial-focused companies, but operate around related technologies of PostgreSQL and Scala which several open source geospatial projects are also based on. Their interest and generosity in supporting the sprint, we think, demonstrates how the importance of geospatial technologies – and open source geo, in particular – is increasing.

Sprinters getting into the swing of bowling at North Bowl. Photo credit Jody Garnett.

Sprinters getting into the swing of bowling at North Bowl. Photo credit Jody Garnett.

The generosity of our sponsors, and the OSGeo Board, allowed us to schedule an array of exciting evening activities to continue building community at night after coding in the day. On Tuesday, we took our sprinters on an exciting historic tour bus ride of Center City Philadelphia, so they could get a sense of our city of “Firsts”. Wednesday night’s affair was bowling and tater tots at acclaimed Philly hangout North Bowl – we’ve already heard several comments that bowling was a big hit with the sprinters! “I had a wonderful time, the venue was fantastic, the internet was plentiful, and the beverages flowed as smoothly as the code,” offered one sprinter.

Azavea's Kathryn Killebrew speaking about Torque animated maps from PostGIS. Photo credit Jody Garnett.

Azavea’s Kathryn Killebrew speaking about Torque animated maps from PostGIS. Photo credit Jody Garnett.

There was also plenty of learning and knowledge sharing with presentations throughout the week. AGI’s Patrick Cozzi showed us a few demos of the Cesium 3D globe library. CartoDB’s Andy Eschbacher gave a deep dive into CartoDB’s PostGIS-enabled wizardry including Torque animated maps. And Azavea’s own Kathryn Killebrew gave a preview of her presentation she will give this year at FOSS4G-NA, on how to use CartoDB’s Torque library outside of CartoDB to make spatio-temporally animated maps out of any PostGIS database.

A good sprint was had by all, and we are excited for the growth of the event and what it means for the open source geo community as a whole! If you’re interested or happen to be a code sprint organizer yourself, we also posted a detailed list of “lessons learned” on the OSGeo wiki.

Sprinting to Philadelphia: Azavea Hosting the 2015 OSGeo Code Sprint!

Open Source development is based on collaboration and communication, and yet a software project may have contributors strewn across the world in different time zones and even used to speaking different languages. The reality of collaborating via the Internet – asynchronous, textual – means it can be harder for new contributors to get up to speed, harder for experienced developers to help each other, and harder to develop features together. Being physically separated from your collaborators also inhibits growth of community and friendships.

2014 Vienna Code Sprint

A shot of the 2014 OSGeo Code Sprint. Come have fun with all these focused developers!

For a few years now, the OSGeo Foundation has alleviated these challenges and strengthened the global community of open source geospatial developers by supporting a “code sprint” in a different city each year. After the 2014 event was held in Vienna, it’s coming back across the pond.  This February 9th through 13th, Azavea will be pleased to host developers from around the world as they descend on Philadelphia for the 2015 OSGeo Code Sprint. This is the first time the Sprint has been held in Philly and we’re all excited to welcome everyone to our home – a real hotbed of civic hacking, open data, and geo nerd communities that often rely on these geospatial projects. We’re also planning a few fun evening activities in different parts of the city to give participants plenty of chances to catch up with old friends, make new ones, and experience Philly.

The Code Sprint is not like the “civic hackathons” and other events Azavea has organized in the past. Paul Ramsey, one of the core contributors to the PostGIS  project, wrote a bit about what the 2013 Boston Code Sprint was like and why you might want to attend. There won’t be competitive teams, prizes or judges like a hackathon. Instead of a short weekend, we will be sprinting together for most of a week. We’ll be improving and adding new features to the foundational geospatial tools common to pretty much any app with maps or geodata like PostGIS, Cesium, uDig, QGIS, GDAL, PDAL, and GeoTrellis. We’ll endeavor to achieve the same welcoming and friendly atmosphere we have at all our events, but if you’re interested in attending, this is definitely an event where preparation pays off. You can just show up and make a contribution, but if you’re not already contributing to a project, it will be more productive if you’ve learned a bit about the project, have a good handle on the languages in use, taken a look at the issue backlog, and have given some consideration to what contribution you’d like to make to it during the week. We’d also encourage you to have checked out the latest development branch and set up a development environment on your laptop in advance.

OSGeo Sprints in past years have been focused on projects specifically stewarded by the OSGeo Foundation and the event began as a gathering of the “C Tribe”, the software applications that use C as their primary language. However, this year we wanted to make the tent of open source geospatial a little bigger and encourage participants to work on all kinds of projects, including projects housed within LocationTech, OSGeo, or even independent projects like Leaflet or CartoDB.

So come join us in Philadelphia next month! Simply put your name on the list on the wiki page  so we can plan for you to be here, and book your travel – including a room at the Loew’s Philadelphia at our discounted rate. Open Source is usually a marathon, but let’s sprint while we can!