Es hat sowohl hydrophile als auch ölreiche Eigenschaften und wird in einer Vielzahl von Anwendungen wie wasserabweisenden Mitteln, Verdauungsmitteln, Ölmitteln und Ätzmitteln verwendet.
Eine leicht verständliche Erklärung der organischen Fluorverbindungen finden Sie in NHKs Close-up Modern HP. https://www.nhk.or.jp/gendai/articles/4280/index.html
Aufgrund seiner Schädlichkeit wird die Herstellung, Verwendung und der Import / Export von Perfluoroctansäure (PFOA) unter organischen Fluorverbindungen ab 2019 international verboten, und Perfluoroctansulfonat (PFOS) wird ab 2009 verboten. Herstellung, Verwendung und Import / Export sind eingeschränkt.
In den letzten Jahren sind beide Substanzen zu Problemen geworden, z. B. im Brunnenwasser nachgewiesen zu werden und in Flüsse zu fließen. Als Reaktion darauf fügte das Ministerium für Gesundheit, Arbeit und Soziales PFOS und PFOA zu den Zielvorgaben für das Wasserqualitätsmanagement hinzu (durchgesetzt am 1. April, 2. Jahr der Verordnung). Der Zielwert des Leitungswasserqualitätsstandards beträgt 50 ng / l, was dem Gesamtwert von PFOS und PFOA entspricht. https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/topics/bukyoku/kenkou/suido/kijun/index.html
Darüber hinaus führte das Umweltministerium eine landesweite Erhebung über PFOS und PFOA in der Wasserumwelt durch und "In Bezug auf die Durchsetzung von Umweltstandards usw. in Bezug auf den Schutz der menschlichen Gesundheit im Zusammenhang mit Wasserverschmutzung (Bekanntmachung)" (28. Mai, 2. Verordnungsjahr). (Anhang) setzen wir 50 ng / l als Gesamtwert von PFOS und PFOA als vorläufigen Zielwert für die Wasserumgebung. Ergebnisse der PFOA- und PFOA National Abundance Survey im ersten Jahr des Ordens https://www.env.go.jp/press/108091.html
Übrigens gab es in den vom Ministerium für Gesundheit, Arbeit und Soziales im 2. Juni von Oriwa veröffentlichten Umfrageergebnissen für Wasseraufbereitungsanlagen keinen Ort, an dem der vorläufige Zielwert für Leitungswasser, PFOS + PFOA 50 ng / l, überschritten wurde. https://www.mhlw.go.jp/content/10900000/000638290.pdf
ChemTHEATER veröffentlicht Überwachungsdaten zur Konzentration chemischer Substanzen in der Umwelt sowie Daten zu organischen Fluorverbindungen. Lassen Sie uns tatsächlich sehen, bei welcher Konzentration PFOS und PFOA nachgewiesen wurden und wie hoch oder niedrig der Gesamtwert mit dem Referenzwert verglichen wird.
Speichern Sie die exportierte Datei in einem beliebigen Verzeichnis und verwenden Sie sie zur Analyse.
Laden Sie die gewünschte Bibliothek.
import pandas as pd
Lesen Sie Informationen zu Messwerten chemischer Substanzen.
data_file = "measureddata_20200521044415.tsv"
data = pd.read_csv(data_file, delimiter="\t")
data
MeasuredID | ProjectID | SampleID | ScientificName | ChemicalID | ChemicalName | ExperimentID | MeasuredValue | AlternativeData | Unit | Remarks | RegisterDate | UpdateDate | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 81245 | PRA000095 | SAA005816 | Water | CH0000362 | PFBS | EXA000001 | 0.00100 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
1 | 81246 | PRA000095 | SAA005817 | Water | CH0000362 | PFBS | EXA000001 | 0.00100 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
2 | 81247 | PRA000095 | SAA005818 | Water | CH0000362 | PFBS | EXA000001 | 0.00100 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
3 | 81248 | PRA000095 | SAA005819 | Water | CH0000362 | PFBS | EXA000001 | 0.00100 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
4 | 81249 | PRA000095 | SAA005820 | Water | CH0000362 | PFBS | EXA000001 | 0.00100 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3087 | 48619 | PRA000060 | SAA003645 | Water | CH0000793 | THPFOS | EXA000001 | 0.00030 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
3088 | 48620 | PRA000060 | SAA003646 | Water | CH0000793 | THPFOS | EXA000001 | 0.00008 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
3089 | 48621 | PRA000060 | SAA003647 | Water | CH0000793 | THPFOS | EXA000001 | 0.00159 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
3090 | 48622 | PRA000060 | SAA003648 | Water | CH0000793 | THPFOS | EXA000001 | 0.00188 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
3091 | 48623 | PRA000060 | SAA003649 | Water | CH0000793 | THPFOS | EXA000001 | 0.00070 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
3092 rows × 13 columns
Dann werden die Beispielinformationen gelesen.
sample_file = "samples_20200521044410.tsv"
sample = pd.read_csv(sample_file, delimiter="\t")
sample
ProjectID | SampleID | SampleType | TaxonomyID | UniqCodeType | UniqCode | SampleName | ScientificName | CommonName | CollectionYear | ... | FlowRate | MeanPM10 | MeanTotalSuspendedParticles | HumidityStartEnd | WindDirectionStartEnd | WindSpeedMSStartEnd | AmountOfCollectedAirStartEnd | Remarks | RegisterDate | UpdateDate | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | PRA000048 | SAA002867 | ST014 | NaN | NaN | NaN | SW-St.1 | Water | Surface water | 2004 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2017/10/25 | 2019/7/18 |
1 | PRA000048 | SAA002868 | ST014 | NaN | NaN | NaN | SW-St.3 | Water | Surface water | 2004 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2017/10/25 | 2019/7/18 |
2 | PRA000048 | SAA002869 | ST014 | NaN | NaN | NaN | SW-St.4 | Water | Surface water | 2004 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2017/10/25 | 2019/7/18 |
3 | PRA000048 | SAA002870 | ST014 | NaN | NaN | NaN | SW-St.5 | Water | Surface water | 2004 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2017/10/25 | 2019/7/18 |
4 | PRA000048 | SAA002871 | ST014 | NaN | NaN | NaN | SW-St.7 | Water | Surface water | 2004 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2017/10/25 | 2019/7/18 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
271 | PRA000095 | SAA005846 | ST015 | NaN | NaN | NaN | W_1xyz24_20100821 | Water | River water | 2010 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Around Kushiro Airport | 2019/7/26 | 2019/7/26 |
272 | PRA000095 | SAA005847 | ST015 | NaN | NaN | NaN | W_1xyz25_20100821 | Water | River water | 2010 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Around Kushiro Airport | 2019/7/26 | 2019/7/26 |
273 | PRA000095 | SAA005848 | ST015 | NaN | NaN | NaN | W_1xyz26_20100821 | Water | River water | 2010 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Downstream from the inflow of wastewater from ... | 2019/7/26 | 2019/7/26 |
274 | PRA000095 | SAA005849 | ST015 | NaN | ZETTAICODE_FY2011_W | 113680.0 | W_113680_20110702 | Water | River water | 2011 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Upstream from the inflow of wastewater from Ch... | 2019/7/26 | 2019/7/26 |
275 | PRA000095 | SAA005850 | ST015 | NaN | ZETTAICODE_FY2011_W | 118873.0 | W_118873_20110702 | Water | River water | 2011 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Downstream from the inflow of wastewater from ... | 2019/7/26 | 2019/7/26 |
276 rows × 66 columns
pfos = data[data["ChemicalName"] == "PFOS"] #Extrahieren Sie nur Daten, deren chemischer Name PFOS ist
pfoa = data[data["ChemicalName"] == "PFOA"] #Extrahieren Sie nur Daten, deren chemischer Name PFOA ist
Wenn Sie den Inhalt jedes einzelnen überprüfen, sieht es wie folgt aus.
pfos
MeasuredID | ProjectID | SampleID | ScientificName | ChemicalID | ChemicalName | ExperimentID | MeasuredValue | AlternativeData | Unit | Remarks | RegisterDate | UpdateDate | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
269 | 35646 | PRA000048 | SAA002867 | Water | CH0000365 | PFOS | EXA000001 | 0.0073 | NaN | μg/L | NaN | 2017/10/25 | 2018/6/8 |
270 | 35647 | PRA000048 | SAA002868 | Water | CH0000365 | PFOS | EXA000001 | 0.0030 | NaN | μg/L | NaN | 2017/10/25 | 2018/6/8 |
271 | 35648 | PRA000048 | SAA002869 | Water | CH0000365 | PFOS | EXA000001 | 0.0034 | NaN | μg/L | NaN | 2017/10/25 | 2018/6/8 |
272 | 35649 | PRA000048 | SAA002870 | Water | CH0000365 | PFOS | EXA000001 | 0.0038 | NaN | μg/L | NaN | 2017/10/25 | 2018/6/8 |
273 | 35650 | PRA000048 | SAA002871 | Water | CH0000365 | PFOS | EXA000001 | 0.0020 | NaN | μg/L | NaN | 2017/10/25 | 2018/6/8 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
540 | 81380 | PRA000095 | SAA005846 | Water | CH0000365 | PFOS | EXA000001 | 0.0010 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
541 | 81381 | PRA000095 | SAA005847 | Water | CH0000365 | PFOS | EXA000001 | 0.0010 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
542 | 81382 | PRA000095 | SAA005848 | Water | CH0000365 | PFOS | EXA000001 | 0.0076 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
543 | 81383 | PRA000095 | SAA005849 | Water | CH0000365 | PFOS | EXA000001 | 0.0028 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
544 | 81384 | PRA000095 | SAA005850 | Water | CH0000365 | PFOS | EXA000001 | 0.0120 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
276 rows × 13 columns
pfoa
MeasuredID | ProjectID | SampleID | ScientificName | ChemicalID | ChemicalName | ExperimentID | MeasuredValue | AlternativeData | Unit | Remarks | RegisterDate | UpdateDate | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
896 | 46410 | PRA000060 | SAA003568 | Water | CH0000372 | PFOA | EXA000001 | 0.00436 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
897 | 46411 | PRA000060 | SAA003569 | Water | CH0000372 | PFOA | EXA000001 | 0.01166 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
898 | 46412 | PRA000060 | SAA003570 | Water | CH0000372 | PFOA | EXA000001 | 0.01180 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
899 | 46413 | PRA000060 | SAA003571 | Water | CH0000372 | PFOA | EXA000001 | 0.00430 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
900 | 46414 | PRA000060 | SAA003572 | Water | CH0000372 | PFOA | EXA000001 | 0.00439 | NaN | μg/L | NaN | 2018/2/9 | 2018/6/8 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1143 | 81135 | PRA000095 | SAA005846 | Water | CH0000372 | PFOA | EXA000001 | 0.00100 | <1.00E-3 | μg/L | NaN | 2019/7/26 | 2019/7/26 |
1144 | 81136 | PRA000095 | SAA005847 | Water | CH0000372 | PFOA | EXA000001 | 0.00200 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
1145 | 81137 | PRA000095 | SAA005848 | Water | CH0000372 | PFOA | EXA000001 | 0.00140 | tr(1.40E-3) | μg/L | NaN | 2019/7/26 | 2019/7/26 |
1146 | 81138 | PRA000095 | SAA005849 | Water | CH0000372 | PFOA | EXA000001 | 0.03900 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
1147 | 81139 | PRA000095 | SAA005850 | Water | CH0000372 | PFOA | EXA000001 | 0.02400 | NaN | μg/L | NaN | 2019/7/26 | 2019/7/26 |
252 rows × 13 columns
Aus den extrahierten Daten von PFOS und PFOA werden nur die Spalten von SampleID und BeautifulValue extrahiert, und die Spaltennamen der gemessenen Werte sind beide MeasuredValue. Ändern Sie sie daher in PFOS bzw. PFOA.
pfos = pfos[["SampleID","MeasuredValue"]].rename(columns={'MeasuredValue': 'PFOS'})
pfoa = pfoa[["SampleID","MeasuredValue"]].rename(columns={'MeasuredValue': 'PFOA'})
Führen Sie PFOS- und PFOA-Datenrahmen mit SampleID zusammen.
df = pd.merge(pfos, pfoa, on="SampleID").astype({"PFOS": float}, {"PFOA": float})
df
SampleID | PFOS | PFOA | |
---|---|---|---|
0 | SAA003568 | 0.00551 | 0.00436 |
1 | SAA003569 | 0.01877 | 0.01166 |
2 | SAA003570 | 0.01546 | 0.01180 |
3 | SAA003571 | 0.00356 | 0.00430 |
4 | SAA003572 | 0.00682 | 0.00439 |
... | ... | ... | ... |
247 | SAA005846 | 0.00100 | 0.00100 |
248 | SAA005847 | 0.00100 | 0.00200 |
249 | SAA005848 | 0.00760 | 0.00140 |
250 | SAA005849 | 0.00280 | 0.03900 |
251 | SAA005850 | 0.01200 | 0.02400 |
252 rows × 3 columns
Was ich diesmal wissen möchte, ist der Gesamtwert der Konzentrationen von PFOS und PFOA. Erstellen Sie also eine Spalte mit dem Namen TOTAL und geben Sie dort den Gesamtwert ein.
df['TOTAL'] = df.sum(axis=1, numeric_only=True)
df
SampleID | PFOS | PFOA | TOTAL | |
---|---|---|---|---|
0 | SAA003568 | 0.00551 | 0.00436 | 0.00987 |
1 | SAA003569 | 0.01877 | 0.01166 | 0.03043 |
2 | SAA003570 | 0.01546 | 0.01180 | 0.02726 |
3 | SAA003571 | 0.00356 | 0.00430 | 0.00786 |
4 | SAA003572 | 0.00682 | 0.00439 | 0.01121 |
... | ... | ... | ... | ... |
247 | SAA005846 | 0.00100 | 0.00100 | 0.00200 |
248 | SAA005847 | 0.00100 | 0.00200 | 0.00300 |
249 | SAA005848 | 0.00760 | 0.00140 | 0.00900 |
250 | SAA005849 | 0.00280 | 0.03900 | 0.04180 |
251 | SAA005850 | 0.01200 | 0.02400 | 0.03600 |
252 rows × 4 columns
Extrahieren Sie nur die Proben-ID und die Breiten- / Längengrade aus der Probentabelle.
sample = sample[["SampleID", "CollectionLongitudeFrom", "CollectionLatitudeFrom"]]
sample
SampleID | CollectionLongitudeFrom | CollectionLatitudeFrom | |
---|---|---|---|
0 | SAA002867 | 139.850000 | 35.599333 |
1 | SAA002868 | 140.000000 | 35.583000 |
2 | SAA002869 | 139.834500 | 35.515833 |
3 | SAA002870 | 139.900333 | 35.532500 |
4 | SAA002871 | 139.833667 | 35.433000 |
... | ... | ... | ... |
271 | SAA005846 | 144.192783 | 43.062302 |
272 | SAA005847 | 144.232365 | 43.041624 |
273 | SAA005848 | 144.155650 | 42.997641 |
274 | SAA005849 | 141.719167 | 42.765833 |
275 | SAA005850 | 141.719167 | 42.782500 |
276 rows × 3 columns
Führen Sie dies mit der zuvor erstellten Dichtetabelle und der SampleID zusammen.
df = pd.merge(df, sample, on="SampleID")
df
SampleID | PFOS | PFOA | TOTAL | CollectionLongitudeFrom | CollectionLatitudeFrom | |
---|---|---|---|---|---|---|
0 | SAA003568 | 0.00551 | 0.00436 | 0.00987 | 139.607158 | 35.453746 |
1 | SAA003569 | 0.01877 | 0.01166 | 0.03043 | 139.677734 | 35.501549 |
2 | SAA003570 | 0.01546 | 0.01180 | 0.02726 | 139.617230 | 35.528481 |
3 | SAA003571 | 0.00356 | 0.00430 | 0.00786 | 139.498684 | 35.578287 |
4 | SAA003572 | 0.00682 | 0.00439 | 0.01121 | 139.480358 | 35.536396 |
... | ... | ... | ... | ... | ... | ... |
247 | SAA005846 | 0.00100 | 0.00100 | 0.00200 | 144.192783 | 43.062302 |
248 | SAA005847 | 0.00100 | 0.00200 | 0.00300 | 144.232365 | 43.041624 |
249 | SAA005848 | 0.00760 | 0.00140 | 0.00900 | 144.155650 | 42.997641 |
250 | SAA005849 | 0.00280 | 0.03900 | 0.04180 | 141.719167 | 42.765833 |
251 | SAA005850 | 0.01200 | 0.02400 | 0.03600 | 141.719167 | 42.782500 |
252 rows × 6 columns
Speichern Sie die fertige Datei im CSV-Format.
df.to_csv("sum_pfcs.csv")
Laden Sie dies in QGIS.
Laden Sie QGIS wie folgt herunter. https://www.qgis.org/ja/site/ Erläuterungen zur Verwendung von QGIS finden Sie auf verschiedenen Websites.
Karteninformationen (GML-Formdatei) werden von der GIS-Homepage des Ministeriums für Land, Infrastruktur, Verkehr und Tourismus heruntergeladen. https://nlftp.mlit.go.jp/index.html
Dieses Mal werden wir vorerst den Verwaltungsbereich des 2. Politikbereichs aus dem Download nationaler numerischer Landinformationen verwenden. Wählen Sie "landesweite" Daten aus und laden Sie sie von der folgenden Seite herunter. Bitte wählen Sie das Jahr entsprechend Ihrem Zweck.
Starten Sie QGIS, klicken Sie im Datenquellen-Manager auf die Registerkarte Vektor, wählen Sie die oben heruntergeladene Formdatei für den nationalen Verwaltungsbereich aus und klicken Sie auf "Hinzufügen".
Die Karte von Japan wird wie unten gezeigt gelesen. Ändern Sie sie daher in Ihre Lieblingsfarbe.
Klicken Sie im Datenquellen-Manager erneut auf die Registerkarte Begrenzter Text und wählen Sie die im vorherigen Abschnitt erstellte CSV-Datei (sum_pfcs.csv) aus. Wählen Sie danach im X-Feld der Geometriedefinition den Längengrad (CollectionLongitudeFrom) und im Y-Feld den Breitengrad (CollectionLatitudeFrom) aus und klicken Sie auf "Hinzufügen".
Dann werden die Abtastpunkte auf der Karte aufgezeichnet. Als nächstes Farbcode nach Dichte. Doppelklicken Sie auf der Ebene auf "sum_pfcs", um die Ebeneneigenschaften zu öffnen. Wählen Sie die Registerkarte Symbolik. Wählen Sie für das Symbol "In Stufen unterteilt" und für die Spalte "GESAMT", da Sie durch die Konzentration von PFOS + PFOA einen Farbcode erstellen möchten. Ändern Sie das Symbol nach Ihren Wünschen. Wenn Sie die Anzahl der Klassifizierungen ändern, während Sie den Modus in gleichen Intervallen halten, werden die Klassifikationen in gleichen Intervallen automatisch ausgegeben. Hier wird die Anzahl der Klassifikationen auf 2 und der Wert einer Gruppe kleiner Zahlen auf 0-0,05 gesetzt. (In ChemTHEATER wird die Konzentration chemischer Substanzen in Wasser auf µg / L festgelegt. Wenn Sie also farblich kennzeichnen möchten, ob der Standardwert von 50 ng / L überschritten wird oder nicht, müssen Sie ihn auf 0,05 einstellen.) Standardmäßig: Da das Diagramm mit hoher Dichte in der unteren Ebene angezeigt wird, wählen Sie unter "Erweiterte Einstellungen" die Option "Symbolebene" aus, aktivieren Sie das Kontrollkästchen "Symbolebene aktivieren" und setzen Sie die Ebene der Gruppe mit hoher Dichte auf 1. Machen.
Infolgedessen werden die Punkte, an denen PFOS + PFOA 50 ng / l überschreitet, und die Punkte, an denen PFOS + PFOA nicht überschreitet, in verschiedenen Farben angezeigt. Wenn Sie diese Abbildung ausgeben möchten, wählen Sie "Importieren / Exportieren" aus "Projekt", wählen Sie "Karte in Bild exportieren" oder "Karte in PDF exportieren" und kopieren Sie sie in die Zwischenablage oder legen Sie sie in einem beliebigen Verzeichnis ab. Speichern als.
Wie wäre es mit? Hast du es getan? Auf diese Weise würden wir uns freuen, wenn Sie die in ChemTHEATER aufgezeichneten Daten nutzen könnten, indem Sie sie auf einer Karte ausdrücken. Zurück zu "Python mit ChemTHEATER lernen"
Recommended Posts