Skip to content

Adding first cut of feature to add common names for replacement trees… #35

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
300 changes: 300 additions & 0 deletions data/botanical_commonname.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,300 @@
{"Acacia baileyana":"Bailey Acacia",
"Acacia baileyana 'Purpurea'":"Purple Acacia",
"Acacia cognata":"River Wattle",
"Acacia longifolia":"Sydney Golden Wattle",
"Acacia melanoxylon":"Black Acacia",
"Acacia stenophylla":"Shoestring Acacia",
"Acca sellowiana":"Pineapple Guava",
"Acer palmatum":"Japanese Maple",
"Acer paxii":"Acer Paxii",
"Acer rubrum":"Red Maple",
"Acer saccharinum":"Silver Maple",
"Acer spp.":"Maple",
"Acmena smithii":"Lilly-Pilly Tree",
"Afrocarpus gracilior":"Fern Pine",
"Afrocarpus macrophyllus":"Yew Pine",
"Agathis robusta":"Queensland Kauri",
"Agonis flexuosa":"Peppermint Tree",
"Ailanthus altissima":"Tree Of Heaven",
"Albizia julibrissin":"Silk Tree",
"Allocasuarina verticillata":"Drooping She-Oak",
"Alnus cordata":"Italian Alder",
"Alnus rhombifolia":"White Alder",
"Angophora costata":"Gum Myrtle",
"Araucaria bidwillii":"Bunya-Bunya",
"Araucaria columnaris":"Star Pine",
"Araucaria heterophylla":"Norfolk Island Pine",
"Arbutus 'Marina'":"Marina Arbutus",
"Arbutus unedo":"Strawberry Tree",
"Archontophoenix cunninghamiana":"King Palm",
"Asphalted well":"Asphalted Well",
"Auranticarpa rhombifolium":"Queensland Pittosporum",
"Bauhinia blakeana":"Hong Kong Orchid Tree",
"Bauhinia variegata":"Purple Orchid Tree",
"Betula pendula":"European White Birch",
"Brachychiton acerifolius":"Australian Flame Tree",
"Brachychiton populneus":"Bottle Tree",
"Brahea armata":"Mexican Blue Palm",
"Brahea brandegeei":"San Jose Hesper Palm",
"Brahea edulis":"Guadalupe Palm",
"Butia capitata":"Pindo Palm",
"Calocedrus decurrens":"Incense Cedar",
"Calodendrum capense":"Cape Chestnut",
"Carya illinoinensis":"Pecan",
"Casimiroa edulis":"White Sapote",
"Cassia leptophylla":"Gold Medallion Tree",
"Castanea mollissima":"Chinese Chestnut",
"Casuarina cunninghamiana":"River She-Oak",
"Catalpa hybrida":"Hybrid Catalpa",
"Cedrus atlantica":"Atlas Cedar",
"Cedrus atlantica 'Glauca'":"Cedar Blue Atlas",
"Cedrus deodara":"Deodar Cedar",
"Cedrus libani":"Cedar-Of-Lebanon",
"Ceiba speciosa":"Silk-Floss Tree",
"Ceratonia siliqua":"Carob",
"Cercidium floridum":"Blue Palo Verde",
"Cercis canadensis":"Eastern Redbud",
"Cercis canadensis 'Forest Pansy'":"Forest Pansy Redbud",
"Cercis canadensis 'Oklahoma'":"Oklahoma Redbud",
"Cercis canadensis texensis":"Texas Redbud",
"Cercis canadensis var. mexicana":"Mexican Redbud",
"Cercis occidentalis":"Western Redbud",
"Cercis spp.":"Redbud",
"Chamaerops humilis":"Mediterranean Fan Palm",
"Chilopsis linearis":"Desert Willow",
"Chionanthus retusus":"Chinese Fringe Tree",
"Chitalpa tashkentensis":"Chitalpa",
"Cinnamomum camphora":"Camphor Tree",
"Citrus limon":"Lemon",
"Citrus sinensis":"Orange",
"Cocculus laurifolius":"Laurel-Leafed Snailseed",
"Cordyline australis":"Dracaena",
"Corymbia citriodora":"Lemon-Scented Gum",
"Corymbia ficifolia":"Red Flowering Gum",
"Corymbia maculata":"Spotted Gum",
"Cotinus coggygria":"Smoke Tree",
"Cryptomeria japonica":"Japanese Cedar",
"Cupaniopsis anacardioides":"Carrotwood",
"Cupressocyparis x leylandii":"Leyland Cypress",
"Cupressus glabra":"Smoothbark Arizona Cypress",
"Cupressus sempervirens":"Italian Cypress",
"Cyathea cooperi":"Australian Tree Fern",
"Diospyros virginiana":"American Persimmon",
"Dodonaea viscosa":"Hopseed",
"Dracaena draco":"Dragon Tree",
"Duranta repens":"Brazilian Sky Flower",
"Dypsis decaryi":"Triangle Palm",
"Eriobotrya deflexa":"Bronze Loquat",
"Eriobotrya japonica":"Edible Loquat",
"Erythrina bidwillii":"Bidwills Coral Tree",
"Erythrina caffra":"Kaffirboom Coral Tree",
"Erythrina coralloides":"Naked Coral Tree",
"Eucalyptus amplifolia":"Cabbage Gum",
"Eucalyptus camaldulensis":"Red Gum",
"Eucalyptus cinerea":"Ash Gum",
"Eucalyptus cladocalyx":"Sugar Gum",
"Eucalyptus cornuta":"Yate",
"Eucalyptus deglupta":"Mindanao Gum",
"Eucalyptus globulus":"Blue Gum",
"Eucalyptus globulus 'Compacta'":"Dwarf Blue Gum",
"Eucalyptus grandis":"Flooded Gum",
"Eucalyptus lehmannii":"Bushy Yate",
"Eucalyptus leucoxylon 'Rosea'":"Lg.-Fruit Red-Flowering Gum",
"Eucalyptus nicholii":"Nichols Willow Leafed Peppermint",
"Eucalyptus polyanthemos":"Silver Dollar Gum",
"Eucalyptus pulverulenta":"Silver Mountain Gum",
"Eucalyptus robusta":"Swamp Mahogony",
"Eucalyptus rudis":"Desert Gum",
"Eucalyptus sideroxylon":"Red Ironbark",
"Eucalyptus torquata":"Coral Gum",
"Eucalyptus viminalis":"Manna Gum",
"Eugenia aggregata":"Cherry Of The Rio Grande",
"Ficus benjamina 'Pandora Variegata'":"Chinese Weeping Banyan",
"Ficus benjamina":"Weeping Fig",
"Ficus carica":"Edible Fig",
"Ficus elastica":"Rubber Tree",
"Ficus lyrata":"Fiddleleaf Fig",
"Ficus macrophylla":"Moreton Bay Fig",
"Ficus microcarpa 'Green Gem'":"Green Gem Indian Laurel Fig",
"Ficus microcarpa 'Nitida'":"Indian Laurel Fig",
"Ficus microcarpa":"Weeping Indian Laurel Fig",
"Ficus rubiginosa":"Rusty Leaf Fig",
"Ficus spp.":"Fig",
"Fraxinus angustifolia oxycarpa":"Raywood Ash",
"Fraxinus uhdei":"Shamel Ash",
"Fraxinus velutina":"Arizona Ash",
"Geijera parviflora":"Australian Willow",
"Ginkgo biloba 'Autumn Gold'":"Autumn Gold Ginkgo",
"Ginkgo biloba":"Maidenhair Tree",
"Gleditsia triacanthos":"Honey Locust",
"Grevillea robusta":"Silk Oak",
"Hakea suaveolens":"Sweet Hakea",
"Handroanthus chrysotrichus":"Golden Trumpet Tree",
"Handroanthus impetiginosus":"Pink Trumpet Tree",
"Harpephyllum caffrum":"Kaffir Plum",
"Hesperocyparis forbesii":"Tecate Cypress",
"Hesperocyparis macrocarpa":"Monterey Cypress",
"Heteromeles arbutifolia":"Toyon",
"Howea belmoreana":"Sentry Palm",
"Howea forsteriana":"Paradise Palm",
"Hymenosporum flavum":"Sweetshade",
"Ilex altaclarensis 'Wilsonii'":"Wilson Holly",
"Jacaranda mimosifolia":"Jacaranda",
"Jubaea chilensis":"Chilean Wine Palm",
"Juglans hindsii":"Walnut",
"Juniperus chinensis":"Chinese Juniper",
"Juniperus chinensis 'Torulosa'":"Hollywood Juniper",
"Koelreuteria bipinnata":"Chinese Flame Tree",
"Koelreuteria paniculata":"Goldenrain Tree",
"Lagerstroemia indica":"Crape Myrtle",
"Lagerstroemia indica 'Muskogee'":"Muskogee Crape Myrtle",
"Lagerstroemia indica 'Natchez'":"Natchez Crape Myrtle",
"Lagerstroemia indica 'Purple'":"Purple Crape Myrtle",
"Lagerstroemia indica 'Red'":"Red Crape Myrtle",
"Lagerstroemia indica 'Tuscarora'":"Tuscarora Crape Myrtle",
"Lagerstroemia indica 'White'":"White Crape Myrtle",
"Lagunaria patersonii":"Primrose Tree",
"Laurus nobilis":"Sweet Bay",
"Leptospermum laevigatum":"Australian Tea Tree",
"Leptospermum spp.":"Tea Tree",
"Ligustrum lucidum":"Glossy Privet",
"Liquidambar formosana":"Chinese Sweetgum",
"Liquidambar styraciflua":"American Sweetgum",
"Liquidambar styraciflua 'Rotundiloba'":"Round-Leafed Sweetgum",
"Liriodendron tulipifera":"Tulip Tree",
"Livistona chinensis":"Chinese Fountain Palm",
"Lophostemon confertus":"Brisbane Box",
"Lophostemon confertus 'Variegata'":"Variegated Brisbane Box",
"Lyonothamnus floribundus":"Fern-Leaf Catalina Ironwood",
"Macadamia integrifolia":"Smooth-Shell Macadamia",
"Macadamia tetraphylla":"Rough-Shell Macadamia",
"Magnolia champaca":"Champaca",
"Magnolia grandiflora 'Little Gem'":"Little Gem Magnolia",
"Magnolia grandiflora 'Samuel Sommer'":"Samuel Sommer Magnolia",
"Magnolia grandiflora":"Southern Magnolia",
"Malus floribunda":"Crabapple",
"Malus sylvestris":"Edible Apple",
"Maytenus boaria":"Mayten Tree",
"Melaleuca armillaris":"Drooping Melaleuca",
"Melaleuca citrina":"Lemon Bottlebrush",
"Melaleuca ericifolia":"Heath Melaleuca",
"Melaleuca genistifolia":"Melaleuca Decora",
"Melaleuca linariifolia":"Flaxleaf Paperbark",
"Melaleuca nesophila":"Pink Melaleuca",
"Melaleuca quinquenervia":"Cajeput Tree",
"Melaleuca spp.":"Melaleuca",
"Melaleuca viminalis":"Weeping Bottlebrush",
"Melia azedarach":"Chinaberry",
"Metrosideros excelsus":"New Zealand Christmas Tree",
"Morus alba":"White Mulberry",
"Morus spp.":"Mulberry Species",
"Musa spp.":"Banana Species",
"Myoporum laetum":"Myoporum",
"Myrtus communis":"True Myrtle",
"Nerium oleander":"Oleander",
"Nolina recurvata":"Ponytail Palm",
"No Replant":"No Replant",
"Olea europaea":"Olive",
"Other tree":"Other Tree",
"Palm spp.":"Palm",
"Parkinsonia X 'Desert Museum'":"Desert Museum Palo Verde",
"Persea americana":"Avocado",
"Persea borbonia":"Red Bay",
"Persea indica":"Madeira Bay Fig",
"Phoenix canariensis":"Canary Island Date Palm",
"Phoenix dactylifera":"Date Palm",
"Phoenix reclinata":"Senegal Palm",
"Phoenix roebelenii":"Pygmy Date Palm",
"Phoenix rupicola":"Cliff Date Palm",
"Pinus canariensis":"Canary Island Pine",
"Pinus eldarica":"Afghan Pine",
"Pinus halepensis":"Aleppo Pine",
"Pinus pinea":"Italian Stone Pine",
"Pinus radiata":"Monterey Pine",
"Pinus roxburghii":"Chir Pine",
"Pinus thunbergiana":"Japanese Black Pine",
"Pinus torreyana":"Torrey Pine",
"Pistacia chinensis":"Chinese Pistache",
"Pittosporum crassifolium":"Karo",
"Pittosporum phillyraeoides":"Willow Pittosporum",
"Pittosporum tobira":"Mock Orange",
"Pittosporum undulatum":"Victorian Box",
"Pittosporum viridiflorum":"Cape Pittosporum",
"Platanus hybrida":"London Plane",
"Platanus mexicana":"Mexican Sycamore",
"Platanus racemosa":"California Sycamore",
"Platanus X hispanica 'Bloodgood'":"Bloodgood Plane",
"Platanus X hispanica 'Columbia'":"Columbia Plane",
"Platanus X hispanica":"London Plane",
"Platanus X hispanica 'Yarwood'":"Yarwood Plane",
"Platycladus orientalis":"Oriental Arborvitae",
"Prunus armeniaca":"Apricot",
"Prunus blireiana":"Flowering Plum",
"Prunus caroliniana":"Carolina Laurel Cherry",
"Prunus cerasifera 'Atropurpurea'":"Purple-Leaf Flowering Plum",
"Prunus cerasifera 'Krater Vesuvius'":"Plum Krauters Vesuvius",
"Prunus cerasifera 'Newport'":"Newport Plum",
"Prunus cerasifera":"Purple-Leaf Plum",
"Prunus domestica":"Plum",
"Prunus ilicifolia":"Hollyleaf Cherry",
"Prunus ilicifolia ssp. Lyonii":"Catalina Cherry",
"Prunus lusitanica":"Portugal Laurel",
"Prunus persica":"Peach",
"Prunus spp.":"Stone Fruit",
"Psidium guajava":"Guava",
"Pyrus calleryana":"Ornamental Pear",
"Pyrus kawakamii":"Evergreen Pear",
"Quercus agrifolia":"Coast Live Oak",
"Quercus engelmannii":"Engelmann Oak",
"Quercus ilex":"Holly Oak",
"Quercus suber":"Cork Oak",
"Quercus tomentella":"Island Oak",
"Quillaja saponaria":"Soapbark Tree",
"Radermachera sinica":"China Doll",
"Ravenea rivularis":"Majesty Palm",
"Rhus lancea":"African Sumac",
"Rhus laurina":"Laurel Sumac",
"Robinia ambigua 'Idahoensis'":"Idaho Locust",
"Robinia pseudoacacia":"Black Locust",
"Roystonea regia":"Cuban Royal Palm",
"Salix babylonica":"Weeping Willow",
"Schefflera actinophylla":"Queensland Umbrella Tree",
"Schinus molle":"California Pepper",
"Schinus terebinthifolius":"Brazilian Pepper",
"Sequoia sempervirens":"Coast Redwood",
"Stenocarpus sinuatus":"Firewheel Tree",
"Strelitzia nicolai":"Giant Bird Of Paradise",
"Stump - not accessible":"Stump - Not Accessible",
"Stump":"Stump",
"Styphnolobium japonicum":"Japanese Pagoda Tree",
"Syagrus romanzoffianum":"Queen Palm",
"Syzygium paniculatum":"Brush Cherry",
"Syzygium spp.":"Eugenia",
"Taxodium distichum":"Bald Cypress",
"Taxodium huegelii":"Mexican Cypress",
"Tecoma stans":"Yellow Elder",
"Thuja occidentalis":"American Arborvitae",
"Tilia americana":"American Linden",
"Tipuana tipu":"Tipu",
"Trachycarpus fortunei":"Windmill Palm",
"Tristaniopsis laurina":"Water Gum",
"Ulmus parvifolia 'Allee'":"Allee Elm",
"Ulmus parvifolia":"Chinese Elm",
"Ulmus parvifolia 'Drake'":"Drake Elm",
"Ulmus propinqua 'Emerald Sunshine'":"Emerald Sunshine Elm",
"Ulmus pumila":"Siberian Elm",
"Umbellularia californica":"California Bay",
"Unidentified spp.":"Unidentified Tree",
"Unsuitable site":"Unsuitable Site",
"Vacant site":"Vacant Site",
"Viburnum spp.":"Viburnum",
"Washingtonia filifera":"California Fan Palm",
"Washingtonia filifera X robusta":"Filibuster Hybrid Fan Palm",
"Washingtonia robusta":"Mexican Fan Palm",
"Wisteria sinensis":"Chinese Wisteria",
"Wodyetia bifurcata":"Foxtail Palm",
"Yucca elephantipes":"Giant Yucca",
"Yucca gloriosa":"Spanish Dagger",
"Yucca spp.":"Yucca Species",
"Zelkova serrata":"Sawtooth Zelkova"
}
27 changes: 25 additions & 2 deletions pruning_planting.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def load_dataset(name):
return gdf


def planting_for_trees(trees):
def planting_for_trees(trees, name_lookup):
"""
Match a replacement species and planting year for
all the trees in a dataframe.
Expand Down Expand Up @@ -64,6 +64,26 @@ def nearest_planting_segment(tree):
trees = trees.rename(
columns={"YEAR": "planting_year", "REPLACE": "replacement_species"}
)

def add_replacement_common_name(row):

# Loop through multiple, comma separated scientific names and generate a comma separated list of
# the common names to add as a new column of the tress Dataframe.

common_names = ""

for scientific_name in [x.strip() for x in row["replacement_species"].split(',')]:
if scientific_name in name_lookup.keys():
common_names = common_names + name_lookup[scientific_name] + ", "
else:
common_names += "INVALID, "

common_names = common_names[:-2]

return common_names

trees["replacement_common_name"] = trees.apply(add_replacement_common_name, axis=1)

return trees


Expand Down Expand Up @@ -125,8 +145,11 @@ def get_pruning_zone(tree):
if len(sys.argv) > 2:
outfile = open(sys.argv[2], 'w')

with open('data/botanical_commonname.json') as json_lookup_file:
name_lookup = json.load(json_lookup_file)

trees = pd.read_json(infile)
trees = planting_for_trees(trees)
trees = planting_for_trees(trees, name_lookup)
trees = pruning_for_trees(trees)
rename_columns = {
"SEGMENT": "segment",
Expand Down
Loading