forked from unity-sds/sounder-sips-application
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDockerfile.l1a
More file actions
81 lines (61 loc) · 3.97 KB
/
Dockerfile.l1a
File metadata and controls
81 lines (61 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
FROM unity-sds/sounder_sips_pge_common:r0.1.0 AS builder
ARG BUILD_PATH /build
ARG NUM_COMPILE_JOBS=4
RUN cd $BUILD_PATH/spss/src/sips_pge/l1a_atms/make && make -j $NUM_COMPILE_JOBS
FROM centos:7
ENV PGSHOME=/opt/packages/sdptk5.2.20v1.01/TOOLKIT/
ENV PGS_PC_INFO_FILE=/pge/static/SNDR.PGSToolkit_ProcessControlFile.pcf
ENV PGS_LEAPSEC_FILE=${PGEHOME}/database/common/TD/leapsec.dat
# Ensure using UTF-8
RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
# Install packages required for this PGE
# Packages in the second yum call come from EPEL
RUN yum install -y libquadmath epel-release && \
yum install -y python2-netcdf4 && \
yum install -y python3-pip python3-netcdf4 && \
pip3 install -U pip && \
pip3 install notebook papermill && \
yum clean all && \
rm -rf /var/cache/yum
# Create directory structure for PGE files and necessary files
RUN mkdir -p /pge/bin && \
mkdir -p /pge/static && \
mkdir -p /pge/interface && \
mkdir -p /opt/packages
# Copy L1A PGE binary from build
COPY --from=builder /build/spss/src/sips_pge/l1a_atms/pge/bin/L1AMw_main /pge/bin
# Copy MetExtractor binary from build
COPY --from=builder /build/spss/src/scf_metextractors/main/bin/MetExtractor /pge/bin
# Copy PGE interface notebook
COPY interface/run_l1a_pge.ipynb /pge/interface
# Copy over SDP Toolkit for its database files
COPY --from=builder /opt/packages/sdptk5.2.20v1.01 /opt/packages/sdptk5.2.20v1.01
# Update leap seconds file. This file needs to be periodically updated
COPY ephemeris/leapsec.dat /opt/packages/sdptk5.2.20v1.01/TOOLKIT/database/common/TD/leapsec.dat
COPY ephemeris/utcpole.dat /opt/packages/sdptk5.2.20v1.01/TOOLKIT/database/common/CSC/utcpole.dat
# Copy files from acceptance test directories, these are referenced by the input XML file
COPY src/src/sips_pge/l1a_atms_snpp/acctest/in/pcf/SNDR.PGSToolkit_ProcessControlFile.pcf /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/acctest/in/SNDR.SNPP.ATMS.L1A.sfif_201214135000.xml /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/acctest/in/SNDR.SchemaParameterfile.060401120000.xsd /pge/static
# Modify SFIF file to point to Docker paths
RUN sed -i 's|../../../static|/pge/static|' /pge/static/SNDR.SNPP.ATMS.L1A.sfif_201214135000.xml
# Modify to point to utcpole.dat in the database location
RUN sed -i -e 's|utcpole_20201220.dat|utcpole.dat|' -e 's|../../in/pcf|~/database/common/CSC|' /pge/static/SNDR.PGSToolkit_ProcessControlFile.pcf
# Modify to point DEMs to a path controlled by Docker
RUN sed -i -e 's|/peate/support/static/dem|/tmp/static/dem|' -e 's|/ref/devstable/STORE/mcf|/tmp/static/mcf|' /pge/static/SNDR.PGSToolkit_ProcessControlFile.pcf
# Static files referenced in SFIF file
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SNPP.ATMS.L1A.template.v02_02_08_201214135000.nc /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/ATMS-SDR-CC_npp_20131201000000Z_20140101000000Z_ee00000000000000Z_PS-1-O-CCR-14-1487-JPSS-DPA-008-SIDEA-PE_noaa_all_all-_all.xml /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SNPP.ATMS.L1A.calibration_data_200204184500.csv /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SNPP.ATMS.APID_531_ENGHSKP_v11_200204184500.xml /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SNPP.ATMS.L1A.apf_180412120000.xml /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SIPS.SNPP.ATMS.L1A.SPDCMetConstants_170905120000.pev /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SIPS.ATMS.L1A.SPDCMetStructure_161130151628.xml /pge/static
COPY src/src/sips_pge/l1a_atms_snpp/static/SNDR.SIPS.SNPP.ATMS.L1A.SPDCMetMappings_170905120000.xml /pge/static
# Template PGE configuration file modified by Jupyter notebook
COPY src/src/sips_pge/l1a_atms_snpp/acctest/spdc_nominal2/in/SNDR.SNPP.ATMS.L1A.nominal2.config_201214135000.xml /pge/static/pge_config_template.xml
# Necessary for click framework used by papermill:
# https://click.palletsprojects.com/en/8.0.x/unicode-support/
ENV LANG=C.UTF-8
ENV LC_ALL=en_US.UTF-8
ENTRYPOINT ["papermill", "/pge/interface/run_l1a_pge.ipynb"]