<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Lucida Handwriting";
        panose-1:3 1 1 1 1 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">It is likely that you have run out of memory.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">If your variable is 6000*6000, with 70 files, 3 arrays,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">They you are talking about 28G of data.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">First, you do not need lat/lon in 70 files, as you only need one.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">This will cut 2/3 of the memory required.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Second, you can just use a loop to do the accumulation, and then average it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">That will be easier to manipulate the data, as in total,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">You only need 0.5G of memory.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><b><span style="font-size:17.0pt;font-family:"Lucida Handwriting";color:#1F497D">Wei Huang</span></b><span style="font-size:9.5pt;font-family:"Lucida Handwriting";color:#222222"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> ncl-talk-bounces@ucar.edu [mailto:ncl-talk-bounces@ucar.edu]
<b>On Behalf Of </b>Mariama Barr - Dallas<br>
<b>Sent:</b> Saturday, August 29, 2015 7:11 PM<br>
<b>To:</b> ncl-talk@ucar.edu<br>
<b>Subject:</b> [ncl-talk] Unable to Allocate Memory<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Dear ncl-talk users,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I keep getting the following errors when I try to open about 70 files (HDF5 format) and opening up three arrays each of approximately length 6000:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"> minor: Unable to initialize object<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #003: H5Dchunk.c line 1451 in H5D__create_chunk_mem_map_hyper(): unable to copy memory space<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> major: Dataspace<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> minor: Unable to copy object<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #004: H5S.c line 594 in H5S_copy(): can't copy select<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> major: Dataspace<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> minor: Unable to copy object<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #005: H5Sselect.c line 123 in H5S_select_copy(): can't copy selection specific information<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> major: Dataspace<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> minor: Unable to copy object<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #006: H5Shyper.c line 1631 in H5S_hyper_copy(): can't allocate hyperslab info<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> major: Resource unavailable<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> minor: No space available for allocation<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #007: H5FL.c line 400 in H5FL_reg_malloc(): memory allocation failed<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> major: Resource unavailable<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> minor: No space available for allocation<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #008: H5FL.c line 206 in H5FL_malloc(): memory allocation failed for chunk<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> major: Resource unavailable<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> minor: No space available for allocation<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-----------------------------------------------------------------------<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Here is the script that accesses the files<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">DEFAULT_CONT = 0.001<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">SCALE = 1000000<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">;--adjust contour levels<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">;--returns contour levels based on the default scale<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">function adjContour(data)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">local max_n,min_n<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">begin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">max_n = max(data)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">min_n = min(data)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">;--retrieves file namess<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">function get_file_names()<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">local names,tmp_str<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">begin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> tmp_str = systemfunc("find /home/Bama4/OCO2_DATA/July_Test_Week -name '*.h5' ") ; July <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return tmp_str<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">;--gets data from all files in the given directory<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">function processFiles(names)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">local longs,lats,data,files_0,tmp, avg_data <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">begin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> files_0 = addfiles(names,"r")<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> longs = files_0[:]->retrieval_longitude<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> lats = files_0[:]->retrieval_latitude <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> data = files_0[:]->xco2<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> avg_data = avg(data) <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> data = abs(data - avg_data)*SCALE ;--scale values<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> delete(files_0)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> delete(avg_data)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return ([/longs,lats,data/])<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">function get_data_()<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">local n,tmp_list<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">begin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> n = get_file_names()<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> tmp_list = processFiles(n)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return tmp_list<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Here is the main script<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">load "/home/Bama4/OCO2_Data/OCO2_Script.ncl"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">begin<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;-- Bounds for Region<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> lon0 = -153.0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> lon1 = -163.0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> lat0 = 72.4<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> lat1 = 69.0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;-- Region coordinates and data<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> list_tmp = get_data_()<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> longitudes = list_tmp[0]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> latitudes = list_tmp[1]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> var = list_tmp[2]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;-- define the workstation (plot type and name)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> wks = gsn_open_wks("png","unstructured_grid")<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;-- set resources<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res = True<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@gsnMaximize = True ;-- maximize plot output<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@cnFillOn = True ;-- turn on contour fill<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@cnFillPalette = "rainbow" ;-- choose a colormap<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@tiMainString = "World Map"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@tiMainFontHeightF = 0.02<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@sfXArray = list_tmp[0]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> res@sfYArray = list_tmp[1]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;--res@mpMinLatF = lat1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;--res@mpMaxLatF = lat0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;--res@mpMinLonF = lon1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;--res@mpMaxLonF = lon0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;--manually set the contour levels with the following 3 resources<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> res@cnLevelSelectionMode = "ManualLevels" <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> res@cnMinLevelValF = 0.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> res@cnMaxLevelValF = 500. ; set the maximum contour level<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> res@cnLevelSpacingF = 100.
<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> ;-- draw the contour map<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> plot = gsn_csm_contour_map(wks, var, res)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">Mariama Barr-Dallas<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Meyerhoff Scholar/ NSA Scholar M23<br>
Computer Science Major, History Major<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">University of Maryland Baltimore County<br>
Class of 2015<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>