aemo 0.1.20 → 0.1.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aemo/nmi.rb +34 -0
  3. data/lib/aemo/version.rb +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3e40a98a48936fc6d75e8ca014f672a364cf929
4
- data.tar.gz: 40af65e47491619e9a0dfcfb3df1a612577b7dac
3
+ metadata.gz: a4fefbfadf36ab805001b83fcc76d4069ed77037
4
+ data.tar.gz: c26ef58c619b413ec5d5737caea274c24070f2f0
5
5
  SHA512:
6
- metadata.gz: 7070f2d1022a383ddba4283f418f3e6c093500d14ee27632124609df94a6e23cd3bd55ffbd92ad849baa032488768ae5a4a508f1c5d19f89bbe0b80ff494445e
7
- data.tar.gz: 884cd99295dbeeb6c302420d186e5c72dc3ff87b2217b3211e67ae7b211b52ae6babb793acc8e0aef87e302db0dacbe398949527879dddc8f05bf8e2853749c9
6
+ metadata.gz: c0294e7adcfc766248ee48d820a74e65736e79434e16ea42bed4b8f744ce1690420652142a4b80b982588ed559d1d6e5874426aa8b3ac6217f192b2b49b8c590
7
+ data.tar.gz: d1b73d2c0267dd2f4381d731af11e98c404916b85448c05f65f962f40cfb69b1c5198ffc8438bcaa4d897faa51a8cd009c688851cf4cbee164af37f3e4d901fb
@@ -640,6 +640,18 @@ module AEMO
640
640
  end
641
641
  end
642
642
 
643
+ # A function to return the distribution loss factor value for a given date
644
+ #
645
+ # @param [DateTime,Time] start the date for the distribution loss factor value
646
+ # @param [DateTime,Time] finish the date for the distribution loss factor value
647
+ # @return [Array(Hash)] array of hashes of start,finish and value
648
+ def dlfc_values(start = DateTime.now, finish=DateTime.now)
649
+ raise 'No DLF set, ensure that you have set the value either via the update_from_msats! function or manually' if @dlf.nil?
650
+ raise 'DLF is invalid' unless DLF_CODES.keys.include?(@dlf)
651
+ raise 'Invalid date' unless [DateTime,Time].include?(datetime.class)
652
+ DLF_CODES[@dlf].reject{|x| start > DateTime.parse(x['ToDate']) || finish < DateTime.parse(x['FromDate']) }.map{|x| { 'start' => x['FromDate'], 'finish' => x['ToDate'], 'value' => x['Value'].to_f}}
653
+ end
654
+
643
655
  # A function to return the transmission node identifier loss factor value for a given date
644
656
  #
645
657
  # @param [DateTime,Time] datetime the date for the distribution loss factor value
@@ -661,6 +673,28 @@ module AEMO
661
673
  end
662
674
  end
663
675
 
676
+ # A function to return the transmission node identifier loss factor value for a given date
677
+ #
678
+ # @param [DateTime,Time] start the date for the distribution loss factor value
679
+ # @param [DateTime,Time] finish the date for the distribution loss factor value
680
+ # @return [Array(Hash)] array of hashes of start,finish and value
681
+ def tni_values(start=DateTime.now,finish=DateTime.now)
682
+ raise 'No TNI set, ensure that you have set the value either via the update_from_msats! function or manually' if @tni.nil?
683
+ raise 'TNI is invalid' unless TNI_CODES.keys.include?(@tni)
684
+ raise 'Invalid start' unless [DateTime,Time].include?(start.class)
685
+ raise 'Invalid finish' unless [DateTime,Time].include?(finish.class)
686
+ raise 'start cannot be after finish' if start > finish
687
+ possible_values = TNI_CODES[@tni].reject{|x| start > DateTime.parse(x['ToDate']) || finish < DateTime.parse(x['FromDate']) }
688
+ tni_values = []
689
+ if possible_values.length == 0
690
+ nil
691
+ else
692
+ possible_values.each do |possible_value|
693
+ tni_values += possible_value['mlf_data']['loss_factors'].reject{|x| start > DateTime.parse(x['finish']) || finish < DateTime.parse(x['start']) }
694
+ end
695
+ end
696
+ end
697
+
664
698
  # ######### #
665
699
  protected
666
700
  # ######### #
@@ -22,7 +22,7 @@
22
22
  # @author Joel Courtney <euphemize@gmail.com>
23
23
  module AEMO
24
24
  # aemo version
25
- VERSION = '0.1.20'
25
+ VERSION = '0.1.21'
26
26
 
27
27
  # aemo version split amongst different revisions
28
28
  MAJOR_VERSION, MINOR_VERSION, REVISION = VERSION.split('.').map(&:to_i)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aemo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Courtney
@@ -108,7 +108,7 @@ dependencies:
108
108
  version: '4.2'
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: 4.2.6
111
+ version: 4.2.0
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
@@ -118,7 +118,7 @@ dependencies:
118
118
  version: '4.2'
119
119
  - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: 4.2.6
121
+ version: 4.2.0
122
122
  - !ruby/object:Gem::Dependency
123
123
  name: bundler
124
124
  requirement: !ruby/object:Gem::Requirement