Today, Google Scholar releases Classic Papers, a collection of highly-cited papers in their area of research that have stood the test of time. This release of classic papers consists of articles that were published in 2006 and is based on Google Scholar index as it was in May 2017. To browse classic papers, select one of the broad areas and then select the specific research field of your interest. For example, Remote Sensing, Geography & Cartography, Hydrology & Water Resources.

I sorted out some journals related to Remote Sensing, Geography, Hydrology, and Wetlands. You can download my sorted list HERE. Note that this is only my personal classification. My apologies if some of your preferred journals are not on the list here.

Keep in mind that journal impact factor is just one metrics, so don’t take it too seriously!

It is difficult to get reliable information about the usage of open-source software like Whitebox GAT. With the recent release of Whitebox 3.4 ‘Montreal’, I decided to undertake an analytical exercise to try and figure out where Whitebox GAT is being used based on some download information that I had accumulating in my inbox. This work updates a previous survey that I carried out a number of years back, shortly after the 1.0 release. Examining nearly 21,000 downloads of the software, I discovered the following:

Whitebox GAT has been downloaded in at least 178 counties worldwide, with the top 10 countries, in terms of number of downloads, being the United States, Canada, India, Italy, South Africa, the United Kingdom, Germany, Brazil, Australia, and Spain.

Whitebox GAT has been downloaded in 5149 cities around the globe. The map below shows each city in which Whitebox GAT was downloaded at least one time over the…

At the Esri User Conference in San Diego last year, a small team of Esri engineers from the Python and Server teams huddled together with Scott Morehouse, who is one of the original designers of geographic information systems, to conceive what a modern Python API for the Web GIS would look like. Today, after eighteen months of endless design discussions, debates, development and demos, we are excited to announce the release of the ArcGIS Python API.

The project (codename Geosaurus) was initiated with this scope and vision:

Geosaurus is a project to design and implement a pythonic API for a GIS. A GIS consists of:

– An information model

– Visualization functionality

– Editing functionality

– Information management functionality

– Analysis functionality

A pythonic API is one which corresponds to Python best practice style in its design and implementation (e.g. PEP 8) and which leverages standard Python types, classes, and packages.

The Geosaurus API has Python modules, classes, functions, and types for managing and working with the elements of a GIS information model. This includes both data and visualization elements (i.e. maps, scenes, layers as well as datasets).

The API design of Geosaurus will be generic – not tied to specific ArcGIS jargon or implementation patterns. Although a “pure Python” implementation is possible for the API, it is intended to be implemented by leveraging Esri native code libraries.

In Python, a package consists of modules containing classes and functions. A module is an installable component, with all the Python and native code necessary for execution. Functions, classes, and class methods are parameterized using Python types. These types include built-in primitives (e.g. string, number) and structures (list, dictionary), as well as object class instances. Where possible, Geosaurus will employ “native” Python types (e.g. primitives, lists, dictionaries, and standard library objects) rather than introducing new types.

So, what is the ArcGIS Python API?

It is the Python API to your Web GIS, which could be online or on-premises.

It’s powerful, modern and easy to use.

What do I mean by that?

It’s powerful as it harnesses the full power and content of your Web GIS, including the ability to create, use and manage GIS resources such as users, groups and content including web maps and web layers, and provides access to the rich analytical capability of the ArcGIS platform.

The API is modern as it’s a new library built for Python 3 and integrates well with popular Python libraries such as Pandas, Numpy and the SciPy stack. It works especially well with the Jupyter Notebook and is distributed using Conda – a modern package and environment management system for Python.

And it’s easy to use. It uses standard Python idioms and types and avoids introducing a complex type system or API. We’ve worked very hard on keeping the API ‘short and sweet’.

It’s implemented on top of the REST APIs of the Web GIS platform – that’s just an implementation detail, so you know where it sits in an Architecture diagram. However, the API is a pythonic representation of a GIS and you don’t need to know anything about REST, such as how GET and POST work, how to obtain access tokens, and so on to use it.

ArcGIS Online is built into the API and everyone can use the GIS() to work with the rich collection of public-access maps, layers and tools published by Esri and authoritative sources from around the world, as well as use essential GIS and mapping functionality.

GIS(public account) lets you use the public content and tools to create, store, and manage maps, apps, and data, and share them with others using this API.

With GIS(org account), you have access to the subscriber content from the Living Atlas as well as the rich collection of spatial analysis tools and can publish, share and use content throughout your organization, across a community, and openly on the Web. The API has great support for managing and administering your ArcGIS Online Organization or ArcGIS Enterprise – users, groups and content included.

GIS(enterprise account) enables you to keep your GIS under your complete control, online or on-premises. You can use the latest geoanalytics and raster analysis tools with this API and leverage distributed analysis of large datasets to gain insights from big data or create information products. We’re dying to hear about the amazing things you will do by combining Python and the Scipy stack with realtime GIS, imagery and geoprocessing!

A free developer account lets you get started quickly with free credits, features like geocoding, routing and geoenrichment and premium content like demographic and traffic maps from Esri.

Who is this API for and what can you do with it?

If you’re a Web GIS Administrator or a DevOps person, you can automate most of your repetitive tasks and use scripts instead of using the UI and clicking your way through. You can schedule these scripts to run at periodic intervals and do things like standing up Portals or your online org, creating users, assigning roles, creating groups and set access restrictions and so on.

If you’re a contentpublisher, you can take care of repeated content creation and content validation workflows using scripts. You can clean up and fix stale items in your GIS, script and automate the creation of web maps and web layers, update tiles and features, fix broken links in web maps and layers and update them – doing things that may be tedious or not apparent through the UI.

If you’re an analyst, datascientist or academicuser, you can use all of the analytical capabilities of the ArcGIS platform including spatial analysis as well as the recently introduced geoanalytics and raster analytics tools that provide distributed analysis of large datasets.

You can also use the API through the Jupyter notebook to record your workflows and share how you arrived at your conclusions. You can combine this API with the rich set of libraries in Python, especially in the machine learning and analysis space and do all sorts of amazing things.

And finally, an important category of users this API is targeted towards is that of a Web GIS power user.

If you know a lot about Web GIS, use it everyday, and want to become more efficient by automating your workflows, this could be the first ArcGIS API for you. Python is a great language for people who want to start programming, and is very readable…

… and conversely, this API is geared towards a Python programmer who doesn’t know a lot about GIS but wants to add geographic analysis to his or her workflows. It provides a gentle introduction to GIS for the Python programmer as it models a generic GIS system through its simple, intuitive design.

That’s quite a mouthful. It’s probably best seen through a demo. So, here is the ArcGIS Python API explained in a quick 5 minute video:

A Pythonic API for GIS

The ArcGIS Python API is Pythonic representation of a GIS. We designed the API to be modular – the modules make it easy to learn and use the API. Each module has a handful of types and functions that are focused towards one aspect of the GIS.

The gis module is the most important and provides the entry point into the GIS. It lets you manage users, groups and content in the GIS. GIS admins spend a lot of time on this module.

The modules in green are used to access the various spatial capabilities or geographic datasets in the GIS. These module includes a family of geoprocessing functions, types and other helper objects for working with spatial data of a particular type. Some examples are these modules:

The featuresmodule is used for working with feature data, feature layers and collections of feature layers in the GIS. It also contains the spatial analysis geoprocessing tools which operate against feature data.

The rastermodule containing classes and raster analysis geoprocessing tools for working with raster data and imagery layers.

The geoanalyticsmodule provides types and geoprocessing tools for distributed analysis of large feature and tabular datasets.

The modules in blue provide additional functionality for your workflows. They include the geocodingmodule which is for finding places and the geoprocessingmodule that makes it easy to import third party geoprocessing tools and work with them.

The modules in orange allow you to visualize GIS data and analysis. They include the MapView Jupyter notebook widget for visualizing maps and layers and classes and functions for working with web maps and web layers.

Where can I get it?

All the information you need about the API can be found in the product website at http://developers.arcgis.com/python. From here, you can find links that take you to the API guide, sample notebooks, API reference, a helpful forum to ask and answer questions and quick links that tell you how to install the API and get started quickly.

The samples are organized by the different user profiles that I mentioned earlier. There are samples for power users and developers, administrators, analysts and data scientists and for content publishers.

The samples and guides are in the form of Jupyter Notebooks that you can download from the GitHub repository, and run locally on your system. The samples also serve as starter templates on which you could base your scripts upon.

Reflection and the Road Ahead

While there’s still a lot of ground to cover and we have a busy year planned for this exciting, new API, Scott has this to say about reaching this important milestone of the first public release of this API:

Rohit and his development team has been remarkably successful in carrying out this vision and in developing a great Python experience for working with maps and geographic information.

I’m looking forward to the capabilities of the ArcGIS Python API to continue to grow, with functionality expressed clearly in a way that leverages the Python scientific programming environment.

In this festive season, when families huddle together to celebrate Christmas and bring in the new year and programmers recharge their batteries and sharpen their knives by looking at what the latest developments are in the technology space, we’re excited to release this powerful, modern and easy to use API, and hope you’ll find it useful!

Dr. Melanie Vanderhoof and myself are proposing a Special Session for the AWRA 2017 Specialty Conference, focused on Aquatic System Connectivity, and we would like you to consider giving a talk within our Special Session (www.awra.org/meetings/Snowbird2017). This conference will be held April 30 – May 3, 2017 in Snowbird, Utah. Our proposed session is entitled, “Using GIS and remote sensing approaches to inform aquatic system connectivity.” A summary of the Special Session is below. Conference organizers are requesting that we confirm at least a partial list of Special Session participants prior to submitting our session proposal, hence our invite.

If you are thinking of attending the conference and would like to tentatively commit to giving a talk in our Special Session then please send Melanie and myself an email with a draft topic or title. We are hoping to receive responses within the next 2 weeks, or by October 10, 2016. Also please forward this invite to others for which it may be relevant.

We are loosely coordinating our session with another proposed Special Session, “Tackling connectivity through cross-scale integration: Lessons learned in the Prairie Pothole Region” organized by Laurie Alexander, Renée Brooks, and Jay Christensen with USEPA.

The conference organizers have requested that we let you know that all speakers must pay the registration fee. Regardless it looks to be a great conference and we look forward to hopefully seeing many of you there!

Best Wishes,

Melanie Vanderhoof and Qiusheng Wu

Special Session Title: Using GIS and remote sensing approaches to inform aquatic system connectivity

This session will focus on approaches that use GIS and remote sensing to inform hydrological, geochemical and biological connectivity on a watershed to landscape scale. This session seeks to explore connectivity at a coarser scale than measurements at individual sites. GIS can provide spatially explicit predictions of connectivity at a landscape scale, while remote sensing datasets can, in turn, provide predictions of surface depressions, flow paths, and help quantify variability in surface water extent and arrangement. This data can be used to directly predict and bound estimates of landscape-scale surface water connectivity as well as inform and validate hydrological and geochemical models of aquatic connectivity.

This tutorial shows you how to set up conda environment to work with ArcGIS 10.4 and ArcGIS Pro 1.3. You can download a pdf copy of the tutorial with screenshots HERE. At the 2016 Esri International User Conference in San Diego last month, Esri released ArcGIS Pro 1.3, which can now use conda for packaging Python libraries. This allows support of python under multiple Python environments. You no longer need to install a separate Python install to get the full Python capability with ArcGIS as you did with past versions.

Anaconda’s conda command will then set up an environment subdirectory, ex: ” C:\Anaconda2\envs\arc104 “, installing the downloaded packages into it.

Test the virtual environment

At the Anaconda Command Prompt, type: activate arc104

Type: conda list. You can see the list of packages installed.

Add more packages

You can add more packages using conda install, but make sure you specify version numbers for these that won’t change the environment’s version of python or numpy (or ArcGIS will not be able to use that environment anymore).

The journal Remote Sensing (ISSN 2072-4292, SCIE journal, Impact Factor: 3.036) is currently running a Special Issue entitled “Remote Sensing of Climate Change and Water Resources“. Drs. Qiusheng Wu, Charles Lane, Melanie Vanderhoof, and Chunqiao Song are serving as Guest Editors and kindly invite you to consider submitting your full paper to our special issue.

The Journal Citation Reports 2016 (JCR), with the Journal Impact Factors of 2015, have been released by Thomson Reuters. You can download the complete list here.

I sorted out some journals related to Remote Sensing, Geography, Hydrology, and Wetlands. You can download my sorted list here. Note that this is only my personal classification. My apologies if some of your preferred journals are not on the list here.

Keep in mind that journal impact factor is just one metrics, so don’t take it too seriously!