def _from_json(json_data):
        """
        Creates a Earthquake from json data.
        
        :param json_data: The raw json data to parse
        :type json_data: dict
        :returns: Earthquake
        """
        try:
            coordinates = json_data['geometry']['coordinates']
        except KeyError:
            raise USGSException("The geometry information was not returned from the USGS website.")
        try:
            properties = json_data['properties']
        except KeyError:
            raise USGSException("One of the earthquakes did not have any property information")
        return Earthquake(Coordinate._from_json(coordinates),
                          _parse_float(properties.get('mag', '0'), 0.0),
                          properties.get('place', ''),
                          _parse_int(properties.get('time', '0'), 0),
                          properties.get('url', ''),
                          _parse_int(properties.get('felt', '0'), 0),
                          _parse_float(properties.get('cdi', '0'), 0.0),
                          _parse_float(properties.get('mmi', '0'), 0.0),
                          properties['alert'] if 'alert' in properties and properties['alert'] else '',
                          properties.get('status', ''),
                          _parse_int(properties.get('sig', '0'), 0),
                          json_data.get('id', ''),
                          _parse_float(properties.get('dmin', '0'), 0.0),
                          _parse_float(properties.get('rms', '0'), 0.0),
                          _parse_float(properties.get('gap', '0'), 0.0))