Deal with starting byte range for UGRD and VGRD in RAP
This isn't a problem if you target both UGRD and VGRD (searchString="(U|V)GRD"), but if you only want the UGRD, then you will run into this problem...
In this example inventory file you will see that the UGRD and VGRD starting byte range are the same.
112.1:3395201:d=2016021722:UGRD:1000 mb:anl:
112.2:3395201:d=2016021722:VGRD:1000 mb:anl:
One solution is if the next byte range is the same, to advance to the next line again.
I can confirm that H.xarray("VGRD:100 mb") gives both UGRD and VGRD too.
I recently learned that when the U and V components are packed together in a single grib message it is called a "submessage" ^1. With Herbie, it's not possible to get just the U or just the V component with a curl range request from a submessage.
As far as I can tell, NCEP is only using this practice for the RAP model, but there may be other models that the U and V winds are packed together.