@ca-plant-list/ca-plant-list 0.4.42 → 0.4.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/exceptions.json +20 -2
- package/data/glossary/hypanthium.md +1 -0
- package/data/synonyms.csv +4 -28
- package/data/taxa.csv +53 -43
- package/data/text/Athyrium-filix-femina-var-cyclosorum.md +1 -0
- package/data/text/Prunus-ilicifolia-subsp-ilicifolia.md +1 -0
- package/data/text/Prunus-virginiana-var-demissa.md +1 -0
- package/data/text/Rosa-gymnocarpa.md +1 -1
- package/data/text/Rosa-spithamea.md +1 -0
- package/data/text/Stachys-rigida.md +1 -0
- package/data/text/Triglochin-concinna-var-concinna.md +1 -0
- package/data/text/Triglochin-maritima.md +1 -0
- package/ebook/css/main.css +17 -17
- package/lib/genera.js +2 -4
- package/lib/taxonomy/families.js +1 -1
- package/lib/taxonomy/taxon.js +2 -4
- package/lib/taxonomy/taxonomy.js +5 -5
- package/lib/tools/cch2.js +4 -0
- package/lib/tools/fna.js +29 -12
- package/lib/tools/inat.js +20 -7
- package/lib/tools/jepsoneflora.js +32 -21
- package/lib/tools/syncsv.js +7 -0
- package/lib/tools/synonyms.js +44 -0
- package/lib/utils/browser.js +47 -0
- package/package.json +11 -9
- package/scripts/cpl-tools.js +12 -0
- package/scripts/dev/publish.sh +0 -3
package/data/exceptions.json
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Aconitum columbianum": {
|
|
3
|
+
"calflora": { "notintaxondata": true }
|
|
4
|
+
},
|
|
5
|
+
"Blitum californicum": {
|
|
6
|
+
"calflora": { "notintaxondata": true }
|
|
7
|
+
},
|
|
8
|
+
"Blitum nuttallianum": {
|
|
9
|
+
"calflora": { "notintaxondata": true }
|
|
10
|
+
},
|
|
2
11
|
"Castilleja ambigua subsp. ambigua": {
|
|
3
12
|
"rpi": {
|
|
4
13
|
"translation-to-rpi": "Castilleja ambigua var. ambigua"
|
|
@@ -55,6 +64,7 @@
|
|
|
55
64
|
},
|
|
56
65
|
"Malacothamnus hallii": {
|
|
57
66
|
"comment": "in CNPS Rare Plant Inventory",
|
|
67
|
+
"inat": { "notintaxondata": true },
|
|
58
68
|
"jepson": {
|
|
59
69
|
"notineflora": true
|
|
60
70
|
},
|
|
@@ -88,7 +98,13 @@
|
|
|
88
98
|
"notineflora": true
|
|
89
99
|
}
|
|
90
100
|
},
|
|
91
|
-
"
|
|
101
|
+
"Piperia michaelii": { "rpi": { "translation": "Platanthera michaelii" } },
|
|
102
|
+
"Platanthera michaelii": {
|
|
103
|
+
"comment": "in CNPS Rare Plant Inventory as Piperia michaelii",
|
|
104
|
+
"rpi": {
|
|
105
|
+
"translation-to-rpi": "Piperia michaelii"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
92
108
|
"Ranunculus sceleratus var. sceleratus": {
|
|
93
109
|
"calflora": { "native": false }
|
|
94
110
|
},
|
|
@@ -100,7 +116,9 @@
|
|
|
100
116
|
},
|
|
101
117
|
"jepson": {
|
|
102
118
|
"notineflora": true
|
|
103
|
-
}
|
|
119
|
+
},
|
|
120
|
+
"inat": { "notintaxondata": true }
|
|
104
121
|
},
|
|
122
|
+
"Symphyotrichum occidentale": { "calflora": { "notintaxondata": true } },
|
|
105
123
|
"Veronica catenata": { "calflora": { "native": true } }
|
|
106
124
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
A tube or bowl shaped structure formed by the fused lower parts of the petals, sepals, and [stamens](./stamen.html).
|
package/data/synonyms.csv
CHANGED
|
@@ -151,7 +151,7 @@ Arceuthobium cyanocarpum,Arceuthobium campylopodum
|
|
|
151
151
|
Arceuthobium divaricatum,Arceuthobium campylopodum
|
|
152
152
|
Arceuthobium littorum,Arceuthobium campylopodum
|
|
153
153
|
Arceuthobium monticola,Arceuthobium campylopodum
|
|
154
|
-
Arceuthobium occidentale,Arceuthobium campylopodum
|
|
154
|
+
Arceuthobium occidentale,Arceuthobium campylopodum,INAT
|
|
155
155
|
Arceuthobium siskiyouense,Arceuthobium campylopodum
|
|
156
156
|
Arceuthobium tsugense,Arceuthobium campylopodum
|
|
157
157
|
Arceuthobium tsugense subsp. contortae,Arceuthobium campylopodum
|
|
@@ -242,8 +242,6 @@ Berberis dictyota,Berberis aquifolium var. dictyota,INAT
|
|
|
242
242
|
Berberis piperiana,Berberis aquifolium var. aquifolium
|
|
243
243
|
Blepharizonia plumosa subsp. plumosa,Blepharizonia plumosa
|
|
244
244
|
Blepharizonia plumosa subsp. viscida,Blepharizonia laxa
|
|
245
|
-
Blitum californicum,Chenopodium californicum,INAT
|
|
246
|
-
Blitum nuttallianum,Monolepis nuttalliana,INAT
|
|
247
245
|
Bloomeria aurea,Bloomeria crocea var. aurea
|
|
248
246
|
Bloomeria maritima,Muilla maritima
|
|
249
247
|
Bloomeria maritima var. serotina,Muilla maritima
|
|
@@ -311,7 +309,6 @@ Cakile edentula subsp. californica,Cakile edentula
|
|
|
311
309
|
Calamagrostis densa,Calamagrostis koelerioides
|
|
312
310
|
Calandrinia leeana,Lewisia leeana
|
|
313
311
|
Calandrinia menziesii var. macrocarpa,Calandrinia breweri
|
|
314
|
-
Calibrachoa parviflora,Petunia parviflora,INAT
|
|
315
312
|
Callitriche heterophylla subsp. bolanderi,Callitriche heterophylla var. bolanderi
|
|
316
313
|
Callitropsis macrocarpa,Hesperocyparis macrocarpa
|
|
317
314
|
Callitropsis sargentii,Hesperocyparis sargentii
|
|
@@ -424,7 +421,6 @@ Cheilanthes carlotta-halliae,Aspidotis carlotta-halliae
|
|
|
424
421
|
Cheilanthes covillei,Myriopteris covillei
|
|
425
422
|
Cheilanthes gracillima,Myriopteris gracillima
|
|
426
423
|
Cheilanthes intertexta,Myriopteris intertexta
|
|
427
|
-
Chenopodiastrum murale,Chenopodium murale,INAT
|
|
428
424
|
Chenopodium ambrosioides,Dysphania ambrosioides
|
|
429
425
|
Chenopodium ambrosioides var. suffruticosum,Dysphania ambrosioides
|
|
430
426
|
Chenopodium botrys,Dysphania botrys
|
|
@@ -541,9 +537,9 @@ Cryptantha hanseni,Cryptantha intermedia var. intermedia
|
|
|
541
537
|
Cryptantha intermedia var. rigida,Cryptantha juniperensis
|
|
542
538
|
Cryptantha nevadensis var. rigida,Cryptantha juniperensis
|
|
543
539
|
Cryptantha torreyana,Cryptantha torreyana var. pumila,INAT
|
|
544
|
-
Cupressus macrocarpa,Hesperocyparis macrocarpa
|
|
540
|
+
Cupressus macrocarpa,Hesperocyparis macrocarpa
|
|
545
541
|
Cupressus macrocarpa subsp. lobosensis,Hesperocyparis macrocarpa
|
|
546
|
-
Cupressus sargentii,Hesperocyparis sargentii
|
|
542
|
+
Cupressus sargentii,Hesperocyparis sargentii
|
|
547
543
|
Cupressus sargentii var. duttonii,Hesperocyparis sargentii
|
|
548
544
|
Cuscuta californica var. breviflora,Cuscuta occidentalis
|
|
549
545
|
Cuscuta formosana,Cuscuta japonica var. formosana
|
|
@@ -571,7 +567,6 @@ Danthonia californica var. californica,Danthonia californica
|
|
|
571
567
|
Danthonia racemosa,Rytidosperma racemosum
|
|
572
568
|
Datura stramonium var. tatula,Datura stramonium
|
|
573
569
|
Deinandra corymbosa subsp. macrocephala,Deinandra corymbosa
|
|
574
|
-
Delphinium ajacis,Consolida ajacis,INAT
|
|
575
570
|
Delphinium californicum var. interius,Delphinium californicum subsp. interius
|
|
576
571
|
Delphinium decorum var. patens,Delphinium patens subsp. patens
|
|
577
572
|
Delphinium emiliae,Delphinium variegatum subsp. variegatum
|
|
@@ -600,7 +595,6 @@ Dentaria californica var. cuneata,Cardamine californica
|
|
|
600
595
|
Dentaria californica var. integrifolia,Cardamine californica
|
|
601
596
|
Dentaria californica var. sinuata,Cardamine californica
|
|
602
597
|
Dentaria pachystigma var. dissectifolia,Cardamine californica
|
|
603
|
-
Deschampsia bolanderi,Scribneria bolanderi,INAT
|
|
604
598
|
Deschampsia holciformis,Deschampsia cespitosa subsp. holciformis
|
|
605
599
|
Dicentra chrysantha,Ehrendorferia chrysantha
|
|
606
600
|
Dichanthelium acuminatum,Panicum acuminatum,INAT
|
|
@@ -651,7 +645,6 @@ Draba verna var. verna,Draba verna
|
|
|
651
645
|
Dudleya cymosa subsp. gigantea,Dudleya cymosa subsp. cymosa
|
|
652
646
|
Echeveria brittonii,Sedum obtusatum
|
|
653
647
|
Echeveria obtusata,Sedum obtusatum
|
|
654
|
-
Echinochloa colona,Echinochloa colona,INAT
|
|
655
648
|
Echinochloa crus-galli subsp. spiralis,Echinochloa crus-galli
|
|
656
649
|
Echinochloa crus-galli var. zelayensis,Echinochloa crus-galli
|
|
657
650
|
Echinodorus berteroi var. lanceolatus,Echinodorus berteroi
|
|
@@ -681,8 +674,7 @@ Elytrigia intermedia subsp. intermedia,Elymus hispidus
|
|
|
681
674
|
Elytrigia intermedia var. intermedia,Elymus hispidus
|
|
682
675
|
Elytrigia pontica,Elymus ponticus
|
|
683
676
|
Elytrigia pontica subsp. pontica,Elymus ponticus
|
|
684
|
-
Emmenanthe penduliflora var. rosea,Emmenanthe rosea
|
|
685
|
-
Emmenanthe rosea,Emmenanthe rosea,INAT
|
|
677
|
+
Emmenanthe penduliflora var. rosea,Emmenanthe rosea
|
|
686
678
|
Ephedra nevadensis subvar. pluribracteata,Ephedra viridis
|
|
687
679
|
Ephedra nevadensis var. viridis,Ephedra viridis
|
|
688
680
|
Epilobium adenocaulon,Epilobium ciliatum subsp. ciliatum
|
|
@@ -946,8 +938,6 @@ Heracleum lanatum,Heracleum maximum
|
|
|
946
938
|
Herniaria cinerea,Herniaria hirsuta var. cinerea,INAT
|
|
947
939
|
Herniaria hirsuta subsp. cinerea,Herniaria hirsuta var. cinerea
|
|
948
940
|
Herpestris pilosa,Mimetanthe pilosa
|
|
949
|
-
Hesperocyparis macrocarpa,Hesperocyparis macrocarpa,INAT
|
|
950
|
-
Hesperocyparis sargentii,Hesperocyparis sargentii,INAT
|
|
951
941
|
Hesperomecon filiformis,Hesperomecon linearis
|
|
952
942
|
Hesperoscordum hyacinthinum,Triteleia hyacinthina
|
|
953
943
|
Hesperoscordum lacteum,Triteleia hyacinthina
|
|
@@ -1018,7 +1008,6 @@ Isopyrum stipitatum,Enemion stipitatum
|
|
|
1018
1008
|
Isotrema californicum,Aristolochia californica
|
|
1019
1009
|
Iva axillaris subsp. robustior,Iva axillaris
|
|
1020
1010
|
Iva axillaris var. robustior,Iva axillaris
|
|
1021
|
-
Jacobaea vulgaris,Senecio jacobaea,INAT
|
|
1022
1011
|
Johnstonella micromeres,Cryptantha micromeres
|
|
1023
1012
|
Juglans californica var. californica,Juglans californica
|
|
1024
1013
|
Juglans californica var. hindsii,Juglans hindsii
|
|
@@ -1242,7 +1231,6 @@ Madia madioides,Anisocarpus madioides
|
|
|
1242
1231
|
Mahonia dictyota,Berberis aquifolium var. dictyota
|
|
1243
1232
|
Mahonia nervosa var. mendocinensis,Berberis nervosa
|
|
1244
1233
|
Mahonia pinnata subsp. pinnata,Berberis pinnata subsp. pinnata
|
|
1245
|
-
Malacothamnus arcuatus var. elmeri,Malacothamnus hallii,INAT
|
|
1246
1234
|
Malacothamnus fremontii subsp. cercophorus,Malacothamnus fremontii var. fremontii
|
|
1247
1235
|
Malacothamnus hallii,Malacothamnus arcuatus var. elmeri
|
|
1248
1236
|
Malacothamnus howellii,Malacothamnus fremontii var. fremontii
|
|
@@ -1520,9 +1508,6 @@ Oxalis corniculata subsp. pilosa,Oxalis pilosa
|
|
|
1520
1508
|
Oxalis corniculata var. wrightii,Oxalis pilosa
|
|
1521
1509
|
Oxalis oregana f. smalliana,Oxalis smalliana
|
|
1522
1510
|
Oxalis oregana var. smalliana,Oxalis smalliana
|
|
1523
|
-
Oxybasis rubra,Chenopodium rubrum,INAT
|
|
1524
|
-
Oxybasis rubra var. humilis,Chenopodium rubrum var. humile,INAT
|
|
1525
|
-
Oxybasis rubra var. rubra,Chenopodium rubrum var. rubrum,INAT
|
|
1526
1511
|
Oxytheca inermis,Eriogonum inerme var. inerme
|
|
1527
1512
|
Papaver lemmonii,Papaver californicum
|
|
1528
1513
|
Parapholis cylindrica,Hainardia cylindrica,INAT
|
|
@@ -1610,7 +1595,6 @@ Phyla nodiflora var. rosea,Phyla nodiflora
|
|
|
1610
1595
|
Picris echioides,Helminthotheca echioides
|
|
1611
1596
|
Pinus benthamiana,Pinus ponderosa var. benthamiana
|
|
1612
1597
|
Pinus ponderosa subsp. benthamiana,Pinus ponderosa var. benthamiana
|
|
1613
|
-
Pinus ponderosa subsp. benthamiana,Pinus ponderosa var. pacifica,INAT
|
|
1614
1598
|
Pinus ponderosa var. pacifica,Pinus ponderosa var. benthamiana
|
|
1615
1599
|
Piperia elegans subsp. elegans,Platanthera elegans subsp. elegans
|
|
1616
1600
|
Piperia elegans var. elata,Platanthera elongata
|
|
@@ -1639,12 +1623,8 @@ Plantago major var. scopulorum,Plantago major
|
|
|
1639
1623
|
Plantago maritima var. californica,Plantago maritima
|
|
1640
1624
|
Plantago maritima var. juncoides,Plantago maritima
|
|
1641
1625
|
Plantago maritima var. maritima,Plantago maritima
|
|
1642
|
-
Platanthera elegans subsp. elegans,Piperia elegans subsp. elegans,INAT
|
|
1643
|
-
Platanthera elongata,Piperia elongata,INAT
|
|
1644
1626
|
Platanthera foetida,Platanthera unalascensis
|
|
1645
1627
|
Platanthera leucostachys,Platanthera dilatata var. leucostachys
|
|
1646
|
-
Platanthera michaelii,Piperia michaelii,INAT
|
|
1647
|
-
Platanthera transversa,Piperia transversa,INAT
|
|
1648
1628
|
Platystemon californicus var. ciliatus,Platystemon californicus
|
|
1649
1629
|
Platystemon californicus var. crinitus,Platystemon californicus
|
|
1650
1630
|
Platystemon californicus var. horridulus,Platystemon californicus
|
|
@@ -1744,7 +1724,6 @@ Prunella vulgaris var. atropurpurea,Prunella vulgaris var. lanceolata
|
|
|
1744
1724
|
Prunella vulgaris var. parviflora,Prunella vulgaris var. vulgaris
|
|
1745
1725
|
Prunus amygdalus,Prunus dulcis,INAT
|
|
1746
1726
|
Pseudognaphalium canescens subsp. beneolens,Pseudognaphalium beneolens
|
|
1747
|
-
Pseudognaphalium luteoalbum,Pseudognaphalium luteoalbum,INAT
|
|
1748
1727
|
Pseudognaphalium microcephalum var. thermale,Pseudognaphalium thermale
|
|
1749
1728
|
Psilocarphus globiferus,Psilocarphus brevissimus var. brevissimus
|
|
1750
1729
|
Psilocarphus globiferus,Psilocarphus chilensis
|
|
@@ -1805,7 +1784,6 @@ Rhamnus crocea subsp. ilicifolia,Rhamnus ilicifolia
|
|
|
1805
1784
|
Rhamnus crocea var. ilicifolia,Rhamnus ilicifolia
|
|
1806
1785
|
Rhamnus tomentella,Frangula californica subsp. tomentella
|
|
1807
1786
|
Rhamnus tomentella subsp. tomentella,Frangula californica subsp. tomentella
|
|
1808
|
-
Rhaponticum repens,Rhaponticum repens,INAT
|
|
1809
1787
|
Rhus aromatica subsp. trilobata,Rhus aromatica
|
|
1810
1788
|
Rhus aromatica var. simplicifolia,Rhus aromatica
|
|
1811
1789
|
Rhus aromatica var. trilobata,Rhus aromatica
|
|
@@ -2038,7 +2016,6 @@ Smilacina racemosa var. amplexicaulis,Maianthemum racemosum subsp. amplexicaule
|
|
|
2038
2016
|
Smilacina racemosa var. glabra,Maianthemum racemosum subsp. amplexicaule
|
|
2039
2017
|
Smilacina stellata,Maianthemum stellatum
|
|
2040
2018
|
Smilacina stellata var. sessilifolia,Maianthemum stellatum
|
|
2041
|
-
Solanum nitidibaccatum,Solanum physalifolium var. nitidibaccatum,INAT
|
|
2042
2019
|
Solanum nodiflorum,Solanum americanum
|
|
2043
2020
|
Solanum physalifolium var. nitidibaccatum,Solanum nitidibaccatum
|
|
2044
2021
|
Solidago californica,Solidago velutina subsp. californica
|
|
@@ -2093,7 +2070,6 @@ Streptanthus albidus subsp. peramoenus,Streptanthus glandulosus subsp. glandulos
|
|
|
2093
2070
|
Streptanthus breweri var. breweri,Streptanthus breweri
|
|
2094
2071
|
Streptanthus coulteri var. lemmonii,Caulanthus lemmonii
|
|
2095
2072
|
Streptanthus flavescens,Caulanthus flavescens
|
|
2096
|
-
Streptanthus glandulosus subsp. glandulosus,Streptanthus albidus subsp. peramoenus,INAT
|
|
2097
2073
|
Streptanthus lemmonii,Caulanthus lemmonii
|
|
2098
2074
|
Stropholirion californicum,Dichelostemma volubile
|
|
2099
2075
|
Stylocline amphibola,Micropus amphibolus
|
package/data/taxa.csv
CHANGED
|
@@ -153,7 +153,7 @@ Arabidopsis thaliana,mouse-ear cress,X,,,,,13682,433,55021,10153,true
|
|
|
153
153
|
Arabis blepharophylla,coast rock cress,N,,,,,13690,436,60983,10166,true,Coast Rockcress,,182,4.3,,,S4,G4
|
|
154
154
|
Aralia californica,elk-clover,N,,,,,13860,504,52848,202125,,Elk's Clover
|
|
155
155
|
Arbutus menziesii,Pacific madrone,N,perennial,white,3,5,13872,506,51046,63080,true,Pacific Madrone
|
|
156
|
-
Arceuthobium campylopodum,western dwarf mistletoe,N,,,,,13881,510,
|
|
156
|
+
Arceuthobium campylopodum,western dwarf mistletoe,N,,,,,13881,510,918449,10362,true,Foothill Pine Dwarf Mistletoe
|
|
157
157
|
Arctostaphylos auriculata,Mt. Diablo manzanita,N,,,,,13905,533,48023,63093,true,Mount Diablo Manzanita,,203,1B.3,,,S2,G2
|
|
158
158
|
Arctostaphylos crustacea subsp. crustacea,,N,,,,,89190,11337,79587,94933,true,Brittle Leaf Manzanita
|
|
159
159
|
Arctostaphylos crustacea subsp. rosei,,N,,,,,91854,11338,79590,94936,true,Rose's Manzanita
|
|
@@ -241,7 +241,7 @@ Blennosperma nanum var. nanum,,N,,,,,6876,1094,64152,202456,true,Common Blennosp
|
|
|
241
241
|
Blepharizonia laxa,glandular big tarplant,N,,,,,80231,10792,58799,202461,true,Glandular Big Tarweed
|
|
242
242
|
Blepharizonia plumosa,big tarplant,N,,,,,1762,1098,57915,202462,true,Big Tarplant,,1589,1B.1,,,S1S2,G1G2
|
|
243
243
|
Blitum californicum,California blite,N,perennial,,3,9,100040,,878230,213354,Chenopodium californicum
|
|
244
|
-
Blitum nuttallianum,Nuttall's poverty weed,N,annual,,4,9,82731
|
|
244
|
+
Blitum nuttallianum,Nuttall's poverty weed,N,annual,,4,9,82731,5671,877971,381982,Monolepis nuttalliana
|
|
245
245
|
Bloomeria crocea var. aurea,,N,,yellow,4,6,55181,11376,80476,202467,true,Golden Stars
|
|
246
246
|
Boechera breweri subsp. breweri,Brewer's rock cress,N,,,,,85519,11382,79644,41737,true,Brewer's Rock Cress
|
|
247
247
|
Bolboschoenus fluviatilis,river bulrush,N,,,,,80011,11419,64228,103271,true,River Bulrush
|
|
@@ -550,7 +550,7 @@ Cynara cardunculus,"artichoke thistle,cardoon",X,,,,,2433,2568,57563,203266,true
|
|
|
550
550
|
Cynodon dactylon,Bermuda grass,X,,,,,21743,2570,58371,138811,true,,cynodon-dactylon-profile
|
|
551
551
|
Cynosurus echinatus,dogtail grass,X,,,,,21767,2577,47695,138861,true,,cynosurus-echinatus-profile
|
|
552
552
|
Cyperus difformis,,X,,,,,21811,2580,59051,104211,true
|
|
553
|
-
Cyperus eragrostis
|
|
553
|
+
Cyperus eragrostis,tall flatsedge,N,,,,,21820,2581,59055,104227,true,Tall Flatsedge
|
|
554
554
|
Cyperus erythrorhizos,,N,,,,,21822,2582,59060,104228,true,Red Rooted Cyperus
|
|
555
555
|
Cyperus esculentus,yellow nut sedge,N,,,,,21824,2583,76584,104229,true,Chufa Sedge
|
|
556
556
|
Cyperus involucratus,umbrella-sedge,X,,,,,21853,2585,414284,104272,true
|
|
@@ -568,7 +568,7 @@ Datisca glomerata,durango root,N,perennial,yellow,5,7,22377,2618,58888,16996,tru
|
|
|
568
568
|
Datura stramonium,jimson weed,X,,,,,22387,2621,55854,67400,true
|
|
569
569
|
Datura wrightii,"sacred datura,angel's trumpet",U,"annual,perennial",white,4,10,22389,2622,58331,67403,true,Sacred Datura
|
|
570
570
|
Daucus carota,Queen Anne's lace,X,,,,,22394,2623,76610,203298
|
|
571
|
-
Daucus pusillus
|
|
571
|
+
Daucus pusillus,"American wild carrot, rattlesnake weed",N,annual,white,4,6,22395,2624,56726,203299,,Rattlesnake Weed
|
|
572
572
|
Deinandra bacigalupii,Livermore moonshine,N,,,,,77607,9090,58817,203307,true,Livermore Tarplant,,1890,1B.1,CE,,S1,G1
|
|
573
573
|
Deinandra corymbosa,,N,,,,,77598,9855,60956,203310,true,Coastal Tarweed
|
|
574
574
|
Deinandra kelloggii,,N,,,,,79196,10829,76615,203319,true,Kellogg's Tarweed
|
|
@@ -653,7 +653,7 @@ Eichhornia crassipes,water-hyacinth,X,,,,,23856,2896,962637,203518,true,,eichhor
|
|
|
653
653
|
Elatine brachysperma,waterwort,N,,,,,23917,2899,76768,17822,true,Shortseed Waterwort
|
|
654
654
|
Elatine californica,waterwort,N,,,,,23919,2900,58891,17823,true,California Waterwort
|
|
655
655
|
Eleocharis acicularis var. acicularis,needle spikerush,N,,,,,58118,2906,64313,108000,Eleocharis acicularis,Needle Spike-rush
|
|
656
|
-
Eleocharis macrostachya,common spikerush,N
|
|
656
|
+
Eleocharis macrostachya,common spikerush,N,perennial,,,,23993,2911,59064,104457,true,Common Spikerush
|
|
657
657
|
Eleocharis parishii,Parish spikerush,N,,,,,23997,2917,58344,104485,true,Parish's Spikerush
|
|
658
658
|
Eleocharis parvula,small spikerush,N,,,,,23999,2918,76783,104486,true,Small Spikerush,,588,4.3,,,S3,G5
|
|
659
659
|
Eleocharis rostellata,,N,,,,,24012,2922,59065,104498,true,Beaked Spikerush
|
|
@@ -672,14 +672,14 @@ Elymus multisetus,big squirreltail,N,,,,,24122,2941,57167,140134,true,Big Squirr
|
|
|
672
672
|
Elymus ponticus,tall wheatgrass,X,,,,,91896,11643,1301269,206756,Thinopyrum ponticum
|
|
673
673
|
Elymus stebbinsii,,N,,,,,101964,2944,63331,140192,true,Stebbins' Wheat Grass
|
|
674
674
|
Elymus trachycaulus subsp. trachycaulus,slender wheatgrass,N,,,,,50280,2947,636557,167179,true,Slender Wheatgrass
|
|
675
|
-
Elymus triticoides
|
|
675
|
+
Elymus triticoides,beardless wild-rye,N,,,,,24181,11648,57184,140206,Leymus triticoides,Creeping Wild Rye
|
|
676
676
|
Emmenanthe penduliflora,whispering bells,N,annual,"white,yellow",4,7,24223,2956,58173,203529,,Whispering Bells
|
|
677
677
|
Emmenanthe rosea,,N,,,,,24224,14564,1597339,206758,,Whisperingbells
|
|
678
678
|
Enemion occidentale,,N,,,,,24250,9551,76818,17850,true,Western Rue-anemone
|
|
679
679
|
Enemion stipitatum,,N,,,,,24252,9552,76819,17852,true,Siskiyou Rue-anemone
|
|
680
680
|
Ephedra californica,,N,,,,,24275,2972,57890,59599,true,California Jointfir
|
|
681
681
|
Ephedra viridis,,N,,,,,24287,2979,57891,59617,true,Mountain Ephedra
|
|
682
|
-
Epilobium brachycarpum
|
|
682
|
+
Epilobium brachycarpum,panicled willowherb,N,,,,,24341,2983,52971,17879,true,Panicled Willow Herb
|
|
683
683
|
Epilobium campestre,,N,,,,,89220,11649,76827,17882,true,Smooth Boisduvalia
|
|
684
684
|
Epilobium canum subsp. canum,California fuchsia,N,perennial,red,,,50302,2985,53044,42259,true,California Fuchsia
|
|
685
685
|
Epilobium canum subsp. latifolium,California fuchsia,N,perennial,red,6,12,50304,2987,53230,203563,true,California Fuchsia
|
|
@@ -785,7 +785,7 @@ Erythranthe laciniata,,N,,,,,99142,13417,546557,203784,true,Cut-leaved Monkeyflo
|
|
|
785
785
|
Erythranthe latidens,broad-tooth monkeyflower,N,,"white,pink",4,6,99144,13495,771886,203785,true,Broadtooth Monkeyflower
|
|
786
786
|
Erythranthe microphylla,small leaved monkeyflower,N,,,,,99152,13498,453717,206815,true
|
|
787
787
|
Erythranthe moschata,musk monkeyflower,N,perennial,yellow,6,8,99156,13494,453644,203788,true,Musk Flower
|
|
788
|
-
Erythranthe nasuta,shy monkeyflower,N
|
|
788
|
+
Erythranthe nasuta,shy monkeyflower,N,annual,yellow,3,7,99158,13637,545973,203789,true
|
|
789
789
|
Erythranthe primuloides,primrose monkeyflower,N,perennial,yellow,6,8,99174,13501,635401,203794,true,Primrose Monkeyflower
|
|
790
790
|
Erythranthe tilingii,Tiling's monkeyflower,N,perennial,yellow,6,9,99191,13507,555996,203798,true,Larger Mountain Monkeyflower
|
|
791
791
|
Eschscholzia caespitosa,tufted poppy,N,,,,,25205,3511,58954,18096,true,Tufted Poppy
|
|
@@ -889,9 +889,9 @@ Glyceria leptostachya,narrow mannagrass,N,,,,,27079,3929,77292,141421,true,Narro
|
|
|
889
889
|
Glycyrrhiza lepidota,wild licorice,N,,,,,27117,3933,58896,22506,true,Wild Licorice
|
|
890
890
|
Gnaphalium palustre,lowland cudweed,N,annual,white,5,10,3082,3946,57980,204019,true,Western Marsh Cudweed
|
|
891
891
|
Gratiola ebracteata,bractless hedge hyssop,N,,,,,27292,3952,77300,69880,true,Bractless Hedge-hyssop
|
|
892
|
-
Grindelia camporum,,N
|
|
893
|
-
Grindelia hirsutula
|
|
894
|
-
Grindelia stricta var. angustifolia,marsh gumplant,N
|
|
892
|
+
Grindelia camporum,,N,perennial,yellow,5,11,3099,3956,56953,206865,,Great Valley Gumweed
|
|
893
|
+
Grindelia hirsutula,hairy gumweed,N,perennial,yellow,4,6,3107,3960,55364,204046,true,Gumweed
|
|
894
|
+
Grindelia stricta var. angustifolia,marsh gumplant,N,perennial,yellow,,,77358,3968,61991,206870,,Marsh Gumplant
|
|
895
895
|
Gruvelia pusilla,little combseed,N,,,,,105901,14570,57694,271340,,Little Pectocarya
|
|
896
896
|
Gutierrezia californica,California matchweed,N,,,,,3140,3977,57978,204054,true,California Matchweed
|
|
897
897
|
Hackelia micrantha,Jessica's stickseed,N,perennial,blue,6,8,27534,3990,77323,204095,,Jessica Sticktight
|
|
@@ -908,8 +908,8 @@ Helianthus californicus,California sunflower,N,,,,,3254,4042,56954,204184,true,C
|
|
|
908
908
|
Helianthus gracilentus,,N,,,,,3280,4047,77356,204188,true,Slender Sunflower
|
|
909
909
|
Heliotropium curassavicum var. oculatum,heliotrope,N,,,,,59914,11723,80928,204220,,Seaside Heliotrope
|
|
910
910
|
Helminthotheca echioides,bristly ox-tongue,X,"annual,biennial",yellow,1,12,81752,10921,61906,204227,true,,picris-echioides-profile
|
|
911
|
-
Hemizonia congesta subsp. lutescens,,N
|
|
912
|
-
Hemizonia congesta subsp. luzulifolia
|
|
911
|
+
Hemizonia congesta subsp. lutescens,,N,annual,,,,80179,10922,61173,204234,true,Hayfield Tarweed
|
|
912
|
+
Hemizonia congesta subsp. luzulifolia,"hayfield tarweed,woodrush tarweed",N,annual,white,3,12,102005,4070,56956,204235,true,Hayfield Tarweed
|
|
913
913
|
Heracleum maximum,cow parsnip,N,,,,,27996,9546,53094,204245,,Cow Parsnip
|
|
914
914
|
Herniaria hirsuta var. cinerea,rupturewort,X,,,,,81545,10923,932806,130357,true
|
|
915
915
|
Hesperevax acaulis var. ambusticola,fire evax,N,annual,,4,6,59934,4108,80930,204250,true,Fire Evax
|
|
@@ -954,9 +954,10 @@ Hordeum brachyantherum subsp. californicum,California barley,N,,,,,76414,4220,59
|
|
|
954
954
|
Hordeum depressum,low barley,N,,,,,28384,4221,58378,141856,true,Low Barley
|
|
955
955
|
Hordeum jubatum subsp. jubatum,foxtail barley,N,,,,,50967,11730,79941,167364,true,Foxtail Barley
|
|
956
956
|
Hordeum marinum subsp. gussoneanum,Mediterranean barley,X,,,,,50968,4224,63879,204328,true
|
|
957
|
-
Hordeum murinum
|
|
958
|
-
Hordeum murinum subsp.
|
|
959
|
-
Hordeum murinum subsp.
|
|
957
|
+
Hordeum murinum,wall barley,X,annual,,,,28392,4225,52796,141884,true,,horderum-murinum-profile
|
|
958
|
+
Hordeum murinum subsp. glaucum,,X,annual,,,,50970,4226,61204,204329,true
|
|
959
|
+
Hordeum murinum subsp. leporinum,,X,annual,,,,50971,4227,52795,204330,true
|
|
960
|
+
Hordeum murinum subsp. murinum,,X,annual,,,,50972,4228,63333,167373,true
|
|
960
961
|
Horkelia californica var. californica,California horkelia,N,,,,,81857,11731,237030,48514,true,California Horkelia
|
|
961
962
|
Horkelia californica var. elata,tall horkelia,N,,,,,81856,11732,80945,48515,true,California Honeydew
|
|
962
963
|
Horkelia californica var. frondosa,leafy horkelia,N,,,,,81858,11733,1629357,48516,true,California Horkelia
|
|
@@ -1017,7 +1018,7 @@ Juncus tenuis,poverty rush,N,,,,,29725,4496,69930,104860,true,Poverty Rush
|
|
|
1017
1018
|
Juncus xiphioides,iris-leaved rush,N,,,,,29743,4502,57110,104882,true,Irisleaf Rush
|
|
1018
1019
|
Juniperus californica,California juniper,N,,,,,29749,4503,57889,58267,true,California Juniper
|
|
1019
1020
|
Juniperus communis var. saxatilis,mountain juniper,N,,,,,60424,10933,81001,58735,,Common Juniper
|
|
1020
|
-
Keckiella breviflora var. breviflora
|
|
1021
|
+
Keckiella breviflora var. breviflora,bush beardtongue,N,perennial,"white,pink",5,7,75718,4520,59015,98400,true,Gaping Keckiella
|
|
1021
1022
|
Keckiella corymbosa,,N,,,,,29883,4523,62043,71018,true,Keckiella
|
|
1022
1023
|
Kickxia elatine,fluellin,X,,,,,29898,4532,64332,71023,true
|
|
1023
1024
|
Kickxia spuria,fluellin,X,,,,,29899,4533,64191,71024,true
|
|
@@ -1026,9 +1027,9 @@ Koeleria gerardi,annual junegrass,X,,,,,29957,13237,167999,231850,Rostraria cris
|
|
|
1026
1027
|
Koeleria macrantha,junegrass,N,,,,,29951,4539,57183,142292,true,Junegrass
|
|
1027
1028
|
Kopsiopsis strobilacea,California ground-cone,N,,,,,93802,11786,77612,71163,true,California Ground-cone
|
|
1028
1029
|
Kyllinga brevifolia,shortleaf spikesedge,X,,,,,30044,4545,489795,104894,true
|
|
1029
|
-
Lactuca saligna
|
|
1030
|
+
Lactuca saligna,willowleaf lettuce,X,,,,,3688,4549,53105,204511,true
|
|
1030
1031
|
Lactuca serriola,prickly lettuce,X,,,,,3690,4550,53107,204513,true
|
|
1031
|
-
Lactuca virosa
|
|
1032
|
+
Lactuca virosa,bitter lettuce,X,,,,,3697,4552,53108,204515,true
|
|
1032
1033
|
Laennecia coulteri,,N,,,,,3698,9509,57937,204517,,Coulter's Horseweed
|
|
1033
1034
|
Lagophylla ramosissima,hare's-ear,N,,,,,3719,4556,56965,204520,true,Branched Lagophylla
|
|
1034
1035
|
Lamarckia aurea,goldentop,X,,,,,30147,4560,58379,142340,true
|
|
@@ -1120,7 +1121,7 @@ Limosella australis,delta mudwort,N,,,,,31029,10069,60248,71441,true,,,1715,2B.1
|
|
|
1120
1121
|
Linanthus dichotomus subsp. dichotomus,evening snow,N,,,,,51286,10624,80000,95800,,Evening Snow
|
|
1121
1122
|
Linanthus dichotomus subsp. meridianus,,N,,,,,51287,10625,80001,95801
|
|
1122
1123
|
Linanthus pungens subsp. pulchriflorus,granite prickly phlox,N,perennial,"white,pink",5,8,98684,14586,861790,204699
|
|
1123
|
-
Linum bienne
|
|
1124
|
+
Linum bienne,pale flax,X,,,,,31144,4906,55679,24471,true
|
|
1124
1125
|
Linum lewisii var. lewisii,blue flax,N,,,,,60912,4910,60495,48905,true,Prairie Flax
|
|
1125
1126
|
Lithophragma affine,woodland star,N,perennial,white,3,4,31236,4922,50803,24525,true,San Francisco Woodland Star
|
|
1126
1127
|
Lithophragma bolanderi,,N,perennial,white,2,7,31238,4923,77787,24527,true,Bolander's Woodland Star
|
|
@@ -1129,7 +1130,7 @@ Lithophragma heterophyllum,hill starflower,N,perennial,white,2,6,31244,4927,5312
|
|
|
1129
1130
|
Lithophragma parviflorum var. parviflorum,,N,perennial,"white,pink",3,7,60952,4930,77791,48936,Lithophragma parviflorum,Smallflower Woodland-star
|
|
1130
1131
|
Lobularia maritima,sweet alyssum,X,,,,,31347,4939,56992,24547,true,,lobularia-maritima-profile
|
|
1131
1132
|
Logfia filaginoides,herba impia,N,annual,red,2,5,81847,10960,64254,204735,true,California Cottonrose
|
|
1132
|
-
Logfia gallica
|
|
1133
|
+
Logfia gallica,narrowleaf cottonrose,X,annual,"brown,yellow",3,7,31363,9521,56949,204736,true
|
|
1133
1134
|
Lomatium californicum,chu-chu-pate,N,,yellow,4,6,31389,4950,56824,204737,,California Lomatium
|
|
1134
1135
|
Lomatium caruifolium var. caruifolium,,N,,,,,61026,4953,64328,204739,,Alkali Desertparsley
|
|
1135
1136
|
Lomatium caruifolium var. denticulatum,,N,,,,,61027,4954,60123,204740
|
|
@@ -1166,6 +1167,7 @@ Lupinus lepidus var. sellulus,,N,,,,,61365,5170,81070,49224,true,Stool Lupine
|
|
|
1166
1167
|
Lupinus lepidus,dwarf lupine,N,perennial,blue,,,31941,,62689,25001,true,Pacific Lupine
|
|
1167
1168
|
Lupinus littoralis var. variicolor,,N,,,,,80538,14304,,49237,true,Manycolored Lupine
|
|
1168
1169
|
Lupinus luteolus,butter lupine,N,,,,,31956,5176,77875,25020,true,Pale Yellow Lupine
|
|
1170
|
+
Lupinus microcarpus,chick lupine,N,annual,,,,32094,5183,57069,25048,true,Chick Lupine
|
|
1169
1171
|
Lupinus microcarpus var. densiflorus,,N,annual,"yellow,white",4,6,76668,5184,57058,49248,true,Dense Flowered Platycarpos
|
|
1170
1172
|
Lupinus microcarpus var. microcarpus,chick lupine,N,annual,"pink,blue",3,6,75776,5186,58159,204796,true,Valley Lupine
|
|
1171
1173
|
Lupinus nanus,sky lupine,N,,blue,3,6,31978,5189,50612,25068,true,Sky Lupine
|
|
@@ -1346,7 +1348,7 @@ Oxalis pes-caprae,Bermuda-buttercup,X,,yellow,1,5,35642,6016,53169,27001,true,,o
|
|
|
1346
1348
|
Oxalis pilosa,hairy wood sorrel,N,,yellow,2,9,35601,11895,78300,27002,true,Radishroot Woodsorrel
|
|
1347
1349
|
Oxalis smalliana,redwood sorrel,N,perennial,"white,pink,blue",1,8,8615,14752,1464017,416928
|
|
1348
1350
|
Oxybasis macrosperma,,X,annual,,7,10,82806,,1023208,394022,Chenopodium macrospermum
|
|
1349
|
-
Oxybasis rubra var. humilis,,N,annual,,8,10,82809
|
|
1351
|
+
Oxybasis rubra var. humilis,,N,annual,,8,10,82809,10813,931680,433293,Chenopodium rubrum var. humile
|
|
1350
1352
|
Oxybasis rubra var. rubra,,N,annual,,8,10,82810,,931836,432285,Chenopodium rubrum var. rubrum
|
|
1351
1353
|
Oxybasis rubra,red pigweed,N,annual,,,,107008,,931679,210185,Chenopodium rubrum
|
|
1352
1354
|
Oxyria digyna,alpine sorrel,N,perennial,,7,9,35722,6022,67591,117404,true,Mountain Sorrel
|
|
@@ -1446,7 +1448,7 @@ Pistacia atlantica,,X,,,,,77247,6541,78588,28204
|
|
|
1446
1448
|
Pittosporum crassifolium,,X,,,,,38444,6545,78590,208641
|
|
1447
1449
|
Plagiobothrys acanthocarpus,adobe allocarya,N,,,,,38484,6550,58062,205466,,Adobe Popcornflower
|
|
1448
1450
|
Plagiobothrys arizonicus,,N,,,,,38485,6551,58063,205467,,Arizona Popcornflower
|
|
1449
|
-
Plagiobothrys bracteatus
|
|
1451
|
+
Plagiobothrys bracteatus,bracted popcornflower,N,annual,white,4,6,38487,6553,57719,205469,,Bracted Popcornflower
|
|
1450
1452
|
Plagiobothrys canescens var. canescens,,N,,,,,63883,10232,81250,205474,,Valley Popcornflower
|
|
1451
1453
|
Plagiobothrys canescens,,N,,,,,38488,6554,58064,205473,,Valley Popcornflower
|
|
1452
1454
|
Plagiobothrys chorisianus var. chorisianus,,N,,,,,63885,6557,57715,208215,,Choris' Popcornflower,,1382,1B.2,,,S1,G3T1Q
|
|
@@ -1471,8 +1473,8 @@ Plantago major,common plantain,X,,,,,38570,6619,58961,74543,true
|
|
|
1471
1473
|
Plantago maritima,alkali plantain,N,,,,,38573,6620,68543,74544,true,Goose Tongue
|
|
1472
1474
|
Plantago subnuda,naked plantain,N,,,,,38605,6626,60223,74567,true,Naked Plantain
|
|
1473
1475
|
Platanthera dilatata var. leucostachys,white-flowered bog orchid,N,,,,,63974,9593,81271,205521,true,White Bog Orchid
|
|
1474
|
-
Platanthera elegans subsp. elegans,,N,perennial,green,5,9,76273
|
|
1475
|
-
Platanthera elongata,wood rein-orchid,N,perennial,green,5,7,107276
|
|
1476
|
+
Platanthera elegans subsp. elegans,,N,perennial,green,5,9,76273,8857,840643,396924,Piperia elegans subsp. elegans
|
|
1477
|
+
Platanthera elongata,wood rein-orchid,N,perennial,green,5,7,107276,6532,551466,205448,Piperia elongata
|
|
1476
1478
|
Platanthera michaelii,Michael's rein-orchid,N,perennial,green,4,8,107279,6534,840639,205450,Piperia michaelii,,,1380,4.2,,,S3,G3
|
|
1477
1479
|
Platanthera transversa,flat-spurred piperia,N,perennial,green,5,8,107280,6535,355392,205452,Piperia transversa
|
|
1478
1480
|
Platanthera unalascensis,"Alaska piperia,slender-spire orchid",N,perennial,green,5,8,38611,6536,840638,205454,Piperia unalascensis
|
|
@@ -1489,7 +1491,7 @@ Poa bulbosa,bulbous bluegrass,X,,,,,38805,6662,58382,147098,true
|
|
|
1489
1491
|
Poa douglasii,sand-dune bluegrass,N,,,,,38815,6669,61071,147190,true,Sand Dune Blue Grass
|
|
1490
1492
|
Poa howellii,,N,,,,,38804,6672,52812,147272,true,Howell's Bluegrass
|
|
1491
1493
|
Poa pratensis subsp. pratensis,Kentucky bluegrass,X,,,,,70514,6689,64155,167666,true
|
|
1492
|
-
Poa secunda subsp. secunda,one-sided bluegrass,N
|
|
1494
|
+
Poa secunda subsp. secunda,one-sided bluegrass,N,perennial,,,,70516,6694,58383,167673,true,One-sided Bluegrass
|
|
1493
1495
|
Pogogyne douglasii,,N,,,,,38936,6704,63943,74615,,Douglas' Pogogyne
|
|
1494
1496
|
Pogogyne serpylloides,,N,,,,,38939,6708,57118,74618,,Thymeleaf Beardstyle
|
|
1495
1497
|
Pogogyne zizyphoroides,,N,,,,,78298,6709,60209,207217,,Sacramento Beardstyle
|
|
@@ -1520,6 +1522,7 @@ Potamogeton crispus,,X,,,,,39560,6806,78707,205611,true,,potamogeton-crispus-pro
|
|
|
1520
1522
|
Potamogeton diversifolius,,N,,,,,39562,6807,78708,205612,true,Diverse-leaved Pondweed
|
|
1521
1523
|
Potamogeton foliosus subsp. foliosus,,N,,,,,80562,11947,80166,205614,true,Leafy Pondweed
|
|
1522
1524
|
Potamogeton illinoensis,,N,,,,,39581,6814,78711,205617,true,Shining Pondweed
|
|
1525
|
+
Potamogeton natans,floating-leaved pondweed,N,perennial,,,,39591,6816,78712,205618,true,Floating Leaved Pondweed
|
|
1523
1526
|
Potamogeton nodosus,,N,,,,,39595,6817,59108,205619,true,Long-leaved Pondweed
|
|
1524
1527
|
Potamogeton pusillus,,N,,,,,39612,6820,78714,205623,true,Small Pondweed
|
|
1525
1528
|
Potamogeton zosteriformis,,N,,,,,39646,6825,78717,208653,true,Eel-grass Pondweed,,1750,2B.2,,,S3,G5
|
|
@@ -1542,9 +1545,9 @@ Prunella vulgaris var. vulgaris,,X,,,,,75995,6885,81287,99540
|
|
|
1542
1545
|
Prunus cerasifera,cherry plum,X,,,,,39972,6887,55837,28875,true,,prunus-cerasifera-profile
|
|
1543
1546
|
Prunus dulcis,almond,X,,,,,39976,6888,69936,28884,true
|
|
1544
1547
|
Prunus emarginata,bitter cherry,N,,,,,39978,6889,63905,28885,true,Bitter Cherry
|
|
1545
|
-
Prunus ilicifolia subsp. ilicifolia
|
|
1548
|
+
Prunus ilicifolia subsp. ilicifolia,holly-leafed cherry,N,perennial,white,4,5,76988,6895,59002,43463,Prunus ilicifolia var. ilicifolia,Hollyleaf Cherry
|
|
1546
1549
|
Prunus subcordata,,N,,,,,40019,6897,56040,28936,true,Klamath Plum
|
|
1547
|
-
Prunus virginiana var. demissa,western choke-cherry,N
|
|
1550
|
+
Prunus virginiana var. demissa,western choke-cherry,N,perennial,white,5,6,64546,6898,63900,50588,true,Western Chokecherry
|
|
1548
1551
|
Pseudognaphalium beneolens,fragrant everlasting,N,"annual,perennial","white,yellow",6,10,81674,11047,64303,204006,true,Fragrant Everlasting
|
|
1549
1552
|
Pseudognaphalium biolettii,,N,,,,,81666,11955,58829,205655,true,Bicolored Everlasting
|
|
1550
1553
|
Pseudognaphalium californicum,"California cudweed,California everlasting",N,"annual,perennial",white,4,7,80569,11956,53077,205656,true,California Cudweed
|
|
@@ -1575,7 +1578,7 @@ Pyrola dentata,toothed wintergreen,N,perennial,"white,pink",6,8,40456,13183,7076
|
|
|
1575
1578
|
Pyrola picta,white-veined wintergreen,N,perennial,"white,pink",6,8,40452,6961,62239,74938,true,White-veined Wintergreen
|
|
1576
1579
|
Pyrrocoma racemosa var. racemosa,clustered goldenweed,N,,,,,8122,6975,81305,207239,true
|
|
1577
1580
|
Quercus agrifolia var. agrifolia,coast live oak,N,,,,,64703,6984,58913,50668,Quercus agrifolia,Coast Live Oak
|
|
1578
|
-
Quercus agrifolia
|
|
1581
|
+
Quercus agrifolia,coast live oak,N,,,,,40530,6983,47850,29223,true,Coast Live Oak
|
|
1579
1582
|
Quercus berberidifolia,scrub oak,N,,,,,76903,6986,57082,29233,true,Scrub Oak
|
|
1580
1583
|
Quercus chrysolepis,canyon live oak,N,,,,,40565,6987,51092,29251,true,Canyon Live Oak
|
|
1581
1584
|
Quercus douglasii,blue oak,N,,,,,40581,6990,49009,29260,true,Blue Oak
|
|
@@ -1614,6 +1617,8 @@ Rhaponticum repens,Russian knapweed,X,,,,,103802,13621,339502,201832,Acroptilon
|
|
|
1614
1617
|
Rhinotropis californica,California milkwort,N,,,,,107535,14636,876453,265222,true,California Milkwort
|
|
1615
1618
|
Rhodiola integrifolia subsp. integrifolia,western roseroot,N,perennial,red,5,8,80583,10300,80170,43540,true,Western Roseroot
|
|
1616
1619
|
Rhus aromatica,skunkbrush,N,,,,,41175,11056,58738,29816,,Fragrant Sumac
|
|
1620
|
+
Rhus integrifolia,lemonade berry,N,perennial,,,,41186,7090,55009,29829,,Lemonade Berry
|
|
1621
|
+
Rhus ovata,sugar bush,N,perennial,,,,41191,7091,64121,29838,,Sugar Bush
|
|
1617
1622
|
Ribes amarum,bitter gooseberry,N,,,,,41372,7099,53433,29899,true,Bitter Gooseberry
|
|
1618
1623
|
Ribes aureum var. gracillimum,golden currant,N,perennial,yellow,2,5,65126,7104,55547,51084,true,Golden Currant
|
|
1619
1624
|
Ribes californicum var. californicum,hillside gooseberry,N,perennial,white,2,3,65128,7108,47128,51086,true,Hillside Gooseberry
|
|
@@ -1632,10 +1637,10 @@ Romulea rosea var. australis,,X,,,,,65230,7162,68895,207249,,,romulea-rosea-prof
|
|
|
1632
1637
|
Rorippa curvisiliqua,yellow cress,N,,,,,41580,7168,58866,30089,true,Curvepod Yellowcress
|
|
1633
1638
|
Rorippa palustris subsp. palustris,,N,,,,,52673,11988,64157,43562,true,Bog Yellowcress
|
|
1634
1639
|
Rosa californica,California rose,N,,pink,,,41631,7179,53437,30158,true,California Wildrose
|
|
1635
|
-
Rosa gymnocarpa,wood rose,N
|
|
1640
|
+
Rosa gymnocarpa,wood rose,N,perennial,pink,4,7,41652,7182,53441,30212,true,Wood Rose
|
|
1636
1641
|
Rosa rubiginosa,sweet-brier,X,,,,,41648,11057,78886,30313,true
|
|
1637
|
-
Rosa spithamea,ground rose,N
|
|
1638
|
-
Rosa woodsii,Woods' rose,N,perennial,pink,,,41704
|
|
1642
|
+
Rosa spithamea,ground rose,N,perennial,pink,4,8,41696,7187,53442,30338,true,Ground Rose
|
|
1643
|
+
Rosa woodsii,Woods' rose,N,perennial,pink,,,41704,10312,78887,30370,true,Woods' Rose
|
|
1639
1644
|
Rubus armeniacus,Himalayan blackberry,X,,,,,87465,10319,61317,30459,,,rubus-armeniacus-profile
|
|
1640
1645
|
Rubus laciniatus,cutleaf blackberry,X,,,,,42009,7195,78891,30698,true
|
|
1641
1646
|
Rubus parviflorus,thimbleberry,N,,,,,42108,7200,51646,30808,true,Thimbleberry
|
|
@@ -1754,6 +1759,7 @@ Silene douglasii var. douglasii,Douglas' catchfly,N,perennial,white,6,9,66384,10
|
|
|
1754
1759
|
Silene gallica,windmill pink,X,,,,,44517,7597,53212,119276,true
|
|
1755
1760
|
Silene laciniata subsp. californica,,N,,,,,82538,11084,62222,129063,true,Cardinal Catchfly
|
|
1756
1761
|
Silene lemmonii,Lemmon's catchfly,N,perennial,white,4,9,44533,7603,60523,119295,true,Lemmon's Catchfly
|
|
1762
|
+
Silene multinervia,multinerved catchfly,N,annual,"white,pink",4,6,44540,7606,168967,119304
|
|
1757
1763
|
Silene sargentii,Sargent's catchfly,N,perennial,white,7,8,44566,7614,62697,119340,true,Sargent's Catchfly
|
|
1758
1764
|
Silene verecunda,,N,,,,,44589,7617,60581,119364,true,San Francisco Campion
|
|
1759
1765
|
Silybum marianum,milk-thistle,X,,,,,4918,7622,52586,205950,true,,silybum-marianum-profile
|
|
@@ -1766,7 +1772,7 @@ Sisyrinchium californicum,golden-eyed-grass,N,,,,,44688,7633,60550,205957,true,Y
|
|
|
1766
1772
|
Sium suave,,N,,,,,44763,7641,79131,208695,,Hemlock Waterparsnip
|
|
1767
1773
|
Solanum americanum,,N,,,,,44818,7647,59035,76168,true,American Black Nightshade
|
|
1768
1774
|
Solanum elaeagnifolium,white horse-nettle,X,,,,,44852,7654,79137,76470,true
|
|
1769
|
-
Solanum furcatum
|
|
1775
|
+
Solanum furcatum,forked nightshade,X,,,,,44856,7655,79138,76521,true
|
|
1770
1776
|
Solanum lanceolatum,lanceleaf nightshade,X,,,,,44872,7656,79139,76689,true
|
|
1771
1777
|
Solanum nigrum,black nightshade,X,,,,,44883,7658,79141,76840,true
|
|
1772
1778
|
Solanum nitidibaccatum,nightshade,X,annual,white,5,10,103838,14890,406080,211825,true
|
|
@@ -1804,12 +1810,14 @@ Sporobolus indicus,smutgrass,X,,,,,45308,7749,79187,149101,true
|
|
|
1804
1810
|
Sporobolus niliacus,,X,,,,,82876,14905,773022,397065,Crypsis vaginiflora
|
|
1805
1811
|
Sporobolus pumilus,saltmeadow cordgrass,X,,,,,82878,14906,773004,432226,Spartina patens
|
|
1806
1812
|
Sporobolus schoenoides,swamp grass,X,,,,,82879,14907,773038,397066,Crypsis schoenoides
|
|
1813
|
+
Stachys,,N,,,,,10540,,51229
|
|
1807
1814
|
Stachys ajugoides,hedge nettle,N,,,,,45338,7751,53295,77371,,Ajuga Hedge Nettle
|
|
1808
1815
|
Stachys albens,,N,,,,,45339,7754,58192,77372,,White Hedge Nettle
|
|
1809
1816
|
Stachys bullata,,N,,,,,45343,7756,58930,77383,,California Hedgenettle
|
|
1810
1817
|
Stachys pycnantha,short-spike hedge nettle,N,,,,,45389,7759,57123,77417,,Short Spike Hedge Nettle
|
|
1811
|
-
Stachys rigida
|
|
1812
|
-
Stachys rigida var.
|
|
1818
|
+
Stachys rigida,rough hedgenettle,N,perennial,pink,3,10,45385,12037,53306,77420,,Rough Hedgenettle
|
|
1819
|
+
Stachys rigida var. quercetorum,,N,perennial,pink,,,80610,12038,81388,99881,,Rough Hedgenettle
|
|
1820
|
+
Stachys rigida var. rigida,hedge nettle,N,perennial,pink,,,80611,12039,53296,99882,,Rigid Hedge Nettle
|
|
1813
1821
|
Stebbinsoseris heterocarpa,,N,,,,,76210,7768,50804,206070,true,Grassland Silverpuffs
|
|
1814
1822
|
Stellaria media,common chickweed,X,,,,,45497,7776,53298,119478,true
|
|
1815
1823
|
Stellaria nitens,shining chickweed,N,,,,,45502,7777,57007,119483,true,Shining Chickweed
|
|
@@ -1868,6 +1876,7 @@ Toxicoscordion fremontii,zigadene,N,bulb,white,2,6,89163,11103,49649,206215,Ziga
|
|
|
1868
1876
|
Toxicoscordion paniculatum,,N,bulb,white,5,6,46802,11105,79380,206217,Zigadenus paniculatus,Panicled Death Camas
|
|
1869
1877
|
Toxicoscordion venenosum var. venenosum,death-camas,N,bulb,white,5,7,93851,11106,81432,206219,Zigadenus venenosus var. venenosus,Death Camas
|
|
1870
1878
|
Tradescantia fluminensis,,X,,,,,77137,8017,79382,206221,true
|
|
1879
|
+
Tragopogon dubius,yellow salsify,X,"annual,biennial",yellow,5,9,5443,8019,54143,206231,true
|
|
1871
1880
|
Tragopogon porrifolius,salsify,X,,,,,5449,8020,54141,206232,true
|
|
1872
1881
|
Trianthema portulacastrum,,N,,,,,46920,8023,79390,119925,true,Desert Horsepurslane
|
|
1873
1882
|
Tribulus terrestris,puncture vine,X,,,,,46922,8024,64238,33988,true,,tribulus-terrestris-profile
|
|
@@ -1880,8 +1889,9 @@ Trifolium campestre,hop clover,X,,,,,47059,8064,57076,34056,true
|
|
|
1880
1889
|
Trifolium ciliolatum,foothill clover,N,,,,,47063,8065,60197,34065,true,Foothill Clover
|
|
1881
1890
|
Trifolium columbinum,olive clover,N,,,,,47030,13577,79425,34068,true
|
|
1882
1891
|
Trifolium cyathiferum,bowl clover,N,,,,,47064,8066,60198,34073,true,Bowl Clover
|
|
1883
|
-
Trifolium depauperatum
|
|
1884
|
-
Trifolium depauperatum var.
|
|
1892
|
+
Trifolium depauperatum,sack clover,N,annual,purple,,,47072,8067,58164,34078,true,Cowbag Clover
|
|
1893
|
+
Trifolium depauperatum var. depauperatum,dwarf sack clover,N,annual,purple,3,5,67267,8069,64176,52386,true,Dwarf Sack Clover
|
|
1894
|
+
Trifolium depauperatum var. truncatum,truncate sack clover,N,annual,purple,4,6,67272,8071,60199,52391,true,Truncate Sack Clover
|
|
1885
1895
|
Trifolium dichotomum,,N,,,,,47076,12099,61179,34079,true,Branched Indian Clover
|
|
1886
1896
|
Trifolium dubium,little hop clover,X,,,,,47078,8072,53313,34083,true
|
|
1887
1897
|
Trifolium fragiferum,strawberry clover,X,,,,,47083,8074,58167,34092,true
|
|
@@ -1905,15 +1915,15 @@ Trifolium tomentosum,woolly clover,X,,,,,47177,8586,61024,34253,true
|
|
|
1905
1915
|
Trifolium variegatum,,N,,,,,47179,8108,57080,34264,true,Whitetip Clover
|
|
1906
1916
|
Trifolium willdenovii,tomcat clover,N,annual,"purple,white",3,6,47186,8109,57081,34270,true,Tomcat Clover
|
|
1907
1917
|
Trifolium wormskioldii,cow clover,N,,,,,47188,8110,71146,34272,true,Cows Clover
|
|
1908
|
-
Triglochin concinna var. concinna,slender arrow-grass,N
|
|
1909
|
-
Triglochin maritima,seaside arrow-grass,N
|
|
1910
|
-
Triglochin scilloides,flowering quillwort,N
|
|
1911
|
-
Triglochin striata,,N
|
|
1918
|
+
Triglochin concinna var. concinna,slender arrow-grass,N,perennial,,3,8,74018,8112,81439,207972,,Arrow Grass
|
|
1919
|
+
Triglochin maritima,seaside arrow-grass,N,perennial,,,,47197,8114,60264,206250,true,Arrowgrass
|
|
1920
|
+
Triglochin scilloides,flowering quillwort,N,annual,,,,91083,12117,79437,204660,Lilaea scilloides,Flowering-quillwort
|
|
1921
|
+
Triglochin striata,,N,perennial,,,,47201,8116,79438,206252,true,Three-ribbed Arrow-grass
|
|
1912
1922
|
Trillium chloropetalum,giant trillium,N,,"yellow,pink,purple,white",4,5,47218,8119,50823,206256,true,Giant Wakerobin
|
|
1913
1923
|
Trillium ovatum,white trillium,N,,,,,47239,8120,49463,206258,true,Western Trillium
|
|
1914
1924
|
Triodanis biflora,Venus' looking-glass,N,,,,,47267,8126,79440,206266,,Small Venus' Looking-glass
|
|
1915
1925
|
Triphysaria eriantha subsp. eriantha,butter-and-eggs,N,,,,,53279,8129,59332,96567,true,Butter'n Eggs
|
|
1916
|
-
Triphysaria pusilla,,
|
|
1926
|
+
Triphysaria pusilla,dwarf owl's clover,N,annual,,4,6,47296,8133,57276,78297,true,Dwarf Owl's-clover
|
|
1917
1927
|
Triphysaria versicolor subsp. faucibarbata,,N,,,,,53281,8135,60737,206269,true,Triphysaria
|
|
1918
1928
|
Trisetum canescens,,N,,,,,47326,8139,1538928,150155,true,Tall False Oat
|
|
1919
1929
|
Triteleia hyacinthina,white brodiaea,N,corm,white,3,7,47356,8154,57132,206275,true,White Brodiaea
|
|
@@ -1977,7 +1987,7 @@ Wolffia brasiliensis,,N,,,,,48587,8347,79527,225519,true,Brazilian Watermeal,,20
|
|
|
1977
1987
|
Woodwardia fimbriata,giant chain fern,N,,,,,48619,8355,52685,200294,true,Giant Chain Fern
|
|
1978
1988
|
Wyethia angustifolia,narrowleaf mule-ears,N,,yellow,4,8,5572,8356,56987,206396,true,Narrow Leaf Mule Ears
|
|
1979
1989
|
Wyethia glabra,mules ears,N,,yellow,3,6,5578,8359,56988,206404,true,Shining Mule Ears
|
|
1980
|
-
Wyethia helenioides,woolly mules ears,N,,yellow,3,5,5579,8360,50799,206405,true,
|
|
1990
|
+
Wyethia helenioides,woolly mules ears,N,,yellow,3,5,5579,8360,50799,206405,true,Gray Mule Ears
|
|
1981
1991
|
Xanthium orientale,cocklebur,N,,,,,5618,14779,506262,206411,,Cocklebur
|
|
1982
1992
|
Xanthium spinosum,spiny cocklebur,X,,,,,5590,8366,58045,206414,true
|
|
1983
1993
|
Yabea microcarpa,California hedge parsley,N,,,,,48745,8373,56847,206426,,California Hedge Parsley
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Lowest two to four pairs of leaflets on each blade much smaller than those above.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Evergreen. Leaf edges wavy with sharp teeth. At least 15 flowers in a long raceme. Petals 1-3mm. No leaves at base of flowers. Fruit 12-25mm.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Deciduous. Leaf edges with fine serrations. At least 18 flowers in a long raceme. Petals 4-7mm. Leaves at base of flowers. Fruit 6-14mm.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Sepals deciduous in fruit. Prickles generally straight, not much thicker at base.
|
|
1
|
+
Sepals deciduous in fruit. Hypanthium not glandular, at most 2 mm wide. Prickles generally straight, not much thicker at base.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Sepals persistent in fruit. Hypanthium glandular, 4-5 mm wide. Sepals usually glandular.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Ring of hairs in corolla tube not perpendicular to tube. Bracts on stem get smaller towards top.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Plants usually 10-30 cm tall. Leaves round, 1-2mm wide.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Plants usually at least 40 cm tall. Leaves elliptic, 2-5mm wide.
|
package/ebook/css/main.css
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
* {
|
|
2
|
-
|
|
2
|
+
font-family: Georgia, 'Times New Roman', Times, serif;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
div.flr {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
background-color: #ccc;
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
div.hdr {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
display: flex;
|
|
13
|
+
column-gap: 2rem;
|
|
14
|
+
row-gap: .5rem;
|
|
15
|
+
flex-flow: row wrap;
|
|
16
|
+
justify-content: space-between;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
div.section {
|
|
20
|
-
|
|
20
|
+
margin-bottom: .5rem;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
div.photos {
|
|
24
|
-
|
|
24
|
+
display: flex;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
figure {
|
|
28
|
-
|
|
28
|
+
margin: auto;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
img.flr-color {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
padding-right: .25rem;
|
|
33
|
+
width: 1rem;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
span.flr-time,
|
|
37
37
|
span.lc {
|
|
38
|
-
|
|
38
|
+
font-weight: bold;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
span.lcs {
|
|
42
|
-
|
|
42
|
+
margin-right: 1rem;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
div.glossary img {
|
|
46
|
-
|
|
46
|
+
width: 100%
|
|
47
47
|
}
|
package/lib/genera.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Config } from "./config.js";
|
|
2
2
|
import { Files } from "./files.js";
|
|
3
3
|
|
|
4
|
-
class Genera {
|
|
4
|
+
export class Genera {
|
|
5
5
|
#families;
|
|
6
6
|
#genera;
|
|
7
7
|
|
|
@@ -42,7 +42,7 @@ class Genera {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
class Genus {
|
|
45
|
+
export class Genus {
|
|
46
46
|
#data;
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -65,5 +65,3 @@ class Genus {
|
|
|
65
65
|
);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
export { Genera };
|
package/lib/taxonomy/families.js
CHANGED
package/lib/taxonomy/taxon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Taxonomy } from "./taxonomy.js";
|
|
2
2
|
|
|
3
|
-
class Taxon extends Taxonomy {
|
|
3
|
+
export class Taxon extends Taxonomy {
|
|
4
4
|
#genera;
|
|
5
5
|
#name;
|
|
6
6
|
#genus;
|
|
@@ -34,7 +34,7 @@ class Taxon extends Taxonomy {
|
|
|
34
34
|
* @param {import("../genera.js").Genera} genera
|
|
35
35
|
*/
|
|
36
36
|
constructor(data, genera) {
|
|
37
|
-
super(data);
|
|
37
|
+
super(data["jepson id"]);
|
|
38
38
|
this.#genera = genera;
|
|
39
39
|
const name = data["taxon_name"];
|
|
40
40
|
const commonNames = data["common name"];
|
|
@@ -329,5 +329,3 @@ class Taxon extends Taxonomy {
|
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
|
|
333
|
-
export { Taxon };
|
package/lib/taxonomy/taxonomy.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export class Taxonomy {
|
|
2
|
-
#
|
|
2
|
+
#jepsonID;
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @param {
|
|
5
|
+
* @param {string} jepsonID
|
|
6
6
|
*/
|
|
7
|
-
constructor(
|
|
8
|
-
this.#
|
|
7
|
+
constructor(jepsonID) {
|
|
8
|
+
this.#jepsonID = jepsonID;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @returns {string}
|
|
13
13
|
*/
|
|
14
14
|
getJepsonID() {
|
|
15
|
-
return this.#
|
|
15
|
+
return this.#jepsonID;
|
|
16
16
|
}
|
|
17
17
|
}
|
package/lib/tools/cch2.js
CHANGED
|
@@ -34,6 +34,10 @@ export class CCH2 {
|
|
|
34
34
|
const idsToUpdate = new Map();
|
|
35
35
|
for (const taxon of taxa.getTaxonList()) {
|
|
36
36
|
const name = taxon.getName();
|
|
37
|
+
if (!name.includes(" ")) {
|
|
38
|
+
// Ignore genera.
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
37
41
|
const cchTaxon = getCCHTaxon(taxon, cchTaxa);
|
|
38
42
|
if (!cchTaxon) {
|
|
39
43
|
if (!exceptions.hasException(name, "cch", "notincch")) {
|
package/lib/tools/fna.js
CHANGED
|
@@ -2,6 +2,7 @@ import path from "node:path";
|
|
|
2
2
|
import { Files } from "../files.js";
|
|
3
3
|
import { scrape } from "@htmltools/scrape";
|
|
4
4
|
import { TaxaCSV } from "./taxacsv.js";
|
|
5
|
+
import { Browser } from "../utils/browser.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* @typedef {{name:string}} FNATaxon
|
|
@@ -100,12 +101,15 @@ async function getFNATaxa(toolsDataPath) {
|
|
|
100
101
|
|
|
101
102
|
Files.mkdir(toolsDataPath);
|
|
102
103
|
|
|
104
|
+
const browser = new Browser();
|
|
105
|
+
|
|
103
106
|
// Get list of volumes.
|
|
104
107
|
const volumePage = path.join(toolsDataPath, "volumes.html");
|
|
105
108
|
if (!Files.exists(volumePage)) {
|
|
106
|
-
await
|
|
109
|
+
await browser.retrieveFromCloudFlare(
|
|
107
110
|
"http://floranorthamerica.org/Special:SearchByProperty/:Volume/",
|
|
108
111
|
volumePage,
|
|
112
|
+
"#catlinks",
|
|
109
113
|
);
|
|
110
114
|
}
|
|
111
115
|
|
|
@@ -118,29 +122,42 @@ async function getFNATaxa(toolsDataPath) {
|
|
|
118
122
|
|
|
119
123
|
// For each volume, retrieve the JSON.
|
|
120
124
|
const baseURL =
|
|
121
|
-
"http://floranorthamerica.org/Special:Ask/limit=5000/unescape=true/format=
|
|
125
|
+
"http://floranorthamerica.org/Special:Ask/limit=5000/unescape=true/format=html";
|
|
122
126
|
for (const vol of vols) {
|
|
123
|
-
const
|
|
124
|
-
|
|
127
|
+
const fn = `${vol}.html`;
|
|
128
|
+
const fullPath = path.join(toolsDataPath, fn);
|
|
129
|
+
if (!Files.exists(fullPath)) {
|
|
125
130
|
const url = baseURL + `/-5B-5BVolume::${vol}-5D-5D`;
|
|
126
|
-
await
|
|
131
|
+
await browser.retrieveFromCloudFlare(
|
|
132
|
+
url,
|
|
133
|
+
fullPath,
|
|
134
|
+
".mw-parser-output",
|
|
135
|
+
);
|
|
127
136
|
}
|
|
128
137
|
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
138
|
+
const html = scrape.parseFile(fullPath);
|
|
139
|
+
const linksEl = scrape.getSubtree(
|
|
140
|
+
html,
|
|
141
|
+
(e) => scrape.getAttr(e, "class") === "mw-parser-output",
|
|
142
|
+
);
|
|
143
|
+
if (linksEl === undefined) {
|
|
144
|
+
throw new Error();
|
|
145
|
+
}
|
|
146
|
+
const links = scrape.getSubtrees(linksEl, (e) => e.tagName === "a");
|
|
133
147
|
|
|
134
148
|
// If there are more than 5000 results, this will need to be updated to retrieve chunks.
|
|
135
|
-
if (Object.entries(
|
|
149
|
+
if (Object.entries(links).length >= 5000) {
|
|
136
150
|
throw new Error(`${vol} has more than 5000 results`);
|
|
137
151
|
}
|
|
138
152
|
|
|
139
|
-
for (const
|
|
140
|
-
|
|
153
|
+
for (const link of links) {
|
|
154
|
+
const name = scrape.getTextContent(link);
|
|
155
|
+
fnaTaxa.set(name, { name: name });
|
|
141
156
|
}
|
|
142
157
|
}
|
|
143
158
|
|
|
159
|
+
await browser.close();
|
|
160
|
+
|
|
144
161
|
return fnaTaxa;
|
|
145
162
|
}
|
|
146
163
|
|
package/lib/tools/inat.js
CHANGED
|
@@ -11,7 +11,9 @@ import { SynCSV } from "./syncsv.js";
|
|
|
11
11
|
* phylum:string,
|
|
12
12
|
* rank:string,
|
|
13
13
|
* scientificName:string,
|
|
14
|
-
*
|
|
14
|
+
* genus:string,
|
|
15
|
+
* specificEpithet:string,
|
|
16
|
+
* taxonRank:string
|
|
15
17
|
* }} INatCSVData
|
|
16
18
|
*/
|
|
17
19
|
|
|
@@ -76,12 +78,13 @@ export class INat {
|
|
|
76
78
|
if (name.includes(" unknown")) {
|
|
77
79
|
continue;
|
|
78
80
|
}
|
|
81
|
+
if (exceptions.hasException(name, "inat", "notintaxondata")) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
79
84
|
const iNatName = taxon.getINatName();
|
|
80
85
|
const iNatTaxon = this.#taxa[iNatName];
|
|
81
86
|
if (!iNatTaxon) {
|
|
82
|
-
|
|
83
|
-
errorLog.log(name, "not found in " + csvFileName, iNatName);
|
|
84
|
-
}
|
|
87
|
+
errorLog.log(name, "not found in " + csvFileName, iNatName);
|
|
85
88
|
missingTaxa.push({ name: name, iNatName: iNatName });
|
|
86
89
|
continue;
|
|
87
90
|
}
|
|
@@ -165,9 +168,18 @@ export class INat {
|
|
|
165
168
|
* @param {INatCSVData} record
|
|
166
169
|
*/
|
|
167
170
|
static #checkTaxon(record) {
|
|
168
|
-
if (record["phylum"] === "Tracheophyta"
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
+
if (record["phylum"] === "Tracheophyta") {
|
|
172
|
+
const taxonRank = record["taxonRank"];
|
|
173
|
+
if (
|
|
174
|
+
taxonRank === "genus" ||
|
|
175
|
+
taxonRank === "species" ||
|
|
176
|
+
taxonRank === "subspecies" ||
|
|
177
|
+
taxonRank === "variety" ||
|
|
178
|
+
taxonRank === "hybrid"
|
|
179
|
+
) {
|
|
180
|
+
const name = record["scientificName"];
|
|
181
|
+
INat.#taxa[name] = new InatTaxon(record["id"]);
|
|
182
|
+
}
|
|
171
183
|
}
|
|
172
184
|
}
|
|
173
185
|
|
|
@@ -205,6 +217,7 @@ export class INat {
|
|
|
205
217
|
match.matched_term,
|
|
206
218
|
result.matched_term,
|
|
207
219
|
);
|
|
220
|
+
console.log(results);
|
|
208
221
|
return;
|
|
209
222
|
}
|
|
210
223
|
match = result;
|
|
@@ -2,6 +2,7 @@ import { scrape } from "@htmltools/scrape";
|
|
|
2
2
|
import { Files } from "../files.js";
|
|
3
3
|
import { SynCSV } from "./syncsv.js";
|
|
4
4
|
import { TaxaCSV } from "./taxacsv.js";
|
|
5
|
+
import { Browser } from "../utils/browser.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* @typedef {{
|
|
@@ -122,6 +123,7 @@ export class JepsonEFlora {
|
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
if (
|
|
126
|
+
name.includes(" ") && // Ignore genus names.
|
|
125
127
|
efStatus !== taxonStatus &&
|
|
126
128
|
!(taxonStatus === "NC" && efStatus === "N")
|
|
127
129
|
) {
|
|
@@ -261,19 +263,22 @@ export class JepsonEFlora {
|
|
|
261
263
|
}
|
|
262
264
|
|
|
263
265
|
async #loadIndexPages() {
|
|
266
|
+
const browser = new Browser();
|
|
264
267
|
for (let index = 0; index < 26; index++) {
|
|
265
268
|
await this.#loadNameIndex(
|
|
269
|
+
browser,
|
|
266
270
|
String.fromCharCode("A".charCodeAt(0) + index),
|
|
267
271
|
);
|
|
268
272
|
}
|
|
273
|
+
await browser.close();
|
|
269
274
|
}
|
|
270
275
|
|
|
271
276
|
/**
|
|
277
|
+
* @param {Browser} browser
|
|
272
278
|
* @param {string} firstLetter
|
|
273
279
|
*/
|
|
274
|
-
async #loadNameIndex(firstLetter) {
|
|
280
|
+
async #loadNameIndex(browser, firstLetter) {
|
|
275
281
|
/**
|
|
276
|
-
*
|
|
277
282
|
* @param {string} url
|
|
278
283
|
* @param {string} targetFile
|
|
279
284
|
* @returns {Promise<Headers|undefined>}
|
|
@@ -284,7 +289,11 @@ export class JepsonEFlora {
|
|
|
284
289
|
return;
|
|
285
290
|
}
|
|
286
291
|
console.log("retrieving " + targetFile);
|
|
287
|
-
await
|
|
292
|
+
await browser.retrieveFromCloudFlare(
|
|
293
|
+
url,
|
|
294
|
+
targetFile,
|
|
295
|
+
".eFloraTable",
|
|
296
|
+
);
|
|
288
297
|
}
|
|
289
298
|
|
|
290
299
|
const fileName = "index_" + firstLetter + ".html";
|
|
@@ -327,25 +336,24 @@ export class JepsonEFlora {
|
|
|
327
336
|
continue;
|
|
328
337
|
}
|
|
329
338
|
|
|
330
|
-
let type = scrape.getTextContent(cols[2]);
|
|
331
|
-
if (!type) {
|
|
332
|
-
// Some species are lacking a type; if it's one we're tracking, errors will show elsewhere, so ignore for now.
|
|
333
|
-
continue;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
339
|
const linkText = scrape.getTextContent(links[0]);
|
|
337
|
-
|
|
338
|
-
// It's a genus name, ignore it.
|
|
339
|
-
continue;
|
|
340
|
-
}
|
|
340
|
+
const isGenus = !linkText.includes(" ");
|
|
341
341
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
342
|
+
let type = scrape.getTextContent(cols[2]);
|
|
343
|
+
if (!isGenus) {
|
|
344
|
+
if (!type) {
|
|
345
|
+
// Some species are lacking a type; if it's one we're tracking, errors will show elsewhere, so ignore for now.
|
|
346
|
+
continue;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (type.includes(" weed")) {
|
|
350
|
+
type = TYPES.WEED;
|
|
351
|
+
}
|
|
352
|
+
if (!validTypes.includes(type)) {
|
|
353
|
+
throw new Error(
|
|
354
|
+
"unrecognized type for " + linkText + ": " + type,
|
|
355
|
+
);
|
|
356
|
+
}
|
|
349
357
|
}
|
|
350
358
|
|
|
351
359
|
const common = scrape.getTextContent(cols[1]);
|
|
@@ -376,7 +384,10 @@ export class JepsonEFlora {
|
|
|
376
384
|
case TYPES.WEED:
|
|
377
385
|
break;
|
|
378
386
|
default:
|
|
379
|
-
|
|
387
|
+
if (!isGenus) {
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
break;
|
|
380
391
|
}
|
|
381
392
|
|
|
382
393
|
if (type === TYPES.SYNONYM) {
|
package/lib/tools/syncsv.js
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { CSV } from "../csv.js";
|
|
3
|
+
import { SynCSV } from "./syncsv.js";
|
|
4
|
+
|
|
5
|
+
export class Synonyms {
|
|
6
|
+
/**
|
|
7
|
+
* @param {string} dataDir
|
|
8
|
+
* @param {import("../types.js").Taxa} taxa
|
|
9
|
+
* @param {import("../errorlog.js").ErrorLog} errorLog
|
|
10
|
+
* @param {boolean} update
|
|
11
|
+
*/
|
|
12
|
+
static analyze(dataDir, taxa, errorLog, update) {
|
|
13
|
+
/** @type {import("./syncsv.js").SynData[]} */
|
|
14
|
+
const synCSV = CSV.readFile(path.join(dataDir, "synonyms.csv"));
|
|
15
|
+
/** @type {import("./syncsv.js").SynData[]} */
|
|
16
|
+
const newData = [];
|
|
17
|
+
|
|
18
|
+
for (const synData of synCSV) {
|
|
19
|
+
const taxon = taxa.getTaxon(synData.Current);
|
|
20
|
+
if (taxon === undefined) {
|
|
21
|
+
errorLog.log(synData.Current, "is not a valid synonym target");
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (synData.Current === synData.Former) {
|
|
25
|
+
errorLog.log(synData.Current, "has identical former name");
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
newData.push(synData);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (update) {
|
|
32
|
+
this.#updateSynCSV(newData);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @param {import("./syncsv.js").SynData[]} newData
|
|
38
|
+
*/
|
|
39
|
+
static #updateSynCSV(newData) {
|
|
40
|
+
const csv = new SynCSV("./data");
|
|
41
|
+
csv.setData(newData);
|
|
42
|
+
csv.write();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import puppeteer from "puppeteer";
|
|
2
|
+
import { Files } from "../files.js";
|
|
3
|
+
|
|
4
|
+
export class Browser {
|
|
5
|
+
/** @type {puppeteer.Browser|undefined} */
|
|
6
|
+
#browser;
|
|
7
|
+
|
|
8
|
+
async close() {
|
|
9
|
+
if (this.#browser !== undefined) {
|
|
10
|
+
await this.#browser.close();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @returns {Promise<puppeteer.Page>}
|
|
16
|
+
*/
|
|
17
|
+
async getBrowserPage() {
|
|
18
|
+
if (this.#browser === undefined) {
|
|
19
|
+
this.#browser = await puppeteer.launch({
|
|
20
|
+
headless: false,
|
|
21
|
+
args: [
|
|
22
|
+
"--disable-blink-features=AutomationControlled", // Critical: Hides automation flag
|
|
23
|
+
"--no-sandbox", // Required for environments without Chrome sandbox (e.g., Docker)
|
|
24
|
+
"--disable-setuid-sandbox",
|
|
25
|
+
"--window-size=1920,1080", // Realistic viewport
|
|
26
|
+
],
|
|
27
|
+
defaultViewport: { width: 1920, height: 1080 },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return this.#browser.newPage();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @param {string} url
|
|
35
|
+
* @param {string} filePath
|
|
36
|
+
* @param {string} selector
|
|
37
|
+
*/
|
|
38
|
+
async retrieveFromCloudFlare(url, filePath, selector) {
|
|
39
|
+
const page = await this.getBrowserPage();
|
|
40
|
+
|
|
41
|
+
await page.goto(url);
|
|
42
|
+
|
|
43
|
+
await page.waitForSelector(selector, { timeout: 30000 });
|
|
44
|
+
Files.write(filePath, await page.content());
|
|
45
|
+
await page.close();
|
|
46
|
+
}
|
|
47
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ca-plant-list/ca-plant-list",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.43",
|
|
4
4
|
"description": "Tools to create files for a website listing plants in an area of California.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@11ty/eleventy": "^3.1.2",
|
|
40
|
-
"@htmltools/scrape": "^0.1.
|
|
40
|
+
"@htmltools/scrape": "^0.1.2",
|
|
41
41
|
"archiver": "^7.0.1",
|
|
42
42
|
"cli-progress": "^3.12.0",
|
|
43
43
|
"commander": "^14.0.2",
|
|
@@ -51,16 +51,18 @@
|
|
|
51
51
|
"unzipper": "^0.12.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
+
"@eslint/js": "^10.0.1",
|
|
55
|
+
"@jest/globals": "^30.3.0",
|
|
54
56
|
"@types/archiver": "^7.0.0",
|
|
55
57
|
"@types/cli-progress": "^3.11.6",
|
|
56
|
-
"@types/jest": "^30.0.0",
|
|
57
58
|
"@types/markdown-it": "^14.1.2",
|
|
58
|
-
"@types/node": "^25.
|
|
59
|
+
"@types/node": "^25.5.2",
|
|
59
60
|
"@types/unzipper": "^0.10.11",
|
|
60
|
-
"eslint": "^
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
61
|
+
"eslint": "^10.2.0",
|
|
62
|
+
"globals": "^17.4.0",
|
|
63
|
+
"jest": "^30.3.0",
|
|
64
|
+
"prettier": "^3.8.1",
|
|
65
|
+
"puppeteer": "^24.40.0",
|
|
66
|
+
"typescript": "^6.0.2"
|
|
65
67
|
}
|
|
66
68
|
}
|
package/scripts/cpl-tools.js
CHANGED
|
@@ -16,6 +16,7 @@ import { JepsonFamilies } from "../lib/tools/jepsonfamilies.js";
|
|
|
16
16
|
import { CCH2 } from "../lib/tools/cch2.js";
|
|
17
17
|
import { FNA } from "../lib/tools/fna.js";
|
|
18
18
|
import { CalIPC } from "../lib/tools/calipc.js";
|
|
19
|
+
import { Synonyms } from "../lib/tools/synonyms.js";
|
|
19
20
|
|
|
20
21
|
const TOOLS = {
|
|
21
22
|
CALFLORA: "calflora",
|
|
@@ -27,6 +28,7 @@ const TOOLS = {
|
|
|
27
28
|
JEPSON_EFLORA: "jepson-eflora",
|
|
28
29
|
JEPSON_FAM: "jepson-families",
|
|
29
30
|
RPI: "rpi",
|
|
31
|
+
SYNONYNS: "synonyms",
|
|
30
32
|
TEXT: "text",
|
|
31
33
|
};
|
|
32
34
|
|
|
@@ -39,6 +41,7 @@ const ALL_TOOLS = [
|
|
|
39
41
|
TOOLS.INAT,
|
|
40
42
|
TOOLS.JEPSON_EFLORA,
|
|
41
43
|
TOOLS.RPI,
|
|
44
|
+
TOOLS.SYNONYNS,
|
|
42
45
|
TOOLS.TEXT,
|
|
43
46
|
];
|
|
44
47
|
|
|
@@ -153,6 +156,14 @@ async function build(program, options) {
|
|
|
153
156
|
!!options.update,
|
|
154
157
|
);
|
|
155
158
|
break;
|
|
159
|
+
case TOOLS.SYNONYNS:
|
|
160
|
+
Synonyms.analyze(
|
|
161
|
+
options.datadir,
|
|
162
|
+
taxa,
|
|
163
|
+
errorLog,
|
|
164
|
+
!!options.update,
|
|
165
|
+
);
|
|
166
|
+
break;
|
|
156
167
|
case TOOLS.TEXT:
|
|
157
168
|
SupplementalText.analyze(taxa, errorLog);
|
|
158
169
|
break;
|
|
@@ -192,6 +203,7 @@ Tools:
|
|
|
192
203
|
'${TOOLS.JEPSON_EFLORA}' retrieves data from Jepson eFlora indexes and compares with local data.
|
|
193
204
|
'${TOOLS.JEPSON_FAM}' retrieves section, family and genus data from Jepson eFlora and creates data files for use by ca-plant-list.
|
|
194
205
|
'${TOOLS.RPI}' retrieves data from the CNPS Rare Plant Inventory and compares with local data.
|
|
206
|
+
'${TOOLS.SYNONYNS}' checks that synonyms are valid.
|
|
195
207
|
'${TOOLS.TEXT}' checks supplemental text files to make sure their names are referenced.
|
|
196
208
|
`,
|
|
197
209
|
);
|
package/scripts/dev/publish.sh
DELETED