[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: (#CQC-6179022) MetPy Question



-#-#- Please reply above this line -#-#-

Dear David Moran,

Your ticket has been marked as resolved by a member of our staff. If you do not believe that this issue has been adequately resolved, you may still reply to this ticket and an operator will respond shortly. You can review the ticket by going to:
https://support.unidata.ucar.edu/tickets/view/CQC-6179022?token=1482a70e7ce8a15968033f6b8eccfd2875b754f9
Ryan May
Staff - Wednesday 4th September 2024 4:02 PM

Greetings!

 

When I uncomment those lines and run with the current version of xarray (2024.7.0), I get the following error:

 

TypeError: Variable 'Temperature_5pt_3pass': Using a DataArray object to construct a variable is ambiguous, please extract the data using the .data property.

 

That more helpful error leads me to add a `.data` property to the line storing the data in `narr`:

 

    narr['Temperature_5pt_3pass'] = (['y', 'x'], smoothed.data)

 

After making this change, everything runs fine for me. Does this solve it for you?

 

Cheers,

 

Ryan

 

Good morning, I am working through one of the MetPy Monday videos and am stuck. I was hoping that you might be able to point me in the right direction. The video I was working through is at https://www.youtube.com/watch?v=r9oMB0ZhWSk.

 

My code is below. I’ve commented out what doesn’t seem to work and I’m fairly certain I typed things as they were in the video.

 

from metpy.cbook import get_test_data

 

import xarray as xr

 

narr = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False))

 

from metpy.plots.declarative import *

from metpy.units import units

 

import metpy.calc as mpcalc

smoothed = mpcalc.smooth_n_point(narr['Temperature'].sel(isobaric=850).isel(time=0), 5, 3)

#narr['Temperature_5pt_3pass'] = (['y','x'],smoothed)

#narr['Temperature_5pt_3pass'].attrs = narr['Temperature'].attrs

 

contour_raw = ContourPlot()

contour_raw.data = "">

contour_raw.field = 'Temperature'

contour_raw.level = 850 * units.hPa

contour_raw.linecolor= 'tab:red'

contour_raw.linewidth = 1

contour_raw.linestyle = '--'

contour_raw.contours = 15

 

#contour_smooth = ContourPlot()

#contour_smooth.data="">

#contour_smooth.field = 'Temperature_5pt_3pass'

#contour_smooth.linecolor = 'tab:blue'

#contour_smooth.linewidth = 1

#contour_smooth.linestyle = '--'

#contour_smooth.contours = 15

 

panel = MapPanel()

panel.area = 'co'

panel.layers = ['coastline','borders', 'states']

panel.title = 'Smoothing of 850hPa Temperatures'

panel.plots = [contour_raw]

 

pc = PanelContainer()

pc.size = (10,8)

pc.panels = [panel]

pc.show()

 

 

The error I get is

 

PS C:\Users\User\Dropbox\Python>  & 'c:\Users\User\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\User\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60022' '--' 'c:\Users\User\Desktop\Test\test.py'

PS C:\Users\User\Dropbox\Python> ^C

PS C:\Users\User\Dropbox\Python>

PS C:\Users\User\Dropbox\Python>  c:; cd 'c:\Users\User\Dropbox\Python'; & 'c:\Users\User\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\User\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60062' '--' 'c:\Users\User\Desktop\Test\test.py'

PS C:\Users\User\Dropbox\Python> ^C

PS C:\Users\User\Dropbox\Python>

PS C:\Users\User\Dropbox\Python>  c:; cd 'c:\Users\User\Dropbox\Python'; & 'c:\Users\User\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\User\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60086' '--' 'c:\Users\User\Desktop\Test\test.py'

Traceback (most recent call last):

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1477, in _construct_dataarray

    variable = self._variables[name]

               ~~~~~~~~~~~~~~~^^^^^^

KeyError: 'Temperature_5pt_3pass'

 

During handling of the above exception, another exception occurred:

 

Traceback (most recent call last):

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1576, in __getitem__

    return self._construct_dataarray(key)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1479, in _construct_dataarray

    _, name, variable = _get_virtual_variable(self._variables, name, self.sizes)

                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 213, in _get_virtual_variable

    raise KeyError(key)

KeyError: 'Temperature_5pt_3pass'

 

The above exception was the direct cause of the following exception:

 

Traceback (most recent call last):

  File "c:\Users\User\Desktop\Test\test.py", line 43, in <module>

    pc.show()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 200, in show

    self.draw()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 187, in draw

    panel.draw()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 511, in draw

    p.draw()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 891, in draw

    self._build()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 1062, in _build

    x_like, y_like, imdata = self.plotdata

                             ^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 875, in plotdata

    plot_x_dim = self.griddata.metpy.find_axis_number('x')

                 ^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 819, in griddata

    data = "">

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\xarray.py", line 817, in parse_cf

    var = self._dataset[varname]

          ~~~~~~~~~~~~~^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1578, in __getitem__

    raise KeyError(

KeyError: "No variable named 'Temperature_5pt_3pass'. Variables on the dataset include ['Temperature', 'time', 'isobaric', 'y', 'x', ..., 'lon', 'u_wind', 'v_wind', 'Geopotential_height', 'Specific_humidity']"

PS C:\Users\User\Dropbox\Python>

 


David Moran
User - Wednesday 4th September 2024 9:05 AM

Good morning, I am working through one of the MetPy Monday videos and am stuck. I was hoping that you might be able to point me in the right direction. The video I was working through is at https://www.youtube.com/watch?v=r9oMB0ZhWSk.

 

My code is below. I’ve commented out what doesn’t seem to work and I’m fairly certain I typed things as they were in the video.

 

from metpy.cbook import get_test_data

 

import xarray as xr

 

narr = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False))

 

from metpy.plots.declarative import *

from metpy.units import units

 

import metpy.calc as mpcalc

smoothed = mpcalc.smooth_n_point(narr['Temperature'].sel(isobaric=850).isel(time=0), 5, 3)

#narr['Temperature_5pt_3pass'] = (['y','x'],smoothed)

#narr['Temperature_5pt_3pass'].attrs = narr['Temperature'].attrs

 

contour_raw = ContourPlot()

contour_raw.data = "">

contour_raw.field = 'Temperature'

contour_raw.level = 850 * units.hPa

contour_raw.linecolor= 'tab:red'

contour_raw.linewidth = 1

contour_raw.linestyle = '--'

contour_raw.contours = 15

 

#contour_smooth = ContourPlot()

#contour_smooth.data="">

#contour_smooth.field = 'Temperature_5pt_3pass'

#contour_smooth.linecolor = 'tab:blue'

#contour_smooth.linewidth = 1

#contour_smooth.linestyle = '--'

#contour_smooth.contours = 15

 

panel = MapPanel()

panel.area = 'co'

panel.layers = ['coastline','borders', 'states']

panel.title = 'Smoothing of 850hPa Temperatures'

panel.plots = [contour_raw]

 

pc = PanelContainer()

pc.size = (10,8)

pc.panels = [panel]

pc.show()

 

 

The error I get is

 

PS C:\Users\User\Dropbox\Python>  & 'c:\Users\User\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\User\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60022' '--' 'c:\Users\User\Desktop\Test\test.py'

PS C:\Users\User\Dropbox\Python> ^C

PS C:\Users\User\Dropbox\Python>

PS C:\Users\User\Dropbox\Python>  c:; cd 'c:\Users\User\Dropbox\Python'; & 'c:\Users\User\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\User\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60062' '--' 'c:\Users\User\Desktop\Test\test.py'

PS C:\Users\User\Dropbox\Python> ^C

PS C:\Users\User\Dropbox\Python>

PS C:\Users\User\Dropbox\Python>  c:; cd 'c:\Users\User\Dropbox\Python'; & 'c:\Users\User\AppData\Local\Programs\Python\Python312\python.exe' 'c:\Users\User\.vscode\extensions\ms-python.debugpy-2024.10.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '60086' '--' 'c:\Users\User\Desktop\Test\test.py'

Traceback (most recent call last):

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1477, in _construct_dataarray

    variable = self._variables[name]

               ~~~~~~~~~~~~~~~^^^^^^

KeyError: 'Temperature_5pt_3pass'

 

During handling of the above exception, another exception occurred:

 

Traceback (most recent call last):

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1576, in __getitem__

    return self._construct_dataarray(key)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1479, in _construct_dataarray

    _, name, variable = _get_virtual_variable(self._variables, name, self.sizes)

                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 213, in _get_virtual_variable

    raise KeyError(key)

KeyError: 'Temperature_5pt_3pass'

 

The above exception was the direct cause of the following exception:

 

Traceback (most recent call last):

  File "c:\Users\User\Desktop\Test\test.py", line 43, in <module>

    pc.show()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 200, in show

    self.draw()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 187, in draw

    panel.draw()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 511, in draw

    p.draw()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 891, in draw

    self._build()

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 1062, in _build

    x_like, y_like, imdata = self.plotdata

                             ^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 875, in plotdata

    plot_x_dim = self.griddata.metpy.find_axis_number('x')

                 ^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\plots\declarative.py", line 819, in griddata

    data = "">

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\metpy\xarray.py", line 817, in parse_cf

    var = self._dataset[varname]

          ~~~~~~~~~~~~~^^^^^^^^^

  File "c:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\xarray\core\dataset.py", line 1578, in __getitem__

    raise KeyError(

KeyError: "No variable named 'Temperature_5pt_3pass'. Variables on the dataset include ['Temperature', 'time', 'isobaric', 'y', 'x', ..., 'lon', 'u_wind', 'v_wind', 'Geopotential_height', 'Specific_humidity']"

PS C:\Users\User\Dropbox\Python>

 

Any help is appreciated. Thanks!

 

David Moran, CCM

Weather Risk Analyst

 

DTN

Phone: +1.405.693.5632

address@hidden

 

www.dtn.com


CCM Seal

 


NOTICE: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. Any e-mail reply to this address may be subject to interception or monitoring for operational reasons or for lawful business practices

Ticket Details

Ticket #: CQC-6179022
Subject: MetPy Question
Department: MetPy, Siphon (Python)
Status: Closed
Priority: Normal

You can review the ticket by going to:
https://support.unidata.ucar.edu/tickets/view/CQC-6179022?token=1482a70e7ce8a15968033f6b8eccfd2875b754f9

Kind Regards,
NSF UnidataNOTE: All email exchanges with NSF Unidata User Support are recorded in the NSF Unidata support portal. Inquires to some departments are made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.