def create_proj_group(filename: str, parent: TextIO, area_def): """Create the top level group from projection information.""" projection_name = (area_def.area_id).replace(" ", "_") # if top group alrady made, return. if projection_name in parent: return projection_name # create top group for first time group = parent.create_group(projection_name) # add attributes from grid_defintion. if isinstance(area_def, SwathDefinition): group.attrs["height"], group.attrs["width"] = area_def.shape group.attrs["description"] = "No projection: native format" else: group.attrs["proj4_definition"] = area_def.proj4_string for a in ["height", "width"]: ds_attr = getattr(area_def, a, None) if ds_attr is None: pass else: group.attrs[a] = ds_attr group.attrs["cell_height"] = np.round(-area_def.pixel_size_y, 5) group.attrs["cell_width"] = np.round(area_def.pixel_size_x, 5) group.attrs["origin_x"] = area_def.pixel_upper_left[0] group.attrs["origin_y"] = area_def.pixel_upper_left[1] return projection_name