Closed BenPortner closed 3 years ago
Hi Ben,
Thanks for spotting that, I've moved it back into required for now. If you pass BMU_id='*' it should return all the generators.
Thanks! Yes I've come across both of them, theres a few older ones out there as well. The main difference is that I've tried to add a lot of helper functions around the core BMRS requests, for example this wrapper will also return an additional column with the local datetime included, or for some of the streams you can make us of 'cleaners' which take the standard BMRS response and convert them into a more usable format.
There's also automatic handling of nested response data which at time of writing I don't believe either of those wrappers includes, this means you get returned all of the information as Elexon doesn't always include everything in the csv response. Another difference is generalisability around terms used, for example in this wrapper I've standardised the datetime variable names so you always pass the same parameters, rather than having to work out what name and format to pass (e.g. with elexon_API_tool you have to use get_required_parameters(service_code) to work out what random name BMRS choose to represent datetime for the stream, here you would always use query_date). If BMRS add new datastreams there's also only one location you have to specify information in this wrapper whereas as I understand it you have to add information to lots of places in the others.
If you wanted async functionality then elexon_API_tool is the only one who offers it at the moment.
Generally it makes sense in future to do a big refactoring and combine the best bits from each of the tools. I've been holding off for the moment because Elexon is planning to completely change the way people access their data in the future.
I hope that helped answer some of your questions, if you have any more feel free to add them here.
Best, Ayrton
Hi @AyrtonB!
Thanks for the fix! The error is gone 😃 Just a quick follow-up question: I get a df returned now, but it has (among others) one column for each SP and the values in the columns are OrderedDict types (sample screenshot below). Is that how it is supposed to be?
Also, thanks for the comprehensive overview of ElexonDataPortal's features. Wrappers, orchestrators, standardization of terms...that's an impressive amount of work you poured into this! Most of all, I like the fact that it can retrieve the data in a table format without dropping anything (unlike the native csv option) 👍
Good job! Ben
Hi @AyrtonB !
When trying to call B1610 without BMU_id, I receive an error:
AssertionError: The following arguments were needed but not provided: BMU_id
. However, according to the official documentation, no BMU_id is required for this kind of call.Off topic: Nice work on the wrapper! I'm trying to find a library to download Elexon data and came across your repo. I tried pywind before, but it's heavily outdated. Out of curiosity: Do you know about elexon and elexon_api_tool? There are so many wrappers out there. I can't decide which one to use! If you know about them, could you provide a list of key differences as decision support? 😃
Cheers! Ben