AJMR-Python-Baird/NTC_DFM/Bathy_Conversion_AJMR.py

254 lines
8.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
"""
Created on Wed Sep 16 12:25:31 2020
@author: aforsythe
Copied from "\\srv-ott3\Projects\11934.201 Newtown Creek TPP Privileged and Confidential\06_Models\02_EFDC\01_Bathy\Bathy_Conversion.py"
_AJMR
"""
import pandas as pd
import cartopy.crs as ccrs
import contextily as ctx
import matplotlib.pyplot as plt
# Assign path
dataPath = '//srv-ott3/Projects/11934.201 Newtown Creek TPP Privileged and Confidential/06_Models/02_EFDC/01_Bathy/'
mapbox = 'https://api.mapbox.com/styles/v1/alexander0042/ckemxgtk51fgp19nybfmdcb1e/tiles/256/{z}/{x}/{y}@2x?access_token=pk.eyJ1IjoiYWxleGFuZGVyMDA0MiIsImEiOiJjazVmdG4zbncwMHY4M2VrcThwZGUzZDFhIn0.w6oDHoo1eCeRlSBpwzwVtw'
#%% Read in Source 1
S1 = pd.read_csv(dataPath + '2012_March_LiDAR_XYZ_V2.csv')
# Process Source 1
S1 = S1.rename(columns={'ELEV':'Z_FT'})
#delete all rows where elevation is above 0 from S1
PlusZero = S1[S1['Z_FT'] >= 0].index
S1 = S1.drop(PlusZero)
S1['Z_FT'] *=-1
#%% Plot Source 1
# Create plot
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
#axes.set_xlim(297579, 309365)
#axes.set_ylim(58211, 67565)
axes.set_xlim(305900, 306400)
axes.set_ylim(61500, 62200)
pltDat = axes.scatter(pd.to_numeric(S1.X)*0.3048, pd.to_numeric(S1.Y)*0.3048,
c=pd.to_numeric(S1.Z_FT)*0.3048, vmin=0, vmax=10, marker='.', s=40)
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('2012_March_LiDAR_XYZ_V2')
plt.show()
#%% Read in source 2, drop columns and rename
S2 = pd.read_csv(dataPath + 'H11353_2m_NAD83SP_NY_LongIsland3104_USFT_depth.csv')
S2 = S2.drop(['FID'], axis=1)
S2 = S2.rename(columns={'X_SP':'X','Y_SP':'Y'})
#%% Plot Source 2
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
axes.set_xlim(297579, 309365)
axes.set_ylim(58211, 67565)
pltDat = axes.scatter(pd.to_numeric(S2.X)*0.3048, pd.to_numeric(S2.Y)*0.3048,
c=pd.to_numeric(S2.Z_FT)*0.3048, vmin=0, vmax=40)
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('H11353_2m_NAD83SP_NY_LongIsland3104_USFT_depth')
plt.show()
#%% read in source 3 and rename
col_names = ["X","Y","Z_FT"]
S3 = pd.read_csv(dataPath + 'NC_2012_MBES_NAVD88_P2_average_2ft.csv', sep=' ',names=col_names)
#%% Plot Source 3
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
#axes.set_xlim(297579, 309365)
#axes.set_ylim(58211, 67565)
axes.set_xlim(305900, 306500)
axes.set_ylim(61500, 62200)
pltDat = axes.scatter(pd.to_numeric(S3.X)*0.3048, pd.to_numeric(S3.Y)*0.3048,
c=pd.to_numeric(S3.Z_FT)*0.3048, vmin=0, vmax=10, marker='.', s=40)
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('NC_2012_MBES_NAVD88_P2_average_2ft')
plt.show()
#%% read in source 4, drop columns and rename
S4 = pd.read_csv(dataPath + 'Harbour_Sounding_point_NAD83SP_NY_LongIsland3104_USFT.csv')
S4 = S4.drop(['FID'], axis=1)
S4 = S4.drop(['Zm'], axis=1)
S4 = S4.rename(columns={'Zft':'Z_FT'})
#%% Plot Source 4
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
axes.set_xlim(297579, 309365)
axes.set_ylim(58211, 67565)
pltDat = axes.scatter(pd.to_numeric(S4.X)*0.3048, pd.to_numeric(S4.Y)*0.3048,
c=pd.to_numeric(S4.Z_FT)*0.3048, vmin=0, vmax=40, marker='.', s=20)
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('Harbour_Sounding_point_NAD83SP_NY_LongIsland3104_USFT')
plt.show()
#%% read in source 5, drop columns and rename
S5 = pd.read_csv(dataPath + 'Harbour_Sounding_point_EastRiver.csv')
S5 = S5.drop(['FID'], axis=1)
S5 = S5.drop(['Zm'], axis=1)
S5 = S5.rename(columns={'Z_ft':'Z_FT'})
#%% Plot Source 5
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
axes.set_xlim(297579, 309365)
axes.set_ylim(58211, 67565)
pltDat = axes.scatter(pd.to_numeric(S5.X)*0.3048, pd.to_numeric(S5.Y)*0.3048,
c=pd.to_numeric(S5.Z_FT)*0.3048, vmin=0, vmax=40, marker='.', s=20)
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('Harbour_Sounding_point_EastRiver')
plt.show()
#%% Merged basin plot
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
#axes.set_xlim(297579, 309365)
#axes.set_ylim(58211, 67565)
axes.set_xlim(305900, 306600)
axes.set_ylim(61500, 62200)
pltDat = axes.scatter(pd.to_numeric(S3.X)*0.3048, pd.to_numeric(S3.Y)*0.3048,
c=pd.to_numeric(S3.Z_FT)*0.3048, vmin=0, vmax=10, marker='.', s=40)
pltDat2 = axes.scatter(pd.to_numeric(S1.X)*0.3048, pd.to_numeric(S1.Y)*0.3048,
c=pd.to_numeric(S1.Z_FT)*0.3048, vmin=0, vmax=10, marker='o', s=100, edgecolors='k')
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('Merged Basin Plot: S3 base, S1')
plt.show()
#%% Merged Creek Mouth
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
axes.set_xlim(302206, 304408)
axes.set_ylim(62354, 64085)
pltDat = axes.scatter(pd.to_numeric(S2.X)*0.3048, pd.to_numeric(S2.Y)*0.3048,
c=pd.to_numeric(S2.Z_FT)*0.3048, vmin=0, vmax=40, marker='.', s=40)
pltDat2 = axes.scatter(pd.to_numeric(S4.X)*0.3048, pd.to_numeric(S4.Y)*0.3048,
c=pd.to_numeric(S4.Z_FT)*0.3048, vmin=0, vmax=40, marker='o', s=100, edgecolors='k')
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('Merged NTC Mouth Plot: S2 base, S4')
plt.show()
#%% Merged South End
fig, axes = plt.subplots(nrows=1, ncols=1,subplot_kw={'projection': ccrs.epsg(32118)}, figsize=(12, 12))
axes.set_xlim(301319, 303261)
axes.set_ylim(59067, 60555)
pltDat = axes.scatter(pd.to_numeric(S2.X)*0.3048, pd.to_numeric(S2.Y)*0.3048,
c=pd.to_numeric(S2.Z_FT)*0.3048, vmin=0, vmax=40, marker='.', s=40)
pltDat2 = axes.scatter(pd.to_numeric(S5.X)*0.3048, pd.to_numeric(S5.Y)*0.3048,
c=pd.to_numeric(S5.Z_FT)*0.3048, vmin=0, vmax=40, marker='o', s=100, edgecolors='k')
ctx.add_basemap(axes, source=mapbox, crs='EPSG:32118')
cbar = fig.colorbar(pltDat, ax=axes, shrink=0.95)
cbar.set_label('Elevation [mNAVD88]')
axes.set_title('Merged East River Plot: S2 base, S5')
plt.show()
#%% Export
# Priority Order:
# S3: NC_2012_MBES_NAVD88_P2_average_2ft
# Complete set for creek
Out3 = S3
Out3.iloc[:,0] = Out3.iloc[:,0]*0.3048
Out3.iloc[:,1] = Out3.iloc[:,1]*0.3048
Out3.iloc[:,2] = Out3.iloc[:,2]*0.3048
Out3.to_csv('C:/Users/arey/files/Projects/Newtown/ModelBathy/S3_NC_2012_MBES_NAVD88_P2_average_2ft.xyz',sep=' ',header=False,index=False)
# S1: 2012_March_LiDAR_XYZ_V2
# Scattered points covering additional creek areas
Out1 = S1
Out1.iloc[:,0] = Out1.iloc[:,0]*0.3048
Out1.iloc[:,1] = Out1.iloc[:,1]*0.3048
Out1.iloc[:,2] = Out1.iloc[:,2]*0.3048
Out1.to_csv('C:/Users/arey/files/Projects/Newtown/ModelBathy/S1_2012_March_LiDAR_XYZ_V2.xyz',sep=' ',header=False,index=False)
# S2: H11353_2m_NAD83SP_NY_LongIsland3104_USFT_depth
# Complete East River Set
Out2 = S2
Out2.iloc[:,0] = Out2.iloc[:,0]*0.3048
Out2.iloc[:,1] = Out2.iloc[:,1]*0.3048
Out2.iloc[:,2] = Out2.iloc[:,2]*0.3048
Out2.to_csv('C:/Users/arey/files/Projects/Newtown/ModelBathy/S2_H11353_2m_NAD83SP_NY_LongIsland3104_USFT_depth.xyz',sep=' ',header=False,index=False)
# S4: Harbour_Sounding_point_NAD83SP_NY_LongIsland3104_USFT
# Sounding Points at mouth of river
Out4 = S4
Out4.iloc[:,0] = Out4.iloc[:,0]*0.3048
Out4.iloc[:,1] = Out4.iloc[:,1]*0.3048
Out4.iloc[:,2] = Out4.iloc[:,2]*0.3048
Out4.to_csv('C:/Users/arey/files/Projects/Newtown/ModelBathy/S4_Harbour_Sounding_point_NAD83SP_NY_LongIsland3104_USFT.xyz',sep=' ',header=False,index=False)
# S5: Harbour_Sounding_point_NAD83SP_NY_LongIsland3104_USFT
# Sounding Points in East River
Out5 = S5
Out5.iloc[:,0] = Out5.iloc[:,0]*0.3048
Out5.iloc[:,1] = Out5.iloc[:,1]*0.3048
Out5.iloc[:,2] = Out5.iloc[:,2]*0.3048
Out5.to_csv('C:/Users/arey/files/Projects/Newtown/ModelBathy/S5_Harbour_Sounding_point_EastRiver.xyz',sep=' ',header=False,index=False)