Recently I am trying to plot the meteorological field from HRRR datasets. However, HRRR datasets are already in Lambert projection (not gridded). The datasets provide x,y as an index (1~len(x) and 1~len(y)) and latitude/longitude consisting of (x,y). Here's the printed information of the datasets:
Coordinates: * time (time) datetime64[ns] 2022-01-01 step timedelta64[ns] ... isobaricInhPa float64 1e+03 latitude (y, x) float64 ... longitude (y, x) float64 ... valid_time (time) datetime64[ns] ...Dimensions without coordinates: y, xAttributes: GRIB_paramId: 131 GRIB_dataType: fc GRIB_numberOfPoints: 1905141 GRIB_typeOfLevel: isobaricInhPa GRIB_stepUnits: 1 GRIB_stepType: instant GRIB_gridType: lambert GRIB_DxInMetres: 3000.0 GRIB_DyInMetres: 3000.0 GRIB_LaDInDegrees: 38.5 GRIB_Latin1InDegrees: 38.5 GRIB_Latin2InDegrees: 38.5 GRIB_LoVInDegrees: 262.5 GRIB_NV: 0 GRIB_Nx: 1799 GRIB_Ny: 1059 GRIB_cfName: eastward_wind GRIB_cfVarName: u GRIB_gridDefinitionDescription: Lambert Conformal can be secant... GRIB_iScansNegatively: 0 GRIB_jPointsAreConsecutive: 0 GRIB_jScansPositively: 1 GRIB_latitudeOfFirstGridPointInDegrees: 21.138123 GRIB_latitudeOfSouthernPoleInDegrees: 0.0 GRIB_longitudeOfFirstGridPointInDegrees: 237.280472 GRIB_longitudeOfSouthernPoleInDegrees: 0.0 GRIB_missingValue: 9999 GRIB_name: U component of wind GRIB_shortName: u GRIB_units: m s**-1 long_name: U component of wind units: m s**-1 standard_name: eastward_windI followed the example codes provided here https://mesowest.utah.edu/html/hrrr/zarr_documentation/html/xarray_one_day_analysis_example.html. Here's the screenshot of the code and figures provided by HRRR community:
However, it seems that the wind field is not transform correctly when I run my code (both quiver and contourf) because the coastlines is not shown.
projection = ccrs.LambertConformal(central_longitude=262.5, central_latitude=38.5, standard_parallels=(38.5, 38.5), globe=ccrs.Globe(semimajor_axis=6371229, semiminor_axis=6371229))# plotax = plt.axes(projection=ccrs.Mercator())ax.contourf(u_plt.x, u_plt.y, u_plt, transform=projection)ax.coastlines()plt.show()To be honest, I am very confused why the example code works because it does not provide any longitude/latitude information when plotting! I also tried to reproduce their results, but their environment yml have problems when using metpy. (I guess it is because the version is too old but not sure.)
Anyway, I just want to know how to plot the datasets with transformed coordinates. Thank you!
