public boolean[] getSubDivideMask(CSVColumn sdi, Date start, Date end, File folder) {
        if (sdi != null) {
            try {
                File fname = ObjFunc.resolve(sdi.getFile(), folder);
                CSTable sdt = DataIO.table(fname, sdi.getTable());
                String column = sdi.getColumn();

                double[] retData = DataIO.getColumnDoubleValuesInterval(start, end, sdt, column, DataIO.DAILY, 0, null, null);
                int[] subDivideData = new int[retData.length];
                for (int i = 0; i < retData.length; i++) {
                    subDivideData[i] = (int) retData[i];
                }

                if ((subDivideMask == null) && (subDivideData != null)) {
                    this.subDivideMask = new boolean[subDivideData.length];
                    for (int i = 0; i < subDivideData.length; i++) {
                        this.subDivideMask[i] = ((subDivideData[i] == this.getSubDivideValue()) || (this.getSubDivideValue() == Integer.MIN_VALUE));
                    }
                }
                return this.subDivideMask;
            } catch (IOException E) {
                throw new RuntimeException(E);
            }
        } else {
            return null;
        }
    }