Radian Studio is here..

 

As many of you know, Manifold Software, Ltd. has just annradian_logoounced the release of Radian Studio.  To help people learn Radian, gisadvisor.com, LLC. has just released the video training course Radian Studio.

The more I’m using Radian Studio, the better I like it.  Have a look at the short video below to get a quick look at what Radian Studio can do, and decide if it is something you want to try out.

 

The course is over four hours of video instruction, which as you know from other gisadvisor.com videos, is probably close to a one or two day training program.  I wanted to get this training out quickly, so there will be more added to it as the days go on, and as Manifold Software, Ltd. adds more functionality.

As part of the introductory offer, the entire course is available for $30 if you purchase it using the coupon code here – that is an incredible deal to learn such a sophisticated piece of software.  And as always, any of the courses you sign up for are available forever, and you can view the courses on your desktop, tablet, and any smart device.

This is one of the best ways to learn the basics of Radian Studio, and it’s at a price that is very affordable to anyone.  Don’t forget, if you use Radian Studio, the Manifold forum is a great place to learn from others.

How do I do that in SpatiaLite

sqliteIn 2004, I created a little document with my students titled How do I do that in ArcGIS/Manifold.  To our surprise, the document really took off, and had tens of thousands of downloads from all over the world.  It was that document, and the response, that got me to realize how as a Professor, I could have a far reaching impact on people learning GIS.

As the years passed, I came out with a number of other documents in the series: How do I do that in Manifold SQL, How do I do that in QGIS, and How do I do that in PostGIS.  These documents have also been used by thousands of people (although, nowhere near the reach of the original document).

So  today I am posting my latest book in the series: How do I do that in SpatiaLite: Illustrating Classic GIS Tasks.   This book is short and to the point, and actually provides users with code to illustrate all the commands that the USGS’s 1988 document A Process for Evaluating Geographic Information Systems said should be in any GIS.  Between Manifold, PostGIS, QGIS, SpatiaLite, and Arcpy, I can’t keep all these languages straight (the effects of aging, I suppose).  So, I keep each of these books right next to my computer for a quick reference on how to do virtually any GIS task.


ithaca
I welcome you to download the .pdf and make use of it yourself with the SQLite database..  You are free of course to send it to whomever you like, but I would appreciate it if you simply provided people with a link to my site so they can see more of what I’m doing here.

 

If you want to learn more about how to program geospatial tasks with SQL, or how to use Free and Open Source GIS like QGIS and PostGIS, check out all my courses here.  And, in celebration of the book, you can get my course Python for Geospatial for $20 here.

One of the coolest GIS features I’ve ever seen

radianManifold Software Limited just released Radian Studio today.  So, to kick things off, let me show you one of the coolest features I found – the ability to simultaneously work with disparate databases.

postgisThe following 10 minute video is going to show you how to issue queries in multiple databases, using the native functionality of the database, and tie them all together.

Hsqliteere I’ll show you how to add a database from PostGIS, SQLite, and allow those databases to do the heavy lifting using their own, native database functions.  From within that same query, I’m going to issue a Radian command that performs more GIS analysis, and then inserts the data back into Postgres!

Keep an eye out for my Radian course in about a week.

Workshops at the Maryland Geospatial Conference

tugisThe Maryland’s Geospatial Conference  () is on March 20/21, 2017.  I first attended TUgis in 1990, and it is always a great conference.  It is not too large, so it is  great way to have extended time with people.  So, if you had a technical question for someone from say ESRI, you could simply stop by their booth and have a chat.

This year I was asked to support the pre-conference workshops.  I will be presenting two workshops with the help of my students.  If you recall, my students are quite good at instructing others about GIS technology.  I’m really looking forward to the conference and interacting with people during the workshop.  Keep in mind, this is not something we are just throwing together – we’ve been spending a lot of time thinking about how to effectively move people through the material so that beginners do not get lost, and more technically savvy people are sufficiently challenged.  We are fanatical about making sure people’s learning experience is excellent.

A description of the courses are found here:

Spatial SQL: A Language for Geographers:  Are you stuck in a rut of only knowing how to use a GIS GUI? Do you want to learn how to automate tasks, but are afraid of computer programming. If so, SQL is the most powerful tool you can learn to help you perform complex GIS tasks. This hands-on course is designed to teach you how SQL can replicate many database and GIS tasks. We will start at a very basic overview and then proceed to more advanced topics related to GIS.

Topics to include:

  • Spatial is NOT Special
  • SQL Data Types
  • Traditional SQL
  • Spatial SQL for Vector and Raster Analysis
  • Spatial SQL for Classic Geographic Analysis

For this class, we’ll be using spatiaLite which is the spatial extension used with SQLite.  This is a great way to get started, as it is very similar to the functionality of Postgres/PostGIS.  If you want to move to enterprise GIS with Postgres or even Oracle or SQLServer, you’ll be in really good shape.

Python for Geospatial: If you are in the field of GIS, you’ve probably heard everyone talking about Python, whether it’s Arcpy in ArcGIS or special Python packages for doing things in open source.  In this hands-on workshop you will learn how Python is used to perform GIS analysis. The workshop will be an introduction to Python, with emphasis on integrating multiple Python plug-ins with ArcGIS and open source GIS.

Topics to include:

  • An overview of Python (variables, statements, I/O, writing code)
  • Python plug-ins for Geospatial (numpy, geocoder, pygal, Postgres)
  • A Taste of Arcpy
  • A Data Analytics Project with Python (for this, we will geocode addresses using Python, perform analysis with open source GIS, take the results into Arcpy to do more GIS analysis, compute statistical results with Python calling Excel, and then create charts and graphs of the results for use on the Internet—without ever opening up a single GIS product.)

If you want to learn more about how to use GIS technology, check out the 9 courses at gisadvisor.com.  

How do I do that in Arcpy

howdoiIn 2004, I created a little document with my students titled How do I do that in ArcGIS/Manifold.  To our surprise, the document really took off, and had tens of thousands of downloads from all over the world.  It was that document, and the response, that got me to realize how as a Professor, I could have a far reaching impact on people learning GIS.

As the years passed, I came out with a number of other documents in the series: How do I do that in Manifold SQL, How do I do that in QGIS, and How do I do that in PostGIS.  These documents have also been used by thousands of people (although, nowhere near the reach of the original document).

So  today I am posting my latest book in the series: How do I do that in Arcpy: Illustrating Classic GIS Tasks.  I love this book: it is short and to the point, and actually provides users with code to illustrate all the commands that the USGS’s 1988 document A Process for Evaluating Geographic Information Systems said should be in any GIS.  Between Manifold, PostGIS, QGIS, and Arcpy, I can’t keep all these languages straight (the effects of aging, I suppose).  So, I keep each of these books right next to my computer for a quick reference on how to do virtually any GIS task.


ithaca
I welcome you to download the .pdf and make use of it yourself with the accompanying geodatabase..  You are free of course to send it to whomever you like, but I would appreciate it if you simply provided people with a link to my site so they can see more of what I’m doing here.

 

If you want to learn more about how to program geospatial tasks with Python, or how to use Free and Open Source GIS like QGIS and PostGIS, check out all my courses here.  And, in celebration of the book, you can get my course Python for Geospatial for $20 here.

Undergraduate Geospatial Python Projects

earthballThis week my GIS Programming students presented their programming projects to ESRI. First, I cannot say enough to thank ESRI for taking time out of their schedule to meet with our students – the staff was helpful, encouraging, and provided great feedback to the students – what an honor it was to get their feedback.  I am so thankful to be a part of a GIS community that is so supportive of one another.

Now, this was a really special class of undergraduates – and some of them were part of that special group of students that presented their research at an undergraduate conference.  It was small, so we could do some really cool things.  In fact, in the middle of the semester, the students wrote a paper comparing the geocoding accuracies of Google Maps and the United States Census Bureau.

Things were going so well that I decided in lieu of a final exam, we expanded their final projects a little more, and arranged for the staff at ESRI Charlotte and ESRI Redlands to join us on a WebEx that included demonstrations and a code walk-through.  Below are each students’ presentation, and some of the Q&A from ESRI:

noahNoah Krach.  Noah is an amazing undergraduate.  Recently, we lost one of our graduate research associates, and Noah stepped in to provide technical support on a National Science Foundation project in Lake Victoria.  Without missing a beat, Noah was all over the project, and he used his time in my class to create an Arcpy tool to extract, translate, and load (ETL) gigabytes of Landsat imagery.  This tool does a lot, and I can’t even begin to describe all he did, you’ll simply have to watch and learn.

Check out his video, and you’ll see why we are so excited that Noah will be around for another semester.

cc

Caitlin Curry.  If you follow my blog, you’ve already met Caitlin.  She finished her summer internship I told you about, and during the middle of it, her boss wrote us to say what an excellent worker she was (he prefaced his email by saying he never does that, but was so impressed with Caitlin, he had to let us know).  We are impressed with Caitlin, too.  And, as I have now grown to expect, Caitlin did an amazing job with another ETL type tool using Arcpy, where she downloaded, unzipped, and processed earthquake data and critical infrastructure.

I did a lot of emergency response work with earthquakes in a previous life, and what Caitlin did here would have been so useful.  I think you will enjoy seeing how she integrated many different Python packages with Arcpy to provide an early warning application for emergency responders.  And just as a heads-up, Caitlin uses Python to download everything while the script is running – so you just give the script to a user and it works without any operator knowledge of the underlying data = really cool, and efficient.

mb

Matthew Bucklew.  After my first lecture this semester, Matt told me he built his own computer this summer – just for fun.  So, I knew he wasn’t your ordinary  geographer – he likes to try new things, and if something is done in a conventional way, Matt is going to try and be more innovative.  Matt created a great Arcpy application to locate renewable engery stations needed by automobiles.  His Python scripts use ArcGIS for analysis, but at the same time, seamlessly brings in the Google APIs to provide directions to the nearest locations.  For good measure, he also brings in other packages like heapq.

At the moment, Matt’s program works on a desktop, but his hope it to turn this application into a cloud based solution for use with mobile phones.  Keep an eye out for what Matt comes up with, and if you watch this, you’ll see it is an excellent tutorial on how to mash up bunches of Python packages with Arcpy.

jmJessica Molnar.  Like Caitlin, Jessica is another student you’ve seen before.  She’s got such a big heart, and is always looking for ways to apply GIS to humanitarian and ecological solutions.  In this project, Jessica created an Arcpy application to identify locations for community gardens in Baltimore City with special consideration for locations within food deserts, near churches and schools, and on suitable soils for growing food.  Jessica’s program also found those locations that were already owned by the City, but were vacant.  Let’s hope the City makes use of this to build a more beautiful Baltimore (BTW, Jessica wrote her program to work in any location in the State of Maryland, so any community can use this tool!).  I think Jessica may eventually roll this into a cloud based solution – hey Jessica, I think we found a project for graduate school!

 

jtJohn Tilghman.  John’s family owns an orthodontist practice, and John decided to use PostGRES/PostGIS along with a number of other different Python packages to perform market area analysis.  John integrated PostGRES, Google, and the Pygal libraries to create the first stages of a geodashboard to assess the effectiveness of marketing strategies, and other metrics.  In the video, you’ll also see how he created a distance decay algorithm in SQL to determine at what point customers drop off from visiting the practice.  With just a little bit of information (addresses and marketing strategies), John was able to extract a ton of business information – in fact, our guests from ESRI were surprised the John wasn’t already a business major!

This is an excellent presentation to watch for those of you who are interested in using Python with Open Source GIS – you’ll learn how to integrate FOSS4g and Python for a business analytics tool.

 

jyJosh Young.  Josh created an Arcpy script to assemble tons of location based data that might be useful for someone thinking about moving to a particular location.  Now, in Josh’s case, he chose location based data he deemed important for the neighborhood (download speeds, elementary school, crime statistics, distance to the downtown, etc.).  But ultimately, what Josh has shown us is how to create a template that integrates multiple Python packages and online data to provide very useful information.

It would be so easy to take Josh’s work and roll it into a site specific location-based analysis engine.  In fact, one of the people watching Josh’s presentation mentioned that he was moving, and saw how useful this could be for a community.  The best part of it is that Josh did it with all freely available online data for the State of Maryland, so any community can spin this up into a cloud-based solution.

 

image2

Robbie Stancil.  Robbie is our only non-geography major.  You’ve met him before when he worked with me on a National Science Foundation project to use Spatial Hadoop.  Like John, Robbie’s project used Postgres/PostGIS and the Google API to do something quite interesting: he created a mesh of points over community to determine how far the Google API will search in order to find a property address, and compared the concave hull of each series of points for an address to the actual property parcel.  This project got us thinking about some very creative uses – you’ll have to watch it until the end to see the interesting things we came up with.

 

Again, I have to give a huge shout out to the ESRI staff – they were wonderful guests, and really excellent mentors during the Q&A. As these students get ready to graduate in May, I know they will make excellent employees or graduate students – the future is really bright for them. If you are in academia, I hope that you are inspired to expect the very best of your students as I do, and you’ll be so pleased to see what they are capable of doing.

want to learn how to program geospatial solutions like these students? Check out the geospatial courses at gisadvisor.com.   

Arcpy, Google, and Routing

I thought I would show you how I’ve been working with my students in my GIS Programming class, and showing them SQL, Python, and ArcGIS.  One of the fun things about Python packages is that there are tons of packages out there, and lots of things we can do with them – and it only takes a few lines of code.

One of the things my students do in Advanced GIS is create their own route-able networks in ArcGIS, and then we run a traveling salesman problem.  The scenario is that we take 20 banks in the local area and figure out what route we would take if we wanted to rob all the banks.

As you know, building routes in ArcGIS is complex – that isn’t ArcGIS’ fault – it’s just that there are lots and lots of things to think about.  But, it is important for the students to learn how to do this so that they can build their own if they have to.

Well, in my GIS Programming class, I showed them how to recreate the process with Google Maps.  The code window is shown below, and comments will follow:

routing

Continue reading

Working with Manifold Forms

I love using forms in Manifold GIS to rapidly create applications for users.  Sure, you can create world class forms and applications with Visual Studio, but in literally minutes, you can create a functioning GIS application that you can start using immediately, or hand off to a friend.  Click on the image below, and I’ll show you how to do it:formintro

want to learn how to program Manifold GIS with VBScript?  Check out Introduction to Manifold GIS Scripting, or any of the other 8 courses I now offer online at www.gisadvisor.com 

PostGIS Commands in Arcpy

Most of you know, I love spatial SQL.  I also love PostGIS and ArcGIS – can’t we just all get along?  Well, yes we can.  In this case, Python becomes the great mediator.

Check out this video where I analyze data from an ESRI shapefile using Arcpy, call PostGIS to run a procedure on the data using the psycopg2 package, and return the results.

In this case, I am trying to compute the distance between points and line in meters, but the data is in Lat/Lon.  So, I am bringing PostGIS into the mix because it does a very good job of returning distances between points and lines.

appg

Now, you can do all of this in Arcpy directly by getting the geometry object:

import arcpy, numpy

pts = arcpy.MakeFeatureLayer_management("c:/temp/bkpts.shp")
selpts = arcpy.SelectLayerByAttribute_management(pts,"NEW_SELECTION",'POP100 > 10')

rivers = arcpy.MakeFeatureLayer_management("c:/temp/rivers.shp")

for pt in arcpy.da.SearchCursor(selpts, ["SHAPE@"]):
 ptutm = pt[0].projectAs(arcpy.SpatialReference(26918))
 for riv in arcpy.da.SearchCursor(rivers,["SHAPE@"]):
 rivutm = riv[0].projectAs(arcpy.SpatialReference(26918))
 dist = rivutm.distanceTo(ptutm)
 print dist

but, my point here was to show that you can move along with an Arcpy script, take a short and painless detour to use PostGIS, and then get back to your Arcpy script (assuming that PostGIS does something that you are really interested in using).

want to learn more about how to program with Python, Arcpy, and PostGIS?  Check out my courses on on gisadvisor.com.

Working with multiple Python versions

This is something I’m sure many of you already know, but it was new to me, so I figured that I’d share it here.  My student, Carl Flint, showed this to me last night.

Like many of you, I do Python programming in both ArcGIS and other open source platforms. This can sometimes be a real trick, as the ArcGIS Python is located in C:\Python27\ArcGIS10.3\……, while other Python packages are located in C:\Python27.

Yesterday in class, I wanted my students to take data from a .csv file, use geocoder to geocode locations, push the locations into PostGIS, and run a spatial query, and then run pygal to create a pie chart of the results – sort of a mini-geodashboard in the making.  That was really fun for the students to see how Python can get all these products interacting with one another.

But, my GIS Programming course also includes lessons on Arcpy, so I wanted to have them do the same thing except to use ArcGIS to perform the spatial analysis task.  The problem was, the Python libraries in Arcpy are located in a different spot than the regular Python 2.7.  And,  I was having difficulty installing pip in the ArcGIS directory.

So, Carl showed me how to use my Python27 directory to load the Python packages into the ArcGIS directory.  Under normal circumstances, you simply issue (replace psycopg2 with your favorite Python package like geocoder, pygal, etc.):

python -m pip install psycopg2 --target=C:\Python27\ArcGIS10.3\Lib\site-packages

Now, in our case there were other dependency problems, so I also had to issue the following two commands:

python -m pip install distribute --target=C:\Python27\ArcGIS10.3\Lib\site-packages
python -m pip install setuptools --target=C:\Python27\ArcGIS10.3\Lib\site-packages

That was it.  Now, I can use Arcpy to interact with all these really cool Python packages.

As I said, I know a lot of you may already know this, but I hope it helps others.

Want to learn how to program using Python for Geospatial?  Check out my Python for Geospatial course,  or any of the 9 other geospatial courses I offer on Udemy here.  The links will get you any of the courses for $30 or less.