diff --git a/README.md b/README.md index 321663d19d..965dbd1240 100755 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ pip install naturf ### Check out a quickstart tutorial to run `naturf` -Run `naturf` using the quickstart tutorial: [`naturf` Quickstarter](https://immm-sfa.github.io/naturf/quickstarter.html) +Run `naturf`! Check out the [`naturf` ipynb Quickstarter](https://github.com/IMMM-SFA/naturf/blob/main/notebooks/quickstarter.ipynb) or the [`naturf` Python Quickstarter](https://immm-sfa.github.io/naturf/quickstarter.html). ### User guide diff --git a/notebooks/quickstarter.ipynb b/notebooks/quickstarter.ipynb index f3f707d0e3..7f5b70c2a4 100644 --- a/notebooks/quickstarter.ipynb +++ b/notebooks/quickstarter.ipynb @@ -22,6 +22,7 @@ }, "outputs": [], "source": [ + "from hamilton import telemetry\n", "from importlib.resources import files\n", "from naturf import driver" ] @@ -33,7 +34,7 @@ "source": [ "## Case 1\n", "\n", - "`naturf` requires two inputs: an input dictionary with the location of the shapefile, and a list of the desired outputs. For this first case, we can look at three outputs: `plan_area_fraction`, `area_weighted_mean_of_building_heights`, and `sky_view_factor`." + "`naturf` requires two inputs: an input dictionary with the location of the input buildings shapefile, and a list of the desired outputs. For this first case, we can look at three outputs: `plan_area_fraction`, `area_weighted_mean_of_building_heights`, and `sky_view_factor`." ] }, { @@ -50,22 +51,23 @@ "outputs_hidden": false } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: Hamilton collects completely anonymous data about usage. This will help us improve Hamilton over time. See https://github.com/dagworks-inc/hamilton#usage-analytics--data-privacy for details.\n" - ] - } - ], + "outputs": [], "source": [ "input_shapefile_path = str(files(\"naturf.data\").joinpath(\"C-5.shp\"))\n", "\n", "inputs = {\n", " \"input_shapefile\": input_shapefile_path,\n", "}\n", - "outputs = [\"plan_area_fraction\",\"area_weighted_mean_of_building_heights\",\"sky_view_factor\"]\n", + "\n", + "outputs = [\n", + " \"plan_area_fraction\",\n", + " \"area_weighted_mean_of_building_heights\",\n", + " \"sky_view_factor\"\n", + " ]\n", + "\n", + "# Disable Hamilton anonymous user data tracking\n", + "telemetry.disable_telemetry()\n", + "\n", "model = driver.Model(inputs, outputs)" ] }, @@ -74,7 +76,11 @@ "id": "c0f999e9", "metadata": {}, "source": [ - "Render the Directed Acyclic Graph(DAG) to show which functions the model calls in order to create the desired output. Note that the model doesn't execute!" + "Render the Directed Acyclic Graph (DAG) to show which functions the model calls in order to create the desired output. Note that the model doesn't execute!\n", + "\n", + "Note: you will need [graphviz](https://graphviz.org/download/) to visualize the Directed Acyclic Graph (DAG)\n", + "\n", + "```pip install graphviz```" ] }, { @@ -98,392 +104,392 @@ "\n", "\n", - "\n", "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "cluster__legend\n", - "\n", - "Legend\n", - "\n", - "\n", - "\n", - "wall_length\n", - "\n", - "wall_length\n", - "DataFrame\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area\n", - "\n", - "buildings_intersecting_plan_area\n", - "GeoDataFrame\n", - "\n", - "\n", - "\n", - "wall_length->buildings_intersecting_plan_area\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "plan_area_fraction\n", - "\n", - "plan_area_fraction\n", - "Series\n", - "\n", - "\n", - "\n", - "average_distance_between_buildings\n", - "\n", - "average_distance_between_buildings\n", - "Series\n", - "\n", - "\n", - "\n", - "sky_view_factor\n", - "\n", - "sky_view_factor\n", - "Series\n", - "\n", - "\n", - "\n", - "average_distance_between_buildings->sky_view_factor\n", - "\n", - "\n", + "\n", + "Legend\n", "\n", "\n", - "\n", + "\n", "input_shapefile_df\n", - "\n", - "input_shapefile_df\n", - "GeoDataFrame\n", + "\n", + "input_shapefile_df\n", + "GeoDataFrame\n", "\n", "\n", - "\n", + "\n", "target_crs\n", - "\n", - "target_crs\n", - "CRS\n", + "\n", + "target_crs\n", + "CRS\n", "\n", "\n", - "\n", + "\n", "input_shapefile_df->target_crs\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "standardize_column_names_df\n", - "\n", - "standardize_column_names_df\n", - "GeoDataFrame\n", + "\n", + "standardize_column_names_df\n", + "GeoDataFrame\n", "\n", "\n", - "\n", + "\n", "input_shapefile_df->standardize_column_names_df\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry\n", - "\n", - "building_geometry\n", - "GeoSeries\n", + "\n", + "\n", + "filter_height_range\n", + "\n", + "filter_height_range\n", + "GeoDataFrame\n", "\n", - "\n", - "\n", - "total_plan_area_geometry\n", - "\n", - "total_plan_area_geometry\n", - "GeoSeries\n", + "\n", + "\n", + "building_height\n", + "\n", + "building_height\n", + "GeoSeries\n", "\n", - "\n", - "\n", - "building_geometry->total_plan_area_geometry\n", - "\n", - "\n", + "\n", + "\n", + "filter_height_range->building_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "building_id\n", + "\n", + "building_id\n", + "GeoSeries\n", + "\n", + "\n", + "\n", + "filter_height_range->building_id\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "building_geometry\n", + "\n", + "building_geometry\n", + "GeoSeries\n", + "\n", + "\n", + "\n", + "filter_height_range->building_geometry\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "building_area\n", - "\n", - "building_area\n", - "Series\n", + "\n", + "building_area\n", + "Series\n", "\n", - "\n", - "\n", - "building_geometry->building_area\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area\n", + "\n", + "buildings_intersecting_plan_area\n", + "GeoDataFrame\n", "\n", - "\n", - "\n", - "wall_angle_direction_length\n", - "\n", - "wall_angle_direction_length\n", - "DataFrame\n", + "\n", + "\n", + "building_area->buildings_intersecting_plan_area\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry->wall_angle_direction_length\n", - "\n", - "\n", + "\n", + "\n", + "plan_area_fraction\n", + "\n", + "plan_area_fraction\n", + "Series\n", "\n", - "\n", - "\n", - "total_plan_area\n", - "\n", - "total_plan_area\n", - "Series\n", + "\n", + "\n", + "area_weighted_mean_of_building_heights\n", + "\n", + "area_weighted_mean_of_building_heights\n", + "Series\n", "\n", - "\n", - "\n", - "total_plan_area->plan_area_fraction\n", - "\n", - "\n", + "\n", + "\n", + "sky_view_factor\n", + "\n", + "sky_view_factor\n", + "Series\n", "\n", - "\n", + "\n", + "\n", + "building_height->sky_view_factor\n", + "\n", + "\n", + "\n", + "\n", "\n", - "target_crs->buildings_intersecting_plan_area\n", - "\n", + "building_height->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_plan_area\n", - "\n", - "building_plan_area\n", - "Series\n", + "\n", + "\n", + "total_plan_area_geometry\n", + "\n", + "total_plan_area_geometry\n", + "GeoSeries\n", "\n", - "\n", - "\n", - "building_plan_area->plan_area_fraction\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area\n", + "\n", + "total_plan_area\n", + "Series\n", "\n", "\n", - "\n", + "\n", "total_plan_area_geometry->total_plan_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "total_plan_area_geometry->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "filter_height_range\n", - "\n", - "filter_height_range\n", - "GeoDataFrame\n", - "\n", - "\n", - "\n", - "standardize_column_names_df->filter_height_range\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "area_weighted_mean_of_building_heights\n", - "\n", - "area_weighted_mean_of_building_heights\n", - "Series\n", + "\n", + "\n", + "wall_angle_direction_length\n", + "\n", + "wall_angle_direction_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "filter_height_range->building_geometry\n", - "\n", - "\n", + "\n", + "\n", + "wall_length\n", + "\n", + "wall_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "building_id\n", - "\n", - "building_id\n", - "GeoSeries\n", + "\n", + "\n", + "wall_angle_direction_length->wall_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "filter_height_range->building_id\n", - "\n", - "\n", + "\n", + "\n", + "average_distance_between_buildings\n", + "\n", + "average_distance_between_buildings\n", + "Series\n", "\n", - "\n", - "\n", - "building_height\n", - "\n", - "building_height\n", - "GeoSeries\n", + "\n", + "\n", + "average_distance_between_buildings->sky_view_factor\n", + "\n", + "\n", "\n", - "\n", - "\n", - "filter_height_range->building_height\n", - "\n", - "\n", + "\n", + "\n", + "target_crs->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->building_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "building_id->buildings_intersecting_plan_area\n", + "\n", "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->area_weighted_mean_of_building_heights\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area->plan_area_fraction\n", + "\n", + "\n", "\n", "\n", "\n", "distance_between_buildings\n", - "\n", - "distance_between_buildings\n", - "Series\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->distance_between_buildings\n", - "\n", - "\n", + "\n", + "distance_between_buildings\n", + "Series\n", "\n", "\n", - "\n", + "\n", "distance_between_buildings->average_distance_between_buildings\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "building_id->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_area->buildings_intersecting_plan_area\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "building_plan_area\n", + "\n", + "building_plan_area\n", + "Series\n", "\n", - "\n", - "\n", - "building_height->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "building_plan_area->plan_area_fraction\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "building_height->sky_view_factor\n", - "\n", - "\n", + "wall_length->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "wall_angle_direction_length->wall_length\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->area_weighted_mean_of_building_heights\n", + "\n", + "\n", "\n", - "\n", - "\n", - "_input_shapefile_df_inputs\n", - "\n", - "input_shapefile\n", - "str\n", + "\n", + "\n", + "buildings_intersecting_plan_area->distance_between_buildings\n", + "\n", + "\n", "\n", - "\n", - "\n", - "_input_shapefile_df_inputs->input_shapefile_df\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->building_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "_building_plan_area_inputs\n", - "\n", - "join_predicate\n", - "str\n", - "join_rsuffix\n", - "str\n", + "\n", + "\n", + "building_geometry->building_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "_building_plan_area_inputs->building_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->total_plan_area_geometry\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "building_geometry->wall_angle_direction_length\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "building_geometry->buildings_intersecting_plan_area\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "standardize_column_names_df->filter_height_range\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "_input_shapefile_df_inputs\n", + "\n", + "input_shapefile\n", + "str\n", + "\n", + "\n", + "\n", + "_input_shapefile_df_inputs->input_shapefile_df\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "_total_plan_area_geometry_inputs\n", - "\n", - "radius\n", - "int\n", - "cap_style\n", - "int\n", + "\n", + "cap_style\n", + "int\n", + "radius\n", + "int\n", "\n", "\n", - "\n", + "\n", "_total_plan_area_geometry_inputs->total_plan_area_geometry\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "_building_plan_area_inputs\n", + "\n", + "join_rsuffix\n", + "str\n", + "join_predicate\n", + "str\n", + "\n", + "\n", + "\n", + "_building_plan_area_inputs->building_plan_area\n", + "\n", + "\n", "\n", "\n", "\n", "_buildings_intersecting_plan_area_inputs\n", - "\n", - "join_predicate\n", - "str\n", - "join_lsuffix\n", - "str\n", - "join_type\n", - "str\n", - "join_rsuffix\n", - "str\n", + "\n", + "join_rsuffix\n", + "str\n", + "join_lsuffix\n", + "str\n", + "join_type\n", + "str\n", + "join_predicate\n", + "str\n", "\n", "\n", - "\n", + "\n", "_buildings_intersecting_plan_area_inputs->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "input\n", - "\n", - "input\n", + "\n", + "input\n", "\n", "\n", "\n", "function\n", - "\n", - "function\n", + "\n", + "function\n", "\n", "\n", "\n", "output\n", - "\n", - "output\n", + "\n", + "output\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -492,8 +498,6 @@ } ], "source": [ - "# Note: you will need graphviz to visualize the Directed Acyclic Graph (DAG)\n", - "# https://graphviz.org/download/\n", "model.graph()" ] }, @@ -524,7 +528,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Naturf DAG -> Execution Complete! : 100%|██████████████| 19/19 [00:05<00:00, 3.26funcs/s]\n" + "Naturf DAG -> Execution Complete! : 100%|██████████████| 19/19 [00:08<00:00, 2.29funcs/s]\n" ] } ], @@ -616,9 +620,11 @@ "id": "c9b9c2a3-5036-4b73-bc35-bea844982c7a", "metadata": {}, "source": [ - "## Case 2\n", + "## Case 2: Full Model Run\n", "\n", - "Now we can run the full model in order to get the required inputs to WRF. WRF requires two files: a binary file with the urban parameter data gridded and written row-by-row into binary and an index file that tells WRF where to put and how to display the data. See the [WRF User Guide](https://homepages.see.leeds.ac.uk/~lecrrb/wrf/aRWUsersGuide.pdf) for more information. The nodes `write_binary` and `write_index` will write the required files to the working directory." + "Here we run the full model in order to get the required inputs to WRF. WRF requires two files: a binary file with the urban parameter data gridded and written row-by-row into binary and an index file that tells WRF where to put and how to display the data. See the [WRF User Guide](https://homepages.see.leeds.ac.uk/~lecrrb/wrf/aRWUsersGuide.pdf) for more information. The nodes `write_binary` and `write_index` will write the required files to the working directory.\n", + "\n", + "We include `merge_parameters` here to better demonstrate the output DataFrame, if you don't include it in the run, the output DataFrame shows only `write_binary` and `write_index`. This is great when you're running the model to create outputs for WRF, but not great for visualizing the output parameters. " ] }, { @@ -628,7 +634,12 @@ "metadata": {}, "outputs": [], "source": [ - "outputs = [\"merge_parameters\", \"write_binary\", \"write_index\"]\n", + "outputs = [\n", + " \"merge_parameters\",\n", + " \"write_binary\", \n", + " \"write_index\",\n", + " ]\n", + "\n", "model = driver.Model(inputs, outputs)" ] }, @@ -646,1008 +657,1011 @@ "\n", "\n", - "\n", "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "cluster__legend\n", - "\n", - "Legend\n", + "\n", + "Legend\n", "\n", - "\n", + "\n", "\n", - "wall_length\n", - "\n", - "wall_length\n", - "DataFrame\n", + "mean_building_height\n", + "\n", + "mean_building_height\n", + "Series\n", "\n", - "\n", - "\n", - "building_surface_area\n", - "\n", - "building_surface_area\n", - "Series\n", + "\n", + "\n", + "height_to_width_ratio\n", + "\n", + "height_to_width_ratio\n", + "Series\n", "\n", - "\n", - "\n", - "wall_length->building_surface_area\n", - "\n", - "\n", + "\n", + "\n", + "mean_building_height->height_to_width_ratio\n", + "\n", + "\n", "\n", - "\n", - "\n", - "buildings_intersecting_plan_area\n", - "\n", - "buildings_intersecting_plan_area\n", - "GeoDataFrame\n", + "\n", + "\n", + "merge_parameters\n", + "\n", + "merge_parameters\n", + "GeoDataFrame\n", "\n", - "\n", - "\n", - "wall_length->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "mean_building_height->merge_parameters\n", + "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "average_distance_between_buildings\n", - "\n", - "average_distance_between_buildings\n", - "Series\n", + "frontal_area\n", + "\n", + "frontal_area\n", + "DataFrame\n", "\n", - "\n", - "\n", - "height_to_width_ratio\n", - "\n", - "height_to_width_ratio\n", - "Series\n", + "\n", + "\n", + "macdonald_roughness_length\n", + "\n", + "macdonald_roughness_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "average_distance_between_buildings->height_to_width_ratio\n", - "\n", - "\n", + "\n", + "\n", + "frontal_area->macdonald_roughness_length\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "sky_view_factor\n", - "\n", - "sky_view_factor\n", - "Series\n", + "\n", + "\n", + "frontal_area_index\n", + "\n", + "frontal_area_index\n", + "DataFrame\n", "\n", - "\n", - "\n", - "average_distance_between_buildings->sky_view_factor\n", - "\n", - "\n", + "\n", + "\n", + "frontal_area->frontal_area_index\n", + "\n", + "\n", "\n", "\n", "\n", "input_shapefile_df\n", - "\n", - "input_shapefile_df\n", - "GeoDataFrame\n", - "\n", - "\n", - "\n", - "target_crs\n", - "\n", - "target_crs\n", - "CRS\n", - "\n", - "\n", - "\n", - "input_shapefile_df->target_crs\n", - "\n", - "\n", + "\n", + "input_shapefile_df\n", + "GeoDataFrame\n", "\n", "\n", - "\n", + "\n", "standardize_column_names_df\n", - "\n", - "standardize_column_names_df\n", - "GeoDataFrame\n", + "\n", + "standardize_column_names_df\n", + "GeoDataFrame\n", "\n", "\n", - "\n", + "\n", "input_shapefile_df->standardize_column_names_df\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "merge_parameters\n", - "\n", - "merge_parameters\n", - "GeoDataFrame\n", + "\n", + "\n", + "target_crs\n", + "\n", + "target_crs\n", + "CRS\n", "\n", - "\n", - "\n", - "height_to_width_ratio->merge_parameters\n", - "\n", + "\n", + "\n", + "input_shapefile_df->target_crs\n", + "\n", + "\n", "\n", - "\n", - "\n", - "standard_deviation_of_building_heights\n", - "\n", - "standard_deviation_of_building_heights\n", - "Series\n", + "\n", + "\n", + "plan_area_density\n", + "\n", + "plan_area_density\n", + "DataFrame\n", "\n", - "\n", - "\n", - "standard_deviation_of_building_heights->merge_parameters\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "rooftop_area_density\n", + "\n", + "rooftop_area_density\n", + "DataFrame\n", "\n", - "\n", - "\n", - "target_crs->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "plan_area_density->rooftop_area_density\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "plan_area_density->merge_parameters\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "write_index\n", - "\n", - "write_index\n", - "str\n", + "\n", + "write_index\n", + "str\n", "\n", - "\n", - "\n", - "target_crs->write_index\n", - "\n", + "\n", + "\n", + "area_weighted_mean_of_building_heights\n", + "\n", + "area_weighted_mean_of_building_heights\n", + "Series\n", "\n", - "\n", - "\n", - "target_crs->merge_parameters\n", - "\n", - "\n", + "\n", + "\n", + "area_weighted_mean_of_building_heights->merge_parameters\n", + "\n", "\n", - "\n", - "\n", - "building_plan_area\n", - "\n", - "building_plan_area\n", - "Series\n", + "\n", + "\n", + "rooftop_area_density->merge_parameters\n", + "\n", "\n", - "\n", - "\n", - "plan_area_density\n", - "\n", - "plan_area_density\n", - "DataFrame\n", + "\n", + "\n", + "macdonald_roughness_length->merge_parameters\n", + "\n", "\n", - "\n", - "\n", - "building_plan_area->plan_area_density\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area_geometry\n", + "\n", + "total_plan_area_geometry\n", + "GeoSeries\n", "\n", - "\n", - "\n", - "plan_area_fraction\n", - "\n", - "plan_area_fraction\n", - "Series\n", + "\n", + "\n", + "total_plan_area\n", + "\n", + "total_plan_area\n", + "Series\n", "\n", - "\n", - "\n", - "building_plan_area->plan_area_fraction\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area_geometry->total_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "complete_aspect_ratio\n", - "\n", - "complete_aspect_ratio\n", - "Series\n", + "\n", + "\n", + "buildings_intersecting_plan_area\n", + "\n", + "buildings_intersecting_plan_area\n", + "GeoDataFrame\n", "\n", - "\n", - "\n", - "building_plan_area->complete_aspect_ratio\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area_geometry->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "mean_building_height\n", - "\n", - "mean_building_height\n", - "Series\n", + "\n", + "\n", + "wall_angle_direction_length\n", + "\n", + "wall_angle_direction_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "mean_building_height->height_to_width_ratio\n", - "\n", - "\n", + "\n", + "\n", + "wall_length\n", + "\n", + "wall_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "mean_building_height->merge_parameters\n", - "\n", + "\n", + "\n", + "wall_angle_direction_length->wall_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "filter_height_range\n", - "\n", - "filter_height_range\n", - "GeoDataFrame\n", + "\n", + "\n", + "raupach_roughness_length\n", + "\n", + "raupach_roughness_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "standardize_column_names_df->filter_height_range\n", - "\n", - "\n", + "\n", + "\n", + "frontal_area_index->raupach_roughness_length\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "rasterize_parameters\n", - "\n", - "rasterize_parameters\n", - "Dataset\n", + "\n", + "\n", + "raupach_displacement_height\n", + "\n", + "raupach_displacement_height\n", + "DataFrame\n", "\n", - "\n", - "\n", - "aggregate_rasters\n", - "\n", - "aggregate_rasters\n", - "Dataset\n", + "\n", + "\n", + "frontal_area_index->raupach_displacement_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "rasterize_parameters->aggregate_rasters\n", - "\n", - "\n", + "\n", + "\n", + "frontal_area_index->merge_parameters\n", + "\n", "\n", - "\n", - "\n", - "frontal_length\n", - "\n", - "frontal_length\n", - "DataFrame\n", + "\n", + "\n", + "average_distance_between_buildings\n", + "\n", + "average_distance_between_buildings\n", + "Series\n", "\n", - "\n", - "\n", - "frontal_area_density\n", - "\n", - "frontal_area_density\n", - "DataFrame\n", + "\n", + "\n", + "average_distance_between_buildings->height_to_width_ratio\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_length->frontal_area_density\n", - "\n", - "\n", + "\n", + "\n", + "sky_view_factor\n", + "\n", + "sky_view_factor\n", + "Series\n", "\n", - "\n", - "\n", - "frontal_area\n", - "\n", - "frontal_area\n", - "DataFrame\n", + "\n", + "\n", + "average_distance_between_buildings->sky_view_factor\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_length->frontal_area\n", - "\n", - "\n", + "\n", + "\n", + "height_to_width_ratio->merge_parameters\n", + "\n", + "\n", + "\n", + "\n", + "sky_view_factor->merge_parameters\n", + "\n", "\n", "\n", - "\n", + "\n", "grimmond_oke_displacement_height\n", - "\n", - "grimmond_oke_displacement_height\n", - "Series\n", + "\n", + "grimmond_oke_displacement_height\n", + "Series\n", "\n", "\n", - "\n", + "\n", "grimmond_oke_displacement_height->merge_parameters\n", - "\n", - "\n", + "\n", "\n", - "\n", - "\n", - "rooftop_area_density\n", - "\n", - "rooftop_area_density\n", - "DataFrame\n", + "\n", + "\n", + "building_surface_area\n", + "\n", + "building_surface_area\n", + "Series\n", "\n", - "\n", - "\n", - "plan_area_density->rooftop_area_density\n", - "\n", - "\n", + "\n", + "\n", + "complete_aspect_ratio\n", + "\n", + "complete_aspect_ratio\n", + "Series\n", "\n", - "\n", - "\n", - "plan_area_density->merge_parameters\n", - "\n", + "\n", + "\n", + "building_surface_area->complete_aspect_ratio\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "building_geometry\n", - "\n", - "building_geometry\n", - "GeoSeries\n", + "building_surface_area_to_plan_area_ratio\n", + "\n", + "building_surface_area_to_plan_area_ratio\n", + "Series\n", "\n", - "\n", - "\n", - "filter_height_range->building_geometry\n", - "\n", - "\n", + "\n", + "\n", + "building_surface_area->building_surface_area_to_plan_area_ratio\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "building_id\n", - "\n", - "building_id\n", - "GeoSeries\n", - "\n", - "\n", - "\n", - "filter_height_range->building_id\n", - "\n", - "\n", + "lot_area\n", + "\n", + "lot_area\n", + "Series\n", "\n", - "\n", - "\n", - "building_height\n", - "\n", - "building_height\n", - "GeoSeries\n", + "\n", + "\n", + "building_surface_area->lot_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "filter_height_range->building_height\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area->plan_area_density\n", + "\n", + "\n", "\n", - "\n", - "\n", - "raster_to_numpy\n", - "\n", - "raster_to_numpy\n", - "ndarray\n", + "\n", + "\n", + "total_plan_area->frontal_area_index\n", + "\n", + "\n", "\n", - "\n", - "\n", - "write_binary\n", - "\n", - "write_binary\n", - "NoneType\n", + "\n", + "\n", + "frontal_area_density\n", + "\n", + "frontal_area_density\n", + "DataFrame\n", "\n", - "\n", - "\n", - "raster_to_numpy->write_binary\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area->frontal_area_density\n", + "\n", + "\n", "\n", - "\n", - "\n", - "numpy_to_binary\n", - "\n", - "numpy_to_binary\n", - "bytes\n", + "\n", + "\n", + "total_plan_area->complete_aspect_ratio\n", + "\n", + "\n", "\n", - "\n", - "\n", - "raster_to_numpy->numpy_to_binary\n", - "\n", - "\n", + "\n", + "\n", + "total_plan_area->building_surface_area_to_plan_area_ratio\n", + "\n", + "\n", "\n", - "\n", - "\n", - "raster_to_numpy->write_index\n", - "\n", - "\n", + "\n", + "\n", + "plan_area_fraction\n", + "\n", + "plan_area_fraction\n", + "Series\n", "\n", - "\n", - "\n", - "building_surface_area_to_plan_area_ratio\n", - "\n", - "building_surface_area_to_plan_area_ratio\n", - "Series\n", + "\n", + "\n", + "total_plan_area->plan_area_fraction\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_surface_area_to_plan_area_ratio->merge_parameters\n", - "\n", - "\n", + "\n", + "\n", + "distance_between_buildings\n", + "\n", + "distance_between_buildings\n", + "Series\n", "\n", - "\n", - "\n", - "rooftop_area_density->merge_parameters\n", - "\n", + "\n", + "\n", + "distance_between_buildings->average_distance_between_buildings\n", + "\n", + "\n", "\n", - "\n", - "\n", - "vertical_distribution_of_building_heights\n", - "\n", - "vertical_distribution_of_building_heights\n", - "DataFrame\n", + "\n", + "\n", + "wall_length->building_surface_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "vertical_distribution_of_building_heights->merge_parameters\n", - "\n", + "\n", + "\n", + "wall_length->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "sky_view_factor->merge_parameters\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->mean_building_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "macdonald_roughness_length\n", - "\n", - "macdonald_roughness_length\n", - "DataFrame\n", + "\n", + "\n", + "buildings_intersecting_plan_area->area_weighted_mean_of_building_heights\n", + "\n", + "\n", "\n", - "\n", - "\n", - "macdonald_roughness_length->merge_parameters\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->distance_between_buildings\n", + "\n", + "\n", "\n", - "\n", - "\n", - "numpy_to_binary->write_binary\n", - "\n", - "\n", + "\n", + "\n", + "standard_deviation_of_building_heights\n", + "\n", + "standard_deviation_of_building_heights\n", + "Series\n", "\n", - "\n", - "\n", - "building_surface_area->building_surface_area_to_plan_area_ratio\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->standard_deviation_of_building_heights\n", + "\n", + "\n", "\n", - "\n", - "\n", - "lot_area\n", - "\n", - "lot_area\n", - "Series\n", + "\n", + "\n", + "frontal_length\n", + "\n", + "frontal_length\n", + "DataFrame\n", "\n", - "\n", - "\n", - "building_surface_area->lot_area\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->frontal_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_surface_area->complete_aspect_ratio\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->lot_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "wall_angle_direction_length\n", - "\n", - "wall_angle_direction_length\n", - "DataFrame\n", + "\n", + "\n", + "building_plan_area\n", + "\n", + "building_plan_area\n", + "Series\n", "\n", - "\n", - "\n", - "wall_angle_direction_length->wall_length\n", - "\n", - "\n", + "\n", + "\n", + "buildings_intersecting_plan_area->building_plan_area\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "macdonald_displacement_height\n", - "\n", - "macdonald_displacement_height\n", - "Series\n", + "\n", + "macdonald_displacement_height\n", + "Series\n", "\n", - "\n", - "\n", - "plan_area_fraction->macdonald_displacement_height\n", - "\n", - "\n", + "\n", + "\n", + "macdonald_displacement_height->macdonald_roughness_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "plan_area_fraction->merge_parameters\n", - "\n", + "\n", + "\n", + "macdonald_displacement_height->merge_parameters\n", + "\n", + "\n", + "\n", + "\n", + "raupach_roughness_length->merge_parameters\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "write_binary\n", + "\n", + "write_binary\n", + "NoneType\n", + "\n", + "\n", + "\n", + "filter_height_range\n", + "\n", + "filter_height_range\n", + "GeoDataFrame\n", + "\n", + "\n", + "\n", + "standardize_column_names_df->filter_height_range\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "frontal_area_density->merge_parameters\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "aggregate_rasters->raster_to_numpy\n", - "\n", - "\n", + "\n", + "\n", + "complete_aspect_ratio->merge_parameters\n", + "\n", + "\n", + "\n", + "\n", + "standard_deviation_of_building_heights->merge_parameters\n", + "\n", + "\n", + "\n", "\n", "\n", "\n", "grimmond_oke_roughness_length\n", - "\n", - "grimmond_oke_roughness_length\n", - "Series\n", + "\n", + "grimmond_oke_roughness_length\n", + "Series\n", "\n", "\n", - "\n", + "\n", "grimmond_oke_roughness_length->merge_parameters\n", - "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry->wall_angle_direction_length\n", - "\n", - "\n", + "\n", + "\n", + "building_surface_area_to_plan_area_ratio->merge_parameters\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area_geometry\n", - "\n", - "total_plan_area_geometry\n", - "GeoSeries\n", + "\n", + "\n", + "building_height\n", + "\n", + "building_height\n", + "GeoSeries\n", "\n", - "\n", - "\n", - "building_geometry->total_plan_area_geometry\n", - "\n", - "\n", + "\n", + "\n", + "filter_height_range->building_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry->buildings_intersecting_plan_area\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "building_id\n", + "\n", + "building_id\n", + "GeoSeries\n", "\n", - "\n", - "\n", - "building_area\n", - "\n", - "building_area\n", - "Series\n", + "\n", + "\n", + "filter_height_range->building_id\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry->building_area\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry\n", + "\n", + "building_geometry\n", + "GeoSeries\n", "\n", - "\n", - "\n", - "building_geometry->write_index\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "filter_height_range->building_geometry\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_geometry->merge_parameters\n", - "\n", - "\n", + "\n", + "\n", + "building_area\n", + "\n", + "building_area\n", + "Series\n", "\n", - "\n", - "\n", - "total_plan_area\n", - "\n", - "total_plan_area\n", - "Series\n", + "\n", + "\n", + "building_area->building_surface_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area->plan_area_density\n", - "\n", - "\n", + "\n", + "\n", + "building_area->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area->building_surface_area_to_plan_area_ratio\n", - "\n", - "\n", + "\n", + "\n", + "plan_area_fraction->macdonald_displacement_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area->plan_area_fraction\n", - "\n", - "\n", + "\n", + "\n", + "plan_area_fraction->merge_parameters\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area->frontal_area_density\n", - "\n", - "\n", + "\n", + "\n", + "vertical_distribution_of_building_heights\n", + "\n", + "vertical_distribution_of_building_heights\n", + "DataFrame\n", "\n", - "\n", - "\n", - "total_plan_area->complete_aspect_ratio\n", - "\n", - "\n", + "\n", + "\n", + "vertical_distribution_of_building_heights->merge_parameters\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_area_index\n", - "\n", - "frontal_area_index\n", - "DataFrame\n", + "\n", + "\n", + "building_height->frontal_area\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area->frontal_area_index\n", - "\n", - "\n", + "\n", + "\n", + "building_height->plan_area_density\n", + "\n", + "\n", "\n", - "\n", - "\n", - "raupach_roughness_length\n", - "\n", - "raupach_roughness_length\n", - "DataFrame\n", + "\n", + "\n", + "building_height->macdonald_roughness_length\n", + "\n", "\n", - "\n", - "\n", - "raupach_roughness_length->merge_parameters\n", - "\n", - "\n", + "\n", + "\n", + "building_height->sky_view_factor\n", + "\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area_geometry->total_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "building_height->grimmond_oke_displacement_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "total_plan_area_geometry->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "building_height->building_surface_area\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "building_height->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_area->macdonald_roughness_length\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "building_height->macdonald_displacement_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_area->frontal_area_index\n", - "\n", - "\n", + "\n", + "\n", + "building_height->raupach_roughness_length\n", + "\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "area_weighted_mean_of_building_heights\n", - "\n", - "area_weighted_mean_of_building_heights\n", - "Series\n", + "\n", + "\n", + "building_height->frontal_area_density\n", + "\n", + "\n", "\n", - "\n", - "\n", - "area_weighted_mean_of_building_heights->merge_parameters\n", - "\n", + "\n", + "\n", + "building_height->grimmond_oke_roughness_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "lot_area->macdonald_roughness_length\n", - "\n", + "\n", + "\n", + "building_height->vertical_distribution_of_building_heights\n", + "\n", + "\n", "\n", - "\n", - "\n", - "complete_aspect_ratio->merge_parameters\n", - "\n", + "\n", + "\n", + "building_height->raupach_displacement_height\n", + "\n", + "\n", "\n", - "\n", - "\n", - "macdonald_displacement_height->macdonald_roughness_length\n", - "\n", - "\n", + "\n", + "\n", + "target_crs->write_index\n", + "\n", + "\n", "\n", - "\n", - "\n", - "macdonald_displacement_height->merge_parameters\n", - "\n", + "\n", + "\n", + "target_crs->buildings_intersecting_plan_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "raupach_displacement_height\n", - "\n", - "raupach_displacement_height\n", - "DataFrame\n", + "\n", + "\n", + "target_crs->merge_parameters\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "raupach_displacement_height->raupach_roughness_length\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "raupach_displacement_height->merge_parameters\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->standard_deviation_of_building_heights\n", - "\n", - "\n", + "\n", "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->building_plan_area\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->mean_building_height\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->frontal_length\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->area_weighted_mean_of_building_heights\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->lot_area\n", - "\n", - "\n", + "\n", + "\n", + "aggregate_rasters\n", + "\n", + "aggregate_rasters\n", + "Dataset\n", "\n", - "\n", - "\n", - "distance_between_buildings\n", - "\n", - "distance_between_buildings\n", - "Series\n", + "\n", + "\n", + "raster_to_numpy\n", + "\n", + "raster_to_numpy\n", + "ndarray\n", "\n", - "\n", - "\n", - "buildings_intersecting_plan_area->distance_between_buildings\n", - "\n", - "\n", + "\n", + "\n", + "aggregate_rasters->raster_to_numpy\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "distance_between_buildings->average_distance_between_buildings\n", - "\n", - "\n", + "frontal_length->frontal_area\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_id->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "frontal_length->frontal_area_density\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "building_area->building_surface_area\n", - "\n", - "\n", + "building_id->buildings_intersecting_plan_area\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_area->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "rasterize_parameters\n", + "\n", + "rasterize_parameters\n", + "Dataset\n", "\n", - "\n", - "\n", - "frontal_area_index->raupach_roughness_length\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "merge_parameters->rasterize_parameters\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_area_index->raupach_displacement_height\n", - "\n", - "\n", + "\n", + "\n", + "lot_area->macdonald_roughness_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "frontal_area_index->merge_parameters\n", - "\n", + "\n", + "\n", + "building_plan_area->plan_area_density\n", + "\n", + "\n", "\n", - "\n", - "\n", - "merge_parameters->rasterize_parameters\n", - "\n", - "\n", + "\n", + "\n", + "building_plan_area->complete_aspect_ratio\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->grimmond_oke_displacement_height\n", - "\n", - "\n", + "\n", + "\n", + "building_plan_area->plan_area_fraction\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->plan_area_density\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "raster_to_numpy->write_index\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->vertical_distribution_of_building_heights\n", - "\n", - "\n", + "\n", + "\n", + "raster_to_numpy->write_binary\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->sky_view_factor\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "numpy_to_binary\n", + "\n", + "numpy_to_binary\n", + "bytes\n", "\n", - "\n", - "\n", - "building_height->macdonald_roughness_length\n", - "\n", - "\n", + "\n", + "\n", + "raster_to_numpy->numpy_to_binary\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->building_surface_area\n", - "\n", - "\n", + "\n", + "\n", + "numpy_to_binary->write_binary\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->frontal_area_density\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->write_index\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->grimmond_oke_roughness_length\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->total_plan_area_geometry\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->raupach_roughness_length\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->wall_angle_direction_length\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->frontal_area\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->buildings_intersecting_plan_area\n", + "\n", "\n", - "\n", - "\n", - "building_height->macdonald_displacement_height\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->building_area\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->raupach_displacement_height\n", - "\n", - "\n", + "\n", + "\n", + "building_geometry->merge_parameters\n", + "\n", + "\n", "\n", - "\n", - "\n", - "building_height->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "rasterize_parameters->aggregate_rasters\n", + "\n", + "\n", "\n", "\n", "\n", "_input_shapefile_df_inputs\n", - "\n", - "input_shapefile\n", - "str\n", + "\n", + "input_shapefile\n", + "str\n", "\n", "\n", - "\n", + "\n", "_input_shapefile_df_inputs->input_shapefile_df\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "_building_plan_area_inputs\n", - "\n", - "join_predicate\n", - "str\n", - "join_rsuffix\n", - "str\n", + "_write_index_inputs\n", + "\n", + "index_filename\n", + "str\n", "\n", - "\n", - "\n", - "_building_plan_area_inputs->building_plan_area\n", - "\n", - "\n", + "\n", + "\n", + "_write_index_inputs->write_index\n", + "\n", + "\n", "\n", "\n", "\n", "_total_plan_area_geometry_inputs\n", - "\n", - "radius\n", - "int\n", - "cap_style\n", - "int\n", + "\n", + "cap_style\n", + "int\n", + "radius\n", + "int\n", "\n", "\n", - "\n", + "\n", "_total_plan_area_geometry_inputs->total_plan_area_geometry\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "_buildings_intersecting_plan_area_inputs\n", - "\n", - "join_predicate\n", - "str\n", - "join_lsuffix\n", - "str\n", - "join_type\n", - "str\n", - "join_rsuffix\n", - "str\n", + "\n", + "join_rsuffix\n", + "str\n", + "join_lsuffix\n", + "str\n", + "join_type\n", + "str\n", + "join_predicate\n", + "str\n", "\n", "\n", - "\n", + "\n", "_buildings_intersecting_plan_area_inputs->buildings_intersecting_plan_area\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "_write_index_inputs\n", - "\n", - "index_filename\n", - "str\n", + "_building_plan_area_inputs\n", + "\n", + "join_rsuffix\n", + "str\n", + "join_predicate\n", + "str\n", "\n", - "\n", - "\n", - "_write_index_inputs->write_index\n", - "\n", - "\n", + "\n", + "\n", + "_building_plan_area_inputs->building_plan_area\n", + "\n", + "\n", "\n", "\n", "\n", "input\n", - "\n", - "input\n", + "\n", + "input\n", "\n", "\n", "\n", "function\n", - "\n", - "function\n", + "\n", + "function\n", "\n", "\n", "\n", "output\n", - "\n", - "output\n", + "\n", + "output\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -1669,7 +1683,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Naturf DAG -> Execution Complete! : 100%|███████████| 46/46 [00:08<00:00, 5.14funcs/s]\n", + "Naturf DAG -> Execution Complete! : 100%|███████████| 46/46 [00:13<00:00, 3.44funcs/s]\n", "WARNING: a single pandas index was found, but there are also 2 outputs without an index. Please check whether the dataframe created matches what what you expect to happen.\n" ] } @@ -1998,7 +2012,7 @@ "id": "6f8271e2", "metadata": {}, "source": [ - "We have 136 columns here, which are the 132 output parameters plus 4 other parameters: `merge_parameters.building_geometry`, `merge_parameters.building_count`, `write_binary`, and `write_index`. " + "We have 136 columns here, which are the 132 output parameters plus 4 other parameters: `merge_parameters.building_geometry`, `merge_parameters.building_count`, `write_binary`, and `write_index`. The first two are used for calculations in the model but are not output parameters, and the last two are the nodes that are called to output the required WRF files. " ] }, { @@ -2008,15 +2022,15 @@ "source": [ "## Case 3\n", "\n", - "If the user has their own shapefile to process, the config values and input path must be changed to reflect that data. The only config values that require changes are `DATA_ID_FIELD_NAME` and `DATA_HEIGHT_FIELD_NAME`. Config values can be changed by importing the `Settings` class from `naturf.config`. NOTE: Shapefiles input to `naturf` need to be in a projected coordinate system such as Albers Equal Area Conic. " + "If the user has their own shapefile to process, the config values and input path must be changed to reflect that data. The only config values that require changes are `DATA_ID_FIELD_NAME` and `DATA_HEIGHT_FIELD_NAME`. Config values can be changed by importing the `Settings` class from `naturf.config`. NOTE: Shapefiles input to `naturf` need to be in a projected coordinate system such as Albers Equal Area Conic. \n", + "\n", + "The cells below are in the `Raw` format, if you want to run them, switch them to the `Code` format. " ] }, { - "cell_type": "code", - "execution_count": null, - "id": "942dc4f2", + "cell_type": "raw", + "id": "e9f5fa66-7c36-4fec-bf04-e5a3a30913b3", "metadata": {}, - "outputs": [], "source": [ "from naturf.config import Settings\n", "\n", @@ -2035,11 +2049,9 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "88a43b7e", + "cell_type": "raw", + "id": "8c3095b3-96da-4bd6-af50-a336ccbad43d", "metadata": {}, - "outputs": [], "source": [ "inputs = {\"input_shapefile\": input_shapefile_path}\n", "outputs = [\"DESIRED_PARAMETERS_HERE\"]\n", @@ -2057,11 +2069,9 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "5c0d113c", + "cell_type": "raw", + "id": "eb31af72-71e6-4441-8c3b-00b2ea895539", "metadata": {}, - "outputs": [], "source": [ "outputs = [\"building_id\", \"merge_parameters\"]\n", "model = driver.Model(inputs, outputs)\n",