All posts by Jonah Adkins

Maps and Mappers of the 2017 GeoHipster Calendar: Nathaniel Jeffrey

Nathaniel Jeffrey – August

Q: Tell us about yourself.

Before I fell into GIS, my studies in Environmental Science led me to a freshwater conservation project in Kenya, and down sewer pipes in my home city of Melbourne. Honestly, sewers are kind of fascinating if you have a background in biology.  You think tapeworms can only survive in a digestive tract?  Think again!

Professionally, for the last 10 years I’ve worked as a GIS analyst for Urbis, which is an international urban planning consultancy.  It’s an ever-changing, data-driven job, which makes it a fun geo playground.

Apart from that: I cook, I eat, I game, I poke Raspberry Pis while frowning, and I travel (mostly to Japan, it seems).

Q: Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

I’ve lived in Melbourne for 25 years after coming over from the USA with my parents as a kid.  And as any Melburnian will tell you if you give them half a chance, it’s the World’s Most Liveable City.

So one of the big factors influencing “liveability” is the ability of a city’s infrastructure to adequately service its growing population. Melbourne has been growing at a rate over 2% per year for more than a decade, adding 80,000+ new people every year. Melbourne’s population has grown from just over 3 million in 1991 to 4.5 million today, and is projected to hit 6 million by 2031.  I can’t do much to solve the many political headaches that spring up due to such rapid growth, but I sure can make a map.

Q: Tell us about the tools, data, etc., you used to make the map.

The population data I used is a mix of counts from past censuses (1991 to 2011), and future projections (2016 to 2036).  I would have loved to go further back in time, but the small-area population data isn’t easy to come by.

I converted the population counts for each year into a raster surface representing population density, and then smoothed the heck out each one.  This was a bit tricky, because I wanted to generalise the data enough to create an easily-readable map, but I didn’t want to misrepresent the truth in the underlying data.

Through trial and error, I then found a density value that more or less matched up with the edge of the suburban fringe for each year, based on aerial and planning maps. Applying that density cutoff to each year gave me the isopleths you can see on the map — lines of constant density.

Obviously this approach makes the assumption that the chosen density threshold has accurately represented to suburban boundary in the past, and will continue to do so in the future.  This might not be the case, with a shift towards higher density developments at the urban fringe.  But I think the approach is fine for a map that’s just trying to give a high-level view of the amoeba-like spread of Melbourne’s population.  I would hope that no one tries to make any policy decisions based on this map!

Cartographically I went with a dead simple basemap — just roads and locality names for context.  I made a deliberate effort to label locations where interesting things were happening in the data — lots of growth in a given year, for example.  The colour scheme I chose for the isopleths is…striking.  What can I say; it’s tricky to find ten colours that are distinct enough when placed next to one another, but still look reasonably harmonious as a whole.  I had a bit of fun with the look of the title and legend — I’m no graphic designer, but I like to dabble in design, and steal things that look cool.

GeoHipster Mixtape Volume 2

GeoHipster Mixtape Volume 2

Last April we published the first GeoHipster Mixtape,  a look into the tunes we chill to, scream to, and grind to during the work day. This is Volume 2.

On most days we listen to the soundtrack of work:  phones, email notifications, office chatter, or the sound of the city. For some of us our daily soundtrack is a carefully curated playlist of our favorite tunes. Being in the latter group, music can provide the white noise needed to push through an hour of getting the labels “just right”, or the inspiration that sparks the fix for that problem with your code.

I was curious about what others are listening to during the day — what does a geohipster listen to?

As you might expect, asking anyone who likes music to pick a few songs can be a near-futile task. A desert island playlist would be drastically different from a top side one, track ones playlist. Making a mixtape is subtle art, there are many rules — like making a map. I recently talked to several of our interesting colleagues in geo to see what tunes get them through the day. I asked the impossible: pick  3 tracks they love to share for a mixtape.

For your listening and reading pleasure we have hand-crafted a carefully-curated playlist from the geohipsters below, complete with liner notes of the cool work they do while listening to the tracks they picked.

Ps. i couldn’t help but add a few selections of my own.
Sorry/Not Sorry
jonah

For your enjoyment, a YouTube playlist — the GeoHipster Mixtape Volume 2


 Brooke Harding @BrookEHarding  || GIS Specialist at USAID-Macfadden

Brooke is a Cartographer and Data Analyst specializing in Europe & Asia and government acronyms. Outside of the office she’s all about supporting her fellow #geopeeps through organizations like the NACIS (Check out their October 2017 conference in Montreal, eh?) and eating her way through #geobreakfastdc one waffle at a time.

  • Paul Simon feat. Chevy Chase – Call Me Al
  • T-Pain – NPR Tiny Desk Concert
  • Nahko and Medicine for the People – Black as Night

John Nelson  || Cartographer at Esri

John works in a small wooden shed in his back yard. He does everything from making points on a map glow like fireflies to hacking up cartographic techniques to use on your next map.

 

  • Seu Jorge – Changes (from The Life Aquatic with Steve Zissou)
  • Sigur Rós – Hoppípolla
  • Flatt & Scruggs – Doin’ My Time (from 16 Original Bluegrass Hits)

Cristen Jones // UI designer

Cristen’s an urban planner by training and used to be one of those civic hackers found at Boston-area hackathons and meetups. She’s worked with Code for Boston on and , but more recently    joined Maptime Boston as a co-organizer.

  • Childish Gambino – Break
  • Madeon – Pop culture
  • Daddy Yankee – Shaky Shaky

Dylan Moriarty // Illustrator & Cartographer

Dylan is bad at writing bios, but he has a swell website — believes in open source — loves hand-made maps & hand-drawn elements — helps run GeobreakfastDC & MaptimeDC () — works with the Humanitarian OpenStreetMap Team & designed Missing Maps — spends most waking hours listening to tunes

  • Buddy Rich – Norwegian Wood
  • tUnE-yArDs – My Country
  • Medeski, Martin & Wood – Let’s Go Everywhere

Amy Smith  @wolfmapper // Uber
Policy research, data science & mapping at Uber. Thinks a lot about cities, maps, and transportation. Sometimes writes about them too. Proud GeoHipster interviewer and board member.

 

  • Todd Rundgren – Hello Its Me
  • YMCK – Magical 8Bit Tour
  • Gillian Welch – Hard Times

Hannes  // HafenCity Universität Hamburg

Hannes breaks GDAL doing crazy things, procrastinates with Shapely doing silly things, and enjoys QGIS doing useful things.

 

  • L.S.G. Transmutation (reworked)
  • Bohren & Der Club of Gore – On Demon Wings
  • Wolfgang Hartmayer – Every Day

Juliet Eldred   // Student at the University of Chicago

Juliet is a Geography/Visual Arts double-major, which means she spends a lot of time making and looking at maps. When she’s not sleeping, biking, or yelling at QGIS, she runs the geospatial meme Facebook group “I feel personally attacked by this relatable map” and works as a DJ at WHPK, her school’s radio station.

  • Built to Spill – Car
  • Sleater-Kinney – Light Rail Coyote
  • Emperor X – Wasted on the Senate Floor

Maps and Mappers of the 2017 GeoHipster Calendar: Mark Brown

Mark Brown MSc – February

Tell us about yourself.

I am an ecologist and conservationist with strong technical skills in GIS & Remote Sensing. My interests lie in the application of geospatial technologies to help solve ecological and environmental problems. I love developing novel techniques in areas where these technologies might not have been previously used.

For the past several years I have been working on landscape scale habitat restoration schemes such as the Yorkshire Peat Partnership in the uplands of northern England. There is a very special type of habitat found here known as a blanket bog. Referred to as the ‘rainforests’ of the UK, they are home to many unique plants and animals. These areas of land are not covered by trees however, but a ‘blanket’ of peat material that has formed over thousands of years through the accumulation of dead plant material such as Sphagnum Mosses. Due to this they act as a massive carbon sink. They are also a very important source for much of our drinking water and help to regulate runoff and therefore flooding. They are also an important site for leisure and recreation.

Despite this, most of these habitats are in a heavily degraded state. Mismanagement of this land through burning and overgrazing, as well as natural causes such as wildfires, is causing much of it to erode away. Once peat is exposed to the elements, it rapidly wears away releasing carbon and entering waterways, where it turns the water a brown colour similar to English Breakfast tea. Peat that is dissolved in waterways is causing a problem for water companies, as they have to spend millions of pounds each year to remove the peat through chemical treatments.

The project I work on aims to reverse degradation of the blanket bog by providing the stable conditions necessary for its recovery

In order to do this we need to identify those areas currently undergoing or most at risk of erosion and this is where I come in.

As well as being qualified with an MSc in Geographical Information Systems, I am also a certified Unmanned Aerial Vehicle (UAV) pilot. I use a fixed-wing drone known as a senseFly eBee to capture aerial imagery and to generate digital surface models (DSMs) of the habitats that we work on. This data is of a very high resolution (up to 1.5cm!). This gives me the capability to examine and analyse the blanket bogs in an unprecedented level of detail.

I use this data within GIS and remote sensing software to carry out a whole range of analyses. This includes but is not limited to topographic modelling, hydrological analysis, feature extraction, Object-Based Image Analysis (OBIA) to detect different types of vegetation communities and exposed peat, 3D visualisation, and the creation of cross-sectional profiles to determine the dimensions of eroding gullies.

If you’re sat there reading this and wondering what on earth is a blanket bog?! I’d suggest having a look at the Yorkshire Peat Partnership Facebook page. There are lots of interesting photographs of the landscapes as well as our restoration works and imagery of the UAV in action. See link below:

https://www.facebook.com/YorkshirePeatPartnership/

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

I’m sorry to admit it but blanket bogs just aren’t sexy! With no charismatic fauna, cold, wind and rain, to the untrained eye there’s not really much there. They are often seen as barren wastelands. However if you delve down among the undergrowth, there are many interesting species of lichens, mosses, and England’s only carnivorous plants!

This map was part of a series of images that I created in an effort to make blanket bogs more interesting to the public eye. It has been used in Yorkshire Peat Partnership reports as well as at international conferences.

I was interested in creating a series of photorealistic terrain models of blanket bogs. I visualised the terrain in open-source 3D modelling software with a light source over a white background. This creates the interesting shadow effect so the terrain looks like it is floating over a white surface.

This was a departure from my usual workflow as I normally work exclusively with GIS software such as QGIS. However I found that this was providing too many limitations for graphical visualisations and it was interesting to learn an entirely new piece of software from scratch.

Actually I was quite surprised to be selected for the calendar. I think if I was to enter the image again I would put more information on the image regarding what the image actually is and how it was generated. Hindsight however is a wonderful thing!

I was super pleased to be selected and hopefully this will introduce a very novel application of GIS and remote sensing to a wider audience!

Tell us about the tools, data, etc., you used to make the map

The UAV I used to survey the site was a senseFly eBee. (https://www.sensefly.com/drones/ebee.html). This is a small fixed-wing drone that is proving to be one of the most popular commercially-available drones for surveying and mapping purposes. The UAV is fully automated and flies along pre-defined transects,taking photographs along the way.

The imagery that was captured was then processed within photogrammetry software known as Pix4D Mapper (https://pix4d.com/). This software is used to generate point clouds, digital surface and terrain models, orthomosaics, and textured models.

The resulting orthophotograph and digital surface model was then imported into Blender (https://www.blender.org/) where the image was rendered. Blender is an open source 3D modelling software package. It is more commonly used for 3D art, animation, and the creation of computer games.

Maps and Mappers of the 2017 GeoHipster Calendar: Ralph Straumann

Ralph Straumann – June

Tell us about yourself.

I’m a consultant, data analyst, and researcher with EBP in Switzerland and the Oxford Internet Institute in the UK. My background is in geography, with a PhD in geoinformation science from the University of Zurich. Besides GIS I studied remote sensing, cartography, and political science. In my work for EBP I assist clients with data analysis tasks, do strategy and organizational consulting, and build tools, geodata infrastructures, and workflows. In my free time I occasionally blog about GIS, data, and visualization.

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

A few years ago, Stephan Heuel and I developed a raster-based walking time analysis tool. This product has since matured into Walkalytics. Based on OpenStreetMap and/or cadastral surveying data, we can infer the time it takes somebody to walk to or from a place, construct pedestrian isochrones, and compute quality of service metrics, e.g. for public transit. We can carry out these types of analyses world-wide, at high resolution, very fast, and taking into account the topography. The map serves as an illustration of the capabilities and versatility of Walkalytics.

Tell us about the tools, data, etc., you used to make the map.

I used our Python Walkalytics client and a test subscription to the Walkalytics API to derive the data for the map. Besides, I used data from the (in my opinion, fantastic) Natural Earth. I then designed the map entirely in ArcMap. I tried to move away from the ArcGIS defaults. I’m simplifying, but I think a map tends to be good when you cannot tell straight-away which software has been used to make it. For the interested: Below you can see a GIF of some of the revisions of my map for the GeoHipster calendar:

Maps and Mappers of the 2017 GeoHipster Calendar: Jan-Willem van Aalst

J.W. van Aalst, Ph.D. – November

Tell us about yourself.

I’m a cartographic designer and data analyst. I live and work in The Netherlands. My background is in computer science; I did my Ph.D. on knowledge management at Delft University. These days I mostly advise the Dutch Emergency services on (geo) information management.

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

The map is part of my Dutch OpenTopo series, which I designed to supply the Dutch emergency responders with the most up-to-date topographic maps possible. I’ve always experimented with combining the best ingredients of various map sources, including the geospatial base registries published by the Dutch government as Open data. The result is now available at www.opentopo.nl.

Tell us about the tools, data, etc., you used to make the map.

The map was made using QGIS. Some post-processing of the raster output of QGIS is done using GDAL. The map data is stored in a PostgreSQL/PostGIS database. The data itself is made “PostGIS-ready” using the Dutch NLExtract tools developed by some geo-wizards also associated to the Dutch branch of OsGeo.org. The map features data from several Dutch Base Registries (BRT, BAG, BGT, BRK) and also contains various elements extracted from OpenStreetMap.

Maps and Mappers of the 2017 GeoHipster Calendar – Johann Dugge and Juernjakob Dugge

Johann Dugge and Juernjakob Dugge – May

Johann Dugge and Juernjakob Dugge
www.papercraftmountains.com

Tell us about yourself.

Johann: I model packing processes of consumer products like laundry detergent to optimise the package design and manufacturing lines at Procter & Gamble in their Brussels office. 

Juernjakob: I work on software for optimising water and wastewater treatment processes. So our day jobs have only little to do with mapping. However, we’ve been exposed to cartography and particularly terrain models from a young age: Our father is a geomatics engineer, and our parents have been collecting raised relief maps for as long as we can remember.

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

Juernjakob: I was following Daniel Huffman’s tutorial on generating shaded reliefs using 3D rendering software, and slightly adapted the approach by first converting the DEMs to triangulated irregular networks before rendering them. The faceted appearance reminded me of the low-poly papercraft models that have been in vogue for a while, and I thought it might be fun to build a terrain model out of paper.

Johann: In June 2015 as we were cycling over the hills of Belgium we discussed what the qualities of such a model would have to be to be considered “optimal”. When we returned home to Brussels and Stuttgart we both started to adapt existing triangulation algorithms for this specific problem. In the end I came up with a solution that strikes a good balance between terrain fidelity and having a small number of triangles, avoiding difficult-to-assemble thin and tiny triangles as much as possible. My background in numerical optimisation certainly came in handy for this.

We presented the first results at the ICA Mountain Cartography Workshop in April 2016 and received a lot of very encouraging feedback. Since then we have been working on new models – the Matterhorn is already available through our site www.papercraftmountains.com. Also keep an eye out for Mount Fuji which will be released shortly!

Tell us about the tools, data, etc., you used to make the map.

We developed the triangulation algorithm in MATLAB. The elevation data comes from the USGS National Elevation Dataset, the orthophoto from the US National Agriculture Imagery Program. The quality of publicly available data in the United States is amazing, the rest of the world still has a lot of catching up to do in this regard.

Blender is used to add the stiffening structure to the 3D model. Pepakura is an unfolding software for paper model layouts and the final touches are done in Inkscape.

Maps and Mappers of the 2017 GeoHipster Calendar – Michele Tobias

Michele Tobias, PhD – January

@micheletobias
GIS Data Curator – Data Management Program – UC Davis Library

Tell us about yourself.

In January I started my current job as the GIS Data Curator for the UC Davis Library where I work on data projects related to the library’s areas of particular interest and help patrons with questions related to data acquisition, creation, documentation, preservation, and sharing. I have a PhD in geography, and I am especially interested in the biogeography of coastal plants. When I’m not working on map-related things, I’m either dancing or crafting.

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

OK, but it’s kind of a long story… I’ll try to keep it short. It started a few years back when I saw an episode of Huell Howser, a show produced by the Los Angeles PBS station, KCET. In this episode, Huell interviewed people involved in growing the seeds that went to the Moon on the Apollo 14 mission and visited several of the resulting “Moon Trees” growing in the state. Curious about where the rest of the trees are, I looked for more information online and found some lists and a few basic maps. Fast forward to the 2016 call for FOSS4G North America presentations… I submitted a talk on cartography with Inkscape. I needed an interesting dataset to work with in my examples, and remembered the Moon Trees. Tree locations are easy to understand for a broad audience, and the story is interesting. Plus, my talk was on May 4th… so something with space needed to happen. Sometimes it seems that everything just sort of falls into place. It just happened that the keynote speaker for the conference that year was Tamar Cohen from the NASA Ames Research Center. And as I was making the map for my presentation, my aunt told me that my grandfather was on the crew that tracked the Apollo 14 mission and retrieved it when it came back to Earth. He would have gotten a kick out of the map for sure.

Tell us about the tools, data, etc., you used to make the map.

One of the goals I had for this map was that I use only open source software to make it. I found a Google Map of Moon Tree locations made by a person affiliated with NASA, and asked her via Twitter for permission to use her data. I cleaned up the KML attributes in LibreOffice.  I had hoped to get tree icons from Phylopic, a site for silhouettes of life forms, but they didn’t have the species that I needed so I made my own and contributed them back to the project. The basic layout and data display was done in QGIS, but I made the icons and did all of the big cartography in Inkscape.

This map was perfect for demonstrating some of the things you can do in Inkscape that isn’t possible in QGIS (or any GIS for that matter). The map has 3 data frames. In QGIS, you can’t have a different projection for each of them right now, so I had to export the frames separately and reassemble them in Inkscape. Also, the moon image fill on the polygons was achieved through a clipping process in Inkscape. The tree icons and numbers needed a lot of moving by hand to separate them enough to distinguish. The coasts of the US have a lot of trees and when I started, they were all lumped together. Some of the trees have a very subtle glow behind them to help them stand out from the background. In a GIS, it’s just not that easy to make a subtle halo.

The whole process of creating the map is documented in my 2016 FOSS4G North America talk that’s on their YouTube channel. The pitch video for the talk composed of screen captures of the map as it came together is on my channel.

Maps and Mappers of the 2017 GeoHipster Calendar – Alison DeGraff Ollivierre

Alison DeGraff Ollivierre – September

Tell us about yourself.

I’m a cartographer who works full time at National Geographic Maps, part-time doing freelance cartography/GIS work as Tombolo Maps & Design, and part-time for the NGO BirdsCaribbean. I’m from Vermont, have been living in the Eastern Caribbean on and off for the past six years, and currently live in Colorado. I love making maps and living abroad, and my primary topic of research for the past seven years has been participatory mapping, with a focus on its use in Caribbean small island developing states, particularly in relation to climate change, for the past six years.

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

When I was going through a stint of less cartographically-exciting freelance work last year, I started doing a map-a-day (inspired by Stephen Smith’s tile-a-day project) where I made quick, fun, daily snapshot maps that explored less commonly used fonts, colors, and projections with whatever exciting data I could get my hands on. I found NOAA’s climatic data center to be a jackpot for interesting data, and decided to map hurricane tracks across the Atlantic. Since I grew up in Vermont, I had not experienced hurricanes before moving to the Eastern Caribbean. The first big storm that passed through after I moved to St. Vincent and the Grenadines in 2011 was Hurricane Irene, which passed north of our island (just dumping a bit more rain than usual) and then proceeded to swing all the way up the coast to pummel Vermont. Nothing like a little geographic irony to inspire a map!

Tell us about the tools, data, etc., you used to make the map.
This map was made with NOAA’s national weather data and Esri country boundaries in ArcGIS and Adobe Illustrator. I started by converting the KMLs into shapefiles and selecting out the years that corresponded for both the Atlantic and Pacific hurricane seasons (there was twice as much data for the Atlantic hurricane seasons), leaving me with the 1930s-1980s. I then completed the cartographic design work in AI, including the graphic effects on the continents and oceans, and the visualization of the hurricane tracks.

Maps and Mappers of the 2017 GeoHipster Calendar – Damian Spangrud

Damian Spangrud – April

@spangrud

Tell us about yourself.
I’m a carto geek and have been making varying degrees of visual junk for almost 3 decades. I’m interested in showing data in a way that makes people curious to learn more. I’ve been at Esri for 23 years and I’m the Director of Solutions (which means 2 things: 1. my team builds industry specific maps and apps to make it easier to use and 2. problems tend to find me). Visualizing space and time in static printed maps has limited how we tell stories about data for hundreds of years, and the move to fluid digital data means some long-standing cartographic rules may need to be bent…

Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

I grew up in the Midwest and tornadoes were a fact of life. But while I knew I lived in Tornado Alley, I never had a good sense of what was the extent of that alley. And the maps that tried to define it seemed based on ideas and thoughts and not data. So I used data aggregation along with 3D to visualize the historical frequency of where tornados occurred. The raw data is a spaghetti mess of lines, but when aggregated into hexagons it becomes clear there is no narrow ‘Alley’, rather a large neighborhood. Looking at the data more you could see a pattern on when and where tornadoes were more likely. And using interactive time sliders you can also explore the general direction of tornado travel (which varies widely by region).

Tell us about the tools, data, etc., you used to make the map.

I used the historical tornado data (1950-2015) from NOAA. I used ArcGIS to aggregate the data into hexagons and do the 2D and 3D visualizations. The aggregations were based on count of major tornadoes (above a F3 on the Fujita-Pearson scale) inside the hexagons. I used the same color scale in 2D and 3D to allow for easier comparisons.  But I felt both 2D and 3D added to the understanding of the pattern.

Maps and mappers of the 2016 calendar: Jonah Adkins

In our series “Maps and mappers of the 2016 calendar” we will present throughout 2016 the mapmakers who submitted their creations for inclusion in the 2016 GeoHipster calendar.

***

Jonah Adkins

Q: Tell us about yourself.

A:  I’m a cartographer from Newport News, Virginia and have been working in GIS since 1999. I enjoy tinkering with mapping tools, co-organizing @maptimehrva, and paid mapping I‘m most interested in map design, openstreetmap, and civic hacking.

Q: Tell us the story behind your map (what inspired you to make it, what did you learn while making it, or any other aspects of the map or its creation you would like people to know).

A: The Noland Trail is 5-mile escape from reality located at Mariners’ Museum Park in Newport News, Virginia. I’ve probably ran a gajillion miles out there over the last several years, and wanted to create  a great map of one of my favorite spots. I started with some pen & paper field mapping, upgraded to some data collection with the Fulcrum app, and made the first version back in 2013. This second version was an exercise in simplifying and refining the first map, it required minimal data updates and a lot more cartographic heart-burn.

Q: Tell us about the tools, data, etc., you used to make the map.

A: The second edition Noland Trail map was made with a combination of QGIS and Photoshop. I threw a ton of information on the first one, probably too much, and it had many ‘GIS-y’ type elements that were lost on the casual map viewer. With this second edition, I wanted to strip away the bulkiness of the original, maintain a high level of detail, and improve the original design. Since the data remained unchanged, with exception of few items, I was able to dedicate the majority of my time on design elements. I’ve also created some related projects like Open-Noland-Trail, an open data site for the trail, and Noland-Trail-GL , a Mapbox GL version of the map built in Mapbox Studio.