@classmethod
def init_from_dict(cls, pvarray_params, param_names=None):
    """Instantiate ordered PV array from dictionary of parameters

        Parameters
        ----------
        pvarray_params : dict
            The parameters defining the PV array
        param_names : list of str, optional
            List of parameter names to pass to surfaces (Default = None)

        Returns
        -------
        OrderedPVArray
            Initialized Ordered PV Array
        """
    return cls(axis_azimuth=pvarray_params['axis_azimuth'], gcr=
        pvarray_params['gcr'], pvrow_height=pvarray_params['pvrow_height'],
        n_pvrows=pvarray_params['n_pvrows'], pvrow_width=pvarray_params[
        'pvrow_width'], cut=pvarray_params.get('cut', {}), param_names=
        param_names)
