Skip to content

Commit 60f77ac

Browse files
knollengewaechsfm3MichaelBuessemeyerhotzenklotz
authored
Rename Resolution to Mag (#8111)
* start to replace term resolution * rename resolution to mag in backend where possible * rename resolution restrictions * rename resolution info to mag info * rename in dataset accessor, a.o. * rename in frontend code * rename in docs * rename node resolution to mag * adjust mag slider * fix tests * add explaining sentences * refresh snapshots * improve explanation in info tab and status bar * adapt param name * remove application conf edits * lint * rename columns + table in sql, add migration * adapt test db after schema change * changelog * slightly adjust changelog entry to lower expectations * adjust docs and revert some changes * adjust neuroglancer docs * Update webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/volume/VolumeTracingDownsampling.scala Co-authored-by: MichaelBuessemeyer <[email protected]> * address review * fix previous version in db evolution * adjust version in schema.sql * also adapt schema version in reversion * adjust form names * adjust get params for /createExplorational * remove unused messages --------- Co-authored-by: Florian M <[email protected]> Co-authored-by: Florian M <[email protected]> Co-authored-by: MichaelBuessemeyer <[email protected]> Co-authored-by: Tom Herold <[email protected]>
1 parent 934bb6a commit 60f77ac

File tree

140 files changed

+1308
-1373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+1308
-1373
lines changed

.circleci/config.yml

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -211,25 +211,3 @@ workflows:
211211
filters:
212212
tags:
213213
only: /.*/
214-
circleci_nightly:
215-
jobs:
216-
- nightly
217-
triggers:
218-
- schedule:
219-
# 02:15 AM UTC
220-
cron: "15 2 * * *"
221-
filters:
222-
branches:
223-
only:
224-
- master
225-
circleci_wkorg_nightly:
226-
jobs:
227-
- wkorg_nightly
228-
triggers:
229-
- schedule:
230-
# 03:15 AM UTC
231-
cron: "15 3 * * *"
232-
filters:
233-
branches:
234-
only:
235-
- master

CHANGELOG.unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ For upgrade instructions, please check the [migration guide](MIGRATIONS.released
1616
- Most sliders have been improved: Wheeling above a slider now changes its value and double-clicking its knob resets it to its default value. [#8095](https://github.com/scalableminds/webknossos/pull/8095)
1717
- It is now possible to search for unnamed segments with the full default name instead of only their id. [#8133](https://github.com/scalableminds/webknossos/pull/8133)
1818
- Increased loading speed for precomputed meshes. [#8110](https://github.com/scalableminds/webknossos/pull/8110)
19+
- Unified wording in UI and code: “Magnification”/“mag” is now used in place of “Resolution“ most of the time, compare [https://docs.webknossos.org/webknossos/terminology.html](terminology document). [#8111](https://github.com/scalableminds/webknossos/pull/8111)
1920

2021
### Changed
2122
- Some mesh-related actions were disabled in proofreading-mode when using meshfiles that were created for a mapping rather than an oversegmentation. [#8091](https://github.com/scalableminds/webknossos/pull/8091)

MIGRATIONS.unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ User-facing changes are documented in the [changelog](CHANGELOG.released.md).
1111
### Postgres Evolutions:
1212

1313
- [121-worker-name.sql](conf/evolutions/121-worker-name.sql)
14+
- [122-resolution-to-mag.sql](conf/evolutions/122-resolution-to-mag.sql)

app/controllers/AnnotationController.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import com.scalableminds.webknossos.datastore.models.annotation.{
1414
}
1515
import com.scalableminds.webknossos.datastore.models.datasource.AdditionalAxis
1616
import com.scalableminds.webknossos.datastore.rpc.RPC
17-
import com.scalableminds.webknossos.tracingstore.tracings.volume.ResolutionRestrictions
17+
import com.scalableminds.webknossos.tracingstore.tracings.volume.MagRestrictions
1818
import com.scalableminds.webknossos.tracingstore.tracings.{TracingIds, TracingType}
1919
import mail.{MailchimpClient, MailchimpTag}
2020
import models.analytics.{AnalyticsService, CreateAnnotationEvent, OpenAnnotationEvent}
@@ -44,7 +44,7 @@ case class AnnotationLayerParameters(typ: AnnotationLayerType,
4444
fallbackLayerName: Option[String],
4545
autoFallbackLayer: Boolean = false,
4646
mappingName: Option[String] = None,
47-
resolutionRestrictions: Option[ResolutionRestrictions],
47+
magRestrictions: Option[MagRestrictions],
4848
name: Option[String],
4949
additionalAxes: Option[Seq[AdditionalAxis]])
5050
object AnnotationLayerParameters {

app/controllers/AnnotationIOController.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ class AnnotationIOController @Inject()(
335335
largestSegmentId =
336336
annotationService.combineLargestSegmentIdsByPrecedence(volumeTracing.largestSegmentId,
337337
fallbackLayerOpt.map(_.largestSegmentId)),
338-
resolutions = VolumeTracingDownsampling.magsForVolumeTracing(dataSource, fallbackLayerOpt).map(vec3IntToProto),
338+
mags = VolumeTracingDownsampling.magsForVolumeTracing(dataSource, fallbackLayerOpt).map(vec3IntToProto),
339339
hasSegmentIndex = Some(tracingCanHaveSegmentIndex)
340340
)
341341
}

app/controllers/LegacyApiController.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import play.silhouette.api.actions.SecuredRequest
55
import com.scalableminds.util.tools.Fox
66
import com.scalableminds.webknossos.datastore.models.VoxelSize
77
import com.scalableminds.webknossos.datastore.models.annotation.{AnnotationLayer, AnnotationLayerType}
8-
import com.scalableminds.webknossos.tracingstore.tracings.volume.ResolutionRestrictions
8+
import com.scalableminds.webknossos.tracingstore.tracings.volume.MagRestrictions
99
import models.dataset.DatasetService
1010
import models.organization.OrganizationDAO
1111

@@ -24,7 +24,7 @@ import scala.concurrent.ExecutionContext
2424

2525
case class LegacyCreateExplorationalParameters(typ: String,
2626
fallbackLayerName: Option[String],
27-
resolutionRestrictions: Option[ResolutionRestrictions])
27+
resolutionRestrictions: Option[MagRestrictions])
2828
object LegacyCreateExplorationalParameters {
2929
implicit val jsonFormat: OFormat[LegacyCreateExplorationalParameters] =
3030
Json.format[LegacyCreateExplorationalParameters]

app/controllers/TaskTypeController.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class TaskTypeController @Inject()(taskTypeDAO: TaskTypeDAO,
6969
taskTypeIdValidated <- ObjectId.fromString(taskTypeId) ?~> "taskType.id.invalid"
7070
taskType <- taskTypeDAO.findOne(taskTypeIdValidated) ?~> "taskType.notFound" ~> NOT_FOUND
7171
_ <- bool2Fox(taskTypeFromForm.tracingType == taskType.tracingType) ?~> "taskType.tracingTypeImmutable"
72-
_ <- bool2Fox(taskTypeFromForm.settings.resolutionRestrictions == taskType.settings.resolutionRestrictions) ?~> "taskType.resolutionRestrictionsImmutable"
72+
_ <- bool2Fox(taskTypeFromForm.settings.magRestrictions == taskType.settings.magRestrictions) ?~> "taskType.magRestrictionsImmutable"
7373
updatedTaskType = taskTypeFromForm.copy(_id = taskType._id)
7474
_ <- Fox.assertTrue(userService.isTeamManagerOrAdminOf(request.identity, taskType._team)) ?~> "notAllowed" ~> FORBIDDEN
7575
_ <- Fox

app/models/annotation/AnnotationService.scala

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import com.scalableminds.webknossos.datastore.rpc.RPC
3535
import com.scalableminds.webknossos.tracingstore.tracings._
3636
import com.scalableminds.webknossos.tracingstore.tracings.volume.VolumeDataZipFormat.VolumeDataZipFormat
3737
import com.scalableminds.webknossos.tracingstore.tracings.volume.{
38-
ResolutionRestrictions,
38+
MagRestrictions,
3939
VolumeDataZipFormat,
4040
VolumeTracingDefaults,
4141
VolumeTracingDownsampling
@@ -144,15 +144,15 @@ class AnnotationService @Inject()(
144144
boundingBox: Option[BoundingBox] = None,
145145
startPosition: Option[Vec3Int] = None,
146146
startRotation: Option[Vec3Double] = None,
147-
resolutionRestrictions: ResolutionRestrictions,
147+
magRestrictions: MagRestrictions,
148148
mappingName: Option[String]
149149
): Fox[VolumeTracing] = {
150-
val resolutions = VolumeTracingDownsampling.magsForVolumeTracing(dataSource, fallbackLayer)
151-
val resolutionsRestricted = resolutionRestrictions.filterAllowed(resolutions)
150+
val mags = VolumeTracingDownsampling.magsForVolumeTracing(dataSource, fallbackLayer)
151+
val magsRestricted = magRestrictions.filterAllowed(mags)
152152
val additionalAxes =
153153
fallbackLayer.map(_.additionalAxes).getOrElse(dataSource.additionalAxesUnion)
154154
for {
155-
_ <- bool2Fox(resolutionsRestricted.nonEmpty) ?~> "annotation.volume.resolutionRestrictionsTooTight"
155+
_ <- bool2Fox(magsRestricted.nonEmpty) ?~> "annotation.volume.magRestrictionsTooTight"
156156
remoteDatastoreClient = new WKRemoteDataStoreClient(datasetDataStore, rpc)
157157
fallbackLayerHasSegmentIndex <- fallbackLayer match {
158158
case Some(layer) =>
@@ -175,7 +175,7 @@ class AnnotationService @Inject()(
175175
VolumeTracingDefaults.zoomLevel,
176176
organizationId = Some(datasetOrganizationId),
177177
mappingName = mappingName,
178-
resolutions = resolutionsRestricted.map(vec3IntToProto),
178+
mags = magsRestricted.map(vec3IntToProto),
179179
hasSegmentIndex = Some(fallbackLayer.isEmpty || fallbackLayerHasSegmentIndex),
180180
additionalAxes = AdditionalAxis.toProto(additionalAxes)
181181
)
@@ -286,8 +286,7 @@ class AnnotationService @Inject()(
286286
datasetOrganizationId,
287287
dataStore,
288288
fallbackLayer,
289-
resolutionRestrictions =
290-
annotationLayerParameters.resolutionRestrictions.getOrElse(ResolutionRestrictions.empty),
289+
magRestrictions = annotationLayerParameters.magRestrictions.getOrElse(MagRestrictions.empty),
291290
mappingName = annotationLayerParameters.mappingName
292291
)
293292
volumeTracingAdapted = oldPrecedenceLayerProperties.map { p =>
@@ -417,7 +416,7 @@ class AnnotationService @Inject()(
417416
usedFallbackLayerName,
418417
autoFallbackLayer = false,
419418
None,
420-
Some(ResolutionRestrictions.empty),
419+
Some(MagRestrictions.empty),
421420
Some(AnnotationLayer.defaultNameForType(newAnnotationLayerType)),
422421
None
423422
)
@@ -551,14 +550,14 @@ class AnnotationService @Inject()(
551550
)
552551
}
553552

554-
def createVolumeTracingBase(datasetName: String,
555-
organizationId: String,
556-
boundingBox: Option[BoundingBox],
557-
startPosition: Vec3Int,
558-
startRotation: Vec3Double,
559-
volumeShowFallbackLayer: Boolean,
560-
resolutionRestrictions: ResolutionRestrictions)(implicit ctx: DBAccessContext,
561-
m: MessagesProvider): Fox[VolumeTracing] =
553+
def createVolumeTracingBase(
554+
datasetName: String,
555+
organizationId: String,
556+
boundingBox: Option[BoundingBox],
557+
startPosition: Vec3Int,
558+
startRotation: Vec3Double,
559+
volumeShowFallbackLayer: Boolean,
560+
magRestrictions: MagRestrictions)(implicit ctx: DBAccessContext, m: MessagesProvider): Fox[VolumeTracing] =
562561
for {
563562
organization <- organizationDAO.findOne(organizationId)
564563
dataset <- datasetDAO.findOneByNameAndOrganization(datasetName, organizationId) ?~> Messages("dataset.notFound",
@@ -583,7 +582,7 @@ class AnnotationService @Inject()(
583582
},
584583
startPosition = Some(startPosition),
585584
startRotation = Some(startRotation),
586-
resolutionRestrictions = resolutionRestrictions,
585+
magRestrictions = magRestrictions,
587586
mappingName = None
588587
)
589588
} yield volumeTracing

app/models/annotation/AnnotationSettings.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package models.annotation
33
import com.scalableminds.util.enumeration.ExtendedEnumeration
44
import com.scalableminds.webknossos.tracingstore.tracings.TracingType
55
import com.scalableminds.webknossos.tracingstore.tracings.TracingType.TracingType
6-
import com.scalableminds.webknossos.tracingstore.tracings.volume.ResolutionRestrictions
6+
import com.scalableminds.webknossos.tracingstore.tracings.volume.MagRestrictions
77
import play.api.libs.json._
88

99
object TracingMode extends ExtendedEnumeration {
@@ -18,7 +18,7 @@ case class AnnotationSettings(
1818
somaClickingAllowed: Boolean = true,
1919
volumeInterpolationAllowed: Boolean = true,
2020
mergerMode: Boolean = false,
21-
resolutionRestrictions: ResolutionRestrictions = ResolutionRestrictions.empty
21+
magRestrictions: MagRestrictions = MagRestrictions.empty
2222
)
2323

2424
object AnnotationSettings {

app/models/annotation/WKRemoteTracingStoreClient.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import com.scalableminds.webknossos.datastore.models.annotation.{
1717
import com.scalableminds.webknossos.datastore.models.datasource.DataSourceLike
1818
import com.scalableminds.webknossos.datastore.rpc.RPC
1919
import com.scalableminds.webknossos.tracingstore.tracings.TracingSelector
20-
import com.scalableminds.webknossos.tracingstore.tracings.volume.ResolutionRestrictions
20+
import com.scalableminds.webknossos.tracingstore.tracings.volume.MagRestrictions
2121
import com.scalableminds.webknossos.tracingstore.tracings.volume.VolumeDataZipFormat.VolumeDataZipFormat
2222
import com.typesafe.scalalogging.LazyLogging
2323
import controllers.RpcTokenHolder
@@ -100,7 +100,7 @@ class WKRemoteTracingStoreClient(
100100
def duplicateVolumeTracing(volumeTracingId: String,
101101
isFromTask: Boolean = false,
102102
datasetBoundingBox: Option[BoundingBox] = None,
103-
resolutionRestrictions: ResolutionRestrictions = ResolutionRestrictions.empty,
103+
magRestrictions: MagRestrictions = MagRestrictions.empty,
104104
downsample: Boolean = false,
105105
editPosition: Option[Vec3Int] = None,
106106
editRotation: Option[Vec3Double] = None,
@@ -109,8 +109,8 @@ class WKRemoteTracingStoreClient(
109109
rpc(s"${tracingStore.url}/tracings/volume/$volumeTracingId/duplicate").withLongTimeout
110110
.addQueryString("token" -> RpcTokenHolder.webknossosToken)
111111
.addQueryString("fromTask" -> isFromTask.toString)
112-
.addQueryStringOptional("minResolution", resolutionRestrictions.minStr)
113-
.addQueryStringOptional("maxResolution", resolutionRestrictions.maxStr)
112+
.addQueryStringOptional("minMag", magRestrictions.minStr)
113+
.addQueryStringOptional("maxMag", magRestrictions.maxStr)
114114
.addQueryStringOptional("editPosition", editPosition.map(_.toUriLiteral))
115115
.addQueryStringOptional("editRotation", editRotation.map(_.toUriLiteral))
116116
.addQueryStringOptional("boundingBox", boundingBox.map(_.toLiteral))
@@ -173,7 +173,7 @@ class WKRemoteTracingStoreClient(
173173

174174
def saveVolumeTracing(tracing: VolumeTracing,
175175
initialData: Option[File] = None,
176-
resolutionRestrictions: ResolutionRestrictions = ResolutionRestrictions.empty,
176+
magRestrictions: MagRestrictions = MagRestrictions.empty,
177177
dataSource: Option[DataSourceLike] = None): Fox[String] = {
178178
logger.debug("Called to create VolumeTracing." + baseInfo)
179179
for {
@@ -185,8 +185,8 @@ class WKRemoteTracingStoreClient(
185185
case Some(file) =>
186186
rpc(s"${tracingStore.url}/tracings/volume/$tracingId/initialData").withLongTimeout
187187
.addQueryString("token" -> RpcTokenHolder.webknossosToken)
188-
.addQueryStringOptional("minResolution", resolutionRestrictions.minStr)
189-
.addQueryStringOptional("maxResolution", resolutionRestrictions.maxStr)
188+
.addQueryStringOptional("minMag", magRestrictions.minStr)
189+
.addQueryStringOptional("maxMag", magRestrictions.maxStr)
190190
.post(file)
191191
case _ =>
192192
Fox.successful(())

0 commit comments

Comments
 (0)