cs.collections error - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: cs.collections error (/thread-36860.html) |
cs.collections error - DaveG - Apr-06-2022 Hi I have this error from the python 2.7 code below. Can someone help please? Much appreciated.
################################################## collapse bathymetry data collapse_steps=2 # can be changed by USER collapse_starttime=0.0 # in second; can be changed by USER collapse_times=linspace(0,collapse_duration,collapse_steps) cs=contour(kxx,kyy,-kelevation,[collapse_depth]) csp=cs.collections[0].get_paths()[2]# path csv=csp.vertices # vertices csv_x=csv[:,0] csv_y=csv[:,1] if (not plot_debugfig): close() RE: cs.collections error - ndc85430 - Apr-06-2022 There error seems pretty self-explanatory: you're trying to access an element of a list that doesn't exist. There are two indices in that line, so the first question I'd ask is: which is it that's causing the problem? Also, why are you using Python 2 in the first place? RE: cs.collections error - DaveG - Apr-06-2022 This is a script written in the past by someone now lost and I am trying to debug it. I'm a user of the output and have no real programming skills (I'm working blind here). I tried to shift it over to Python3 but it was causing me more headaches. Can you please describe the code I need to find out which indices is causing the problem. RE: cs.collections error - ndc85430 - Apr-06-2022 Assign the parts that use the different indices to different variables. Those assignments will be on separate lines then and the error will point you to the line that's failing. Then, work backwards from there - either print out your variables at different points to see whether they have the values you expect, or use a debugger like pdb in the standard library.I don't know what your situation is, but perhaps learning some of the basics in a more structured way (rather than while trying to fix this broken program) would serve you well? RE: cs.collections error - Larz60+ - Apr-06-2022 please supply full script (including imports, and any external data required). The script will require upgrade to python 3 as python 2.7 was obsolete January 1, 2020. In order to do so, need full script. RE: cs.collections error - DaveG - Apr-06-2022 I agree I need to learn more but this is a rush to meet a thesis deadline. It would help if I new what 'csp=cs.collections[0].get_paths()[2]' is trying to do. it seems to take the collected values from the variables 'cs' and interrogate this for something? Could you explain please? RE: cs.collections error - DaveG - Apr-06-2022 This is the script up to the problem line. All the variables look good up to the error point. I'm assuming cs.collections is a function of Matplotlib, would it be that that function is missing from my environment? from scipy import * from pylab import * from numpy import * import sys from degrees2utm import latlng2utm from copy import deepcopy from matplotlib.patches import PathPatch #close('all') # ================================================================================= # INPUT SECTION BEGIN # ================================================================================= meshfile='Caldera_Before.xyz' # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! collapse_duration = 60.0 # in seconds collapse_depth = -480 # depth of the filling cup meshfile_start='Caldera_Output.xyz' # file with output file_ls = "collapse.xyt" # file with displacement # ================================================================================= # INPUT SECTION END # ================================================================================= #utm_grid = True print('reading mesh file data; might take some time') data=genfromtxt(meshfile) nx = 88 # dimensions of the mesh file ny = 84 elevation=data[:, 2] xx=data[:, 0] yy=data[:, 1] elevation=elevation.reshape((ny, nx)) # bathymetry/topography xx=xx.reshape((ny, nx)) yy=yy.reshape((ny, nx)) cmax=500 # color scale lmin=0 # cutting from east lmax=88 # cutting from west rmin=0 # north of santorini rmax=84 # south of santorini ###### kolumbo data kxx=xx[rmin:rmax, lmin:lmax] kyy=yy[rmin:rmax, lmin:lmax] kelevation=elevation[rmin:rmax, lmin:lmax] ################################################## collapse bathymetry data collapse_steps = 2 # can be changed by USER collapse_starttime = 0.0 # in second; can be changed by USER collapse_times = linspace(0, collapse_duration, collapse_steps) cs = contour(kxx, kyy, -kelevation, [collapse_depth]) csp = cs.collections[0].get_paths()[2] # path csv = csp.vertices # vertices csv_x = csv[:, 0] csv_y = csv[:, 1] if (not plot_debugfig): close() RE: cs.collections error - Larz60+ - Apr-06-2022 This is a good example of why '*' should not be used when importing modules. I'm pretty sure the countour from cs = contour(kxx, kyy, -kelevation, [collapse_depth]) refers to https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.contour.html |