I started this project as a fun change of pace from my normal GIS day-to-day, and as a way of brushing up on my cartography skills. For me, getting the chance to create a completely unique map from scratch is something I haven't done since Graduate School. Below is a "Work in Progress" map depicting disputed territories, borders, and regions of the world. This has been a fun project and I hope to finalize this soon. The map was created in ArcMap, and additional features, tables, and labels were added later in PowerPoint 2013. More labels will be added to call out specific regions and to comment on details pertinent to each area.
Date Source: https://www.naturalearthdata.com (all data in map, including Base Layers/Background)
T.H. GEO
Monday, December 24, 2018
Sunday, September 2, 2018
My First Google Map (MyMap Application)
Recently I've been looking into alternative mapping tools, and wanted to give Google MyMaps a try. Despite a number of limitations (kml polygons difficult to work with, line/polygon tool can be finicky), this is a very useful tool for beginners and I could see a number of different applications of this tool in both a professional or teaching setting.
Friday, January 19, 2018
Blogger Posts - Adding a Code Box
This is a quick post I wanted to make, detailing how to add a code box to Blogger....something I've wanted to do for a while now. Since Blogger allows users to easily toggle between the "Compose" and "HTML" post views, adding a code box can be easily achieved with the following bit of code:
<textarea name="textarea" cols="40" rows="4" wrap="VIRTUAL">
YOUR CODE GOES HERE
< /textarea>
The resulting code box looks like this:
The code box can be height and width adjusted by modifying the cols="100" and rows="50" values to your liking.
The final result is a tidy little place to paste code, which I greatly prefer to pasting the code directly to the post or boxing the code in with bounding lines. This should come in very handy for future posts, and should increase the readability of any code I may copy to blogger as well.
<textarea name="textarea" cols="40" rows="4" wrap="VIRTUAL">
YOUR CODE GOES HERE
< /textarea>
The resulting code box looks like this:
The code box can be height and width adjusted by modifying the cols="100" and rows="50" values to your liking.
The final result is a tidy little place to paste code, which I greatly prefer to pasting the code directly to the post or boxing the code in with bounding lines. This should come in very handy for future posts, and should increase the readability of any code I may copy to blogger as well.
Thursday, January 11, 2018
Connecting the Dots - Garmin Watch to AGOL
For Christmas, my wife bought me a Garmin Forerunner 35 to assist with my training leading up to Grandma's Marathon in Duluth this summer. So far, I've really enjoyed everything the Forerunner 35 has to offer and I've been pleasantly surprised with how quickly it syncs to mobile devices.
Since I also now have a personal AGOL license, I wanted to play around with uploading some of my watch data and creating a web map to catalog my training routes. The Garmin Connect App already does this (and much more), but I wanted an excuse to play around in AGOL.
After downloading a recent .gpx file from the Garmin Connect website, I was able to use the GPX to Features tool to bring these feature points into ArcMap.
While the points are interesting visually, my primary goal was to save these routes as line features. To accomplish this, the Points to Line tool enabled me to connect these points (which have a Date/Time field) chronologically to create a continuous route line.
So, there you have it, a relatively simple set of procedures to get .gpx data off of a running watch and into ArcMap! I loaded the data into an AGOL test map, which can be found on the Running tab of this blog, for those interested in seeing the results! More routes to come!
Since I also now have a personal AGOL license, I wanted to play around with uploading some of my watch data and creating a web map to catalog my training routes. The Garmin Connect App already does this (and much more), but I wanted an excuse to play around in AGOL.
After downloading a recent .gpx file from the Garmin Connect website, I was able to use the GPX to Features tool to bring these feature points into ArcMap.
| GPX to Features Tool |
| Output points from the .gpx file |
| Points to Line tool, with Date/Time as the sort field |
| Output line after running the Points to Line tool |
So, there you have it, a relatively simple set of procedures to get .gpx data off of a running watch and into ArcMap! I loaded the data into an AGOL test map, which can be found on the Running tab of this blog, for those interested in seeing the results! More routes to come!
Monday, December 4, 2017
Free ESRI Licenses for URISA GIS Corps Volunteers
This was a piece of good news I came across today, ESRI has announced it will be providing free personal licenses of their software to individuals who wish to support volunteer opportunities.
https://www.directionsmag.com/pressrelease/7082
Individuals who already volunteer through the URISA GIS Corps need only to fill out a "GIS Service Pledge" form indicating which organization they plan on supporting and the type of volunteer work being provided. There is a four week verification process prior to the software being issued to each user.
http://www.giscorps.org/index.php?option=com_content&task=view&id=210&Itemid=60
As much as I encourage and enjoy using open source software in my volunteer efforts with the GIS Corps, I also think this pledge by ESRI will be extremely helpful in making volunteer efforts more accessible to people who may be more hesitant to step out of the ESRI bubble. In my experience with volunteer projects through the Humanitarian OpenStreetMap Team, one of the biggest hurdles has been learning a new piece of software prior to supporting the volunteer work (ex: QGIS, Java OpenStreetMap Editor). While these are both excellent pieces of software which I enjoy using, I think in some instances the learning curve for these open source tools can be a bit too high for the casual GIS user.
Anyways, this should be a good initiative put forth by ESRI! I signed up today, so I'll provide an update on the process if/when my request is approved!
*UPDATE*
My application was approved and I will be receiving a download notification from ESRI for ArcGIS Online and ArcGIS for Desktop. I am pleasantly surprised at how quick and easy this process was, and I can't wait to start contributing to the GISCorps in a big way!
https://www.directionsmag.com/pressrelease/7082
Individuals who already volunteer through the URISA GIS Corps need only to fill out a "GIS Service Pledge" form indicating which organization they plan on supporting and the type of volunteer work being provided. There is a four week verification process prior to the software being issued to each user.
http://www.giscorps.org/index.php?option=com_content&task=view&id=210&Itemid=60
As much as I encourage and enjoy using open source software in my volunteer efforts with the GIS Corps, I also think this pledge by ESRI will be extremely helpful in making volunteer efforts more accessible to people who may be more hesitant to step out of the ESRI bubble. In my experience with volunteer projects through the Humanitarian OpenStreetMap Team, one of the biggest hurdles has been learning a new piece of software prior to supporting the volunteer work (ex: QGIS, Java OpenStreetMap Editor). While these are both excellent pieces of software which I enjoy using, I think in some instances the learning curve for these open source tools can be a bit too high for the casual GIS user.
Anyways, this should be a good initiative put forth by ESRI! I signed up today, so I'll provide an update on the process if/when my request is approved!
*UPDATE*
My application was approved and I will be receiving a download notification from ESRI for ArcGIS Online and ArcGIS for Desktop. I am pleasantly surprised at how quick and easy this process was, and I can't wait to start contributing to the GISCorps in a big way!
Tuesday, November 28, 2017
Checking a Directory for Changes with Python
This has been something I've been meaning to write a post about for a while, and I finally found myself with a free moment to document the process!
I recently needed to develop a python script that I could utilize for checking a specific file directory for changes. By "changes", I mean any additions, deletions, or modifications to the files located within a specific directory. For this exercise, I was not concerned with the type of change that was occurring, but only the time/date the change occurred.
Below is the script I came up with for this process, which reports on the 'Date Modified' column for a specific directory:
#Quick and dirty method for checking last modified date
#for a folder or file path
#Tim Hohn 11/15/2017
#import modules
import os.path, time
#print date modified for specified file directory
print("Export_Test Folder - Last modified: %s" % time.ctime(os.path.getmtime("H:\Desktop\Test\Export_Test")))
Running this script once every morning has been helpful towards keeping up with changes to a specific directory, especially in responding to new documents that have been uploaded that may require immediate attention. Setting the script to run at a specific time through Task Scheduler, further assists the process and eliminates the need for me to remember to check the directory for changes every day.
Alternatively, in my research for the above process I came across a "watchdog" script that will specify the type of change (added or removed) that occurred.
#Watchdog designed to alert the user when files have been
#added, removed or updated within a directory
#Original Source Here: http://timgolden.me.uk/python/
#win32_how_do_i/watch_directory_for_changes.html
#Import Modules
import os, time
#Set Path to Watch
path_to_watch = "H:\Desktop\Test\Export_Test"
before = dict ([(f, None) for f in os.listdir (path_to_watch)])
#Print Current Time
print time.asctime( time.localtime(time.time()) )
#Watch for changes to the directory specified in path_to_watch
while 1:
time.sleep (0.5)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after]
if added: print "Added: ", ", ".join (added)
if removed: print "Removed: ", ", ".join (removed)
before = after
So there you have it! A couple of different methods for checking a directory for changes within python.
Ideas for next steps to make these scripts more useful:
1. Generate a text report of changes daily
2. E-mail report to personal e-mail daily
3. Run overnight and have report ready and sent to inbox in A.M.
I recently needed to develop a python script that I could utilize for checking a specific file directory for changes. By "changes", I mean any additions, deletions, or modifications to the files located within a specific directory. For this exercise, I was not concerned with the type of change that was occurring, but only the time/date the change occurred.
Below is the script I came up with for this process, which reports on the 'Date Modified' column for a specific directory:
#Quick and dirty method for checking last modified date
#for a folder or file path
#Tim Hohn 11/15/2017
#import modules
import os.path, time
#print date modified for specified file directory
print("Export_Test Folder - Last modified: %s" % time.ctime(os.path.getmtime("H:\Desktop\Test\Export_Test")))
Running this script once every morning has been helpful towards keeping up with changes to a specific directory, especially in responding to new documents that have been uploaded that may require immediate attention. Setting the script to run at a specific time through Task Scheduler, further assists the process and eliminates the need for me to remember to check the directory for changes every day.
Alternatively, in my research for the above process I came across a "watchdog" script that will specify the type of change (added or removed) that occurred.
#Watchdog designed to alert the user when files have been
#added, removed or updated within a directory
#Original Source Here: http://timgolden.me.uk/python/
#win32_how_do_i/watch_directory_for_changes.html
#Import Modules
import os, time
#Set Path to Watch
path_to_watch = "H:\Desktop\Test\Export_Test"
before = dict ([(f, None) for f in os.listdir (path_to_watch)])
#Print Current Time
print time.asctime( time.localtime(time.time()) )
#Watch for changes to the directory specified in path_to_watch
while 1:
time.sleep (0.5)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after]
if added: print "Added: ", ", ".join (added)
if removed: print "Removed: ", ", ".join (removed)
before = after
So there you have it! A couple of different methods for checking a directory for changes within python.
Ideas for next steps to make these scripts more useful:
1. Generate a text report of changes daily
2. E-mail report to personal e-mail daily
3. Run overnight and have report ready and sent to inbox in A.M.
Tuesday, October 24, 2017
How Did You Contribute To OpenStreetMap?
Since 2013, I have been contributing to various projects with the Humanitarian OpenStreetMap Team (http://tasks.hotosm.org/). While my contributions have been few and far between in recent years, taking part in these projects has been both enjoyable and rewarding for me (and I've met some really cool people along the way).
Recently, I discovered a pretty neat website that allows you to view your individual OpenStreetMap (OSM) contribution statistics.
Looking at my contributions by year (see above), I took a wild dip from 2014 to 2015, after taking a new job in the GIS consulting world. By 2016 my OSM contributions became non-existent, as more and more of my time was gobbled up by work and life commitments (Who knew adopting a dog and getting engaged could take up so much of my time? ;P). Free time in the evenings was a rare treat, and sadly OSM fell by the wayside. In the Summer of 2017, I found myself with a new opportunity working with the State of Minnesota. With a ring on my finger and the puppy now a well-trained (sort of) fully grown 100-lb beast, I found myself with an itch to re-enter the OSM Community. As shown below, I have been contributing to several HOTOSM tasks related to Hurricane Maria in Puerto Rico. I couldn't be happier to be back, and would urge anyone who is interested to contribute as well! http://tasks.hotosm.org/
For the most part, my contributions have consisted of volunteer coordination and arm-chair digitizing. I have always felt an odd satisfaction from letting my mind go blank and digitizing geographic features, whether it was in ArcMap, QGIS, or Java OpenStreetMap (JOSM Editor). There isn't much to it, but I think there's something about getting into a rhythm and seeing points, lines, and polygons appear on a map, and seeing a project come together that is really satisfying to me. More than anything, it feels good to contribute to something so positive, and I hope to always find time for the OSM Community.
How Did You Contribute to OpenStreetMap?
(http://hdyc.neis-one.org/)
(http://hdyc.neis-one.org/)
Looking at my contributions by year (see above), I took a wild dip from 2014 to 2015, after taking a new job in the GIS consulting world. By 2016 my OSM contributions became non-existent, as more and more of my time was gobbled up by work and life commitments (Who knew adopting a dog and getting engaged could take up so much of my time? ;P). Free time in the evenings was a rare treat, and sadly OSM fell by the wayside. In the Summer of 2017, I found myself with a new opportunity working with the State of Minnesota. With a ring on my finger and the puppy now a well-trained (sort of) fully grown 100-lb beast, I found myself with an itch to re-enter the OSM Community. As shown below, I have been contributing to several HOTOSM tasks related to Hurricane Maria in Puerto Rico. I couldn't be happier to be back, and would urge anyone who is interested to contribute as well! http://tasks.hotosm.org/
For the most part, my contributions have consisted of volunteer coordination and arm-chair digitizing. I have always felt an odd satisfaction from letting my mind go blank and digitizing geographic features, whether it was in ArcMap, QGIS, or Java OpenStreetMap (JOSM Editor). There isn't much to it, but I think there's something about getting into a rhythm and seeing points, lines, and polygons appear on a map, and seeing a project come together that is really satisfying to me. More than anything, it feels good to contribute to something so positive, and I hope to always find time for the OSM Community.
Subscribe to:
Comments (Atom)
Work in Progress - Disputed Areas Map
I started this project as a fun change of pace from my normal GIS day-to-day, and as a way of brushing up on my cartography skills. For me,...
-
Since 2013, I have been contributing to various projects with the Humanitarian OpenStreetMap Team ( http://tasks.hotosm.org/ ). While my co...
-
Recently I've been looking into alternative mapping tools, and wanted to give Google MyMaps a try. Despite a number of limitations (kml...
-
This has been something I've been meaning to write a post about for a while, and I finally found myself with a free moment to document t...
