[Matplotlib-devel] help in plotting 3D bathmetry of GEBCO data

Paul Hobson pmhobson at gmail.com
Fri Apr 27 09:52:11 EDT 2018


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>


More information about the Matplotlib-devel mailing list