map2loop.thickness_calculator.MapData#
- class map2loop.thickness_calculator.MapData(tmp_path: str = '', verbose_level: VerboseLevel = VerboseLevel.ALL)#
 Bases:
objectA data structure containing all the map data loaded from map files
- raw_data#
 A list containing the raw geopanda data frames before any modification
- Type:
 list of geopandas.DataFrames
- data#
 A list containing the geopanda data frames or raster image of all the different map data
- Type:
 list of geopandas.DataFrames
- contacts#
 A dataframe containing the contacts between units in polylines
- Type:
 geopandas.DataFrame
- basal_contacts#
 A dataframe containing the contacts between units labelled with whether it is basal or not
- Type:
 geopandas.DataFrame
- filenames#
 A list of the filenames/urls of where to find the data to be loaded
- Type:
 list of data source filenames
- dirtyflags#
 A list of flags indicating whether the data has been loaded or dirtied
- Type:
 list of booleans
- data_states#
 Enums representing the state of each of the data sets
- Type:
 intEnum
- working_projection#
 A string containing the projection e.g. “EPSG:28350”
- Type:
 str
- bounding_box#
 The bounding box in cartesian coordinates with 6 elements
- Type:
 dict
- bounding_box_polygon#
 The bounding box in polygonal form
- Type:
 shapely.Polygon
- bounding_box_str#
 The bounding box in string form (used for url requests)
- Type:
 str
- config_filename#
 The filename of the json config file
- Type:
 str
- colour_filename#
 The filename of the csv colour table file (columns are unit name and colour in #000000 form)
- Type:
 str
- tmp_path#
 The path to the directory holding the temporary files
- Type:
 str
- verbose_level#
 A selection that defines how much console logging is output
- Type:
 
The initialiser for the map data
- Parameters:
 tmp_path (str, optional) – The directory for storing temporary files. Defaults to “”.
verbose_level (VerboseLevel, optional) – How much console output is sent. Defaults to VerboseLevel.ALL.
- __init__(tmp_path: str = '', verbose_level: VerboseLevel = VerboseLevel.ALL)#
 The initialiser for the map data
- Parameters:
 tmp_path (str, optional) – The directory for storing temporary files. Defaults to “”.
verbose_level (VerboseLevel, optional) – How much console output is sent. Defaults to VerboseLevel.ALL.
Methods
__init__([tmp_path, verbose_level])The initialiser for the map data
Calculate the bounding box and projection from the geology file
check_filename(datatype)Check the filename for datatype is set
Check all filenames to see if they are valid
check_map(datatype)Check the validity of a map data from file
colour_units(stratigraphic_units[, random])Add a colour column to the units in the stratigraphic units structure
Save out the geology and fault GeoDataFrames in WKT format This is used by map2model
extract_all_contacts([save_contacts])Extract the contacts between units in the geology GeoDataFrame
extract_basal_contacts(stratigraphic_column)Identify the basal unit of the contacts based on the stratigraphic column
get_bounding_box([polygon])Get the bounding box in dict or polygon form
Get the colour lookup table filename
Get the config filename
get_empty_dataframe(datatype)Create a basic empty geodataframe for a specified datatype
get_filename(datatype)Get a filename of a specified datatype
Get the list of codes to ignore
get_map_data(datatype)Get the data geopanda of the specified datatype
get_raw_map_data(datatype)Get the raw data geopanda of the specified datatype
get_value_from_raster(datatype, x, y)Get the value from a raster map at the specified point
get_value_from_raster_df(datatype, df)Add a 'Z' column to a dataframe with the heights from the 'X' and 'Y' coordinates
Get the working projection
Load all the map data for each datatype.
load_map_data(datatype)Load map data from file, reproject and clip it and then check data is valid
load_raster_map_data(datatype)Load raster map data from file, reproject and clip it and then check data is valid
Attempt to open the http url and unzip the file if required Note: This is specific to opening remotely hosted dtm data in geotiff format
Parse the fault shapefile data into a consistent format
Parse the fault orientations shapefile data into a consistent format
Parse the fold shapefile data into a consistent format
Parse the geology shapefile data into a consistent format
Parse the structure shapefile data into a consistent format
Creates the bounding box string from the bounding box dict
save_all_map_data(output_dir[, extension])Save all the map data to file
save_raw_map_data(output_dir, datatype[, ...])Save the map data from datatype to file
set_bounding_box(bounding_box)Set the bounding box of the map data
set_colour_filename(filename)Set the filename of the colour csv file
set_config_filename(filename[, ...])Set the config filename and update the config structure
set_filename(datatype, filename)Set the filename for a specific datatype
Set the shape/dtm filenames appropriate to the Australian state
set_ignore_codes(codes)Set the codes to ignore in the geology shapefile
set_working_projection(projection)Set the working projection for the map data
set_working_projection_on_map_data(datatype)Set the working projection on the GeoDataFrame structure or if already set reproject the data
update_filename_with_bounding_box(filename)Update the filename/url with the bounding box This replace all instances of {BBOX_STR} with the bounding_box_str
update_filename_with_projection(filename)Update the filename/url with the projection This replace all instances of {PROJ_STR} with the projection string
- calculate_bounding_box_and_projection()#
 Calculate the bounding box and projection from the geology file
- Returns:
 dict, str – The bounding box and projection of the geology shapefile
- check_filename(datatype: Datatype) bool#
 Check the filename for datatype is set
- Parameters:
 datatype (Datatype) – The datatype of the filename to check
- Returns:
 bool – true if the filename is set, false otherwise
- check_filenames() bool#
 Check all filenames to see if they are valid
- Returns:
 bool – true if the filenames are set, false otherwise
- check_map(datatype: Datatype)#
 Check the validity of a map data from file
- Parameters:
 datatype (Datatype) – The datatype to check
- colour_units(stratigraphic_units: DataFrame, random: bool = False) DataFrame#
 Add a colour column to the units in the stratigraphic units structure
- Parameters:
 stratigraphic_units (pandas.DataFrame) – The stratigraphic units data
random (bool, optional) – Flag of whether to add random colours to missing entries in the colour lookup table. Defaults to False.
- Returns:
 pandas.DataFrame – The modified units
- export_wkt_format_files()#
 Save out the geology and fault GeoDataFrames in WKT format This is used by map2model
- extract_all_contacts(save_contacts=True)#
 Extract the contacts between units in the geology GeoDataFrame
- extract_basal_contacts(stratigraphic_column: list, save_contacts=True)#
 Identify the basal unit of the contacts based on the stratigraphic column
- Parameters:
 stratigraphic_column (list) – The stratigraphic column to use
- get_bounding_box(polygon: bool = False)#
 Get the bounding box in dict or polygon form
- Parameters:
 polygon (bool, optional) – Flag to get the bounding box in polygon form. Defaults to False.
- Returns:
 dict or shapely.Polygon – The bounding box in the requested form
- get_colour_filename()#
 Get the colour lookup table filename
- Returns:
 str – The colour lookup table filename
- get_config_filename()#
 Get the config filename
- Returns:
 str – The config filename
- get_empty_dataframe(datatype: Datatype)#
 Create a basic empty geodataframe for a specified datatype
- Parameters:
 datatype (Datatype) – The datatype of the empty dataset
- Returns:
 geopandas.GeoDataFrame or None – The created geodataframe
- get_filename(datatype: Datatype)#
 Get a filename of a specified datatype
- Parameters:
 datatype (Datatype) – The datatype of the filename wanted
- Returns:
 string – The filename of the datatype specified
- get_ignore_codes() list#
 Get the list of codes to ignore
- Returns:
 list – The list of strings to ignore
- get_map_data(datatype: Datatype)#
 Get the data geopanda of the specified datatype
- Parameters:
 datatype (Datatype) – The datatype to retrieve
- Returns:
 geopandas.GeoDataFrame – The dataframe
- get_raw_map_data(datatype: Datatype)#
 Get the raw data geopanda of the specified datatype
- Parameters:
 datatype (Datatype) – The datatype to retrieve
- Returns:
 geopandas.GeoDataFrame – The raw data
- get_value_from_raster(datatype: Datatype, x, y)#
 Get the value from a raster map at the specified point
- Parameters:
 datatype (Datatype) – The datatype of the raster map to retrieve from
x (float or int) – The easting coordinate of the value
y (float or int) – The northing coordinate of the value
- Returns:
 float or int – The value at the point specified
- get_value_from_raster_df(datatype: Datatype, df: DataFrame)#
 Add a ‘Z’ column to a dataframe with the heights from the ‘X’ and ‘Y’ coordinates
- Parameters:
 datatype (Datatype) – The datatype of the raster map to retrieve from
df (pandas.DataFrame) – The original dataframe with ‘X’ and ‘Y’ columns
- Returns:
 pandas.DataFrame – The modified dataframe
- get_working_projection()#
 Get the working projection
- Returns:
 str – The working projection in “EPSG:<int>” form
- load_all_map_data()#
 Load all the map data for each datatype. Cycles through each type and loads it
- load_map_data(datatype: Datatype)#
 Load map data from file, reproject and clip it and then check data is valid
- Parameters:
 datatype (Datatype) – The datatype to load
- load_raster_map_data(datatype: Datatype)#
 Load raster map data from file, reproject and clip it and then check data is valid
- Parameters:
 datatype (Datatype) – The raster datatype to load
- open_http_query()#
 Attempt to open the http url and unzip the file if required Note: This is specific to opening remotely hosted dtm data in geotiff format
- Parameters:
 url (str) – The url to open
- Returns:
 _type_ – The geotiff file
- parse_fault_map() tuple#
 Parse the fault shapefile data into a consistent format
- Returns:
 tuple – A tuple of (bool: success/fail, str: failure message)
- parse_fault_orientations() tuple#
 Parse the fault orientations shapefile data into a consistent format
- Returns:
 tuple – A tuple of (bool: success/fail, str: failure message)
- parse_fold_map() tuple#
 Parse the fold shapefile data into a consistent format
- Returns:
 tuple – A tuple of (bool: success/fail, str: failure message)
- parse_geology_map() tuple#
 Parse the geology shapefile data into a consistent format
- Returns:
 tuple – A tuple of (bool: success/fail, str: failure message)
- parse_structure_map() tuple#
 Parse the structure shapefile data into a consistent format
- Returns:
 tuple – A tuple of (bool: success/fail, str: failure message)
- recreate_bounding_box_str()#
 Creates the bounding box string from the bounding box dict
- save_all_map_data(output_dir: str, extension: str = '.csv')#
 Save all the map data to file
- Parameters:
 output_dir (str) – The directory to save to
extension (str, optional) – The extension to use for the data. Defaults to “.csv”.
- save_raw_map_data(output_dir: str, datatype: Datatype, extension: str = '.shp.zip')#
 Save the map data from datatype to file
- Parameters:
 output_dir (str) – The directory to save to
datatype (Datatype) – The datatype of the geopanda to save
extension (str, optional) – The extension to use for the data. Defaults to “.csv”.
- set_bounding_box(bounding_box)#
 Set the bounding box of the map data
- Parameters:
 bounding_box (tuple or dict) – The bounding box to use for maps
- set_colour_filename(filename: Path | str)#
 Set the filename of the colour csv file
- Parameters:
 filename (str) – The csv colour look up table filename
- set_config_filename(filename: Path | str, legacy_format: bool = False, lower: bool = False)#
 Set the config filename and update the config structure
- Parameters:
 filename (str) – The filename of the config file
legacy_format (bool, optional) – Whether the file is in m2lv2 form. Defaults to False.
- set_filename(datatype: Datatype, filename: str)#
 Set the filename for a specific datatype
- Parameters:
 datatype (Datatype) – The datatype for the filename specified
filename (str) – The filename to store
- set_filenames_from_australian_state(state: str)#
 Set the shape/dtm filenames appropriate to the Australian state
- Parameters:
 state (str) – The abbreviated Australian state name
- Raises:
 ValueError – state string not in state list [‘WA’, ‘SA’, ‘QLD’, ‘NSW’, ‘TAS’, ‘VIC’, ‘ACT’, ‘NT’]
- set_ignore_codes(codes: list)#
 Set the codes to ignore in the geology shapefile
- Parameters:
 codes (list) – The list of codes to ignore
- set_working_projection(projection)#
 Set the working projection for the map data
- Parameters:
 projection (int or str) – The projection to use for map reprojection
- set_working_projection_on_map_data(datatype: Datatype)#
 Set the working projection on the GeoDataFrame structure or if already set reproject the data
- Parameters:
 datatype (Datatype) – The datatype to set or reproject
- update_filename_with_bounding_box(filename: str)#
 Update the filename/url with the bounding box This replace all instances of {BBOX_STR} with the bounding_box_str
- Parameters:
 filename (str) – The original filename
- Raises:
 ValueError – Filename is blank
- Returns:
 str – The modified filename
- update_filename_with_projection(filename: str)#
 Update the filename/url with the projection This replace all instances of {PROJ_STR} with the projection string
- Parameters:
 filename (str) – The original filename
- Raises:
 ValueError – Filename is blank
- Returns:
 str – The modified filename