Source code for asap.materialize.materialize_sections

#!/usr/bin/env python
"""
Materialize Render sections using BetterBox client
"""
import os

from asap.module.render_module import (
    RenderModuleException, SparkModule)
from asap.materialize.schemas import (MaterializeSectionsParameters,
                                               MaterializeSectionsOutput)


example_input = {
    "masterUrl": "local[*,20]",
    "jarfile": "/allen/aibs/pipeline/image_processing/volume_assembly/render-jars/dev/render-ws-spark-client-standalone.jar",
    "className": "org.janelia.render.client.spark.betterbox.BoxClient",
    "driverMemory": "40g",
    "sparkhome": "/allen/aibs/pipeline/image_processing/volume_assembly/utils/spark/",
    "baseDataUrl": "http://em-131fs:8080/render-ws/v1",
    "owner": "russelt",
    "project": "Reflections",
    "stack": "Secs_1015_1099_5_reflections_mml6_rough_affine_scaled",
    "rootDirectory": "/allen/programs/celltypes/workgroups/em-connectomics/russelt/materialize_render/",
    "cleanUpPriorRun": False,
    "maxImageCacheGb": 2.0,  # TODO see Eric's docs
    "zValues": [1015, 1017],
    "width": 1024,
    "height": 1024,
    "maxLevel": 7
}


[docs]class MaterializeSectionsError(RenderModuleException): pass
[docs]class MaterializeSectionsModule(SparkModule): default_schema = MaterializeSectionsParameters default_output_schema = MaterializeSectionsOutput
[docs] @classmethod def get_materialize_options( cls, baseDataUrl=None, owner=None, project=None, stack=None, rootDirectory=None, width=None, height=None, maxLevel=None, fmt=None, maxOverviewWidthAndHeight=None, skipInterpolation=None, binaryMask=None, label=None, createIGrid=None, forceGeneration=None, renderGroup=None, numberOfRenderGroups=None, cleanUpPriorRun=None, filterListName=None, explainPlan=None, maxImageCacheGb=None, zValues=None, **kwargs): get_cmd_opt = cls.get_cmd_opt get_flag_cmd = cls.get_flag_cmd cmd = ( get_cmd_opt(baseDataUrl, '--baseDataUrl') + get_cmd_opt(owner, '--owner') + get_cmd_opt(project, '--project') + get_cmd_opt(stack, '--stack') + get_cmd_opt(rootDirectory, '--rootDirectory') + get_cmd_opt(width, '--width') + get_cmd_opt(height, '--height') + get_cmd_opt(maxLevel, '--maxLevel') + get_cmd_opt(fmt, '--format') + get_cmd_opt(maxOverviewWidthAndHeight, '--maxOverviewWidthAndHeight') + get_flag_cmd(skipInterpolation, '--skipInterpolation') + get_flag_cmd(binaryMask, '--binaryMask') + get_flag_cmd(label, '--label') + get_flag_cmd(createIGrid, '--createIGrid') + get_flag_cmd(forceGeneration, '--forceGeneration') + get_cmd_opt(renderGroup, '--renderGroup') + get_cmd_opt(numberOfRenderGroups, '--numberOfRenderGroups') + get_cmd_opt(filterListName, '--filterListName') + get_flag_cmd(cleanUpPriorRun, '--cleanUpPriorRun') + get_flag_cmd(explainPlan, '--explainPlan') + get_cmd_opt(maxImageCacheGb, '--maxImageCacheGb') + ([] if zValues is None else ['--z'] + zValues)) return cls.sanitize_cmd(cmd)
[docs] @classmethod def get_args(cls, **kwargs): return cls.get_materialize_options(**kwargs)
[docs] def run(self): r = self.run_spark_command() self.logger.debug("spark run completed with code {}".format(r)) output_d = { 'zValues': self.args['zValues'], 'rootDirectory': self.args['rootDirectory'], 'materializedDirectory': os.path.join(self.args['rootDirectory'])} self.output(output_d)
if __name__ == "__main__": mod = MaterializeSectionsModule() mod.run()