We just completed an update for the NYC Mass Transit Spatial Layers series where we've created new data for the bus and express bus stops and routes. This update is a big one, as there were significant changes to bus stops and routes in Staten Island. We also updated the subway stops layer as a new attribute column was available that indicates whether the stop is underground, above ground, or elevated. We chose not to update the subway routes or any of the rail layers; for one thing there are no changes from the current source data and the last published version. The other reason is that we make a number of manual fixes to points and lines because the data is bad (Metro North) or the MTA has failed to update it (the subway routes file in the GTFS static feed still does not include the 2nd avenue subway, two years after it opened). Rather than redo all of our work, we're keeping the same files since there were no actual changes.

We're a little behind in releasing updates for our datasets, since I was away last academic year and we're still in the process of getting the lab back in shape. We recently completed a few updates:

  • NYC Geocoded Real Estate Sales: we've added sales for 2017. There's a shapefile with all 2017 sales, and an updated Spatialite database that contains sales for all years from 2003 to 2017.
  • NYC Mass Transit Spatial Layers: we've updated the ridership statistics to include data for 2017 for the NYC subway and the PATH train. The data is published in spreadsheet format.

Updates for the future? We're aiming to release a new version of our NYC mass transit layers (points and lines for buses and trains) for the month of November before this semester is over. The next version of the NYC Geodatabase will be the January 2019 iteration, which will include not just the usual ACS updates but all the updates we missed this summer (schools, hospitals, libraries, subway stations and ridership, and ZBP data). Stay tuned!


GIS Job Fair Nov 2018

GISMO (the local chapter of the NY State GIS Association) is hosting a GIS job fair on Wednesday November 14, 2018 at Hunter College CUNY. The fair runs from 1pm to 5pm and is located in the Hunter College West Building. For more information and to register visit

The library has recently purchased updated data from the China Data Center: the 2015 edition of the China City Statistical Indicators with Maps. Data is provided in point and polygon shapefiles and in a tabular Excel format for Prefecture-level and County-level cities. Cities in China differ from the North American model, in that they represent areas that contain both urban and rural components and they cover the country in it's entirety. The point shapefiles represents the center of the urbanized area, while polygon files represent the entire administrative or legal area. Provinces are the 1st-level administrative sub-divisions of China, Prefectures are the 2nd-level, and Counties are the 3rd.

The data includes several demographic and socio-economic indicators, many for the prefectures and fewer for the counties. You can view an index of the available variables and files on the China Data Center Datasets page. The data is copyrighted for educational, non-commercial use and our license permits us to share the data only with current Baruch students, faculty, and staff. Current members of the Baruch College community can email us (using your CUNY email address) to request access to specific files.


Registration is now open for the fall semester’s GIS (geographic information systems) Practicum, Introduction to GIS Using Open Source Software (featuring QGIS). The sessions will be held in the GIS Lab at Baruch College:

  •     Friday Oct 26th
  •     Friday Nov 16th

The day-long workshop runs from 9am to 4:30pm. Current CUNY graduate students, faculty, and staff, and full-time Baruch undergrads are eligible to register. Advance registration is required; the fee is $30 and includes a detailed tutorial manual and a light breakfast. Participants must bring their own laptop with QGIS 2.18 pre-installed in order to take the class. Visit the GIS Practicum page to learn more and to register:

If you are using the NYC Geodatabase with QGIS 3.2 (and possibly 3.0) and are not able to view certain layers (i.e. you drag them into the map view and nothing appears), this is due to some bug with how QGIS reads Spatialite layers that have spatial indexes. The following layers are affected: a_pumas2010, a_tracts, and a_zctas. To get them to display, you can disable the spatial index. You can do this is the Spatialite GUI or the QGIS DB Manager by running this command in the SQL window:

SELECT DisableSpatialIndex('LAYER', 'geometry');

Where LAYER is the name of the layer in quotes, i.e. 'a_tracts'. Run this command on each of the three layers. Then refresh the database or remove the connection and re-establish it, and try adding the layers to the view. You should be back in business.

Alternatively, you could go back to using QGIS 2.18, which is still the long term release and is inherently more stable and hassle free.

Janine's last day working for the GIS lab today - she will be sorely missed! While she and Anastasia are off to new adventures and my academic leave continues during the summer, the lab will be closed in July and August. I'll be back the first week of fall and will be recruiting for a new lab assistant position (possibly two), so look for an announcement here sometime in August.

Janine was pretty busy before she left - here are some updates:

  1. The national IRS Migration Database has been updated with a new year of data. For state to state and county to county flows the newest year is 2015-16.
  2. The NYC Mass Transit Spatial Layers have been updated with new stop and line features for all the buses and the subway. The subway update reflects the re-opening of the South Ferry station and the shut down of the older South Ferry Loop at the southern end of the 1 Line. The source data for the regional trains hasn't changed, so we skipped updates for those.
  3. We have a new IRS Tax Exempt Organizations file for NYC for June 2018, listing all the non-profits in the city.

Some of the other datasets that we usually release around this time of year will be delayed until I return in the fall. This includes: 2017 ridership data for the subway and PATH, NYC real estate sales for 2017, and an updated version of the NYC Geodatabase.

As for the GIS Practicum, I won't be updating the manual this year as QGIS 2.18 will continue to be the long term release (LTR) until the end of October 2018. I plan on running a couple of workshops in the fall based on it, and you can sign up to be notified by email when registration opens. As the final version of the 2.x series 2.18 will continue to be supported for a few more years. I will eventually update the manual to the new LTR 3.4 in 2019, but it probably won't happen until mid to late spring.

We've recently updated several of our datasets:


  • NYC Mass Transit Spatial Layers: Janine created updated files for the buses last semester; since there were no changes to the subway and train files we let those go.
  • NYC Geodatabase: I created version jan2018 with updates to the census American Community Survey data tables for PUMAs, ZCTAs, and census tracts. The new tables are from the 2012-2016 ACS.


The GIS Lab is now open for business for the spring semester. I'm still away on leave until the end of August, but Janine continues to captain the ship and is in on Thursdays and Fridays. GIS Lab hours for the spring are posted.

So this summer we're taking our show on the road! The Free and Open Source for Geospatial (FOSS4G) conference is "the" international conference for all things related to geospatial technology and open source software. FOSS4G 2017 is in Boston August 14-18 and the Baruch GIS team will be there. We'll be running our full-day introductory GIS Practicum workshop (re-dubbed "Introduction to GIS Using QGIS" for the conference) at the Harvard Center for Geographic Analysis in Cambridge on Tuesday Aug 15th. There are a slew of great workshops being offered that Monday and Tuesday, covering all technologies and user levels. The main conference runs from Wednesday to Friday.

In preparation for the conference and the upcoming academic year, I will be updating the GIS Practicum manual pretty soon. While QGIS 2.18 Las Palmas is currently the latest release, it is scheduled to become the new Long Term Release once version 3.0 comes out later this year. I'm going to make the switch from 2.14 to 2.18 in the next workbook, since this change is on the horizon.

We've just released the latest (our 10th version!) of the NYC Geodatabase, our foundational resource for mapping and analyzing NYC city-level features and data in GIS. We're continuing to offer two formats with identical content - a Spatialite version for QGIS and Spatialite users, and an MS Access personal geodatabase for ArcGIS folks.

There are a number of noteworthy updates in this new version (July 2017):

  • All of the facility point features (colleges, hospitals, libraries, private and public schools) have been updated with new data from May 2017, replacing the data from 2015. The City Dept of Planning has upgraded and reconfigured their Facilities database (FacDB) so there are differences in how the attribute tables are structured.

  • New ZIP Code Business Patterns (ZBP) data has been added for 2015, replacing the data from 2014. As before, we've aggregated the ZIP Code data to the ZCTA level, but this time we've used an updated version of the ZIP to ZCTA crosswalk. This crosswalk contains updates and a number of error corrections in ZIP assignments. Most of the fixes are minor (in NYC there were 19 reassignments; the most significant ones were the reassignment of ZIPs 11249 and 10118 to different ZCTAs), but for the sake of consistency I've gone back and updated all of our old ZBP data (2010 to 2014) and published these as text files in an addendum in the NYC Geodatabase Archive, in case anyone needs to go back in time. The updated crosswalk is stored in the database as the b_zips_to_zcta table.

  • We have new NYC subway ridership data for 2016 for the subway_complexes table, along with an updated notes table with information on station closures. The W train (relaunched in 2016) has been added to the list of attributes, but the new 2nd Ave subway stations (and the rerouting of the Q train) have not. These stations opened on Jan 1, 2017, so we have no ridership data for 2016. These stations are included in the subway_stations table, which we have not updated since January as there were no salient changes,

  • Lastly, we have 2016 ridership data for the PATH train stations in NYC, in the path_stations file.

Related to this work, I've created / updated a couple of resources outside of the NYC Geodatabase:

  • I often get requests for ridership data from folks who are not database or GIS users, so I've provided it in a spreadsheet format. The first workbook is for the NYC Subway and contains both the ridership data from the geodatabase and the service notes. The second workbook is for the PATH Train; unlike the geodatabase it contains ridership for ALL of the stations (not just the ones in NYC). Both workbooks contain a metadata sheet that covers the sources and content. Both spreadsheets are available on the NYC Mass Transit Spatial Layers page.

  • Under the NYC Geographies resources I've updated the NYC ZIP to ZCTA crosswalk spreadsheet. It contains a metadata worksheet that explains how the crosswalk was generated (using a national crosswalk file from Nov 2015 created by the UDS Mapper and distributed by the MCDC, and the MCDC's 2014geocorr engine for relating ZCTAs to counties). So if you have ZIP Code-level data that you want to aggregate by ZCTA (so you can map the data by ZCTA or associate it with ZCTA-level census data) you can use this spreadsheet or the b_zips_to_zcta table in the geodatabase.

Janine has cranked out a new version of our recently released IRS Migration Database, which contains state to state and county to county flows that represent where tax filers have moved from year to year. Here are the salient changes:

  1.  We have added the two latest years of data: 2013-14 and 2014-15.

  2. Beginning with 2013-14 the IRS added a new category to the state migration files to count internal state migrants. In the past, any filer who remained in the state was counted as a non-migrant, but now non-migrants are counted as filers whose address did not change. If they moved within the same state they are counted in a new, separate category as internal migrants. Since the non-migrants and internal migrant categories are mutually exclusive, both are stored in the regular inflow and outflow tables. The county migration tables do not have a comparable category: any person who remained in the same county was counted as a non-migrant, even if their address within the county changed.

  3. Beginning with 2013-14 the IRS increased the thresholds for disclosure in reporting migration flows. Individual state to state flows were suppressed if there were less than 10 migrant filers (previously the threshold was 3). Individual county to county flows were suppressed if there were less than 20 migrant filers (previously the threshold was 10).

  4. For this iteration of our database, we modified the county tables by moving records for Other Flows by US region (Northeast, Midwest, South, and West) from the regular inflow and outflow tables to the totals tables from 1995-1996 forward. These categories represent subdivisions of the Other Flows - Different State category. For these filers, their specific county of origin or destination is not tabulated because the total number of migrants was too small and fell under the disclosure thresholds. So they were aggregated into categories for Other Flows - Same State and Other Flows - Different State. For the latter, subcategories were provided that indicated the number of migrants from the other states by region; since these values are not mutually exclusive (they represent portions of Other Flows - Different State) they were moved out of the inflow and outflow tables and into the totals tables to avoid double counting. The state tables were unaffected, as their flows are not categorized in this manner.

  5. The way the Other Flows - Different State category was tabulated for counties prior to 1995-1996 was quite different; in these years, the categories represent different levels of specificity that were allowed by the disclosure rules. If the number of migrants could be reliably reported by region, then other flows categories for regions were reported. If this was not possible, then the region data was collapsed into one Other Flows - Different State category. For these earlier years these categories were mutually exclusive, so this data remains in the regular inflow and outflow tables.

We're happy to announce the release of two new datasets!

The IRS Migration Database is a SQLite / Spatialite database that has annual county to county and state to state migration data from 1990 to 2013 (for counties) and 1988 to 2013 (for states). Janine has spent over a year cleaning, collating, and organizing this data into one cohesive dataset. This data is generated by the IRS Statistics of Income Division by calculating the number of tax filers who have changed their address between tax years; if the address changed that means the filer moved. Records are summarized by county and state and show the number of filers, exemptions, and aggregate gross income. While the datasets cannot represent complete migration (not everyone files taxes) its time span and detail in showing point to point flows makes it a valuable resource for studying internal migration trends within the United States.

You can access the database using any number of free tools, like the SQLite Manager plugin for Firefox. Although the tables do not have spatial geometry, GIS users can view them and add them to projects in QGIS or ArcGIS as the database is saved in the Spatialite format. As the data represents many to many relationships, GIS users will need to write some queries to pivot the data to make it mappable; for example you can visualize all the inflow or outflow to one particular county or state, or to a group of places. Janine has included some sample views in the database to help get you started.

On the other side of the globe, we have recently acquired boundaries for City Municipal Wards for India with 2011 census data for twelve cities. This data is produced by ML Infomap and was procured by the CUNY Institute for Demographic Research. Thanks to them, we are able to provide this data by request to members of the Baruch community and to CIDR affiliates (since it's a proprietary and licensed product, we can't provide public access to it - sorry).

As we approach the summer we'll have additional updates to share, including an additional year of NYC real estate data and updates to the NYC Geodatabase that will include: new ZIP Code Business Pattern data, updated features for NYC facilities, and a new year of subway ridership data. We're also hoping to add the two latest years of data (2013-14 and 2014-15) to the IRS database. Stay tuned for details.


We've just released the latest iteration of our NYC Mass Transit Spatial Layers series (Jan 2017), which contain a number of important updates.

  1. We've completely re-organized the files for MTA bus stops and routes. Instead of having separate borough files for routes and stops (including the confusing mixture of bus company and local Queens bus routes), we have aggregated all of the local buses into one city-wide file, and have separated the express bus services into their own dedicated file.

  2. The new MTA subway stops file includes the three new stations on the 2nd Ave subway. There's also a new station on the SIR that replaces two older stations that have been demolished. The new routes file includes the W train and the extension of the Q train up 2nd Ave. In some cases we inserted the new routes data ourselves, as the MTA static feeds that were released in January still lacked this information. The train attribute of the stops file has been updated to indicate which trains stop there. There have been no updates to the subway entrances file, so we're keeping the previous one from spring 2016.

  3. We've added stops and routes files for the PATH train (Port Authority Trans-Hudson) which is the rapid transit system that connects Newark, Jersey City, and Hoboken to Manhattan. The files are a subset and derivative of data produced by the NJ GIS Office, which in turn were derived from GTFS schedule data from NJ Transit. We pulled out just the PATH train and have re-projected it to NY State Plane Long Island so that it fits seamlessly with the MTA mass transit layers in the series.

As usual we've moved our previous series (May 2016) into the NYC Mass Transit Spatial Layers Archive. Over the summer we hope to harmonize the subway ridership data that we include in the NYC Geodatabase with these layers.



Here are the latest updates in the new version (Jan 2017):

  • All of the American Community Survey data tables for PUMAs, ZCTAs, and census tracts have been updated with new data from the 5-year 2011-2015 ACS (the previous version of the database had tables from 2010-2014). The Census Bureau has re-coded all of their variables for asked rent, so that the bottom and top values have increased to reflect an increase in prices. The new variables do a better job at representing the distribution / spread of rent values.

  • We updated the subway stations layer from the latest MTA data feeds. The new stations layer includes: the three new stations on the 2nd Ave subway line, the new station on the Staten Island Railway (and the removal of two stations that the new one replaced), and updated train attributes to account for the re-routing of the Q train and the re-introduction of the W train. The related subway complexes layer was not updated, as new ridership data isn't available for these stations yet (the complexes layer represents the state of subway service and ridership for 2015). That update will come this summer.

All metadata and documentation is up to date. If you still need data from the previous version (Aug 2015) it's been moved to the NYC Geodatabase Archive section.

Registration is now open for the spring semester’s GIS (geographic information systems) Practicum, Introduction to GIS Using Open Source Software (featuring QGIS). There will only be one session this term, held in the GIS Lab at Baruch College:

  • Friday Mar 10th

The day-long workshop runs from 9am to 4:30pm. Current CUNY graduate students, faculty, and staff, and full-time Baruch undergrads are eligible to register. Advance registration is required; the fee is $30 and includes a detailed tutorial manual and a light breakfast. Participants must bring their own laptop with QGIS pre-installed in order to take the class. Visit the GIS Practicum page to learn more and to register: