コード例 #1
0
ファイル: coverage-test.py プロジェクト: curiousTauseef/NEMO
 def test_001(self):
     """Test 1"""
     c = nemo.Context()
     c.regions = [regions.nsw, regions.vic, regions.sa]
     c.track_exchanges = True
     c.verbose = 1
     nemo.run(c)
コード例 #2
0
    def test_010(self):
        """Running in one region only produces no interstate exchanges."""
        import pandas as pd
        for rgn in regions.All:
            if rgn is regions.snowy:
                continue
            self.context = nemo.Context()
            self.context.track_exchanges = True
            self.context.regions = [rgn]
            loadpoly = [k for k, v in rgn.polygons.items() if v > 0][0]
            nswpoly = [k for k, v in regions.nsw.polygons.items() if v > 0][0]
            qldpoly = [k for k, v in regions.qld.polygons.items() if v > 0][0]
            sapoly = [k for k, v in regions.sa.polygons.items() if v > 0][0]
            taspoly = [k for k, v in regions.tas.polygons.items() if v > 0][0]
            vicpoly = [k for k, v in regions.vic.polygons.items() if v > 0][0]

            self.context.generators = []
            for poly in [nswpoly, qldpoly, sapoly, taspoly, vicpoly]:
                self.context.generators.append(generators.OCGT(poly, 100))
            nemo.run(self.context, endhour=pd.Timestamp('2010-01-05'))
            self.assertEqual((self.context.exchanges[0] > 0).sum(), 1,
                             'Only one exchange > 0')
            # FIXME: we need a numpy array that can be indexed from 1
            self.assertTrue(
                self.context.exchanges[0, loadpoly - 1, loadpoly - 1] > 0,
                'Only rgn->rgn is > 0')
コード例 #3
0
ファイル: coverage-test.py プロジェクト: ftoorya343/NEMO
 def test_003(self):
     c = nemo.Context()
     # Add 25 DR generators so that the abbreviated legend is used.
     for i in range(25):
         dr = nemo.generators.DemandResponse(polygons.wildcard, 100, 0)
         c.generators += [dr]
     print(len(c.generators))
     nemo.run(c)
     utils.plot(c, filename='foo.png')
     os.unlink('foo.png')
コード例 #4
0
ファイル: coverage-test.py プロジェクト: curiousTauseef/NEMO
    def test_005(self):
        """Test Context summary with no cost generator."""
        c = nemo.Context()
        c.costs = costs.NullCosts()
        print(str(c))
        c.verbose = True
        print(str(c))
        c.regions = [regions.nsw]
        print(str(c))

        f = types.MethodType(lambda self, costs: None, c.generators[0])
        print(f)
        c.generators[0].summary = f
        print(c.generators[0].summary(None))
        print(str(c))
コード例 #5
0
ファイル: coverage-test.py プロジェクト: curiousTauseef/NEMO
    def test_002(self):
        """Test 2"""
        c = nemo.Context()
        # Make sure there is unserved energy by setting 2nd and
        # subsequent generator capacity to 0.
        for g in c.generators[1:]:
            g.set_capacity(0)
        nemo.run(c)
        utils.plot(c, filename='foo.png')
        os.unlink('foo.png')
        utils.plot(c, filename='foo.png', spills=True)
        os.unlink('foo.png')

        # Test limiting the x-range.
        xlim = [datetime(2010, 1, 1), datetime(2010, 1, 10)]
        utils.plot(c, filename='foo.png', xlim=xlim)
        os.unlink('foo.png')
コード例 #6
0
    def test_005(self):
        """Test Context summary with no cost generator."""
        from nemo import costs
        import types
        c = nemo.Context()
        c.costs = costs.NullCosts()
        print str(c)
        c.verbose = True
        print str(c)
        c.regions = [regions.nsw]
        print str(c)

        f = types.MethodType(lambda self, costs: None, c.generators[0], nemo.Context)
        print f
        c.generators[0].summary = f
        print c.generators[0].summary(None)
        print str(c)
コード例 #7
0
 def setUp(self):
     """Test harness setup."""
     self.context = nemo.Context()
     self.minload = math.floor(self.context.demand.sum(axis=1).min())
コード例 #8
0
ファイル: coverage-test.py プロジェクト: curiousTauseef/NEMO
 def test_004(self):
     """Test Context.__str__ method."""
     c = nemo.Context()
     print(str(c))
     c.regions = [regions.nsw]
     print(str(c))
コード例 #9
0
ファイル: stub.py プロジェクト: jdpipe/NEMO
"""A stub for profiling tools to run one basic simulation."""

import nemo
c = nemo.Context()
nemo.run(c)
コード例 #10
0
    type=str,
    help='Filename for evaluation trace (comma separated) [default: None]')
parser.add_argument('--version', action='version', version='1.0')
args = parser.parse_args()

if __name__ == '__main__' and args.list_scenarios:
    for key in sorted(scenarios.supply_scenarios):
        descr = scenarios.supply_scenarios[key].__doc__
        print '%20s' % key, '\t', descr.split('\n')[0]
    print
    sys.exit(0)

if __name__ == '__main__':
    print vars(args)

context = nemo.Context()
context.relstd = args.reliability_std

# Set the system non-synchronous penetration limit.
context.nsp_limit = args.nsp_limit
assert 0 <= context.nsp_limit <= 1

# Likewise for the minimum share of regional generation.
context.min_regional_generation = args.min_regional_generation
assert 0 <= context.min_regional_generation <= 1, \
    "Minimum regional generation must be in the interval [0,1]"

cost_class = costs.cost_switch(args.costs)
context.costs = cost_class(args.discount_rate, args.coal_price, args.gas_price,
                           args.ccs_storage_costs)
context.costs.carbon = args.carbon_price