I'd like to convert a latitude longitude pair to NAD 83. I've read NAD 83 is equivalent to epsg:4269 and the shapefile I am working with is a US Census TIGER shapefile, all of which are supposed to be in NAD 83 and geopandas reports my GeoDataFrame as being in epsg 4269. All of this makes sense. The issue I'm running into occurs when I want to plot a point described as a lat/long pair onto the shapefile. My understanding is that, in order to do this, I need to transform the point using the relevant map projection (NAD 83/epsg:4269), however, when I try to do this using pyproj, the point returned is way off:
import geopandas as gp
import matplotlib.pyplot as plt
from shapely.geometry import Point
import pyproj
gdf = gp.read_file('./state_shapefiles/WI/tl_2016_55_bg.shp')
projection = pyproj.Proj(init='epsg:4269')
lat = 43.087806
lon = -89.430121
# this returns tuple(-1.5608500619069237, 0.7520240821605678) which is
# nowhere near the point I am trying to indicate on my map (Madison
proj_coords = projection(lon, lat)
point = Point(proj_coords[1], proj_coords[0]).buffer(1.0)
layer = gp.GeoDataFrame({'geometry': [point]})
layer_plot = layer.plot(color='red')
gdf.plot(ax=layer_plot)
plt.show()
print('end')
Am I misinterpreting something or have implemented this wrong?
Edit: Fixed latitude and longitude mix up, issue persists.