help in plotting 3D bathmetry of GEBCO data

Hi all,
I want to plot 3D bathymetry from GEBCO data. I am attaching my code and
plot below, can anyone help me in rectifying my code for proper plot of
bathymetry.

'''

···

________________________
surface (color map)

Demonstrates plotting a 3D surface colored with the coolwarm color map.
The surface is made opaque by using antialiased=False.

Also demonstrates using the LinearLocator and custom formatting for the
z axis tick labels.
'''

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as np
from netCDF4 import Dataset as NetCDFFile

fig = plt.figure()
ax = fig.gca(projection='3d')

nc = NetCDFFile('GEBCO_2014_2D.nc')

X = nc.variables['lon'][:]
Y = nc.variables['lat'][:]
Z = nc.variables['elevation'][:]

X,Y = np.meshgrid(X,Y)

# Plot the surface.
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

# Customize the z axis.
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

# Add a color bar which maps values to colors.
fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

<http://matplotlib.1069221.n5.nabble.com/file/t5155/Figure_1.png>

--
Sent from: http://matplotlib.1069221.n5.nabble.com/matplotlib-devel-f28077.html

Rohit,

Based on your email, I'm not sure what your question is. Without seeing at
least the plot that is generated or an error message, the only thing I can
say is that you probably don't want to generate a grid of lat/long
coordinates. So I would recommend reprojecting your data into a different
(UTM perhaps) coordinate system.

It's also going to be very difficult to troubleshoot whatever problem
you're having without seeing your data. NetCDF files can be quite big. So
for troubleshooting purposes, it'll make more sense to "mock up" (or
hard-code) a very small subset of representative data as numpy arrays,
rather than reading in the full NetCDF file.

-paul

···

On Fri, Apr 27, 2018 at 3:42 AM, rohit0104 <rohit010493 at gmail.com> wrote:

Hi all,
I want to plot 3D bathymetry from GEBCO data. I am attaching my code and
plot below, can anyone help me in rectifying my code for proper plot of
bathymetry.

'''
________________________
surface (color map)

Demonstrates plotting a 3D surface colored with the coolwarm color map.
The surface is made opaque by using antialiased=False.

Also demonstrates using the LinearLocator and custom formatting for the
z axis tick labels.
'''

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as np
from netCDF4 import Dataset as NetCDFFile

fig = plt.figure()
ax = fig.gca(projection='3d')

nc = NetCDFFile('GEBCO_2014_2D.nc')

X = nc.variables['lon'][:]
Y = nc.variables['lat'][:]
Z = nc.variables['elevation'][:]

X,Y = np.meshgrid(X,Y)

# Plot the surface.
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

# Customize the z axis.
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

# Add a color bar which maps values to colors.
fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

<http://matplotlib.1069221.n5.nabble.com/file/t5155/Figure_1.png>

--
Sent from: http://matplotlib.1069221.n5.nabble.com/matplotlib-devel-
f28077.html
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel at python.org
https://mail.python.org/mailman/listinfo/matplotlib-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20180427/14809e2f/attachment.html>

I?ll take a wild guess that the GEBCO data base doesn?t have zlimits between -1 and 1 as a start.

···

Sent from my iPhone

On Apr 27, 2018, at 6:52 AM, Paul Hobson <pmhobson at gmail.com> wrote:

Rohit,

Based on your email, I'm not sure what your question is. Without seeing at least the plot that is generated or an error message, the only thing I can say is that you probably don't want to generate a grid of lat/long coordinates. So I would recommend reprojecting your data into a different (UTM perhaps) coordinate system.

It's also going to be very difficult to troubleshoot whatever problem you're having without seeing your data. NetCDF files can be quite big. So for troubleshooting purposes, it'll make more sense to "mock up" (or hard-code) a very small subset of representative data as numpy arrays, rather than reading in the full NetCDF file.

-paul

On Fri, Apr 27, 2018 at 3:42 AM, rohit0104 <rohit010493 at gmail.com> wrote:
Hi all,
I want to plot 3D bathymetry from GEBCO data. I am attaching my code and
plot below, can anyone help me in rectifying my code for proper plot of
bathymetry.

'''
________________________
surface (color map)

Demonstrates plotting a 3D surface colored with the coolwarm color map.
The surface is made opaque by using antialiased=False.

Also demonstrates using the LinearLocator and custom formatting for the
z axis tick labels.
'''

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as np
from netCDF4 import Dataset as NetCDFFile

fig = plt.figure()
ax = fig.gca(projection='3d')

nc = NetCDFFile('GEBCO_2014_2D.nc')

X = nc.variables['lon'][:]
Y = nc.variables['lat'][:]
Z = nc.variables['elevation'][:]

X,Y = np.meshgrid(X,Y)

# Plot the surface.
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

# Customize the z axis.
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

# Add a color bar which maps values to colors.
fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

<http://matplotlib.1069221.n5.nabble.com/file/t5155/Figure_1.png>

--
Sent from: http://matplotlib.1069221.n5.nabble.com/matplotlib-devel-f28077.html
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel at python.org
https://mail.python.org/mailman/listinfo/matplotlib-devel

_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel at python.org
https://mail.python.org/mailman/listinfo/matplotlib-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20180427/39b2454c/attachment.html>