thanks for all your responses. I think I have FINALLY worked it out with all of your help.
I just assigned one array from one ncfile to "a" at the beginning of my code and then ran the loop and it worked!!
sorry for all the questions but I learn so much playing and getting ideas from others.
Thanks again. code below for anyone else that needs to do the same.
onefile=Dataset("E:/01/IDZ00026_T_SFC.nc", 'r+', 'NETCDF4')
oneTSFC=onefile.variables['T_SFC'][:]
a=oneTSFC[0]
for (path, dirs, files) in os.walk(MainFolder):
for dir in dirs:
print dir
path=path+'/'
for ncfile in files:
if ncfile[-3:]=='.nc':
ncfile=os.path.join(path,ncfile)
ncfile=Dataset(ncfile, 'r+', 'NETCDF4')
TSFC=ncfile.variables['T_SFC'][:]
ncfile.close()
for b in TSFC[:]:
N.maximum(a,b, out=a)
print a
On 07.12.2011, at 5:54AM, questions anon wrote:OK, then it seems we did not indeed grasp the entire scope of the problem -
> sorry the 'all_TSFC' is for my other check of maximum using concatenate and N.max, I know that works so I am comparing it to this method. The only reason I need another method is for memory error issues.
> I like the code I have written so far as it makes sense to me. I can't get the extra examples I have been given to work and that is most likely because I don't understand them, these are the errors I get :
>
> Traceback (most recent call last):
> File "d:\plot_summarystats\test_plot_remove_memoryerror_max.py", line 46, in <module>
> N.maximum(a,TSFC,out=a)
> ValueError: non-broadcastable output operand with shape (106,193) doesn't match the broadcast shape (721,106,193)
>
> and
>
since you have initialised a from the previous array TSFC (not from TSFC[0]?!), this can
only mean the arrays read in come in different shapes? I don't quite understand how the
previous version did not raise an error then; but if you only want the (106,193)-subarray
you have indeed to keep the loop
for b in TSFC[:]:
N.maximum(a,b,out=a)
But you would have to find some way to distinguish between ndim=2 and ndim=3 input,
if really both can occur...
>Sorry, typing error (or devious auto-correct?) - this should be 'isinstance()'
> Traceback (most recent call last):
> File "d:\plot_summarystats\test_plot_remove_memoryerror_max.py", line 45, in <module>
> if not instance(a, N.ndarray):
> NameError: name 'instance' is not defined
>
Cheers,
Derek
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion