@classmethod<EOL><INDENT>def from_json(cls, data):<DEDENT>
keys = ('<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>')<EOL>for key in keys:<EOL><INDENT>if key not in data:<EOL><INDENT>data[key] = None<EOL><DEDENT><DEDENT>return cls(<EOL>data['<STR_LIT>'], data['<STR_LIT>'], data['<STR_LIT>'], data['<STR_LIT>'],<EOL>data['<STR_LIT>'], data['<STR_LIT>'], data['<STR_LIT>'],<EOL>data['<STR_LIT>'])<EOL>
Create an analysis period from a dictionary.
        Args:
            data: {
            st_month: An integer between 1-12 for starting month (default = 1)
            st_day: An integer between 1-31 for starting day (default = 1).
                    Note that some months are shorter than 31 days.
            st_hour: An integer between 0-23 for starting hour (default = 0)
            end_month: An integer between 1-12 for ending month (default = 12)
            end_day: An integer between 1-31 for ending day (default = 31)
                    Note that some months are shorter than 31 days.
            end_hour: An integer between 0-23 for ending hour (default = 23)
            timestep: An integer number from 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60
            }