<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:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:tax="http://schemas.microsoft.com/sharepoint/taxonomy/soap/" xmlns:tns="http://schemas.microsoft.com/sharepoint/soap/recordsrepository/" xmlns:spsup="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-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;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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='color:#1F497D'>Hi,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>I was able to solve this error. Since ERA5 is global data, I needed to set Ngl.add_cyclic for the data and the longitudes so mapping was correct. I guess the key error was “contour_wrap”: <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal>SystemError: <built-in function contour_wrap> returned NULL without setting an error<o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Matt<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><a name="_MailEndCompose"><span style='color:#1F497D'><o:p> </o:p></span></a></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><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"'> pyngl-talk [mailto:pyngl-talk-bounces@ucar.edu] <b>On Behalf Of </b>Fearon, Dr. Matthew, Contractor, Code 7533 via pyngl-talk<br><b>Sent:</b> Saturday, July 20, 2019 1:02 PM<br><b>To:</b> pyngl-talk@ucar.edu<br><b>Subject:</b> [pyngl-talk] Ngl.contour problem, with masked array python 3<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal>I’m reading in ERA5 netcdf (e.g., for MSLP) with Nio and trying to plot with Ngl.contour. I’ve done this hundreds of times with Python 2.7 (Nio,Ngl), but now with my new Python 3 version, I’m getting the following error, which I don’t understand. It appears a masked_array is a problem? I probably missed something obvious.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for the help,<o:p></o:p></p><p class=MsoNormal>Matt<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Error:<o:p></o:p></p><p class=MsoNormal>NumPy arrays must be of type int, int32, float, float0, float32, or float64.<o:p></o:p></p><p class=MsoNormal>Traceback (most recent call last):<o:p></o:p></p><p class=MsoNormal>  File "./mapice.py", line 324, in <module><o:p></o:p></p><p class=MsoNormal>    main()<o:p></o:p></p><p class=MsoNormal>  File "./mapice.py", line 320, in main<o:p></o:p></p><p class=MsoNormal>    contour(band1,band2,band3,reds,blues,greens,xlat,xlon,ny,nx,mname,eslp,elat,elon)<o:p></o:p></p><p class=MsoNormal>  File "./mapice.py", line 166, in contour<o:p></o:p></p><p class=MsoNormal>    contour_plot                     = Ngl.contour(wks,eice,clres)<o:p></o:p></p><p class=MsoNormal>  File "/users/fearon/software/anaconda3/envs/pyn_env3/lib/python3.7/site-packages/ngl/__init__.py", line 2830, in contour<o:p></o:p></p><p class=MsoNormal>    rlist2,rlist3,pvoid())<o:p></o:p></p><p class=MsoNormal>SystemError: <built-in function contour_wrap> returned NULL without setting an error<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Code snippet<o:p></o:p></p><p class=MsoNormal>       erasfc   = Nio.open_file(src_path+'/'+filelist[it]+'_sfc.nc',"r")<o:p></o:p></p><p class=MsoNormal>        if (it == 0):<o:p></o:p></p><p class=MsoNormal>            elat   = erasfc.variables['latitude'][:]<o:p></o:p></p><p class=MsoNormal>            elon   = erasfc.variables['longitude'][:]<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>        etmp = erasfc.variables['msl']<o:p></o:p></p><p class=MsoNormal>        eslp = (etmp[0,:,:]*etmp.scale_factor + etmp.add_offset) / 100.<o:p></o:p></p><p class=MsoNormal>        print (etmp.scale_factor)<o:p></o:p></p><p class=MsoNormal>[0.22592911]]<o:p></o:p></p><p class=MsoNormal>        print (etmp.add_offset)<o:p></o:p></p><p class=MsoNormal>[99425.54328544]<o:p></o:p></p><p class=MsoNormal>        print (type(eslp))<o:p></o:p></p><p class=MsoNormal><class 'numpy.ma.core.MaskedArray'><o:p></o:p></p><p class=MsoNormal>        print (eslp)<o:p></o:p></p><p class=MsoNormal>[[1009.1622356675263 1009.1622356675263 1009.1622356675263 ...<o:p></o:p></p><p class=MsoNormal>  1009.1622356675263 1009.1622356675263 1009.1622356675263]<o:p></o:p></p><p class=MsoNormal>[1009.5146850823248 1009.5146850823248 1009.5146850823248 ...<o:p></o:p></p><p class=MsoNormal>  1009.5146850823248 1009.5146850823248 1009.5146850823248]<o:p></o:p></p><p class=MsoNormal>[1009.8445415859185 1009.8445415859185 1009.8445415859185 ...<o:p></o:p></p><p class=MsoNormal>  1009.8445415859185 1009.8445415859185 1009.8445415859185]<o:p></o:p></p><p class=MsoNormal>...<o:p></o:p></p><p class=MsoNormal>[1013.2334782666748 1013.2447747222774 1013.2538118867593 ...<o:p></o:p></p><p class=MsoNormal>  1013.2018481909877 1013.2108853554698 1013.2244411021928]<o:p></o:p></p><p class=MsoNormal>[1012.5963581706925 1012.5986174618131 1012.6031360440542 ...<o:p></o:p></p><p class=MsoNormal>  1012.5805431328491 1012.5873210062106 1012.5918395884515]<o:p></o:p></p><p class=MsoNormal>[1012.0428318461692 1012.0428318461692 1012.0428318461692 ...<o:p></o:p></p><p class=MsoNormal>  1012.0428318461692 1012.0428318461692 1012.0428318461692]<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    #Line contour settings<o:p></o:p></p><p class=MsoNormal>    clres = Ngl.Resources()<o:p></o:p></p><p class=MsoNormal>    clres.nglFrame                   = False<o:p></o:p></p><p class=MsoNormal>    clres.nglDraw                    = False<o:p></o:p></p><p class=MsoNormal>    clres.sfXArray                   = elon<o:p></o:p></p><p class=MsoNormal>    clres.sfYArray                   = elat<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    clres.cnFillOn                   = False<o:p></o:p></p><p class=MsoNormal>    clres.cnFillDrawOrder            = "PreDraw"<o:p></o:p></p><p class=MsoNormal>    clres.cnLinesOn                  = True<o:p></o:p></p><p class=MsoNormal>    clres.cnLineColor                = "red"<o:p></o:p></p><p class=MsoNormal>    clres.cnLineThicknessF           = 5<o:p></o:p></p><p class=MsoNormal>    clres.cnLineLabelsOn             = False<o:p></o:p></p><p class=MsoNormal>    clres.cnLineLabelFontHeightF     = 0.010<o:p></o:p></p><p class=MsoNormal>    clres.cnLineLabelPerimOn         = False<o:p></o:p></p><p class=MsoNormal>    clres.cnLineLabelBackgroundColor = -1<o:p></o:p></p><p class=MsoNormal>    clres.cnInfoLabelOn              = False<o:p></o:p></p><p class=MsoNormal>#    clres.cnLevelSelectionMode       = "ExplicitLevels"<o:p></o:p></p><p class=MsoNormal>#    clres.cnLevels                   = [0.15]<o:p></o:p></p><p class=MsoNormal>#    clres.cnMinLevelValF             = 957<o:p></o:p></p><p class=MsoNormal>#    clres.cnMaxLevelValF             = 1002<o:p></o:p></p><p class=MsoNormal>#    clres.cnLevelSpacingF            = 2<o:p></o:p></p><p class=MsoNormal>#    clres.cnLineLabelInterval        = 1<o:p></o:p></p><p class=MsoNormal>    contour_plot                     = Ngl.contour(wks,eice,clres)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>    Ngl.overlay(map_plot,contour_plot)]<o:p></o:p></p></div></body></html>