New York State Population Density
A 3D Map I was inspired to create where mountains represent densely populated parts of the state where there are many people residing per square mile.
Why ads? π€ / Privacy Policy π³
A 3D Map I was inspired to create where mountains represent densely populated parts of the state where there are many people residing per square mile.
I've added a new feature to my blog mapping software that allows me to link a CSV to an ArcMap Feature server such as the Census Bureau. This will be very helpful when full-count Census Bureau is available and I want to make maps of block-level population data or other things that would benefit from the speed of only loading the features currently on the screen.
Map Key: Purple, 100 pop/sq mi, Blue 200 pop/sq mi, Green 300 pop/sq mi, Yellow 400 pop/sq mi, Orange 500 pop/sq mi, Red 600 pop/sq mi.
This map shows the population density of every census tract in New York. Due to limit color choices, you can see that most of the state is very blue and unpopulated compared to some census tracts in New York City. For example, Census Tract 9702, Delaware County, New York (Meridith) has 24 residents per sq mile while Census Tract 138, New York County, New York (Upper East Side) has 187,211 residents per sq mile.
This shows the population density of all census tracts in New York State where the population density is less then 500 persons per square mile.
Data Source: US Census Bureau, 2010 Census.
Iowa is a state that is 19 percent larger then New York State in landmass, but has a population that is less than 3.2 million. Much of the state is quite rural with many townships having a population of fewer then 20 people per square mile. Click to explore individual townships population.
Data Source: 2018 Census Population Estimates, 2018 TIGER/Line Data.
The original 16 counties in New York State and their population density. Manhattan (New York County) in 1790 had a population density similar to the Town of Colonie today, while Albany County was closer to the Town of Caroga in Fulton County or Town of Smithville in Chenango County. Dotted overlay shows current county boundaries.
Data and maps from National Historical Geographic Information System / IPMUS
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.
Example maps can found below.
Example data can found below.
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.
Please send me an email describing the mapping or data project in as much detail as possible.
My email is andy@andyarthur.org
Not currently. I can send you a file based on your specifications to print at your local print shop.
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.
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.
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.
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.
Sample tax map in Albany.
Election results – 2020 Presidential Election, Onondoga County.
Map showing where sparklers are legally sold in New York.
Downtown Plattsburgh 1866 Beers (1866 Beers vs. 2020 OSM)
3D Rendering of Canandaigua Lake
Map showing Buffalo Mayoral Primary results and campaign donors.
Overlay of Proposed Retail Core in 1963 Plan for the Capital City.
Map showing Local Area Unemployment Statistics – April 2020.
Interactive tax map in Delmar
State Land in Stockholm, NY – Buckton State Forest.
Empire State Plaza take area, 1952
3D Rendering of the 1898 Watkins Glen Topographic Map
Properties in Albany Pine Bush Study Area,Excel Files: Various Tax Rolls,Find coordinates and political districts,Look Up State Tax Records and aScript for Processing RPTL 1520 PDFs.
Querying state property database, political enrollments, PL 94-171 Census files, calculating population statistics, what address is a district in, converting old districts to new districts.
Miles from Albany | millions population |
50 | 1.002 |
100 | 1.750 |
150 | 3.511 |
200 | 17.102 |
250 | 17.725 |
300 | 18.699 |
350 | 19.411 |
400 | 20.187 |
450 | 20.201 |
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
Most highly assessed properties in Albany County …
from arcgis.features import FeatureLayer lyr_url = 'https://gisservices.its.ny.gov/arcgis/rest/services/NYS_Tax_Parcel_Centroid_Points/MapServer/0' layer = FeatureLayer(lyr_url) query_result1 = layer.query(where="COUNTY_NAME='Albany' AND FULL_MARKET_VAL > 100000000", out_fields='PARCEL_ADDR,CITYTOWN_NAME,FULL_MARKET_VAL,OWNER_TYPE', out_sr='4326') df=query_result1.sdf.sort_values(by='FULL_MARKET_VAL', ascending=False) df['Full Market Value'] = df['FULL_MARKET_VAL'].map('${:,.0f}'.format) df
OBJECTID | PARCEL_ADDR | CITYTOWN_NAME | FULL_MARKET_VAL | OWNER_TYPE | SHAPE | Full Market Value | |
---|---|---|---|---|---|---|---|
11 | 26652 | 64 Eagle St | Albany | 1204254925 | 2 | {βxβ: -73.75980312511581, βyβ: 42.650469918250β¦ | $1,204,254,925 |
3 | 9150 | 1200 Washington Ave | Albany | 886298715 | 2 | {βxβ: -73.81092293494828, βyβ: 42.679257168282β¦ | $886,298,715 |
4 | 10208 | 1400 Washington Ave | Albany | 642398287 | 2 | {βxβ: -73.82369286130952, βyβ: 42.685845700657β¦ | $642,398,287 |
0 | 885 | 251 Fuller Rd | Albany | 440042827 | 2 | {βxβ: -73.83559002316825, βyβ: 42.690208093507β¦ | $440,042,827 |
5 | 18164 | 632 New Scotland Ave | Albany | 377568201 | 8 | {βxβ: -73.80381341626146, βyβ: 42.655758957669β¦ | $377,568,201 |
1 | 906 | 141 Fuller Rd | Albany | 321199143 | 2 | {βxβ: -73.83323986150171, βyβ: 42.693189748928β¦ | $321,199,143 |
19 | 108087 | See Card 1067 | Watervliet | 280898876 | 1 | {βxβ: -73.70670724174552, βyβ: 42.719628647232β¦ | $280,898,876 |
15 | 65380 | 737 Alb Shaker Rd | Colonie | 263916100 | 3 | {βxβ: -73.80365248218001, βyβ: 42.747956678125β¦ | $263,916,100 |
9 | 21923 | 304 Madison Ave | Albany | 234265418 | 2 | {βxβ: -73.76227373289564, βyβ: 42.648000674457β¦ | $234,265,418 |
2 | 907 | 201 Fuller Rd | Albany | 203426124 | 2 | {βxβ: -73.83362605353057, βyβ: 42.692609131686β¦ | $203,426,124 |
16 | 69999 | 515 Loudon Rd | Colonie | 166065600 | 8 | {βxβ: -73.74958475282632, βyβ: 42.719321807666β¦ | $166,065,600 |
7 | 20592 | 47 New Scotland Ave | Albany | 162276338 | 8 | {βxβ: -73.77597163421673, βyβ: 42.653565689693β¦ | $162,276,338 |
6 | 20574 | 132 S Lake Ave | Albany | 146296360 | 2 | {βxβ: -73.77970918544908, βyβ: 42.654390366929β¦ | $146,296,360 |
8 | 20597 | 113 Holland Ave | Albany | 143498501 | 2 | {βxβ: -73.77306688593143, βyβ: 42.650762742870β¦ | $143,498,501 |
17 | 78203 | Mannsville | Colonie | 142570400 | 1 | {βxβ: -73.71245452369443, βyβ: 42.718124477080β¦ | $142,570,400 |
18 | 95509 | 1 Crossgates Mall Rd | Guilderland | 130554700 | 8 | {βxβ: -73.84702700595471, βyβ: 42.687699053797β¦ | $130,554,700 |
10 | 24521 | 86 S Swan St | Albany | 128436403 | 2 | {βxβ: -73.75980563770365, βyβ: 42.653931892804β¦ | $128,436,403 |
13 | 46883 | 1916 US 9W | Coeymans | 110000000 | 8 | {βxβ: -73.83388475575597, βyβ: 42.488730743021β¦ | $110,000,000 |
12 | 35152 | 380 River Rd | Bethlehem | 105263158 | 8 | {βxβ: -73.76445503554325, βyβ: 42.595925419330β¦ | $105,263,158 |
14 | 65097 | 15 Wolf Rd | Colonie | 101967213 | 8 | {βxβ: -73.81423716588279, βyβ: 42.709939498581β¦ | $101,967,213 |