It takes the NY State Department of Labor a long time to produce data on the Unemployment Rate. It usually is not released until the middle of the month proceeding month, so the data for September, was not released until around October 20th. The NYS DOL breaks unemployment data down by county, which is relatively easy to merge with Census TIGER Shapefiles, and produce some nice maps. Which is what I did.
Here is the NY State Unemployment Rate by County.
Notice how Rural Western NY has some of the lowest unemployment in the state, though the rate in Saratoga County, along with NY City suburbs of Putnam, Rockland, and Westchester Counties shows the economy is relatively strong in that portion of state too.
Unemployment tends to peak in the Southern Tier and also in the counties impacted by Hurricane Irene that month, e.g. those of the Catskills and the Central-Leatherstocking Region of state.
Here is the Change in NY State Unemployment Rate from September 2010 to 2011.
Notice how Western NY is creating jobs while the economy is stagnant or losing jobs in the regions impacted by Hurricane Irene. Those Hurricane-related job losses may be temporary, and not reflected in the October numbers, but they do suggest that there is a lot of growth occurring in Western NY, not occurring in the Eastern portion of state.
Also, note the weak economy in the Tug Hill Plateau region between 2010 and 2011. Unemployment has increased in Jefferson and Lewis County during that time period, while remaining stagnant in Oneida County. Definitely not good news in that rural part of state.
I probably will do a new series of maps come the release of the October numbers later in the month.
While manufacturing jobs generally pay better then the median income in most regions of state, some locations, especially those with high-tech manufacturing, have jobs that pay much better then other counties.
Geographic Information Services (GIS) – Maps – Cartography
I am an amateur cartographer who designs maps and does a wide variety geospatial analysis using free and open-source geographic information software (GIS) and public sources of data to design quality maps, graphs, charts and datasets. I am looking for new and interesting projects to improve my skills, make connections and expand my portfolio.
Are you looking for my personal blog with it’s hiking, camping and outdoor recreation maps, along with a variety of charts, photos, and stories? Please visit andyarthur.org.
Mapping Avaliable
Tax/Property Mapping
High Resolution Aerial Photography
Recreational Maps – Hunting, Camping, Hiking
Georeference addresses using State Address Mapping service, plot them on a map
Wetlands, Topographic Contours, Land Cover
Compare historical aerial photos or maps to current photography
Web mapping using leaflet (HTML/Javascript file to embed on a website or use at home)
For most projects, there is no fee. I am looking for experience, references, mentors and connections in the geospatial community.
If you have a large project, let’s talk about it. I might be willing to do it for free, if it’s something really interesting or important like fighting suburban sprawl and pollution. I don’t a business or taxes set up, so I can’t really charge at this point.
How to get started?
Please send me an email describing the mapping or data project in as much detail as possible.
US Census – 2019 American Community Survey, 2020 US Census
NYS Tax and Assessment Rolls (2020)
NYSDOT Traffic Counts and Road Data
Historical Aerial Photography (primarily 1952, but earlier and later exist)
ArcGIS REST/Services and WMS Services from state and local agencies
LiDAR Elevation Profiles
USGS Topographic Maps, historic and modern – with overlays if requested
Data Repositories like CUGIR, DataNY.gov and NYSGIS
Recreation data from NYSDEC
Software Used
Quantum GIS (QGIS) including 3D Mapping
Geodata Abstraction Library (GDAL, ogr2ogr)
Python, including the data-science libraries PANDAS and GeoPANDAS
LeafletJS Web Mapping Services
Geographies Avaliable
Primary Capital Region and also much of New York State, also some for Pennsylvania, Vermont, West Virginia
State, county, municipal, school districts – Most data sets
Parks, highways, buffer (distance to) – Most data sets
Election districts – Roughly 75% of NYS counties
Census Tract or Blockgroup – 2019 American Community Survey
Tabulation Block – 2020 US Census
Are printed maps avaliable at this time?
Not currently. I can send you a file based on your specifications to print at your local print shop.
How long do mapping projects take?
Depends on complexity of the project. Many projects only take minutes, however if a project requires georeferencing, data cleaning, or custom shapes or layouts, it might take significantly longer. More revisions lead to better quality output.
Do you make maps professionally?
No! This is just a hobby. But I’m interested in expanding my skills. I do a lot of mapping for my blog and in support of community organizations like Save the Pine Bush.
Are my maps of good quality?
Thats for you to decide. I don’t have formal education in map making, and I don’t have professional tools. But do take a look at the work I’ve done below.
Examples of Maps
This shows a 3D rendering of the Buckville Canal north of Hamilton
This map shows the use of 2020 PL 94-171 data to calculate population density in City of Albany.
This 1985 aerial photo shows Crossgates Mall prior to it’s expansion.
This GIF image shows the change in unemployment during Coronavirus panademic.
This image shows hiking trails near Brooktrout, Falls Pond and Deep Lake.
Peebles Island, a Comparison 1952
3D Interactive of campsites at Moose River Plains.
import pandas as pd
import geopandas as gpd
# path to overlay shapefile
overlayshp = r'/tmp/dis_to_albany.gpkg'
# summary level -- 750 is tabulation block, 150 is blockgroup
# large areas over about 50 miles much faster to use bg
summaryLevel = 150
#summaryLevel = 750
# path to block or blockgroup file
if summaryLevel == 150:
blockshp = r'/home/andy/Documents/GIS.Data/census.tiger/36_New_York/tl_2020_36_bg20.shp.gpkg'
else:
blockshp = r'/home/andy/Documents/GIS.Data/census.tiger/36_New_York/tl_2020_36_tabblock20.shp.gpkg'
# path to PL 94-171 redistricting geoheader file
pl94171File = '/home/andy/Desktop/nygeo2020.pl'
# field to categorize on (such as Ward -- required!)
catField = 'Name'
# geo header contains 2020 census population in column 90
# per PL 94-171 documentation, low memory chunking disabled
# as it causes issues with the geoid column being mixed types
df=pd.read_csv(pl94171File,delimiter='|',header=None, low_memory=False )
# column 2 is summary level
population=df[(df.iloc[:,2] == summaryLevel)][[9,90]]
# load overlay
overlay = gpd.read_file(overlayshp).to_crs(epsg='3857')
# shapefile of nys 2020 blocks, IMPORTANT (!) mask by output file for speed
blocks = gpd.read_file(blockshp,mask=overlay).to_crs(epsg='3857')
# geoid for linking to shapefile is column 9
joinedBlocks=blocks.set_index('GEOID20').join(population.set_index(9))
# store the size of unbroken blocks
# in case overlay lines break blocks into two
joinedBlocks['area']=joinedBlocks.area
# run union
unionBlocks=gpd.overlay(overlay, joinedBlocks, how='union')
# drop blocks outside of overlay
unionBlocks=unionBlocks.dropna(subset=[catField])
# create population projection when a block crosses
# an overlay line -- avoid double counting -- this isn't perfect
# as we loose a 0.15 percent due to floating point errors
unionBlocks['sublock']=unionBlocks[90]*(unionBlocks.area/unionBlocks['area'])
# sum blocks in category
unionBlocks=pd.DataFrame(unionBlocks.groupby(catField).sum()['sublock'])
# rename columns
unionBlocks=unionBlocks.rename({'sublock': '2020 Census Population'},axis=1)
# calculate cumulative sum as you go out each ring
unionBlocks['millions']=unionBlocks.cumsum(axis=0)['2020 Census Population']/1000000
# each ring is 50 miles
unionBlocks['miles']=unionBlocks.index*50
# output
unionBlocks
Land use in town of Berne (from 2016 National Land Cover Dataset)
Most highly assessed properties in Albany County …
Good evening. Mostly cloudy on this night with the April Pink Moon overhead, given a soft wispy glow behind the clouds. Mild around 68 degrees around ten o’clock hour. Right now I’m sitting out back enjoying a cold one before I head back in shortly to watch the PBS Newshour and retire to bed.
I am hoping we get some good rain tomorrow so things aren’t so dry. Red flag conditions today but a 70% chance of showers come morning and likely showers by afternoon tomorrow. Up to a quarter inch of rain, which admittedly isn’t much but better than nothing. 75 degrees for the high tomorrow. I may end up changing my camping plans to go to another location if it stays so dry, as I like having a good campfire but not when it’s bone dry and you have to worry about embers kicking up a fire. While residential brush burns are banned camp fires are allowed unless it gets much drier but expect it will green up, especially in the Finger Lakes. Had the Pete Grannis gotten his way, all open burning would have been banned back in 2009.
Tonight we are looking at a low around 56 degrees. That’s more of what is to be expected around June 9th then late April but so be it.
So I got the propane campstove I’ve been researching for a while now. While not a big purchase at about $100, I had been planning on getting a good quality propane stove I could run off the propane tank that I bought for the Big Buddy Heater. I figured I would get the stove once it was warm enough to not need the heater on in the morning as its not going to be useful at the same time. I ended up getting a Camp Chef Everett Stove, their most powerful tabletop stove with a maximum BTU of 20,000 per burner which is twice as hot as a base propane stove. I had studied the reviews and was quite pleased with it when I got it out of the box. I cooked some sausages on it and it sure heated them up fast in water but also ratcheted down well to prevent burning. I do need to get another propane hose so I can use it at the same time as the lantern.
I’m getting excited about my Finger Lakes trip. Tuesday will be hear before you know it. This is the first big trip I’ve taken since West Virginia last fall. The later sunsets combined with nicer weather should lead to one of best trips I’ve taken in a while. I hope to catch many fish, have some fun paddling, do some hiking and seeing some great wildlife at Montezuma.
I will do a fair amount of packing this weekend and will put the kayak on my truck on Sunday. Monday evening is the Young Democrats meeting, so I won’t have a lot of time to pack on Monday evening, and I plan to leave for my trip right from work. I will buy most of my groceries and supplies out in the Finger Lakes.
I continue to take full advantage of my hacked version of the MMQGIS plug-in to export KML maps from QGIS. While QGIS has long had KML export it didn’t have the ability to attach the color ramp to the export. Then I can adjust and set the color ramp in QGIS rather than do it programmatically outside of the program. Tomorrow’s map will pull data from the NYS’ Local Area Unemployment Statistics data. More census data next week. I love the ease I can toy away with color ramps with KML now like I could only previously do with static maps. Mapping and working with data can be best summed up with β It’s fun.
Went down to the park this evening but because I was playing with the stove didn’t get there until fairly late. And with the clouds dusk came early. At least it was mild.
I’m tired and off to bed. Dawn tomorrow is 5:30 am and sunrise at 6 AM. Sleep well and enjoy tomorrow – it’s Earth Day.