How to import timeseries solar irradiance data - what units are required?

I wrote a simple script to model solar irradiance on the lunar surface at the equator. The output is a CSV file with two columns, time (hours of simulation) and capacity factor (unitless value between 0 and 1).

Is this suitable for import?
If yes, how can I import?
If no, what units/format are required?

Hi @smeloney,

The data you are describing is well-suited to be imported and used in SAInt. Great work!

To bring this data into SAInt and use it in a scenario you will need to:

  • import your Profile(s) using the excel import template
  • define the Event(s) you need to link those to PV objects

Please see the sections in the documentation for importing profiles as it will be much more efficient for you to use this method to bring the time-series data into your Scenario(s). From what you have described, you will only need to do a small amount of formatting to align your data with the template format. Also, if you check the ENET39 dataset, you should find a folder called “Import Files”. This will have examples of how all the data in the ENET39 would look in Excel import template format, and should serve as a great example in addition to the documentation.

You could also import events in a similar way, but as a new user you might have better luck defining your events using the GUI.

It sounds like you have an interesting project in the works! Happy modeling :slight_smile:

1 Like

Hi Will,

As discussed, I do not have access to Excel or other microsoft products, but I can create xlsx files in google drive from csv files. Please note also, in the directory User > Documents > encoord > SAInt-v3, the DataImport (and all other folders save for Settings and Visulaization in this location for that matter) is empty.

I will attach my load and solar capacity factor csv’s here for convenience. Please note my peak demand is around 1500kW.

Lunar Load Profile

Lunar Solar CF Profile

Hi @smeloney,

Thanks for sharing some additional information. There are options to import Profiles from .txt format, but there are also options for creating excel files from tools outside of Microsoft Office (e.g., Visual Studio Code, Google Drive, etc.).

If you want to avoid Microsoft products altogether I would recommend the .txt import format. If it is suitable for you to create the import files in .xlsx format, I would recommend that.

Hey @smeloney

My apologies for some of the oversights when setting up the machine you are borrowing from us!

re empty folders: This was totally my bad, I should have installed SAInt on your local account instead of doing a system-wide install. These folders should have contents. I am happy to send those along to you if you are interested!

re Microsoft Office support on borrowed machines: I’m glad you found the Google Drive workaround. Another option that others have used in the past is Office Libre.

1 Like

Thanks Jacob and Will for your guy’s help so far! I have successfully formatted and loaded my timeseries data, but it is a little unclear to me how to properly define the event(s) that will adjust capacity of my PV generators accordingly. I followed along in the tutorial for renewables, but that is a PSET event, and I don’t want to change PSET values explicitly, I just want to scale them by the capacity factor coefficients in my timeseries data. Thank you!

Hi @smeloney,

I think you might be mistaken in your understanding of PSET events. Using a PSET event to attach a profile to a PV object is exactly what you want to do here! Considering that your profiles are capacity factor coefficients, you’ll want the Value of these events to be the installed capacity of the PV objects. The events for the PV objects in the ENET39 should be perfect examples for your use case!

The tutorial mentions to set the “value” to 1, and specified that this “value” was a scale factor for the timeseries data. I am understanding this incorrectly?

from: Design QuasiDynamicACPF Scenario Events :: SAInt | Docs
" In the setting category, define the Value of the event as 1 . This value will be used to scale the profile data points at each time step."

Ahh, I understand your confusion. Thank you for clarifying!

The Value is set to 1 in the tutorial because the profiles in that example are defined in terms of active power ([MW], I believe).

Since your profiles represent a capacity factor between 0 and 1, with 1 representing 100% capacity factor, you will want to put the installed capacity of the generator as the Value for the event. For example, if one of your PV objects has a capacity of 10 [kW], you would want to enter a Value of 10! Also pay attention to the Unit property of the event! I believe you will want to set this to [kW].

Regarding the examples in the ENET39, you would notice that the Value for those PV PSET events look like this: PV.CANTON.PMAXDEF. This would tell SAInt to grab the PMAXDEF value and use that for the event (in this case, 90). This is very convenient because it “parameterizes” your dataset. This way, if you want to change the size of a PV object in all scenarios you can change it in one place. If you want to change it in a specific scenario, you can use a PMAX event to change the capacity and use a value of PV.CANTON.PMAX in your PSET event.

Whew! That was a lot of "P"s. I hope that makes sense, let me know if you need anything clarified.

Pro tip: For your project, I would recommend being specific when querying the units. e.g., `PV.PV_HABITAT.PMAX.[kW].

2 Likes

Hi Will,

Just want to clear up some confusion and close up this thread. I have defined my nameplate capacities for solar generators in PMAXDEF. When I create an event to scale the available power according to my solar timeseries data, do I want to create a PSET or a PMAX event?

Thanks!

Hi @smeloney,

Technically, either would work. However, I would strongly recommend using a PSET event because this will work well with the out-of-the-box features and properties. For example, the PNS property is calculated as PSET-P.

In other words, a PMAX event would achieve the same result in the optimization model, but your default plot for PV objects in the GUI wouldn’t look as nice.

I hope this helps! Happy to answer any more questions on this topic.