[ANN] pvlib v0.14.0

58 views
Skip to first unread message

kevina...@gmail.com

unread,
Jan 17, 2026, 10:50:54 AMJan 17
to pvlib-python

Dear pvlib community,

The maintainers are pleased to announce the v0.14.0 release of pvlib python.  This release is the product of contributions from 15 community members!

v0.14.0 Highlights:
- pvlib.iotools functions for ERA5 and MERRA2 data
- Estimating SDM parameters from datasheet information
- Accelerated I-V curve calculations
- Overview docs for single-diode models and temperature models

Full details are available in the documentation: https://pvlib-python.readthedocs.io/en/stable/whatsnew.html

Releases are available from PyPI and the conda-forge channel:
* https://pypi.org/project/pvlib/
* https://anaconda.org/conda-forge/pvlib

Report issues & contribute:
* https://github.com/pvlib/pvlib-python

Thank you for using pvlib python!

James Barry

unread,
Jun 10, 2026, 3:17:45 AM (yesterday) Jun 10
to pvlib-python
Hi Kevin,

Thanks for the update and for adding ERA5 data. However, I was wondering whether it wouldn't make more sense to use the ERA5-Land data, which are on a 0.1 x 0.1 degree grid, i.e. a finer resolution? At present the pvlib.iotools wrapper downloads the timeseries data from ERA5 single levels, i.e. from here https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels-timeseries . These data are on a 0.25 x 0.25 grid. For PV applications it would make more sense to get the ERA5-Land dataset, i.e. https://cds.climate.copernicus.eu/datasets/reanalysis-era5-land-timeseries?tab=overview

Or you could have an option to get either/or ?

Best regards,
James

James Barry

unread,
Jun 10, 2026, 3:36:50 AM (yesterday) Jun 10
to pvlib-python
PS. The ERA5-Land dataset has the added advantage that snow cover and snow depth are available ... 

Adam R. Jensen

unread,
Jun 10, 2026, 4:57:16 AM (yesterday) Jun 10
to pvlib-python
Hi James

You are likely right in that ERA5-land is preferred. However, this dataset is not available through the "time series" API. The time series API is different from the regular API and is much preferred, as it returns data for single points in seconds. In comparison, for the traditional API endpoints (where you can choose between ERA5 and ERA5-land), one request for a single point for one year can take from minutes to hours to process. The time series API does have the drawback that there are much fewer parameters available.

Cheers,
Adam

James Barry

unread,
Jun 10, 2026, 5:07:02 AM (yesterday) Jun 10
to Adam R. Jensen, pvlib-python
Hi Adam,

the land dataset is available via the timeseries API, see here: https://cds.climate.copernicus.eu/datasets/reanalysis-era5-land-timeseries?tab=download

Of course one needs to be careful with locations close to the coast, which may give inaccurate results.

Best regards,
James


--
You received this message because you are subscribed to a topic in the Google Groups "pvlib-python" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pvlib-python/OFYfsZfZ234/unsubscribe.
To unsubscribe from this group and all its topics, send an email to pvlib-python...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pvlib-python/bfa4aca9-1217-4fdc-9ecd-19f7a32380b1n%40googlegroups.com.

James Barry

unread,
Jun 10, 2026, 5:11:52 AM (yesterday) Jun 10
to Adam R. Jensen, pvlib-python
PS. The advantage of using the real API is that you can spatially interpolate the NetCDF files (using the xarray package) to exactly the location you want, whereas with the timeseries API, you are restricted to getting the data at the grid points themselves...

Adam R. Jensen

unread,
Jun 10, 2026, 5:20:47 AM (yesterday) Jun 10
to pvlib-python

I was unaware of this API endpoint, but that's awesome. I've made a PR to allow the pvlib.iotools.get_era5 function to allow users to select different datasets. If we're lucky, it'll be available in the next pvlib release in a few days. :)

Fair point, however, it would be much much faster to make multiple requests using the time series API, than using the regular API.

Anton Driesse

unread,
Jun 10, 2026, 7:27:43 AM (yesterday) Jun 10
to pvlib-...@googlegroups.com

Great!  What happens when hit coastal grid point?  Is there something you can do to make sure you get the nearest valid inland point?  (I had a quick look in the docs but couldn't find this info.)

Anton

You received this message because you are subscribed to the Google Groups "pvlib-python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pvlib-python...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pvlib-python/3c0fa06a-2e71-4b59-8ad2-aed373840a34n%40googlegroups.com.
-- 
PV Performance Labs
Emmy-Noether-Str. 2
79110 Freiburg
Germany

+49-761-8973-5603 (Office, daytime)
+49-174-532-7677 (Mobile)

www.pvperformancelabs.com

Adam R. Jensen

unread,
Jun 10, 2026, 8:10:24 AM (yesterday) Jun 10
to pvlib-python
You can already try the new feature if you install from my PR branch:


data, meta = pvlib.iotools.get_era5(
    latitude=55.9098,  # at sea
    longitude=6.6850,
    start="2025-01-01",
    end="2025-01-02",
    variables=["ghi"],
    api_key="redacted",
    dataset="reanalysis-era5-land-timeseries")
When selecting a point in the ocean, all values are nan. Ideally, the function would raise an error if a point is at sea, but this is outside our hands since the CDS doesn't give any indication of this.

Regards,
Adam

James Barry

unread,
Jun 10, 2026, 8:15:56 AM (yesterday) Jun 10
to pvlib-python
Yes, that is what I have usually experienced (when using the usually API with NetCDF files) - one receives only nan values. Which means it needs to be treated with caution. I still think that the 9km resolution is a significant improvement over 31km.



Anton Driesse

unread,
Jun 10, 2026, 8:39:01 AM (yesterday) Jun 10
to pvlib-...@googlegroups.com

Ok, all nans is a clear indicator for outlandish data! 🙂

Reply all
Reply to author
Forward
0 new messages