[BUG]: modelchain fills nan with 0
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 54/100
Direção de pesquisa
Start in pvlib/modelchain.py at the two fillna(0) calls linked in the issue (around lines 668 and 769), then read the related tests to understand their intended behavior. Reproduce the reported case and check whether those calls replace NaNs in the AC results; done means NaNs are preserved without breaking existing ModelChain tests.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Describe the bug
We fillna(0) twice in modelchain.py
https://github.com/pvlib/pvlib-python/blob/9a0ad5504d821a81ec2a4531b40034794c6c42bd/pvlib/modelchain.py#L769
https://github.com/pvlib/pvlib-python/blob/9a0ad5504d821a81ec2a4531b40034794c6c42bd/pvlib/modelchain.py#L668
I can open a PR deleting these lines, which would make more sense to me, unless there was a specific reason to do so ?
To Reproduce
def calculate_pv_system_production(
pv_system: SimplifiedPVSystem, solar_inputs: SolarInputs
) -> np.ndarray:
"""
Returns AC power output in kW using the PVWatts model.
"""
# 1. Location
location = pvlib.location.Location(
latitude=pv_system.coordinates.latitude,
longitude=pv_system.coordinates.longitude,
tz=str(pv_system.timezone),
altitude=pv_system.coordinates.altitude,
)
# 2. System
system = pvlib.pvsystem.PVSystem( # todo review all of these parameters with dict
surface_tilt=pv_system.surface_tilt,
surface_azimuth=pv_system.surface_azimuth,
module_parameters={
"pdc0": pv_system.solar_power_kwp * 1000, # W peak DC
"gamma_pdc": pv_system.temp_coefficient,
},
inverter_parameters={
"pdc0": pv_system.solar_power_kwp * 1000,
"eta_inv_nom": pv_system.inverter_efficiency,
},
temperature_model_parameters=pvlib.temperature.TEMPERATURE_MODEL_PARAMETERS[
"sapm"
]["open_rack_glass_glass"],
)
# 3. ModelChain
mc = pvlib.modelchain.ModelChain(
system,
location,
dc_model="pvwatts",
ac_model="pvwatts",
aoi_model="physical",
spectral_model="no_loss",
losses_model="pvwatts",
)
# 4. Run model — pvlib computes sun position internally from location + times
weather_data = {
"dni": solar_inputs.dni_wm2,
"dhi": solar_inputs.dhi_wm2,
"ghi": solar_inputs.ghi_wm2,
}
if solar_inputs.outdoor_air_temp_c is not None:
weather_data["temp_air"] = solar_inputs.outdoor_air_temp_c
solar_inputs_pvlib_format = pd.DataFrame(
index=solar_inputs.ts,
data=weather_data,
)
mc.run_model(solar_inputs_pvlib_format)
# 5. Return AC power in kW
return (mc.results.ac / 1000).to_numpy()
Expected behavior
Don't fill NaNs with 0, keep NaNs
Screenshots
This
Becomes
Versions:
pvlib.__version__: 0.15.2pandas.__version__:- python: 3.10
- Linguagem predominante
- Python
- Estrelas
- 1.7k
- Forks
- 1.2k
- Merge médio
- 3d 18h
- PRs com merge (30d)
- 13
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de pvlib/pvlib-python
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
pvlib/pvlib-python#2903 · 2 comentários · 2 reações ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
pvlib/pvlib-python#2902 ·
Mantenedores costumam responder em até 1 dia
-
Add an example or documentation on using 'bhi' from ERA5Talvez livre de novo @anshurajbisoyi98-ctrl assumiu há 14 dias e não há nenhum pull request aberto. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
pvlib/pvlib-python#2880 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Use "long-wave" rather than "infra-red" to refer to thermal radiation.Talvez livre de novo @Rahi-padwal assumiu há 252 dias e não há nenhum pull request aberto. Abertaapi easy
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
pvlib/pvlib-python#2653 · 6 comentários ·
Mantenedores costumam responder em até 1 dia
-
question
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 72/100
pvlib/pvlib-python#2637 · 10 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de pvlib/pvlib-python
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
521xueweihan/HelloGitHub#4025 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
aws-samples/sample-per-model-bedrock#321 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 68/100
FavioVazquez/showtime#101 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
koush/ha_scrypted#81 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
google/osv-scanner-action#147 ·