Skip to content

Commit eb7b34a

Browse files
ckreningConnorkandersolarcwhanse
authored
Create pvlib.iotools.read_panond for reading .pan and .ond files (#1749)
* pan ond reader * pan ond reader * More info in nested levels * Added Comments * Added whatsnew documentation * Corrected formatting * Adressing stickler comments * Updated testing script * addressing stickler comments * stickler comments v3 * stickler comment correction * Updated notes and comments * Minor comment updates and sphinx doc update * edited comments for grammar/spelling * improved testing panond reader * pan ond reader * pan ond reader * More info in nested levels * Added Comments * Added whatsnew documentation * Corrected formatting * Adressing stickler comments * Updated testing script * addressing stickler comments * stickler comments v3 * stickler comment correction * Updated notes and comments * Minor comment updates and sphinx doc update * edited comments for grammar/spelling * improved testing panond reader * Update pvlib/iotools/panond.py Co-authored-by: Kevin Anderson <[email protected]> * Update pvlib/iotools/panond.py Co-authored-by: Kevin Anderson <[email protected]> * Adressing some github comments * Addressing github comments pt.2 * github comments pt.3 * flake8 formatting * Flake8 formatting * remove unnecessary doc entries * whatsnew cleanup * encoding parameter, and fix parsing both file buffers and file-like objects * docstring improvements * test improvements * lint * update FAQ entry on PAN/OND files * Apply suggestions from code review Co-authored-by: Cliff Hansen <[email protected]> * make parse function private * fix overlooked whatsnew issue --------- Co-authored-by: Connor <[email protected]> Co-authored-by: Kevin Anderson <[email protected]> Co-authored-by: Cliff Hansen <[email protected]>
1 parent 4237a67 commit eb7b34a

File tree

8 files changed

+417
-3
lines changed

8 files changed

+417
-3
lines changed

docs/sphinx/source/reference/iotools.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ of sources and file formats relevant to solar energy modeling.
4242
iotools.get_acis_mpe
4343
iotools.get_acis_station_data
4444
iotools.get_acis_available_stations
45+
iotools.read_panond
46+
4547

4648
A :py:class:`~pvlib.location.Location` object may be created from metadata
4749
in some files.

docs/sphinx/source/user_guide/faq.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,11 @@ irradiance datasets, including the BSRN, SURFRAD, SRML, and NREL's MIDC.
6666
Can I use PVsyst (PAN/OND) files with pvlib?
6767
--------------------------------------------
6868

69-
Currently, pvlib does not have the ability to import any PVsyst file formats.
70-
Certain formats of particular interest (e.g. PAN files) may be added in a future
71-
version. Until then, these Google Group threads
69+
Although pvlib includes a function to read PAN and OND files
70+
(:py:func:`~pvlib.iotools.read_panond`), it is up to the user to determine
71+
whether and how the imported parameter values can be used with pvlib's models.
72+
Easier use of these parameter files with the rest of pvlib may be added
73+
in a future version. Until then, these Google Group threads
7274
(`one <https://groups.google.com/g/pvlib-python/c/PDDic0SS6ao/m/Z-WKj7C6BwAJ>`_
7375
and `two <https://groups.google.com/g/pvlib-python/c/b1mf4Y1qHBY/m/tK2FBCJyBgAJ>`_)
7476
may be useful for some users.

docs/sphinx/source/whatsnew/v0.10.2.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Deprecations
1111

1212
Enhancements
1313
~~~~~~~~~~~~
14+
* Added .pan/.ond reader function :py:func:`pvlib.iotools.read_panond`. (:issue:`1747`, :pull:`1749`)
1415
* Added support for dates to be specified as strings in the iotools get functions:
1516
:py:func:`pvlib.iotools.get_pvgis_hourly`, :py:func:`pvlib.iotools.get_cams`,
1617
:py:func:`pvlib.iotools.get_bsrn`, and :py:func:`pvlib.iotools.read_midc_raw_data_from_nrel`.
@@ -68,6 +69,7 @@ Requirements
6869

6970
Contributors
7071
~~~~~~~~~~~~
72+
* Connor Krening (:ghuser:`ckrening`)
7173
* Adam R. Jensen (:ghuser:`AdamRJensen`)
7274
* Michal Arieli (:ghuser:`MichalArieli`)
7375
* Abigail Jones (:ghuser:`ajonesr`)
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
PVObject_=pvGInverter
2+
Comment=ChintPower CPS SCH275KTL-DO/US-800 Manufacturer 2020
3+
Version=6.81
4+
ParObj1=2020
5+
Flags=$00381562
6+
7+
PVObject_Commercial=pvCommercial
8+
Comment=www.chintpower.com (China)
9+
Flags=$0041
10+
Manufacturer=ChintPower
11+
Model=CPS SCH275KTL-DO/US-800
12+
DataSource=Manufacturer 2020
13+
YearBeg=2020
14+
Width=0.680
15+
Height=0.337
16+
Depth=1.100
17+
Weight=95.000
18+
NPieces=0
19+
PriceDate=02/06/20 00:02
20+
Currency=EUR
21+
Remarks, Count=2
22+
Str_1=Protection: -30 - +60, IP 66: outdoor installable
23+
Str_2
24+
End of Remarks
25+
End of PVObject pvCommercial
26+
Transfo=Without
27+
28+
Converter=TConverter
29+
PNomConv=250.000
30+
PMaxOUT=250.000
31+
VOutConv=800.0
32+
VMppMin=500
33+
VMPPMax=1500
34+
VAbsMax=1500
35+
PSeuil=500.0
36+
EfficMax=99.01
37+
EfficEuro=98.49
38+
FResNorm=0.00
39+
ModeOper=MPPT
40+
CompPMax=Lim
41+
CompVMax=Lim
42+
MonoTri=Tri
43+
ModeAffEnum=Efficf_POut
44+
UnitAffEnum=kW
45+
PNomDC=253.000
46+
PMaxDC=375.000
47+
IDCMax=0.0
48+
IMaxDC=360.0
49+
INomAC=181.0
50+
IMaxAC=199.0
51+
TPNom=45.0
52+
TPMax=40.0
53+
TPLim1=50.0
54+
TPLimAbs=60.0
55+
PLim1=225.000
56+
PLimAbs=90.000
57+
PInEffMax =150000.000
58+
PThreshEff=3332.4
59+
HasdefaultPThresh=False
60+
61+
ProfilPIO=TCubicProfile
62+
NPtsMax=11
63+
NPtsEff=9
64+
LastCompile=$8085
65+
Mode=1
66+
Point_1=1250,0
67+
Point_2=7500,6923
68+
Point_3=12500,11875
69+
Point_4=25000,24250
70+
Point_5=50000,49100
71+
Point_6=75000,73875
72+
Point_7=150000,148515
73+
Point_8=250000,246500
74+
Point_9=275000,270325
75+
Point_10=0,0
76+
Point_11=0,0
77+
End of TCubicProfile
78+
VNomEff=880.0,1174.0,1300.0,
79+
EfficMaxV=98.260,99.040,98.860,
80+
EfficEuroV=97.986,98.860,98.661,
81+
82+
ProfilPIOV1=TCubicProfile
83+
NPtsMax=11
84+
NPtsEff=9
85+
LastCompile=$8089
86+
Mode=1
87+
Point_1=300.0,0.0
88+
Point_2=13012.7,12500.0
89+
Point_3=25720.2,25000.0
90+
Point_4=51093.4,50000.0
91+
Point_5=76437.0,75000.0
92+
Point_6=127213.5,125000.0
93+
Point_7=190995.2,187500.0
94+
Point_8=255440.9,250000.0
95+
Point_9=281301.1,275000.0
96+
Point_10=0.0,0.0
97+
Point_11=0.0,0.0
98+
End of TCubicProfile
99+
100+
ProfilPIOV2=TCubicProfile
101+
NPtsMax=11
102+
NPtsEff=9
103+
LastCompile=$8089
104+
Mode=1
105+
Point_1=300.0,0.0
106+
Point_2=12850.8,12500.0
107+
Point_3=25401.3,25000.0
108+
Point_4=50581.7,50000.0
109+
Point_5=75795.9,75000.0
110+
Point_6=126211.6,125000.0
111+
Point_7=189623.8,187500.0
112+
Point_8=253138.9,250000.0
113+
Point_9=278763.3,275000.0
114+
Point_10=0.0,0.0
115+
Point_11=0.0,0.0
116+
End of TCubicProfile
117+
118+
ProfilPIOV3=TCubicProfile
119+
NPtsMax=11
120+
NPtsEff=9
121+
LastCompile=$8089
122+
Mode=1
123+
Point_1=300.0,0.0
124+
Point_2=12953.4,12500.0
125+
Point_3=25512.8,25000.0
126+
Point_4=50679.1,50000.0
127+
Point_5=75895.6,75000.0
128+
Point_6=126441.4,125000.0
129+
Point_7=189835.0,187500.0
130+
Point_8=253472.6,250000.0
131+
Point_9=279017.9,275000.0
132+
Point_10=0.0,0.0
133+
Point_11=0.0,0.0
134+
End of TCubicProfile
135+
End of TConverter
136+
NbInputs=36
137+
NbMPPT=12
138+
TanPhiMin=-0.750
139+
TanPhiMax=0.750
140+
NbMSInterne=2
141+
MasterSlave=No_M_S
142+
IsolSurvey =Yes
143+
DC_Switch=Yes
144+
MS_Thresh=0.8
145+
Night_Loss=5.00
146+
End of PVObject pvGInverter

pvlib/data/ET-M772BH550GL.PAN

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
PVObject_=pvModule
2+
Version=7.2
3+
Flags=$00900243
4+
5+
PVObject_Commercial=pvCommercial
6+
Comment=ET SOLAR
7+
Flags=$0041
8+
Manufacturer=ET SOLAR
9+
Model=ET-M772BH550GL
10+
DataSource=Manufacturer 2021
11+
YearBeg=2021
12+
Width=1.134
13+
Height=2.278
14+
Depth=0.035
15+
Weight=32.000
16+
NPieces=100
17+
PriceDate=06/04/22 12:39
18+
End of PVObject pvCommercial
19+
20+
Technol=mtSiMono
21+
NCelS=72
22+
NCelP=2
23+
NDiode=3
24+
SubModuleLayout=slTwinHalfCells
25+
FrontSurface=fsARCoating
26+
GRef=1000
27+
TRef=25.0
28+
PNom=550.0
29+
PNomTolUp=0.90
30+
BifacialityFactor=0.700
31+
Isc=14.000
32+
Voc=49.90
33+
Imp=13.110
34+
Vmp=41.96
35+
muISC=7.28
36+
muVocSpec=-128.0
37+
muPmpReq=-0.340
38+
RShunt=300
39+
Rp_0=2000
40+
Rp_Exp=5.50
41+
RSerie=0.203
42+
Gamma=0.980
43+
muGamma=-0.0001
44+
VMaxIEC=1500
45+
VMaxUL=1500
46+
Absorb=0.90
47+
ARev=3.200
48+
BRev=16.716
49+
RDiode=0.010
50+
VRevDiode=-0.70
51+
IMaxDiode=30.0
52+
AirMassRef=1.500
53+
CellArea=165.1
54+
SandiaAMCorr=50.000
55+
56+
PVObject_IAM=pvIAM
57+
Flags=$00
58+
IAMMode=UserProfile
59+
IAMProfile=TCubicProfile
60+
NPtsMax=9
61+
NPtsEff=9
62+
LastCompile=$B18D
63+
Mode=3
64+
Point_1=0.0,1.00000
65+
Point_2=20.0,1.00000
66+
Point_3=30.0,1.00000
67+
Point_4=40.0,0.99000
68+
Point_5=50.0,0.98000
69+
Point_6=60.0,0.96000
70+
Point_7=70.0,0.89000
71+
Point_8=80.0,0.66000
72+
Point_9=90.0,0.00000
73+
End of TCubicProfile
74+
End of PVObject pvIAM
75+
End of PVObject pvModule

pvlib/iotools/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from pvlib.iotools.sodapro import get_cams # noqa: F401
2222
from pvlib.iotools.sodapro import read_cams # noqa: F401
2323
from pvlib.iotools.sodapro import parse_cams # noqa: F401
24+
from pvlib.iotools.panond import read_panond # noqa: F401
2425
from pvlib.iotools.acis import get_acis_prism # noqa: F401
2526
from pvlib.iotools.acis import get_acis_nrcc # noqa: F401
2627
from pvlib.iotools.acis import get_acis_mpe # noqa: F401

0 commit comments

Comments
 (0)