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

Jody Klymak jklymak at uvic.ca
Fri Apr 27 10:02:25 EDT 2018


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>


More information about the Matplotlib-devel mailing list